What is RAG?
What is RAG?
RAG 的全称是 Retrival-Augumented Generation.
Retrieval
检索外部知识库(文档、网页、数据库等)。
加载网页时,主要关注两点:
- PageRank,基于链接分析,网页的重要性
- BM25/TF-IDF,基于内容,查询与网页内容的匹配度
检索的主要方式
向量检索:文本转换为向量(Embedding),通过向量相似度(余弦相似度)匹配内容
关键词检索:传统方法(BM25,是TF-IDF的优化),基于关键词匹配检索文档
混合检索:混合向量和关键词
Augmented
将检索信息与原始查询混合成增强的Prompt
当前,在我的观点里,System prompt & ollama 提出的 Model prompt 等也是一种增强
Generation
注意,目前已经默认RAG流程中使用Frozen的LM进行生成。
但早期有过将Retrieval加入预训练、微调过程的尝试,仍有专门训练Retrieval的尝试。
RAG的优势
- 减少幻觉(Hallucination):依赖外部知识库,生产的答案更可靠
- 可解释性:可通过检索到的文档解释生成结果的来源
- 动态知识更新:无需重新训练模型,更新知识库即可更新信息
- 高效性:避免将全部知识存储在模型参数中,降低模型的体积
RAG的挑战
- 知识库构建:长文本切分可能会破坏连贯语义信息
- 噪声处理:包含无关或矛盾的信息
This post is licensed under CC BY 4.0 by the author.