Llama モデル


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 が有効になっている場合は、新しいプロジェクトを作成する代わりに、そのプロジェクトを使用できます。

パートナー モデルを有効にして使用するために必要な権限があることを確認します。詳細については、必要な権限を付与するをご覧ください。

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

  8. 次のいずれかの Model Garden モデルカードに移動し、[有効にする] をクリックします。

Llama モデルにストリーミング呼び出しを行う

次のサンプルでは、Llama モデルに対してストリーミング呼び出しを行います。

REST

環境をセットアップしたら、REST を使用してテキスト プロンプトをテストできます。次のサンプルは、パブリッシャー モデルのエンドポイントにリクエストを送信します。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: Llama モデルをサポートするリージョン。
  • MODEL: 使用するモデル名
  • ROLE: メッセージに関連付けられたロール。user または assistant を指定できます。最初のメッセージでは、user ロールを使用する必要があります。Claude モデルは userassistant のターンを交互に操作します。最後のメッセージが 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 モデルは userassistant のターンを交互に操作します。最後のメッセージが 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 コンソールから割り当ての増加をリクエストできます。割り当ての詳細については、割り当てを操作するをご覧ください。