SuperAPI AI 工具集

sentence-transformers

智能体与模型

查看项目

更新于 10-16 03:04

技能介绍

用途:Sentence Transformers 是用于句子与文本嵌入的 Python 框架,基于 transformers,适合需要高质量嵌入的 RAG、语义相似度与搜索、文本聚类与分类、多语言嵌入,以及在本地运行嵌入(无需 API)等场景,也可作为 OpenAI 嵌入的成本效益替代。

主要能力:提供 5000+ 预训练模型,支持 100+ 语言,基于 PyTorch/Transformers。可用于语义搜索、余弦相似度与点积计算、批量编码,并支持微调。常见模型包括 all-MiniLM-L6-v2(384 维、快)、all-mpnet-base-v2(768 维)、all-roberta-large-v1(1024 维、较慢);多语言模型有 paraphrase-multilingual-MiniLM-L12-v2(50+ 语言)和 paraphrase-multilingual-mpnet-base-v2(100+ 语言);也有法律、科学论文、代码等领域模型。

使用方式:安装命令为 pip install sentence-transformers。基本用法是导入 SentenceTransformer,加载模型后调用 model.encode(sentences) 生成嵌入,并用 util.cos_sim 计算余弦相似度。语义搜索可对语料与查询编码后调用 util.semantic_search 取 top_k 结果。批量编码支持 batch_size、show_progress_bar 等参数。微调可结合 InputExample、losses 与 DataLoader,调用 model.fit 训练并保存。还可通过 HuggingFaceEmbeddings 集成 LangChain、通过 HuggingFaceEmbedding 集成 LlamaIndex。

适用场景与建议:通用原型可从 all-MiniLM-L6-v2 起步;生产 RAG 可用 all-mpnet-base-v2;需要高精度时可选 all-roberta-large-v1;多语言任务选对应多语言模型。建议归一化嵌入、有 GPU 时使用 GPU、批量编码并缓存嵌入、按领域微调、多测试不同模型并关注内存占用。性能方面,MiniLM 约 2000 句/秒、120MB;MPNet 约 600 句/秒、420MB;RoBERTa 约 300 句/秒、1.3GB。

限制:若需要基于 API 的最高质量嵌入,可考虑 OpenAI Embeddings;需要任务特定指令可用 Instructor;需要托管服务可用 Cohere Embed。其余如具体收费与价格信息暂未提供。