Amazon SageMaker JumpStartを使用してLLMと対話するためのWeb UIを作成します
Amazon SageMaker JumpStartを活用してLLMと対話するためのウェブUIを作成しましょう
ChatGPTのリリースと生成AIの人気の上昇は、AWS上で新しい製品やサービスを作成するためにこの技術をどのように活用できるかに興味を持つ顧客の想像力を捉えました。例えば、より対話的なエンタープライズチャットボットの作成などがあります。本記事では、Amazon SageMaker JumpStartの利用可能な基盤モデル(Llama 2、Stable Diffusionなど)と、Amazon SageMaker上で利用可能な他のモデルとの対話を開始し、インタラクティブに行うためのWeb UIであるChat Studioを作成する方法を紹介します。このソリューションをデプロイした後、ユーザーはウェブインターフェースを通じて複数の基盤モデルの機能を素早く体験することができます。
Chat Studioは、ユーザーがメディアを表示するよう要求した場合に、Stable Diffusionモデルエンドポイントを任意で呼び出して関連する画像やビデオのコラージュを返すこともできます。この機能は、応答との関連付けとしてメディアを使用することでユーザーエクスペリエンスを向上させるのに役立ちます。これは、目標を達成するためにChat Studioに追加の統合を行う方法の一例です。
以下のスクリーンショットは、ユーザーのクエリと応答の例を示しています。
大規模言語モデル
ChatGPTなどの生成AIチャットボットは、大規模言語モデル(LLM)によって駆動されています。LLMは、大量の未ラベル化テキストでトレーニングされるディープラーニングニューラルネットワークに基づいています。LLMの使用により、リアルな人間との対話に近い対話エクスペリエンスが可能になり、接続感とユーザー満足度の向上が図られます。
- ボーダフォンは、AWS DeepRacerとアクセンチュアを活用して機械学習のスキルを向上させています
- 費用効率の高いGPT NeoXおよびPythiaモデルの訓練における節約と正確性:AWS Trainiumの活用
- このAI論文は、イギリスのインペリアルカレッジロンドンとEleuther AIが対話エージェントの行動を理解するための枠組みとしてロールプレイを探究しています
SageMaker基盤モデル
2021年、スタンフォード大学人間中心の人工知能研究所は、一部のLLMを基盤モデルとして定義しました。基盤モデルは大規模かつ広範な一般データに事前トレーニングされ、デジタルアートの生成から多言語テキスト分類まで、さまざまなユースケースでの最適化の基盤となることを目的としています。これらの基盤モデルは、新しいモデルのスクラッチからのトレーニングには時間がかかり、コストがかかるため、顧客から人気があります。SageMaker JumpStartでは、サードパーティのオープンソースおよびプロプライエタリプロバイダーが維持する数百の基盤モデルにアクセスできます。
ソリューションの概要
この記事では、事前トレーニング済みおよびカスタムのLLMをSageMakerを通じてデプロイし、モデルとのインターフェースを作成するためのローコードワークフローの手順を紹介しています。以下のステップをカバーしています:
- SageMaker基盤モデルのデプロイ。
- AWS LambdaとAWS Identity and Access Management(IAM)の権限をAWS CloudFormationを使用してデプロイ。
- ユーザーインターフェースのセットアップと実行。
- オプションで他のSageMaker基盤モデルを追加します。このステップにより、Chat Studioの機能が追加の基盤モデルとの対話に拡張されます。
- オプションでAWS Amplifyを使用してアプリケーションをデプロイします。このステップにより、Chat StudioがWeb上にデプロイされます。
ソリューションアーキテクチャの概要については、以下の図を参照してください。
必要条件
ソリューションを進めるには、以下の必要条件が必要です:
- 適切なIAMユーザー権限を持つAWSアカウント。
- ローカル環境に
npm
がインストールされていること。npm
のインストール方法については、Node.jsとnpmのダウンロードとインストールを参照してください。 - 対応するSageMakerエンドポイントに対するサービスクオータが1であること。Llama 2 13b Chatではml.g5.48xlargeインスタンスを使用し、Stable Diffusion 2.1ではml.p3.2xlargeインスタンスを使用します。
サービスクオータを増やすためには、AWS Service Quotasコンソールで、AWSサービス、SageMakerに進み、エンドポイントの使用のためにml.g5.48xlargeの値を1、エンドポイントの使用のためにml.p3.2xlargeの値を1にするようにサービスクオータの増加を要求してください。
サービスクオータのリクエストは、インスタンスの利用可能性によっては数時間かかる場合があります。
SageMakerの基礎モデルの展開
SageMakerは、開発者が簡単に機械学習(ML)モデルを構築してトレーニングするための完全に管理されたMLサービスです。以下の手順を実行して、Amazon SageMaker Studioを使用してLlama 2 13b ChatとStable Diffusion 2.1の基礎モデルを展開してください:
- SageMakerドメインを作成します。手順については、クイックセットアップを使用してAmazon SageMakerドメインに登録を参照してください。
ドメインは、すべてのストレージをセットアップし、SageMakerにアクセスするためのユーザーを追加できるようにします。
- SageMakerコンソールで、ナビゲーションペインでスタジオを選択し、スタジオを開くを選択します。
- スタジオを起動したら、ナビゲーションペインのSageMaker JumpStartの下で、モデル、ノートブック、ソリューションを選択します。
- 検索バーで「Llama 2 13b Chat」と検索します。
- デプロイメントの構成で、SageMakerホスティングインスタンスにはml.g5.48xlargeを選択し、エンドポイント名には
meta-textgeneration-llama-2-13b-f
を入力します。 - デプロイを選択します。
デプロイが成功すると、「In Service
」の状態が表示されるはずです。
- 「モデル、ノートブック、ソリューション」ページで、Stable Diffusion 2.1を検索してください。
- 「Deployment Configuration」の下にある「SageMakerホスティングインスタンス」で、「ml.p3.2xlarge」を選択し、「エンドポイント名」には「jumpstart-dft-stable-diffusion-v2-1-base」と入力してください。
- 「デプロイ」を選択してください。
デプロイが成功すると、「In Service」ステータスが表示されます。
AWS CloudFormationを使用してLambdaとIAM権限をデプロイする
このセクションでは、CloudFormationスタックを起動してLambda関数をデプロイし、ユーザーリクエストを処理し、デプロイしたSageMakerエンドポイントを呼び出し、必要なIAM権限をデプロイする手順について説明します。以下の手順を完了してください。
- GitHubリポジトリに移動し、CloudFormationテンプレート(
lambda.cfn.yaml
)をローカルマシンにダウンロードしてください。 - CloudFormationコンソールで、「Create stack」ドロップダウンメニューを選択し、「With new resources (standard)」を選びます。
- 「Specify template」ページで、「Upload a template file」と「Choose file」を選んでください。
- ダウンロードした
lambda.cfn.yaml
ファイルを選択し、「Next」を選んでください。 - 「Specify stack details」ページで、スタック名と前提条件で取得したAPIキーを入力し、「Next」を選んでください。
- 「Configure stack options」ページで、「Next」を選んでください。
- 変更内容を確認し、承認して「Submit」を選んでください。
Web UIをセットアップする
このセクションでは、ローカルマシンでWeb UI(Cloudscape Design Systemを使用)を実行する手順について説明します:
-
IAMコンソールで、ユーザー
functionUrl
に移動してください。 -
「Security Credentials」タブで、「Create access key」を選んでください。
-
「Access key best practices & alternatives」ページで、「Command Line Interface (CLI)」を選択し、「Next」を選んでください。
-
「Set description tag」ページで、「Create access key」を選んでください。
-
アクセスキーとシークレットアクセスキーをコピーしてください。
-
「Done」を選んでください。
-
GitHubリポジトリに移動し、
react-llm-chat-studio
コードをダウンロードしてください。 -
好きなIDEでフォルダを起動してターミナルを開いてください。
-
src/configs/aws.json
に移動し、取得したアクセスキーとシークレットアクセスキーを入力してください。 -
ターミナルに以下のコマンドを入力してください:
npm installnpm start
-
ブラウザでhttp://localhost:3000を開き、モデルと対話を開始してください!
Chat Studioを使用するには、ドロップダウンメニューから基本モデルを選択し、テキストボックスにクエリを入力します。応答と一緒にAI生成の画像を取得するには、クエリの末尾に「画像付き」というフレーズを追加してください。
他のSageMaker基礎モデルを追加する
このソリューションの機能をさらに拡張するために、追加のSageMaker基礎モデルを含めることができます。各モデルは、SageMakerエンドポイントを呼び出す際に異なる入力および出力形式を期待するため、callSageMakerEndpoints Lambda関数でいくつかの変換コードを記述してモデルとのインタフェースを構築する必要があります。
このセクションでは、選択したモデルを追加するために必要な一般的な手順とコードの変更について説明します。なお、ステップ6から8ではPython言語の基本的な知識が必要です。
- SageMaker Studioで、選択したSageMaker基礎モデルをデプロイします。
- SageMaker JumpStartを選択し、Launch JumpStart assetsを選択します。
- 新しくデプロイしたモデルのエンドポイントを選択し、Open Notebookを選択します。
- ノートブックコンソールで、ペイロードパラメータを見つけます。
これらは、新しいモデルがSageMakerエンドポイントを呼び出す際に期待するフィールドです。以下のスクリーンショットはその例を示しています。
- Lambdaコンソールで、
callSageMakerEndpoints
に移動します。 - 新しいモデルのためにカスタムの入力ハンドラを追加します。
次のスクリーンショットでは、Falcon 40B Instruct BF16とGPT NeoXT Chat Base 20B FP16の入力を変換しました。コピーしたペイロードパラメータに基づいて、カスタムパラメータのロジックを挿入して入力変換ロジックを追加できます。
- ノートブックコンソールに戻り、
query_endpoint
を見つけます。
この関数は、モデルの出力を変換して最終的なテキスト応答を抽出する方法を示しています。
-
query_endpoint
のコードを参照して、新しいモデルのためにカスタムの出力ハンドラを追加します。 -
Deployを選択します。
-
IDEを開き、
react-llm-chat-studio
コードを起動し、src/configs/models.json
に移動します。 -
モデル名とモデルエンドポイントを追加し、ステップ4のペイロードパラメータを以下の形式で
payload
の下に入力します:"add_model_name": {"endpoint_name": "add_model_enpoint","payload": {"add_payload_paramters_here"}},
-
ブラウザをリフレッシュして、新しいモデルと対話を開始します!
Amplifyを使用してアプリケーションをデプロイする
Amplifyは、アプリケーションを素早く効率的にデプロイするための完全なソリューションです。このセクションでは、アプリケーションを他のユーザーと共有する場合、Amplifyを使用してChat StudioをAmazon CloudFrontディストリビューションにデプロイする手順について説明します。
-
以前に作成した
react-llm-chat-studio
のコードフォルダに移動します。 -
以下のコマンドをターミナルに入力し、セットアップ手順に従ってください:
npm install -g @aws-amplify/cliamplify configure
-
以下のコマンドを使用して新しいAmplifyプロジェクトを初期化します。プロジェクト名を入力し、デフォルトの設定を受け入れ、認証方法の選択時にAWSアクセスキーを選択します。
amplify init
-
以下のコマンドを使用してAmplifyプロジェクトをホストします。プラグインモードの選択時にAmazon CloudFrontとS3を選択します。
amplify hosting add
-
最後に、以下のコマンドでプロジェクトをビルドして展開します:
amplify publish
-
展開が成功したら、ブラウザで提供されたURLを開き、モデルとインタラクションを開始しましょう!
クリーンアップ
将来の料金発生を避けるために、以下の手順を完了してください:
結論
この記事では、AWS上で展開されたLLMとのインタフェース用のWeb UIを作成する方法を説明しました。
このソリューションでは、ユーザーフレンドリーな方法でLLMと対話し、テストや質問を行い、必要に応じて画像やビデオのコラージュを取得することができます。
このソリューションをさまざまな方法で拡張できます。たとえば、追加の基礎モデルを統合したり、企業コンテンツの理解のためのMLパワードのインテリジェント検索を可能にするためにAmazon Kendraとの統合などがあります。
また、AWSで利用可能なさまざまな事前トレーニング済みLLMを試したり、SageMakerで独自のLLMを構築したりすることもできます。コメントで質問や結果をお知らせいただければと思います。楽しんでください!
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
- 「Mixtral 8x7Bについて知っていること ミストラルの新しいオープンソースLLM」
- 「このAIニュースレターは、あなたが必要とするすべてです #77」
- 「マシンラーニングプロジェクトで私が犯した同じ過ちを com 因さないでください!」
- 『クラウド上で大規模な言語モデルを使用する際の性能とコストの最適化戦略』
- 「LLMアプリを作成するための5つのツール」
- このAI論文は、コントロール可能なマルチビュー画像生成および3Dコンテンツ作成を革新するニューラルネットワークアーキテクチャー、MVControlを紹介しています
- 「これらの完全自動の深層学習モデルは、スマートフォンの統合を使用して、猫の苦痛指標スケール(FGS)を使用した痛み予測に使用できます」