构建更佳大语言模型(LLM)应用的四大要诀 [译]
这里为您提供了一些建议和技巧,旨在提高大语言模型应用的精准度,并介绍了选择合适大语言模型的要点。
2023 年 12 月 5 日 上午 10:44,作者 Adrien Treuille
图片来自 Shutterstock 的 Rusha。
自从 OpenAI 发布首个 ChatGPT 模型以来,生成式 AI 引起了广泛关注。如今,大语言模型驱动的应用已成为企业提高生产力和效率的新思路,同时,用于开发生成式 AI 应用的工具和框架也在不断扩展。然而,人们仍对生成式 AI 输出的准确性存疑,开发者必须迅速掌握应对这些问题的方法,以打造功能强大、值得信赖的应用。
下面是一些提升大语言模型应用精准度的建议和技巧,以及在选择合适的大语言模型时应考虑的因素。虽然我们无法详尽地解决每一个问题,因为每个问题都有其复杂之处,但我们提供了一些初步建议,供你进一步探索。
Streamlit,一款免费且开源的框架,专用于快速构建和分享机器学习与数据科学的 Web 应用,近期发布了一份报告,分析了超过 21,000 个由 13,000 多名开发者在 Streamlit 社区云上构建的大语言模型应用。该报告提供了一些迄今为止开发者在构建应用时所使用的工具和技术的洞见,这些建议也基于此。
举个例子,向量检索工具在改进基于大语言模型 (LLM) 驱动应用的上下文推荐方面颇有成效。然而,我们的调查发现,目前只有少数开发者在使用这种向量功能,这意味着未来这里有一个巨大的发展空间。
随着越来越多的开发者开始运用生成式 AI (Generative AI) 开发应用,我们将看到越来越多不同类别和行业领域的应用开始整合 AI 搜索功能,以及更多的对话式和辅助体验。接下来,我会提供四条建议给开发者,帮助他们打造更出色的大语言模型驱动应用,为他们所在的组织带来创新和改变。
用智能体和编排工具让应用更聪明
协调框架,例如 LangChain 和 LlamaIndex,能够通过额外的工具或智能体来增强基于大语言模型(LLM)的应用。这些智能体就像应用程序的插件,你可以通过它们以自然语言的形式增加应用的附加功能。
这些智能体能够协作,从而更好地管理和优化大语言模型的各种功能,比如提升 AI 的推理能力、解决偏见问题和融合外部数据。它们还能帮助大语言模型自我反思,比如判断自己是否犯错,以及为完成任务需要采取哪些步骤。
举个例子,就像开发者编写 API 和相关文档一样,API 用代码表达,文档则是自然语言。智能体也是类似的,但它们的文档是为了帮助大语言模型,而不是其他开发者。大语言模型会分析手头的任务和智能体的说明,判断这些智能体是否能帮助它完成任务。
这些智能体还能通过帮助应用自我检查和纠正错误,增强大语言模型应用的稳定性。例如,如果大语言模型应用在编写执行某任务的 SQL 代码时出错,比如检查数据库库存,这些智能体就可以介入,避免了在传统的“天真”大语言模型应用中,一旦出错就束手无策的情况。
然而,如果应用程序内置了一个能执行 SQL 的 AI 智能体,它可以通过分析错误信息,借助这个智能体找出应该怎样做出不同的处理来纠正错误。这种调整可能只是简单的语法更改,但如果没有这样的智能体,大语言模型(LLM)就无法理解自己的错误在哪里。
利用 Vector Magic 和 RAG 抗击幻觉问题
有时,你使用的大语言模型 (LLM) 可能没有足够的信息来完成预定的任务。虽然可以在输入提示时加入额外信息,但大多数 LLM 对输入提示的长度有所限制。为了突破这些限制,LLM 可能需要通过向量技术查询外部数据库,这种方法被称为检索增强生成(RAG)。
要理解 RAG 对 LLM 应用的好处,我们可以从三个层次来看 LLM 应用:
- 第一层次:应用可以仅用 LLM 已有的知识来生成结果。
- 第二层次:应用需要额外信息,这些信息可以在输入提示时加入。只要不超过输入长度的限制,这个过程相对简单。
- 第三层次:LLM 需要从外部信息源(如数据库)获取信息以完成任务。
在第三层次中,RAG 发挥了作用,而外部数据库通常是通过向量进行语义索引的。这就是为什么你可能最近经常听到有关向量数据库和向量搜索工具的讨论。
拥有向量数据库和向量搜索功能的应用能够快速、准确地通过分类大型非结构化数据集(包括文本、图像、视频或音频)来进行上下文搜索。这对于做出更快、更精准的上下文推荐非常有帮助。但目前,向量工具的应用还不普遍。Streamlit 的一项调查显示,仅有 20% 的生成式 AI 应用采用了某种形式的向量技术。
聊天机器人:让用户更精准地调整查询
聊天机器人把生成式 AI 带入大众视野,但它们是否能成为有效的交互界面,一直有争议。一些人认为,聊天机器人给用户太多自由,却缺乏足够的信息来指导如何使用大语言模型(LLM)应用。还有人因为以往的失败,如 Clippy 的不成功,而对今天的聊天机器人持怀疑态度。
显然,聊天机器人是否合适,部分取决于应用的预期用途。但聊天机器人有一个不容忽视的优势:它们提供了一种简洁直观的方式,让用户通过与人类对话般的界面添加上下文和精细调整答案。
想明白这为何强大,不妨想想搜索引擎。在普通搜索引擎中,用户很难对查询进行微调;如果结果稍有偏差,他们无法告诉搜索引擎“再试一次,但排除与 X 相关的答案”,或“更重视 Y”。这个能力非常方便和强大,而聊天机器人正是为大语言模型应用提供了这样的功能。
调查显示,28% 的生成式 AI 应用是基于 Streamlit 构建的聊天机器人,而与之相对的是,72% 的应用通常不支持对话式的查询调整。同时,调查还表明,这些聊天机器人的每周使用率接近 40%,而非聊天机器人应用的使用率则有所下降。因此,聊天机器人可能是终端用户更喜爱的界面。报告中还包含了各种接受文本输入的应用示例,你可以了解更多可能的使用方式。
考虑除 GPT 外的其它选择,包括开源的大语言模型
尽管基础的 GPT 模型是众所周知的大语言模型 (LLM),且功能强大,但过去一年里出现了更多选择。在选择适合您应用的 LLM 时,您需要考虑的因素包括:所需的知识范围、模型大小、训练需求与预算,以及选择开源还是专有的 LLM。在科技领域,这通常意味着需要做出一些权衡。
例如,如果您要为内部使用开发生成式 AI 应用,可能需要在公司内部数据上训练 LLM。大多数企业由于安全考虑,不愿与公共 LLM 分享敏感数据,因此许多公司选择在他们现有的云安全环境内运行 LLM,这通常会使他们选择像 AI21 和 Reka 这样的小型 LLM。
大型 LLM 通常响应时间更长,运行成本也更高,因为需要更多的计算资源。如果应用的任务比较简单,比如文本翻译或文档总结,一个小型 LLM 可能更合适,且成本大幅降低。
您可能也倾向于使用像 Meta 的 LLaMA 这样的开源 LLM,而不是 OpenAI、Anthropic 或 Cohere 等公司的专有 LLM。后者通常不会公开其源代码、训练数据、权重或其他模型细节。尽管开源 LLM 需要自行托管或通过托管服务提供商进行推理,但它们的源代码和模型细节更容易获取。
立刻开始探索生成式 AI 的世界
生成式 AI 是一个迅速发展的领域,相关的工具和技术也在快速进步,现在就有很多方法可以开始尝试。那些抓住这个机会的开发者能够为他们的组织带来巨大的价值,把 AI 应用融入日常业务运作和任务中。随着生成式 AI 继续改变组织中的角色和职责,那些深入研究并成为以 LLM 驱动的应用专家的开发者将会脱颖而出,以上建议可以帮助您走上正确的道路。