链载Ai

标题: 【精读】构建和扩展 RAG 系统的实践经验总结 [打印本页]

作者: 链载Ai    时间: 昨天 21:33
标题: 【精读】构建和扩展 RAG 系统的实践经验总结

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">本文是一份关于构建和扩展检索增强生成(RAG)系统的实践经验总结。原文作者 Jakob 基于他在谷歌设计和部署了超过 50 个 RAG 应用、服务约 500 万用户的经验,提炼出一套可复用的 RAG 设计决策蓝图

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">文章旨在帮助开发者理解 RAG 的核心概念,并指导他们如何围绕ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">知识库构建ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">内容检索ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">响应生成这三大关键环节做出明智的设计决策,从而构建出实用且高效的 RAG 系统。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0px 0.2em;color: rgb(255, 255, 255);background: rgb(85, 201, 234);">RAG 基本概念

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">我们先了解下 RAG 的基本概念,懂的朋友可以跳到下一章。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">RAG(Retrieval Augmented Generation)是一种通过向大型语言模型(LLMs)ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">提供外部知识库中的相关上下文,来增强其回答准确性和知识范围的技术。

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">其核心思想是在生成回答前,动态地从知识库中检索与用户问题最相关的信息,并将其注入到 LLMs 的提示词(Prompt)中。

以下面的提示词为例,RAG 检索到的内容会插入到 context 中,用户提问插入到 {question} 中

System:你是一个智能助手,负责解答与给定知识库和提供图片相关的问题。

- 严格仅使用以下上下文内容或提供的图片输入来回答最后的问题。逐步思考后再回答。回答要具体,并从上下文中提供示例。

=============
{context}
=============

不要试图编造答案:
- 如果仅从上下文或提供的图片无法确定问题的答案,请说“我无法确定该问题的答案。”并解释缺少哪些信息来回答问题。
- 如果上下文为空且未提供图片,只需说“我不知道该问题的答案。”

问题:{question}

有帮助且具体的答案:

RAG 不仅仅局限于向量数据库和文本嵌入,任何能为 LLM 动态提供上下文检索的方式都属于 RAG 范畴。

设计决策

1、构建知识库

关键问题

你要考虑

PS:Chunking (分块)是将大型文档或数据源(尤其非结构化文本)分割成更小、更易于管理和检索的单元(chunks)的过程。这样做有助于LLM更精确地定位和利用信息,并提高检索效率。

实施要点

2、内容存储与检索

关键问题

当我们准备好数据后,就要选择选择合适的数据存储方式。存储的决策和检索方法基于以下问题:

实施要点

3、生成有意义的响应

关键问题

响应生成是直接面向用户的环节,你需要考虑到

实施要点

总结与建议

最后,我还列举了你可以值得继续深入研究的方向

精读原文:A quarter decade of learnings from scaling RAG to millions of users[2






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5