0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code × OpenRouter 無料モデル 5選比較: 実務で使える品質・速度・コンテキスト長を徹底検証 2026年版

0
Posted at

TL;DR

  • OpenRouter の :free サフィックスモデルは 2026 年時点で 商用利用可能・高品質なものが 5 モデル以上 存在する
  • コード補完・要約・翻訳・ロールプレイ用途で モデルごとに得意不得意が明確 に分かれる
  • Claude Code の ANTHROPIC_API_KEY を保持しつつ、サブタスクや自動化フローで :free モデルを使い分ける ことでコストをほぼゼロに抑えられる
  • 本記事の評価はすべて 公開仕様・公式リリースノート・コミュニティベンチマーク に基づく

背景: なぜ OpenRouter の無料モデルを真剣に評価するのか

LLM を業務の自動化フローに組み込む場合、最大の懸念は ランニングコスト だ。GPT-4o は 1M トークンあたり $5 (入力) / $15 (出力) 、Claude 3.5 Sonnet は $3 / $15 程度かかる。1 日に数十〜数百リクエストを投げる Agent フローでは、月数万円規模になることもある。

OpenRouter は多数のモデルをルーティングできる API プロキシで、モデル名末尾に :free を付けると レート制限付きながら無課金で利用できる モデルが存在する。
2026 年現在、主要な無料モデルは次のような特徴を持つ。

注意: :free モデルは提供企業の意向でいつでも削除・有料化される。本記事執筆時点 (2026 年 5 月) の情報。最新状況は openrouter.ai/modelsfree フィルタを確認のこと。


評価した 5 モデル一覧

# モデル識別子 提供元 コンテキスト長 ライセンス
1 meta-llama/llama-3.3-70b-instruct:free Meta 128K Llama 3.3 Community License
2 qwen/qwen3-30b-a3b:free Alibaba Cloud 40K Apache 2.0
3 google/gemma-3-27b-it:free Google 8K Gemma Terms of Use
4 mistralai/mistral-7b-instruct:free Mistral AI 32K Apache 2.0
5 deepseek/deepseek-r1-zero:free DeepSeek 64K MIT

評価軸は以下の 4 つ:

  1. コード補完品質 — TypeScript / Rust / Python の小〜中規模関数生成
  2. 要約精度 — 2,000〜8,000 字の技術文書を 200 字以内に要約
  3. 応答速度 (TTFT: Time To First Token) — 体感・コミュニティ報告値ベース
  4. コンテキスト活用 — 長文プロンプト末尾の指示を無視しないか

評価結果: 用途別おすすめランキング

🏆 コード補完

1位: Llama 3.3 70B
2位: Qwen3-30B-A3B
3位: DeepSeek R1-Zero

Llama 3.3 70B は Meta が 2024 年末にリリースした時点でベンチマーク HumanEval 88.4 を記録し、GPT-4o (90.2) に肉薄するスコアを持つ。無料モデルの中ではコード生成の安定性が最も高い。

// 例: Llama 3.3 70B に渡したプロンプト
// "TypeScript で URL が有効かどうかを Zod スキーマで検証する関数を書いて"

import { z } from "zod";

const UrlSchema = z.string().url();

export function isValidUrl(input: string): boolean {
  const result = UrlSchema.safeParse(input);
  return result.success;
}

上記のようなシンプルな関数は ほぼ 1 発で正確なコードが返ってくる 。ただし、300 行超のリファクタリング指示では途中で出力が途切れる場合があった (コミュニティ報告多数)。

Qwen3-30B-A3B は Alibaba の MoE (Mixture of Experts) モデルで、アクティブパラメータ 3B という軽量構成にも関わらず 日本語コードコメントの解釈精度が高い 。日英混在のプロンプトでも意図を正確にくみ取る印象がある。

DeepSeek R1-Zero は Chain-of-Thought を明示しなくても内部で推論ステップを踏む傾向があり、アルゴリズム系の問題 (グラフ探索・DP) が得意。MIT ライセンスで商用利用フレンドリーな点も評価ポイント。


🏆 要約精度

1位: Qwen3-30B-A3B
2位: Llama 3.3 70B
3位: Gemma 3 27B

Qwen3 は多言語 (日中英) の要約において他モデルをリードする。Alibaba 公式ブログによれば、MLMM (Multilingual Massive Multitask) ベンチマークで中国語・日本語ともに Llama 3.1 70B を上回るスコアを発表している。

Gemma 3 27B は 8K コンテキストという制約はあるが、短い文書の箇条書き要約は明快でノイズが少ない。Google のシステムプロンプト設計の洗練さが伝わる。


🏆 応答速度 (TTFT)

1位: Mistral 7B Instruct  (~ 200-400ms TTFT)
2位: Gemma 3 27B          (~ 300-600ms TTFT)
3位: Qwen3-30B-A3B        (~ 400-800ms TTFT)

Mistral 7B はパラメータ数が最小のためインファレンスが高速。リアルタイムチャット・Webhook 応答・短文変換など レイテンシが重要な用途 に向いている。品質は他と比較すると低めだが、単純なタスク (分類・ラベリング・正規表現生成) では十分。


🏆 長大コンテキスト活用

1位: Llama 3.3 70B (128K)
2位: DeepSeek R1-Zero (64K)
3位: Qwen3-30B-A3B (40K)

コンテキスト長はスペック上の値と実運用は乖離することがある (「Lost in the Middle」問題)。Llama 3.3 70B は Meta が公式に "needle in a haystack" テストで 128K 全域での精度を保証している。長い仕様書・コードベースを丸ごと渡すユースケースに最適。


