ミストラルAIのミストラル7Bファンデーションモデルは、Amazon SageMaker JumpStartで利用可能です
ミストラルAIのミストラル7BファンデーションモデルがAmazon SageMaker JumpStartで使えるようになりました
今日は、Mistral AIによって開発されたMistral 7Bファンデーションモデルが、お客様にAmazon SageMaker JumpStartを通じて提供されることをお知らせします。このモデルは、7,000,000,000のパラメータを持ち、簡単にカスタマイズし、迅速に展開することができます。SageMaker JumpStartを使用してこのモデルをお試しください。SageMaker JumpStartは、アルゴリズムやモデルへのアクセスを提供する機械学習(ML)ハブであり、迅速にMLを始めることができます。この記事では、Mistral 7Bモデルの発見と展開方法について説明します。
Mistral 7Bとは?
Mistral 7Bは、Mistral AIによって開発されたファンデーションモデルで、英語のテキストとコード生成の能力をサポートしています。テキストの要約、分類、テキストの補完、およびコードの補完など、さまざまなユースケースをサポートしています。このモデルの簡単なカスタマイズ性を示すために、Mistral AIは、さまざまな公開されている会話データセットを使用してファインチューニングされたMistral 7B Instructモデルもリリースしています。
Mistral 7Bはトランスフォーマーモデルであり、グループ化されたクエリアテンションとスライディングウィンドウアテンションを使用して、より高速な推論(低遅延)と長いシーケンスの処理を実現しています。グループ化されたクエリアテンションは、マルチクエリとマルチヘッドアテンションを組み合わせて、マルチヘッドアテンションと同等の出力品質とマルチクエリアテンションと比較可能な速度を実現するアーキテクチャです。スライディングウィンドウアテンションは、トランスフォーマーのスタックされたレイヤーを使用して、ウィンドウサイズを超えて過去にアテンドすることで、コンテキストの長さを増やします。Mistral 7Bは、8,000トークンのコンテキスト長を持ち、低遅延かつ高スループットを実現し、より大きなモデルと比較して強力なパフォーマンスを発揮します。また、7Bモデルサイズで低メモリ要件を提供します。このモデルは、制限なしで使用するために、許容性のあるApache 2.0ライセンスの下で利用可能です。
SageMaker JumpStartとは?
SageMaker JumpStartを使用すると、MLの専門家は、最適なパフォーマンスを発揮するファンデーションモデルを選択できます。MLの専門家は、ネットワーク分離された環境内の専用のAmazon SageMakerインスタンスにファンデーションモデルを展開し、SageMakerを使用してモデルのトレーニングと展開を行うことができます。
- 私たちはどのように大規模な言語モデルをストリーミングアプリケーションで効率的に展開できるのでしょうか?このAI論文では、無限のシーケンス長のためのStreamingLLMフレームワークを紹介しています
- ウェイモのMotionLMを紹介します:最新型のマルチエージェントモーション予測アプローチで、大規模言語モデル(LLM)が自動車の運転をサポートできるようにする可能性のあるものです
- CPR-CoachによるCPRトレーニングの革命:エラー認識と評価に人工知能を活用
Amazon SageMaker StudioまたはSageMaker Python SDKを使用して、数回のクリックでMistral 7Bを発見し、展開することができます。これにより、SageMaker Pipelines、Amazon SageMaker Debugger、またはコンテナログなどのSageMakerの機能を使用してモデルのパフォーマンスとMLOpsコントロールを把握できます。このモデルは、AWSのセキュアな環境で展開され、VPCの制御下で動作するため、データのセキュリティが確保されます。
モデルの発見
SageMaker Studio UIおよびSageMaker Python SDKを介して、Mistral 7Bファンデーションモデルにアクセスすることができます。このセクションでは、SageMaker Studioでモデルを発見する方法について説明します。
SageMaker Studioは、すべてのML開発ステップを実行するための特化したツールにアクセスできる単一のWebベースのビジュアルインターフェースを提供する統合開発環境(IDE)です。データの準備からMLモデルの構築、トレーニング、展開まで、すべてのML開発ステップを実行できます。SageMaker Studioの開始方法とセットアップ方法の詳細については、Amazon SageMaker Studioを参照してください。
SageMaker Studioでは、Prebuilt and automated solutionsの下に、事前トレーニングされたモデル、ノートブック、およびプリビルドソリューションが含まれているSageMaker JumpStartにアクセスできます。
SageMaker JumpStartのランディングページから、ソリューション、モデル、ノートブック、およびその他のリソースを閲覧することができます。 Mistral 7BはFoundation Models: Text Generationのカルーセル内にあります。
また、「Explore all Text Models」を選択するか、「Mistral」と検索することで、他のモデルバリアントも見つけることができます。
モデルカードを選択して、ライセンス、トレーニングに使用されたデータ、使用方法などの詳細を表示することができます。また、「Deploy」と「Open notebook」という2つのボタンもあり、これらを使用してモデルを使用することができます(以下のスクリーンショットは「Deploy」オプションを示しています)。
モデルのデプロイ
Deployを選択すると、デプロイが開始されます。または、Open notebookを選択すると表示されるサンプルノートブックを通じてデプロイすることもできます。サンプルノートブックでは、モデルを推論のためにデプロイし、リソースをクリーンアップする方法についての完全なガイダンスが提供されます。
次のコードを使用して、ノートブックを使用してデプロイする場合は、「model_id」で指定されたMistral 7Bモデルを選択することから始めます。SageMakerの選択したモデルをすべてデプロイできます。
from sagemaker.jumpstart.model import JumpStartModelmodel = JumpStartModel(model_id="huggingface-llm-mistral-7b-instruct")predictor = model.deploy()
これにより、デフォルトの構成でモデルがSageMakerにデプロイされます。デフォルトのインスタンスタイプ(ml.g5.2xlarge)およびデフォルトのVPC構成も含まれます。これらの構成を変更するには、JumpStartModelでデフォルト以外の値を指定します。デプロイ後、SageMakerの予測機能を使用してデプロイされたエンドポイントに対して推論を実行できます:
payload = {"inputs": "<s>[INST] Hello! [/INST]"}predictor.predict(payload)
デプロイ設定の最適化
Mistralモデルでは、Text Generation Inference(TGIバージョン1.1)モデルサービングを使用しています。TGIディープラーニングコンテナ(DLC)を使用してモデルをデプロイする際には、エンドポイントの展開時に環境変数を介してさまざまなランチャ引数を設定することができます。Mistral 7Bモデルの8,000トークンのコンテキスト長をサポートするために、SageMaker JumpStartはこれらのパラメータのいくつかをデフォルトで設定しています:「MAX_INPUT_LENGTH」および「MAX_TOTAL_TOKENS」はそれぞれ8191と8192に設定されています。モデルオブジェクトを検査することで、すべてのリストを表示できます:
print(model.env)
SageMaker JumpStartは、デフォルトで環境変数「MAX_CONCURRENT_REQUESTS」をTGIのデフォルト値である128よりも小さくクランプしません。その理由は、一部のユーザーがペイロードのコンテキスト長が小さく、高並行性を希望する典型的なワークロードを持つ場合があるためです。SageMaker TGI DLCは、ローリングバッチを介して複数の同時ユーザーをサポートしています。アプリケーションのエンドポイントをデプロイする際には、ワークロードの最良の性能を提供するために、デプロイ前に「MAX_TOTAL_TOKENS」または「MAX_CONCURRENT_REQUESTS」をクランプするかどうかを検討することがあるかもしれません:
model.env["MAX_CONCURRENT_REQUESTS"] = "4"
ここでは、典型的なエンドポイントのワークロードに対してモデルのパフォーマンスがどのように異なるかを示します。以下の表では、小規模なクエリ(128の入力単語および128の出力トークン)は、多数の同時ユーザーの下で非常にパフォーマンスが高く、秒あたり約1,000トークンのスループットに達しています。しかし、入力単語の数が512単語に増えると、エンドポイントはバッチ処理の容量(同時に処理することが許可されるバッチリクエストの数)を飽和させ、スループットのプラトーとなり、16の同時ユーザーから始まる重大なレイテンシの低下が生じます。最後に、複数の同時ユーザーによって大きな入力コンテキスト(たとえば6,400語)でエンドポイントにクエリを実行する場合、スループットのプラトーは比較的速く発生し、SageMakerアカウントは過負荷のリクエストに対して60秒のレスポンスタイムアウト制限に遭遇することになります。
. | スループット(トークン/秒) | ||||||||||
同時ユーザー | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | |||
モデル | インスタンスタイプ | 入力単語 | 出力トークン | . | |||||||
mistral-7b-instruct | ml.g5.2xlarge | 128 | 128 | 30 | 54 | 89 | 166 | 287 | 499 | 793 | 1030 |
512 | 128 | 29 | 50 | 80 | 140 | 210 | 315 | 383 | 458 | ||
6400 | 128 | 17 | 25 | 30 | 35 | — | — | — | — |
. | p50レイテンシ(ms/トークン) | ||||||||||
同時ユーザー | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | |||
モデル | インスタンスタイプ | 入力単語 | 出力トークン | . | |||||||
mistral-7b-instruct | ml.g5.2xlarge | 128 | 128 | 32 | 33 | 34 | 36 | 41 | 46 | 59 | 88 |
512 | 128 | 34 | 36 | 39 | 43 | 54 | 71 | 112 | 213 | ||
6400 | 128 | 57 | 71 | 98 | 154 | — | — | — | — |
推論と例示のプロンプト
ミストラル 7B
ミストラル 7B の基本モデルは、通常のテキスト生成モデルと同様に操作することができます。モデルは入力シーケンスを処理し、次に予測される単語を出力します。以下は、マルチショット学習を用いたシンプルな例で、モデルは複数の例と前の例の文脈的な知識を参考にして最終的な例の応答を生成します:
> InputTweet: "I get sad when my phone battery dies."Sentiment: Negative###Tweet: "My day has been :+1:"Sentiment: Positive###Tweet: "This is the link to the article"Sentiment: Neutral###Tweet: "This new music video was incredibile"Sentiment:> 出力 Positive
ミストラル 7B インストラクト
ミストラルのインストラクトモデルでは、会話の役割がユーザープロンプトで始まり、ユーザーとアシスタントの間で交互に行ったり来たりする形式でフォーマットされた指示を受け入れます。シンプルなユーザープロンプトは次のようになります:
<s>[INST] {user_prompt} [/INST]
複数のターンからなるプロンプトは次のようになります:
<s>[INST] {user_prompt_1} [/INST] {assistant_response_1} </s><s>[INST] {user_prompt_1} [/INST]
このパターンは、会話に含まれるターンの数だけ繰り返されます。
以下のセクションでは、ミストラル 7B インストラクトモデルを使用したいくつかの例を探ってみます。
ナレッジ検索
以下は、ナレッジ検索の例です:
> Input<s>[INST] 世界で最も自然湖が多いのはどの国ですか? 国名のみで回答してください。 [/INST] > Output1. カナダ
大規模なコンテキストに対する質問応答
このモデルを使用して大きな入力コンテキストをサポートする方法を示すために、以下の例では、教材「Rats」(ロバート・サリバンの作品[参照])を MCAS グレード 10 の英語言語芸術読解テストの一部として入力プロンプト指示に組み込み、モデルに対してテキストに関する指示付きの質問をします:
> Input<s>[INST] ネズミは啮齿類であり、世界で最も一般的な哺乳動物です。ノルウェージアンラットはおよそ四百種類もの異なる種類のネズミのうちの一つであり、それぞれの名前が特徴や知覚される特徴、または生息地を表しています: 地下ネズミ、放浪ネズミ、納屋ネズミ、野外ネズミ、渡りネズミ、家ネズミ、下水ネズミ、 水辺のネズミ、桟橋のネズミ、路地裏のネズミ、灰色のネズミ、茶色のネズミ、そして普通のネズミです。平均的な茶色のネズミは大きくてがっしりとしており、鼻先から尾までおおよそ16インチの大きさで、大人の男性の足の大きさくらいあり、約1ポンドの重さがあります。ただし、茶色のネズミの大きさは科学者や駆除業者によって測定され、20インチ以上、2ポンドまであることもあります。茶色のネズミは、一度はニューヨーク市やアメリカのすべての都市に生息していましたが、ノルウェージアンラットに押しやられ、現在では二次的な役割に押し込められています。ただし、南部の沿岸都市や西海岸などでは、黒ネズミと一緒に共存している場所もあり、例えばロサンゼルスのような地域では、黒ネズミは屋根裏やヤシの木などに生息しています。黒ネズミは常に非常に濃いグレーでほぼ黒く、茶色のネズミはグレーか茶色で、お腹は薄いグレーや黄色、あるいは真っ白に見えることがあります。ある春、ブルックリン橋の下で、車に轢かれた赤毛の茶色のネズミを見ました。ペットネズミと研究用ネズミはどちらもノルウェージアンラットの一種ですが、野生ではないため、本書の対象ではないことを強調します。時にペットネズミはファンシーネズ
数学と論理
ミストラルモデルは、数学の正確さにおいても強みを報告しています。ミストラルは以下のような数学の論理を提供することができます:
> 入力<s>[INST] 私は6人の子供たちのためにアイスクリームを買いました。各コーンは$1.25で、$10の紙幣で支払いました。いくらお釣りがもらえたでしょうか?回答する前にまず説明してください。 [/INST]> 出力1. まず、アイスクリームの総額はいくらか計算しましょう。各コーンが$1.25であり、子供が6人いるため、総額は以下の通りです:総額 = コーンの数 * 1コーンの価格総額 = 6 * $1.25総額 = $7.502. 次に、支払った金額($10)から総額を引いて、いくらお釣りが戻ってきたかを調べましょう:お釣り = 支払った金額 - 総額お釣り = $10 - $7.50お釣り = $2.50ですので、6人の子供たちのアイスクリームを買った後、$2.50をお釣りで受け取りました。
コーディング
以下はコーディングの例です:
> 入力<s>[INST] Bashで、最後の1か月以内に修正された現在のディレクトリ(サブディレクトリを除く)のテキストファイルをすべてリスト表示する方法は何ですか? [/INST] > 出力1. `find`コマンドを使用して、最後の1か月以内に修正された現在のディレクトリ(サブディレクトリを除く)のテキストファイルを検索します。`-type f`オプションは、ディレクトリではなくファイルのみを検索することを指定します。`-name "*.txt"`オプションは、拡張子が`.txt`のファイルのみを検索することを指定します。`-mtime -30`オプションは、最後の30日(1か月)以内に修正されたファイルのみを検索することを指定します。```bashfind . -type f -name "*.txt" -mtime -30```このコマンドは、最後の1か月以内に修正された現在のディレクトリ(サブディレクトリを除く)のすべてのテキストファイルをリスト表示します。
クリーンアップ
ノートブックの実行が終了したら、使用したすべてのリソースを削除して請求を停止してください。以下のコードを使用してください:
predictor.delete_model()predictor.delete_endpoint()
結論
この記事では、SageMaker StudioでMistral 7Bを使用して推論モデルを展開する方法を紹介しました。基礎となるモデルは事前にトレーニングされているため、トレーニングやインフラストラクチャのコストを削減し、ユーザーのユースケースに合わせたカスタマイズを可能にします。詳細はAmazon SageMaker JumpStartをご覧ください。
参考資料
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
- Amazon SageMakerのCanvas sentiment analysisとtext analysisモデルを使用して製品レビューから洞察を抽出するために、ノーコードの機械学習を使用してください
- 「Java での AI:Spring Boot と LangChain を使用して ChatGPT のクローンを構築する」
- 「ChatGPTがGPT-4V(Vision)とともに視覚を獲得することで、マルチモーダルAIが進化します」
- セールスフォース・アインシュタイン:あなたは顧客との関係を築きます、AIがそれらを自動的に維持する手助けをします
- 「改善された推論のためのアナロジー提示による言語モデルの拡張」
- 私たちは本当に人工知能AIウォーターマーキングを信頼できるのでしょうか? このAI論文は、現在のディープフェイクの防御方法の脆弱性を暴きます
- 大型言語モデルへの優しい導入