このコンテンツはいかがでしたか?
- 学ぶ
- スケーリング可能な AI エージェントを構築: AWS のサーバーレスアーキテクチャ
スケーリング可能な AI エージェントを構築: AWS のサーバーレスアーキテクチャ
生成 AI 時代のソフトウェア構築にはパラドックスがあります。一方で、フロンティアナレッジモデルは非常に強力になったため、AI 搭載アプリケーションの初期バージョンを作成することは、単純なチャット API を呼び出す (そしてコードの大半をコーディングエージェントに記述させる) だけのものである場合があります。一方、本番グレードの AI アプリケーションに必要な精度、パフォーマンス、コスト最適化のレベルには、複雑な技術アーキテクチャが必要になることがよくあります。
この複雑さは、生成 AI アルゴリズムが決定論的ではなく確率的であることも 1 つの理由です。モデルの出力の変動を減らして信頼性を向上させるために、開発者は「良い」応答とはどのようなものかを例示したり、モデルが出力を生成する際に考慮できる追加情報 (「コンテキスト」) を含めるなどの手法を使用します。その結果、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 の Elastic Container Registry (ECR) にプッシュすることもできます。コードが S3 または ECR にあれば、サーバーを管理しなくても、エージェントをクラウドで実行するように AgentCore を設定できます。AgentCore は認証などの運用プロセスも処理し、組み込みの AWS Identity and Access Management ロール、または企業の ID プロバイダーを通じてサインインするための JSON Web Token のいずれかをサポートします。
Amazon Bedrock と AgentCore には他にも多くのサーバーレス機能がありますが、この記事で詳しく説明する 3 つは、RAG を完全にサポートするエージェンティック AI アプリケーションを開発するための理想的な出発点となります。最初は、幅広いモデルによる推論用の Amazon Bedrock、2 つ目はドキュメントのインデックス作成とセマンティック検索用の Amazon Bedrock ナレッジベースと S3 ベクトル、そして最後はエージェントを安全で費用対効果の高い方法で実行するための Amazon AgentCore です。
エージェンティック AI アプリケーションの開発は、特に、限られたリソースで運営されていることが多いスタートアップにとって、従来は複雑で困難でした。サーバーレスアーキテクチャでは、エンジニアが基盤となるインフラストラクチャを構築して管理する必要がなくなるため、この複雑さが軽減されます。経験豊富なエージェンティック AI 開発者でも、始めたばかりの人でも、Amazon Bedrock は自信を持って構築とスケーリングを行うのに役立つ包括的なツールとサービスを提供します。
AWS でエージェンティック AI を構築する準備はできていますか? AWS Activate では、この記事で取り上げたソリューションやその他の幅広いサービスの費用を相殺できる AWS クレジットにアクセスできます。2013 年の設立以来、AWS Activate は世界中のスタートアップに 80 億 USD を超えるクレジットを提供してきました。創設者は、プログラムやリソース、技術サポート、ビジネスメンターシップ、そしてグローバルなスタートアップコミュニティとのより緊密なつながりからのメリットを受けています。数百万の人々に加わり、アイデアをコンセプトからクラウド対応へと発展させる方法を見つけましょう。
このコンテンツはいかがでしたか?