LangChain:2.大模型介绍

大模型介绍

一.认识大语言模型

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. 核心原则应围绕“控制总热量摄入,确保充足蛋白质”。
  3. 分别对早餐、午餐、晚餐和训练加餐提出各1条核心建议(例如:早餐应包含优质蛋白和复合碳水)。
  4. 推荐2种适合该用户的具体健康零食。
  5. 避免推荐任何具体的保健品或药物。

输出格式
【免责声明】
[此处输出声明]
【核心原则】

【分餐建议】

  • 早餐:…
  • 午餐:…

【健康零食推荐】

(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):

image-20251112155321506

翻译一下问题:

杂耍者可以杂耍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个苹果,请问现在食堂总共有多少个苹果?”

结果如下:

image-20251112163056440

通过这个例子可以观察到,这就好像是“把答案告诉了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 ,用于计算一个数字列表中的最大值。
步骤二:自我审查与优化
现在,请从代码健壮性和可读性的角度,审查你上面编写的代码。
请回答:

  1. 如果输入是空列表,函数会怎样?如何改进?
  2. 变量命名和代码结构是否清晰?能否让它更易于理解?
  3. 请根据你的审查,给出一个优化后的最终版本。

在实际应用中,这些技巧常常是组合使用的。例如,我们可以:

  1. 使用 CO-STAR 框架设定基本结构和角色。
  2. 在框架的“Steps”或“Response”部分,融入思维链指令。
  3. 对于格式复杂的输出,在最后附上少样本示例。
  4. 最后,要求 AI 进行自我审查。

我们更多使用 LLM 的场景大都是编写代码,如果你们用过 Cursor、Trae这样的 AI IDE。应该不陌生在AI 帮我们编码之前,需要配置相关的“编码规则”–Rules。它其实就是这些 IDE 输入给 LLM 的提示词,告诉 LLM 编写代码时的注意事项与要求。

Cursor 官方提示词:https://cursor.directory/rules

image-20251112163649647

2. LLM 的接入方式

前面我们演示的都是通过现成的客户端,来进行 AI 行为,如聊天、生图等。如果现在要我们自己写一个 AI 应用来实现相关 AI 行为,则需要我们自行接入 LLM。

常见的原生 LLM (不经过第三方平台或复杂的代理层,直接与大语言模型提供方进行交互的方法)接入方式有三种:【API 远程调用】、【开源模型本地部署】和【SDK 和官方客户端库】

(1).API 接入

这是目前最主流、最便捷的接入方式,尤其适用于快速开发、集成到现有应用以及不想管理硬件资源的场景。

通过 HTTP 请求(通常是 RESTful API)直接调用模型提供商部署在云端的模型服务。代表厂商:

OpenAI (GPT-4o),Anthropic (Claude),Google (Gemini),百度文心一言,阿里通义千问,智谱 AI等。

典型流程就是:

  1. **注册账号并获取 API Key:**在模型提供商的平台上注册,获得用于身份验证的密钥。
  2. **查阅 API 文档:**了解请求的端点、参数(如模型名称、提示词、温度、最大生成长度等)和返回的数据格式。
  3. **构建 HTTP 请求:**在你的代码中,使用 HTTP 客户端库(如 Python 的 requests )构建一个包含 API Key(通常在 Header 中)和请求体(JSON 格式,包含你的提示和参数)的请求。
  4. **发送请求并处理响应:**将请求发送到提供商指定的 API 地址,然后解析返回的 JSON 数据,提取生成的文本。

以 OpenAI 为例,官网地址:https://platform.openai.com/(魔法上网)

接入流程参考:https://platform.openai.com/docs/quickstart

如果没有账号先注册账号,登录成功后,出现 settings 图标,点击 settings,选择 API keys 配置页面:

image-20251113094048004

点击 “Create new secret key” 按钮,新增 API key:

image-20251113094132197

image-20251113094143454

调用:

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)发起调用:
(调用需要开启系统代理)

image-20251113095200273

image-20251113095211946

输出:

