让我们来看一个 Self-RAG 的例子,帮助我们更好地理解其工作原理。我们假设有一个问题:”Can you tell me the difference between llamas and alpacas?”,以及一个检索到的段落:”The alpaca (Lama pacos) is a species of South American camelid mammal. It is similar to, and often confused with, the llama. Alpacas are considerably smaller than llamas, and unlike llamas, they were not bred to be working animals, but were bred specifically for their fiber.”。
你可能听说过人工智能、机器学习、深度学习等概念,但你知道 RAG(Retrieval Augmented Generation,检索增强生成)和 Self-RAG 吗?今天,我们就一起深入了解一下这两个新兴的人工智能领域概念。
RAG:提升人工智能的知识增强能力
RAG 是一种让大型语言模型 (LLM) 在回答问题或生成文本时,先从大量文档中检索出相关的信息,然后基于这些信息生成回答或文本的方法。这种方法提高了预测的质量,使得开发者不必为每一个特定的任务重新训练整个大型模型,只需要外挂上知识库,即可为模型提供额外的信息输入,提高其回答的准确性。RAG 模型尤其适合知识密集型的任务。
然而,尽管 LLM 具有强大的能力,仍然存在一些问题需要 RAG 解决。例如,LLM 在生成文本时,可能会产生一些幻觉问题;大型模型的训练成本高,更新周期长,对于时效性强的数据处理能力有限;通用的 LLM 没有企业内部数据和用户数据,如何在保证数据安全的同时使用 LLM 成为了一个问题。
RAG 与 SFT:两种方法的对比
实际上,SFT(Supervised Fine-Tuning,监督微调)是解决 LLM 存在问题的另一种常见方法。比较起来,RAG 和 SFT 各有特长。RAG 适合动态数据,擅长利用外部资源,适用于知识密集型任务,而 SFT 可以对 LLM 进行微调以对齐预训练学到的外部知识,优于定制模型的行为或写作风格。两者并非相互排斥,而是可以根据业务需要,结合使用。
RAG 的应用及挑战
RAG 具有诸多优点,例如可扩展性、准确性、可控性、可解释性以及多功能性。例如,ChatPDF 就是一个典型的 RAG 应用案例,该系统首先读取 PDF 文件,将其转换为可处理的文本格式,然后对提取出来的文本进行清理和标准化。当用户提出问题时,ChatPDF 使用 OpenAI 的 Embeddings API 将问题转换为一个向量,并与每个分段的向量进行比较,以找到最相似的分段。最后,ChatPDF 会将 ChatGPT 生成的答案返回给用户,完成一次查询。
然而,RAG 也面临一些挑战。例如,检索效果依赖 embedding 和检索算法,目前可能检索到无关信息,反而对输出有负面影响;大模型如何利用检索到的信息仍是黑盒的,可能仍存在不准确(甚至生成的文本与检索信息相冲突)。
Self-RAG:主动智能的新篇章
与 RAG 不同,Self-RAG 是更加主动和智能的实现方式。它会首先判断是否需要额外检索事实性信息,当有需要时才进行检索,并对检索到的所有任务进行评估,最后生成结果会引用相关片段,以便于查证事实。Self-RAG 的这种自我反思和主动检索的方式,有助于提高模型的准确性和可靠性。
Self-RAG 的一个重要创新是反思字符,这些特殊标记用于检查模型的输出。它们分为 Retrieve 和 Critique 两种类型,用于判断是否需要检索更多信息,以及检索到的信息与输出之间的关系。
训练 Self-RAG 的过程中,我们需要让模型学会生成带有反思字符的文本。这种训练过程需要在一个包含预测的检索段落和反思字符的语料库上进行。在训练结束后,我们得到的模型可以自我评估输出,并在推理过程中自我调整,以达到更精细的输出生成。
一个简单的例子
让我们来看一个 Self-RAG 的例子,帮助我们更好地理解其工作原理。我们假设有一个问题:”Can you tell me the difference between llamas and alpacas?”,以及一个检索到的段落:”The alpaca (Lama pacos) is a species of South American camelid mammal. It is similar to, and often confused with, the llama. Alpacas are considerably smaller than llamas, and unlike llamas, they were not bred to be working animals, but were bred specifically for their fiber.”。
首先,我们把问题和段落作为提示输入到模型中,然后让模型生成返回结果。此时,Self-RAG 就会使用反思字符来自我评估输出,使其在推理过程中具有适应性。根据任务的不同,可以定制模型,通过检索更多段落来优先考虑事实准确性,或强调开放式任务的创造力。
结语
RAG 和 Self-RAG 的出现,进一步拓展了人工智能的边界,使得我们的机器能够更好地理解世界,更准确地回答问题。然而,这还只是开始,人工智能的未来还有无数的可能性等待我们去探索。让我们一起期待未来的到来,期待人工智能能为我们的生活带来更多的便利和惊喜。
+参考资料:原文链接 https://mp.weixin.qq.com/s/tpAJww8gs8uurEidRWSmwA