LLM基础单元判断及RAG中自定义Embedding相关技术疑问
LLM与RAG相关问题解答
一、三个断言的正误判断
- 断言1:正确。LLM的最基础处理单元就是token,每个模型都有专属的tokenizer,比如GPT用OpenAI的tokenizer、Llama用Meta的tokenizer,tokenizer负责把文本拆成模型能识别的token序列,不同模型的tokenizer拆分逻辑、词汇表都不一样。
- 断言2:错误。不是“依次输入”token,而是在上下文窗口范围内一次性输入整个token序列。LLM靠自注意力机制同时处理窗口内的所有token,通过注意力权重关联不同位置的token,上下文窗口大小是指模型单次能处理的最大token数,和输入方式无关。
- 断言3:正确。训练初期,模型的嵌入层参数是随机初始化的,随着训练推进,模型会学习到每个token对应的语义嵌入,最终形成固定的嵌入矩阵,每个token对应唯一的embedding向量。
二、RAG相关疑问解答
1. RAG中为何能自定义embedding?最终推理是否绕过模型自身embedding?
RAG里的“自定义embedding”,其实是用独立的嵌入模型(比如text-embedding-ada-002、BGE、Sentence-BERT这类)生成文本的向量表示,用来做向量数据库的检索匹配。这么做的原因是:
- 不少LLM的原生embedding是针对生成任务优化的,不一定适合语义检索场景,而专门的嵌入模型在相似度匹配上表现更好,能提升检索的精准度。
- 向量数据库存的是这些独立嵌入模型生成的向量,检索时也是用同一模型生成查询向量去匹配,保证检索逻辑的一致性。
至于最终推理阶段:完全不会绕过LLM自身的embedding。RAG的完整流程是:先用独立嵌入模型检索出相关文档,把文档内容和用户查询拼成prompt,再把这个prompt输入LLM。此时LLM会先用自己的tokenizer把prompt拆成token,再用自身的嵌入层把这些token转成embedding,之后才进入推理生成环节。独立嵌入模型只负责检索阶段的向量生成,和LLM推理时的embedding没有交集。
2. 为什么RAG Pipeline很少提及tokenizer?
主要是因为教程和工具把底层细节做了抽象:
- 检索阶段用的独立嵌入模型,其tokenizer已经被封装在模型内部了,用户只需要传文本,模型会自动完成token拆分和embedding生成,不用手动操作。
- 生成阶段的tokenizer操作,也被LLM的调用接口(比如OpenAI API、Hugging Face Pipeline)封装了,用户只需要传拼接好的prompt,接口会自动处理token拆分、上下文窗口截断等逻辑。
- 大部分RAG教程面向入门用户,重点讲检索逻辑、向量数据库使用、prompt拼接这些核心环节,tokenizer属于底层实现细节,所以被简化处理了。
内容的提问来源于stack exchange,提问作者the_he_man
相关产品推荐
相关产品推荐

