1. 引言:两个最容易混淆的概念

很多刚开始接触 AI 大模型的朋友,都会被两个词绕晕:Embedding(嵌入)LLM 大模型(Large Language Model,大语言模型)

  • 有人说"用大模型做语义搜索",结果发现用的是 Embedding;
  • 有人说"用 Embedding 写文章",结果发现它根本不会写;
  • 还有人问:“ChatGPT 里面是不是也有 Embedding?”

这篇文章就用最通俗的语言,从零开始把这两个概念讲清楚。读完你会明白:它们各自解决什么问题、核心区别是什么、什么时候该用哪个,以及它俩是如何"合作"的。

先给一个最直观的类比:

  • Embedding 像一台"翻译坐标的机器":它把一段文字压缩成一串数字(向量),用来"度量两段话像不像"。
  • LLM 大模型像一个"会说话的大脑":它读得懂你的话,也能生成新的内容,用来"聊天、写作、回答问题"。

两者看似都在处理文字,但干的完全是两种活。

2. 认识 Embedding:把文字变成坐标的机器

2.1 什么是 Embedding

Embedding(嵌入/词向量),本质是一种把文字转换成数字向量的技术。

这里的"向量",你可以理解成一串有顺序的数字,比如:

[0.23, -0.15, 0.71, 0.08, ...]

这串数字的长度(维度)可能是 768 维、1024 维甚至更多。

为什么要把文字变成数字?因为计算机只认识数字。我们要想让计算机"理解"文字之间的相似性,就必须把文字映射到一个"数字空间"里。

2.2 一个生活化类比

想象你在一张大地图上给城市定位:

  • 北京在东经 116°、北纬 40°;
  • 上海在东经 121°、北纬 31°。

两个坐标越接近,说明两个城市地理位置越近。

Embedding 干的就是类似的事:它给每段文字算出一个"语义坐标"。"苹果"和"香蕉"的坐标会比较接近,"苹果"和"汽车"的坐标则相距很远。

2.3 Embedding 的核心能力

Embedding 模型的核心能力只有一件事:把文本映射成向量,让语义相近的文本在向量空间里距离更近

基于这个能力,我们可以做很多事情:

  • 语义搜索:用户问"怎么退火车票",能找到文档里"车票退款流程"这一段,哪怕字面完全不一样;
  • 文本去重:两段话讲的是同一个意思,向量距离很近,就能识别出来;
  • 推荐系统:找到和用户当前浏览内容"语义相似"的其他内容;
  • 聚类分析:把一堆新闻自动分成"体育"“财经”"科技"等类别。

2.4 常见 Embedding 模型

目前常用的 Embedding 模型包括:

  • OpenAI 的 text-embedding-3-small / text-embedding-3-large
  • 智谱的 embedding-2 / embedding-3
  • 百度的 bge-large-zh(BGE 系列)
  • 阿里的 text-embedding-v3
  • 开源的 m3ebge-m3

这些模型的共同特点:输入文字,输出向量,仅此而已。

3. 认识 LLM 大模型:会说话的大脑

3.1 什么是 LLM

LLM(Large Language Model,大语言模型),是一种参数量巨大、经过海量文本训练的生成式模型

它最典型的能力是:你给它一段文字(提示词 Prompt),它生成一段新的文字

我们熟悉的 ChatGPT、文心一言、通义千问、Kimi、DeepSeek 等产品,底层都是 LLM 大模型。

3.2 LLM 的核心能力

与 Embedding 相比,LLM 的能力要丰富得多:

  • 文本生成:写文章、写代码、写邮件、写诗;
  • 对话问答:理解上下文,进行多轮对话;
  • 总结归纳:把一篇长文压缩成几个要点;
  • 翻译改写:在不同语言、不同风格之间转换;
  • 推理分析:根据已知信息做逻辑推理。

3.3 LLM 的一个关键限制

但 LLM 也有个明显的短板:它不知道自己没学过的东西

