テキストを生成しない「決定モデル」Strands Decider 2Bが公開 - 判断1回が中央値115ミリ秒

テキストを生成しない「決定モデル」Strands Decider 2Bが公開 - 判断1回が中央値115ミリ秒

Strands Agentsのstrands-labsが2026年10月1日、テキスト生成能力を取り除いた19億パラメータの決定モデル「Strands Decider 2B」をApache 2.0で公開した。選択・yes/no・採点の3種類しか答えないかわりに、RTX 3090で1問あたり中央値115ミリ秒で返る。重みと学習データ・学習スクリプトも公開されている。

エージェント開発のオープンソース群Strands Agentsの実験枠であるstrands-labsが2026年10月1日、Strands Decider 2B を公開した。事前学習済みLLMから言語モデリングヘッドを取り外し、テキストを生成する能力ごと捨ててしまったモデルである1。できるのは3種類だけで、選択肢から1つ選ぶ(choice)、yes/noで答える(noul)、順序づけられた尺度で採点する(score)。そのかわり、NVIDIA RTX 3090で1問あたり中央値115ミリ秒、Apple siliconのM3 Proでも300トークン未満のタスクなら中央値153ミリ秒で返る2。

パラメータ数はリポジトリの記載で19億2。重みはHugging Face、コードと学習データ・学習スクリプトはGitHubで、いずれもApache License 2.0で公開されている。pip install strands-decider でCLIが入り、ローカルのCPUでもGPUでも動く1。

言語モデリングヘッドを外して何を得たのか

中身は、Qwen3.5-2B-Baseのtorso(本体部分)からLMヘッドを外し、約100万パラメータの pointer head に差し替えたものだ。pointer headは <answer> 位置の隠れ状態と、各選択肢の最終トークンの隠れ状態を突き合わせてスコアを付ける。1回のforward passで終わり、生成もデコードループもない。torso側はrank-16のLoRAアダプタで適応させている2。ファインチューニングで既存のモデルに役割を足すのではなく、出口そのものを作り替えた構成だと言える。

この設計には副作用がある。pointer headが選択肢ごとのパラメータを持たないため、「最初の選択肢が正解になりやすい」といった偏りを学習できず、1つの質問が持てる選択肢の数に上限がなく、ラベルの集合は重みに焼き込まれるのではなくリクエスト側で決まる。パラメータ数の小ささより、この「ラベルを呼び出し側が決められる」性質のほうが使い勝手に効く部分だろう。

もう一つの違いは信頼度スコアだ。strands-labsは、決定モデルが1つ1つの判断に信頼度を返す点を挙げ、これはフロンティアLLMの推論APIでは得られないとしている。リポジトリには、未知の短い分類タスクで信頼度0.9以上の回答は約95%が正しく、それを下回る場合は確認するか人に聞くべきだと書かれている2。しきい値で人間に回す線を引けるかどうかは、ガードレールの設計で扱いが変わるところである。

同じ入力について複数の質問を投げるのが安い点も設計上の帰結だ。入力は1回読まれ、質問は自分のぶんのトークンだけを足す。CLIでは --choice --noul --score を1コマンドに並べられる。

何に使うものとして出されているか

用途として挙がっているのは、エージェントの内部で起きる判断の置き換えである。モデルルーティングやツール選択、ガードレール、評価などが並ぶ。加えて、難しい判断はLLMに任せ、定型的な判断は決定モデルに渡してコストとレイテンシを下げる「ハイブリッドエージェント」という構成も示されている1。

エージェントの中の分岐をそのままLLMの呼び出しで作っている構成なら、置き換えの候補になる箇所がいくつもあるはずだ。モデルルーティングについては、Rampが自社のLLMルーターを外部提供したようにクラウド側のサービスとして出てくる動きもあったが、こちらは手元のGPUに19億パラメータを置く方向になる。クラウドAPIへの往復が消えるぶん、レイテンシと課金の両方に効く余地がある。

リポジトリには、Strandsエージェントの中で使う実例が examples/strands/ として同梱されている。before_tool_call のinterventionで天気ツールの呼び出しをゲートし、ユーザーが都市名を言っていないのにエージェントが勝手に推測してツールを呼ぶのを止める、というものだ。判定は2つのyes/no質問で、ツールの引数の値がユーザーが実際に述べた事実に根拠を持つか(args_grounded)、ユーザーに確認する前にこのツールを呼ぶのは早すぎるか(premature)を聞く。interventionの戻り値はProceed / Deny / Confirm / Guideの型付きアクションで、Confirmは人に聞いて止まり、Guideは呼び出しを塞がずにフィードバック付きでモデルに手番を返す1。この実例ではエージェントも決定モデルもローカルで動かし、既定のLLMにはAmazon Bedrockを使う。リポジトリ側もAmazonのオープンソース行動規範を採用している2。

ただしstrands-labsは、この例は推奨ではなく説明用であり、質問・しきい値・ポリシーはすべて手で選んだと明記している1。決定モデルを組み込むためのライブラリは作業中で、リポジトリの更新を見てほしいとしている。現時点では、自分で質問文としきい値を設計する部分が利用側に残る。

向かない用途と、ベンチマークの読み方

向かない用途は発表側がはっきり書いている。すべての出力を1回の並列パスで作る方式のため、複雑な問題を解く力は推論モデルより著しく劣り、テキストを生成できないのでコーディング・チャットボット・文書要約といった一般的なLLMの用途には向かない1。Hugging Faceのモデルカードは、長い多段の文書に弱いこと、較正(キャリブレーション)が短い分類タスクでのみフィットさせてあることを限界として挙げている3。

精度は第三者ベンチマークのJevBenchで測ったとしており、公開セット231タスクで正答率0.723(167問正解)、Brier scoreが0.342、expected calibration errorが0.0522。この数値は事前登録された3072トークンウィンドウでのもので、レシピが保存する4096トークンウィンドウではv19は168問になる。リポジトリ側の分割によるティア別ではeasyが1.000、standardが0.875、hardが0.505である。strands-labsは正答率と較正の評価について「2Bクラスの33モデル中3位、2Bを少し超えるモデルを除けば30モデル中1位」としている1。

数字の読み方についても注意書きがある。231タスクは少なく、v17のレシピを6回再学習したときの標準偏差は3.2タスクだったため、2つの単発ランの差が約10タスク未満なら未決着として扱うべきだとしている。実際、公開されている参照モデルはv19のままで、より新しいv20は4096トークンウィンドウで231問中169問(v19は168問)という結果にとどまり、再学習のノイズの範囲内だとして置き換えに至っていない2。

決定モデルそれ自体は、strands-labsがTypeSafe AIのJevの登場以降に注目が集まっているクラスだと説明しているもので、今回の公開はそこへの自分たちの寄与だという位置づけになっている。手元のGPUで再学習まで試せる規模にした理由も、実験を促すためだと書かれている。RTX 3090(24GiB)1台で約11時間、FAST=1 を付けたH100 8枚で1時間10分でレシピを回せるという2。ただし学習側はLinuxまたはWSL2のNVIDIA GPUホストが前提で、推論のようにMacで完結はしない。

Sources

  1. Introducing Strands Decider 2B: a small, open source, decision model - Strands Agents公式ブログ(2026年10月1日)
  2. strands-labs/strands-decider - 公式リポジトリ(README・ライセンス・評価結果)
  3. StrandsAgents/strands-decider-2B-hobson-v19 - Hugging Faceのモデルカード

最新のAIニュースをほぼ毎日更新しています。

RSSで購読する 更新をいち早くチェックできます。

他のキーワードで探す →