如果你是 ChatGPT 的重度用户,你可能会感受到当今 AI 产品有许多的局限性:幻觉,过时的信息,领域知识的缺乏,机密数据的处理等等。 这一年来,有一个技术在硅谷引起了越来越多的关注,那就是检索增强生成(RAG)。
在这篇文章里,我将介绍 RAG 究竟是什么,以及硅谷创业者和科研人如何看待它的未来。
大语言模型的局限性
- 幻觉:模型可能会生成不正确或捏造的信息,影响其可靠性。
- 过时的信息:由于模型是在静态数据集上训练的,因此无法提供训练日期之后发生的事件的信息。
- 缺乏领域知识:模型可能对专业领域没有深入的了解,导致答案过于简单或不准确。
- 处理机密数据:使用大语言模型对于涉及公司数据或个人信息的任务具有挑战性。
所有这些都表明一个需求,就是要把额外的信息合并到预先训练好的大语言模型中。
技术解析
RAG 最简单的例子
RAG 论文由 Facebook AI Research 于 2020 年 10 月首次提出,旨在提高处理自然语言任务的性能。
让我们看一个最简单的例子。 比如现在我们有一份旅游景点打卡清单,希望大语言模型能够谈论这些内容。 我们把每一行看作一个文本文档。“在公园里悠闲地散步,呼吸新鲜空气。”,
“参观当地博物馆并发现新事物。”,
“参加现场音乐会并感受节奏。”,
“去徒步旅行,欣赏自然风光。”,
“和朋友一起野餐,分享欢笑。”,
当用户输入这个:
user_input = “我喜欢徒步”
系统可以搜索刚才那个列表,找出最相关的文档。这里我们定义相似度为拥有最多重复的字好了。
relevant_document = “去徒步旅行,欣赏自然风光。”
然后把用户输入和搜到的最相关文档替换进准备好的提示词里。
prompt =
“你是一个为活动提供建议的机器人。 你需要用非常短的句子回答,并且不包含额外的信息。
这是推荐的活动:{relevant_document}
用户输入是:{user_input}
根据推荐的活动和用户输入,向用户推荐好玩的景点。”
现在系统可以将新的提示词发送给大语言模型,等它回复个啥出来:
“赞! 根据您对徒步旅行的兴趣,我建议您尝试附近的步道,享受充满挑战且有益的体验,欣赏壮丽的景色,享受有趣且富有挑战性的冒险。”
Duang~这就是 RAG 技术的基本理念。
潜在的改进
这是最简化的版本,实际上,有一些潜在的改进——
- 根据可扩展性、云支持和多模态支持的需求,将这些文档存储在向量库中。
- 预处理文档和用户输入。 把它们编码在词向量空间中,其中每个词都是高维空间中的向量。
- 相应地,把相似性度量改成向量相关的运算。
- 点积:两个向量的相乘
- 余弦相似度:测量两个向量之间的角度
- 欧氏距离:测量两个向量之间的距离
此外,还有具有更多模块和不同组件的高级 RAG。
应用落地场景
自 2023 年夏季以来,RAG 受到了广泛关注。我们看到各家科技巨头已经开始提供工具,来辅助他们的客户构建 RAG 应用程序,比如 Google、AWS、IBM、微软、NVIDIA 等。
英伟达的人工智能软件副总裁 Kari Briski 在官网上说:“随着企业在 2024 年采用这些人工智能框架,预计我们会听到更多有关 RAG 的信息。”
想象一下在这些现实场景中使用 RAG,其中一些已经成为现实——
- 教育:教育平台使用 RAG 生成学习材料,并创建学科题目的详细解释。(例:MathGPT Pro)
- 聊天机器人:由 RAG 驱动的聊天机器人和虚拟助理,可为用户提供更准确更得体的回复。(例:CastChat)
- 游戏:RAG 可根据玩家的选择和行动,生成动态的游戏叙事、对话和故事情节。(例:Inworld)
什么时候选择用 RAG
2024 年的一篇文章得出结论,RAG 最适合高外部知识和低模型适应的场景。
Richard Zhang 是一位拥有丰富的 RAG 搭建经验的创业者,坐标深圳。他跟欣欣分享说,优化大模型的输出结果,常见的三种方法是 prompt engineering,RAG 和微调。RAG 的解决方案,非常适合向大语言模型添加特定领域知识。微调则适合有特别复杂的命令要求,或对生成结果的结构和语气有特定要求的项目。此外,也有 RAG 和微调的混搭模式。
初创公司经验
许多初创公司已在 AI 产品中使用了 RAG,但也有一些初创公司决定不这么做。 我们来听听他们的经历。
佐治亚理工学院教授兼 Lighthouz AI 创始人 Srijan Kumar 发推说:“RAG 可以减少但不能根除幻觉。我的公司亲测,在 AI 财务助理的场景下,即使对于简单的查询,RAG 系统也只能在 57% 的情况下给出‘正确且完整’的响应。”
Richard Zhang 则强调,RAG 仍然是当下改善幻觉最有效的方法。如何把满意率从60%提升到90%,需要深入理解商业流程和清洗现有数据,最后才是 RAG 调优。这很有挑战性,而且是个长期持续过程。
Sekai 是一款沉浸式体验 AI 角色和故事的手机应用。其创始人告诉欣欣,产品目前还没有用到 RAG,因为上下文窗口长度已经足够用了。之前估测,一个对话窗口的 token 量在一万左右。
学界讨论
RAG 与长上下文窗口
现在硅谷的一个热门辩论话题是, RAG 是否会因为大模型上下文窗口变长而变得过时。 由于内存和计算能力的限制,大语言模型只能记住最近的用户输入,这个长度又叫作上下文窗口长度。这两年来,大语言模型的上下文窗口长度变得越来越长。
尤其是上个月,谷歌发布了Gemini 1.5,上下文窗口长达十万。许多人看了直呼 RAG 将会被历史抛弃,因为我们想要的附加信息可以成为输入提示词的一部分。
也有很多专业人士表达了反对的看法——
Gemini 的联合负责人 Oriol Vinyals 说:“RAG 有一些很好的特性,可以增强长上下文,也可以被长上下文增强。“这说明他相信 RAG 和长上下文将在未来相辅相成。
AI 初创公司创始人 Siva Surendira 则提醒大家,RAG 更便宜、更快。
爱丁堡大学计算机科学博士 Yao Fu 看好长上下文模型的潜力。他认为,虽然长上下文的成本较高且当前存在局限性,但它能提供超强的即时检索和推理能力,并猜测未来大语言模型可能可以直接访问普通的数据库,就像谷歌索引一样。
英伟达的 Jim Fan 表示赞同,并设想了一种将 RAG 与长上下文窗口相结合的方法,也许是“在巨大的非结构化数据库中传播神经激活的某种形式”。
AI 初创公司创始人 Elvis Saravia,也同意结合的这个路径。 他指出,“用不同的大语言模型可以解决不同的问题。 我们要摆脱这种想法,就是我们必须用同一种模型处理所有问题。”
长期替代方案
微软的高级首席云解决方案架构师 James Nguyen,在他的文章提到了 RAG 的一些局限性。 例如,检索、增强和生成的过程是独立处理的,这意味着负责检索的部分和负责生成的部分,对于用户的意图可能有不同的理解。 如果在检索阶段由于打开方式不对,造成了低质量或不相关的结果,那么模型可能在生成的时候又开始乱编,这样就又产生幻觉了。
他提议了一种基于 agent 的方法,“当 agent 需要查找它不具备的知识时,会自己谷歌一下答案。”
英伟达的科研人员 Ethan He 一年前以类似的理念制作了 ActGPT,它会从 Google 检索最新信息并执行诸如发推吹水之类的任务。 作为这个项目的一个小贡献者,欣欣我认为它减轻了幻觉和数据新鲜度问题,但无法处理机密数据。
哪些替代解决方案将会成为主流? Ethan 希望更多地关注混合专家模型 (MoE),这是一种结合了多个 LLM 模块和一个控制最终输出的架构。
结论
从研究成果和创业实践来看,RAG 仍然是目前解决很多问题最有效的方式,至少在未来五年内不会被取代。 长远来看,更智能的架构会不断发展,最终超越 RAG。
又学到了,很有见解…
谢谢,一起进步