Logo

入门

  • 安装
    • 使用 pip 安装
    • 使用 Conda 安装
    • 从源代码安装
    • 可编辑安装
    • 安装支持 CUDA 的 PyTorch
  • 快速入门
    • Sentence Transformer
    • 交叉编码器
    • 稀疏编码器
    • 后续步骤
  • 迁移指南
    • 从 v4.x 迁移到 v5.x
      • model.encode 的迁移
      • Asym 到 Router 的迁移
      • 高级用法的迁移
    • 从 v3.x 迁移到 v4.x
      • CrossEncoder 初始化和方法的参数迁移
      • CrossEncoder.fit 特定参数的迁移
      • CrossEncoder 评估器的迁移
    • 从 v2.x 迁移到 v3.x
      • SentenceTransformer.fit 特定参数的迁移
      • SentenceTransformer.fit 中使用的自定义数据集和数据加载器迁移

Sentence Transformer

  • 用法
    • 计算嵌入
      • 初始化 Sentence Transformer 模型
      • 计算嵌入
      • 提示模板
      • 输入序列长度
      • 多进程/多 GPU 编码
    • 语义文本相似度
      • 相似度计算
    • 语义搜索
      • 背景
      • 对称与非对称语义搜索
      • 手动实现
      • 优化实现
      • 速度优化
      • Elasticsearch
      • OpenSearch
      • 近似最近邻
      • 检索与重排序
      • 示例
    • 检索与重排序
      • 检索与重排序流程
      • 检索:双编码器
      • 重排序器:交叉编码器
      • 示例脚本
      • 预训练双编码器(检索)
      • 预训练交叉编码器(重排序)
    • 聚类
      • k-均值
      • 层次聚类
      • 快速聚类
      • 主题建模
    • 释义挖掘
      • paraphrase_mining()
    • 翻译句子挖掘
      • 基于边际的挖掘
      • 示例
    • 图像搜索
      • 安装
      • 用法
      • 示例
    • 嵌入量化
      • 二进制量化
      • 标量(int8)量化
      • 附加扩展
      • 演示
      • 亲自尝试
    • 创建自定义模型
      • Sentence Transformer 模型结构
      • 从 Transformers 模型创建 Sentence Transformer 模型
      • 高级:自定义模块
    • 加速推理
      • PyTorch
      • ONNX
      • OpenVINO
      • 基准测试
  • 预训练模型
    • 原始模型
    • 语义搜索模型
      • 多问答模型
      • MSMARCO 段落模型
    • 多语言模型
      • 语义相似度模型
      • 双语语料挖掘
    • 图像与文本模型
    • INSTRUCTOR 模型
    • 科学相似度模型
  • 训练概述
    • 为什么要微调?
    • 训练组件
    • 模型
    • 数据集
      • 数据集格式
    • 损失函数
    • 训练参数
    • 评估器
    • 训练器
      • 回调
    • 多数据集训练
    • 已弃用的训练
    • 最佳基础嵌入模型
    • 与 CrossEncoder 训练的比较
  • 数据集概述
    • Hugging Face Hub 上的数据集
    • 现有数据集
  • 损失概述
    • 损失表
    • 损失修正器
    • 蒸馏
    • 常用损失函数
    • 自定义损失函数
  • 训练示例
    • 语义文本相似度
      • 训练数据
      • 损失函数
    • 自然语言推理
      • 数据
      • SoftmaxLoss
      • MultipleNegativesRankingLoss
    • 释义数据
      • 预训练模型
    • Quora 重复问题
      • 训练
      • MultipleNegativesRankingLoss
      • 预训练模型
    • MS MARCO
      • 双编码器
    • 套娃嵌入
      • 用例
      • 结果
      • 训练
      • 推理
      • 代码示例
    • 自适应层
      • 用例
      • 结果
      • 训练
      • 推理
      • 代码示例
    • 多语言模型
      • 扩展您自己的模型
      • 训练
      • 数据集
      • 训练数据来源
      • 评估
      • 可用预训练模型
      • 用法
      • 性能
      • 引用
    • 模型蒸馏
      • 知识蒸馏
      • 速度-性能权衡
      • 降维
      • 量化
    • 增强 SBERT
      • 动机
      • 扩展到您自己的数据集
      • 方法论
      • 场景 1:有限或小型标注数据集(少量标记句子对)
      • 场景 2:无标注数据集(仅无标记句子对)
      • 训练
      • 引用
    • 使用提示训练
      • 什么是提示?
      • 我们为什么要使用提示进行训练?
      • 我们如何使用提示进行训练?
    • 使用 PEFT 适配器训练
      • 兼容性方法
      • 添加新适配器
      • 加载预训练适配器
      • 训练脚本
    • 无监督学习
      • TSDAE
      • SimCSE
      • CT
      • CT(批内负采样)
      • 掩码语言模型 (MLM)
      • GenQ
      • GPL
      • 性能比较
    • 领域适应
      • 领域适应 vs. 无监督学习
      • 自适应预训练
      • GPL: 生成式伪标签
    • 超参数优化
      • HPO 组件
      • 整合所有部分
      • 示例脚本
    • 分布式训练
      • 比较
      • FSDP

