重要なポイント
- アーキテクチャは3つの部分です: Ollama(またはvLLM)を実行するGPUサーバー→ネットワーク経由で到達可能なCIランナー→PRdiffをPOSTし構造化判定を解析するカスタムアクション。GitHub Actions、GitLab CI、Buildkite、Jenkinsで同じ形です。
- 2026年5月のデフォルトスタック: Ollama + Qwen3-Coder 30B(Apache 2.0)+ シンカスタムGitHub Action。総インフラ:1つのGPUボックス、1つのランナー。
- ハードウェアサイジング: RTX 4090(24 GB、¥320,000~¥360,000)は15~25開発者を処理します。L40SまたはA6000 Ada(48 GB、¥1,120,000~¥1,280,000)は50人に拡張します。H100(80 GB、¥4,000,000以上)またはマルチGPUは100以上向けです。
- **経済学はおおよそ15~25の有料GitHub Advanced Securityシート($19/開発者/月)でセルフホスト領域に転換します——RTX 4090ビルドは5~10ヶ月でペイバックします。
- セキュリティ上の利点は実質的で、単なるマーケティングではありません。 コードはネットワークから出ません。
tcpdumpでゼロエグレスを証明できます。監査サーフェス全体は1つのOllamaプロセスと1つのログファイルです。 - 偽陽性は運用上の税金です。 最初の月の調整ループを計画します:プロンプト反復、重大度しきい値、レビュー担当者のフィードバック取得パスによってプロンプトは時間とともに改善します。
- 遅延は許容できます。 24 GB GPUでQwen3-Coder 30Bを実行すると、典型的な200行のPRdiffを30秒以内でレビューします。PR著者の待機時間は他のCIジョブが支配し、レビューではありません。
- 人間のレビューを完全に置き換えないでください。 ローカルLLMは最初のパストリアージゲートです——明らかな問題を捕捉し、リスクのある変更にフラグを立て、LLMがまだ間違う判断呼び出しについて人間を解放します。
重要な事実
- GPU メモリ要件: Qwen3-Coder 30Bはq4_K_M量子化で最大22GB VRAMを必要とします。24GB(RTX 4090)はスリムですが機能します。余裕が欲しい場合は最小32GB(RTX 5090)を使用します。
- 推論遅延: 典型的なPRdiff(50~500行)は24 GBカードで10~30秒。H100クラスのカードは5~10秒でこれを削減します。レビュー時間をCIジョブの他の部分と比較してください——テストスイートとビルドが通常支配します。
- 同時実行: 1つのRTX 4090はGPUスケジューリング(タイムシェアリング)でおおよそ1~3同時レビューを処理できます。複数の同時PRレビューは待機時間を増加させ、最初の月は偽陽性も増加させます。
- ネットワークアーキテクチャ: ランナーはプライベートVPC内でOllamaサーバーに到達するか、Tailscale / WireGuardなどのプライベートトンネルを経由する必要があります。インターネット公開のまま放置しないでください。
- モデル選択: Qwen3-Coder 30Bはコード生成中間の5月2026年デフォルトです。DeepSeek Coder V3と同等です。7Bはより速いですが、レビュー品質が低下し、開発者はシステムを信じるのにやめます。
- ストレージ: Ollama はモデルウェイトを
~/.ollama/modelsに格納します。Qwen3-Coder 30B @ q4_K_Mは約14GBです。複数のモデルの場合は追加ストレージを計画します。 - キャッシング重要性: ファイルハッシュ + diffハッシュベースのキャッシュなしでは、再び変わらないファイルを再レビューして、推論予算の約80%を浪費します。小さなキャッシュレイヤー(Redis、SQLite、またはメモリ内)は推論負荷を劇的に削減します。
- 監査可能性: Ollamaはリクエストボディをログに記録します。このログはPRdiffを含むため、ログローテーション(週単位)と暗号化を適用します。監査可能性はセキュリティ値提案の大きな部分です。
アーキテクチャ比較
3つのアーキテクチャパターンがあります:セルフホスト型(Ollama/vLLM)、API経由クラウド(OpenAI/Anthropic)、あるいはハイブリッドです。各パターンにはトレードオフがあります。
- セルフホスト型(推奨): 初期セットアップ(GPU購入、システム管理、セキュリティ設定)は中程度の複雑度です。ただしコストは固定で、15~25開発者以上で支配的になります。コードはネットワークから出ません。プロンプトフル制御、モデル選択、および監査。大チーム(25+)の標準。
- クラウドAPI: OpenAI、Anthropic、またはその他のAPIサービス経由で。セットアップは単純です——APIキーとカスタム GitHubアクション。コストはリクエスト単位(トークン/ドル)スケーリングします。5人未満のチームで安価。大チームでは $2,000/月+から非常に高速でスケーリングします。コードはサードパーティシステムに見えます。
- ハイブリッド: 小さなチーム(<25人)ではクラウドAPIで始め、大きくなるにつれてセルフホストに切り替えます。ただしアーキテクチャ反復の複雑性を支払います——プロンプトをバージョン化し、モデル品質の違いを管理し、フェイルオーバーを計画します。
| アーキテクチャ | セットアップ複雑度 | コストスケーリング | データプライバシー | カスタマイズ | 推奨用途 |
|---|---|---|---|---|---|
| セルフホスト型(Ollama) | 中 | 15~25開発者でゼロになります | ネットワーク内のコード | 完全な制御 | 大チーム、機密コード、金融/医療 |
| API経由クラウド(OpenAI) | 低 | 開発者数に対して線形 | サードパーティシステムにレプリケート | プロンプトのみ | 5人未満のチーム、公開プロジェクト、実験 |
| ハイブリッド | 高 | セルフホスト対APIに基づく | ポリシー選択可能 | 高い | 大チーム、段階的なロールアウト |
📌Note: この記事はセルフホスト型(Ollama + ローカルモデル)に焦点を当てています。クラウドAPIsはより良い選択肢です——セットアップと費用の観点から——チームの場合、5未満で、コード機密性が低い場合。
推奨スタック
2026年5月の本番環境推奨セットアップはOllama + Qwen3-Coder 30Bです。 これは柔軟性、オープンソース許可、推論速度、そしてチームサイズ別の経済学のバランスが最も良いです。
- Ollama: サーバー推論フレームワーク。モデルローディング、量子化、バッチ処理を管理します。セットアップが簡単で、ドキュメント化が良く、GPUメモリ効率が適切です。https://github.com/ollama/ollama
- Qwen3-Coder 30B: Alibaba Qwen チームのコーディング専門モデル。Apache 2.0(許可付き)。文脈長256K。一般的なコード品質、エラー検出、およびセキュリティについては、DeepSeek Coder V3に比べて比肩します。HuggingFaceで入手可能。
- カスタムGitHub Action(JavaScript): PR diffをフェッチし、Ollama HTTPエンドポイントにPOST、JSON応答を解析し、インラインコメントをポストします。100~200行。ユーザーとの依存関係なし。
- セルフホスト型GitHub ActionsランナーまたはプライベートCI実行者: ランナーまたはOllamaサーバーへの到達可能性(同じVPC、Tailscale、またはproxy)が必要です。クラウドランナーは機能しません。
- セキュリティ層(オプション): プロキシリバース(nginx、Envoy)前のOllamaで、mTLS認証、または共有シークレット。デフォルトではOllamaはlocalhostにバインドされます。
- ログ管理: Ollamaはリクエストボディ(PR diffを含む)をログに記録します。syslog、ファイルローテーション、またはシステムd journalctl ポリシーによってログを回転させます。
💡Tip: セットアップ後、最初の月にPromt Designセクション(以下参照)に時間を費やしてください。モデルの品質は固定されています。偽陽性率はプロンプトで決まります。
GitHub Actionsワークフロー
以下は本番環境で使用可能なワークフローです。 ファイルを.github/workflows/local-llm-review.ymlに置き、OLLAMA_HOST秘密キーを設定し、セルフホスト型ランナーまたはVPC内のランナーで実行することを確認してください。
- ランナーはOLLAMA_HOST へのネットワークアクセスが必要です——セルフホスト型は同じVPC内、またはTailscale / WireGuardを経由する必要があります。
- プロンプトシステムは構造化JSON応答を強制します。
format: "json"と厳密なスキーマなしでは、操作上は自由形式出力を解析するのに時間を費やすことになります。 fetch-depth: 0はベースブランチに対する真のdiffを計算するために必要です——浅いチェックアウトはmalformed diffを生成します。- リポジトリが約50Kを超える行のコード変更の場合、diff前に送信するdiffを切り詰めるか断片化します。256K文脈はQwen3-Coder 30Bで寛容ですが、実用的な作業文脈はより64K~128K付近です(2026年のベストローカルコーディングモデルを参照)。
- プロンプト深度設計——システムプロンプト対ユーザープロンプト、例、構造化結果——については、System Prompt vs User Prompt: What's the Differenceを参照。
name: Local LLM Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: [self-hosted, linux]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get PR diff
id: diff
run: |
git diff origin/${{ github.base_ref }}...HEAD > /tmp/pr.diff
wc -l /tmp/pr.diff
- name: Call local LLM review
id: review
env:
OLLAMA_HOST: ${{ secrets.OLLAMA_HOST }} # ex. http://gpu-server.internal:11434
run: |
DIFF=$(jq -Rs . < /tmp/pr.diff)
curl -sS "$OLLAMA_HOST/api/chat" \
-H 'Content-Type: application/json' \
-d "{
\"model\": \"qwen3-coder:30b\",
\"stream\": false,
\"format\": \"json\",
\"messages\": [
{\"role\": \"system\", \"content\": \"You are a senior code reviewer. Return JSON: {verdict: 'approve'|'comment'|'block', summary: string, comments: [{path, line, severity, message}]}\"},
{\"role\": \"user\", \"content\": $DIFF}
]
}" > /tmp/review.json
echo "verdict=$(jq -r '.message.content | fromjson | .verdict' < /tmp/review.json)" >> "$GITHUB_OUTPUT"
- name: Post review comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = JSON.parse(JSON.parse(fs.readFileSync('/tmp/review.json')).message.content);
const body = `### Local LLM Review: \`${review.verdict}\`\n\n${review.summary}`;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body
});
- name: Block on critical verdict
if: steps.review.outputs.verdict == 'block'
run: exit 1
📌Note: このワークフローは意図的に最小限です。本番環境は以下を追加します:ファイルハッシュ + diffハッシュベースのキャッシュで変更されていないファイルの再レビューをスキップ、重大度のしきい値(severity >= "high"でのみブロック)、インラインコメント投稿(単一の概要コメントの代わり)、言語別のプロンプト変数、レビュー担当者のフィードバック取得でプロンプトを時間とともに改善します。
チームサイズ別ハードウェアサイジング
1つのRTX 4090(24 GB)は15~25開発者を快適に処理します。 単一GPUのボトルネックはレビューあたりのスループットではなく、PR追跡の競争です(月曜朝、スプリント終了)。以下のサイジング規則はq4_K_M量子化のQwen3-Coder 30Bと典型的な50~500行のPRdiffを前提としています。
| チームサイズ | GPU | VRAM | 同時レビュー | おおよその価格(2026年5月) |
|---|---|---|---|---|
| ~5人の開発者 | RTX 4070 / 4070 Ti | 12~16 GB | 1(Qwen3-Coder 7Bのみ) | ¥96,000~¥128,000 |
| 15~25人の開発者 | RTX 4090 / 5090 | 24~32 GB | 1~3(Qwen3-Coder 30B) | ¥320,000~¥450,000 |
| 25~50人の開発者 | L40S / A6000 Ada | 48 GB | 3~6 | ¥1,120,000~¥1,280,000 |
| 50~100人の開発者 | 2×RTX 4090 または 1×H100 | 48 GB / 80 GB | 6~10 | ¥640,000(2×4090) または ¥4,000,000+(H100) |
| 100人以上の開発者 | マルチGPU H100 または H200 | 160 GB以上 | vLLMで10+ | ¥8,000,000+ |
💡Tip: 50開発者のしきい値を超える場合、OllamaからvLLMに切り替えてください。Ollamaは使いやすさを優先します。vLLMは共有GPU上のスループットを優先します。同じQwen3-Coder 30Bモデルは両方で実行されます——推論サーバーのみが変わります。
ビルド全体でのGPU共有およびその他の負荷
コードレビュー用の専用GPUがシンプルなアーキテクチャですが唯一ではありません。 ML推論またはトレーニング用にGPUインフラを既に実行しているチームは共有できます——レビュー遅延が大幅に増加する代わり。
- コードレビューのみの専用GPU: シンプルなモデル。遅延は予測可能です。容量計画は簡単です。障害モードは分離されます。GPUインフラをまだ実行していないチームの推奨事項。
- ML推論との共有GPU: 推論負荷が安定した包含を持つ場合(例、小さな統合サービスが4~6GBに適応)実行可能です。レビューモデルが残りのVRAMを占有します。計画競争はこのパターンで稀です。
- ML トレーニングとの共有GPU: 強く非推奨です。トレーニングジョブはVRAM使用量を制限にスパイクさせ、レビューモデルを飢餓させ、30~120秒のレビュー遅延を引き起こし、開発者のシステムへの信頼を蝕みます。
- ページングされた注意によるvLLM: 高並行LLMサービス用に構築されました。同じRTX 4090は、Ollamaの下で1~3同時レビューを処理でき、vLLMの下で4~8を処理でき、より複雑な設定の代わり。25人の開発者以上で価値があります。
- H100上のマルチテナント: 100人以上の開発者でスケーリングしているとき、H100をMIGスライスに分割するか、テナント割り当てでvLLMを実行します。これはプラットフォームエンジニアリング領域です。即興しないでください。
GitHub Advanced Securityとのコスト比較
経済学はおおよそ15~25の有料シート付近でセルフホストに転換します。 これは1年のペイバック比較です。より長い地平線でセルフホストをより有利にしています。
- GitHub Advanced Security(Code Security): $19/開発者/月のカタログ価格(GitHubの価格ページで確認;エンタープライズ顧客はボリュームディスカウント利用可能)。
- クラウドLLM API(例OpenAI、Anthropic): 一般的な PR ボリュームでは約 $50~200 / 月あたり / 開発者でアクティブ。基本コード サイズとレビュー プロンプト設計に非常に大きく異なります。
- セルフホスト型ローカルLLM、RTX 4090ビルド: ¥320,000~¥360,000のハードウェア(GPU +基本サーバーボックス)1度のみ。電力使用量:~50W休止中、~350W負荷中——約¥2,500~¥3,500/月の操作電力消費。シートごとの費用はありません。
- 10人の開発者でのパリティ: GHAS $190/月対セルフホスト約¥2,500~¥3,500/月操作 +¥320,000~¥360,000 capex。Capexは約14ヶ月で支払います。
- 25人の開発者でのパリティ: GHAS $475/月対セルフホスト約¥2,500~¥3,500/月操作 +¥320,000~¥360,000 capex。Capexは約5~6か月で支払います。
- 50人の開発者でのパリティ: GHAS $950/月対セルフホスト約¥3,500~¥4,500/月操作 +¥1,120,000~¥1,280,000 capex(48 GB GPU)。Capexは約8ヶ月で支払います。
- Capex数字が数学を支配します。 GPUを具体的にこれのために購入する場合、払い戻しは実質的です。既存のGPU容量がある場合、限界コストはゼロに近く、セルフホストは即座に勝ちます。
📌Note: これらの数字はカタログ価格比較です。大規模企業向けの交渉されたGHAS料金はパリティを変えます。既存のGPU容量はそれを崩壊させます。材料購入にコミットする前に実際のコストで数学をやり直してください。
セキュリティモデルと監査体制
セキュリティ公約のタイトル——「ソースコードはネットワークから決してでない」——は真実であり、証明可能であり、このアーキテクチャで最も強い引数です。 監査サーフェスは調達検査で防御可能なほど小さいです。
- モデルはあなたのアクションが送信するdiffのみを見ます。 テレメトリなし、隠されたネットワーク呼び出しなし。確認可能な
tcpdumpまたはGPUサーバーのインターフェース発信上のnft monitor——安定操作状態での実行中、内部ホスト以外に向かって発信パケットゼロが見えるはずです。 - 完全な監査サーフェスは1つのプロセスと1つのログファイルです。
ollama serveはLLMスタック全体です。そのログ(リクエストボディ、遅延、モデルロードイベント)は監査記録です。SaaS ダッシュボード がない、シード保持ポリシー読む必要があります。 - ネットワーク分離はシンプルです。
ollama serveをプライベートインターフェースにバインドします。mTLSまたは共有シークレット認証を使用してリバースプロキシを前に置きます。GPUサーバーの名前空間からの発信を拒否し、CI実行ネットワークサブネット以外へ向かいます。標準ゼロトラスト パターン、LLM固有の魔法なし。 - モデルウェイトはベンダーが署名した静的成果物です。 Ollama経由で1度プルします、ダイジェストをピン、モデルは操作者アクションなしで変更できません。これはサイレント上流モデルスワップできるSaaS APIより強いサプライチェーン物語です。
- コンプライアンス体制: ゼロデータエグレスはSOC 2、ISO 27001、GDPR、およびEU AI法限定リスク分類簡単に文書化です。セルフホスト型コンプライアンス最も困難な部分は一般的に推論サーバー自身を文書化しています。OllamaとvLLMはよく文書化です。
- METI機関と日本のAI設置ガイドラインとの関連性: 日本の経済産業省(METI)がAI採用に対するガイドラインを発行しました。セルフホストAIは要件にはプッシュしてMETI準拠コンプライアンス——AIモデルに情報主権、テクノロジー監視力、異なる機関のモデルによるセキュリティ検証。Ollamaを実行してQwen3-Coder 30Bはこれらのすべての要件を満たします。
- モデルはあなたのコードを見えます。 セルフホスト型はモデルから秘密を意味しません——それは第三者からプライベートを意味します。内部脅威シナリオ(サーバーアクセス権のあるエンジニアがPR diffを含むログ履歴を読む)は依然スコープ内です。ログを回転させ相応にアクセスを制限します。
コードレビュー用プロンプト設計
偽陽性率の最大単一決定要因はシステムプロンプトです。 あいまいなプロンプト「このコードを検査」は漠然としたレビューコメントを生成します。特定のしきい値と構造化結果を持つプロンプト実行可能なレビューフィードバックを生成します。
- 構造化出力は交渉不可です。 厳密なスキーマ(
verdict、summary、comments[])を持つJSONを強制します。これなしでアクションはコード30%の自由形式出力を解析し、障害モードはサブトルです。 - Structured outputと JSON modelの応用の完全な信仰についてはStructured output and JSON modeを参照。
- 重大度しきい値はプロンプトに属し、アクション内ではありません。 モデルに
critical、high、medium、lowを定義し、明確に求められない限り低重大度結果をフィルタリングするよう告げます。自由形式の重大度フィールドの事後フィルタリングより大幅に信頼できます。 - 例でプロンプトをアンカーします。 実のdiffと理想レビュー JSONを持つ1~2-shotプロンプト同じモデル大きなdiffのゼロショット同じサイズを上回ります。
- 「レビュー」意図と「コメント」を区別します。 批評コメント(「これはヘルパーへの抽出を検討」)とブロッカー(「これはSQL インジェクション導入」)には異なるCI アクションが必要です。これらを構造化出力でタグ付けし、ブロッカーのみでアクションブロックにします。
- 言語別プロンプト変動体は一定以上のサイズで役立ちます。 ポリグロット コードベースは関連言語イディオムを参照するプロンプトから恩恵を受けます(Pythonic対Rust idiomatic)。これはおおよそ25開発者以下のオプション;上で価値がある。
- より深いプロンプトエンジニアリングアンカー——システムプロンプト対ユーザープロンプト、構造化結果、few-shot promptingについてはSystem Prompt vs User Prompt: What's the Differenceを参照。
偽陽性への対応開発者信頼を傷つけることなく
偽陽性はLLM コードレビューの運用税です。 5%のレートは受け入れられます。20%は耐え難いです。差のほとんどは主にプロンプト反復と反フィードバック ループでなく、モデルです。
- 「block」しきい値を高く設定します。 すべての小さなlintの問題の
block判決を引き起こすことは開発者をチェックを迂回するように訓練します。blockをセキュリティの問題、壊れたテスト、明確な正確性障害のために予約します。 - コメント非ブロッキングは安価にします。 モデルが不確実なインラインコメントを「tentative」/「consider」とタグ付けして、著者が迅速に儀式なしで却下できるようにします。
- 1か月目に反フィードバック ループを構築します。 各レビュー コメントに反応(👍 / 👎)を追加します。定期的に(週単位で機能)👎s を検査し、システムプロンプトを明示的な「X のレポートなし」の指示で更新してフォーム偽陽性のカテゴリーで最もコモン。
- PR あたりのコメント ボリュームをレート制限します。 1 つの PR は LLM から 5~10 以上のコメントを受け取ってはいけません。超えるとシグナル対ノイズ比が崩壊します。プロンプト レベルでアクション機能(「最大Nコメント戻す」)。
- 判決対マージ相関を週単位で追跡します。 80%の
block判決とにかくマージの場合、しきい値は非常に攻撃的です。0%のcomment判決が人間アクション取得場合、プロンプトはノイズを生成します。
2か月目の運用上の落とし穴
セットアップは注意を取得します。操作は無視されます。 以下の障害のいくつかはチーム蜜月期後プロジェクトを放棄するようにします。
- モデル更新はプロンプトを破ります。 新しいQwen3-Coder バージョン構造化出力フォーマットをわずかに変更;JSON解析はCI で破ります。レビューはポストを停止します。
ollama show <model> --modelfileでモデル ダイジェスト ピンします。新しいバージョンを段階的にプロモートする前にステージング環境にアップグレードします。 - 長期稼働下の GPU メモリ断片化。 GPU サーバー 24/7 実行はVRAM を断片化でき、数週後の新しい割り当てを拒否します。
ollama serve週単位 cron ジョブで再開。安く、この障害モード完全に避けます。 - CI ランナー競争。 セルフホスト型ランナーは LLM サーバーと他の CI ジョブ両方をホストすれば、ビルド負荷下でレビュー遅延はスパイクします。チームサイズが~25人超える時、ランナーと GPU サーバーを分離します。
- Diff サイズ漂流。 PR サイズ漂流上向き;最終的に PR 実用的なモデル コンテキスト超えで漂流で黙に低下します。大動作¥30K トークン上のdiffを分割または切り詰めるガード追加アクション;著者に警告します。
- 力と冷却。 継続的に負荷されたRTX 4090 は推論の下で約350W を取得し、かなり熱を生成します。インフラ アクティブなクーリングなくクローゼット サーバー ルーム GPU をスターベさせ;飢えコスト遅延と開発者は注意します。
- ログローテーション忘れ。 Ollama デフォルト ログ各リクエスト本体。3 ヶ月後の PR レビュー ファイル ログ古い履歴diffs明確テキストで含みます。週単位ログを回転; 保持ポリシーごとのアーカイブまたはパージ。
ローカルLLM コードレビュー設定時の一般的な間違い
- 間違い 1:16 GB GPU上で7Bモデルで開始。 Qwen3-Coder 7BレビューはQwen3-Coder 30B より非常に悪い。開発者は迅速に信頼失い、プロジェクトはシェルフ。30Bに適応できない場合、ガイド 6 ヶ月間 GPU を確保しながらクラウド API を使用。
- **間違い 2:初日から
block判決の PR をブロック。** 最初の月は調整です。操作者はアドバイザーとしてすべての出力を扱います昇格のみblock率がおおよそ 5% 未満になったら。 - **間違い 3:auth なしで 0.0.0.0:11434 で公開
ollama serve。** これは LLM era equivalent leave Redis 公開インターフェースバインド。プライベート インターフェースにバインド; before any cross-host。 - 間違い 4:cache を無視します。 回し無変更ファイル再レビュー PR あたりおおよそ 80%の推論予算を無駄にします。小さなファイル hash + diff hash キャッシュ(Redis または SQLite)レビュー遅延を劇的に削減し、GPU 負荷します。
- 間違い 5:同じ GPU に訓練ジョブを実行。 トレーニング はVRAM 使用量を制限にスパイク; レビュー モデルで餓死;30~120 秒レビュー遅延を引き起こし、開発者システム信頼を蝕みます。GPU を分離するか訓練を計画制御に実行 PR ピーク時の重複ありません。
- 間違い 6:フィードバック ループなしで構築 GitHub アクション。 フィードバック ロック反応 👍/👎 なしレビュー システムあれば改善できません。ロック週 1 を構築します。データを収集; 毎月プロンプトを反復します。
ソース
- Ollama Documentation — Official API HTTP reference for
/api/chat,/api/generate, structured output, and model management. - vLLM Documentation — High-throughput inference server documentation; the upgrade path beyond Ollama for high-concurrency teams.
- GitHub Actions Documentation — Official reference for self-hosted runners, secrets, and GitHub Actions JavaScript SDK used in the workflow above.
- GitHub Advanced Security Pricing — Catalog pricing reference for cost comparison; verify against your actual negotiated terms.
- Qwen3-Coder Model Card — Architecture, context window, and license terms for the recommended review model.
- GitLab CI/CD Reference — Equivalent reference for GitLab teams; the LLM-call portion of the workflow is identical.
FAQ
単一GPU サーバーは 50 開発者の CI を処理できますか?
1 つの 24 GB GPU(RTX 4090)は 15~25 開発者を快適に処理します。50 開発者は 48 GB カード(L40S、A6000 Ada)または Ollama から vLLM への変更が同じハードウェアに必要です。ボトルネック PR 追跡の競争の瞬間(月曜朝、スプリント終了)であり、状態の合計スループット ではありません。100 人以上の開発者の場合、マルチ GPU またはクラス H100 ハードウェアを計画します。
ローカル コード レビューは PR 遅延を影響しますか?
一般的にはいいえ——レビュー遅延は単一 24 GB GPU で典型的 200 行 diff で 10~30 秒、テスト スイートとビルド単位以上 OK、長く PR(約 30K トークン diff 以上で)超える。一般的に 60~90 秒を取得。これら数はアクション レベルでトランケート または断片化できます。
モデルの詳細は何ですか?
Ollama はデフォルト各リクエスト本体のログまたはシステム ジャーナル(systemd ベース OS で journalctl -u ollama)にあり。ログ ファイル。GPU サーバーのインターフェース 発信で tcpdump でゼロ外部をするに結合。完全な監査表面は 1 つのプロセスと 1 つのログ ファイルです——SaaS API レビュー コードより監査するために大幅にシンプル。
I can block PRs based on local model output?
はい。アクションはverdictフィールドを返します。判決はblockの場合、アクションは非ゼロで終了し、ブランチ保護ルールが要件を通過できるまで失敗; PR 統合はブロック。推奨は最初の月blockを無効にしておく(相談のみ)、偽陽性率を測定、約 5% のレート昇格のみそれが ブロック。
これはGitLab CI で機能しますか?
はい——アーキテクチャは同一です。GitHub アクション置き換え GitLab CI ジョブで Ollama エンドポイントへの同じcurlの実行、マージ リクエスト API 経由の響答バック。モデル、プロンプト、キャッシュ、セキュリティ モデル、ハードウェア サイジングはすべて同一です。Bitbucket Pipelines、Jenkins、Buildkite は同じ方法で機能。
パイプラインを破すことなしモデルを新しく保つ方法は?
ollama show <model> --modelfileでモデル ダイジェストをピンして CI 本番使用正確バージョン。モデルの新しいバージョン到着時、ステージング サーバープル、小さなテストdiff RP 表現スイート実行し、本番バージョンへの構造化出力を比較、リグレッション スイートのみパス後昇格。回帰テストの他の依存のようなモデル アップグレード扱います。
レビューに加えてコード生成のためにこれを使用できますか?
はい、しかし負荷が同じ GPU について競争し、異なる遅延特性があります。コードレビューは非同期で 30 秒応答を許容します。エディター相互作用のコード生成は 2 秒以下遅延が必要です。推奨パターン:エディター自動完成大きなモデル(Qwen3-Coder 7B)と小開発者の機械に予約し、セルフホスト GPU サーバーのクラス。
GPU サーバーのセキュリティ モデルは何ですか?
他内部サービスのように扱う:サーバーをプライベート インターフェースにバインド、前の認証(mTLS、shared-secret、またはVPN-のみアクセス)、既定の拒否されます、発信キー を制限して回転させます。LLM 固有の追加はモデル ウェイト提供チェーン監査——ダイジェスト ピン、ソース文書、周期的なパケット キャプチャでゼロ出力を確認。
複数のリポはGPU サーバーを共有できますか?
はい——GPU サーバーはただ HTTP エンドポイント。任意の番号のリポは本社にコールできます。10+ リポの大きい組織を含む場合、リモート発信のプロキシの前に速度制限/リポを追加して回避大型リポ(大型モノレポ、無効な pushes)の独りよがりが他をスターベ。
I handle false positives in CI?
3 層。最初に、プロンプト設計——高しきい値重大度、構造化出力に強制、残った結果タグ。第 2 にアクション レベルのフィルタ——ブロックseverity >= "high"のみ; コメント表示として中/低。第 3 に反フィードバック ロック——開発者は各コメントで反応(👍/👎)許可し、週単位では👎s を確認し、システム プロンプトを一般的なフォーム偽陽性のカテゴリーを抑制更新します。1 か月調整後 5-10% レート想定;5% 以下は継続的な反復で実現可能。