大模型介绍
一.认识大语言模型
1. 提示词编写技巧
编写合理且有效的提示词,是我们与 AI 进行有效对话的第一步,好的提示词能显著提升模型输出的质量和相关性。宗旨就是:将你的问题限定范围,让 AI 知道你要的答案具体要包含什么,提示词效果会大幅提升。
(1).CO-STAR 结构化框架
在目标设定和问题解决的场景下,清晰性和结构性是至关重要的。而有一种方法论,在这些方面表现都非常出色,那就是 CO-STAR 框架。这个提示词编写框架,由新加坡政府技术局(GovTech)的数据科学与 AI 团队开发,重点在于确保提供给 LLM 的提示词是全面且结构良好的,从而生成更相关和准确的回答。
CO-STAR 可以拆解为六个维度。
| 模块 | 说明 | 示例 |
|---|---|---|
| Context | 任务背景与上下文 | “你是电商客服,需解答用户关于 iPhone 17 的咨询,知识库包含最新价格和库存” |
| Objective | 核心目标 | “准确回答价格、发货时间,推荐适配配件” |
| Steps | 执行步骤 | “1. 识别用户问题类型;2. 检索知识库;3. 用亲切语气整理回复” |
| Tone | 语言风格 | “口语化,避免专业术语,使用‘亲~’‘呢’等语气词” |
| Audience | 目标用户 | “20–35 岁年轻消费者,对价格敏感,关注性价比” |
| Response | 输出格式 | “价格:XXX 元\n库存:XXX 件\n推荐配件:XXX(链接)” |
例如,我需要进行健康咨询,希望给出营养建议。那么我可以这样构建提示词:
优化前(模糊、低效):
我该怎么吃才能更健康?
优化后(清晰、有效):
角色:你是一个基于科学证据的 AI 营养顾问。重要约束:你提供的所有建议都仅为通用信息,不能替代专业医疗诊断。在给出任何具体建议前,必须首先声明此免责条款。
任务:基于以下用户信息,提供一份个性化的每日饮食原则性建议。
用户信息:
年龄:30岁
性别:男性
目标:减脂增肌
日常活动水平:办公室久坐,每周进行3次力量训练
回答要求:
- 首先,输出免责声明:“请注意:以下建议为通用健康信息…”
- 核心原则应围绕“控制总热量摄入,确保充足蛋白质”。
- 分别对早餐、午餐、晚餐和训练加餐提出各1条核心建议(例如:早餐应包含优质蛋白和复合碳水)。
- 推荐2种适合该用户的具体健康零食。
- 避免推荐任何具体的保健品或药物。
输出格式:
【免责声明】
[此处输出声明]
【核心原则】
- …
【分餐建议】
- 早餐:…
- 午餐:…
【健康零食推荐】
- …
- …
(2).少样本提示 / 多示例提示
这种方式通过给 AI 提供一两个输入-输出的例子,让它“照葫芦画瓢”。
**核心思想:**你不是在给它下指令,而是在“教”它你想要的格式、风格和逻辑。
**适用场景:**格式固定、风格独特、逻辑复杂的任务,如风格仿写、数据提取、复杂格式生成。
例如:
优化前(零样本提示):
2 🦜 9 等于多少?
优化后(少样本提示):
根据以下示例,处理问题。
示例1:2 🦜 3 = 5
示例2:4 🦜 7 = 11
现在请分析这个:2 🦜 9 等于多少?
再例如:
优化前(零样本提示):
请分析以下客户反馈,提取产品名称、情感倾向和具体问题。
反馈:“我刚买的耳机,才用了一周左边就没声音了,太让人失望了。”
优化后(少样本提示):
请根据以下示例,分析后续的客户反馈,并提取产品名称、情感倾向和具体问题。
示例1:
- 反馈:“笔记本的电池续航太差了,完全达不到宣传的10小时,最多就4小时。”
- 分析:
- 产品名称:笔记本电池
- 情感倾向:负面
- 具体问题:续航远低于宣传
示例2:
- 反馈:“客服响应很快,非常专业地帮我解决了软件激活问题,点赞!”
- 分析:
- 产品名称:客服服务
- 情感倾向:正面
- 具体问题:无
现在请分析这个:
- 反馈:“我刚买的耳机,才用了一周左边就没声音了,太让人失望了。”
通过示例,AI 清晰地学会了“产品名称”如何概括,“情感倾向”的标签是什么,“具体问题”如何简洁描述。这比单纯用文字描述规则要有效得多。
(3).思维链提示
提示工程的关键目标是让 AI 更好地理解复杂语义。这种能力的高低,可以直接通过模型处理复杂逻辑推理题的表现来检验。
可以这样理解:**当好的提示词能帮助模型解决原本解决不了的难题时,就说明它确实提升了模型的推理水平。**并且,提示词设计得越出色,这种提升效果就越显著。通过设置不同难度的推理测试,可以很清晰地验证这一点。
举个例子(该示例来自论文:Large Language Models are Zero-Shot Reasoners):