交叉编码器

  • 用法
    • 交叉编码器 vs. 双编码器
      • 交叉编码器 vs. 双编码器
      • 何时使用交叉编码器/双编码器?
      • 交叉编码器用法
      • 结合双编码器和交叉编码器
      • 训练交叉编码器
    • 检索与重排序
      • 检索与重排序流程
      • 检索:双编码器
      • 重排序器:交叉编码器
      • 示例脚本
      • 预训练双编码器(检索)
      • 预训练交叉编码器(重排序)
    • 加速推理
      • PyTorch
      • ONNX
      • OpenVINO
      • 基准测试
  • 预训练模型
    • MS MARCO
    • SQuAD (QNLI)
    • STSbenchmark
    • Quora 重复问题
    • NLI
    • 社区模型
  • 训练概述
    • 为什么要微调?
    • 训练组件
    • 模型
    • 数据集
      • 数据集格式
      • 困难负样本挖掘
    • 损失函数
    • 训练参数
    • 评估器
    • 训练器
      • 回调
    • 多数据集训练
    • 训练技巧
    • 已弃用的训练
    • 与 SentenceTransformer 训练的比较
  • 损失概述
    • 损失表
    • 蒸馏
    • 常用损失函数
    • 自定义损失函数
  • 训练示例
    • 语义文本相似度
      • 训练数据
      • 损失函数
      • 推理
    • 自然语言推理
      • 数据
      • CrossEntropyLoss
      • 推理
    • Quora 重复问题
      • 训练
      • 推理
    • MS MARCO
      • 交叉编码器
      • 训练脚本
      • 推理
    • 重排序器
      • BinaryCrossEntropyLoss
      • CachedMultipleNegativesRankingLoss
      • 推理
    • 模型蒸馏
      • 交叉编码器知识蒸馏
      • 推理
    • 分布式训练
      • 比较
      • FSDP

稀疏编码器

  • 用法
    • 计算稀疏嵌入
      • 初始化稀疏编码器模型
      • 计算嵌入
      • 输入序列长度
      • 控制稀疏度
      • SPLADE 模型的可解释性
      • 多进程/多 GPU 编码
    • 语义文本相似度
      • 相似度计算
    • 语义搜索
      • 手动搜索
      • 向量数据库搜索
      • Qdrant 集成
      • OpenSearch 集成
      • Seismic 集成
      • Elasticsearch 集成
    • 检索与重排序
      • 概述
      • 交互式演示:简单维基百科搜索
      • 综合评估:混合搜索流程
      • 预训练模型
    • 稀疏编码器评估
      • 带检索评估的示例
  • 预训练模型
    • 核心 SPLADE 模型
    • 无推理 SPLADE 模型
    • 模型集合
  • 训练概述
    • 为什么要微调?
    • 训练组件
    • 模型
    • 数据集
      • 数据集格式
    • 损失函数
    • 训练参数
    • 评估器
    • 训练器
      • 回调
    • 多数据集训练
    • 训练技巧
  • 数据集概述
    • Hugging Face Hub 上的数据集
    • 现有数据集
  • 损失概述
    • 稀疏特定损失函数
      • SPLADE Loss
      • CSR Loss
    • 损失表
    • 蒸馏
    • 常用损失函数
    • 自定义损失函数
  • 训练示例
    • 模型蒸馏
      • MarginMSE
    • MS MARCO
      • SparseMultipleNegativesRankingLoss
    • 语义文本相似度
      • 训练数据
      • 损失函数
    • 自然语言推理
      • 数据
      • SpladeLoss
    • Quora 重复问题
      • 训练
    • 信息检索
      • SparseMultipleNegativesRankingLoss (MNRL)
      • 推理与评估
    • 分布式训练
      • 比较
      • FSDP

