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?

Strands Decider 2B vs Jevをファイル整理で2ラウンド対決させてみた

0
Posted at

はじめに

2026年10月1日、AWSのStrands Labsが Strands Decider 2Bを公開しました。
文章を書かず、用意した選択肢から1つ選んで確率を返すモデルです。

同じ種類のモデルには、TypeSafe AIが2026年9月15日に発表したJevがあります。

Strands Decider 2Bのサーバーは、Jevと同じ /v1/systemone という形式でリクエストを受け付けます。
リポジトリにも、Jev向けのベンチマークがそのまま2Bに対して動くと書かれています。
つまり、同じ質問と判断材料をそのまま両方に投げられます。

そこで、ローカルで動く2BとAPIで呼ぶJevを同じ仕事で対決させることにしました。
仕事は「散らかったフォルダの片付け」です。
判断させて終わりではなく、各モデルが選んだフォルダへ実際にファイルを移動させます。
間違えたら、ファイルは本当に間違った場所へ行きます。

この記事で確かめたいのは次の2点です。

  • 手元のMacで動く2Bは、APIのJevとどこまで張り合えるか
  • 差が出るとしたら、どんなファイルで出るか

選手紹介

Strands Decider 2B Jev
提供元 AWS(Strands Agents) TypeSafe AI
動く場所 自分のマシン(今回はApple M1・メモリ16GBのMac) TypeSafe AIのAPI
中身 Qwen3.5-2B-Baseから文章を書く部品を外し、選択肢を指す部品(ポインターヘッド)を付けたもの。約19億パラメータ 今回は確認していない
ライセンス・料金 Apache-2.0。ローカルなので呼び出し料金はかからない APIの利用料がかかる
今回使ったモデル strands-decider-2B-hobson-v19 jev-latest

どちらも返すものは同じで、選んだ答え(choice)、各選択肢の確率(probabilities)、確信度(confidence)の3つです。

試合のルール

片付け先は6フォルダ

両者には、同じ質問を同じ説明文つきで送ります。
フォルダの説明文(criteria)はこの6つです。

QUESTION = {
    "type": "choice",
    "instructions": "このファイル(filename と content_preview)を、家のパソコンのどのフォルダに片付けるのがよいか。ファイル名だけでなく中身も見て判断する。",
    "criteria": {
        "経理": "お金の出入りの証拠になる書類。請求書・領収書・レシート・見積書・経費精算・注文確認など。何の支払いかは問わない。",
        "仕事": "勤め先の業務で作った・受け取った資料。企画書・議事録・打ち合わせメモ・営業資料・顧客リスト・社内発表資料など。",
        "写真": "写真やスクリーンショット、アイコンなどの画像ファイル。",
        "学習": "自分の勉強のための資料。資格試験の対策ノート・語学・講座のメモ・論文・読書メモ・演習問題など。",
        "手続き": "役所・税務署・年金機構・保険会社などとの公的な手続きや契約の書類。届出・住民票・確定申告・保険の更新案内など。",
        "ゴミ箱候補": "消してよい不要なファイル。中身が空のファイル、一時ファイル、ロックファイル(~$で始まる)、OSが自動で作る管理ファイルなど。",
    },
}

渡すのはファイル名と中身の先頭300文字

state(判断材料)には、ファイル名と中身の先頭300文字を入れます。
中身が空なら「(空のファイル: 0バイト)」、画像などのバイナリなら「(バイナリのため中身は読めません: 68バイト)」のように、バイト数を添えて渡します。

ans, ms = ask(engine, {"filename": p.name, "content_preview": preview(p)})

リクエストの違いは、Jevにだけ model と APIキーを付ける点だけです。

確信度0.6未満は「保留」へ

確信度が0.6以上なら、選ばれたフォルダへファイルを実際に移動します。
0.6未満なら移動せず、「保留」フォルダに入れます。

dest = ans["choice"] if ans["confidence"] >= THRESHOLD else HOLD
shutil.move(str(p), ws / dest / p.name)

しきい値を決めるのはモデルではなく、このコードです。
自信のない判断で勝手に片付けられると困るので、人が後で見る置き場を用意しました。