比如你问它:“我们公司今年第三季度的销售额是多少?” 如果这段数据没有出现在它的训练语料里,它会:

  • 要么老实说"不知道";
  • 要么一本正经地胡说八道(这就是"幻觉"问题)。

正是这个短板,催生了 Embedding 与 LLM 的经典合作模式——RAG(检索增强生成),这个我们后面会讲。

4. 核心对比:全方位解析两者的区别

为了让零基础读者一目了然,下面从多个维度把 Embedding 和 LLM 对比清楚。

对比维度 Embedding 模型 LLM 大模型
核心任务 把文字变成向量(数字) 根据提示词生成文字
输入 一段文本 一段提示词(Prompt)
输出 一串数字(向量) 一段新文本
会"写文章"吗 不会
能算"相似度"吗 能,这是它的本职 不擅长,且成本高
模型规模 相对较小(百 MB ~ 几 GB) 非常庞大(几十 GB ~ 数百 GB)
单次调用成本 很低 较高
响应速度 相对慢
典型应用 搜索、推荐、去重、聚类 对话、写作、总结、推理
是否有"幻觉"问题 没有(它不生成文字)

4.1 一句话理解差异

  • Embedding 回答的问题是:“这段文字和哪段文字最像?”
  • LLM 回答的问题是:“根据你的要求,我该怎么回答?”

4.2 一个容易误解的点

很多初学者以为"大模型"就是"LLM",其实Embedding 模型也算一种模型,但通常规模小得多,也"不会说话"。而当我们说"大模型"时,日常语境下更多指 LLM。

5. 黄金搭档:Embedding + LLM 的 RAG 模式

理解了区别之后,最重要的知识点来了:它俩常常配合使用,取长补短

5.1 LLM 的痛点

前面说过,LLM 不知道私有数据,容易产生幻觉。比如企业内部的知识库、产品手册、最新新闻,LLM 都没有学过。

5.2 RAG 的工作流程

RAG(Retrieval-Augmented Generation,检索增强生成) 是目前最主流的解决方案,流程如下:

  1. 离线建库:把企业文档切成小段,用 Embedding 模型把每一段都转成向量,存到向量数据库里;
  2. 用户提问:用户问"我们公司的年假政策是什么?"
  3. 检索:把用户问题也用同一个 Embedding 模型转成向量,去向量数据库里找最相似的几段文档;
  4. 增强:把检索到的文档片段"塞进"提示词里,告诉 LLM:“请根据以下资料回答问题:……”
  5. 生成:LLM 基于真实资料生成答案,大大降低幻觉。

整个流程用一张图表示:

企业文档

切分成小段

Embedding 模型转成向量

存入向量数据库

用户提问

Embedding 模型转成向量

检索最相似的文档片段

拼接进提示词 Prompt

LLM 生成答案

返回给用户

5.3 通俗理解

可以把 RAG 想象成一次**“开卷考试”**:

  • LLM 是个聪明的考生,但脑子里的知识有限;
  • Embedding + 向量数据库就是"考前递给考生的参考资料";
  • 考生翻完资料再作答,自然答得更准。

6. 代码实战:用 Python 直观感受两者的区别

下面用 OpenAI 兼容接口各调用一次,直观感受它们的输出差异。

6.1 环境准备

pip install openai

6.2 调用 Embedding:输出是一串数字

from openai import OpenAI

client = OpenAI(
    api_key="sk-你的密钥",
    base_url="https://api.openai.com/v1"  # 可换成任意兼容服务地址
)

# 调用 Embedding 模型
resp = client.embeddings.create(
    model="text-embedding-3-small",
    input=["苹果很好吃", "香蕉也很好吃", "今天下雨了"]
)

for item in resp.data:
    vec = item.embedding
    print(f"文本索引: {item.index}, 向量维度: {len(vec)}")
    print(f"向量前 5 个数字: {vec[:5]}")
    print("-" * 40)

