12:48Better Stack
Log in to leave a comment
No posts yet
许多投入实战的大型语言模型 (LLM) 无法证明其业务价值而失败的症结非常明确,那就是“幻觉”。虽然任何人都能构建 RAG(检索增强生成)系统,但要达到企业要求的 95% 以上的回答准确度,则是另一个层面的问题。
如果数据充足但 AI 却给出错误的回答,这并不是模型的智力问题。这是一个信号,表明作为系统基础工程的数据管道不够牢固。我们以星球大战剧本等庞大的文本数据为例,公开构建严格基于特定知识的高性能 RAG 的秘诀。
机械式地切割数据会使 RAG 的心脏停止跳动。如果文本切分得太大,会混入不必要的噪音;如果切分得太小,核心上下文就会丢失。
必须舍弃单纯根据字符数进行切分的方式。保留语义边界的递归分块才是正解。特别是对于剧本数据,应将室内 (INT.) 和室外 (EXT.) 等场景转换分隔符设定为最高级标准。仅通过保留作为一个逻辑单位的“电影单元 (Cinematic Unit)”,搜索质量就能得到飞跃式提升。
LLM 倾向于记住上下文的前部和后部,但容易忽略中间信息。为了防御这一点,需要进行战略性设计。
| 分块方式 | 特点 | 准确度提升比例 |
|---|---|---|
| 固定长度切分 | 单纯的长度限制 | 基准点 |
| 递归切分 | 语境边界识别 | 增加 15% |
| 基于场景切分 | 保留逻辑单位 | 增加 20% |
向量数据库是将文本的语义转换为数学坐标并进行存储的仓库。到 2026 年,从性能和扩展性来看,Qdrant 是最合理的选择。
利用 Docker 在本地运行 Qdrant,可以同时兼顾安全性和速度。请通过挂载宿主机目录来构建永久保存数据的结构。必须减少每次重启系统时都要重复进行昂贵的嵌入 (Embedding) 运算的浪费。
如果使用 text-embedding-3-small 作为嵌入模型,会生成 1,536 维的向量。此时,将搜索指标设置为余弦相似度是最准确的。此外,应实现以文件哈希值作为 ID 的 Upsert 逻辑,从源头上杜绝由于重复存储相同数据而导致搜索效率下降的现象。
最后一步是设计将检索到的信息传递给模型的通道。使用 LangChain Expression Language (LCEL) 可以透明地控制复杂的流水线。
AI 的创造性在 RAG 系统中是致命的。请立即应用以下两项设置:
引用外部数据的 RAG 暴露在间接注入攻击之下。为了防止执行文档中隐藏的恶意指令,请在结构上分离系统提示词区域和上下文区域。如果没有建立定量评估回答对原始文档忠实度的流程,那么这样的 RAG 是无法在实务中使用的。
成功的 RAG 系统与其说取决于使用最新模型的技术力,不如说取决于对数据结构深入理解的洞察力。通过递归分块保留数据的意义,通过 Qdrant 确保稳定的存储,并通过严格的提示词控制来限制思考范围。当这三根支柱和谐统一时,才能完成企业可以信赖的智能助手。请尝试从现在运行的系统的分块单位更改为电影单元开始,你将立即感受到搜索准确度的差异。