Press "Enter" to skip to content

如何使用大型语言模型(LLM)推动未来应用程序的发展

生成式人工智能,特别是语言方面的应用-ChatGPT无处不在。大型语言模型(LLM)技术将在未来应用的发展中发挥重要作用。由于基础模型在数万亿行公共领域文本(包括代码)上进行了广泛的预训练,LLM非常擅长理解语言。通过监督微调和人类反馈的增强学习等方法,使这些LLM在回答特定问题和与用户对话时更加高效。随着我们进入由LLM驱动的下一代AI应用的阶段,以下关键组件对于这些下一代应用至关重要。下图显示了这一进展,随着链条的升级,您的应用程序将变得更智能和自主。让我们来看看这些不同的层次。

如何使用大型语言模型(LLM)推动未来应用程序的发展 四海 第1张

LLM调用:

这些是对LLM提供商(如Azure OpenAI、Google PaLM或Amazon Bedrock)的完成或对话模型的直接调用。这些调用有一个非常基本的提示,主要使用LLM的内部内存产生输出。

示例:向“text-davinci”这样的基本模型询问“讲一个笑话”。您提供的上下文很少,模型依靠其内部预训练的内存来提供答案(在下面的图中用绿色突出显示-使用Azure OpenAI)。

如何使用大型语言模型(LLM)推动未来应用程序的发展 四海 第2张

提示:

更高级的智能是通过向提示中添加更多上下文来实现的。有一些提示工程技术可以应用于LLM,使它们给出定制化的响应。例如,在向用户生成电子邮件时,用户的一些上下文信息、过去的购买记录和行为模式可以作为提示,以更好地定制电子邮件。熟悉ChatGPT的用户将知道不同的提示方法,如给出LLM用于构建响应的示例。提示将LLM的内部内存与附加上下文相结合。以下是一个示例。

如何使用大型语言模型(LLM)推动未来应用程序的发展 四海 第3张

嵌入:

嵌入将提示提升到更高级别,通过搜索知识存储库以获取上下文并将其附加到提示中。在这里,第一步是通过对文本进行索引和填充矢量数据库来创建一个大型文档存储,并使其可由嵌入模型如OpenAI的“ada”使用。该模型将一段文本转换为n维向量。这些嵌入捕捉文本的上下文,因此相似的句子在向量空间中的嵌入相互靠近。当用户输入查询时,该查询也被转换为嵌入,并将该向量与数据库中的向量进行匹配。因此,我们可以获得与查询匹配的前5或10个文本块,这些文本块形成上下文。查询和上下文被传递给LLM以以类似人类的方式回答问题。

链条:

如今,链条是最先进和成熟的技术,广泛用于构建LLM应用。链条是确定性的,其中一系列LLM调用与一个或多个LLM的输出连接在一起。例如,我们可以使LLM调用查询SQL数据库并获取客户电子邮件列表,并将该列表发送到另一个LLM,该LLM将为客户生成个性化电子邮件。这些LLM链条可以集成到现有的应用程序流程中,以产生更有价值的结果。使用链条,我们可以将LLM调用与API调用和知识图谱的集成等外部输入相结合,以提供上下文。此外,如今有多个LLM提供商可供选择,如OpenAI、AWS Bedrock、Google PaLM、MosaicML等,我们可以将LLM调用混合到链条中。对于具有有限智能的链条元素,可以使用较低级别的LLM,如“gpt3.5-turbo”,而对于更高级的任务可以使用“gpt4”。链条为数据、应用程序和LLM调用提供了一种抽象。

代理:

代理是在线辩论的一个话题,特别是在人工通用智能(AGI)方面。代理使用高级LLM,如“gpt4”或“PaLM2”,来计划任务,而不是具有预定义的链条。因此,当有用户请求时,代理根据查询决定调用哪组任务,并动态构建链条。例如,当我们使用类似“由于政府监管更新导致贷款年利率变化时通知客户”的命令配置代理时,代理框架会进行LLM调用以决定采取的步骤或构建的链条。这将涉及调用一个应用程序,该应用程序会从监管网站抓取并提取最新的年利率,然后进行LLM调用以搜索数据库并提取受影响的客户电子邮件,最后生成电子邮件通知所有人。

最后的思考

LLM是一项不断发展的高级技术,每周都会推出更好的模型和应用程序。LLM对于智能代理来说,是智能提升的阶梯,随着我们的提升,我们构建了复杂的自主应用程序。更好的模型意味着更有效的代理,而下一代应用程序将由这些代理驱动。时间会告诉我们下一代应用程序的先进程度以及它们将受到哪些模式的驱动。

Leave a Reply

Your email address will not be published. Required fields are marked *