Amazon SageMaker JumpStartを使用して、インターネット接続がないVPCモードで、生成AIの基礎モデルを利用します
Amazon SageMaker JumpStartを使用して、VPCモードで生成AIの基礎モデルを利用します
最近の生成AIの進歩により、さまざまな業界で生成AIを使用して特定のビジネス問題を解決する方法についての議論が盛んに行われています。生成AIは、会話、物語、画像、動画、音楽など、新しいコンテンツやアイデアを作成できるAIの一種です。これらは、非常に大規模なモデルによってバックアップされており、広範なデータに事前学習された基礎モデル(FM)として一般的に言及されています。これらのFMは、ブログの投稿の作成、画像の生成、数学の問題の解決、対話の展開、ドキュメントに基づいた質問への回答など、複数のドメインをまたぐ様々なタスクを実行できます。FMのサイズと汎用性は、通常、感情分析のためのテキストの分析、画像の分類、トレンドの予測など、特定のタスクを実行する従来のMLモデルとは異なります。
組織はこれらのFMの力を利用しようとしていますが、FMベースのソリューションを自分自身の保護された環境で実行したいとも考えています。グローバルな金融サービスや医療・ライフサイエンスなどの厳格に規制された領域で運営する組織は、自分自身のVPCで環境を実行するための監査およびコンプライアンスの要件を持っています。実際、これらの環境では、意図しないトラフィック(入力および出力の両方)にさらされないようにするために、直接のインターネットアクセスすら無効にされることが多々あります。
Amazon SageMaker JumpStartは、アルゴリズム、モデル、およびMLソリューションを提供するMLハブです。SageMaker JumpStartを使用すると、MLプラクティショナーは、最もパフォーマンスの高いオープンソースのFMのリストから選択することができます。また、これらのモデルを独自のVirtual Private Cloud(VPC)にデプロイする機能も提供されます。
この記事では、JumpStartを使用してFlan T5-XXLモデルをVPCにインターネット接続なしでデプロイする方法を示します。以下のトピックについて説明します。
- インターネットアクセスのないVPCでSageMaker JumpStartを使用して基礎モデルをデプロイする方法
- VPCモードでのSageMaker JumpStartモデルを使用したFMのデプロイの利点
- JumpStartを使用した基礎モデルのデプロイのカスタマイズの代替方法
FLAN-T5 XXL以外にも、JumpStartにはさまざまなタスク用のさまざまな基礎モデルが提供されています。詳細については、Amazon SageMaker JumpStartの入門をご覧ください。
ソリューションの概要
このソリューションの一環として、次の手順を説明します。
- インターネット接続のないVPCのセットアップ
- 作成したVPCを使用してAmazon SageMaker Studioをセットアップする
- JumpStartを使用してインターネット接続のないVPCに生成AI Flan T5-XXL基礎モデルをデプロイする
以下は、ソリューションのアーキテクチャ図です。
このソリューションを実装するためのさまざまな手順を進めていきましょう。
前提条件
この記事に従って進めるには、以下が必要です。
- AWSアカウントへのアクセス。詳細については、「AWSアカウントの作成」を参照してください。
- このソリューションの一部として、AWS CloudFormationテンプレートを展開し、ソリューションの一環としてリソースを管理するための権限を持つAWS Identity and Access Management(IAM)ロール。
インターネット接続のないVPCのセットアップ
「01_networking.yaml」テンプレートを使用して新しいCloudFormationスタックを作成します。このテンプレートは、インターネット接続のない新しいVPCを作成し、2つのアベイラビリティーゾーンにまたがる2つのプライベートサブネットを追加します。その後、Amazon Simple Storage Service(Amazon S3)へのアクセスのためのゲートウェイVPCエンドポイントと、SageMakerおよびその他のいくつかのサービスへの接続を許可するためのインターフェースVPCエンドポイントを展開します。これにより、VPC内のリソースがAWS PrivateLinkを介してAWSサービスに接続できるようになります。
「No-Internet」などのスタック名を指定し、スタック作成プロセスを完了します。
このソリューションは、この記事の手順に従う場合にコストを削減するため、インターフェースVPCエンドポイントは1つのサブネットのみに作成されるため、高い可用性を持っていません。
VPCを使用してStudioをセットアップする
02_sagemaker_studio.yamlを使用して別のCloudFormationスタックを作成します。このスタックはStudioドメイン、Studioユーザープロファイル、IAMロールなどのサポートリソースを作成します。スタックに名前を付けてください。この投稿では、SageMaker-Studio-VPC-No-Internet
という名前を使用します。以前に作成したVPCスタックの名前(No-Internet
)をCoreNetworkingStackName
パラメーターとして指定し、他の項目はデフォルトのままにします。
AWS CloudFormationがスタックの作成が完了したことを報告するまでお待ちください。SageMakerコンソールで使用できるStudioドメインが確認できます。
Studioドメインユーザーがインターネットにアクセスできないことを確認するには、SageMakerコンソールを使用してStudioを起動します。 ファイル、新規、ターミナルを選択し、インターネットリソースにアクセスしようとします。次のスクリーンショットに示すように、ターミナルはリソースを待ち続け、最終的にタイムアウトします。
これにより、StudioがインターネットにアクセスできないVPCで動作していることが証明されます。
JumpStartを使用して生成AI基盤モデルFlan T5-XXLをデプロイする
このモデルはStudioを介して、またはAPIを介してデプロイすることができます。JumpStartは、Studioからアクセス可能なSageMakerノートブックを介してモデルをデプロイするためのすべてのコードを提供します。この投稿では、Studioからこの機能を紹介します。
- Studioのウェルカムページで、Prebuilt and automated solutionsの下にあるJumpStartを選択します。
- Foundation Modelsの下で、Flan-T5 XXLモデルを選択します。
- デフォルトでは、Deployタブが開かれます。 Deployment Configurationセクションを展開して、
hosting instance
とendpoint name
を変更するか、追加のタグを追加します。また、エンドポイントの作成に使用されるモデルアーティファクトのS3バケットの場所
を変更するオプションもあります。この投稿では、すべての項目をデフォルト値のままにします。予測を行うためのエンドポイントを呼び出す際に使用するエンドポイント名をメモしておいてください。
- Security Settingsセクションを展開し、エンドポイントの作成に使用する
IAMロール
を指定します。また、サブネット
とセキュリティグループ
を指定してVPC設定
を行うこともできます。サブネットIDとセキュリティグループIDは、AWS CloudFormationコンソールのVPCスタックの出力タブから見つけることができます。SageMaker JumpStartでは、この構成の一部として少なくとも2つのサブネットが必要です。サブネットとセキュリティグループは、モデルコンテナへのアクセスを制御します。
注記:SageMaker JumpStartモデルがVPC内に展開されているかどうかに関係なく、モデルは常にネットワーク分離モードで実行されます。これにより、モデルコンテナに対して入力または出力のネットワーク呼び出しを行うことはできません。VPCを使用しているため、SageMakerは指定したVPCを介してモデルアーティファクトをダウンロードします。ネットワーク分離モードでモデルコンテナを実行しても、SageMakerエンドポイントは推論リクエストに応答することは可能です。モデルコンテナと並行してサーバープロセスが実行され、推論リクエストをモデルコンテナに転送しますが、モデルコンテナにはネットワークアクセス権限がありません。
- モデルを展開するには、デプロイを選択します。エンドポイントの作成状況をリアルタイムで確認できます。エンドポイントの作成には5〜10分かかる場合があります。
このページのモデルデータの場所の値を確認してください。すべてのSageMaker JumpStartモデルは、SageMakerが管理するS3バケット(s3://jumpstart-cache-prod-{region}
)にホストされています。そのため、JumpStartから選択したモデルに関係なく、モデルは公開されているSageMaker JumpStart S3バケットから展開され、トラフィックは公開モデルの動物園APIにモデルをダウンロードすることはありません。これが、直接のインターネットアクセスがないVPCでエンドポイントを作成してもモデルのエンドポイント作成が成功する理由です。
モデルアーティファクトは、モデルのソースの場所をさらに制御して保護するため、任意のプライベートモデル動物園または独自のS3バケットにコピーすることもできます。次のコマンドを使用して、AWSコマンドラインインターフェース(AWS CLI)を使用してモデルをローカルにダウンロードできます。
aws s3 cp s3://jumpstart-cache-prod-eu-west-1/huggingface-infer/prepack/v1.0.2/infer-prepack-huggingface-text2text-flan-t5-xxl.tar.gz .
- 数分後、エンドポイントが正常に作成され、状態がサービス中と表示されます。
スタジオからエンドポイントを使用
セクションでノートブックを開く
を選択します。これは、JumpStartの一環として提供されるサンプルノートブックで、エンドポイントを素早くテストするためのものです。
- ノートブックで、イメージをData Science 3.0、カーネルをPython 3とします。カーネルが準備できたら、ノートブックセルを実行してエンドポイントで予測を行うことができます。ノートブックでは、PythonのAWS SDKの
invoke_endpoint()
APIを使用して予測を行います。同じ結果を得るためには、SageMaker Python SDKのpredict()
メソッドを使用することもできます。
これで、JumpStartを使用してVPC内でFlan-T5 XXLモデルを展開する手順が完了しました。
SageMaker JumpStartモデルをVPCモードで展開する利点
SageMaker JumpStartモデルをVPCモードで展開する利点は次のとおりです:
- SageMaker JumpStartはパブリックなモデル動物園からモデルをダウンロードしないため、インターネットアクセスがない完全にロックダウンされた環境でも使用できます
- SageMaker JumpStartモデルのネットワークアクセスを制限してスコープダウンすることで、チームは環境のセキュリティポストを向上させることができます
- VPCの境界により、サブネットとセキュリティグループを介してエンドポイントへのアクセスも制限することができ、セキュリティの追加レイヤーが追加されます
SageMaker JumpStartを使用した基盤モデルの展開をカスタマイズする別の方法
このセクションでは、モデルを展開する別の方法を共有します。
お好きなIDEからSageMaker JumpStart APIを使用する
SageMaker JumpStartが提供するモデルは、Studioにアクセスする必要がありません。JumpStart APIのおかげで、どのIDEからでもSageMakerエンドポイントにモデルを展開することができます。このポストの前半で説明したStudioのセットアップ手順をスキップし、JumpStart APIを使用してモデルを展開することができます。これらのAPIはSageMaker Python SDK自体の一部です。詳細については、事前学習済みモデルを参照してください。
SageMaker Studioから提供されるSageMaker JumpStartのノートブックを使用する
SageMaker JumpStartは、モデルを直接展開するためのノートブックも提供しています。モデルの詳細ページで、ノートブックを開くを選択して、エンドポイントを展開するためのコードが含まれたサンプルノートブックを開くことができます。このノートブックでは、SageMaker JumpStart Industry APIを使用してモデルのリストやフィルタリング、アーティファクトの取得、エンドポイントの展開やクエリを行うことができます。また、ユースケースに特化した要件に応じて、ノートブックのコードを編集することもできます。
リソースのクリーンアップ
このポストの一部として作成されたStudio、VPC、およびその他のリソースを削除するための詳細な手順については、CLEANUP.mdファイルを参照してください。
トラブルシューティング
CloudFormationスタックの作成中に問題が発生した場合は、CloudFormationのトラブルシューティングを参照してください。
結論
大規模言語モデルによる生成的AIは、人々が情報から洞察を獲得し応用する方法を変えています。ただし、規制の厳しい環境で運営する組織は、生成的AIの機能を高速にイノベーションするだけでなく、そのような機能へのアクセスパターンを簡素化する方法で使用する必要があります。
このポストで提供されたアプローチを試してみてください。これにより、既存の環境に生成的AIの能力を埋め込みながら、VPC内でインターネットアクセスなしで保持することができます。SageMaker JumpStart基盤モデルに関するさらなる情報については、以下を参照してください:
- Amazon SageMaker JumpStartを使用した金融データにおける基盤モデルのドメイン適応Fine-tuning
- Amazon SageMaker JumpStart事前学習済みモデルを使用したMLOpsプラクティスの実装
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