输出类似:

文本索引: 0, 向量维度: 1536
向量前 5 个数字: [0.0109, -0.0231, 0.0478, -0.0052, 0.0198]
----------------------------------------
文本索引: 1, 向量维度: 1536
向量前 5 个数字: [0.0201, -0.0187, 0.0512, -0.0011, 0.0253]
----------------------------------------
文本索引: 2, 向量维度: 1536
向量前 5 个数字: [-0.0312, 0.0421, -0.0088, 0.0334, -0.0278]
----------------------------------------

可以看到:它只输出数字,不会输出任何文字

6.3 调用 LLM:输出是一段文字

from openai import OpenAI

client = OpenAI(
    api_key="sk-你的密钥",
    base_url="https://api.openai.com/v1"
)

resp = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[
        {"role": "system", "content": "你是一个友好的助手。"},
        {"role": "user", "content": "用一句话解释什么是 Embedding。"}
    ]
)

print(resp.choices[0].message.content)

输出类似:

Embedding 就是把文字转换成一组数字(向量),让计算机能够衡量文字之间语义上的相似程度。

可以看到:LLM 输出的是自然流畅的文字

6.4 计算相似度:验证 Embedding 的能力

import numpy as np
from openai import OpenAI

client = OpenAI(api_key="sk-你的密钥", base_url="https://api.openai.com/v1")

texts = ["苹果很好吃", "香蕉也很好吃", "今天下雨了"]

resp = client.embeddings.create(
    model="text-embedding-3-small",
    input=texts
)
vectors = [np.array(item.embedding) for item in resp.data]

def cosine_similarity(a, b):
    return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))

print("苹果 vs 香蕉:", round(cosine_similarity(vectors[0], vectors[1]), 4))
print("苹果 vs 下雨:", round(cosine_similarity(vectors[0], vectors[2]), 4))

你会发现,“苹果"和"香蕉"的相似度明显高于"苹果"和"下雨”,这正是 Embedding 的价值所在。

7. 选型建议:什么时候用哪个

最后,给零基础读者一份简单实用的"决策指南"。

7.1 用 Embedding 的场景

  • 需要找相似内容:语义搜索、相似推荐;
  • 需要判断文本像不像:去重、聚类、分类;
  • 需要给 LLM 喂私有知识:RAG 的检索环节;
  • 成本敏感、数据量很大:Embedding 便宜且快。

7.2 用 LLM 的场景

  • 需要生成内容:写作、翻译、总结、代码;
  • 需要多轮对话:智能客服、陪聊助手;
  • 需要理解复杂指令并执行:结构化信息提取、推理分析;
  • 需要根据资料回答问题:RAG 的生成环节。

7.3 一句话总结选择逻辑

想"找相似的",用 Embedding;想"生成新的",用 LLM;想"基于私有数据回答问题",让两者合作构建 RAG。

8. 总结

我们来回顾一下这篇文章的核心要点:

  1. Embedding 的本质:把文字转成向量,用于度量语义相似度;
  2. LLM 的本质:根据提示词生成文字,是 AI 对话与写作的核心;
  3. 核心区别:Embedding 输出"数字",回答"像不像";LLM 输出"文字",回答"怎么说";
  4. 黄金组合:RAG 模式让 Embedding 负责"找资料",LLM 负责"写答案",解决 LLM 的幻觉与私有数据问题;
  5. 选型原则:找相似用 Embedding,生成用 LLM,私有数据问答用两者结合。

对于零基础入门者来说,不需要一上来就深究模型内部的数学原理,先理解"它俩各干什么、怎么配合",再用代码跑通一次 RAG 的最小闭环,就能建立起非常扎实的认知框架。

下一步,你可以试着动手做一个基于私有文档的问答机器人:切分文档 → Embedding 入库 → 向量检索 → LLM 生成,完整跑通后,你对这两个概念的理解会远超只看文章的人。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