0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

連載:AIに仕事を奪われる不安から始めるハーネス作成入門 第11回 ローカルLLMを使うべき場面と外部LLMに任せる場面

0
Posted at

連載:AIに仕事を奪われる不安から始めるハーネス作成入門
第11回 / 全24回(週2回・12週間)


ローカルLLMを使うべき場面と外部LLMに任せる場面

AIハーネスを作り始めると、すぐに突き当たるのが「どのLLMを使うか」という選択です。OpenAIやClaudeのAPI、それともOllamaでローカルに動かすか——「全部APIでいいのでは?」「ローカルは難しそう」と迷う方は多いでしょう。

実は、どちらか一方に統一する必要はありません。大切なのは「このタスクにはこちら」と判断できる基準を持つことです。今回は、コスト・レイテンシ・プライバシー・精度の4軸で判断基準表を提示します。


📖 連載目次

タイトル 状態
1〜4 基礎編(不安の言語化〜ハーネスの概念)
5〜9 実践編(プロンプト設計〜MCP連携)
10 設計メモをKnowledge MCPへ登録する前提のMarkdownテンプレート
11 ローカルLLMを使うべき場面と外部LLMに任せる場面 📖
12 モデルルーターの疑似コードでLLM切替を設計する
13〜24 運用設計・テスト・発展編

1. なぜモデル選択が重要なのか

AIハーネスの性能とコストは、選ぶLLMに大きく左右されます。高精度なモデルを全タスクに使えば安心ですが、APIコストがかさんだり、機密データを外部に送るリスクが生まれたりします。「とりあえず全部GPT-4」ではなく、タスクに応じた使い分けが、実用的なハーネスへの第一歩です。

2. ローカルLLMの特徴

Ollamaやllama.cppで動かすローカルLLMの特徴を整理します。

メリット

  • データが外部に出ない(プライバシー確保)
  • API料金がかからない(電気代のみ)
  • オフラインで動作可能
  • レイテンシが低い(ネットワーク往復なし)

デメリット

  • 高性能GPUが必要(VRAM 8GB以上推奨)
  • 最新モデルより精度が劣る場合がある
  • モデルの更新・管理が自分の仕事
  • コンテキストウィンドウが小さい傾向

3. 外部LLM(API)の特徴

OpenAI、Anthropic、GoogleなどのAPIサービスの特徴です。

メリット

  • 最高水準の精度(GPT-4o, Claude 3.5等)
  • GPU不要、すぐ始められる
  • モデルの更新が自動
  • 大きなコンテキストウィンドウ

デメリット

  • 従量課金(大量処理で高額に)
  • データを外部に送信する必要
  • ネットワーク障害時に停止
  • レートリミットあり

4. 判断基準表:4つの軸で比較

以下の表を、自分のプロジェクトに当てはめて判断してください。

判断軸 ローカルLLM向き 外部LLM向き
コスト 大量処理・定常実行 少量・スポット利用
レイテンシ リアルタイム応答が必要 数秒の遅延が許容範囲
プライバシー 機密データを扱う 公開情報のみ扱う
精度 単純なタスク(分類・抽出) 複雑な推論・生成

使い方のコツ: 各軸で“どちら寄りか”を判定し、3つ以上が同じ側に寄ればそちらを選ぶ、というシンプルなルールから始めるのがおすすめです。

5. 具体的なユースケース

判断基準表を実際のタスクに当てはめてみましょう。

タスク 推奨 理由
ログの要約 ローカル 大量・定常実行、社内データ含む
コードレビュー 外部 高い推論能力が必要
メール下書き 外部 自然な文章生成に強い
ドキュメント分類 ローカル 単純なタスク、機密文書含む
プロンプトのテスト ローカル 繰り返し実行でコストがかさむ
複雑な分析レポート 外部 大きなコンテキストと推論が必要

もちろん、これは絶対的な正解ではありません。プロジェクトの状況や予算、チームのポリシーによって判断は変わります。

6. ハイブリッド運用という選択肢

実際のハーネスでは、ローカルと外部を併用するハイブリッド構成が現実的です。

