二、LangChain之认识嵌入式模型
三、认识嵌入模型
1. 什么是嵌入模型?
大语言模型是生成式模型。它理解输入并生成新的文本(回答问题、写文章)。它内部实际上也使用 嵌入技术来理解输入,但最终目标是“创造”。
而嵌入模型(Embedding Model)是表示型模型。它的目标不是生成文本,而是为输入的文本创建 一个最佳的、富含语义的数值表示(向量)。
由于计算机天生擅长处理数字,但不理解文字、图片的含义。嵌入(Embedding)的核心思想就是
将 人类世界的符号(如单词、句子、产品、用户、图片)转换为计算机能够理解的数值形式(即向量, 本质上是一个数字列表),并且要求这种转换能够保留原始符号的语义和关系。
我们可以把它想象成一个翻译过程,把人类语言“翻译”成计算机的“数学语言”。
结论:既然是“数学语言”,那么我们可以用数学的方式来比较向量,从而达到【度量语义】的目 的!
2. 嵌入模型应用场景
根据嵌入的特性,由此延伸出了许多嵌入模型在 AI 应用的使用场景:
• 语义搜索(Semantic Search)
传统搜索:依赖关键词匹配(搜 “苹果” ,只能找到包含 “苹果” 这个词的文档)。
语义搜索:则能将查询和文档都转换为向量,通过计算向量间的相似度来找到相关内容,即使文档中 没有查询的确切词汇也能被检索到。
如下图所示,即使知识库中并未直接出现 “笔记本电脑无法充 电” 这个词组,语义搜索也能通过向量相似度精准地找到该文档。
• 检索增强生成(Retrieval-Augmented Generation, RAG)
这是当前大语言模型应用的核心模式。当用户向 LLM 提问时,系统首先使用嵌入模型在知识库(如公 司内部文档)中进行语义搜索,找到最相关的内容,然后将这些内容和问题一起交给 LLM来生成答 案。这极大地提高了答案的准确性和时效性。
• 推荐系统(Recommendation Systems)
将用户(根据其历史行为、偏好)和物品(商品、电影、新闻)都转换为向量。喜欢相似物品的用 户,其向量会接近;相似的物品,其向量也会接近。通过计算用户和物品向量的相似度,就可以进行 精准推荐
• 异常检测(Anomaly Detection)
正常数据的向量通常会聚集在一起。如果一个新数据的向量远离大多数向量的聚集区,它就可能是一 个异常点(如垃圾邮件、欺诈交易)。
例如:一个信用卡交易反欺诈系统,通过学习海量正常交易记录(如金额、地点、时间、商户类型等 特征的向量)形成了“正常交易”的向量聚集区。当一笔新的交易发生时,系统将其转换为向量。如 果该向量出现在“正常聚集区”之外(例如,一笔发生在通常消费地之外的高额交易),系统则会将 其标记为潜在的欺诈交易并进行警报。
3. 主流的嵌入模型
• text-embedding-3-large (OpenAI):OpenAI 最强大的英语和非英语任务嵌入模型。默认维度 3072,可降维如1024维;输入令牌长度支持为8192
• Qwen3-Embedding-8B (阿里巴巴) :开源模型,支持100+种语言;上下文长度 32k;嵌入维度最 高 4096,支持用户定义的输出维度,范围从 32 到 4096。推理需要一定的GPU计算资源(例如, 至少需要16GB以上显存的GPU才能高效运行)。
• gemini-embedding-001 (Google) :支持100+种语言;默认维度 3072,可选降维版本:1536维 或 768维;输入令牌长度支持为2048
• Huggingface 的 MTEB 评测:https://huggingface.co/spaces/mteb/leaderboard
Huggingface 的 MTEB(Massive Multilingual Text Embedding Benchmark)评测,是业界比较公 认的标准
4. 嵌入模型接入方式
嵌入模型接入和使用方式根据模型类型(开源或闭源)有根本性的不同。下图清晰地展示了两种典型 的接入流程:
4.1 API 接入(闭源)
这是最快速、最简单的方式,无需管理任何基础设施。只需要向模型提供商的服务端发送一个 HTTP 请求即可。 适用模型: text-embedding-3-large , gemini-embedding-001 等。
通用步骤:
1. 注册账号并获取API Key:在对应的云服务平台(如OpenAI Platform, Google AI Studio/Vertex AI)上注册账号,获取用于身份验证的API Key。
2. 安装 SDK 或构造 HTTP请求:使用官方提供的SDK(如 openai , google-generativeai ) 或直接构造HTTP请求。
3. 调用API并处理响应:发送文本,接收返回的JSON格式的向量数据。
示例1:发起 HTTP 请求
curl https://api.openai.com/v1/embeddings -H "Content-Type: application/json" -H "Authorization: Bearer $OPENAI_API_KEY" -d '{ "input": "Your text string goes here", "model": "text-embedding-3-small" }'响应包含嵌入向量(浮点数列表)以及一些其他元数据:
{ "object": "list", "data": [ { "object": "embedding", "index": 0, "embedding": [ -0.006929283495992422, -0.005336422007530928, -4.547132266452536e-05, -0.024047505110502243 ], } ], "model": "text-embedding-3-small", "usage": { "prompt_tokens": 5, "total_tokens": 5 } }示例2:接入 SDK
安装库:pip install openai
# 使用 OpenAI Python SDK from openai import OpenAI import os # 1. 设置 API Key client = OpenAI(api_key="your-api-key") # 2. 准备输入文本 text = "这是一段需要转换为向量的文本。" # 3. 调用 API response = client.embeddings.create( model="text-embedding-3-large", # 指定模型 input=text, dimensions=1024 # 可选:指定输出维度,例如从3072降维到1024 ) # 4. 获取向量 embedding = response.data[0].embedding print(f"向量维度:{len(embedding)}") print(embedding)4.2 本地部署(开源)
这种方式需要自行准备计算资源(通常是带有GPU的机器)来运行模型,适合对数据隐私、成本和控 制权有更高要求的场景。
适用模型: Qwen3-Embedding-8B 等。
通用步骤:
1. 环境准备:准备一台有足够 GPU 显存的服务器(对于Qwen3-Embedding-8B,需要至少16GB以 上显存)。
2. 模型下载:从 Hugging Face 等模型仓库下载模型权重文件和配置文件。
3. 代码集成:使用像 transformers 这样的库来加载模型并进行推理。
在实际应用中,直接调用嵌入模型获取结果,与直接调用原生 LLM 存在相似的问题:无论是通过 API 还是本地部署获得向量,下一步通常都是将它们存入向量数据库(如Chroma, Milvus, Pinecone等) 以供后续检索。为了便于切换不同的嵌入模型,很多项目会使用像 LangChain 这样的框架,它们提供 了统一的嵌入模型接口。
四、模型平台
1. Hugging Face(国外)
Hugging Face 是一个知名的开源库和平台,该平台以其强大的 Transformer 模型库和易用的 API 而闻 名,为开发者和研究人员提供了丰富的预训练模型、工具和资源。对于从事 AI 研究的人来说,其重要 性不亚于 GitHub。
官网:https://huggingface.co/
2. 魔搭社区(国内)
魔搭(ModelScope)是由阿里巴巴达摩院推出的开源模型即服务(MaaS)共享平台,汇聚了计算机 视觉、自然语言处理、语音等多领域的数千个预训练 AI 模型。其核心理念是"开源、开放、共创",通 过提供丰富的工具链和社区生态,降低 AI 开发门槛,尤其为企业本地私有化部署提供了一条高效路 径。
官网:https://www.modelscope.cn/(界面和 HuggingFace 设计的基本一样