採点のしかた

  • 正解フォルダは、テスト用ファイルの作成時に設定したものを使います
  • 「正しく移動」「誤って移動」「保留」の3つに分けて数えます
  • 保留は、モデルの1位の答えが正解だったかどうかも記録します
  • 応答時間は、スクリプト側でリクエストを送ってから返るまでを測りました
    Jevはネットワーク往復を含みます

flow-diagram-ja.jpg

第1ラウンド: ふつうの散らかったフォルダ

出場ファイルは36個

よくある散らかり方を再現した36個です。

  • 請求書・領収書・見積書・経費精算のCSV・Amazonの注文確認メール
  • 企画書・議事録・営業資料・顧客リスト
  • IMG_2041.jpg のような写真・スクリーンショット
  • 資格試験の対策ノート・英単語リスト・論文
  • マイナンバーカード更新のお知らせ・住民票・確定申告の控え
  • .DS_Store・Thumbs.db・~$で始まるロックファイル・空のテキスト

ファイル名だけでは決まらないものも8個混ぜました。
たとえば「メモ.txt」の中身はドラッグストアのレシートで、「無題.docx」の中身は打ち合わせメモです。

結果は引き分け

2B Jev
正しく移動 36/36 36/36
誤って移動 0 0
保留 0 0
確信度の中央値 0.96 1.00
応答時間の中央値 1418ms 185ms

両者とも全問正解で、片付いたフォルダの中身も完全に一致しました。
「メモ.txt」はレシートとして経理へ、「final_final_v3.pptx」は社内勉強会の資料として仕事へ、どちらも中身を見て振り分けています。

差が出たのは確信度と速さだけです。
Jevは36個中24個を確信度1.00で返しました。
Jevが迷ったのは画像ファイルで、IMG_2041.jpg が0.62、IMG_2042.jpg が0.64でした。中身が読めず、名前も番号だけなので、手がかりが拡張子しかありません。
2Bは0.66〜0.99の幅があり、低めだったのは年金定期便(0.66)と~$で始まるロックファイル(0.69)です。

これでは勝負がつきません。
そこで、意地の悪い第2ラウンドを用意しました。

第2ラウンド: ファイル名と中身が食い違う

出場ファイルは11個

ファイル名に引っ張られると間違える11個です。
正解は中身で決まります。

ファイル名 中身 正解
請求書の書き方_簿記3級.md 簿記3級の練習問題 学習
写真.txt 市民税の税額決定通知書 手続き
IMG_3301.jpg スターバックスの領収書(テキスト) 経理
旅行の思い出.docx 出張旅費精算書 経理
ゴミ.txt 顧客との契約条件メモ 仕事
temp.xlsx 部署別の予算計画 仕事
TOEIC_公式問題集.pdf 空(0バイト) ゴミ箱候補
確定申告.md 確定申告について調べたノート 学習
保険.pdf 保険料の払込領収証 経理
住民票_写し(1).pdf 空(0バイト) ゴミ箱候補
手続き書類.pdf Pythonのデコレータの復習メモ 学習

結果はJevの判定勝ち

2B Jev
1位の答えが正解 8/11 10/11
正しく移動 7 10
誤って移動 2 0
保留 2 1
確信度の中央値 0.88 0.96
応答時間の中央値 1414ms 183ms

実際に片付いたフォルダはこうなりました。まず2Bです。

2B
├── ゴミ箱候補/
├── 仕事/
│   └── ゴミ.txt
├── 保留/
│   ├── temp.xlsx
│   └── 住民票_写し(1).pdf
├── 学習/
│   ├── TOEIC_公式問題集.pdf   ← 誤り
│   ├── 手続き書類.pdf
│   └── 請求書の書き方_簿記3級.md
├── 手続き/
│   ├── 写真.txt
│   └── 確定申告.md            ← 誤り
└── 経理/
    ├── IMG_3301.jpg
    ├── 保険.pdf
    └── 旅行の思い出.docx

次にJevです。

