Amazon SageMaker JumpStart を使用して LLM と対話するウェブ UI を作成する | アマゾン ウェブ サービス

Amazon SageMaker JumpStart を使用して LLM と対話するウェブ UI を作成する | アマゾン ウェブ サービス

ChatGPT の発売と生成 AI の人気の高まりは、このテクノロジーを使用して、より会話的なエンタープライズ チャットボットなどの新しい製品やサービスを AWS 上で作成する方法に興味を持つ顧客の想像力を魅了しました。 この投稿では、チャット スタジオと呼ばれる Web UI を作成して、会話を開始し、で利用可能な基盤モデルと対話する方法を説明します。 Amazon SageMaker ジャンプスタート Llama 2、Stable Diffusion、その他のモデルが利用可能です。 アマゾンセージメーカー。 このソリューションをデプロイすると、ユーザーはすぐに使い始めて、Web インターフェイスを通じて会話型 AI の複数の基盤モデルの機能を体験できます。

Chat Studio は、ユーザーがメディアの表示をリクエストした場合、オプションで安定拡散モデル エンドポイントを呼び出して、関連する画像とビデオのコラージュを返すこともできます。 この機能は、応答に付随する資産としてメディアを使用することで、ユーザー エクスペリエンスを向上させるのに役立ちます。 これは、目標を達成するために追加の統合によって Chat Studio を強化する方法の一例にすぎません。

次のスクリーンショットは、ユーザーのクエリと応答がどのようなものかを示す例です。

チャット スタジオのクエリ インターフェイス

Chat Studio 応答インターフェイス

大規模な言語モデル

ChatGPT などの生成 AI チャットボットは、大量のラベルのないテキストでトレーニングできる深層学習ニューラル ネットワークに基づく大規模言語モデル (LLM) を利用しています。 LLM を使用すると、実際の人間とのやり取りによく似た、より良い会話体験が可能になり、つながりの感覚が育まれ、ユーザーの満足度が向上します。

SageMaker 基盤モデル

2021 年、スタンフォード人間中心人工知能研究所は、一部の LLM を次のように呼びました。 基礎モデル。 基礎モデルは、大規模かつ広範な一般データのセットで事前トレーニングされており、デジタル アートの生成から多言語テキストの分類まで、幅広いユースケースでさらなる最適化のための基礎として機能することを目的としています。 新しいモデルをゼロからトレーニングするには時間がかかり、費用がかかる可能性があるため、これらの基礎モデルは顧客に人気があります。 SageMaker JumpStart は、サードパーティのオープンソースおよび独自のプロバイダーが維持する何百もの基盤モデルへのアクセスを提供します。

ソリューションの概要

この投稿では、SageMaker を介して事前トレーニング済みおよびカスタム LLM をデプロイし、デプロイされたモデルとインターフェイスする Web UI を作成するためのローコード ワークフローについて説明します。 次の手順について説明します。

  1. SageMaker 基盤モデルをデプロイします。
  2. 配備します AWSラムダ および AWS IDおよびアクセス管理 (IAM) アクセス許可を使用する AWS CloudFormation.
  3. ユーザーインターフェイスを設定して実行します。
  4. 必要に応じて、他の SageMaker 基盤モデルを追加します。 このステップにより、Chat Studio の機能が拡張され、追加の基盤モデルと対話できるようになります。
  5. 必要に応じて、次を使用してアプリケーションをデプロイします。 AWS 増幅。 この手順では、Chat Studio を Web にデプロイします。

ソリューション アーキテクチャの概要については、次の図を参照してください。

チャット スタジオ ソリューションのアーキテクチャ

前提条件

ソリューションをウォークスルーするには、次の前提条件が必要です。

  • An AWSアカウント 十分な IAM ユーザー権限があること。
  • npm ローカル環境にインストールされます。 インストール方法については、 npm、 参照する Node.js と npm のダウンロードとインストール.
  • 対応する SageMaker エンドポイントのサービス クォータは 1。 Llama 2 13b Chat の場合は ml.g5.48xlarge インスタンスを使用し、Stable Diffusion 2.1 の場合は ml.p3.2xlarge インスタンスを使用します。

サービスクォータの増加をリクエストするには、 AWS サービスクォータコンソール、 案内する AWSサービス, セージメーカー、サービス クォータをエンドポイント使用量の ml.g1xlarge とエンドポイント使用量の ml.p5.48xlarge の値 3.2 に引き上げるよう要求します。

インスタンス タイプの可用性によっては、サービス クォータ リクエストが承認されるまでに数時間かかる場合があります。

SageMaker 基盤モデルをデプロイする

SageMaker は、開発者が ML モデルを迅速に構築し、簡単にトレーニングできるフルマネージドの機械学習 (ML) サービスです。 次の手順を実行して、Llama 2 13b Chat および Stable Diffusion 2.1 基盤モデルをデプロイします。 Amazon SageMakerスタジオ:

  1. SageMaker ドメインを作成します。 手順については、を参照してください。 クイックセットアップを使用して Amazon SageMaker ドメインにオンボードする.

