1,扩展后rag整体
语义分块模型 gemma【添加】:2b:PDF 原始长文本 → 完整语义 Chunk(预处理一次性调用)
嵌入模型 mxbai-embed-large:Chunk → 语义向量(入库、检索提问时调用)
生成大模型 deepseek-r1:1.5b:检索上下文 + 问题 → 自然语言回答(对话阶段调用) 三者各司其职,互不替代、互不兼任核心任务。
2,需要准确分块(chunk)的原因:向量嵌入模型存在最大输入长度限制,一段上万字完整文本无法一次性送入模型生成向量,必须切割;同时:单个 Chunk 必须承载完整独立知识点,避免一个知识点被拆分到两个块,导致检索丢失上下文;块不能过小:单句碎片化,丢失上下文语义;块不能过大:包含多个无关知识点,向量语义混杂,检索匹配准确率下降。
3,流程串行顺序: PDF 原文 → 独立分块小模型(识别语义断点、切割完整知识块) → 干净语义 Chunk → mxbai-embed-large 向量模型生成向量入库
实现后全链路理解:程序先把 PDF 英语课本交给 Gemma 按课文知识点自动拆成一小段一小段,再把 txt 文档按固定重叠长度切开;所有片段全部转成数字向量存好;你提问时,程序先把问题也转成向量,找出课本 + txt 里最贴合你问题的 2 段原文,再把原文和问题一起发给 DeepSeek 大模型,让它只能照着原文给答案,不知道就如实说无法回答,全程不会乱编内容。