Jev
├── ゴミ箱候補/
│   ├── TOEIC_公式問題集.pdf
│   └── 住民票_写し(1).pdf
├── 仕事/
│   ├── temp.xlsx
│   └── ゴミ.txt
├── 保留/
│   └── 確定申告.md
├── 学習/
│   ├── 手続き書類.pdf
│   └── 請求書の書き方_簿記3級.md
├── 手続き/
│   └── 写真.txt
└── 経理/
    ├── IMG_3301.jpg
    ├── 保険.pdf
    └── 旅行の思い出.docx

ここで差がつきました。
「ゴミ.txt」「写真.txt」「旅行の思い出.docx」のように、中身に手がかりがあるものは両者とも正しく片付けました。
差がついたのは次の4個です。

ファイル 正解 2B Jev
TOEIC_公式問題集.pdf ゴミ箱候補 学習(0.78)で移動 ゴミ箱候補(0.96)
住民票_写し(1).pdf ゴミ箱候補 手続き(0.42)で保留 ゴミ箱候補(0.95)
temp.xlsx 仕事 仕事(0.51)で保留 仕事(0.76)
確定申告.md 学習 手続き(0.71)で移動 手続き(0.44)で保留

2Bは空のファイルで名前を信じた

2Bの誤りのうち1つは、中身が空のファイルです。
「TOEIC_公式問題集.pdf」には「(空のファイル: 0バイト)」と渡しているのに、名前どおり学習へ移動しました。
しかも確信度は0.78です。
保留の網をすり抜けました。

もう1つの空ファイル「住民票_写し(1).pdf」も、2Bの1位は名前どおりの手続きでした。
こちらは確信度0.42だったので保留に止まり、誤って片付けずに済みました。

Jevは2つの空ファイルをどちらも確信度0.95以上でゴミ箱候補にしています。
説明文にある「中身が空のファイル」という条件が、ファイル名より優先されたように見えます。

確定申告.mdは両者とも外した

「確定申告.md」は、確定申告について調べた勉強ノートです。
事前に決めた正解は学習ですが、両者とも手続きを選びました。

ここで結果を分けたのは確信度です。
2Bは0.71で手続きへ移動し、Jevは0.44で保留に入れました。
同じ間違いでも、Jevの判断は人の確認待ちになり、2Bの判断はそのまま実行されました。

もっとも、このファイルは人によっては手続きに入れたくなるものです。
正解の決め方しだいで勝敗が動く1問なので、ここは差として強く読みすぎないほうがよいと考えています。

結果をどう読むか

冒頭の2つの問いに戻ります。

1つ目の「2BはJevとどこまで張り合えるか」は、ふつうのファイル整理なら互角でした。
第1ラウンドの36個は両者とも全問正解で、2Bはネットワークにも課金にも頼らず手元のMacだけで片付けています。

2つ目の「差がどこで出るか」は、名前と中身が食い違うファイル、特に中身が空のファイルでした。
2Bはファイル名に引っ張られ、しかも高い確信度で誤るケースがありました。
確信度のしきい値で事故を防ぐ設計にしていても、確信度が高いまま間違えると、しきい値では止められません。

速さはJevが上でした。
今回の条件では、2Bの1件約1.4秒に対し、Jevはネットワーク往復込みで約0.18秒です。

自分が使うなら、名前どおりのファイルが大半のフォルダは2Bに任せ、空ファイルの扱いだけはコード側で先に振り分けます。
0バイトかどうかはモデルに聞かなくてもコードで判定できるからです。

注意点

  • 正解フォルダはファイル作成時に決めたものです。確定申告.mdのように、解釈が分かれるものがあります
  • 件数は第1ラウンド36個、第2ラウンド11個と少なく、差は傾向として見ている程度です
  • 各ファイルは1回ずつ判定しています
  • 2BはApple M1・メモリ16GBのMac、MPS(MacのGPU)で動かしました。計測中、同じMacで別の2Bサーバーが待機状態で起動していました(処理はしていません)
  • 2Bの公式値は、M3 Proで300トークン未満の質問に中央値153msです
    今回はM1で、6つの説明文とファイルの中身を含む長めの入力なので、条件が異なります

最後まで読んでいただきありがとうございました。

参考

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?