LangChain应用(2)
·
目录
LLM的缺陷
1. 输⼊⻓度限制 2. 缺乏私有知识:模型的训练数据有截⽌⽇期,且不包含我们的私⼈数据 3. 复杂任务处理能⼒弱:原⽣ API 本质是⼀个“⼀问⼀答”的接⼝。对于需要多个步骤的复杂任务需要⾃⼰编写复杂的逻辑来拆解任务、多次调⽤ API 并管理中间状态。 4. 输出格式不可控
大语言模型 vs 嵌入模型
生成式模型(大语言模型):问题->答案 表示型模型(嵌入式模型):"你好,我叫xxx"->[0.3,0.2,...](向量)为输入文本创建一个最佳,富含语义的数值表示 可以⽤数学的⽅式来⽐较向量,从⽽达到【度量语义】的⽬ 的!
嵌入模型
数学方式度量语义: 1.欧氏距离(直线距离越短,相似度越高) 2.余弦相似度(关注方向的差异)[方向代表"含义",长度代表"文本的长度","词汇的多少"]->维度越高,能捕捉的语义的复杂度就越强
1.语义搜索 Semantic Search 传统搜索:关键词匹配 语义搜索:将文档和查询转换为文档,计算向量间的相似度找到相关文档,即使没有查询到确切词汇 2.检索增强生成 RAG 向LLM提问,系统首先使用嵌入模型在知识库(如公司文档)进行语义搜索,找到相关内容,将内容和问题交给LLM生成答案。 3.推荐系统 将⽤⼾(根据其历史⾏为、偏好)和物品(商品、电影、新闻)都转换为向量。 4.异常检测 正常数据的向量通常会聚集在⼀起。如果⼀个新数据的向量远离⼤多数向量的聚集区,它就可能是⼀个异常点(如垃圾邮件、欺诈交易)。
主流嵌入模型
• 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)评测,是业界⽐较公 认的标准
一、两种主流接入方式
| 接入方式 | 适用模型 | 优点 | 缺点 |
|---|---|---|---|
| API 接入(闭源) | text-embedding-3-large、gemini-embedding-001 | 快速、无需管理基础设施 | 数据需上传第三方,有成本 |
| 本地部署(开源) | Qwen3-Embedding-8B 等 | 数据隐私安全、可定制 | 需要 GPU 资源,技术门槛高 |
二、API 接入(闭源)
通用步骤:
-
注册账号获取 API Key
-
安装 SDK 或构造 HTTP 请求
-
发送请求并处理返回的向量数据
OpenAI 示例
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"
}'
from openai import OpenAI client = OpenAI(api_key="your-api-key") response = client.embeddings.create( model="text-embedding-3-large", input="这是一段需要转换为向量的文本。", dimensions=1024 # 可选:降维 ) embedding = response.data[0].embedding
响应格式
{
"data": [{
"embedding": [-0.006929, -0.005336, ...],
"index": 0
}],
"model": "text-embedding-3-small",
"usage": {"total_tokens": 5}
}
三、本地部署(开源)
适用模型:Qwen3-Embedding-8B(需 16GB+ 显存)
通用步骤:
-
准备 GPU 服务器(足够显存)
-
从 HuggingFace/魔搭社区下载模型
-
使用
transformers等库加载推理
硬件要求:
-
Qwen3-Embedding-8B:至少 16GB 显存
四、主流嵌入模型
| 模型 | 提供商 | 维度 | 上下文长度 | 开源/闭源 |
|---|---|---|---|---|
| text-embedding-3-large | OpenAI | 3072(可降维) | 8192 | 闭源 |
| Qwen3-Embedding-8B | 阿里 | 4096(32-4096可调) | 32K | 开源 |
| gemini-embedding-001 | 3072(可降维) | 2048 | 闭源 |
五、选择建议
| 场景 | 推荐方式 |
|---|---|
| 快速原型/初创项目 | API 接入 |
| 数据高度敏感 | 本地部署 |
| 规模化应用 | 先 API,后迁移到本地 |
| 需要微调定制 | 本地部署 |
六、典型应用流程
输入文本 → 嵌入模型 → 向量 → 存入向量数据库 → 后续检索
实际应用中,获取向量后通常需要存入向量数据库(Chroma、Milvus、Pinecone 等)以供检索。可借助 LangChain 等框架统一嵌入模型接口,便于切换不同模型。
模型平台
1. Hugging Face(国外)https://huggingface.co/ 2.魔搭社区(国内)https://www.modelscope.cn/home
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)