从 Token 到 RAG:理解 AI Native 数据管道
从 Token 到 RAG:理解 AI Native 数据管道
一句话:RAG 不是什么魔法,它只是在”大模型读不懂你的私有数据”这个问题上,搭了一条最务实的桥。这条桥由三块砖铺成——Token、Embedding、Vector Database。搞懂它们怎么连起来的、哪里会断,是每个做 AI 产品的工程师逃不掉的功课。
第一块砖:Token——模型看到的”文字”
LLM 不读单词,也不读句子。它只认 token 序列。
输入是 token 序列,输出也是 token 序列。模型一辈子只干一件事:给定一串 token,猜下一个最可能的 token,然后把这个 token 拼到序列末尾,再猜下一个,循环往复。
一个 token 可能是一个完整单词(”apple”),也可能是子词碎片(”un” + “believ” + “able”),甚至只是单个字符——全看分词器怎么切。这是整个管道里最底层的粒度,一切从这里开始。
第二块砖:Embedding——把含义变成数字
机器不认文字,只认数字。这是根本矛盾。
Embedding 模型做的事:把一段文本映射成一个固定长度的浮点数向量。OpenAI 的是 1536 维,别的模型可能是别的维度,但道理一样。
真正的妙处不在”变成数字”,而在几何空间里的分布:语义相近的文本,向量也靠得近。”苹果”和”香蕉”扎堆,”苹果”和”汽车”离得老远。每段文本都在语义空间里拿到了自己的坐标——一个代表它”意思”的数字指纹。
第三块砖:Vector Database——让搜索变得能用
当你给一百万份文档都生成了 Embedding,问题来了:用户提个问题,你怎么在 100 毫秒内找出最相关的那 5 份文档?
逐一比对?太慢了,生产环境根本跑不动。
vector database 用 ANN 索引来搞定这件事——HNSW、IVF 这些数据结构让检索快到毫秒级。同时它还提供了生产必需的周边:增删改查、元数据过滤、水平扩展。市面上的选择很多:Pinecone、Weaviate、Qdrant、Milvus、Chroma,各有优劣。
三块砖拼在一起:RAG 的完整链路
当用户问”最新的报销政策是什么”,背后发生的其实是五步:
- 分词:把查询切成 token 序列
- 嵌入:用 Embedding 模型把查询变成一个语义向量
- 检索:拿这个向量去 vector database 里搜 Top K 个最相关的文档片段
- 拼装:把用户问题 + 检索到的文档片段塞进同一个 prompt
- 生成:发给 LLM,让模型基于这些”证据”来回答,而不是靠它训练时背下来的东西瞎猜
关键细节:Embedding 模型和生成模型通常是两个不同的模型。OpenAI 那边,text-embedding-ada-002 负责产出向量,GPT-4 负责产出文本。一个优化的是语义表示,一个优化的是文本生成,分工明确。
这就是 RAG 成为企业 AI 首选方案的原因:LLM 本来有训练数据截止日期,还爱幻觉,现在突然能访问到新鲜的、领域特定的、私有的信息了。
现实比原理残酷:四个最容易翻车的地方
分块策略是被严重低估的坑。 切太小,句子碎片离开上下文就失去了语义意义——一个孤立的半句话,Embedding 根本抓不准它的意思。切太大,浪费宝贵的 context window token,信噪比也往下掉。块多大合适?取决于文档类型:法律合同和 FAQ 页面的处理方式完全不同。光这一个决策,就能决定检索质量是优秀还是灾难。
检索相关性是第二个坎。 用户查询在向量空间里可能跟某篇文档很近,但跟用户的实际意图八竿子打不着。模型可不管这些——它忠实地把检索到的上下文编织进回答,产出一个自信但完全跑偏的答案。混合搜索(向量相似度 + 关键词匹配 BM25)是常见的缓解手段,但代价是增加了复杂度。
上下文膨胀是温水煮青蛙。 为了”保险”,一次检索 10 个片段塞进 prompt——prompt 变长了,延迟和成本都上去了,模型的注意力也被过多信息稀释。更多上下文并不总是更好。
垃圾进垃圾出,残忍但真实。 源文档里有错误、过时信息、自相矛盾的内容?LLM 会忠实地复现这些缺陷。RAG 让模型”基于证据回答”——这意味着证据本身必须过硬,否则就是在垃圾上建高楼。
核心要点
- Token 是 LLM 世界的原子单元——输入输出都走 token 序列,没有例外
- Embedding 把文本映射成语义空间里的固定长度向量,语义相近的东西在这个空间里天然扎堆
- Vector Database 用 ANN 索引(HNSW、IVF)在百万级 Embedding 上做毫秒级 ANN 搜索
- RAG 链路:分词查询 → Embedding → 向量库检索 → 拼装 context prompt → LLM 基于证据生成
- Embedding 模型和生成模型通常是分开的,各自优化各自的任务
- 四个核心挑战:分块策略、检索相关性、上下文膨胀、源数据质量
- RAG 不完美,但它是连接 LLM 原始能力与私有/特定/时效知识的最实用桥梁