ITPub博客

首页 > 人工智能 > 人工智能 > 构建事件驱动的GenAI应用的4个步骤

构建事件驱动的GenAI应用的4个步骤

人工智能 作者:ITPUB社群 时间:1970-01-01 08:33:44 0 删除 编辑

本文最初于 2023 年 12 月 27 日发表在 The New Stack 上。

我从事人工智能相关工作已近 20 年,应用的技术涵盖预测建模、知识工程和符号推理。AI 的巨大潜力始终显而易见,但其广泛应用似乎总是还要再等几年。然而,以当前生成式 AI(GenAI)技术的形态来看,这一次感觉有所不同。

过去的一个重大障碍是,设计和训练模型所需的专业知识极为稀缺。如今,我们拥有了像 LLM(大语言模型) 这样的基础模型来驱动 GenAI,它们可复用且具有通用性——这使得技术的应用比以往任何时候都更加民主化。

全球各地的公司都在尝试构建支持 GenAI 的应用和工具,以推动更高的效率和创新。IDC 的一项新预测显示,2023 年企业在 GenAI 解决方案上的全球投资将接近 160 亿美元。但与过去几代 AI 不同,这些投资不会不成比例地只惠及少数几家公司。

虽然构建支持 GenAI 应用的一个有前景的方法始于零样本学习或少样本学习以生成更好的输出,但大多数非平凡用例都要求提示词与领域特定数据进行上下文化结合,而这些数据在 LLM 训练时并不存在。从语义搜索到推荐引擎,支持 GenAI 应用的大多数有价值用例都要求将提示词与相关、及时且准确的企业数据配对,以生成可用的输出,通常采用一种常被称为检索增强生成(RAG(检索增强生成))的模式。

构建这些数据驱动的 GenAI 应用,需要开发跨越多种技能组合的复杂应用。此外,目标并不是构建单个支持 GenAI 的应用。要让 GenAI 真正变革你的业务,你的团队将随着时间推移交付数十甚至数百个专用应用,这些应用很可能使用相同的基础模型,但会从企业中不同的真实数据源中提取数据。

大多数现代企业在构建和部署基于 AI 的应用时会面临挑战,因为他们的数据被锁定在孤立的、异构的操作数据存储中。最终,将 GenAI 应用推向市场需要一套通用的数据集成运营模型和平台。

基于我们团队与数百家正在构建 GenAI 应用的客户讨论所获得的洞察,我们发现构建 GenAI 应用的最佳方式是采用事件驱动模式。我们确定了这些应用通常具有的四个通用步骤。正如我们接下来所描述的,每个步骤最好都实现为事件驱动型应用。

使用事件流构建大语言模型驱动应用的关键步骤

大语言模型驱动的应用通常包含四个步骤——数据增强、推理、工作流和后处理。对每个步骤采用事件驱动方法,可使开发和运维变得更加可控。

步骤 1. 数据增强

此步骤为大语言模型查询中的上下文构建准备数据,涉及以下活动:

  • 分块(Chunking),将数据拆分为语义上有意义的片段

  • 创建嵌入(Embeddings),即保留含义和关系的数学信息表示,使 AI 模型能够理解和推理原本供人类消费的信息

  • 存储到向量存储中,以检索支持大语言模型(LLM)所必需的高维向量表示

此步骤借助源连接器或原生集成,从企业中各种不同的运营数据源(例如 Amazon S3 和 Salesforce)拉取非结构化数据——然后将非结构化数据嵌入组织到向量存储中,进而可将其工程化为提示词。我们利用数据流技术的一项成熟优势,即实时集成企业中各种不同的运营数据,以实现可靠、可信的使用。

采用事件驱动方法的好处在于,运营数据存储中的变更与向量存储的暂存信息保持一致,以便后续在大语言模型驱动的应用中为提示词提供上下文。脆弱的 ETL 管道可能具有级联批处理操作,这意味着大语言模型基于过时数据运行。向量存储是一种持久缓存,对企业的知识进行反规范化处理,以提供消费者所期望的复杂、响应式体验。

此模式如下图所示,其中 Apache Kafka 消费者组从连接器接收端拉取数据,处理数据,并创建嵌入,通过接收端连接器或原生集成传递到适当的向量存储中。

步骤 2. 推理

下一步涉及推理,包括使用前几步准备的数据来工程化提示词,以及处理来自大语言模型的响应。

当用户发来提示词时,应用可以从增强的向量存储或类似的企业服务中收集相关上下文,以生成尽可能最佳的提示词。

现在,让我们看看事件驱动方法如何提供帮助。

如果你看下面的图片,你会看到左侧有一个 Web 应用程序。Web 应用程序通常由一个全栈团队构建,主要关注数据如何流入和流出 ORM 映射以及管理会话。采用这种模式,他们可以独立于右侧的消费者组工作,后者可能由专门从事 AI 应用程序开发的后端团队完成。消费者组调用向量存储来设计提示,向量存储再调用 LLM 服务。

