Apache Kafka作为关键任务和可扩展的实时数据基础架构,为机器学习基础架构提供服务,为成千上万的企业提供服务。生成式人工智能(GenAI)与ChatGPT等大型语言模型(LLM)的发展改变了人们对智能软件和自动化的看法。本博文解释了数据流和GenAI之间的关系,展示了GenAI在噪音之外的巨大机遇和一些早期采用者。
生成式人工智能(GenAI)和数据流
首先,让我们明确一些概念,以达到相同的理解。
[注:我的ChatGPT iPhone应用生成了这部分内容,我稍微缩短和调整了内容。GenAI非常适合总结现有内容,以便作者可以花更多时间在ChatGPT尚不知道的新内容上。]
自然语言处理(NLP)
ChatGPT,什么是NLP?
NLP代表自然语言处理。它是人工智能(AI)的一个子领域,专注于计算机和人类语言之间的交互。NLP以一种有意义和有价值的方式使计算机能够理解、解释和生成人类语言。
自然语言处理涉及多种任务,包括:
- 文本解析和标记化:将文本分解为单词或标记。
- 命名实体识别(NER):在文本中识别和分类人物、组织、地点和日期等命名实体。
- 情感分析:确定文本中表达的情感或情绪色调,无论是积极的、消极的还是中立的。
- 机器翻译:将文本从一种语言翻译成另一种语言。
- 问答系统:构建能够理解和回答自然语言提出的问题的系统。
- 文本生成:创建类似人类文本的文本,或对提示生成响应。
NLP在聊天机器人、虚拟助手、语言翻译、信息检索、情感分析等应用中至关重要。
GenAI = 下一代NLP(以及更多)
ChatGPT,什么是生成式人工智能?
生成式人工智能是人工智能的一个分支,专注于创建能够生成新内容的模型和系统,如图像、文本、音乐甚至整个虚拟世界。这些模型是在大型数据集上训练的,学习模式和结构以生成类似训练数据的新输出。这就是为什么世界各地的关键词是大型语言模型(LLM)。
生成式人工智能用于下一代NLP,并使用生成式对抗网络(GANs)、变分自编码器(VAEs)和递归神经网络(RNNs)等技术。生成式人工智能在艺术、设计、娱乐和科学研究等各个领域和行业都有应用。
Apache Kafka用于数据流
ChatGPT,什么是Apache Kafka?
Apache Kafka是一个开源的分布式流平台,已成为事件流的事实标准。它由Apache软件基金会开发,广泛用于构建实时数据流应用和事件驱动架构。Kafka为处理大量流数据提供了可扩展和容错的系统。
Kafka有一个繁荣的生态系统,各种工具和框架与其集成,例如Apache Spark、Apache Flink等。
Apache Kafka广泛应用于需要实时数据流的用例,如数据管道、事件溯源、日志聚合、消息系统等。
为什么选择Apache Kafka和GenAI?
生成式人工智能(GenAI)是下一代NLP引擎,为服务台自动化、与聊天机器人进行客户对话、社交网络内容审核等许多现实世界项目提供帮助。
Apache Kafka 成为了这些机器学习平台中的主要编排层,用于集成各种数据源、规模处理和实时模型推断。
使用 Kafka 进行数据流处理已经为许多 GenAI 基础设施和软件产品提供了动力。可能存在非常不同的场景:
- Kafka 作为整个机器学习基础设施的数据织物
- 通过流处理进行实时生成
- 使用输入文本或语音生成数据流水线
- 进行大型语言模型的实时在线训练
让我们更详细地探索使用 Kafka 和 GenAI 进行数据流处理的机会。
实时 Kafka 数据中心用于 GenAI 和企业架构中的其他微服务
我在 2017 年已经探索了“如何使用 Apache Kafka 在生产环境中构建和部署可扩展的机器学习”(链接)。那时,来自优步、Netflix 和 PayPal 等技术巨头的实际案例。
如今,Apache Kafka 已成为跨任何企业和行业构建可扩展和可靠的机器学习基础设施的事实标准,包括:
- 使用 Kafka Connect 连接器、完全托管的 SaaS 集成或任何类型的 HTTP REST API 或编程语言,从各种来源(传感器、日志、数据库、消息代理、API 等)进行数据集成。
- 利用流处理进行成本高效的数据处理,例如过滤、聚合和更高级的计算,以便数据在移动中(使任何下游应用程序获得准确的信息)
- 用于与各种数据仓库和数据湖的接近实时数据共享,以便每个分析平台可以使用自己的产品和工具。
构建可扩展和可靠的端到端流水线是当今基于 Apache Kafka 实现数据流处理的 AI 和机器学习领域的最佳实践。
使用流处理进行实时预测的模型评分
在 Kafka 应用程序中部署分析模型是实现低延迟实时预测的解决方案,能够在任何规模上提供预测。这是 AI 领域最大的问题之一,因为数据科学家主要关注数据湖中的历史数据和批量模型训练。
然而,对于预测的模型评分需要提供更好的可伸缩性、可靠性和延迟等服务水平协议。因此,越来越多的公司将模型训练与模型评分分开,并在 Kafka Streams、KSQL 或 Apache Flink 等流处理器中部署分析模型:
专用的模型服务器通常仅支持批处理和请求-响应(例如通过 HTTP 或 gRPC)。幸运的是,现在许多解决方案还提供与 Kafka 协议的本地集成。
从输入文本或语音生成 Kafka-Native 数据流水线的开发工具
几乎每个软件供应商都在讨论如何通过 GenAI 提升其开发环境和用户界面。
例如,GitHub 是一个基于 Git 的平台和基于云的软件开发和版本控制服务。但是他们最新的创新是“AI 强化的开发者平台,用于构建、扩展和交付安全软件”:Github CoPilot X。AWS 等云提供商也提供类似的工具。
同样,看看任何数据基础设施供应商,比如 Databricks 或 Snowflake。最新的会议和公告都集中在其解决方案中关于大型语言模型和 GenAI 的嵌入能力。
对于许多数据流平台和云服务来说也是如此。低代码/无代码工具将增加从输入文本生成数据流水线的功能。我认为最简单的应用之一是根据用户文本生成 SQL 代码。
例如,“从 Oracle 表 customer 中获取数据,按客户进行聚合付款,并将其导入 Snowflake。” 这可能会生成用于 KSQL 或 FlinkSQL 等流处理技术的 SQL 代码。
将 GenAI 嵌入到 Kafka 开发环境中具有开发者体验好、上市时间快和支持非技术角色的巨大优势。
大型语言模型(LLM)的实时训练
AI和机器学习几乎一直都是批处理系统。模型训练至少需要数小时。这并不理想,因为许多GenAI的使用案例需要准确和更新的信息。想象一下,今天你查找信息,但无法找到过去一周的数据。在许多情况下,这样的服务是不可能使用的!
同样地,如果我今天(2023年7月)问ChatGPT:“什么是GenAI?”- 我会得到以下回答:
截至2021年9月我的最新更新,没有关于“GenAi”这个实体的具体信息。可能是因为那之后有了一些新的发展。请您提供更多背景或者澄清您的问题,以便我能更好地帮助您。
您的机器学习基础架构越快地将数据导入模型训练,效果就越好。我的同事Michael Drogalis撰写了一篇出色的深度技术博文:“GPT-4 + Streaming Data = 实时生成式AI”,更详细地探讨了这个主题。
这种架构非常吸引人,因为无论何时您提示它,聊天机器人都会拥有最新的信息。例如,如果您的航班延误或者航站楼变更,聊天机器人在您的聊天会话中会知道这些情况。这与当前的方法完全不同,当前的方法需要重新加载聊天会话或者等待几个小时/几天才能获取新的数据。
LLM + Vector数据库 + Kafka = 实时GenAI
实时模型训练仍然是一种新颖的方法。许多机器学习算法今天尚未准备好进行持续的在线模型训练。将Kafka与向量数据库结合使用,可以使用批处理训练的LLM,并将实时更新提供的最新信息输入到LLM中。
将数据实时输入向量数据库,并与成熟的LLM结合,可以实现具有特定上下文推荐的实时GenAI。
Kafka和GenAI的实际案例研究
本节探讨了不同行业的公司(如汽车制造商宝马、在线旅行和预订公司Expedia以及约会应用Tinder)如何利用数据流与GenAI结合,实现可靠的实时对话AI、自然语言处理和基于聊天机器人的应用。
但是,像ChatGPT这样的技术使得在实际项目中采用GenAI变得更加容易,时间到市场更快,成本和风险更低。让我们探索一些成功案例,将NLP和GenAI嵌入数据流企业架构。
免责声明:由于我想展示真实的案例研究而非展望,所以我展示了过去几年在生产环境中部署的几个示例。因此,这些分析模型不使用来自今天媒体报道的GenAI、LLM或ChatGPT,但原则完全相同。唯一的区别是,今天你可以使用像ChatGPT这样的先进模型,它具有改进的、具有特定上下文的响应。
Expedia:更好的客户体验的对话平台
Expedia是领先的在线旅行和预订公司。他们有很多机器学习的使用案例。我最喜欢的例子之一是他们的基于Kafka和Confluent Cloud构建的Conversations Platform,提供了一个弹性的云原生应用。
Expedia的对话平台的目标很简单:让数百万旅行者能够通过文本、Facebook或者他们选择的渠道与自动代理进行自然语言对话。让他们预订旅行、进行更改或取消,并提出问题:
- “我的停留时间有多长?”
- “我的酒店有游泳池吗?”
- “带上我的高尔夫球杆会收费多少?”
然后,将针对客户在Expedia所有品牌上的所有已知信息应用机器学习模型,立即为客户提供他们所需的实时和自动回答,无论是简单的回答还是复杂的新行程。
四个月实现实时编排
这样的平台不适合批处理作业、后端处理或离线API。为了快速做出融入上下文信息的决策,平台需要接近实时的数据,并且需要来自各种服务和系统的数据。满足这些需求意味着将对话平台的架构建立在基于Confluent Cloud和Apache Kafka的中央神经系统之上。 Kafka使得从松散耦合的系统中编排数据成为可能,流动数据在它们之间进行数据丰富,以便到达目的地时准备就绪,并提供聚合数据以供分析和报告。
Expedia在四个月的时间内从零到达生产环境上构建了这个平台。使用完全托管的无服务器事件流平台作为基础的巨大优势在于,项目团队可以专注于业务逻辑。
新冠大流行证明了一个弹性平台的概念:企业遭受了大量顾客问题、取消和重新预订的冲击。在这一千载难逢的事件中,对话平台表现出色,根据需要自动扩展,并且减轻了活跃代理的负载。
Expedia从MQ迁移到Kafka作为实时机器学习和聊天机器人的基础
作为他们的对话平台的一部分,Expedia需要现代化他们的IT基础设施,正如Expedia集团的技术总监Ravi Vankamamidi在一次Kafka峰会主题演讲中所解释的。
Expedia的旧传统聊天机器人服务依赖于旧版消息系统。这个服务是一个只能处理特定预订场景的问答板。这个服务只能处理两方的对话。它不能扩展以将所有不同系统引入到一个架构中以构建功能强大的聊天机器人,以帮助顾客对话。
Expedia需要一个更贴近旅行援助的服务。它需要处理上下文特定、多方面、多通道的对话。因此,需要自然语言处理、翻译和实时分析等功能。整个服务需要在多个品牌之间可扩展。因此,需要一个快速且高度可扩展的具有订单保证、一次性恰好语义(EOS)和实时数据处理能力的平台。
由Confluent提供支持的Kafka原生事件流平台是最佳选择并符合所有要求。新的对话平台使Net Promoter Score(NPS)在推出一年后提高了一倍。新平台快速证明了新平台的商业价值。
宝马:用于合同智能、工作场所辅助和机器翻译的GenAI
汽车公司宝马在2019年的Kafka峰会上展示了创新的NLP服务。汽车制造商拥有各种NLP场景并不令人意外。这些包括数字合同智能、工作场所辅助、机器翻译及顾客对话。后者包含了面向对话型AI的多个用例:
- 服务台自动化
- 分析顾客交互中心(CIC)通话以提高质量
- 使用智能知识库进行自助服务
- 代理支持
- 聊天机器人
文本和语音数据经过组织、丰富、上下文化、概述和翻译,以构建实时决策支持应用程序。Kafka是宝马ML和NLP架构中关键的组成部分。实时集成和数据关联使得交互和数据消耗以及使用变得交互和可操作:
宝马解释了利用Kafka及其流处理库Kafka Streams作为实时集成和编排平台的关键优势:
- 灵活的集成:为不同部署场景提供多种支持接口,包括各种机器学习技术、编程语言和云提供商
- 模块化的端到端管道:可连接服务以提供完整的NLP应用程序。
- 可配置性:针对每个部署场景具有高灵活性。
Tinder:智能内容管理、匹配和推荐与 Kafka 和 GenAI
约会应用程序 Tinder 是一个很好的例子,我可以想到数十种自然语言处理的应用场景。Tinder 曾经在上一次 Kafka 峰会上讲述了他们的基于 Kafka 的机器学习平台。
Tinder 是 Kafka 及其生态系统的重度用户,用于各种用例,包括内容管理、匹配、推荐、提醒和用户重激活。他们使用Kafka Streams作为 Kafka 本地的流处理引擎,用于实时规模化的元数据处理和关联:
在任何约会或社交平台中,内容管理是一个关键用例,用于检测伪造、过滤性内容和其他不合适的内容。内容管理将 NLP 和文本处理(例如聊天信息)与图像处理(例如自拍上传)结合起来,或者将元数据处理与 Kafka 结合,将链接内容存储到数据湖中。这两者都利用深度学习来处理大量的文本和图像。以下是 Tinder Kafka 架构中的内容管理示例:
使用 Kafka 生态系统可以进行多种方式的文本、图像和视频处理。
聊天机器人也可以在“另一方面”发挥重要作用。越来越多的约会应用程序(和其他社交网络)打击垃圾邮件、欺诈和自动聊天机器人。与构建聊天机器人类似,聊天机器人检测系统可以分析数据流以阻止约会应用程序的聊天机器人。
Kafka 作为未来 GenAI 举措的实时数据网络
实时数据胜过慢速数据。只有提供准确和最新信息,生成式人工智能才能增加价值。Apache Kafka 和 Apache Flink 等数据流技术使得可构建可靠、可扩展的实时基础设施成为可能。此外,企业架构的事件驱动核心保证实时和非实时系统(接近实时、批处理、请求-响应)之间的数据一致性。
像宝马、Expedia 和 Tinder 这样的早期采用者证明了将生成式人工智能集成到 Kafka 架构中可以增加巨大的商业价值。随着 ChatGPT 等 AI 模型的发展,这个用例在各个行业变得更加吸引人。
您如何使用 Apache Kafka 构建对话式人工智能、聊天机器人和其他 GenAI 应用程序?您使用了哪些技术和架构?数据流和 Kafka 是否是架构的一部分?让我们在 LinkedIn 上交流并讨论!通过订阅我的新闻订阅,了解有关新的博客文章的信息。