翻译一下问题:
杂耍者可以杂耍16个球。其中一半的球是高尔夫球,其中一半的高尔夫球是蓝色的。请问总共有多少个蓝色高尔夫球?
推理结果:
8 个蓝色高尔夫球
可以看到,答案错误。该逻辑题的数学计算过程并不复杂,但却设计了一个语言陷阱,即一半的一半是多少。
为了解决类似的逻辑问题,可以使用思维链提示。思维链提示相较于少样本提示是一种更好的提示方法,思维链提示最常用的两种方式:
- Few-shot-CoT:少样本思维链
- Zero-shot-CoT:零样本思维链
相比于少样本提示(Few-shot),少样本思维链(Few-shot-CoT)的不同之处只是在于需要在提示样本中不仅给出问题的答案、还同时需要给出问题推导的过程(即思维链),从而让模型学到思维链的推导过程,并将其应用到新的问题中。此技巧主要用于解决复杂推理问题,如数学、逻辑或多步骤规划。
**核心思想:**要求 AI “展示其工作过程”,而不是直接给出最终答案。这模仿了人类解决问题时的思考方式。
**适用场景:**数学题、逻辑推理、复杂决策、需要解释过程的任务。
例如,手动写一个思维链作为少样本提示的示例:
Q:“罗杰有五个网球,他又买了两盒网球,每盒有3个网球,请问他现在总共有多少个网球?”
A:“罗杰起初有五个网球,又买了两盒网球,每盒3个,所以,他总共买了2×3=6个网球,将起始的数量和购买的数量相加,可以得到他现在总共的网球数量:5+6=11,所以罗杰现在总共有11个网球”
在获得了一个思维链示例后,就可以以此作为样本进行 Few-shot-CoT 来解决第二个推理问题,如下所示:
示例1:
Q:“罗杰有五个网球,他又买了两盒网球,每盒有3个网球,请问他现在总共有多少个网球?”
A:“罗杰起初有五个网球,又买了两盒网球,每盒3个,所以,他总共买了2×3=6个网球,将起始的数量和购买的数量相加,可以得到他现在总共的网球数量:5+6=11,所以罗杰现在总共有11个网球”问:“食堂总共有23个苹果,如果他们用掉20个苹果,然后又买了6个苹果,请问现在食堂总共有多少个苹果?”
结果如下:
通过这个例子可以观察到,这就好像是“把答案告诉了AI”。从某种意义上说,是的,你告诉它的是“回答这个问题的正确方式和步骤” ,而不仅仅是最终的答案,AI 会模仿你提供的范本结构和逻辑,来解决新问题。
实际上,Few-shot-CoT 的方式虽然有效,但不一定是稳定且准确的。如果想要得到稳定的正确答案,需要更高阶的提示方法。你给的例子越详细,它模仿得就越像,这更像是一种 “教学” 或 “格式化” 。当你有一个非常复杂的逻辑流程,或者你希望 AI 严格按照某种格式(比如先分析A,再对比B,最后总结C)来输出时,就可以直接提供一个完美的“思考过程”作为范例。
(4).自动推理与零样本链式思考
零样本思维链(Zero-shot-CoT)这是少样本思维链(Few-shot-CoT)的简化版。只需在提示词末尾加上一句魔法短语,即可激发 AI 的推理能力。
核心思想:通过指令“请一步步进行推理并得出结论” ,强制 AI 在给出答案前先进行内部推理。
适用场景:任何需要一点逻辑思考的问题,即使你不太清楚具体步骤。
例如:
罗杰有五个网球,他又买了两盒网球,每盒有3个网球,请问他现在总共有多少个网球?请一步步进行推理并得出结论。
AI 的输出可能会变成:
罗杰最初有5个网球。
他买了两盒网球,每盒有3个网球,所以买来的网球数量是:2 × 3 = 6个网球。
因此,他现在总共有网球:5 + 6 = 11个。
答案:11个网球。
“一步步进行推理” 这个指令,相当于在引导模型的“注意力机制”。它告诉模型:“在生成最终答案之前,请先在你的‘脑海’里(即生成的文本序列中)模拟出一个缓慢、有序的推理上下文。”
当模型开始输出“第一步…第二步…”时,它实际上是在为自己创造一个更丰富、更逻辑化的上下文。
它在这个自己创造的优质上下文中进行推理,最终得出的结论自然比在贫瘠的上下文中(只有原始问题)更准确。
根据《Large Language Models are Zero-Shot Reasoners》论文中的结论,从海量数据的测试结果来看,Few-shot-CoT 比 Zero-shot-CoT 准确率更高。
(5).自我批判与迭代
要求 AI 在生成答案后,从特定角度对自己的答案进行审查和优化。
**核心思想:**将“生成”和“评审”两个步骤分离,利用 AI 的批判性思维来提升内容质量。
**适用场景:**代码审查、文案优化、论证强化、安全检查。
案例:编写一段代码后进行检查
优化前:
写一个Python函数,计算列表中的最大值。
优化后:
请执行以下两个步骤:
步骤一:编写代码
写一个Python函数 find_max ,用于计算一个数字列表中的最大值。
步骤二:自我审查与优化
现在,请从代码健壮性和可读性的角度,审查你上面编写的代码。
请回答:
- 如果输入是空列表,函数会怎样?如何改进?
- 变量命名和代码结构是否清晰?能否让它更易于理解?
- 请根据你的审查,给出一个优化后的最终版本。
在实际应用中,这些技巧常常是组合使用的。例如,我们可以:
- 使用 CO-STAR 框架设定基本结构和角色。
- 在框架的“Steps”或“Response”部分,融入思维链指令。
- 对于格式复杂的输出,在最后附上少样本示例。
- 最后,要求 AI 进行自我审查。
我们更多使用 LLM 的场景大都是编写代码,如果你们用过 Cursor、Trae这样的 AI IDE。应该不陌生在AI 帮我们编码之前,需要配置相关的“编码规则”–Rules。它其实就是这些 IDE 输入给 LLM 的提示词,告诉 LLM 编写代码时的注意事项与要求。
Cursor 官方提示词:https://cursor.directory/rules