如果你想想使用 ChatGPT 时的 LLM 调用,这些调用可能需要几秒钟,这对分布式系统来说简直是永恒。采用这种方法,你不需要你的 Web 应用程序团队来管理这个问题。团队可以简单地将所有这些视为异步通信,这是一种非常好的模式,可以组织团队并独立扩展它们。

此外,通过分解为专门的服务而不是单体应用,这些应用程序可以独立部署和扩展。这有助于加快上市时间,因为新的推理步骤是消费者组,组织可以为快速实例化这些步骤而模板化基础设施。

步骤 3. 工作流

工作流是一种常见的概念模型(例如 LangChain 中的链),用于组合推理代理和推理步骤,形成支持 GenAI 的应用程序。代理的直觉是,我们通常需要一些东西来自动化操作,例如基于前一个响应进行下一次 LLM 调用。LLM 在某些用途上可以是合适的智能代理,但这些通常是专门的、更传统的模型,可以依赖领域特定的知识。

考虑一个保险承保应用程序的设计:GenAI 模型通常(还)不做承保决策。相反,LLM 驱动一个自然语言接口,该接口调用传统模型来基于特定风险建模提供预测。我们经常将 LLM 代理分解为调用链的另一个原因是,最先进的 LLM(截至撰写本文时)倾向于在我们问多个简单问题而不是更大的复合问题时返回更好的结果,尽管这种特征正在迅速演变。

现在让我们看看下面的图片。和之前一样,Web 应用程序开发人员可以独立工作。全栈工程师可以构建 Web 应用程序,后端系统工程师可以构建消费者组,对操作数据(如关系数据库管理系统)进行自然语言搜索。这是 SQLBuilder 和 LangChain 允许的。它可以使用推理代理,并基于向量存储中的内容来上下文化提示。它可以根据需要对 LLM 进行尽可能多的后续调用——这有助于回答 Web 应用程序所需的任何查询。

步骤 4. 后处理

幻觉会发生,企业必须独立验证 LLM 输出并执行业务逻辑,以防止应用程序产生反效果。

拥抱事件驱动方法在这里如何帮助?如果你看下面的图片,你会看到一个独立的后处理消费者组。再次,这将后处理与应用程序的其余部分解耦。

这种方法很有用,因为 LLM 工作流和依赖关系的演变速度比决定可接受性的业务逻辑快得多。

通常,不同的业务组,例如合规团队,会定义这些规则并构建这些应用程序。事件驱动的微服务消除了不必要的带外协调,因为每个微服务只生产和消费治理良好的事件。

归根结底,GenAI 应用运行在数据之上——为这些应用提供生成可靠结果所需的数据量和数据质量,对大多数公司来说都是一项挑战。而这正是数据流平台可以发挥作用的地方。此类平台让你能够接入持续丰富、可信且具备上下文的数据流,从而快速构建和扩展这些数据密集型实时应用。

拥抱数据流平台

数据流的核心价值主张之一是,你不再受限于数据所在的位置。数据流使企业能够将相关的数据流实时路由到任何需要的地方——让 GenAI 赋能的应用能够轻松获取和访问数据。

数据流平台通过以下方式大规模支持实时生成式应用:

  • 实时整合企业中分散的运营数据,以实现可靠、可信的使用

  • 将非结构化企业数据通过嵌入(embeddings)组织到向量存储中,进而帮助设计提示词(prompts)

  • 将面向客户的应用程序与 LLM 调用管理解耦,以提供可靠、响应式的体验并实现水平扩展

  • 使 LLM、向量存储和嵌入模型能够被视为模块化组件,随着技术进步可以随时替换

归根结底,数据流有助于解耦系统、团队和技术。它促进了具有良好上下文、可信且可发现的数据产品,使团队能够自信且独立地工作以扩展其应用,这对于 GenAI 赋能的应用而言至关重要。

数据流平台确保你能够带来实时、格式良好且高度治理的数据流,为你的 GenAI 应用提供动力,并促进数据可复用性、工程敏捷性和更高的信任度。这使企业能够快速交付消费者已经习以为常的响应式、精细化体验。访问我们的 AI 资源中心,了解 Confluent 如何为你的 GenAI 之旅提供支持。

  • Andrew Sellers 领导 Confluent 的技术战略团队(Technology Strategy Group),该团队支持战略制定、竞争分析和思想领导力。



转载声明:本文为转载整理,原文版权归原作者及原站点所有。

原文来源:Confluent Blog

原创地址:https://www.confluent.io/blog/4-steps-for-building-event-driven-genai-applications/

原文作者:Andrew Sellers;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-11-21

  • 博文量
    1090
  • 访问量
    546908