スケーリング可能な AI エージェントを構築:AWS のサーバーレスアーキテクチャ
2022 年 2 月 18 日
サーバーレスでスケーラブルな AI エージェントを構築
ジェネレーティブAI時代のソフトウェア構築にはパラドックスがあります。一方で、フロンティア・ナレッジ・モデルは非常に強力になったため、AIを活用したアプリケーションの初期バージョンを作成するには、単純なチャットAPIを呼び出す(そしてコードのほとんどをコーディング・エージェントに記述させる)だけで済むかもしれません。一方、プロダクショングレードの AI アプリケーションに必要な精度、パフォーマンス、コスト最適化のレベルには、複雑な技術アーキテクチャが必要になることがよくあります。
この複雑さは、ジェネレーティブAIアルゴリズムが決定論的ではなく確率的であることも一因です。モデルの出力のばらつきを減らして信頼性を向上させるために、開発者は、「良い」応答とはどのようなものかを例示したり、モデルが出力を生成する際に考慮できる追加情報 (「コンテキスト」) を含めるなどの手法を使用します。その結果、AIを活用したアプリケーションのコードは、モデルのチャットAPIを単純に呼び出すよりもはるかに複雑になります。少なくとも、開発者は、モデルに表示されるコンテキストを構築するための専用データベースへの呼び出しを含むデータ提供レイヤーを少なくとも 1 つ追加する必要があります。
しかし、複雑さはそれだけではありません。開発者がAIを活用したアプリケーションにさらに機能を追加するにつれて、さまざまなコンテキストとさまざまなプロンプトセットが必要になることに気付くことがよくあります。そのため、抽象化に惹かれる開発者は、これらのさまざまな機能を強化するコードを自己完結型のモジュールに整理します。AI では、このようなデザインパターンは「エージェント」と呼ばれます。
エージェントの集まり:ジェネレーティブAIの複雑さを克服する
エージェントは、ジェネレーティブAIモデルを使用して特定のタスクを自律的に実行するコードモジュールです。エージェントは単独で行動することも、他のエージェントと協力して行動することもできます。また、通常はエージェントが使用できるコンテキストに含まれている API または関数である「ツール」を呼び出すこともできます。ソフトウェア設計に対するこのエージェント的アプローチの最終的な結果は、コンテキストエンジニアリング(エージェントがタスクを完了するために必要な関連データを取得するプロセス)がより複雑になることです。さらに、エージェント自体は、メインアプリケーションの外部で非同期的に実行する必要があることがよくあります (これは特に、機密データへのアクセスを必要とするエージェントに当てはまります)。これには、認証情報だけでなく、完全に独立したランタイム環境を管理する必要がある場合があります。
一般的なエージェント AI アプリケーションは、次のコンポーネントに分類できます。
- ジェネレーティブAIモデル。通常、大規模言語モデル(LLM)とそれへのアクセスを提供する API が含まれます。
- 下位レベルのモデルAPIを簡単に抽象化するソフトウェアフレームワーク、およびエージェントを構築し、コンテキストエンジニアリングに必要な多くのデータアクセス操作を実行するためのソフトウェア開発キット。
- データ提供コンポーネント。エージェントに提供されたコンテキストに含まれる情報を提供します。これらは、さまざまなデータストア(リレーショナルデータベース管理システム、NoSQLデータベースなど)で構成できます。ただし、ほとんどの場合、何らかの形式のセマンティック検索サービスが含まれます。エージェントアプリケーションの場合、これは通常、埋め込みと呼ばれるテキストデータの数値表現を格納するベクターストアにオフロードされます。
- エージェントのランタイム環境。単純なエージェントアプリケーションの場合、エージェントはアプリケーションコードを使用してインプロセスで実行される場合があります。しかし、ほとんどの場合、エージェントはメインアプリケーションからサンドボックス化された独自のプロセススペースで実行する必要があります。
複数のコンポーネントが連携して動作することを必要とするすべてのソフトウェアアーキテクチャと同様に、これらのコンポーネントの耐障害性、冗長性、およびパフォーマンスを確保するには、差別化されていない面倒な作業がかなり必要です。幸い、エージェント AI アプリケーションには、従来のアプリケーションと同じクラウドネイティブアーキテクチャのメリットがあります。サーバーレスアーキテクチャはエージェント AI アプリケーションにとって特に魅力的です。AWS は、開発者がエージェント AI アプリケーションをすばやく、簡単に、そして費用対効果の高い方法で構築できるようにするさまざまなサーバーレスサービスを提供しています。
推論の実例
まず、最もよく知られているコンポーネントであるジェネレーティブAIモデル自体から始めましょう。モデルサービングの用語は「推論」で、サーバーレス推論の用語では、 Amazon BedrockはジェネレーティブAI基盤モデルを実行およびアクセスするためのマネージドサービスを提供します。AnthropicのClaudeなどの最先端知識を持つLLMから、 Amazon Nova Sonicなどの音声ベースのモデル、OpenAIやMistralのオープンウェイトモデルまで多岐にわたり、すべて統一されたAPIを介してアクセスできます。
次は推論です。これは一般的に複雑で、GPUなどの特殊なハードウェアと、GPUのクラスターが相互に通信できるようにする低レベルのネットワークフレームワークに関する深い理解が必要です。従来、これは特にスタートアップ企業にとって、運用上の課題とアクセシビリティの障壁となっていました。Amazon Bedrockは、ユーザーがソリューションの API の使用方法を学ぶだけで済むため、これらの障壁を打破するのに役立ちます。
インテリジェントな埋め込み:ナレッジベースとベクターストア
推論とモデル提供に加えて、Amazon Bedrock はエージェント AI スタックの最も一般的なデータ提供コンポーネントも完全にサポートしています。 たとえば、 Amazon Bedrock ナレッジベースはセマンティック検索に使用できます。セマンティック検索では、クエリのテキストと意味的に類似したドキュメントのコレクションを検索します。これは、AI エージェントがそのコンテキストで追加情報を必要とする場合に重要です。
たとえば、カスタマーサービス担当者は、顧客が求めている情報と一致するFAQドキュメントを参照する必要がある場合があります。たとえば、「アカウントに登録されている住所を変更するにはどうすればいいですか?」 Amazon Bedrock ナレッジベースを使用すると、FAQ ドキュメントを Amazon S3 バケットに保存し、そのバケットを Bedrock ナレッジベースのデータソースとして設定することで、セマンティック検索用にインデックスを作成できます。このサービスは、ドキュメントの「チャンキング」(ドキュメントを小さな部分に分割する)、各チャンクの「ベクトル化」(テキストの数字埋め込みを作成)、チャンクと埋め込みを格納して相互に関連付け、関連するチャンクをセマンティッククエリで返せるように処理します。
これらの埋め込みを作成したら、埋め込み専用のデータベースまたはベクターストアに保存する必要があります。Amazon Bedrock ナレッジベースは、Amazon S3 に組み込まれたサーバーレスベクターデータベースである Amazon S3 Vectors を含む、いくつかのベクターストアオプションをサポートしています。このタイプのデータ提供レイヤーは検索拡張生成 (RAG) と呼ばれ、Amazon Bedrock ナレッジベース、S3、S3 ベクターを使用して簡単に実装できます。これにより、開発者は複雑なデータサービスインフラストラクチャの管理に煩わされることなく、AI エージェントの機能に集中できます。
ビルド、実行、スケーリング
埋め込みが保存され、ベクターストアからアクセスできるようになったら、次のステップは、このデータを使用する AI エージェントを実行することです。 Amazon Bedrock AgentCore は、開発者にサーバーレスのランタイム環境を提供します。エージェントは、LangChainやStrandsなどのフレームワークを使用して構築することも、自社で開発したものを使用して構築することもできます。その後、開発者はエージェントを zip アーカイブにパッケージ化して S3 にロードできます。あるいは、コンテナイメージを作成して Amazon のエラスティックコンテナレジストリ (ECR) にプッシュすることもできます。コードが S3 または ECR に保存されると、サーバーを管理しなくても、クラウドでエージェントを実行するように AgentCore を設定できます。AgentCoreは認証などの運用プロセスも処理し、組み込みのAWSIDおよびアクセス管理ロール、または企業のIDプロバイダーを介してサインインするためのJSON Webトークンのいずれかをサポートします。
Amazon Bedrock と AgentCore にはさらに多くのサーバーレス機能がありますが、この記事で詳しく説明する 3 つは、RAG を完全にサポートするエージェント AI アプリケーションを開発するための理想的な出発点となります。1 つ目は幅広いモデルによる推論のための Amazon Bedrock、2 つ目はドキュメントのインデックス作成とセマンティック検索のための Amazon Bedrock ナレッジベースと S3 ベクター、そして最後に、安全で費用対効果の高い方法でエージェントを実行するための Amazon AgentCore です。
エージェント型AIアプリケーションの開発は、特に限られたリソースで運営されていることが多い新興企業にとって、伝統的に複雑で困難でした。サーバーレスアーキテクチャでは、エンジニアが基盤となるインフラストラクチャを構築および管理する必要がなくなるため、この複雑さが軽減されます。経験豊富なエージェント AI 開発者でも、始めたばかりでも、Amazon Bedrock は、自信を持って構築とスケーリングを行うのに役立つ包括的なツールとサービスを提供します。
AWS でエージェント AI を構築する準備はできていますか? AWS Activate では、この記事で取り上げるソリューションやその他のさまざまなサービスの費用を相殺できる AWS クレジットを利用できます。2013 年の設立以来、AWS Activate は世界中のスタートアップ企業に 80 億ドル以上のクレジットを提供してきました。創設者はまた、プログラムやリソース、テクニカルサポート、ビジネスメンターシップ、そしてグローバルなスタートアップコミュニティとのより緊密なつながりから恩恵を受けます。数百万人に加わって、アイデアをコンセプトからクラウド対応に変える方法を見つけましょう。
今日お探しの情報は見つかりましたか?
ページコンテンツの品質向上のため、皆さまのご意見をお寄せください