2. LLM 的接入方式
前面我们演示的都是通过现成的客户端,来进行 AI 行为,如聊天、生图等。如果现在要我们自己写一个 AI 应用来实现相关 AI 行为,则需要我们自行接入 LLM。
常见的原生 LLM (不经过第三方平台或复杂的代理层,直接与大语言模型提供方进行交互的方法)接入方式有三种:【API 远程调用】、【开源模型本地部署】和【SDK 和官方客户端库】
(1).API 接入
这是目前最主流、最便捷的接入方式,尤其适用于快速开发、集成到现有应用以及不想管理硬件资源的场景。
通过 HTTP 请求(通常是 RESTful API)直接调用模型提供商部署在云端的模型服务。代表厂商:
OpenAI (GPT-4o),Anthropic (Claude),Google (Gemini),百度文心一言,阿里通义千问,智谱 AI等。
典型流程就是:
- **注册账号并获取 API Key:**在模型提供商的平台上注册,获得用于身份验证的密钥。
- **查阅 API 文档:**了解请求的端点、参数(如模型名称、提示词、温度、最大生成长度等)和返回的数据格式。
- **构建 HTTP 请求:**在你的代码中,使用 HTTP 客户端库(如 Python 的 requests )构建一个包含 API Key(通常在 Header 中)和请求体(JSON 格式,包含你的提示和参数)的请求。
- **发送请求并处理响应:**将请求发送到提供商指定的 API 地址,然后解析返回的 JSON 数据,提取生成的文本。
以 OpenAI 为例,官网地址:https://platform.openai.com/(魔法上网)
接入流程参考:https://platform.openai.com/docs/quickstart
如果没有账号先注册账号,登录成功后,出现 settings 图标,点击 settings,选择 API keys 配置页面:
点击 “Create new secret key” 按钮,新增 API key:
调用:
curl "https://api.openai.com/v1/responses" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-5", "input": "Write a one-sentence bedtime story about a unicorn." }'或使用 HTTP 客户端(如 Apifox)发起调用:
(调用需要开启系统代理)
输出:
{ "id": "resp_68da0ae40f40819c8f33465a1d923fcb0b003ac22034ffda", "object": "response", "created_at": 1759120100, "status": "completed", "background": false, "billing": { "payer": "developer" }, "error": null, "incomplete_details": null, "instructions": null, "max_output_tokens": null, "max_tool_calls": null, "model": "gpt-4o-mini-2024-07-18", "output": [ { "id": "msg_68da0ae4ab90819cb9544144353167060b003ac22034ffda", "type": "message", "status": "completed", "content": [ { "type": "output_text", "annotations": [], "logprobs": [], "text": "你好!我是一个人工智能助手,旨在回答你的问题和提供帮助。有什么我可以为你做的呢?" } ], "role": "assistant" } ], "parallel_tool_calls": true, "previous_response_id": null, "prompt_cache_key": null, "reasoning": { "effort": null, "summary": null }, "safety_identifier": null, "service_tier": "default", "store": true, "temperature": 1.0, "text": { "format": { "type": "text" }, "verbosity": "medium" }, "tool_choice": "auto", "tools": [], "top_logprobs": 0, "top_p": 1.0, "truncation": "disabled", "usage": { "input_tokens": 11, "input_tokens_details": { "cached_tokens": 0 }, "output_tokens": 27, "output_tokens_details": { "reasoning_tokens": 0 }, "total_tokens": 38 }, "user": null, "metadata": {} }API 参考:https://platform.openai.com/docs/api-reference/introduction
(2).本地接入
大模型本地部署,这种方式就是将开源的大型语言模型(如 Llama、ChatGLM、Qwen 等)部署在你自己的硬件环境(本地服务器或私有云)中。核心概念就是,将下载模型的文件(权重和配置文件),使用专门的推理框架在本地服务器或 GPU 上加载并运行模型,然后通过类似 API 的方式进行交互。
典型流程是:
- **获取模型:**从 Hugging Face(国外)、魔搭社区(国内)等平台下载开源模型的权重。
- **准备环境:**配置具有足够显存(如 NVIDIA GPU)的服务器,安装必要的驱动和推理框架。
- **选择推理框架:**使用专为生产环境设计的框架来部署模型,例如:
- **vLLM:**特别注重高吞吐量的推理服务,性能极佳。
- **TGI:**Hugging Face 推出的推理框架,功能全面。
- **Ollama:**非常用户友好,可以一键拉取和运行模型,适合快速入门和本地开发。
- **LM Studio:**提供图形化界面,让本地运行模型像使用软件一样简单。
- 启动服务并调用:框架会启动一个本地 API 服务器(如 http://localhost:8000 ),你可以像调用云端 API 一样向这个本地地址发送请求。
以 Ollama 为例,下面我们来演示下具体过程。
①.下载并安装 Ollama
Ollama 是一款专为本地部署和运行大型语言模型 (LLM) 设计的开源工具,旨在简化大型语言模型(LLM) 的安装、运行和管理。它支持多种开源模型(如qwen、deepseek、LLaMA),并提供简单的 API接口,方便开发者调用,适合开发者和企业快速搭建私有化 AI 服务。
Ollama 官网: https://ollama.ai
-
下载 Ollama

-
安装 Ollama
下载完成之后,一步一步安装即可。 -
验证
安装完成后,Ollama默认会启动。
访问: http://127.0.0.1:11434
或者使用cmd 访问
ollama --version
②.拉取模型
Ollama 可以管理和部署模型,我们使用之前,需要先拉取模型。
- 修改模型存储路径
模型默认安装在 C 盘个人目录下C:\Users\XXX.ollama ,可以修改 ollama 的模型存储路径,使得每次下载的模型都在指定的目录下。有以下两种方式:
配置系统环境变量
变量名: OLLAMA_MODELS 变量值: ${自定义路径}通过 Ollama 界面来进行设置
设置完成后,重启
Ollama。
- 拉取模型
查找模型: https://ollama.com/search
以 DeepSeek-R1 为例, DeepSeek-R1 是一系列开放推理模型,其性能接近 O3 和 Gemini 2.5Pro 等领先模型。DeepSeek-R1 有不同的版本,我们需要根据自己机器的配置及需求来选择相应的版本。

分为 1.5b , 7b , 8b 等,“b” 是 “Billion” (十亿) 的缩写,代表模型的 参数量级。671b 表示"满血"版本,其他版本称为"蒸馏"版本。
参数越多 → 模型"知识量"越大 → 处理复杂任务的能力越强,硬件需求也越高。
根据需求及电脑配置,选择合适的模型版本,以1.5b 为例:
ollama run deepseek-r1:1.5b

下载完成之后,就会出现命令行,可以通过命令行和 AI 模型对话。

③.测试
模型拉取之后,可以通过命令行和 AI 模型对话。
ollama run deepseek-r1:1.5b

我们可以对比下1.5b 和70b 的区别:
1.5b

70b(测试机器:28核CPU 64G内存 44G显存,速度3-4token/s)

可以通过接口调用:
curl "http://127.0.0.1:11434/api/chat" \
-d '{
"model": "deepseek-r1:1.5b",
"messages":[
{"role": "user", "content": "夸夸我"}
],
"stream": false
}'
(3).SDK 接入
这并非一种独立的接入方式,而是对第一种 API 接入的封装和简化。模型提供商通常会发布官方编程语言 SDK,为我们封装好了底层的 HTTP 请求细节,提供一个更符合编程习惯的、语言特定的函数库。(SDK 是一个完整的开发工具包; 里面有:库 头文件 / API 文档 工具 / 编译器 / 调试器 / 示例代码等)
典型流程(以 OpenAI Python SDK 为例):
安装库:
pip install openai
安装 OpenAI SDK 后,可以创建一个名为 example.py 的文件并将示例代码复制到其中:
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.responses.create(
model="gpt-5",
input="介绍一下你自己。"
)
print(response.output_text)
相比直接构造 HTTP 请求,代码更简洁、更易读、更易维护。
(4).问题与思考
对于以上三种接入方式,我们该如何选择?
- 看数据敏感性:如果数据极其敏感,必须留在内部,本地部署是唯一选择。
- 看技术实力和资源:如果团队没有强大的 MLops(机器学习运维)能力,也没有预算购买和维护GPU 服务器,云端 API 是更实际的选择。
- 看成本和规模:如果应用规模很大,长期来看,本地部署的固定成本可能低于持续的 API 调用费用。反之,小规模应用 API 更划算。
- 看定制需求:如果只是使用模型的通用能力,云端 API 足够。如果需要用自己的数据微调模型,则需要选择支持微调的 API 或直接本地部署。
实际上,只要是原生 LLM,无论怎么接入都有限制。为什么?
- 输入长度限制:所有 LLM 都有固定的输入长度(如4K、8K、128K、400K Token)。我们无法将一本几百页的 PDF 或整个公司知识库直接塞给模型。

- 缺乏私有知识:模型的训练数据有截止日期,且不包含我们的私人数据(如公司内部文档、个人笔记等)。让它基于这些知识回答问题,非常困难。

-
复杂任务处理能力弱:原生 API 本质是一个“一问一答”的接口。对于需要多个步骤的复杂任务(如“分析这份财报,总结要点,并生成一份PPT大纲”),我们需要自己编写复杂的逻辑来拆解任务、多次调用 API 并管理中间状态。
-
输出格式不可控:虽然可以通过提示词要求模型输出 JSON 或特定格式,但它仍可能产生格式错误或不合规的内容,需要我们自己编写后处理代码来校验和清洗。
像 LangChain 这样的框架,正是为了系统性地解决这些问题而诞生的。
二.认识嵌入模型
1. 什么是嵌入模型?
**大语言模型是生成式模型。**它理解输入并生成新的文本(回答问题、写文章)。它内部实际上也使用嵌入技术来理解输入,但最终目标是“创造”。
**而嵌入模型(Embedding Model)是表示型模型。**它的目标不是生成文本,而是为输入的文本创建一个最佳的、富含语义的数值表示(向量)。
由于计算机天生擅长处理数字,但不理解文字、图片的含义。嵌入(Embedding)的核心思想就是将人类世界的符号(如单词、句子、产品、用户、图片)转换为计算机能够理解的数值形式(即向量,本质上是一个数字列表),并且要求这种转换能够保留原始符号的语义和关系。