ドメインはすべてのストレージをセットアップし、SageMaker にアクセスするユーザーを追加できるようにします。

  1. SageMakerコンソールで、 Studio ナビゲーションペインで、を選択します オープンスタジオ.
  2. Studio を起動すると、 SageMaker ジャンプスタート ナビゲーション ペインで、 モデル、ノートブック、ソリューション.
    SageMaker JumpStart コンソール
  3. 検索バーで「Llama 2 13b Chat」を検索します。
  4. 展開構成、用 SageMaker ホスティング インスタンス、選択する ml.g5.48xラージ とのために エンドポイント名、 入る meta-textgeneration-llama-2-13b-f.
  5. 選択する 展開します。

SageMaker JumpStart デプロイメント構成

デプロイメントが成功すると、次のメッセージが表示されるはずです。 In Service 状態。

ラマモデルのステータス

  1. ソフトウェア設定ページで、下図のように モデル、ノートブック、ソリューション ページで、Stable Diffusion 2.1 を検索します。
  2. 展開構成、用 SageMaker ホスティング インスタンス、選択する ml.p3.2xlarge とのために エンドポイント名、 入る jumpstart-dft-stable-diffusion-v2-1-base.
  3. 選択する 配備します.

SageMaker JumpStart デプロイメント構成

デプロイメントが成功すると、次のメッセージが表示されるはずです。 In Service 状態。

安定した普及モデルのステータス

AWS CloudFormation を使用して Lambda と IAM 権限をデプロイする

このセクションでは、ユーザーリクエストを処理し、デプロイした SageMaker エンドポイントを呼び出し、必要なすべての IAM 権限をデプロイする Lambda 関数をデプロイする CloudFormation スタックを起動する方法について説明します。 次の手順を実行します。

  1. に移動します GitHubリポジトリ CloudFormation テンプレートをダウンロードします (lambda.cfn.yaml) をローカルマシンにコピーします。
  2. CloudFormation コンソールで、 スタックを作成 ドロップダウンメニューから選択 新しいリソースを使用(標準).
  3. ソフトウェア設定ページで、下図のように テンプレートを指定 テンプレートファイルをアップロードする および ファイルを選ぶ.
  4. 選択する lambda.cfn.yaml ダウンロードしたファイルを選択し、 Next.
  5. ソフトウェア設定ページで、下図のように スタックの詳細を指定する ページで、スタック名と前提条件で取得した API キーを入力し、選択します Next.
  6. ソフトウェア設定ページで、下図のように スタックオプションを構成する ページ、選択 Next.
  7. 変更を確認して承認し、選択します 送信.

Web UIをセットアップする

このセクションでは、Web UI (次を使用して作成) を実行する手順について説明します。 Cloudscape デザイン システム) ローカルマシン上:

  1. IAM コンソールで、ユーザーに移動します。 functionUrl.
  2. ソフトウェア設定ページで、下図のように セキュリティ資格情報 タブを選択 アクセスキーの作成.
  3. ソフトウェア設定ページで、下図のように 主要なベストプラクティスと代替案にアクセスする コマンドラインインタフェース(CLI) 選択して Next.
  4. ソフトウェア設定ページで、下図のように 説明タグを設定する ページ、選択 アクセスキーの作成.
  5. アクセスキーとシークレットアクセスキーをコピーします。
  6. 選択する クリックします.
  7. に移動します GitHubリポジトリ ダウンロードして react-llm-chat-studio コー​​ド。
  8. 好みの IDE でフォルダーを起動し、ターミナルを開きます。
  9. MFAデバイスに移動する src/configs/aws.json 取得したアクセスキーとシークレットアクセスキーを入力します。
  10. ターミナルに次のコマンドを入力します。
    npm install npm start

  11. Open http://localhost:3000 ブラウザでモデルとの対話を開始してください。

Chat Studio を使用するには、ドロップダウン メニューで基本モデルを選択し、テキスト ボックスにクエリを入力します。 AI が生成した画像を応答とともに取得するには、クエリの最後に「画像あり」というフレーズを追加します。

他の SageMaker 基盤モデルを追加する

このソリューションの機能をさらに拡張して、追加の SageMaker 基盤モデルを含めることができます。 各モデルは SageMaker エンドポイントを呼び出すときに異なる入力および出力形式を想定しているため、モデルとインターフェースをとるために callSageMakerEndpoints Lambda 関数に変換コードを記述する必要があります。

このセクションでは、選択した追加モデルを実装するために必要な一般的な手順とコードの変更について説明します。 ステップ 6 ~ 8 では、Python 言語の基本的な知識が必要であることに注意してください。

  1. SageMaker Studio で、選択した SageMaker 基盤モデルをデプロイします。
  2. 選択する SageMaker ジャンプスタート および JumpStart アセットを起動する.
  3. 新しくデプロイされたモデルのエンドポイントを選択し、 ノートブックを開く.
  4. ノートブック コンソールで、ペイロード パラメーターを見つけます。