タスク受付
  └─ タスク種別を判定
       ├─ 単純タスク → ローカルLLM(Ollama)
       ├─ 複雑タスク → 外部LLM(API)
       └─ ローカル失敗時 → 外部LLMにフォールバック

この「フォールバック」がポイントです。ローカルLLMで失敗した場合に外部APIへ自動的に切り替える仕組みを入れておくと、信頼性が大幅に上がります。

7. コスト見積もりの考え方

外部LLMのコストを見積もる際の簡易計算式です。

# コスト見積りの簡易計算
def estimate_monthly_cost(
    calls_per_day: int,
    avg_input_tokens: int,
    avg_output_tokens: int,
    input_price_per_1k: float = 0.005,   # USD
    output_price_per_1k: float = 0.015,  # USD
) -> dict:
    """月間APIコストの概算を返す"""
    monthly_calls = calls_per_day * 30
    input_cost = (avg_input_tokens / 1000) * input_price_per_1k * monthly_calls
    output_cost = (avg_output_tokens / 1000) * output_price_per_1k * monthly_calls
    total = input_cost + output_cost
    return {
        "monthly_calls": monthly_calls,
        "input_cost_usd": round(input_cost, 2),
        "output_cost_usd": round(output_cost, 2),
        "total_usd": round(total, 2),
    }

# 例: 1日50回、入力500トークン、出力200トークン
print(estimate_monthly_cost(50, 500, 200))
# => {'monthly_calls': 1500, 'input_cost_usd': 3.75, 'output_cost_usd': 4.5, 'total_usd': 8.25}

「月額この程度なら全部APIでいい」「これ以上ならローカルに移す」という判断の目安になります。

8. 始めるならどちらから?

迷ったら、以下のステップをおすすめします。

  1. まず外部APIで動くものを作る(始めやすさ優先)
  2. コストやプライバシーが課題になったらローカルを検討
  3. タスクごとに切り替える仕組み(モデルルーター)を設計

「最初から完璧な構成を」と考える必要はありません。動くものを作ってから最適化する、というアプローチの方が、学びも深くなります。

9. 判断を設計メモに残す

前回のテンプレートを使って、モデル選択の判断も記録しておきましょう。

---
title: "メインLLMの選定: Ollama + llama3.1 vs OpenAI API"
category: "model"
status: "approved"
created: "2025-06-05"
tags:
  - モデル選択
  - コスト最適化
---

## 背景・動機
プロンプトテストの繰り返し実行でAPIコストが月$30を超えた。
テスト用タスクをローカルに移行することを検討。

「なぜローカルに切り替えたのか」を後から検索できる状態にしておくことが、チーム開発でも個人開発でも役立ちます。

10. よくある誤解と注意点

  • 「ローカルは難しい」→ Ollamaならコマンド一発で起動できます。設定の難易度は以前より大幅に下がっています
  • 「APIはセキュリティが心配」→ 各プロバイダーのData Processing Addendumを確認しましょう。用途によっては問題ない場合もあります
  • 「コストは小さいからAPIで充分」→ スケールしたときの見積もりを先に行っておくと安心です

11. まとめ

今回のポイントを整理します。

  • ローカルLLMと外部LLMは「どちらが正解」ではなく、タスクに応じて使い分ける
  • コスト・レイテンシ・プライバシー・精度の4軸判断基準表で判断する
  • ハイブリッド構成(ローカル + 外部フォールバック)が現実的
  • まず外部APIで動くものを作り、必要に応じてローカルに移行
  • 判断の経緯は設計メモに記録しておく

🔜 次回予告

第12回:モデルルーターの疑似コードでLLM切替を設計する

今回の判断基準表を、実際のコードで実現してみましょう。Pythonの疑似コードで「モデルルーター」を設計します。タスク種別に応じてローカルLLMとAPI LLMを自動的に切り替える仕組みを、コードを読みながら一緒に理解していきます。

「ルーティング条件をどう定義するか」「フォールバックをどう実装するか」——実装の勘所を具体的に解説します。


連載:AIに仕事を奪われる不安から始めるハーネス作成入門
著者: @singula00991| 週2回更新
次回は「ハーネス用のディレクトリ構成とREADMEを作る」を予定しています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?