大型语言模型的优势与局限性

发布时间:2024 年 1 月 13 日

这是关于 LLM 和聊天机器人的三部分系列文章的第一篇。关于使用 WebLLM 构建聊天机器人的第 2 部分和关于使用 Prompt API的第 3 部分已上线。

大型语言模型 (LLM) 正在成为软件开发中的重要组成部分:LLM 非常适合生成和处理自然语言文本,从而解锁诸如数据提取、摘要或促进与用户数据对话等用例。

在本系列中,我将讨论设备端 LLM 的优势和缺点,并指导您使用两种本地和离线功能方法(基于 Web 的 LLM 运行时 WebLLM 和 Chrome 的实验性 Prompt API)向现有应用程序添加聊天机器人功能。

潜在用例

Application before chatbot is added.
我们的待办事项列表应用。

我们将基于经典的待办事项列表应用程序构建一个聊天机器人。每个步骤的源代码都可以在 GitHub 上找到。用户可以添加新的待办事项、将其标记为已完成并删除它们。

您可能希望为用户添加一个功能,以了解有关待办事项列表数据的更多信息或执行其他功能。聊天机器人功能可以让用户

  • 询问未完成任务的数量。
  • 识别重复项或非常相似的待办事项。
  • 将待办事项分类到组中。
  • 根据已完成的任务接收新任务的建议。
  • 将任务翻译成不同的语言。
  • 以 XML 格式导出待办事项列表。

这些只是 LLM 可以处理的任务的一些示例。

什么是大型语言模型?

LLM 是处理和生成自然语言文本的人工神经网络。当前大多数 LLM 都基于 Google 开发的 Transformer 架构。示例包括 Google 的 Gemini 和 Gemma 模型、OpenAI 的 GPT 模型系列以及 Meta AI 的 LLaMa 和 Mistral AI 的 Mistral 等开源模型。

得益于对大量数据的训练,LLM 拥有令人印象深刻的各种功能。它们理解多种语言,拥有丰富的知识,可以在语言之间进行翻译,或生成编程代码。这些功能的程度可能因模型的大小而异,如了解 LLM 大小中所述。

LLM 导致了软件架构的范式转变,因为自然语言现在成为软件工程中的核心功能。无需使用明确定义的接口调用 API,只需在所谓的提示中用自然语言表达意图即可。

LLM 的局限性

LLM 也存在某些局限性

  • 非确定性行为:LLM 可能会对相同的提示产生不同甚至有时是矛盾的响应,因为它们的输出取决于概率模型而不是固定的规则。
  • 幻觉:这些模型有时可能会生成不正确或无意义的信息,依赖于学习到的模式而不是事实准确性。
  • 提示注入:LLM 容易受到提示注入攻击,用户可以在其中精心制作输入提示,操纵模型偏离其预期功能或产生不需要的结果。

因此,用户必须在采取任何重要的操作之前验证 LLM 生成的结果。

在处理设备端 LLM 时,必须考虑其大小。它们的文件大小达到数 GB,并且必须在首次使用前下载到用户的设备。较小的模型往往会产生较低质量的响应,尤其是在与云端模型相比时。

选择本地解决方案

将 LLM 集成到您的 Web 应用程序中的第一个直觉可能是使用云提供商。许多提供商提供高质量的 LLM,其中一些是特定提供商独有的。基于云的 LLM 以合理的成本提供快速的推理速度,这通常是按处理的 token 计算的。

相比之下,本地解决方案具有引人注目的优势。通过直接在用户设备上运行,本地托管的 LLM 提供更可靠的响应时间,即使在用户离线时也能保持可访问性,并且不需要开发人员支付订阅费或其他持续成本。值得注意的是,它们可以大大提高用户安全性。通过将所有活动保留在设备上,您可以避免将个人身份信息 (PII) 传输给外部提供商或地区。

演示

在学习如何自己构建之前,您可以先看看具有聊天机器人功能的成品演示。

接下来,您将使用 WebLLM 向待办事项列表应用程序添加聊天机器人