GenAIにとっての重要なデータファブリックとしてのApache Kafka
「Apache KafkaとしてのGenAIにおける重要なデータファブリック」
Apache Kafkaは、機械学習インフラのためのミッションクリティカルかつスケーラブルなリアルタイムデータファブリックとして、数千の企業に利用されています。大規模な言語モデル(LLM)であるChatGPTのような生成型AI(GenAI)の進化は、知的ソフトウェアや自動化に対する人々の考え方を変えました。このブログ記事では、データストリーミングとGenAIの関係を解説し、GenAIの大きな可能性と、早期採用者がバズにおいて超えた状況を示しています。
生成型AI(GenAI)とデータストリーミング
まずは、キーワードの理解を共有しましょう。
[注:ChatGPTのiPhoneアプリがこのセクションを生成しました。後で内容を短くし、調整しました。GenAIは既存のコンテンツを要約するのに最適であり、著者はまだ知らない新しいコンテンツに時間を費やすことができます。]
自然言語処理(NLP)
ChatGPT、NLPとは何ですか?
NLPは自然言語処理の略称であり、コンピュータと人間の言語のやり取りに焦点を当てた人工知能(AI)のサブフィールドです。NLPは、人間の言語を理解し、解釈し、生成するためにコンピュータを能力を与える技術です。
NLPには、次のようなタスクが含まれます。
- テキストの解析とトークン化:テキストを個々の単語やトークンに分割すること。
- 名前エンティティ認識(NER):テキストの人物、組織、場所、日付などの名前エンティティを特定して分類すること。
- 感情分析:テキスト内で表現される感情や感情のトーン(肯定的、否定的、中立)を特定すること。
- 機械翻訳:一つの言語から別の言語へのテキストの翻訳。
- 質問応答:自然言語で行われる質問を理解し、答えることができるシステムの構築。
- テキスト生成:人間らしいテキストの生成やプロンプトへの応答の生成。
NLPは、チャットボット、バーチャルアシスタント、言語翻訳、情報検索、感情分析などのアプリケーションにおいて重要な役割を果たしています。
GenAI = 次世代NLP(およびそれ以上)
ChatGPT、生成型AIとは何ですか?
生成型AIは、画像、テキスト、音楽、さらには仮想世界全体など、新しいコンテンツを生成することができるモデルやシステムを作成することに焦点を当てた人工知能の分野です。これらのモデルは大規模なデータセットでトレーニングされ、トレーニングデータと似た新しい出力を生成するためのパターンと構造を学習します。それが広く使用されている言葉としては、大型言語モデル(LLM)があります。
生成型AIは、生成的対抗ネットワーク(GAN)、変分オートエンコーダ(VAE)、再帰ニューラルネットワーク(RNN)などの技術を用いた次世代NLPに利用されています。生成型AIは、芸術、デザイン、エンターテイメント、科学研究など、さまざまな分野と産業で活用されています。
データストリーミングのためのApache Kafka
ChatGPT、Apache Kafkaとは何ですか?
Apache Kafkaはオープンソースの分散ストリーミングプラットフォームであり、イベントストリーミングのデファクトスタンダードとなっています。Apache Software Foundationによって開発され、リアルタイムのデータストリーミングアプリケーションやイベントドリブンアーキテクチャの構築に広く使用されています。Kafkaは、高いボリュームのストリーミングデータを処理するための拡張性と耐障害性を備えたシステムを提供しています。
Kafkaは、Apache Spark、Apache Flinkなどと統合するさまざまなツールやフレームワークを備えた繁栄しているエコシステムを持っています。
Apache Kafkaは、リアルタイムデータストリーミングを必要とするデータパイプライン、イベントソーシング、ログの集約、メッセージングシステムなどのユースケースで広く採用されています。
なぜApache KafkaとGenAIを使用するのですか?
生成型AI(GenAI)は、サービスデスクの自動化、チャットボットによる顧客との対話、ソーシャルネットワークでのコンテンツモデレーションなど、実際の世界で多くのプロジェクトに役立っています。
Apache Kafkaは、さまざまなデータソースを統合し、スケールで処理し、リアルタイムのモデル推論を行うための主要なオーケストレーションレイヤーとなりました。
Kafkaを使用したデータストリーミングは、既に多くのGenAIインフラストラクチャとソフトウェア製品にパワーを供給しています。非常に異なるシナリオが可能です:
- 全体の機械学習インフラストラクチャのデータファブリックとしてのデータストリーミング。
- リアルタイムの製品に向けたストリーム処理を利用したモデルスコアリング。
- テキストや音声の入力に基づくストリーミングデータパイプラインの生成。
- 大規模な言語モデルのリアルタイムのオンライントレーニング。
これらのKafkaとGenAIを使用したデータストリーミングの機会を詳しく見てみましょう。
ジェンAIとその他のマイクロサービスの実時間Kafkaデータハブ
2017年にも「Apache Kafkaを使用して本番環境でスケーラブルな機械学習をビルドおよびデプロイする方法」を探求しました。当時、実世界の例はUber、Netflix、およびPaypalなどのテックジャイアンツからのものでした。
今日、Apache Kafkaは、Uber、Netflix、Paypalを含む、あらゆる企業や業界でスケーラブルで信頼性のある機械学習インフラストラクチャを構築するための事実上の標準となっています。以下を含む:
- Kafka Connectコネクタ、完全に管理されたSaaS統合、または任意の種類のHTTP REST APIやプログラミング言語を使用して、さまざまなソース(センサー、ログ、データベース、メッセージブローカー、APIなど)からのデータ統合
- データ処理を行うためのストリーム処理を活用し、フィルタリング、集計、他の高度な計算などのコスト効率の高いストリーミングETLデータ処理。
- ほぼリアルタイムのデータ共有を可能にするデータ取り込み、それにより各分析プラットフォームが独自の製品とツールを使用できるようになります。
スケーラブルで信頼性のあるエンドツーエンドのパイプラインの構築は、今日のデータストリーミングとApache KafkaのAIおよび機械学習領域でのスイートスポットです。
リアルタイム予測のためのストリーム処理を使用したモデルスコアリング
Kafkaアプリケーションに解析モデルを展開することは、低レイテンシで任意のスケールでリアルタイムの予測を提供する解決策です。これは、AIの領域で最も重要な問題の1つであり、データサイエンティストは主に履歴データとデータレイクでのバッチモデルトレーニングに焦点を当てているためです。
ただし、予測のためのモデルスコアリングは、スケーラビリティ、信頼性、レイテンシに関してははるかに優れたSLAを提供する必要があります。そのため、モデルトレーニングをモデルスコアリングから分離し、Kafka Streams、KSQL、またはApache Flinkなどのストリームプロセッサ内に解析モデルを展開する企業が増えています。
専用のモデルサーバーは通常、バッチおよびリクエスト-レスポンス(例:HTTPやgRPC経由)のみをサポートしています。幸いなことに、多くのソリューションは現在、Kafkaプロトコルとのネイティブ統合も提供しています。
入力テキストや音声からKafkaネイティブのデータパイプラインを生成するための開発ツール
ほぼすべてのソフトウェアベンダーは、開発環境とユーザーインターフェースを強化するためにGenAIを取り上げています。
たとえば、GitHubはGitを使用したソフトウェア開発とバージョン管理のためのプラットフォームおよびクラウドベースのサービスです。しかし、最新のイノベーションは「安全なソフトウェアのビルド、スケール、およびデリバリーのためのAIパワードデベロッパープラットフォーム」であるGitHub CoPilot Xです。AWSなどのクラウドプロバイダも同様のツールを提供しています。
同様に、DatabricksやSnowflakeなどのデータインフラストラクチャベンダーを見てみましょう。最新のカンファレンスや発表では、大規模言語モデルとGenAIに関する埋め込み機能に焦点が当てられています。
同じことが多くのデータストリーミングプラットフォームやクラウドサービスにも当てはまります。ローコード/ノーコードツールは、入力テキストからデータパイプラインを生成するための機能を追加します。私がもっとも簡単な応用として見ているのは、ユーザーテキストからSQLコードを生成することです。
たとえば、「Oracleテーブルの顧客データを使用し、支払いを顧客ごとに集計してSnowflakeに統合する」といったことがあります。これにより、KSQLやFlinkSQLなどのストリーム処理技術のためのSQLコードが作成される可能性があります。
開発者の経験、より速いマーケット投入、および技術的には少なくてもないサポートは、Kafka開発環境にGenAIを組み込むことの巨大な利点です。
大規模言語モデル(LLM)のリアルタイムトレーニング
AIと機械学習はほぼ常にバッチベースのシステムです。モデルのトレーニングには少なくとも数時間かかります。これは理想的ではありません、なぜなら多くのGenAIのユースケースでは正確かつ最新の情報が必要です。今日情報を検索しても、先週のデータが見つからないという状況では、多くのシナリオでこのようなサービスを使用することは不可能です!
同様に、もし私が今日(2023年7月)ChatGPTに「GenAIとは何ですか?」と尋ねた場合、次の回答が得られます:
2021年9月の最新アップデートでは、「GenAi」というエンティティに関する具体的な情報はありません。それ以降に新しい情報が出ている可能性があります。もっと文脈を提供して質問を明確にしていただければより良くお手伝いできます。
機械学習インフラストラクチャがデータをモデルトレーニングに素早く組み込むことができれば、よりよいです。私の同僚であるMichael Drogalisは、このトピックをより詳しく探求するための優れた深いテクニカルブログ記事「GPT-4 + Streaming Data = Real-Time Generative AI」を書いています。
このアーキテクチャは魅力的です、なぜならチャットボットは常に最新の情報を持っており、プロンプトするたびにそれを利用できるからです。たとえば、飛行機の遅延やターミナルの変更があった場合、チャットボットはチャットセッション中にそれについて知っています。これは、現在のアプローチとはまったく異なり、チャットセッションをリロードするか、新しいデータが到着するまで数時間または数日待つ必要がある場合です。
LLM + ベクトルデータベース + Kafka = リアルタイムGenAI
リアルタイムモデルトレーニングはまだ新しいアプローチです。多くの機械学習アルゴリズムは現在も連続的なオンラインモデルトレーニングには対応していません。ベクトルデータベースとKafkaを組み合わせることで、バッチトレーニングされたLLMとリアルタイムの更新によって最新情報をLLMに供給できるようになります。
将来、ChatGPTのようなLLMは受け入れられなくなるでしょう。週前にモデルがトレーニングされたと言ってしまうような回答は受け入れられません。Pineconeのような新しいベクトルデータベースを選択するか、インストールされたOracleやMongoDBのベクトル機能を活用してもかまいません。
Kafka Connectを使用してリアルタイムでデータをベクトルデータベースにフィードし、成熟したLLMと組み合わせることで、コンテキストに特化したおすすめを提供するリアルタイムGenAIを可能にします。
KafkaとGenAIのための実世界の事例
このセクションでは、自動車メーカーBMWやオンライン旅行予約サイトExpedia、デートアプリTinderなど、さまざまな業界の企業がデータストリーミングとGenAIの組み合わせを利用して、信頼性のあるリアルタイム会話型AI、NLP、チャットボットを実現している事例を探求します。
しかし、ChatGPTのような技術は、より速い上市時間、低いコスト、リスクを伴うことなく、実世界のプロジェクトでGenAIを採用することを容易にしてくれます。NLPとGenAIをデータストリーミングエンタープライズアーキテクチャに組み込むためのいくつかの成功事例を探求しましょう。
免責事項: ビジョンを示す代わりに実世界の事例を示したいので、直近数年間に本番環境に展開されたいくつかの例を示しています。したがって、分析モデルは現在報道で知っているGenAI、LLM、またはChatGPTを使用していません。ただし、原則はまったく同じです。違いは、今日のように改善されたコンテキストに特化した応答を提供できるような最先端のモデルであるChatGPTなどを使用できることです。
Expedia: より良い顧客体験のための会話プラットフォーム
Expediaはリーディングオンライン旅行予約サイトです。彼らはさまざまな機械学習のユースケースを持っています。私のお気に入りの例の一つは、Conversations Platformであり、KafkaとConfluent Cloudで構築された、エラスティックでクラウドネイティブなアプリケーションです。
ExpediaのConversations Platformの目標はシンプルでした:何百万もの旅行者が自然な言語で自動化されたエージェントと対話できるようにすることです。テキストやFacebook、またはお好みのチャネルを介して旅行を予約したり、変更やキャンセルをしたり、質問をしたりすることができるようにします:
- 「私の乗り継ぎ時間はどれくらいですか?」
- 「ホテルにプールはありますか?」
- 「ゴルフクラブを持って行くといくら請求されますか?」
そして、Expediaのブランド全体にわたるお客様に関するすべての情報を活用し、瞬時に顧客が求めているものを提供するために機械学習モデルを適用します。それが単純な回答であれ、複雑な新しい旅程であれ、リアルタイムかつ自動的に対応します。
4ヶ月で実現されたリアルタイムオーケストレーション
このようなプラットフォームはバッチジョブ、バックエンド処理、オフラインAPIの場所ではありません。コンテキスト情報を組み込んだ迅速な意思決定を行うために、プラットフォームはリアルタイムにデータが必要であり、幅広いサービスとシステムからそれを必要としています。これらの要件を満たすために、Confluent CloudとApache Kafkaをベースにした中枢神経系に基づいてConversations Platformを設計しました。Kafkaのおかげで、疎結合なシステムからデータを連携し、データが流れる間にデータを拡張することができます。その結果、データが目的地に到着する頃には、即座にアクションを起こす準備ができ、集約されたデータが分析やレポート作成に利用できるようになります。
Expediaはゼロから本番までの開発を4ヶ月で実現しました。これは、完全に管理されたサーバーレスのイベントストリーミングプラットフォームを基盤として使用することの大きな利点です。プロジェクトチームはビジネスロジックに集中することができます。
コロナパンデミックは、弾性のあるプラットフォームのアイディアを証明しました。企業は、顧客の質問、キャンセル、再予約の津波に直面しました。この一生に一度の出来事の中で、Conversations Platformはチャレンジに対応し、必要に応じて自動的にスケーリングし、生のエージェントの負荷を大幅に軽減しました。
ExpediaのMQからKafkaへの移行:リアルタイム機械学習とチャットボットの基盤
Conversations Platformの一環として、ExpediaはITインフラを近代化する必要がありました。Expedia GroupのテクノロジーディレクターであるRavi Vankamamidiは、Kafka Summitの基調講演で説明しました。
Expediaの旧世代のチャットボットサービスは、旧世代のメッセージングシステムに依存していました。このサービスは、予約シナリオの範囲が非常に限定された質問応答ボードでした。このサービスは2者間の会話を処理できましたが、様々なシステムを1つのアーキテクチャに統合して強力なチャットボットを構築するためにはスケーリングできませんでした。
Expediaはトラベルアシスタンスに近いサービスが必要でした。コンテキスト固有のマルチパーティー、マルチチャネルの会話を処理する必要がありました。したがって、自然言語処理、翻訳、リアルタイムアナリティクスのような機能が必要でした。フルサービスは複数のブランドに対応する必要があります。したがって、オーダーガランティ、エクサクトワンスセマンティクス(EOS)、リアルタイムデータ処理が可能な高速で高性能なプラットフォームが必要でした。
Confluentが提供するKafkaネイティブのイベントストリーミングプラットフォームは、最良の選択であり、すべての要件を満たしています。新しいconversationsプラットフォームは、リリースから1年後にNet Promoter Score(NPS)を倍増させました。新しいプラットフォームは迅速にビジネス価値を証明しました。
BMW:契約インテリジェンス、職場支援、機械翻訳のためのGenAI
自動車会社BMWは、2019年のKafka Summitで革新的なNLPサービスを発表しました。自動車メーカーがさまざまなNLPシナリオを持っていることは驚くことではありません。これにはデジタル契約インテリジェンス、職場支援、機械翻訳、顧客会話などが含まれます。後者には、会話型AIのための複数のユースケースが含まれます。
- サービスデスクの自動化
- 顧客インタラクションセンター(CIC)の通話の音声分析による品質向上
- スマートナレッジベースを使用したセルフサービス
- エージェントサポート
- チャットボット
テキストと音声データは構造化、拡張、コンテキスト化、要約化、翻訳され、リアルタイムの意思決定支援アプリケーションを構築するために活用されます。KafkaはBMWの機械学習とNLPアーキテクチャの重要なコンポーネントです。リアルタイムの統合とデータの関係性により、インタラクティブで相互運用可能なデータの利用と消費が可能になります。
BMWは、Kafkaとそのストリーミング処理ライブラリであるKafka Streamsをリアルタイムの統合およびオーケストレーションプラットフォームとして活用することの主要な利点を説明しました:
- 柔軟な統合:さまざまなマシンラーニングテクノロジーやプログラミング言語、クラウドプロバイダ向けの複数のサポートされたインターフェースがあります
- モジュール式のエンドツーエンドパイプライン:フルフレッジのNLPアプリケーションを提供するためにサービスを接続できます
- 設定可能性:各デプロイメントシナリオに対する高いアジリティがあります
Tinder:KafkaとGenAIを使用した知的なコンテンツモデレーション、マッチング、および推奨
デートアプリのTinderはNLPのための数十のユースケースを考えることができる優れた例です。Tinderは過去のKafka Summitで、彼らのKafka駆動の機械学習プラットフォームについて話しました。
Tinderは、コンテンツモデレーション、マッチング、おすすめ、リマインダー、ユーザーリアクティベーションなどの様々なユースケースでKafkaおよびそのエコシステムを大量に使用しています。彼らはKafka Streamsを使用し、リアルタイムでスケーラブルにメタデータ処理と相関を行うためのKafkaネイティブのストリーム処理エンジンとして使用しました。
デートやソーシャルプラットフォームにおける重要なユースケースの一つは、偽物の検出、性的コンテンツのフィルタリング、その他の不適切な要素を見つけるためのコンテンツモデレーションです。コンテンツモデレーションでは、チャットメッセージなどのテキスト処理と(例えば自撮りのアップロードなどの)画像処理、またはKafkaでのメタデータの処理によって関連するコンテンツをデータレイクに保存します。両方の処理は、テキストや画像の高いボリュームを処理するためにディープラーニングを利用しています。以下はTinderのKafkaアーキテクチャにおけるコンテンツモデレーションの様子です。
Kafkaエコシステムを使用してテキスト、画像、動画を処理する方法はたくさんあります。
チャットボットは、逆の役割を果たすこともあります。より多くのデートアプリ(および他のソーシャルネットワーク)は、スパム、詐欺、自動チャットボットと戦っています。チャットボットの検出システムは、データストリームを分析してデートアプリのチャットボットをブロックすることができます。
将来のGenAIイニシアチブのためのリアルタイムデータファブリックとしてのKafka
リアルタイムデータは遅いデータに勝ります。正確かつ最新の情報を提供する場合にのみ、生成AIは価値を追加します。Apache KafkaやApache Flinkなどのデータストリーミング技術は、GenAIのための信頼性のあるスケーラブルなリアルタイムインフラストラクチャを構築することを可能にします。さらに、イベントベースのエンタープライズアーキテクチャにより、リアルタイムと非リアルタイムのシステム(近似リアルタイム、バッチ、リクエスト-レスポンス)間のデータの整合性が保証されます。
BWM、Expedia、Tinderなどの早期採用者は、Kafkaアーキテクチャに統合された生成AIが莫大なビジネス価値をもたらすことを証明しました。ChatGPTなどのAIモデルの進化により、このユースケースはあらゆる業界でさらに魅力的になっています。
Apache Kafkaを活用して対話型AI、チャットボット、およびその他のGenAIアプリケーションを構築する方法、使用するテクノロジー、およびアーキテクチャにはどのようなものがありますか?データストリーミングとKafkaはアーキテクチャの一部ですか?LinkedInでつながりましょう、そしてそれについて話し合いましょう!新しいブログの投稿に関しては、ニュースレターを購読して最新情報を知ることができます。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles