イベント駆動型アーキテクチャに基づくAIネイティブアプリケーション

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/ai-native-applications-based-on-event-driven-architectures_601838?spm=a2c65.11461433.0.0.4ee35355V1Aa7Y)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

AIの商用化における課題とイベント駆動型アーキテクチャへの取り組み

著者: Hanxie

AIアプリケーションが商業化される際に直面する多くの課題があります。例えば、より効率的なサービス提供、リアルタイムで正確な結果の生成、よりユーザーフレンドリーな体験を提供することが求められます。伝統的なアーキテクチャは同期的なインタラクションしかサポートせず、これらの要求に応えることができません。この記事では、イベント駆動型アーキテクチャに基づいてこれらの課題に対処する方法について説明します。

### AIアプリケーションのシーン

イベント駆動型アーキテクチャとAIの組み合わせに入る前に、現在の状況でのAIアプリケーションを見直しましょう。アプリケーションアーキテクチャに基づいて、AIアプリケーションは大まかに次の3つのカテゴリーに分けられます:

1. **基礎モデルに基づく拡張アプリケーション**: ChatGPT（テキスト生成）、Stable Diffusion（画像生成）、CosyVoice（音声生成）など、モデルの能力を核に比較的原子的なサービスを提供する場合が多い。
   ![1](https://yqintl.alicdn.com/79cd2fa5c906e01bbe5f700ed2f81fdcfc8d1006.png)

2. **知識ベースに基づく知能アプリケーション**: Langchain ChatChatなどの、大規模言語モデル(LLMs)を核に持ち、検索強化型生成(RAG)技術を使用して開発され、幅広いビジネスシーンに適用可能。
   
3. **エージェントアプリケーション**: LLMsをインタラクションの中心として使用し、ツール呼び出しを通じて外部アプリケーションやサービスと接続し、複数エージェント間の協調作業など、複雑な形式で動作する。これは企業にとって最も創造的なアプリケーションです。
   ![4](https://yqintl.alicdn.com/269b6a0a79a742e9ea6afc5393fe3e4e33643c67.png)

### AIネイティブとは何か？

「ネイティブ」という言葉は、特定の概念に対する広範な理解を表します。モバイルネイティブアプリケーションと聞くと、すぐにスマートフォン上のアプリを連想します。クラウドネイティブアプリケーションと聞くと、多くの開発者はコンテナ化されたアプリを思い浮かべます。しかし、「AIネイティブ」については、ChatGPTやMidjourneyといった先駆的なアプリ以外では、モバイルネイティブアプリのように明確に定義することはできません。今でも結論を出すことはできず、事実に基づいてAIネイティブの方向性を考え、徐々にAIネイティブのイメージを具象化しています。

### AIがアプリケーションアーキテクチャに与える影響

AI機能がアプリケーションアーキテクチャに導入されると、アーキテクチャは大幅に変わります。RAGやエージェントなどのプログラミングパラダイムが使われ、AIノードがワークフローに追加されると、従来のワークフローも異なる形を取ります。
   ![2](https://yqintl.alicdn.com/d01362317b6150604893db1dee87f7c4d879d265.png)

### AIアプリケーションアーキテクチャの例

- **RAGを使用するAIアプリケーションアーキテクチャ**
   ![3](https://yqintl.alicdn.com/0562b90eb0d30fdaa0b78d5d1a63f23482def95b.png)

- **エージェントを使用するAIアプリケーションアーキテクチャ**
   同上 ![4](https://yqintl.alicdn.com/ec927a1a98e332ccd2ac9ad0bd4f6454befc4f55.png)

- **AIノードを含むワークフロー**
   ![5](https://yqintl.alicdn.com/4ffc356f0c0945af3aebd7e929799cc6db213e2f.png)

### AIアプリケーションの変化トレンド

有名なAI企業によって開発された製品の進化から見ると、これら3つのカテゴリーのAIアプリケーションは統合され、逐次的に分離されていく傾向にあります。エージェントが中央集権的に制御と管理を行うアプリケーションに進化します。
   ![6](https://yqintl.alicdn.com/8282641643bdb295ec145621ab5a1d79a2692ed0.png)

これらのアプリケーションは、知能内核、多モーダル能力、言語ユーザインターフェース(LUI)などの共通特徴を持っています。
   ![5](https://yqintl.alicdn.com/f5575da385c81d957e330eca89f55f1068e047c5.png)

### AIネイティブアプリケーションの創出に必要な要素

ユーザーがAIネイティブアプリケーションに対して支払いをするのは、AIアプリケーションが更好的なユーザー体験を提供できる場合のみです。基礎モデルの分散能力や多モーダル能力は特定のシーンでユーザー体験を改善することができますが、一部の点では従来のアプリよりも用户体验が悪くなることもあります。そのため、会話型インタラクション、AIモデル、多モーダル能力を組み合わせて、従来のアプリよりも優れたユーザー体験を提供するアプリを作成する必要があります。

### 伝統的な順次アーキテクチャによるAIネイティブアプリケーション創出の課題とイベント駆動型アーキテクチャの活用

順次アーキテクチャではビジネス要件を満たすことができず、イベント駆动型アーキテクチャの方が進化しているため、イベント駆动型アーキテクチャを利用します。

- **サービス呼び出しの順番が推論体験を保証できない**
   ![6](https://yqintl.alicdn.com/c69add3cce0cc61053434a1e8fef0b849120bf87.png)

- **サービス呼び出しの順番がリアルタイムデータ構築の要求を満たせない**
   ![7](https://yqintl.alicdn.com/22c01615db931c7cfa94bb777dc386ad9172b871.png)

- **サービス呼び出しの順番が双方向コミュニケーションをサポートしない**
   ![8](https://yqintl.alicdn.com/9ae33cabe240c5ad2d70fa580a72579cb8ddcaf2.png)

### イベント駆動型アーキテクチャを使ったAIネイティブアプリケーション創出の実践

- **Stable Diffusionの非同期推論アーキテクチャ**
   ![9](https://yqintl.alicdn.com/9e8de437065a40fd3a0e2aa3d05c4b6e4e993462.png)
   Function ComputeとSimple Message Queue(SMQ)を使用して、Stable Diffusionの非同期推論アーキテクチャを構築しています。

- **リアルタイム会話に対応するVoice Agentアプリケーション**
   ![10](https://yqintl.alicdn.com/76fea5a8e73557f18439c2c4053a11b6a7e6a862.png)
   RTCサーバー上でApsaraMQ for RocketMQクライアントを実装し、リアルタイムな音声ベースの会話を行えます。
   ![11](https://yqintl.alicdn.com/8bc2457ec4f2dab00d38a748c561da5a0f212bf0.png)

これらの事例は、イベント駆動型アーキテクチャがAIネイ
**出力テキスト：**

スケジュールされたタスクがトリガーされ、ユーザーの意図を分析し、メッセージを生成して、トピックに送信します。その後、ApsaraMQ for RocketMQ クライアントがメッセージを消費し、積極的に質問を行います。Voice Agent アプリケーションの知識ベースでのリアルタイムデータストリーム。
![_12](https://yqintl.alicdn.com/1cc26e0d4523b2334b67a45b03a842ed643fdb5c.png)

知識ベースは、変更データキャプチャ（CDC）ポリシーに基づいて自動的に更新されます。外部システムデータソースからのデータのインポートや、Object Storage Service（OSS）へのドキュメントのアップロードなどの条件によって、自動更新プロセスがトリガーされます。データはチャンクに分割され、ベクトル化され、ベクトルデータベースとフルテキスト検索データベースに保存されます。AIネイティブアプリケーション向けのイベント駆動型アーキテクチャ。
![_13](https://yqintl.alicdn.com/e761b7c4a8f80fbaa7ad53ef140de99aabb45948.png)

最後に、AIアプリケーション開発者向けの解決策セットを共有したいと思います。Alibaba CloudのCloud Application Platform（CAP）のOllama、ComfyUI、CosyVoice、Embeddingなどの基礎モデルサービスを選択し、これらのモデルサービスをCAPでホストします。ApsaraMQ for RocketMQ、ApsaraMQ for Kafka、SMQ、EventBridgeなどのサービスを使用して、データストリームパイプラインとメッセージセンターを構築します。Spring AI Alibabaなどのフレームワークを使用して、ローカルコンピューター上でバックエンドサービスを開発し、RAGとエージェント機能を実装します。Next.jsフレームワークを使用して、フロントエンドサービスのインターフェイスを作成します。その後、Serverless Devsを使用して、開発したフロントエンドおよびバックエンドサービスをCAPにデプロイし、サービスを調整してアクセスします。最後に、クラウドネイティブゲートウェイを使用してサービスのプロダクションを保護します。知識ベースやエージェントに対する長期的な運用・メンテナンスを行うには、<a href=https://www.alibabacloud.com/product/arms?spm=a3c0i.27899667.6791778070.126.12286732CLj0um target=_blank>Application Real-Time Monitoring Service</a>（ARMS）を使用してサービスのメトリクスを監視します。

この記事は、中国・杭州で開催されたAIアプリケーションエンジニアリングセッションにおけるクラウドネイティブとオープンソース開発者のサロンでのトピック共有から派生しています。