我们可以把它想象成一个翻译过程,把人类语言“翻译”成计算机的“数学语言”。
结论:既然是“数学语言”,那么我们可以用数学的方式来比较向量,从而达到【度量语义】的目的!
用数学方式度量语义:
1.欧氏距离:
2.余弦相似度:

2. 嵌入模型应用场景
根据嵌入的特性,由此延伸出了许多嵌入模型在 AI 应用的使用场景:
- 语义搜索(Semantic Search)
传统搜索:依赖关键词匹配(搜“苹果” ,只能找到包含“苹果” 这个词的文档)。
语义搜索:则能将查询和文档都转换为向量,通过计算向量间的相似度来找到相关内容,即使文档中没有查询的确切词汇也能被检索到。如下图所示,即使知识库中并未直接出现“笔记本电脑无法充电” 这个词组,语义搜索也能通过向量相似度精准地找到该文档。

- 检索增强生成(Retrieval-Augmented Generation, RAG)
这是当前大语言模型应用的核心模式。当用户向 LLM 提问时,系统首先使用嵌入模型在知识库(如公司内部文档)中进行语义搜索,找到最相关的内容,然后将这些内容和问题一起交给 LLM 来生成答案。这极大地提高了答案的准确性和时效性。
例如:一家公司的内部客服机器人接到员工提问: “我们今年新增加的带薪育儿假政策具体是怎样的?” 系统会首先使用嵌入模型在公司的最新人事制度文档、福利更新备忘录等资料中进行语义搜索,找到关于 “今年育儿假规定” 的具体条款,然后将这些【条款】和【问题】一起提交给 LLM,LLM 便能生成一个准确、具体的摘要回答,而非仅凭其内部训练数据可能产生的过时或泛泛的答案。

