powered by TechFeed
表示モード
ハウツー

Amazon BedrockでGrok 4.7の「推論努力レベル」を変えると何が変わるか — 18タスク×4レベルの実験で見えたコストと精度のトレードオフ

10月14日、AWSが「Build long-horizon agents with Grok 4.7 on Amazon Bedrock」と題した記事を公開した。推論努力レベルをxhighに設定したGrok 4.7は18タスク全問正解を達成した一方、low設定では出力トークン数が約1/8に抑えられ処理時間も中央値18秒と大幅に短縮される——同記事はこの精度とコストのトレードオフを、long-horizonエージェントの構築手順とともに詳しく紹介している。「long-horizon」タスクとは何か記事のタイトルにも登場するlong-horizonとは、単一のプロンプトへの一発回答ではなく、「情報収集→仮説生成→検証→再探索」というサイクルを何度も繰り返す、複数ステップにわたる自律的な作業を指す。ツール呼び出しを何十回も行い、途中で戦略を修正しながら最終的な答えに辿り着く、従来のチャット型AIとは根本的に異なるユースケースだ。コーディングエージェント、法務調査、インフラ診断といった「数分〜数時間かかる現実の作業」がその代表例である。「推論努力レベル」が選べるモデルxAI(イーロン・マスク...

10月14日、AWSが「Build long-horizon agents with Grok 4.7 on Amazon Bedrock」と題した記事を公開した。推論努力レベルをxhighに設定したGrok 4.7は18タスク全問正解を達成した一方、low設定では出力トークン数が約1/8に抑えられ処理時間も中央値18秒と大幅に短縮される——同記事はこの精度とコストのトレードオフを、long-horizonエージェントの構築手順とともに詳しく紹介している。

「long-horizon」タスクとは何か

記事のタイトルにも登場するlong-horizonとは、単一のプロンプトへの一発回答ではなく、「情報収集→仮説生成→検証→再探索」というサイクルを何度も繰り返す、複数ステップにわたる自律的な作業を指す。ツール呼び出しを何十回も行い、途中で戦略を修正しながら最終的な答えに辿り着く、従来のチャット型AIとは根本的に異なるユースケースだ。コーディングエージェント、法務調査、インフラ診断といった「数分〜数時間かかる現実の作業」がその代表例である。

「推論努力レベル」が選べるモデル

xAI(イーロン・マスク率いるAI企業)が開発したGrok 4.7が、Amazon Bedrockで利用可能になった。前バージョンのGrok 4.6よりも大きいベースモデルを使用し、強化学習の訓練データも「数時間かかる難タスク」に重み付けされているとxAIは説明している。なお本記事で扱うモデルIDはgrok-4.7であり、元記事URLおよびAPI上の型番表記はいずれもこのバージョンを指している。

Grok 4.7の特徴的な機能がreasoning effort(推論努力)設定だ。low・medium・high・xhighの4段階で、レスポンス前にどれだけ熟慮させるかを制御できる。エージェントワークロードでは、この設定が精度とコストのトレードオフを直接左右する。

xAIが公開しているベンチマーク結果は以下の通り:

ベンチマーク カテゴリ Grok 4.6 Grok 4.7
Terminal-Bench 4.0 複数時間のターミナル作業 20.3% 37.6%
EEBench 電気工学 53.0% 64.0%
Harvey Legal Agent Benchmark 法務作業 15.8% 19.6%
CursorBench 4.0 長時間コーディング 40.4% 46.3%
HealthBench Professional 臨床推論 48.5% 56.7%

いずれも「単発の回答」より「持続的な作業」を測るカテゴリで大きく改善している。

18タスク×4レベル、72回の実験で見えたトレードオフ

記事の核心は、実際にエージェントを動かした評価結果だ。3種類のタスク×6試行×4レベル=72回のエージェント実行を行い、各設定の正答率・出力トークン数・処理時間を計測している。

タスク設計

単純な検索・集計ではなく、「提案して検証する」探索が必要なタスクを3種類用意している:

  • two_fault_diagnosis:20サービスのうち、アラートを出さずに無音で落ちた2サービスを特定(候補ペアは190通り)
  • maintenance_schedule:8サービスを4夜に分けてパッチ適用、10個の制約+チームルール付きのスケジューリング問題
  • migration_budget:依存関係(前提条件の連鎖)を考慮しつつ予算内でリスク低減を最大化するマイグレーション候補を選択

いずれも「正解が一意に定まる」タスクで、総当たり検証済み。ヒューリスティックな近似解では正解に辿り着けない設計になっている。

結果

タスク low medium high xhigh
two_fault_diagnosis 5/6 6/6 6/6 6/6
maintenance_schedule 5/6 5/6 5/6 6/6
migration_budget 5/6 6/6 6/6 6/6
合計 15/18 17/18 17/18 18/18
指標 low medium high xhigh
平均出力トークン数 1,184 6,430 6,778 9,147
lowとの比較 1.0x 5.4x 5.7x 7.7x
平均ツール呼び出し回数 17.2 18.7 17.8 18.1
中央値の経過時間 18秒 98秒 89秒 106秒

3つの重要な観察

① xhighは全問正解。18回すべてで正解。medium・highは17/18で、差は1問にとどまった。

② 努力レベルが変えるのは「探索量」ではなく「推論量」。ツール呼び出し回数はどの段階でもほぼ横ばい(17.2〜18.1回)。同じデータを集めた上で、その解釈にかける推論が増える。出力トークン数だけがlowからxhighで約7.7倍に膨らむ。

③ lowはコスト効率が高い。正答率は83%(15/18)だが、出力トークン量はxhighの約1/8、処理時間は中央値18秒。下流でのレビューが入るユースケースや、完璧な精度が必須でない場面ではlowが現実的な選択肢になる。

接続方法とポイント

Amazon Bedrockでは2つのクロスリージョン推論プロファイルが利用可能だ:

  • **us.xai.grok-4.7**:US地理的範囲内でルーティング(データレジデンシー要件がある場合)
  • **global.xai.grok-4.7**:商用AWSリージョン全体(容量を最大化したい場合)

認証はIAM認証情報から短期トークンを生成するOpenAI互換クライアント経由が推奨されている。以下のコードで基本的なクライアントを構成できる:

from aws_bedrock_token_generator import provide_token
from openai import OpenAI

REGION = "us-west-2"
MODEL_ID = "us.xai.grok-4.7"

client = OpenAI(
    api_key=provide_token(region=REGION),
    base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
    timeout=360,
    max_retries=0,
)

reasoning effortのレベルはモデルバージョンによって変わり得るため、ハードコードせず動的に確認することが推奨されている。以下のようにunsupported_valueエラーを捕捉してサポート済みレベルの一覧を取得できる(実行結果は['low', 'medium', 'high', 'xhigh']):

def supported_effort_levels(candidates=("none", "low", "medium", "high", "xhigh", "max")):
    supported = []
    for level in candidates:
        try:
            client.responses.create(model=MODEL_ID, input="Say OK.",
                reasoning={"effort": level}, max_output_tokens=2048)
            supported.append(level)
        except Exception as exc:
            if "unsupported_value" not in str(exc) and "invalid_value" not in str(exc):
                raise
    return supported

実装上の注意点として、reasoning(推論)トークンも出力トークンとしてカウントされ、max_completion_tokensを消費する点が挙げられる。上限に達すると回答テキストなしで返ってくるため、エージェントコードで空コンテンツの検出処理を入れておく必要がある。記事では上限を32,768トークンに設定している。コンテキストウィンドウは50万トークンで、テキスト・画像を入力として受け付ける。Amazon Bedrock Converse APIではreasoning結果がreasoningContentブロックとして返される。

詳細はBuild long-horizon agents with Grok 4.7 on Amazon Bedrockを参照していただきたい。