{
"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 的方式进行交互。

典型流程是:

  1. **获取模型:**从 Hugging Face(国外)、魔搭社区(国内)等平台下载开源模型的权重。
  2. **准备环境:**配置具有足够显存(如 NVIDIA GPU)的服务器,安装必要的驱动和推理框架。
  3. **选择推理框架:**使用专为生产环境设计的框架来部署模型,例如:
  • **vLLM:**特别注重高吞吐量的推理服务,性能极佳。
  • **TGI:**Hugging Face 推出的推理框架,功能全面。
  • **Ollama:**非常用户友好,可以一键拉取和运行模型,适合快速入门和本地开发。
  • **LM Studio:**提供图形化界面,让本地运行模型像使用软件一样简单。
  1. 启动服务并调用:框架会启动一个本地 API 服务器(如 http://localhost:8000 ),你可以像调用云端 API 一样向这个本地地址发送请求。

以 Ollama 为例,下面我们来演示下具体过程。

①.下载并安装 Ollama

Ollama 是一款专为本地部署和运行大型语言模型 (LLM) 设计的开源工具,旨在简化大型语言模型(LLM) 的安装、运行和管理。它支持多种开源模型(如qwen、deepseek、LLaMA),并提供简单的 API接口,方便开发者调用,适合开发者和企业快速搭建私有化 AI 服务。

Ollama 官网: https://ollama.ai

  1. 下载 Ollama

    image-20251113095753076

  2. 安装 Ollama
    下载完成之后,一步一步安装即可。

  3. 验证
    安装完成后,Ollama默认会启动。
    访问: http://127.0.0.1:11434

    image-20251113095831081

    或者使用cmd 访问 ollama --version

    image-20251113095926801

②.拉取模型

Ollama 可以管理和部署模型,我们使用之前,需要先拉取模型。

  • 修改模型存储路径

模型默认安装在 C 盘个人目录下C:\Users\XXX.ollama ,可以修改 ollama 的模型存储路径,使得每次下载的模型都在指定的目录下。有以下两种方式:

  1. 配置系统环境变量

    变量名: OLLAMA_MODELS
    变量值: ${自定义路径}
    
  2. 通过 Ollama 界面来进行设置

    image-20251113100123181

    设置完成后,重启Ollama

  • 拉取模型

查找模型: https://ollama.com/search

DeepSeek-R1 为例, DeepSeek-R1 是一系列开放推理模型,其性能接近 O3 和 Gemini 2.5Pro 等领先模型。DeepSeek-R1 有不同的版本,我们需要根据自己机器的配置及需求来选择相应的版本。

image-20251113100249382

分为 1.5b , 7b , 8b 等,“b” 是 “Billion” (十亿) 的缩写,代表模型的 参数量级。671b 表示"满血"版本,其他版本称为"蒸馏"版本。

参数越多 → 模型"知识量"越大 → 处理复杂任务的能力越强,硬件需求也越高。

根据需求及电脑配置,选择合适的模型版本,以1.5b 为例:

ollama run deepseek-r1:1.5b

image-20251113100333715

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

image-20251113100352811

③.测试

模型拉取之后,可以通过命令行和 AI 模型对话。

ollama run deepseek-r1:1.5b

image-20251113100423712

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

1.5b

image-20251113100503789

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

image-20251113100524329

可以通过接口调用:

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,无论怎么接入都有限制。为什么?

  1. 输入长度限制:所有 LLM 都有固定的输入长度(如4K、8K、128K、400K Token)。我们无法将一本几百页的 PDF 或整个公司知识库直接塞给模型。

image-20251113101057390

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

image-20251113101125733

  1. 复杂任务处理能力弱:原生 API 本质是一个“一问一答”的接口。对于需要多个步骤的复杂任务(如“分析这份财报,总结要点,并生成一份PPT大纲”),我们需要自己编写复杂的逻辑来拆解任务、多次调用 API 并管理中间状态。

  2. 输出格式不可控:虽然可以通过提示词要求模型输出 JSON 或特定格式,但它仍可能产生格式错误或不合规的内容,需要我们自己编写后处理代码来校验和清洗。

像 LangChain 这样的框架,正是为了系统性地解决这些问题而诞生的。

二.认识嵌入模型

1. 什么是嵌入模型?

**大语言模型是生成式模型。**它理解输入并生成新的文本(回答问题、写文章)。它内部实际上也使用嵌入技术来理解输入,但最终目标是“创造”。

**而嵌入模型(Embedding Model)是表示型模型。**它的目标不是生成文本,而是为输入的文本创建一个最佳的、富含语义的数值表示(向量)。

由于计算机天生擅长处理数字,但不理解文字、图片的含义。嵌入(Embedding)的核心思想就是将人类世界的符号(如单词、句子、产品、用户、图片)转换为计算机能够理解的数值形式(即向量,本质上是一个数字列表),并且要求这种转换能够保留原始符号的语义和关系。

image-20251113101303383

我们可以把它想象成一个翻译过程,把人类语言“翻译”成计算机的“数学语言”。

结论:既然是“数学语言”,那么我们可以用数学的方式来比较向量,从而达到【度量语义】的目的!

用数学方式度量语义:
1.欧氏距离:
2.余弦相似度:

image-20251113101344707

2. 嵌入模型应用场景

根据嵌入的特性,由此延伸出了许多嵌入模型在 AI 应用的使用场景:

  • 语义搜索(Semantic Search)

传统搜索:依赖关键词匹配(搜“苹果” ,只能找到包含“苹果” 这个词的文档)。

语义搜索:则能将查询和文档都转换为向量,通过计算向量间的相似度来找到相关内容,即使文档中没有查询的确切词汇也能被检索到。如下图所示,即使知识库中并未直接出现“笔记本电脑无法充电” 这个词组,语义搜索也能通过向量相似度精准地找到该文档。

image-20251113101507955

  • 检索增强生成(Retrieval-Augmented Generation, RAG)

这是当前大语言模型应用的核心模式。当用户向 LLM 提问时,系统首先使用嵌入模型在知识库(如公司内部文档)中进行语义搜索,找到最相关的内容,然后将这些内容和问题一起交给 LLM 来生成答案。这极大地提高了答案的准确性和时效性。

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

image-20251113101625724

  • 推荐系统(Recommendation Systems)

将用户(根据其历史行为、偏好)和物品(商品、电影、新闻)都转换为向量。喜欢相似物品的用户,其向量会接近;相似的物品,其向量也会接近。通过计算用户和物品向量的相似度,就可以进行精准推荐。

例如:一个流媒体平台将用户 A(喜欢观看《盗梦空间》和《黑镜》)和所有电影都表示为向量。系统发现用户 A 的向量与那些也喜欢《盗梦空间》和《黑镜》的用户向量很接近,而这些用户普遍还喜欢《星际穿越》。尽管用户A从未看过《星际穿越》,但通过计算用户向量与电影向量的相似度,系统会将这部电影推荐给用户 A。

  • 异常检测(Anomaly Detection)

正常数据的向量通常会聚集在一起。如果一个新数据的向量远离大多数向量的聚集区,它就可能是一个异常点(如垃圾邮件、欺诈交易)。

例如:一个信用卡交易反欺诈系统,通过学习海量正常交易记录(如金额、地点、时间、商户类型等特征的向量)形成了“正常交易”的向量聚集区。当一笔新的交易发生时,系统将其转换为向量。如果该向量出现在“正常聚集区”之外(例如,一笔发生在通常消费地之外的高额交易),系统则会将其标记为潜在的欺诈交易并进行警报。
image-20251113101742015

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)评测,是业界比较公认的标准

image-20251113101843789

4. 嵌入模型接入方式

嵌入模型接入和使用方式根据模型类型(开源或闭源)有根本性的不同。下图清晰地展示了两种典型的接入流程:

image-20251113101950972

(1).API 接入(闭源)

这是最快速、最简单的方式,无需管理任何基础设施。只需要向模型提供商的服务端发送一个 HTTP请求即可。

适用模型: text-embedding-3-large , gemini-embedding-001 等。

通用步骤:

  1. 注册账号并获取API Key:在对应的云服务平台(如OpenAI Platform, Google AI Studio/VertexAI)上注册账号,获取用于身份验证的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)
