Vertex AI の Llama モデルは、API としてフルマネージド モデルとサーバーレス モデルを提供します。Vertex AI で Llama モデルを使用するには、Vertex AI API エンドポイントにリクエストを直接送信します。Llama モデルはマネージド API を使用します。インフラストラクチャをプロビジョニングしたり、管理する必要はありません。
レスポンスをストリーミングして、エンドユーザーのレイテンシを軽減できます。ストリーミング レスポンスでは、サーバー送信イベント(SSE)を使用してレスポンスを段階的にストリーミングします。
使用可能な Llama モデル
Vertex AI で使用できる Meta の Llama モデルは次のとおりです。Llama モデルにアクセスするには、Model Garden のモデルカードに移動します。
Llama 3.2
Llama 3.2 を使用すると、デベロッパーは最新の Llama の機能(画像推論など)を使用する最新の生成 AI モデルとアプリケーションを構築してデプロイできます。Llama 3.2 は、オンデバイス アプリケーションでよりアクセスしやすくなるように設計されています。
Llama 3.2 モデルカードに移動プレビュー期間中は無料でご利用いただけます。プロダクション レディなサービスが必要な場合は、セルフホストの Llama モデルを使用します。
考慮事項
llama-3.2-90b-vision-instruct-maas
を使用する場合、テキストのみのプロンプトを送信する際の制限はありません。ただし、プロンプトに画像を含める場合は、画像をプロンプトの先頭に配置する必要があります。また、画像は 1 つだけ含めることができます。テキストと画像を交互に配置することはできません。
Llama 3.1
Llama 3.1 は、最適化された Transformer アーキテクチャを使用する自動回帰言語モデルです。チューニング済みのバージョンでは、教師ありファインチューニング(SFT)と人間からのフィードバックを用いた強化学習(RLHF)を使用して、人間の好みに合わせて有用性と安全性を調整します。
Llama 3.1 405B は一般提供です。モデルの使用量に応じて課金されます(従量課金制)。従量課金制の料金については、Vertex AI の料金ページで Llama モデルの料金をご覧ください。
他の Llama 3.1 モデルはプレビュー版です。プレビュー版モデルは無料です。本番環境対応のサービスが必要な場合は、セルフホストの Llama モデルを使用します。
Llama 3.1 モデルカードに移動Llama モデルを使用する
Llama のモデルを使用するリクエストを送信する場合は、次のモデル名を使用します。
- Llama 3.2 90B(プレビュー)の場合は
llama-3.2-90b-vision-instruct-maas
を使用します。 - Llama 3.1 405B(一般提供)の場合は
llama-3.1-405b-instruct-maas
を使用します。 - Llama 3.1 70B(プレビュー)の場合は
llama-3.1-70b-instruct-maas
を使用します。 - Llama 3.1 8B(プレビュー)の場合は
llama-3.1-8b-instruct-maas
を使用します。
モデル バージョンの違いが考えられるため、@
記号で始まる接尾辞を含むモデル バージョンを使用することをおすすめします。モデルのバージョンを指定しないと、常に最新バージョンが使用されます。モデルのバージョンが変更されたときに、ワークフローに影響が及ぶ可能性があります。
始める前に
Vertex AI で Llama モデルを使用するには、次の操作を行う必要があります。Vertex AI を使用するには、Vertex AI API(aiplatform.googleapis.com
)を有効にする必要があります。既存のプロジェクトで Vertex AI API が有効になっている場合は、新しいプロジェクトを作成する代わりに、そのプロジェクトを使用できます。
パートナー モデルを有効にして使用するために必要な権限があることを確認します。詳細については、必要な権限を付与するをご覧ください。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Vertex AI API.
- 次のいずれかの Model Garden モデルカードに移動し、[有効にする] をクリックします。
Llama モデルにストリーミング呼び出しを行う
次のサンプルでは、Llama モデルに対してストリーミング呼び出しを行います。
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: Llama モデルをサポートするリージョン。
- MODEL: 使用するモデル名。
- ROLE: メッセージに関連付けられたロール。
user
またはassistant
を指定できます。最初のメッセージでは、user
ロールを使用する必要があります。Claude モデルはuser
とassistant
のターンを交互に操作します。最後のメッセージがassistant
ロールを使用する場合、そのメッセージのコンテンツの直後にレスポンス コンテンツが続きます。これを使用して、モデルのレスポンスの一部を制限できます。 - CONTENT:
user
またはassistant
のメッセージの内容(テキストなど)。 - MAX_OUTPUT_TOKENS: レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。
レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
- STREAM: レスポンスがストリーミングされるかどうかを指定するブール値。レスポンスのストリーミングを行うことで、エンドユーザーが認識するレイテンシを短縮できます。レスポンスをストリーミングする場合は
true
、すべてのレスポンスを一度に戻すにはfalse
に設定します。 - ENABLE_LLAMA_GUARD: 入力と出力で Llama Guard を有効にするかどうかを指定するブール値。デフォルトでは、Llama Guard が有効になり、安全でないことが判断されたレスポンスにフラグが付けられます。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
リクエストの本文(JSON):
{ "model": "meta/MODEL", "messages": [ { "role": "ROLE", "content": "CONTENT" } ], "max_tokens": MAX_OUTPUT_TOKENS, "stream": true, "extra_body": { "google": { "model_safety_settings": { "enabled": ENABLE_LLAMA_GUARD, "llama_guard_settings": {} } } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Llama モデルに単一呼び出しを行う
次のサンプルでは、Llama モデルに対して単一呼び出しを行います。
REST
環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: Llama モデルをサポートするリージョン。
- MODEL: 使用するモデル名。
- ROLE: メッセージに関連付けられたロール。
user
またはassistant
を指定できます。最初のメッセージでは、user
ロールを使用する必要があります。Claude モデルはuser
とassistant
のターンを交互に操作します。最後のメッセージがassistant
ロールを使用する場合、そのメッセージのコンテンツの直後にレスポンス コンテンツが続きます。これを使用して、モデルのレスポンスの一部を制限できます。 - CONTENT:
user
またはassistant
のメッセージの内容(テキストなど)。 - MAX_OUTPUT_TOKENS: レスポンスで生成できるトークンの最大数。1 トークンは約 4 文字です。100 トークンは約 60~80 語に相当します。
レスポンスを短くしたい場合は小さい値を、長くしたい場合は大きい値を指定します。
- STREAM: レスポンスがストリーミングされるかどうかを指定するブール値。レスポンスのストリーミングを行うことで、エンドユーザーが認識するレイテンシを短縮できます。レスポンスをストリーミングする場合は
true
、すべてのレスポンスを一度に戻すにはfalse
に設定します。 - ENABLE_LLAMA_GUARD: 入力と出力で Llama Guard を有効にするかどうかを指定するブール値。デフォルトでは、Llama Guard が有効になり、安全でないことが判断されたレスポンスにフラグが付けられます。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions
リクエストの本文(JSON):
{ "model": "meta/MODEL", "messages": [ { "role": "ROLE", "content": "CONTENT" } ], "max_tokens": MAX_OUTPUT_TOKENS, "stream": false, "extra_body": { "google": { "model_safety_settings": { "enabled": ENABLE_LLAMA_GUARD, "llama_guard_settings": {} } } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions"
PowerShell
リクエスト本文を request.json
という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/endpoints/openapi/chat/completions" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
フラグの付いた回答
デフォルトでは、Llama 3.1 モデルで行うすべての予測で Llama Guard が有効になります。Llama Guard は、入力と出力をチェックすることでレスポンスを保護します。Llama Guard が安全でないと判断した場合は、レスポンスにフラグが付けられます。
Llama Guard を無効にするには、モデルの安全性設定を変更します。詳細については、ストリーミングまたは単項の例の model_safety_settings
フィールドをご覧ください。
Vertex AI Studio を使用する
Llama モデルの場合、Vertex AI Studio を使用して、Google Cloud コンソールで生成 AI モデルのプロトタイプを迅速に作成してテストできます。たとえば、Vertex AI Studio を使用して、Llama モデルのレスポンスを、Google の Gemini など、サポートされている他のモデルと比較できます。
詳細については、クイックスタート: Vertex AI Studio を使用して Gemini にテキスト プロンプトを送信するをご覧ください。
Llama モデルで利用可能なリージョンと割り当て
Llama モデルの場合、モデルが使用可能なリージョンごとに割り当てが適用されます。割り当ては、1 分あたりのクエリ数(QPM)で指定されます。
次の表に、各 Llama モデルのサポートされているリージョン、デフォルトの割り当て、最大コンテキスト長を示します。
Llama 3.2 90B(プレビュー)
リージョン | 割り当てシステム | サポートされているコンテキストの長さ |
---|---|---|
us-central1 |
30 QPM | 128,000 トークン |
Llama 3.1 405B(一般提供)
リージョン | 割り当てシステム | サポートされているコンテキストの長さ |
---|---|---|
us-central1 |
60 QPM | 128,000 トークン |
Llama 3.1 70B(プレビュー)
リージョン | 割り当てシステム | サポートされているコンテキストの長さ |
---|---|---|
us-central1 |
60 QPM | 128,000 トークン |
Llama 3.1 8B(プレビュー)
リージョン | 割り当てシステム | サポートされているコンテキストの長さ |
---|---|---|
us-central1 |
60 QPM | 128,000 トークン |
Vertex AI の生成 AI の割り当てを引き上げる場合は、Google Cloud コンソールから割り当ての増加をリクエストできます。割り当ての詳細については、割り当てを操作するをご覧ください。