これらは、新しいモデルが SageMaker エンドポイントを呼び出すときに予期するフィールドです。 次のスクリーンショットは例を示しています。

SageMaker エンドポイントの設定

  1. Lambda コンソールで、次の場所に移動します。 callSageMakerEndpoints.
  2. 新しいモデルにカスタム入力ハンドラーを追加します。

次のスクリーンショットでは、Falcon 40B Instruct BF16 と GPT NeoXT Chat Base 20B FP16 の入力を変換しました。 指示に従ってカスタム パラメーター ロジックを挿入し、コピーしたペイロード パラメーターを参照して入力変換ロジックを追加できます。

Lambda コードのスニペット

  1. ノートブックのコンソールに戻り、 query_endpoint.

この関数は、モデルの出力を変換して最終的なテキスト応答を抽出する方法を示します。

SageMaker エンドポイントの設定

  1. のコードを参照すると、 query_endpoint、新しいモデルのカスタム出力ハンドラーを追加します。
    ラムダコード
  2. 選択する 展開します。
  3. IDE を開き、 react-llm-chat-studio コードを入力して、次の場所に移動します src/configs/models.json.
  4. モデル名とモデル エンドポイントを追加し、ステップ 4 のペイロード パラメーターを入力します。 payload 次の形式を使用します。
    "add_model_name": { "endpoint_name": "add_model_enpoint", "payload": { "add_payload_paramters_here"
    }
    },

  5. ブラウザを更新して、新しいモデルとの対話を開始してください。

Amplify を使用してアプリケーションをデプロイする

Amplify は、アプリケーションを迅速かつ効率的にデプロイできる完全なソリューションです。 このセクションでは、Chat Studio を アマゾンCloudFrontの アプリケーションを他のユーザーと共有したい場合は、Amplify を使用して配布します。

  1. に移動します react-llm-chat-studio 先ほど作成した code フォルダー。
  2. ターミナルに次のコマンドを入力し、セットアップ手順に従います。
    npm install -g @aws-amplify/cli amplify configure

  3. 次のコマンドを使用して、新しい Amplify プロジェクトを初期化します。 プロジェクト名を入力し、デフォルトの構成を受け入れ、選択します AWS アクセスキー 認証方法の選択を求められた場合。
    amplify init

  4. 次のコマンドを使用して、Amplify プロジェクトをホストします。 選ぶ Amazon CloudFront と S3 プラグイン モードを選択するよう求められたら。
    amplify hosting add

  5. 最後に、次のコマンドを使用してプロジェクトをビルドしてデプロイします。
    amplify publish

  6. デプロイが成功したら、ブラウザーで指定された URL を開いて、モデルとの対話を開始します。

クリーンアップ

今後の請求を回避するには、次の手順を実行します。

  1. CloudFormation スタックを削除します。 手順については、を参照してください。 AWSCloudFormationコンソールでスタックを削除する.
  2. SageMaker JumpStart エンドポイントを削除します。 手順については、を参照してください。 エンドポイントとリソースの削除.
  3. SageMaker ドメインを削除します。 手順については、を参照してください。 AmazonSageMakerドメインを削除します.

まとめ

この投稿では、AWS にデプロイされた LLM とインターフェースするための Web UI を作成する方法を説明しました。

このソリューションを使用すると、LLM と対話し、ユーザーフレンドリーな方法で会話を行って、テストしたり、LLM に質問したり、必要に応じて画像やビデオのコラージュを取得したりできます。

このソリューションは、追加の基礎モデルを統合するなど、さまざまな方法で拡張できます。 Amazon Kendra との統合 エンタープライズ コンテンツなどを理解するための ML を利用したインテリジェントな検索を可能にします。

ぜひ実験してみてください AWS で利用可能なさまざまな事前トレーニング済み LLM、または SageMaker で独自の LLM を構築したり、独自の LLM を作成したりできます。 コメントで質問や発見をお知らせください。楽しんでください。


著者について

Amazon SageMaker JumpStart を使用して LLM と対話するウェブ UI を作成する |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。ジャレット・ヨー・シャンウェイ は、ASEAN 全体の公共部門をカバーする AWS プロフェッショナル サービスのアソシエイト クラウド アーキテクトであり、顧客の最新化とクラウドへの移行を支援する提唱者です。 彼は 8 つの AWS 認定を取得しており、第 XNUMX 回 AI 国際会議で勾配ブースティング マシン アンサンブルに関する研究論文も発表しました。 ジャレットは自由時間には AWS の生成 AI シーンに焦点を当て、貢献しています。

Amazon SageMaker JumpStart を使用して LLM と対話するウェブ UI を作成する |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。タミー・リム・リー・シン AWS のアソシエイト クラウド アーキテクトです。 彼女はテクノロジーを使用して、顧客がクラウド導入の過程で望ましい結果を実現できるよう支援しており、AI/ML に情熱を注いでいます。 仕事以外では、旅行、ハイキング、家族や友人と時間を過ごすことが大好きです。

タイムスタンプ:

より多くの AWS機械学習