なぜ今ローカルLLMなのか
クラウドAPIのコストが下がったとはいえ、月間100万リクエストを超える規模になると話は変わる。GPT-4oで月額$50,000、Claude 3.5 Sonnetで$35,000。これがローカル推論なら、RTX 4090を4枚積んだサーバー1台(初期投資約200万円)で同等のスループットを6ヶ月で回収できる。さらにデータが外部に出ないため、金融・医療系クライアントのコンプライアンス要件をクリアしやすい。
Hermes 3: なぜこのモデルなのか
Nous ResearchのHermes 3はLlama 3.1ベースの70Bモデルで、function calling性能がオープンモデルの中で突出している。Berkeley Function Calling Leaderboard(BFCL)でGPT-4に次ぐスコアを記録し、tool-useを多用するエージェントシステムとの親和性が極めて高い。
特筆すべきはsystem promptの遵守率だ。多くのオープンモデルはsystem promptを無視する傾向があるが、Hermes 3はNous独自のアライメント手法により、system promptに記述したペルソナや制約を安定的に維持する。KGAの計測では、100ターンの会話でもsystem prompt遵守率が94%を維持した(Llama 3.1 70B vanillaでは67%まで低下)。
Ollamaでのクイックデプロイ
最も手軽なのはOllamaだ。ollama pull hermes3:70b-q4_K_Mで量子化済みモデルをダウンロードし、すぐに推論を開始できる。q4_K_Mは4bit量子化の中で品質と速度のバランスが最良で、70Bモデルが48GB VRAM(RTX 4090 2枚、またはA6000 1枚)で動作する。
Ollamaの制約はバッチ推論に弱い点だ。同時リクエストをさばく機能はあるが、内部的にはシーケンシャル処理に近く、高スループットが必要な場面では力不足。開発・テスト環境、または小規模プロダクション(1秒あたり2-3リクエスト程度)には最適だが、それ以上はvLLMを検討すべきだ。
vLLMでの本番グレード推論
vLLMはPagedAttentionにより、KVキャッシュのメモリ管理を仮想メモリのように効率化する。これにより同一GPU上でのバッチサイズを大幅に拡大でき、Ollamaと比較して3-5倍のスループットが出る。
python -m vllm.entrypoints.openai.api_server --model NousResearch/Hermes-3-Llama-3.1-70B --tensor-parallel-size 4 --gpu-memory-utilization 0.9 --max-model-len 8192
tensor-parallel-size 4でGPU 4枚に分散し、gpu-memory-utilization 0.9でVRAMの90%を使用する設定だ。max-model-lenはコンテキスト長で、8192が速度と実用性のスイートスポット。32Kまで伸ばせるが、スループットは半減する。
KGAの本番環境ではA100 80GB x4構成で、Hermes 3 70Bをtensor parallelismで分散推論している。平均レイテンシは1,200トークンの応答で2.3秒、スループットは秒間15リクエストを安定して処理できている。
GGUF量子化の実践
llama.cppのGGUFフォーマットは、量子化の粒度をレイヤー単位で制御できる。attention層は精度が重要なのでQ6_K、FFN層はQ4_K_Mという混合量子化が有効だ。
実測値として、Hermes 3 70Bの各量子化レベルでの品質(MMLU)とVRAM使用量を示す。FP16: MMLU 82.1%, 140GB。Q8_0: 81.8%, 70GB。Q6_K: 81.3%, 54GB。Q5_K_M: 80.6%, 48GB。Q4_K_M: 79.2%, 40GB。Q3_K_M: 75.1%, 30GB。
Q4_K_MまではMMLUの低下が3ポイント以内で実用上問題ない。Q3_K_Mになると目に見えて品質が落ち、特にコード生成と数学的推論で顕著にエラーが増加する。コストと品質のバランスではQ4_K_Mが最適解だ。
クラウドAPI vs ローカル推論のコスト分析
月間50万リクエスト(平均入力500トークン、出力1000トークン)の場合で比較する。GPT-4o: 約$25,000/月。Claude 3.5 Sonnet: 約$18,000/月。Hermes 3 on vLLM (A100x4): 約$4,800/月(クラウドGPUレンタル)。Hermes 3 on vLLM (自社GPU): 約$1,200/月(電気代+減価償却)。
自社GPUの場合、初期投資の回収期間は約4ヶ月だ。ただしGPU障害時の冗長性確保、モデル更新時のダウンタイム、MLOpsチームの人件費も考慮する必要がある。KGAではA100サーバー2台でactive-standby構成を組み、ゼロダウンタイムでのモデル切り替えを実現している。
Fine-tuningの実践的アプローチ
Hermes 3の汎用性能は十分高いが、特定ドメインでの精度を上げるならLoRA fine-tuningが効果的だ。full fine-tuningは70Bモデルでは非現実的(A100 8枚で3日以上)なので、LoRA rank 64、alpha 128での4bit QLoRAが現実解。
KGAではクライアントのカスタマーサポートデータ5,000件でQLoRAを実施し、ドメイン固有の質問応答精度を68%から91%に改善した。学習時間はA100 1枚で約8時間、コストは$100以下。この費用対効果の高さがローカルLLMの真の強みだ。