Skip to content

为什么RAG很重要

Published: at 02:09 AM | 7 min read

LLM(Large Language Models)的未来发展将涉及边缘计算、普遍部署和深度个性化。这要求对LLM技术进行民主化处理,而这是离不开ReAct范式的。

成本必须降低。一个关键技术是检索增强生成(Retrieval-Augmented Generation,RAG),它可以在没有昂贵的训练过程(“微调”)的情况下对LLM进行个性化。

自主托管LLM

大型语言模型(LLM)了解很多,但对你一无所知(除非你是名人,如果是,请订阅——除非你是fbi.gov/wanted这类著名人物)。这是因为它们是在公共数据集上进行训练的,而你的私人信息(希望如此)并不公开。

我们在这里谈论的是敏感数据:银行对账单、个人日记、浏览器历史等。请原谅我多疑,但我不想将这些信息发送到云端托管的LLM,即使我支付了很高的费用来保护它们的机密性。我想在本地运行LLM。

许多LLM是免费提供的,因此您可以在离线环境中托管它们。举几个例子:Llama、Alpaca、Sentret、Mistral、Jynx和Zephyr。实际上,有太多的选择让您无法跟踪所有的选项——证明:其中两个是宝可梦,而你甚至都没有注意到。

让LLM了解您

这里有一种不同的方法:检索增强生成(RAG)。与其立即要求LLM生成答案,像LlamaIndex这样的框架会先从您的数据源中检索信息,然后将其添加到您的问题作为上下文,最后要求LLM基于丰富的提示来回答。

RAG克服了微调方法的这三个弱点:

RAG对您使用LLM的方式几乎没有限制。您仍然可以将LLM用作自动完成、聊天机器人、半自主代理等。它只是使LLM与您更相关。

我首先在LlamaIndex文档中写了上面的电梯演讲。希望他们不介意我在这里再次发布。)

(是的,它现在的数据获取受到上下文窗口的限制。如果您追求的是使其像您一样说话和行动,这可能会有些困难。)

RAG经过了实战检验。微软和OpenAI在这个领域处于领先地位。在企业层面上,Azure已经添加了一个名为GPT-RAG的功能。在消费者方面,必应聊天是一个很好的RAG实现的典型例子,GPT-4也具有函数调用能力。

具有RAG的LLM是代理人

函数调用在这里值得一提,尽管它超出了关于RAG的文章的范围。

在RAG中,检索的操作必须以某种方式执行。因此,它是一个函数。函数不必是纯函数(在数学意义上);也就是说,它们可以具有副作用(在编程世界中通常如此)。因此,函数只是LLM可以使用的工具。比喻地说,我们将那些具有使用工具能力的LLM称为”代理人”。

GPT-4并不是唯一一个可以调用函数的模型;通过一个称为”ReAct”的范式,“普通”的LLM也可以成为代理人。简单来说,与其要求LLM立即回答您的问题(或响应您的需求),它:

  1. 向LLM介绍一个它可以使用的工具列表,
  2. 询问LLM希望如何使用哪个工具来获取它需要的信息以自信地回答您的问题(或执行满足您需求的任务),
  3. 运行相应的函数,
  4. 将工具执行的结果反馈给LLM,就好像是您使用了这个工具,观察了结果,并向LLM描述了您所看到的,
  5. 询问LLM是否已经获得完成查询所需的所有内容,
  6. 如果是,最后要求LLM回应您的请求;否则,返回到步骤2。

ReAct为LLM民主化提供了代理能力。使用纯语义方法,ReAct范式使那些不设计与程序交互的模型能够这样做。它为自主托管大型语言模型的人创造了广阔的可能性。

总结

RAG和ReAct是民主化人工智能技术的未来的两个(嵌套的)概念。我对像LlamaIndex这样的开源项目的增长充满信心。如果您也相信未来普遍部署、边缘计算的LLM,请加入我们的旅程。

翻译来自:https://lmy.medium.com/why-rag-is-big-aa60282693dc