• 本页内容

07 先进的人工智能驱动应用程序设计


尽管大型语言模型(LLMs)是人工智能驱动应用程序的核心,但单靠它们本身无法构建出有用的复杂应用程序。

AI 驱动的应用程序大致可以分为两类:

  • 需要 LLMs 进行规划、推理和编排的应用程序。
  • 完全不需要 LLMs 或以更直接的方式使用 LLMs 的应用程序,例如摘要生成。

那些不需要 LLMs 的应用程序通常是一系列代码和模型的流水线或工作流,用于完成一项或一组任务,例如:

  • 生成10张 X 的图像 -> 使用 GAN 进行放大 -> 检查是否存在缺陷 -> 丢弃存在缺陷(如扭曲手部)的图像。

这些应用程序通常更容易设计,并具有更确定性的特性。它们主要由代码和工作流驱动。 正如前面所提到的,这些工作流可能以更有限的方式使用 LLMs,例如要求其对网页上的文本进行摘要,但该 LLM 通常不会与用户进行交互,也不需要做出决策或制定计划。

这并不是说这些应用程序容易设计或构建。正如前面所提到的,它们更具确定性,但它们自身的模型也包含许多非确定性的因素。 一次工作流的运行可能会产生一篇文章或公司网站的精彩摘要,而下一次可能会产生一篇充满虚构信息和幻觉的混乱摘要。

一个图像生成流水线的工作流运行可能会为像「秃鹰」这样更常见的概念生成 100 张出色的图像,但对于更复杂的构图或它从未接触过的想法,比如「戴着鳄梨帽子的半人马」,则可能失败。

midjourney5-example

Agent 式应用程序更加复杂。它们需要 LLM 进行推理和规划,并且通常允许 LLM 在如何编排其他软件或模型来完成任务方面具有很大的自由度。

很多 Agent 和人工智能驱动的应用程序被认为只是在 GPT-4 之上的「包装」。 虽然对于将 GPT-4 嵌入网站以回答问题可能是真实的,但更高级的应用程序要复杂得多。 即使是一个看似简单的应用程序,比如使用 LLM 在网站上生成食谱,可能涉及从食谱数据库中检索知识、包含可能产生危险或有毒输出的黑名单术语、一些行动规划等。

我们与许多团队交流后发现,他们表示构建应用程序需要的不仅仅是 GPT、Claude 或 Llama 2。他们需要代码、额外的模型和工具来构建真正有效的软件。 这种轻视的言论通常来自那些从未尝试过开发人工智能驱动应用程序并处理它所带来的承诺和问题的人。 开发 Agent 式或人工智能驱动的应用程序比简单地编写提示并希望其长期有效要困难得多。

开发者们所展示的通常是几个主要研究方向和概念的融合。 最常见的情况是将 Hugging GPT 方法与研究人员正在开发的各种方法相结合,以从 LLMs 中获得更好的推理和规划能力,例如推理行动和规划(RAP)思维树、创建一群每个 LLM 都提供自己观点的 LLMs,然后将这些 LLM 的输出进行组合或平均。

HuggingGPT 方法源自微软的一篇论文,该论文使用 Hugging Face 提供的丰富模型描述作为 LLMs 了解每个模型能做什么的方式。 通过这些文本描述,GPT 足够了解哪个模型可以调用来完成特定任务,比如「请生成一张图片,图片中有个女孩正在阅读一本书,她的姿势与 example.jpg 中的相同,然后请用你的声音描述这张图片」。

huggingGPT-example

截至本报告撰写时,还没有单一模型能够完成这种任务。在这种情况下,Agent 进行复杂的推理,这种推理可能在更一致且有限的工作流设计模式中进行硬编码。 当您通常希望获得相同一致的输出时,例如「修正面部缺陷」或「模糊背景」,就像 Lensa 正在做的那样,硬编码的工作流更容易。 然而,如果应用程序允许更加开放式的工作流,几乎不可能进行硬编码。

在上述示例中,用户执行以下操作:

  • 使用一个具有他们想要模仿的姿势的示例图像
  • 提示提供一张以该姿势阅读书籍的女孩的图像
  • 描述生成图像中的内容
  • 通过文本转语音将该描述朗读出来

这最终涉及多个不同的模型来完成这项工作。 从图表中可以看出,它使用了 OpenCV 的 OpenPose 模型,该模型从现有图像中提取出类似骨架的姿势轮廓,然后使用 controlNet 模型(将该姿势与用户的文本描述一起注入扩散过程,以获得更好的文本输出),一个目标检测模型 detr-resnet-101,一个名为 vit-base-patch16-224 的视觉转换器图像分类模型,一个名为 vit-gpt2-image-captioning 的字幕生成模型用于生成文本字幕,以及一个名为 fastspeech-2-en-ljspeech 的文本到语音模型,用于将文本转换为语音。

基本上,这涉及四个核心步骤:

  • 任务规划:LLM 将用户请求解析为任务列表,并确定执行顺序
  • 模型选择:LLM 为任务分配适当的模型
  • 任务执行:专家模型执行任务
  • 响应生成:LLM 整合专家的推理结果,并生成工作流日志的摘要以回应用户

正如您所想象的,这是一个极其复杂的流程,结果可能会有很大的差异。即使您拥有500亿美元和一支庞大的开发团队,一年前仍然无法完成这种基于用户复杂自然语言指令的自动工具选择,因为没有软件能够实现这种自动选择。 将这种流程投入生产需要一套监控和管理工具、日志记录、服务基础设施、安全层等等。这类应用将成为未来几年新型软件应用的基石。

虽然我们与大多数团队交流时发现他们并没有采取这种完全开放的方式让 LLM 自行选择模型来完成任务,但许多团队在他们的流程中使用了一系列经过精心策划的模型来增强 Agent 的能力,因此工作流程在很大程度上是相似的。 此外,请记住,使用 HuggingGPT 方法从平台选择模型会遇到我们先前在开源模型周围讨论的法律挑战。

虽然我们期望在未来几年会出现新的方法,但我们认为这些应用的基本设计模式将基本保持不变。 尽管如此,随着 Google 等公司开发的新型多模态模型(如 Gemini)的出现,这些模型在文本、图像、视频、音频等方面进行训练,LLM 模型本身将变得更加高效和能够执行以前需要专门模型或工具才能完成的任务。 然而,在接下来的几年里,我们很难拥有一个能够独立完成所有任务的模型,因此对于开发团队来说,专家模型和人工设计的代码流程仍然是最好的选择。

我们也预计会出现新的架构,既能够提供更好的专门用途模型,也能够提供更好的思考、推理、规划、问题解决和适应性,但团队不需要等待那一天的到来,因为现在已经有强大的能力可用。

如果开发人员立足于当下的现实,并拥有现实的期望,他们可以构建一些令人惊叹的东西,这是之前他们无法构建的,这是令人兴奋的。 AI在长期规划和推理方面仍然是一个正在进行中的工作,它将变得更好。

但目前,还记得那个古老的 Google 格言:

Let humans do what they do well and computers do what they do well.

各尽其能,各展其长。

—— GPT-4 翻译

计算机擅长处理规模、简单推理、蛮力计数和速度,而人类赋予信息和抽象思想以意义,并进行复杂推理。