(2).本地部署(开源)

这种方式需要自行准备计算资源(通常是带有GPU的机器)来运行模型,适合对数据隐私、成本和控制权有更高要求的场景。

适用模型: Qwen3-Embedding-8B 等。

通用步骤:

  1. 环境准备:准备一台有足够 GPU 显存的服务器(对于Qwen3-Embedding-8B,需要至少16GB以上显存)。
  2. 模型下载:从 Hugging Face 等模型仓库下载模型权重文件和配置文件。
  3. 代码集成:使用像 transformers 这样的库来加载模型并进行推理。

这部分有兴趣的同学可以下来自行研究。对于大多数初创项目或原型验证,从API方式开始是最佳选择。当应用规模化或面临严格的数据合规要求时,再考虑迁移到本地部署开源模型。

在实际应用中,直接调用嵌入模型获取结果,与直接调用原生 LLM 存在相似的问题:**无论是通过 API还是本地部署获得向量,下一步通常都是将它们存入向量数据库(如Chroma, Milvus, Pinecone等)以供后续检索。**为了便于切换不同的嵌入模型,很多项目会使用像LangChain 这样的框架,它们提供了统一的嵌入模型接口。

image-20251113102438659

三.模型平台

1. Hugging Face(国外)

Hugging Face 是一个知名的开源库和平台,该平台以其强大的 Transformer 模型库和易用的 API 而闻名,为开发者和研究人员提供了丰富的预训练模型、工具和资源。对于从事 AI 研究的人来说,其重要性不亚于 GitHub。

官网:https://huggingface.co/

image-20251113102537856

2. 魔搭社区(国内)

魔搭(ModelScope)是由阿里巴巴达摩院推出的开源模型即服务(MaaS)共享平台,汇聚了计算机视觉、自然语言处理、语音等多领域的数千个预训练 AI 模型。其核心理念是"开源、开放、共创",通过提供丰富的工具链和社区生态,降低 AI 开发门槛,尤其为企业本地私有化部署提供了一条高效路径。

官网:https://www.modelscope.cn/ (界面和 HuggingFace 设计的基本一样)

image-20251116110438520

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值