包参考

  • Sentence Transformer
    • SentenceTransformer
      • SentenceTransformer
      • SentenceTransformerModelCardData
      • SimilarityFunction
    • 训练器
      • SentenceTransformerTrainer
    • 训练参数
      • SentenceTransformerTrainingArguments
    • 损失函数
      • BatchAllTripletLoss
      • BatchHardSoftMarginTripletLoss
      • BatchHardTripletLoss
      • BatchSemiHardTripletLoss
      • ContrastiveLoss
      • OnlineContrastiveLoss
      • ContrastiveTensionLoss
      • ContrastiveTensionLossInBatchNegatives
      • CoSENTLoss
      • AnglELoss
      • CosineSimilarityLoss
      • DenoisingAutoEncoderLoss
      • GISTEmbedLoss
      • CachedGISTEmbedLoss
      • MSELoss
      • MarginMSELoss
      • MatryoshkaLoss
      • Matryoshka2dLoss
      • AdaptiveLayerLoss
      • MegaBatchMarginLoss
      • MultipleNegativesRankingLoss
      • CachedMultipleNegativesRankingLoss
      • MultipleNegativesSymmetricRankingLoss
      • CachedMultipleNegativesSymmetricRankingLoss
      • SoftmaxLoss
      • TripletLoss
      • DistillKLDivLoss
    • 采样器
      • 批采样器
      • 多数据集批采样器
    • 评估
      • 二分类评估器
      • 嵌入相似度评估器
      • 信息检索评估器
      • NanoBEIREvaluator
      • MSEEvaluator
      • 释义挖掘评估器
      • 重排序评估器
      • 句子评估器
      • 顺序评估器
      • 翻译评估器
      • 三元组评估器
    • 数据集
      • ParallelSentencesDataset
      • SentenceLabelDataset
      • DenoisingAutoEncoderDataset
      • NoDuplicatesDataLoader
    • 模块
      • 主要模块
      • 更多模块
      • 基础模块
    • 量化
      • quantize_embeddings()
      • semantic_search_faiss()
      • semantic_search_usearch()
  • 交叉编码器
    • CrossEncoder
      • CrossEncoder
      • CrossEncoderModelCardData
    • 训练器
      • CrossEncoderTrainer
    • 训练参数
      • CrossEncoderTrainingArguments
    • 损失函数
      • BinaryCrossEntropyLoss
      • CrossEntropyLoss
      • LambdaLoss
      • ListMLELoss
      • PListMLELoss
      • ListNetLoss
      • MultipleNegativesRankingLoss
      • CachedMultipleNegativesRankingLoss
      • MSELoss
      • MarginMSELoss
      • RankNetLoss
    • 评估
      • CrossEncoderRerankingEvaluator
      • CrossEncoderNanoBEIREvaluator
      • CrossEncoderClassificationEvaluator
      • CrossEncoderCorrelationEvaluator
  • 稀疏编码器
    • SparseEncoder
      • SparseEncoder
      • SparseEncoderModelCardData
      • SimilarityFunction
    • 训练器
      • SparseEncoderTrainer
    • 训练参数
      • SparseEncoderTrainingArguments
    • 损失函数
      • SpladeLoss
      • FlopsLoss
      • CSRLoss
      • CSRReconstructionLoss
      • SparseMultipleNegativesRankingLoss
      • SparseMarginMSELoss
      • SparseDistillKLDivLoss
      • SparseTripletLoss
      • SparseCosineSimilarityLoss
      • SparseCoSENTLoss
      • SparseAnglELoss
      • SparseMSELoss
    • 采样器
      • 批采样器
      • 多数据集批采样器
    • 评估
      • SparseInformationRetrievalEvaluator
      • SparseNanoBEIREvaluator
      • SparseEmbeddingSimilarityEvaluator
      • SparseBinaryClassificationEvaluator
      • SparseTripletEvaluator
      • SparseRerankingEvaluator
      • SparseTranslationEvaluator
      • SparseMSEEvaluator
      • ReciprocalRankFusionEvaluator
    • 模块
      • SPLADE 池化
      • MLM Transformer
      • SparseAutoEncoder
      • SparseStaticEmbedding
    • 回调
      • SpladeRegularizerWeightSchedulerCallback
    • 搜索引擎
      • semantic_search_elasticsearch()
      • semantic_search_opensearch()
      • semantic_search_qdrant()
      • semantic_search_seismic()
  • util
    • 辅助函数
      • community_detection()
      • http_get()
      • is_training_available()
      • mine_hard_negatives()
      • normalize_embeddings()
      • paraphrase_mining()
      • semantic_search()
      • truncate_embeddings()
    • 模型优化
      • export_dynamic_quantized_onnx_model()
      • export_optimized_onnx_model()
      • export_static_quantized_openvino_model()
    • 相似度指标
      • cos_sim()
      • dot_score()
      • euclidean_sim()
      • manhattan_sim()
      • pairwise_cos_sim()
      • pairwise_dot_score()
      • pairwise_euclidean_sim()
      • pairwise_manhattan_sim()
