当我们用 RAG 构建一个知识库问答应用的时候,总是希望知识库里面灌的数据越多,问答的效果越好,事实真是如此吗?这篇文章给大家答案。引言在人工智能问答系统...

贴文 3周前
790 0

当我们用 RAG 构建一个知识库问答应用的时候,总是希望知识库里面灌的数据越多,问答的效果越好,事实真是如此吗?这篇文章给大家答案。

引言

在人工智能问答系统的发展中,RAG(Retrieval-Augmented Generation)技术以其独特的检索增强生成方式,为减少大模型幻觉开辟了新的天地。然而,在实际落地过程中有一个很大的疑问:RAG 系统,数据越多效果越好吗?本文将深入分析数据量如何影响 RAG 系统的问答效果,并讨论如何优化这一系统以适应不断增长的海量数据。

什么是 RAG?

大型语言模型(LLMs)已经展现出了强大的能力,但在实际应用中仍面临很多挑战,如模型幻觉、知识更新缓慢以及答案缺乏可信度等。LLM 虽然是在非常庞大的数据集上训练的,但并不是在您的数据上训练的。检索增强生成(RAG)通过将您的数据链接到 LLMs 来解决这个问题。

RAG 是一种将知识检索与生成模型相结合的技术,可以提高问答系统的准确性和相关性。它通过从外部知识源中动态检索信息,并将检索到的数据作为参考来组织答案,从而能有效缓解 LLM 中存在的幻觉问题。

RAG 系统

RAG 的工作流程主要包含三个模块:

索引(indexing): 文本索引的构建包括以下步骤:文档解析、文本分块、Embedding 向量化和创建索引。先将不同格式的原始文件解析转换为纯文本,再把文本切分成较小的文本块。通过 Embedding 为每一个文本块生成一个向量表示,用于计算文本向量和问题向量之间的相似度。创建索引将原始文本块和 Embedding 向量以键值对的形式存储,以便将来进行快速和频繁的搜索。

检索(Retrieval) :使用 Embedding 模型将用户输入问题转换为向量,计算问题的 Embedding 向量和语料库中文本块 Embedding 向量之间的相似度,选择相似度最高的前 K 个文档块作为当前问题的增强上下文信息。

生成(Generation) :将检索得到的前 K 个文本块和用户问题一起送进大模型,让大模型基于给定的文本块来回答用户的问题 网页链接

暂无评论

暂无评论...