メタからのLlama 2基盤モデルは、Amazon SageMaker JumpStartで利用可能になりました
Meta's Llama 2 platform model is now available on Amazon SageMaker JumpStart.
今日、Metaによって開発されたLlama 2ファウンデーションモデルが、Amazon SageMaker JumpStartを通じて顧客に提供されることを発表して嬉しく思います。Llama 2ファミリーの大規模言語モデル(LLM)は、7兆〜700兆パラメータのスケールでプレトレーニングおよびファインチューニングされた生成テキストモデルのコレクションです。ファインチューニングされたLLM(Llama-2-chat)は、対話の使用ケースに最適化されています。これらのモデルを簡単に試すことができ、SageMaker JumpStartを使用して利用することができます。SageMaker JumpStartは、アルゴリズム、モデル、およびMLソリューションにアクセスできる機械学習(ML)ハブであり、迅速にMLを始めることができます。
この記事では、SageMaker JumpStartを介してLlama 2モデルを使用する方法について説明します。
Llama 2とは
Llama 2は、最適化されたトランスフォーマーアーキテクチャを使用した自己回帰言語モデルです。Llama 2は、英語の商用および研究目的で使用することを目的としています。7兆、13兆、および70兆のパラメータサイズで提供され、プレトレーニングおよびファインチューニングのバリエーションを備えています。Metaによれば、チューニングされたバージョンは、ヘルプフルさと安全性に関する人間の好みに合わせるために、教師ありファインチューニング(SFT)および人間のフィードバックによる強化学習(RLHF)を使用しています。Llama 2は、公開されているデータの2兆トークンでプレトレーニングされました。チューニングされたモデルはアシスタントのようなチャットに使用することを意図しており、プレトレーニングされたモデルはさまざまな自然言語生成タスクに適応することができます。開発者がどのバージョンのモデルを使用するかに関係なく、Metaの責任ある使用ガイドは、適切な安全対策でモデルをカスタマイズおよび最適化するために必要な追加のファインチューニングをガイドするのに役立ちます。
SageMaker JumpStartとは
SageMaker JumpStartを使用すると、MLプラクティショナーは幅広い選択肢からオープンソースのファウンデーションモデルを選択できます。MLプラクティショナーは、SageMakerを使用してモデルのトレーニングと展開を行い、ネットワーク分離された環境から専用のAmazon SageMakerインスタンスにファウンデーションモデルを展開することができます。
Amazon SageMaker StudioまたはSageMaker Python SDKを介して、わずか数回のクリックでLlama 2を発見して展開することができます。これにより、Amazon SageMaker Pipelines、Amazon SageMaker Debugger、またはコンテナログなどのSageMakerの機能を使用してモデルのパフォーマンスとMLOpsコントロールを抽出できます。モデルはAWSのセキュアな環境で展開され、VPCの制御下で実行されるため、データのセキュリティが確保されます。Llama 2モデルは、Amazon SageMaker Studioで利用できますが、最初は「us-east 1」と「us-west 2」のリージョンで提供されます。
モデルの発見
SageMaker JumpStartを介してファウンデーションモデルにアクセスできます。SageMaker StudioのUIおよびSageMaker Python SDKを介してファウンデーションモデルにアクセスする方法について説明します。
SageMaker Studioは、すべてのML開発ステップを実行するための専用ツールにアクセスできるシングルウェブベースのビジュアルインターフェースを提供する統合開発環境(IDE)です。データの準備からMLモデルのビルド、トレーニング、展開まで、すべてのML開発ステップを実行するための詳細については、Amazon SageMaker Studioを参照してください。
SageMaker Studioにアクセスしたら、「Prebuilt and automated solutions」の下にあるSageMaker JumpStartにアクセスできます。SageMaker JumpStartのランディングページから、ソリューション、モデル、ノートブック、その他のリソースを閲覧できます。Foundation Models: Text Generationカルーセルには、2つの主力モデルであるLlama 2モデルが含まれています。Llama 2モデルが表示されない場合は、SageMaker Studioのバージョンをシャットダウンして再起動してください。バージョンの更新に関する詳細については、「Shut down and Update Studio Apps」を参照してください。
また、Explore all Text Generation Modelsを選択するか、検索ボックスでllama
を検索することで、他の4つのモデルバリアントも見つけることができます。
モデルの詳細を表示するために、モデルカードを選択できます。ライセンス、トレーニングに使用されるデータ、使用方法などの詳細が表示されます。また、デプロイとノートブックを開くの2つのボタンも見つけることができます。これらのボタンは、モデルの使用をサポートします。
どちらかのボタンを選択すると、ポップアップが表示され、エンドユーザーライセンス契約と使用許可ポリシーに同意する必要があります。
同意後、モデルの使用に進むことができます。
モデルをデプロイする
デプロイを選択し、条件に同意すると、モデルのデプロイが開始されます。または、ノートブックを開くを選択することで、例のノートブックを通じてデプロイすることもできます。この例のノートブックでは、モデルを推論にデプロイし、リソースをクリーンアップする方法について、エンドツーエンドのガイダンスが提供されます。
ノートブックを使用してデプロイするためには、model_id
で指定された適切なモデルを選択することから始めます。次のコードで、SageMaker上で選択したモデルをデプロイすることができます:
from sagemaker.jumpstart.model import JumpStartModel
my_model = JumpStartModel(model_id = "meta-textgeneration-llama-2-70b-f")
predictor = my_model.deploy()
これにより、デフォルトの設定(デフォルトのインスタンスタイプとデフォルトのVPC設定を含む)でモデルがSageMaker上にデプロイされます。JumpStartModelでデフォルト以外の値を指定することで、これらの設定を変更することができます。デプロイが完了したら、SageMakerの予測子を使用してデプロイされたエンドポイントに対して推論を実行できます:
payload = {
“inputs”:
[
[
{"role": "system", "content": "Always answer with Haiku"},
{"role": "user", "content": "I am going to Paris, what should I see?"},
]
],
"parameters":{"max_new_tokens":256, "top_p":0.9, "temperature":0.6}
}
チャットモデル(Llama-2-7b-chat、Llama-2-13b-chat、Llama-2-70b-chat)は、ユーザーとチャットアシスタントの間のチャット履歴を受け取り、その後のチャットを生成します。プリトレーニングモデル(Llama-2-7b、Llama-2-13b、Llama-2-70b)は、文字列のプロンプトを必要とし、提供されたプロンプトに対してテキストの補完を行います。以下のコードを参照してください:
predictor.predict(payload, custom_attributes="accept_eula=true")
デフォルトでは、accept_eula
はfalseに設定されています。エンドポイントを正常に呼び出すためには、accept_eula=true
と設定する必要があります。これにより、前述のユーザーライセンス契約と使用許可ポリシーに同意します。ライセンス契約書もダウンロードできます。
パスEULAに使用されるCustom_attributes
は、キー/値のペアです。キーと値は=
で区切られ、ペアは;
で区切られます。ユーザーが同じキーを複数回渡す場合、最後の値が保持され、スクリプトハンドラに渡されます(この場合、条件付きロジックに使用されます)。たとえば、accept_eula=false; accept_eula=true
がサーバーに渡された場合、accept_eula=true
が保持され、スクリプトハンドラに渡されます。
推論パラメータは、エンドポイントでのテキスト生成プロセスを制御します。最大の新しいトークンコントロールは、モデルによって生成される出力のサイズを指します。なお、これは単語数とは異なります。モデルの語彙は英語の語彙とは異なり、各トークンが英語の単語であるとは限らないためです。テンパラチャーは、出力のランダム性を制御します。テンパラチャーが高いほど、より創造的で幻想的な出力が得られます。すべての推論パラメータはオプションです。
次のテーブルは、SageMaker JumpStartで利用可能なすべてのLlamaモデルを、model_ids
、デフォルトのインスタンスタイプ、およびこれらのモデルごとにサポートされる最大トークン数(入力トークン数と生成トークン数の合計)とともにリストアップしています。
モデル名 | モデルID | 最大トークン数 | デフォルトのインスタンスタイプ |
Llama-2-7b | meta-textgeneration-llama-2-7b | 4096 | ml.g5.2xlarge |
Llama-2-7b-chat | meta-textgeneration-llama-2-7b-f | 4096 | ml.g5.2xlarge |
Llama-2-13b | meta-textgeneration-llama-2-13b | 4096 | ml.g5.12xlarge |
Llama-2-13b-chat | meta-textgeneration-llama-2-13b-f | 4096 | ml.g5.12xlarge |
Llama-2-70b | meta-textgeneration-llama-2-70b | 4096 | ml.g5.48xlarge |
Llama-2-70b-chat | meta-textgeneration-llama-2-70b-f | 4096 | ml.g5.48xlarge |
SageMakerのエンドポイントは60秒のタイムアウト制限がありますので、モデルが4096トークンを生成できる場合でも、テキスト生成に60秒以上かかるとリクエストが失敗します。7B、13B、70Bモデルについては、max_new_tokens
を1500以下、1000以下、および500以下に設定し、トークンの総数を4K未満に保つことをおすすめします。
Llama-2-70bの推論とサンプルのプロンプト
Llamaモデルは、任意のテキストの補完に使用することができます。テキスト生成を通じて、質問に答える、言語翻訳、感情分析など、さまざまなタスクを実行することができます。エンドポイントへの入力ペイロードは、次のコードのようになります:
payload = {
“inputs”: str,
(optional)"parameters":{"max_new_tokens":int, "top_p":float, "temperature":float}
}
以下は、いくつかのサンプルのプロンプトとモデルによって生成されたテキストです。すべての出力は、推論パラメータ{"max_new_tokens":256, "top_p":0.9, "temperature":0.6}
で生成されます。
入力:簡単に言えば、相対性理論は
出力:
1)物理法則が互いに一定の速度で動く一様運動する観測者すべてに対して同じであること、および2)光の速度が観測者や光の源の相対運動に関係なく同じであること。
19世紀末、科学者たちは、彼らがルミニフェラスエーテルと呼んだVoAGIを通じて光が伝播すると信じていました。しかし、1887年に、アルバート・ミケルソンとエドワード・モーリーは、エーテル中の光の速度を測定するための実験を設計し、彼らが機器をどのように向けても光の速度が同じであることを発見しました。この結果はエーテルの考えと矛盾するように思われ、ミケルソンとモーリーの実験は歴史上最も有名な失敗した実験の一つとなりました。
1905年、アルベルト・アインシュタインは、ミケルソン・モーリーの実験の結果を使用して特殊相対性理論を開発するための論文を発表しました。1915年、アインシュタインは一般相対性理論という重力の理論を発表しました。
物理学では、光の速度は一定であり、その値は299,792,458メートルです。
入力:人生の意味は
出力:
幸せになること、人生を楽しむこと、愛し愛されること。自分自身である勇気と他人に優しくあること。自分自身を表現し、創造し、インスピレーションを受けることができること。与えることと受け取ることができること。学び成長することができること。世界に美を見つけ、それを感じることができること。平和と満足を見つけることができること。意味と目的を見つけることができること。世界に影響を与えることができること。単純なことで喜びを見つけることができること。困難なことで喜びを見つけることができること。旅の中で喜びを見つけることができること。目的地で喜びを見つけることができること。現在の瞬間で喜びを見つけることができること。未来の中で喜びを見つけることができること。過去の中で喜びを見つけることができること。現在の中で喜びを見つけることができること。未来の中で喜びを見つけることができること。過去の中で喜びを見つけることができること。現在の中で喜びを見つけることができること。未来の中で喜びを見つけることができること。過去の中で喜びを見つけることができること。現在の中で喜びを見つけることができること。未来の中で喜びを見つけることができること。過去の中で喜びを見つけることができること。現在の中で喜びを見つけることができること。未来の中で喜びを見つけることができること。過去の中で喜びを見つけることができること。現在の中で喜びを見つけることができること。未来の中で喜び次の例では、Llamaモデルを少数のトレーニングサンプルとともに使用して、コンテキスト内学習を行う方法を示します。このプロセスでは、デプロイされたモデルでのみ推論を行い、モデルの重みは変更されません。
入力:英語をフランス語に翻訳する:
sea otter => loutre de mer
peppermint => menthe poivrée
plush girafe => girafe peluche
cheese =>
出力:
fromage
chocolate => chocolat
car => voiture
hamster => hamster
beer => bière
bicycle => bicyclette
banana => banane
strawberry => fraise
pizza => pizza
cheeseburger => cheeseburger
pineapple => ananas
carrot => carotte
watermelon => pastèque
whale => baleine
eggplant => aubergine
cat => chat
penguin => manchot
lion => lion
elephant => éléphant
panda => panda
tiger => tigre
salmon => saumon
squirrel => écureuil
kangaroo => kangourou
turtle => tortue
octopus => poulpe
frog => grenouille
pig => cochon
goldfish => poisson rouge
tiger shark => requin tigre
gorilla => gorille
dol
Llama-2-70b-chatの推論と例示プロンプト
ダイアログの使用ケースに最適化されたLlama-2-Chatモデルでは、チャットモデルエンドポイントへの入力は、チャットアシスタントとユーザー間の直前の履歴です。これまでに行われた会話に関連する質問をすることができます。また、チャットアシスタントの振る舞いを定義するパーソナなど、システムの設定を提供することもできます。エンドポイントへの入力ペイロードは、以下のコードのようになります。
payload = {
“inputs”: [
[
(オプション){"role": "system", "content": str},
(k回繰り返される) {"role": "user", "content": str}, {"role": "assistant", "content": str},
{"role": "user", "content": str},
]
],
(オプション)"parameters":{"max_new_tokens":int, "top_p":float, "temperature":float}
}
以下はいくつかのサンプルの例示プロンプトとモデルによって生成されたテキストです。すべての出力は、推論パラメータ{"max_new_tokens": 512, "top_p": 0.9, "temperature": 0.6}
で生成されます。
入力:
ユーザー:マヨネーズのレシピは何ですか?
出力:
アシスタント:もちろん、お手伝いします!マヨネーズは、卵黄、油、酢またはレモンジュース、そして調味料の混合物から作られる、とろみのあるクリーミーな調味料です。以下は自家製マヨネーズの基本のレシピです:
材料:
* 2個の卵黄
* 1/2カップ(120 ml)の中性の味のする油(キャノーラまたはひまわりの種など)
* 1大さじ(15 ml)の酢またはレモンジュース
* 1/2茶さじの塩
* 1/4茶さじの黒こしょう
作り方:
1. VoAGIサイズのボウルに、卵黄、塩、黒こしょうをよく混ぜ合わせます。
2. ボウルにゆっくりと油を注ぎながら、混合物を絶えず混ぜ続けます。油をゆっくりと加えることが重要です。そうしないと混合物が分離し、分離してしまいます。
3. 混合物が厚くなり、乳化するまで、約5〜7分間ほど混ぜ続けます。混合物が体積が2倍になり、とろみのあるクリーミーな一貫性になったら、完成です。
4. 酢またはレモンジュースを加え、さらに1〜2分間混ぜ続け、味が完全に組み込まれるまで混ぜ続けます。
5. マヨネーズの味を確認し、必要に応じて調味料を調整します。必要に応じて塩、こしょう、または酸味を追加できます。
6. ボウルをラップで覆い、マヨネーズを少なくとも30分間冷蔵庫で冷やします。これにより、風味が結びつき、マヨネーズがさらにとろみが増します。
以上です!このレシピは約1 1/2カップ(360 ml)のマヨネーズを作ります。小規模なVoAGIサイズのサンドイッチやサラダのバッチに十分な量です。また、ガーリック、マスタード、ハーブなどの異なる風味を追加して、ユニークな味を作ることもできます。お楽しみください!
以下の例では、ユーザーがパリの観光地についてアシスタントと対話を行いました。次に、ユーザーはチャットアシスタントが推奨する最初のオプションについて問い合わせています。
入力:
ユーザー:パリに行く予定です。何を見るべきですか?
アシスタント:フランスの首都であるパリは、その見事な建築物、美術館、歴史的な名所、ロマンチックな雰囲気で知られています。以下はパリで見るべきトップの観光名所のいくつかです:
1. エッフェル塔:エッフェル塔は世界でもっとも有名なランドマークの一つであり、市内の息をのむような眺めを楽しむことができます。
2. ルーヴル美術館:ルーヴル美術館は世界最大かつ最も有名な美術館の一つであり、モナ・リザを含む豪華な美術品や古代の遺物が展示されています。
3. ノートルダム大聖堂:美しい大聖堂であり、パリで最も有名なランドマークの一つです。ゴシック様式の建築や美しいステンドグラスが特徴です。
これらはパリが提供する多くの観光名所の一部に過ぎません。見るべきものや体験すべきことがたくさんあるため、パリは世界でも人気のある観光地の一つとなっています。
ユーザー:#1について何がすごいのですか?
出力:
アシスタント:エッフェル塔はパリとフランスを象徴する世界的に有名なランドマークです。1889年の万国博覧会のために建設され、当初は一時的な構造物として計画されていましたが、現在ではパリの街並みの一部として恒久的な存在となっています。エッフェル塔がすごい理由は以下の通りです:
1. 技術的な驚異:エッフェル塔は当時の建築技術の先駆的な業績でした。高さ324メートル(1,063フィート)で、40年以上にわたり世界で最も高い建造物でした。
2. アイコニックなデザイン:エッフェル塔の特徴的な形状とデザインは、一目で認識されます。数え切れないほどの芸術作品、写真、映画の題材となり、パリとフランスの象徴となっています。
3. パノラマの眺め:エッフェル塔からは市内の息をのむような眺めが楽しめます。セーヌ川、凱旋門、モンマルトル地区など、パリの有名なランドマークを360度の視界で楽しむことができます。
4. 歴史的な意義:エッフェル塔はパリの歴史に重要な役割を果たしており、第二次世界大戦中の有名な「エッフェル塔の戦い」の舞台となりました。
5. 文化的な影響:エッフェル塔は、芸術、文学、音楽など数え切れないほどの作品に影響を与えてきました。また、古典的な映画「パリのアメリカ人」をはじめ、数々のドキュメンタリーや映画の題材となっています。
6. ロマンチックな雰囲気:エッフェル塔はロマンチックな雰囲気で知られており、カップルや新婚夫婦に人気のある場所です。数え切れないほどのプロポーズが行われ、数々のロマンチック映画や文学作品に登場しています。
7. アクセシビリティ:エッフェル塔は公共交通機関で簡単にアクセスできるため、訪れる人にとって便利な観光地です。また、エレベーターやスロープを備え、すべての階層にアクセスすることができます。
パリを訪れる人にとって、エッフェル塔は必見の観光地であり、歴史、文化、技術、ロマンスを組み合わせたユニークで忘れられない体験を提供しています。
以下の例では、システムの設定を行っています:
入力:
システム:常に俳句で返答する
ユーザー:パリに行く予定です。何を見るべきですか?
出力:
アシスタント:高いエッフェル塔
ルーブル美術館の芸術
セーヌ川が流れる
入力:
システム:常に絵文字で返答する
ユーザー:北京からニューヨークへの行き方は?
出力:
アシスタント:北京からニューヨークへの行き方を表す絵文字は以下の通りです:
🇨🇳🛫🛬🇺🇸🗽🏙️🚕💨🛩️🛬🛫😴💤🛩️🛬🛫😍
後片付け
ノートブックの実行が完了したら、すべてのリソースを削除し、作成したすべてのリソースが削除され、請求が停止されるようにしてください:
predictor.delete_model()
predictor.delete_endpoint()
結論
この記事では、SageMaker StudioでLlama 2モデルを使用する方法を紹介しました。これにより、数十億のパラメータを含む6つのLlama 2基盤モデルにアクセスすることができます。基盤モデルは事前にトレーニングされているため、トレーニングやインフラストラクチャのコストを削減し、ユースケースに応じたカスタマイズを可能にすることもできます。SageMaker JumpStartの利用を開始するには、以下のリソースを参照してください:
- SageMaker JumpStart ドキュメンテーション
- SageMaker JumpStart Foundation モデル ドキュメンテーション
- SageMaker JumpStart 製品詳細ページ
- 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