Sentence Transformers
  • 用法
  • 图像搜索
  • 在 GitHub 上编辑

图像搜索

SentenceTransformers 提供了可以将图像和文本嵌入到相同向量空间的模型。这使得查找相似图像以及实现**图像搜索**成为可能。

ImageSearch

安装

请确保您已安装 transformers 以使用图像-文本模型,并使用最新的 PyTorch 版本(已使用 PyTorch 1.7.0 进行测试)。图像-文本模型已在 SentenceTransformers 1.0.0 版本中添加。图像-文本模型仍处于实验阶段。

用法

SentenceTransformers 为 OpenAI CLIP 模型提供了一个包装器,该模型在各种(图像、文本)对上进行了训练。

from sentence_transformers import SentenceTransformer
from PIL import Image

# Load CLIP model
model = SentenceTransformer("clip-ViT-B-32")

# Encode an image:
img_emb = model.encode(Image.open("two_dogs_in_snow.jpg"))

# Encode text descriptions
text_emb = model.encode(
    ["Two dogs in the snow", "A cat on a table", "A picture of London at night"]
)

# Compute similarities
similarity_scores = model.similarity(img_emb, text_emb)
print(similarity_scores)

您可以使用 CLIP 模型进行

  • 文本到图像 / 图像到文本 / 图像到图像 / 文本到文本搜索

  • 您可以使用常规的 SentenceTransformers 训练代码,在您自己的图像和文本数据上对其进行微调。

示例

  • Image_Search.ipynb(Colab 版本)展示了一个更大的示例,用于使用来自 Unsplash 的 25,000 张免费图片进行**文本到图像**和**图像到图像**搜索。

  • Image_Search-multilingual.ipynb(Colab 版本)是针对 50 多种语言的多语言文本到图像搜索示例。

  • Image_Clustering.ipynb(Colab 版本)展示了如何执行**图像聚类**。给定来自 Unsplash 的 25,000 张免费图片,我们找到了相似图像的簇。您可以控制聚类的敏感度。

  • Image_Duplicates.ipynb(Colab 版本)展示了一个示例,说明如何在大量照片集中查找重复和近似重复的图像。

  • Image_Classification.ipynb(Colab 版本)是一个(多语言)零样本图像分类示例。

上一页 下一页

© 版权所有 2025。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。