Logo

开始入门

  • 安装
    • 使用 pip 安装
    • 使用 Conda 安装
    • 从源代码安装
    • 可编辑安装
    • 安装支持 CUDA 的 PyTorch
  • 快速入门
    • 句子 Transformer
    • 交叉编码器
    • 下一步

句子 Transformer

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

交叉编码器

  • 使用方法
    • 检索 & 重排序
      • 检索 & 重排序管道
      • 检索:双编码器
      • 重排序器:交叉编码器
      • 示例脚本
      • 预训练双编码器(检索)
      • 预训练交叉编码器(重排序器)
  • 预训练模型
    • MS MARCO
    • SQuAD (QNLI)
    • STSbenchmark
    • Quora 重复问题
    • NLI
    • 社区模型
  • 训练概述
  • 训练示例
    • MS MARCO
      • 交叉编码器
      • 交叉编码器知识蒸馏

包参考

  • 句子 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
    • 采样器
      • 批量采样器
      • 多数据集批量采样器
    • 评估
      • BinaryClassificationEvaluator
      • EmbeddingSimilarityEvaluator
      • InformationRetrievalEvaluator
      • NanoBEIREvaluator
      • MSEEvaluator
      • ParaphraseMiningEvaluator
      • RerankingEvaluator
      • SentenceEvaluator
      • SequentialEvaluator
      • TranslationEvaluator
      • TripletEvaluator
    • 数据集
      • ParallelSentencesDataset
      • SentenceLabelDataset
      • DenoisingAutoEncoderDataset
      • NoDuplicatesDataLoader
    • 模型
      • 主要类
      • 更多类
    • 量化
      • quantize_embeddings()
      • semantic_search_faiss()
      • semantic_search_usearch()
  • 交叉编码器
    • CrossEncoder
      • CrossEncoder
      • 训练输入
    • 评估
      • CEBinaryAccuracyEvaluator
      • CEBinaryClassificationEvaluator
      • CECorrelationEvaluator
      • CEF1Evaluator
      • CESoftmaxAccuracyEvaluator
      • CERerankingEvaluator
  • 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 版本) 50 多种语言的多语言文本到图像搜索示例。

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

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

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

上一个 下一个

© 版权所有 2025。

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