正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Duoセルフホストモデルがサポートするプラットフォーム

  • プラン: Premium、Ultimate
  • アドオン: GitLab Duo Enterprise
  • 提供形態: GitLab Self-Managed

複数のプラットフォームを利用して、セルフホストモデルの大規模言語モデル(LLM)をホストできます。各プラットフォームには、さまざまなニーズに対応できる独自の機能と利点があります。次のドキュメントでは、現在サポートされているオプションをまとめています。使用したいプラットフォームがこのドキュメントにない場合は、プラットフォームリクエストイシュー(イシュー526144)でフィードバックをお寄せください。

セルフホストモデルのデプロイの場合

vLLM

vLLMは、メモリ効率性でLLMの提供に最適化された、高性能な推論サーバーです。モデルの並列処理をサポートし、既存のワークフローと簡単に統合できます。

vLLMをインストールするには、vLLMインストールガイドを参照してください。バージョンv0.6.4.post1以降をインストールする必要があります。

エンドポイント設定

GitLabでOpenAI API互換プラットフォーム(vLLMなど)のエンドポイントURLを設定する場合:

  • URLのサフィックスは/v1にする必要があります
  • デフォルトのvLLM設定を使用している場合、エンドポイントURLはhttps://<hostname>:8000/v1になります
  • サーバーがプロキシまたはロードバランサーの背後に設定されている場合、ポートを指定する必要がない場合があります。その場合、URLはhttps://<hostname>/v1になります

モデル名を検索

モデルがデプロイされたら、GitLabのモデル識別子フィールドのモデル名を取得するには、vLLMサーバーの/v1/modelsエンドポイントにクエリを実行します:

curl \
  --header "Authorization: Bearer API_KEY" \
  --header "Content-Type: application/json" \
  http://your-vllm-server:8000/v1/models

モデル名は、レスポンスのdata.idフィールドの値です。

レスポンス例:

{
  "object": "list",
  "data": [
    {
      "id": "Mixtral-8x22B-Instruct-v0.1",
      "object": "model",
      "created": 1739421415,
      "owned_by": "vllm",
      "root": "mistralai/Mixtral-8x22B-Instruct-v0.1",
      // Additional fields removed for readability
    }
  ]
}

この例では、モデルのidMixtral-8x22B-Instruct-v0.1の場合、GitLabのモデル識別子をcustom_openai/Mixtral-8x22B-Instruct-v0.1として設定します。

詳細については、次を参照してください:

例:

Mistral-7B-Instruct-v0.2

  1. HuggingFaceからモデルをダウンロードします:

    git clone https://<your-hugging-face-username>:<your-hugging-face-token>@huggingface.co/mistralai/Mistral-7B-Instruct-v0.3
  2. サーバーを実行します:

    vllm serve <path-to-model>/Mistral-7B-Instruct-v0.3 \
       --served_model_name <choose-a-name-for-the-model>  \
       --tokenizer_mode mistral \
       --tensor_parallel_size <number-of-gpus> \
       --load_format mistral \
       --config_format mistral \
       --tokenizer <path-to-model>/Mistral-7B-Instruct-v0.3

Mixtral-8x7B-Instruct-v0.1

  1. HuggingFaceからモデルをダウンロードします:

    git clone https://<your-hugging-face-username>:<your-hugging-face-token>@huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1
  2. トークン設定の名前を変更します:

    cd <path-to-model>/Mixtral-8x7B-Instruct-v0.1
    cp tokenizer.model tokenizer.model.v3
  3. モデルを実行します:

    vllm serve <path-to-model>/Mixtral-8x7B-Instruct-v0.1 \
      --tensor_parallel_size 4 \
      --served_model_name <choose-a-name-for-the-model> \
      --tokenizer_mode mistral \
      --load_format safetensors \
      --tokenizer <path-to-model>/Mixtral-8x7B-Instruct-v0.1

レイテンシーを削減するためにリクエストログを無効にする

本番環境でvLLMを実行する場合、--disable-log-requestsフラグを使用してリクエストログを無効にすると、レイテンシーを大幅に削減できます。

詳細なリクエストログが必要ない場合にのみ、このフラグを使用してください。

リクエストログを無効にすると、特に負荷が高い場合に詳細ログによって発生するオーバーヘッドが最小限に抑えられ、パフォーマンスレベルの向上に役立ちます。

vllm serve <path-to-model>/<model-version> \
--served_model_name <choose-a-name-for-the-model>  \
--disable-log-requests

この変更により、内部ベンチマークでの応答時間が大幅に改善されることが確認されています。

クラウドホスト型モデルデプロイの場合

AWS Bedrock

AWS Bedrockは、開発者が大手AI企業の事前トレーニング済みモデルを使用して生成AIアプリケーションをビルドおよびスケールできるようにする、フルマネージドサービスです。他のAWSサービスとシームレスに統合され、従量課金制の価格モデルを提供します。

AWS Bedrockモデルにアクセスするには:

  1. 適切なAWS IAM権限でBedrockにアクセスするようにIAM認証情報を設定します:

  2. Dockerコンテナの起動時に、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_REGION_NAMEなどの適切なAWS SDK環境変数をエクスポートして、AIゲートウェイインスタンスを認証します。

    詳細については、AWS Identity and Access Management (IAM)ガイドを参照してください。

    AIゲートウェイでは、現時点では一時的な認証情報はサポートされていません。インスタンスプロファイルまたは一時的な認証情報を使用するためにBedrockのサポートを追加する方法については、イシュー542389を参照してください。

  3. オプション。Virtual Private Cloud(VPC)で動作するプライベートBedrockエンドポイントをセットアップするには、AIゲートウェイコンテナを起動するときに、AWS_BEDROCK_RUNTIME_ENDPOINT環境変数が内部URLで設定されていることを確認してください。

    設定例:AWS_BEDROCK_RUNTIME_ENDPOINT = https://bedrock-runtime.{aws_region_name}.amazonaws.com

    VPCエンドポイントの場合、URL形式がhttps://vpce-{vpc-endpoint-id}-{service-name}.{aws_region_name}.vpce.amazonaws.comのように異なる場合があります

詳細については、Amazon Web Services Bedrockでサポートされている基盤モデルを参照してください。

Azure OpenAI

Azure OpenAIはOpenAIの強力なモデルへのアクセスを提供し、開発者は堅牢なセキュリティとスケーラブルなインフラストラクチャを使用して、高度なAI機能をアプリケーションに統合できます。

詳細については、以下を参照してください:

複数のモデルとプラットフォームを使用する

GitLab Duoセルフホストモデルを使用すると、同じGitLabインスタンスで複数のモデルとプラットフォームを使用できます。

たとえば、ある機能がAzure OpenAIを使用するように設定し、別の機能がAWS BedrockまたはvLLMで提供されるセルフホストモデルを使用するように設定できます。

このセットアップにより、各ユースケースに最適なモデルとプラットフォームを柔軟に選択できます。モデルは、互換性のあるプラットフォームでサポートおよび提供されている必要があります。

さまざまなプロバイダーのセットアップの詳細については、以下を参照してください: