【AI应用开发框架】大语言模型(LLM)与嵌入模型

文章目录

    • [1. LLM的接入方式](#1. LLM的接入方式)
      • [1.1 API接入](#1.1 API接入)
      • [1.2 本地部署](#1.2 本地部署)
      • [1.3 SDK接入](#1.3 SDK接入)
      • [1.4 问题与思考](#1.4 问题与思考)
    • [2. 认识嵌入模型](#2. 认识嵌入模型)
      • [2.1 什么是嵌入模型?](#2.1 什么是嵌入模型?)
      • [2.2 嵌入模型的应用场景](#2.2 嵌入模型的应用场景)
      • [2.3 和大语言模型的区别](#2.3 和大语言模型的区别)
      • [2.4 常见嵌入模型](#2.4 常见嵌入模型)
      • [2.5 嵌入模型接入方式](#2.5 嵌入模型接入方式)
        • [2.5.1 API接入(闭源)](#2.5.1 API接入(闭源))
        • [2.5.2 本地接部署(模型下载到本地)](#2.5.2 本地接部署(模型下载到本地))
    • [3. 模型平台](#3. 模型平台)

背景

当我们自己构建AI应用时,无法直接使用大语言模型的客户端,那么就需要我们通过代码的方式,接入原生LLM的方式

1. LLM的接入方式

常见的原生LLM接入的方法主要有三种:API远程调用,本地部署,SDK和官方客户端库。

1.1 API接入

这是最主流、最便捷的接入方式,适用于快速开发、集成到现有应用的场景。

通过HTTP请求直接调用模型提供方部署在云端的大语言模型服务。

流程:

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

1.2 本地部署

大模型本地部署,这种是将开源的大语言模型部署在我们自己的硬件环境中(本地服务器或者私有云)。核心概念是:将下载模型的文件(权重和配置文件),使用专门的推理框架在本地服务器或GPU上加载并运行模型,然后用类似API的方式进行交互。

流程:

  1. 获取模型: 从Hugging Face(国外)、魔塔社区(国内)等平台下载开源模型的权重。

  2. 准备环境: 配置具有足够显卡(NVIDIA GPU)的服务器,安装必要的驱动和推理框架。

  3. 选择推理框架: 使用专为生产环境设计的框架来部署模型,例如:
    vLLM: 注重高吞吐量的推理服务,性能极佳。
    TGI: Hugging Face推出的推理框架,功能比较全面。
    Ollama: 非常用户友好,可以一键拉取并运行模型,适合快速入门和本地开发。
    LM Studio: 提供图形化界面,让本地使用模型像使用软件一样简单。

  4. 启动服务并调用: 框架会启动一个本地API服务器,我们可以像调用云端API一样向这个本地地址发送请求。

1.3 SDK接入

SDK方式接入大语言模型,本质上就是:不用我们自己手搓HTTP请求,而是 通过官方或者第三方提供的开发包(SDK)来调用模型的能力。

  • API = 服务接口(底层是HTTP)
  • SDK = 对API的封装(更方便开发)

比如我们直接调用API:

Http 复制代码
POST /v1/chat/completions
Authorization: Bearer xxx
Content-Type: application/json

{
  "model":"xxx",
  "messages":[
    {"role":"user","content":"你好"}
  ]
}

而SDK会帮我们封装成:

cpp 复制代码
client.chat("你好");

1.4 问题与思考

对于以上的三种接入模式,我们应该如何选择?

  • 数据敏感性: 如果我们要处理的数据及其的敏感,我们就选择本地部署的模式,可以保证我们数据的安全。
  • 技术实力和资源: 如果我们的团队没有足够强大的MLops(机器学习运维)能力,也没有足够预算购买GPU服务器,云端API是一个非常不错的选择。
  • 成本和规模: 如果应用规模很大 ,长期来看,本地部署的固定成本可能低于持续的API调用费用。反之,小规模调用API更加划算。
  • 定制需求: 如果我们只是使用模型的通用能力,云端的API已经足够。如果需要用自己的数据微调模型,则需要选择支持微调的API或直接本地部署。

实际上,只要是原生的LLM,无论我们怎样接入都会有限制。

  • 输入长度的限制: 所有的LLM都有固定的输入长度(如4k,8k,128k,400k Token)。我们无法将几百页的pdf或者整个公司的知识库交给模型。
  • 缺乏私有知识: 模型的训练数据有截至日期,且不包含我们的私人数据(如公司的文档,个人笔记等)。让模型基于这些只是进行问题的回答是非常的困难的。
  • 复杂任务处理能力弱: 原生的API本质上是一个"一问一答"的接口。对于需要多个步骤的复杂任务,我们需要编写复杂的逻辑来拆解任务,多次调用API并管理中间状态。
  • 输出格式不可控: 虽然我们可以通过提示词来要求模型按照一定格式的方式输出,但是它仍可能产生格式错误或者不合规的内容,需要我们自己编写代码来校验和清洗。

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

2. 认识嵌入模型

2.1 什么是嵌入模型?

嵌入模型,我们可以理解成为:把我们人类能读懂的内容(文本、图片、代码)转化成机器更容易计算和比较的向量。

说的更直白一点就是:大模型擅长生成 ,嵌入式模型擅长理解和表示

举个例子:

比如下面的这三句话:

今天天气真好

今天阳光不错

我想吃烧烤

在我们看来,这三句话的前两句意思相近,第三句完全不同,但是在机器看来,只是一堆的字符串。它并不知道语义关系。

嵌入模型会把他们变成向量:

0.12 , -0.33 , 0.89 , ...

0.10 , -0.30 , 0.85 , ...

-0.77 , 0.91 , -0.22 , ...

然后通过向量距离来判断:

  • 前两个向量的距离近 -> 语义相似
  • 第三个距离远 -> 语义不同

这就是 Embedding 的核心。

2.2 嵌入模型的应用场景

  1. 语义搜索

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

    语义搜索:则将我们要查询的词和匹配的文档都转化为向量的形式,通过计算向量间的相似度来查找相关的内容,即使文档中没有确切的词也能被检索到。

  2. 知识库问答(RAG)

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

  3. 推荐系统

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

  4. 异常检测

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

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

2.3 和大语言模型的区别

模型类型 作用
LLM 生成内容
Embedding 表示内容

一个负责说话,一个负责理解

2.4 常见嵌入模型

  • OpenAI的text-embedding系列
  • Qwen3-Embedding-8B(阿里巴巴)
  • gemini-mebedding-001(Google)

2.5 嵌入模型接入方式

嵌入模型的接入方式和使用方式根据模型的类型(闭源或开源)有根本性的不同。

下图清晰的展示了两种典型的接入流程:

2.5.1 API接入(闭源)

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

通用步骤:

  1. 注册账号并获取API Key: 在对应的云服务平台上注册账号,获取用于身份验证的API Key.
  2. 安装SDK或者构建HTTP请求: 使用官方提供的SDK(如open ai)或者直接构造HTTP请求。
  3. 调用API并处理响应: 发送文本,接收返回的JSON格式的向量数据。

流程:

客户端 -> Embedding API -> 返回向量

示例1:发起HTTP请求

h 复制代码
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"
 }'

收到响应:响应包含嵌入向量(浮点数列表)以及一些其他元数据:

c 复制代码
{
 	"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.5.2 本地接部署(模型下载到本地)

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

通用步骤:

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

3. 模型平台

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

官方网站:Hugging Face

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

官方网站:魔塔社区

相关推荐
江畔柳前堤5 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术5 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客5 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术6 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO6 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术7 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架7 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab7 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI7 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab7 小时前
【无标题】
人工智能·开源