Llama モデル


Vertex AI の Llama モデルは、API としてフルマネージド モデルとサーバーレス モデルを提供します。Vertex AI で Llama モデルを使用するには、Vertex AI API エンドポイントにリクエストを直接送信します。Llama モデルはマネージド API を使用します。インフラストラクチャをプロビジョニングしたり、管理する必要はありません。

レスポンスをストリーミングして、エンドユーザーのレイテンシを軽減できます。ストリーミング レスポンスでは、サーバー送信イベント(SSE)を使用してレスポンスを段階的にストリーミングします。

プレビュー期間中は無料でご利用いただけます。プロダクション レディなサービスが必要な場合は、セルフホストの Llama モデルを使用します。

使用可能な Llama 3.1 モデル

Llama 3.1 は、最適化された Transformer アーキテクチャを使用する自動回帰言語モデルです。チューニング済みのバージョンでは、教師ありファインチューニング(SFT)と人間からのフィードバックを用いた強化学習(RLHF)を使用して、人間の好みに合わせて有用性と安全性を調整します。

Vertex AI で使用できる Meta の Llama モデルは次のとおりです。Llama モデルにアクセスするには、Model Garden のモデルカードに移動します。

Llama 3.1 405B

Llama 3.1 405B は、Meta のこれまでで最も強力で汎用性の高いモデルです。一般公開されている基盤モデルとして最大のもので、合成データの生成からモデルの抽出、制御可能性、数学、ツールの使用、多言語翻訳などに利用できます。詳細については、Meta の Llama 3.1 サイトをご覧ください。

Llama 3.1 405B は、次のユースケース向けに最適化されています。

  • エンタープライズ レベルのアプリケーション
  • 研究開発(R&D)
  • 合成データの生成とモデルの抽出
Llama 3.1 405B モデルカードに移動

Llama モデルを使用する

Llama のモデルを使用するリクエストを送信する場合は、次のモデル名を使用します。

  • Llama 3.1 405B の場合は llama3-405b-instruct-mass を使用します。

モデル バージョンの違いが考えられるため、@ 記号で始まる接尾辞を含むモデル バージョンを使用することをおすすめします。モデルのバージョンを指定しないと、常に最新バージョンが使用されます。モデルのバージョンが変更されたときに、ワークフローに影響が及ぶ可能性があります。

始める前に

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 に設定します。

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
}

リクエストを送信するには、次のいずれかのオプションを選択します。

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 に設定します。

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
}

リクエストを送信するには、次のいずれかのオプションを選択します。

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 Guard を使用して LLM の入力と出力を保護します。 Colab
GitHub
Vertex AI Workbench
Automatic side-by-side(AutoSxS)評価を使用して Llama 3.1 モデルを評価します。 Colab
GitHub
Vertex AI Workbench

Llama モデルで利用可能なリージョンと割り当て

Llama モデルの場合、モデルが使用可能なリージョンごとに割り当てが適用されます。割り当ては、1 分あたりのクエリ数(QPM)で指定されます。

次の表に、各 Llama モデルのサポートされているリージョン、デフォルトの割り当て、最大コンテキスト長を示します。

Llama 3.1 405B

リージョン 割り当てシステム サポートされているコンテキストの長さ
us-central1 60 QPM 32,000 トークン

Vertex AI の生成 AI の割り当てを引き上げる場合は、Google Cloud コンソールから割り当ての増加をリクエストできます。割り当ての詳細については、割り当てを操作するをご覧ください。