更新日:2026年9月9日
21分で読めます
Microsoft FoundryでホストするGPT、Claude、Llama、MistralのモデルをGitLab Duo Self-Hostedに接続する方法と、その中からモデルを選ぶ考え方を解説します。

AIコーディングツールをめぐる議論は、多くの企業で「役に立つのか」から「コードがどこへ行くのか」へと移っています。データ主権やデータレジデンシー、規制上の制約を抱えるチームにとって、自社のソースコードがどのネットワークで処理されるのかは、導入を検討する前に確認しておくべき前提条件です。この問いに答えるのがGitLab Duo Self-Hosted。管理者は、自ら選んだインフラ上で動くモデルにGitLab Duoの機能を接続し、ホスティング先、リージョン、通信経路、認証情報のすべてを自社で管理できます。
このチュートリアルでは、Microsoft Foundry上でホストされているモデルにGitLab Duo Self-Hostedを接続します。まず押さえておきたいのが、FoundryをOpenAIのエンドポイントではなく、汎用のモデル提供プラットフォームとして捉える視点。カタログにはOpenAIのGPT、AnthropicのClaude、MetaのLlama、Mistralが並び、GitLabがサポートするファミリーとの重なりも大きくなっています。
この重なりが効いてくるのは、GitLabが機能単位でモデルを割り当てられるからです。エージェント型の処理には特定のファミリー、コード提案にはコードに最適化されたモデル、リクエスト量が支配的な用途には小型のモデル。こうした使い分けを、1つのAzureサブスクリプションでのデプロイと課金にまとめられます。
設定の手順は、ファミリーが変わっても同じです。違うのは、デプロイするモデル、参照するデプロイ名、そしてGitLab側で選ぶモデルファミリーの3点だけです。
ただし、Microsoftのカタログは更新が速く、GitLabのサポート対象モデル一覧より新しいリリースが並ぶこともあります。カタログに載っていることは、GitLab Duoのサポートを意味しません。モデルを選ぶ前に、必ず両社のドキュメントを確認してください。
GitLab Duo Self-Hostedを使うと、オンプレミス、あるいはサポート対象のクラウドプロバイダーにデプロイしたモデルにGitLab Duoを接続できます。すでにAzureで運用していて、モデルのデプロイやアクセス、ネットワーキング、使用量をAzure側で一元的に管理したい組織には、Microsoft Foundryが有力な選択肢になります。
主なメリットは次のとおりです。
GitLab Duo Self-Hostedの構成要素は、次の3つです。
設定したすべてのモデルは1つのAIゲートウェイが担い、どのデプロイを呼び出すかは、リクエスト元の機能に応じてGitLabが決めます。
flowchart LR
subgraph self["自社インフラ"]
GL["Self-Managed<br/>GitLab"]
GW["AIゲートウェイ<br/>(ポート5052)"]
end
subgraph azure["自社のAzureテナント"]
subgraph foundry["Microsoft Foundry"]
M1["duo-chat<br/>Agentic Chat、Agent Platform"]
M2["duo-code-gen<br/>コード生成"]
M3["duo-code-completion<br/>コード補完"]
end
end
GL -- HTTPS --> GW
GW --> M1
GW --> M2
GW --> M3
注: オンプレミスで運用している場合や、別のクラウドプロバイダーを使う場合は、他のモデル提供プラットフォームも利用できます。
この構成こそが、データ主権の要件を負うチームでもGitLab Duoを使えるようにしている部分です。だからこそ、どのデータがどこを通るのかは正確に押さえておく価値があります。
完全なセルフホスト構成では、推論データ(コードの入力、モデルへのプロンプト、モデルの応答)が自社ネットワークの外に出ることはないとGitLabのドキュメントに明記されています。リクエストはGitLabインスタンスからAIゲートウェイ、そしてFoundryのデプロイへと流れますが、その経路はすべて自社が管理するインフラの内側です。どのモデルやモデルプロバイダーを使っているかも、GitLabは取得しません。
外に出るのは、オンラインライセンスの場合の課金メタデータだけです。具体的には、インスタンスID、非特定化されたユーザーID、呼び出し回数、タイムスタンプの4つです。オフラインライセンスなら、インスタンスがGitLabの課金コンポーネントに接続することはありません。
ここには2つの条件がつきます。
モデル選定は、独立した2つの条件を同時に満たす作業です。GitLabがサポートしていること、そしてFoundryが提供していること。どちらか一方が、他方を保証することはありません。
GitLabは、サポート対象の各モデルを4つの能力領域で評価しています。コード補完、コード生成、GitLab Duo Agentic Chat、GitLab Duo Agent Platformの4領域。このうち、GitLabのサポート対象モデル表とFoundryのカタログの両方に登場するファミリーは次のとおりです。
| ファミリー | Foundryでの提供形態 | 押さえておきたい点 |
|---|---|---|
| GPT | Azure直販 | GitLabの表との重なりが最も大きく、最も素直な選択肢。汎用、コード最適化、低レイテンシーの小型など複数のバリエーションを含む |
| Claude | パートナー提供、Azure Marketplace経由 | エージェント型の評価が高い一方、Marketplace側の前提条件が追加で必要で、対応リージョンも限定的 |
| Llama | Azure直販とパートナー提供 | モデルサイズと機能によって評価が大きく変わる |
| Mistral | パートナー提供 | コードに最適化されたCodestralを含む |
具体的なバージョン番号は双方で入れ替わりが速いため、この記事では「最適なモデル」をあえて名指ししていません。代わりに、次の基準で選んでください。
導入を決める前に、GitLabのサポート対象モデルページで最新の評価を必ず確認してください。この記事に出てくるモデル名は、推奨ではなく例として扱ってください。
始める前に、次のものを準備してください。
注: まだGitLabをご利用でない場合は、GitLab Ultimateの無料トライアルから始められます。
1. Microsoft Foundryでモデルをデプロイする
Foundryポータルを開き、プロジェクトを選択して、カタログから目的のモデルをデプロイします。モデルの提供状況はリージョン、クラウド、デプロイタイプによって異なり、サブスクリプションによってはクォータ引き上げの承認が必要です。
デプロイ前に、使用予定のリージョンとデプロイタイプでそのモデルが提供されているかを確認します。MicrosoftはAzure直販のFoundryモデルのリージョン提供状況で公開しており、standard、provisioned、batchがタブごとに分かれています。注意したいのは、カバー範囲の偏り。Global Standardでは広く使えるモデルが、Regional Provisioned Managedではごく少数のリージョンにしか提供されていない、ということも起こります。
パートナー提供モデルは、Azure OpenAIのモデルより制約が大きくなります。たとえばClaudeは少数のリージョンに集中しており、デプロイにはMarketplaceの利用条件への同意が必要です。ファミリーを決める前に、リージョンとサブスクリプションの資格の両方を確認してください。
Microsoft Foundryのモデル
各デプロイには、後から追跡できる名前を付けてください。GitLabが参照するのはカタログ上のモデル名ではなくデプロイ名なので、曖昧な名前は監査の妨げになります。
duo-chatやduo-code-completionのように、モデルのバージョンではなく役割で名前を付けると、実用的な利点があります。理由は、新しいモデルにアップグレードするときに、GitLab側のモデル識別子を編集せず、デプロイの向き先だけを変えられること。duo-gpt-5-2のようにバージョンで名前を付ける方法はより明示的ですが、モデルを変えるたびにGitLabの再設定が必要になります。
最初はモデルを1つだけデプロイし、端から端まで動くことを確認してから広げるのが安全です。
デプロイ後は、デプロイごとに次の値を記録しておきます。
Microsoft Foundry - gpt-5-mini model
シークレットの管理は、社内で承認されたプロセスに従ってください。APIキーをリポジトリにコミットしてはいけません。
2. AIゲートウェイをインストールする
AIゲートウェイは、GitLabと選択したモデルエンドポイントの間でリクエストをルーティングします。最新のAIゲートウェイインストールガイドに従って、DockerまたはHelmチャートでインストールしてください。
他のチュートリアルにある古いイメージタグやAPIバージョンの例を、そのまま流用するのは避けてください。AIゲートウェイとGitLabのバージョンは互換性を保つ必要があり、最新のイメージと必須設定はGitLabのインストールガイドに記載されています。FoundryのエンドポイントとAPIキーは、手順4で各モデルをGitLabに追加するときに入力するもので、Dockerコマンドの例に埋め込む必要はありません。
設定したすべてのモデルは1つのゲートウェイでさばけるため、デプロイごとやモデルファミリーごとにゲートウェイを分ける必要はありません。
3. GitLabからAIゲートウェイへのアクセスを設定する
AIゲートウェイが動いたら、それを使うようにGitLabインスタンスを設定します。
https://ai-gateway.example.com:5052)。
GitLab Duo AI Gateway configuration
本番環境では、TLSを使い、ゲートウェイへのネットワークアクセスを制限してください。ゲートウェイがプライベートIPアドレスや内部ホスト名を使う場合は、GitLabの送信リクエストの許可リストに追加します。
4. 各デプロイをGitLabに追加する
GitLabから使いたいFoundryのデプロイごとに、この手順を繰り返します。
Agentic Chat on Microsoft Foundryのように、識別しやすい名前を入力します。azure/YOUR-DEPLOYMENT-NAMEを入力します。たとえばazure/duo-chatです。
GitLab Duo Self-Hosted model configuration
このプレフィックスが表すのは、モデルの提供方法であって開発元ではありません。FoundryはOpenAI以外のモデルもAzure OpenAIのエンドポイント経由で公開できるため、その場合もazure/が当てはまります。別のFoundryエンドポイント経由でアクセスするパートナー提供モデルをデプロイする場合は、思い込みで進めず、GitLabの設定ドキュメントで正しいプレフィックスを確認してください。プレフィックスが合っていないと、「Model not found」エラーの原因になります。
5. GitLab Duoの機能にモデルを割り当てる
カタログの幅が生きてくるのはここです。機能同士で1つのモデルを共有する必要はなく、ファミリーをそろえる必要さえありません。妥当な分け方の一例が、次のとおりです。
GitLab Duo model selection
この分け方は、チューニング済みの構成ではなく出発点の仮説として捉えてください。まずは有効化する機能すべてを1つのモデルでそろえ、品質、レイテンシー、コストの基準値をきれいに取ります。2つ目のモデルを入れるのは、自社の計測がそれを裏づけた箇所だけにします。
Microsoft Foundryを使ったGitLab Duo Self-Hostedの実装が正しく動いているかは、次の手順で確認します。
1. ヘルスチェックを実行する
モデル側が起動していることを確認したら、管理者ページのGitLab Duoセクションに戻り、ヘルスチェックを実行を選択します。ここで検証されるのは、次の項目です。
ヘルスチェックで問題が報告された場合は、トラブルシューティングガイドで一般的なエラーを確認してください。
2. コード生成でFastAPIサービスの雛形を作る
最初のテストにコード生成が向いているのは、経路全体を端から端まで通し、結果が一目で分かるからです。コード補完よりも多くのコンテキストを送るため、エンドポイントの設定ミスやクォータ不足もすぐに表面化します。
コード提案には2つの異なる挙動があり、どちらを発動させているかを分かっていないと、結果を読み違えます。
FastAPIサービスの雛形を作る手順は、次のとおりです。
main.pyのような空のファイルを作成します。コード生成はファイルが5行未満のときに精度が高くなるため、空のファイルが理想的な出発点です。 # Create a FastAPI service with a health check endpoint and CRUD endpoints for
# a "tasks" resource backed by an in-memory list. Use Pydantic models for
# request and response bodies, and return appropriate HTTP status codes.
Scaffold a FastAPI service with code generation
うまくいく鍵は、フレームワークを明示することです。GitLabがコード生成について推奨しているのは、得たい結果を述べること、具体的かつ簡潔に保つこと、そして使いたいライブラリやフレームワークを名指しすること。# web serviceのような曖昧なコメントでは、モデルに与えられる手がかりが大幅に減ります。
あらかじめ知っておきたい点が2つあります。1つは、コード生成の出力が約2048トークンを上限とするため、完成したアプリケーションではなく、しっかりした雛形が得られること。もう1つは、これらのモデルが決定的ではないため、同じコメントから同じコードが2度出てくることはない点です。これは設定ミスの兆候ではなく、正常な挙動です。
機能ごとに違うモデルを割り当てた場合は、それぞれ個別にテストしてください。そうすれば、失敗したときに原因のデプロイを1つに絞れます。コード生成が確認できれば、手順5でコード生成に割り当てたモデルが実際にリクエストを処理していることも、同時に確認できます。
3. AIゲートウェイのログを確認する
AIゲートウェイのログを見て、Microsoft Foundryのデプロイにリクエストがルーティングされていることを確認します。
ターミナルで、次のコマンドを実行します。
docker logs gitlab-ai-gateway --tail 100 -f
設定したモデルエンドポイントへのリクエストが成功したことを示すログエントリが表示されるはずです。プロンプトのログ記録は、社内のデータ取り扱いポリシーで認められている場合を除き、有効化しないでください。
ここからの進め方を紹介します。
GitLabのチームは、各モデルの性能を機能ごとに継続的にテストし、性能と適合性のランク付けを公開しています。
モデル名やFoundryのカタログへの掲載から、互換性を推測してはいけません。GitLabの最新の評価については、モデルとハードウェア要件のページを信頼できる唯一の情報源として参照してください。
コスト最適化の進め方
このガイドはMicrosoft Foundryとの連携を中心に扱っていますが、GitLab Duo Self-Hostedは複数のデプロイ方式に対応しています。
すでにAzureのエコシステムに投資している組織には、Microsoft Foundry固有の利点があります。
これらの機能はコンプライアンスプログラムを支えますが、それだけでGitLab Duoの構成がコンプライアンスに準拠するわけではありません。アーキテクチャ全体、データフロー、ログ記録、保持期間、契約、運用統制を、自社の要件に照らして検証してください。
Microsoft Foundryと組み合わせたGitLab Duo Self-Hostedを使えば、AzureでホストするモデルからGitLab Duoの機能を提供できます。FoundryのカタログはGPT、Claude、Llama、Mistralに及び、GitLabもそれぞれのモデルをサポートしているため、必要なファミリーを1つのAzureサブスクリプションでカバーできます。まずは幅広い用途に対応できるモデル1つから始め、計測結果が裏づけたところで機能ごとにモデルを割り当てていきましょう。
この記事に出てくるモデル名は、推奨ではなく例です。両社のカタログは頻繁に変わるため、デプロイ時点で信頼できる唯一の情報源は、両社の対応一覧だと考えてください。
長く通用する教訓は、モデル選定をカタログの買い物ではなく、互換性の判断として扱うことです。GitLabのサポート対象一覧を確認し、Microsoft Foundryで提供状況とライフサイクルの状態を確かめ、モデルをデプロイしたうえで、全社展開の前に自社のワークロードで検証してください。
無料の
30日間のGitLabトライアルを開始
クレジットカードなしでご登録いただけます。
このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。
フィードバックを共有する