Files
happy-llm/docs/chapter8/8.3 RAG.md

29 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 8.3 RAG
## 8.3.1 RAG 的基本原理
大语言模型LLM在生成内容时虽然具备强大的语言理解和生成能力但也面临着一些挑战。例如LLM有时会生成不准确或误导性的内容这被称为大模型“幻觉”。此外模型所依赖的训练数据可能过时尤其在面对最新的信息时生成结果的准确性和时效性难以保证。对于特定领域的专业知识LLM 的处理效率也较低,无法深入理解复杂的领域知识。因此,如何提升大模型的生成质量和效率,成为了当前研究的重要方向。
在这样的背景下检索增强生成Retrieval-Augmented GenerationRAG技术应运而生成为AI领域中的一大创新趋势。RAG 在生成答案之前,首先从外部的大规模文档数据库中检索出相关信息,并将这些信息融入到生成过程之中,从而指导和优化语言模型的输出。这一流程不仅极大地提升了内容生成的准确性和相关性,还使得生成的内容更加符合实时性要求。
RAG 的核心原理在于将“检索”与“生成”结合当用户提出查询时系统首先通过检索模块找到与问题相关的文本片段然后将这些片段作为附加信息传递给语言模型模型据此生成更为精准和可靠的回答。通过这种方式RAG 有效缓解了大语言模型的“幻觉”问题因为生成的内容建立在真实文档的基础上使得答案更具可追溯性和可信度。同时由于引入了最新的信息源RAG 技术大大加快了知识更新速度,使得系统可以及时吸收和反映最新的领域动态。
![alt text](./images/8-3-rag.png)
## 8.3 2 搭建一个 RAG 框架
接下来我会带领大家一步一步实现一个简单的RAG模型这个模型是基于RAG的一个简化版本我们称之为Tiny-RAG。Tiny-RAG只包含了RAG的核心功能即检索和生成其目的是帮助大家更好地理解RAG模型的原理和实现。
### Step 1: RAG流程介绍
RAG通过在语言模型生成答案之前先从广泛的文档数据库中检索相关信息然后利用这些信息来引导生成过程从而极大地提升了内容的准确性和相关性。RAG有效地缓解了幻觉问题提高了知识更新的速度并增强了内容生成的可追溯性使得大型语言模型在实际应用中变得更加实用和可信。
RAG的基本结构有哪些呢
- 向量化模块:用来将文档片段向量化。
- 文档加载和切分模块:用来加载文档并切分成文档片段。
- 数据库:存放文档片段及其对应的向量表示。
- 检索模块根据Query问题检索相关的文档片段。
- 大模型模块:根据检索到的文档回答用户的问题。
上述这些也就是TinyRAG的所有模块内容。