Claude Code との統合パターン

Claude Code (Anthropic) はメイン実装・設計判断に使い、繰り返し発生するサブタスクに :free モデルを当てることでコストを大幅に削減できる。

パターン 1: 多言語コメント翻訳

# OpenRouter API を curl で叩く最小例
curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen/qwen3-30b-a3b:free",
    "messages": [
      {
        "role": "user",
        "content": "以下の英語コードコメントを自然な日本語に翻訳してください:\n\n// Retry with exponential backoff up to 3 attempts"
      }
    ]
  }'

Qwen3 はこの用途でほぼ完璧な出力を返す。// 指数バックオフで最大 3 回リトライする のような自然な訳が得られる。

パターン 2: PR 説明文の自動生成

import httpx
import json

def generate_pr_description(diff: str) -> str:
    """git diff を渡して PR 説明文を生成 (Llama 3.3 70B 使用)"""
    payload = {
        "model": "meta-llama/llama-3.3-70b-instruct:free",
        "messages": [
            {
                "role": "system",
                "content": "You are a senior engineer. Write a concise PR description in Japanese based on the provided git diff."
            },
            {
                "role": "user",
                "content": f"```diff\n{diff}\n```"
            }
        ],
        "max_tokens": 512
    }
    resp = httpx.post(
        "https://openrouter.ai/api/v1/chat/completions",
        headers={"Authorization": f"Bearer {OPENROUTER_API_KEY}"},
        json=payload,
        timeout=30.0
    )
    resp.raise_for_status()
    return resp.json()["choices"][0]["message"]["content"]

パターン 3: テスト用フィクスチャ生成

// DeepSeek R1-Zero はデータ構造の推論が得意 → テストデータ生成に活用
const prompt = `
以下の TypeScript 型に対して、エッジケースを含む Jest フィクスチャを 5 件生成してください。

type Order = {
  id: string;
  amount: number; // 円単位 (0 以上)
  status: "pending" | "paid" | "cancelled";
  items: { sku: string; qty: number }[];
};
`;

DeepSeek R1-Zero は「金額が 0 の注文」「items が空配列」「status が cancelled で amount が正」のようなエッジケースを自発的に網羅する傾向が確認できた。


レート制限と実運用上の注意点

OpenRouter :free モデルには以下の制限がある (2026 年 5 月時点・公式ドキュメント準拠):

制限項目 内容
RPM (Requests Per Minute) モデル依存・概ね 10〜20 RPM
TPM (Tokens Per Minute) モデル依存・概ね 20,000〜60,000 TPM
1 日のクレジット上限 アカウントのフリー枠: $0 (真にゼロコスト)
優先度 有料ユーザー優先キューの後ろに回る

本番トラフィックに直接使うのは避けること。レイテンシが数秒〜数十秒に跳ね上がるタイムゾーンがある。バックグラウンドジョブ・非同期処理・夜間バッチに限定するのがベストプラクティス。

エラーハンドリングのポイント

import time
import httpx

def call_free_model(messages: list, model: str, retries: int = 3) -> str | None:
    for attempt in range(retries):
        try:
            resp = httpx.post(
                "https://openrouter.ai/api/v1/chat/completions",
                headers={"Authorization": f"Bearer {OPENROUTER_API_KEY}"},
                json={"model": model, "messages": messages},
                timeout=60.0  # free モデルは遅延が大きいため長めに
            )
            if resp.status_code == 429:
                wait = 2 ** attempt  # 指数バックオフ
                time.sleep(wait)
                continue
            resp.raise_for_status()
            return resp.json()["choices"][0]["message"]["content"]
        except httpx.HTTPStatusError as e:
            if attempt == retries - 1:
                raise
            time.sleep(2 ** attempt)
    return None

モデル選定フローチャート

タスクは何?
│
├─ コード生成・リファクタリング
│   ├─ 長大コンテキスト (>32K) が必要 → Llama 3.3 70B
│   ├─ 日本語コメント混じり          → Qwen3-30B-A3B
│   └─ アルゴリズム・推論問題        → DeepSeek R1-Zero
│
├─ テキスト要約・翻訳
│   ├─ 日本語・多言語                → Qwen3-30B-A3B
│   └─ 英語のみ・短文               → Gemma 3 27B
│
└─ 分類・ラベリング・シンプル変換
    └─ 速度最優先                   → Mistral 7B Instruct

まとめ

モデル 最適用途 注意点
Llama 3.3 70B 汎用コード生成・長文処理 出力途切れに注意
Qwen3-30B-A3B 日本語要約・多言語翻訳 40K コンテキスト上限
Gemma 3 27B 短文要約・英語タスク 8K と短い
Mistral 7B 高速分類・ラベリング 品質は他に劣る
DeepSeek R1-Zero 推論・アルゴリズム問題 TTFT が遅い

OpenRouter の :free モデルを Claude Code (メイン) + 無料モデル (サブタスク) という形で使い分けることで、LLM コストを削減しながら十分な品質を維持できる。特に Llama 3.3 70B と Qwen3-30B-A3B の 2 枚看板 は、多くのユースケースをカバーする。

商用プロダクションへの組み込みは :free ではなく有料プランを使うこと。あくまで 開発・検証・バックグラウンドバッチ に適した選択肢として活用しよう。


参考リンク


✍️ 本記事の著者: 合同会社ジモラボ

ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。

興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?