- 推荐系统(Recommendation Systems)
将用户(根据其历史行为、偏好)和物品(商品、电影、新闻)都转换为向量。喜欢相似物品的用户,其向量会接近;相似的物品,其向量也会接近。通过计算用户和物品向量的相似度,就可以进行精准推荐。
例如:一个流媒体平台将用户 A(喜欢观看《盗梦空间》和《黑镜》)和所有电影都表示为向量。系统发现用户 A 的向量与那些也喜欢《盗梦空间》和《黑镜》的用户向量很接近,而这些用户普遍还喜欢《星际穿越》。尽管用户A从未看过《星际穿越》,但通过计算用户向量与电影向量的相似度,系统会将这部电影推荐给用户 A。
- 异常检测(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. 嵌入模型接入方式
嵌入模型接入和使用方式根据模型类型(开源或闭源)有根本性的不同。下图清晰地展示了两种典型的接入流程:

(1).API 接入(闭源)
这是最快速、最简单的方式,无需管理任何基础设施。只需要向模型提供商的服务端发送一个 HTTP请求即可。
适用模型: text-embedding-3-large , gemini-embedding-001 等。
通用步骤:
- 注册账号并获取API Key:在对应的云服务平台(如OpenAI Platform, Google AI Studio/VertexAI)上注册账号,获取用于身份验证的API Key。
- 安装 SDK 或构造 HTTP请求:使用官方提供的SDK(如openai , google-generativeai )或直接构造HTTP请求。
- 调用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)
(2).本地部署(开源)
这种方式需要自行准备计算资源(通常是带有GPU的机器)来运行模型,适合对数据隐私、成本和控制权有更高要求的场景。
适用模型: Qwen3-Embedding-8B 等。
通用步骤:
- 环境准备:准备一台有足够 GPU 显存的服务器(对于Qwen3-Embedding-8B,需要至少16GB以上显存)。
- 模型下载:从 Hugging Face 等模型仓库下载模型权重文件和配置文件。
- 代码集成:使用像
transformers这样的库来加载模型并进行推理。
这部分有兴趣的同学可以下来自行研究。对于大多数初创项目或原型验证,从API方式开始是最佳选择。当应用规模化或面临严格的数据合规要求时,再考虑迁移到本地部署开源模型。
在实际应用中,直接调用嵌入模型获取结果,与直接调用原生 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 设计的基本一样)









1964

被折叠的 条评论
为什么被折叠?



