Logo

入门指南

  • 安装
    • 使用 pip 安装
    • 使用 Conda 安装
    • 从源码安装
    • 可编辑安装
    • 安装支持 CUDA 的 PyTorch
  • 快速入门
    • Sentence Transformer
    • Cross Encoder
    • 下一步
  • 迁移指南
    • 从 v2.x 迁移到 v3.x
      • 从 SentenceTransformer.fit 迁移特定参数
      • 迁移在 SentenceTransformer.fit 中使用的自定义数据集和 DataLoaders
    • 从 v3.x 迁移到 v4.x
      • 迁移 CrossEncoder 初始化和方法中的参数
      • 从 CrossEncoder.fit 迁移特定参数
      • 迁移 CrossEncoder 评估器

Sentence Transformer

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

Cross Encoder

  • 使用方法
    • Cross-Encoder vs Bi-Encoder
      • Cross-Encoder vs. Bi-Encoder
      • 何时使用 Cross-/Bi-Encoders?
      • Cross-Encoders 用法
      • 结合 Bi- 和 Cross-Encoders
      • 训练 Cross-Encoders
    • 检索 & 重排序
      • 检索 & 重排序 Pipeline
      • 检索:Bi-Encoder
      • 重排序器:Cross-Encoder
      • 示例脚本
      • 预训练 Bi-Encoders(检索)
      • 预训练 Cross-Encoders(重排序器)
    • 加速推理
      • PyTorch
      • ONNX
      • OpenVINO
      • 基准测试
  • 预训练模型
    • MS MARCO
    • SQuAD (QNLI)
    • STSbenchmark
    • Quora 重复问题
    • NLI
    • 社区模型
  • 训练概述
    • 为何微调?
    • 训练组件
    • 数据集
      • 数据集格式
      • Hard Negatives Mining
    • 损失函数
    • 训练参数
    • 评估器
    • 训练器
      • 回调
    • 多数据集训练
    • 训练技巧
    • 已弃用的训练
    • 与 SentenceTransformer 训练的比较
  • 损失概述
    • 损失表
    • 蒸馏
    • 常用损失函数
    • 自定义损失函数
  • 训练示例
    • 语义文本相似度
      • 训练数据
      • 损失函数
      • 推理
    • 自然语言推理
      • 数据
      • CrossEntropyLoss
      • 推理
    • Quora 重复问题
      • 训练
      • 推理
    • MS MARCO
      • Cross Encoder
      • 训练脚本
      • 推理
    • Rerankers
      • BinaryCrossEntropyLoss
      • CachedMultipleNegativesRankingLoss
      • 推理
    • 模型蒸馏
      • Cross Encoder 知识蒸馏
      • 推理
    • 分布式训练
      • 比较
      • 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
    • Samplers
      • BatchSamplers
      • MultiDatasetBatchSamplers
    • 评估
      • BinaryClassificationEvaluator
      • EmbeddingSimilarityEvaluator
      • InformationRetrievalEvaluator
      • NanoBEIREvaluator
      • MSEEvaluator
      • ParaphraseMiningEvaluator
      • RerankingEvaluator
      • SentenceEvaluator
      • SequentialEvaluator
      • TranslationEvaluator
      • TripletEvaluator
    • 数据集
      • ParallelSentencesDataset
      • SentenceLabelDataset
      • DenoisingAutoEncoderDataset
      • NoDuplicatesDataLoader
    • 模型
      • 主要类
      • 更多类
    • 量化
      • quantize_embeddings()
      • semantic_search_faiss()
      • semantic_search_usearch()
  • Cross Encoder
    • CrossEncoder
      • CrossEncoder
      • CrossEncoderModelCardData
    • 训练器
      • CrossEncoderTrainer
    • 训练参数
      • CrossEncoderTrainingArguments
    • 损失函数
      • BinaryCrossEntropyLoss
      • CrossEntropyLoss
      • LambdaLoss
      • ListMLELoss
      • PListMLELoss
      • ListNetLoss
      • MultipleNegativesRankingLoss
      • CachedMultipleNegativesRankingLoss
      • MSELoss
      • MarginMSELoss
      • RankNetLoss
    • 评估
      • CrossEncoderRerankingEvaluator
      • CrossEncoderNanoBEIREvaluator
      • CrossEncoderClassificationEvaluator
      • CrossEncoderCorrelationEvaluator
  • 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 以使用 image-text-models,并使用最新的 PyTorch 版本(已使用 PyTorch 1.7.0 测试)。Image-Text-Models 已在 SentenceTransformers 版本 1.0.0 中添加。Image-Text-Models 仍处于实验阶段。

使用方法

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 版本) 多语言 text2image 搜索示例,支持 50 多种语言。

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

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

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

上一个 下一个

© 版权所有 2025 年。

使用 Sphinx 构建,主题由 theme 提供,托管于 Read the Docs。