このテストは、モデルの順位表を作るために始めたものではありません。
最初にあったのは、もっと具体的な問題でした。スマートフォン上のローカル Agent には、デフォルトで使うルーティングモデルが 1 つ必要です。そのモデルには会話だけでなく、短時間で要求を理解し、適切な機能を選び、実行パラメータを取り出し、情報が足りなければ質問して止まることが求められます。同時に、8K context を有効にしてもメモリや発熱が現実的な範囲に収まらなければなりません。
検証したかったのは、次の問いです。
二言語・構造化・オンデバイスという現在の Agent ワークフローで、現実的なリソース消費のまま、ルーティングと実行パラメータを最も安定して生成できるモデルはどれか。
これは重要な限定です。一般知能、文章力、数学、知識問題の順位を測っているわけではありません。製品開発上の選択に答えるテストです。
Agent の仕事を先に分解する
「明日の朝 7 時に起こして」という依頼を実行するまでに、Agent は少なくとも 2 段階の判断をします。
まず、現在利用できる機能から正しい Skill を選びます。アラーム、カレンダー、メール、メモリなどです。次に Skill 内の Action を選び、既知のパラメータと不足しているパラメータを整理し、実行するか、計画するか、確認質問を返すかを決めます。
This diagram could not be rendered. Its source is still available below.
View diagram source
flowchart LR
A[ユーザーの依頼] --> B[候補 Skill の検索]
B --> C[Stage 1: Skill 選択]
C --> D[Stage 2: Action とパラメータ]
D --> E{情報は十分か}
E -->|十分| F[実行または計画]
E -->|不足| G[構造化された確認]
F --> H[Swift Runtime の検証]
G --> H
もっともらしい文章を書かせ、雰囲気で採点することはしません。評価器は Skill、Action、Mode、既知 Slots、不足 Slots、目標を明示した構造を要求します。その後、Swift Runtime が候補範囲と現在の Schema に適合しているかを決定的なルールで確認します。
システム機能を扱う Agent にとって、「だいたい理解した」は実行保証になりません。Action の選択ミスと必須パラメータの欠落は別の失敗であり、両方を見えるようにする必要があります。
96 件の構成
モデル比較には v3-96-staged-skill-action データセットを使っています。
| 観点 | 構成 |
|---|---|
| 言語 | 中国語 48 件、英語 48 件 |
| Skill | 12 種類 |
| 難易度 | core 48 件、challenge 48 件 |
| プロトコル | 2 段階 Skill → Action/Slots/Mode |
| Context | 4K と 8K で全件実行 |
core はアラーム作成、予定確認、メール下書きなど、よくある表現を扱います。challenge では、似た Skill の混在、必須情報の不足、複数機能にまたがる計画、曖昧な言い方を加えています。
短い入力も意図的に残しました。スマートフォンへの指示は数語で終わることが珍しくありません。テスト問題のように整った文章でしか安定しないモデルは、実際の製品では使いにくいからです。
各ケースには期待する Skill、Action、Mode と構造上の制約があります。公開精度の分母は常に 96 件です。Parse に失敗したケースを精度計算から外すことはありません。
96 件のテストケースと期待結果
以下の期待結果は最終的な自然言語回答ではなく、モデルが Runtime に渡すルーティング契約です。各ケースで Skill、Action、Mode を個別に照合します。追加条件は、不足 Slots の空/非空、または計画必須を表します。
3 つの具体的な採点例
- 情報が完全:
Set an alarm for 7 AM tomorrow.
builtin.alarm.manage → create_alarm、Mode は act、missing_slots は空であること。
- 情報が不足:
Create an email draft for me.
builtin.mail.draft → create_draft、Mode は clarify、missing_slots は空でないこと。メール Schema は宛先、件名、本文を必須とします。
- 複数ステップ:
First inspect tomorrow's calendar, then create reminders for unresolved items.
builtin.task.plan_recover → orchestrate、Mode は act、requires_plan = true。
現在の v3 には制限もあります。不足 Slots は空か非空かだけを採点し、すべての不足フィールド名を正しく列挙したかは個別採点していません。正確な Slot 名と値は次版の契約テストに追加します。
Core:48 件の基本ケース
| # / Case ID | 言語 | テスト入力 | 期待 Skill → Action | Mode | 追加条件 |
|---|---|---|---|---|---|
1 · zh-alarm-create | 中国語 | 明天早上七点设置一个起床闹钟 | builtin.alarm.manage → create_alarm | act | 不足:空 |
2 · zh-alarm-list | 中国語 | 查看我在 Vesta 里创建的所有闹钟 | builtin.alarm.manage → list_alarms | retrieve | — |
3 · en-alarm-create | 英語 | Set an alarm for 7 AM tomorrow. | builtin.alarm.manage → create_alarm | act | 不足:空 |
4 · en-alarm-list | 英語 | List all alarms currently managed by Vesta. | builtin.alarm.manage → list_alarms | retrieve | — |
5 · zh-schedule-event | 中国語 | 明天下午三点在 A 会议室安排项目评审,持续一小时 | builtin.schedule.manage → create_calendar_event | act | 不足:空 |
6 · zh-schedule-reminder | 中国語 | 提醒我周五下午六点提交周报 | builtin.schedule.manage → create_reminder | act | 不足:空 |
7 · en-schedule-event | 英語 | Create a calendar event for project review tomorrow at 3 PM for one hour. | builtin.schedule.manage → create_calendar_event | act | 不足:空 |
8 · en-schedule-reminder | 英語 | Remind me Friday at 6 PM to submit the weekly report. | builtin.schedule.manage → create_reminder | act | 不足:空 |
9 · zh-brief-today | 中国語 | 汇总我今天的日程和未完成提醒 | builtin.daily.briefing → summarize_schedule | retrieve | — |
10 · zh-brief-conflict | 中国語 | 看看本周安排里有没有冲突和逾期事项 | builtin.daily.briefing → summarize_schedule | retrieve | — |
11 · en-brief-today | 英語 | Summarize today's calendar and unfinished reminders. | builtin.daily.briefing → summarize_schedule | retrieve | — |
12 · en-brief-overdue | 英語 | Show my schedule conflicts and overdue reminders this week. | builtin.daily.briefing → summarize_schedule | retrieve | — |
13 · zh-general-explain | 中国語 | 解释一下什么是最终一致性 | builtin.general.answer → answer | answer | — |
14 · zh-general-howto | 中国語 | 如何安全地删除一个文件?只需要解释步骤 | builtin.general.answer → answer | answer | — |
15 · en-general-explain | 英語 | Explain eventual consistency in simple terms. | builtin.general.answer → answer | answer | — |
16 · en-general-howto | 英語 | How do I delete a file safely? Explain only. | builtin.general.answer → answer | answer | — |
17 · zh-knowledge-cite | 中国語 | 根据我的本地项目文档,发布日期是什么?请引用来源 | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
18 · zh-knowledge-summary | 中国語 | 总结我导入的合同里关于违约责任的内容 | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
19 · en-knowledge-cite | 英語 | Search my local documents for the launch date and cite the source. | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
20 · en-knowledge-compare | 英語 | Compare the pricing terms in my two imported contracts. | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
21 · zh-connected-contact | 中国語 | 查一下通讯录里 Alex 的电话号码 | builtin.connected.context → answer_from_source | retrieve | — |
22 · zh-connected-web | 中国語 | 总结这个网页的内容:https://example.com/report | builtin.connected.context → answer_from_source | retrieve | — |
23 · en-connected-mail | 英語 | Look in my Gmail for the latest message from Alex. | builtin.connected.context → answer_from_source | retrieve | — |
24 · en-connected-location | 英語 | What city am I currently in? | builtin.connected.context → answer_from_source | retrieve | — |
25 · zh-document-import | 中国語 | 选择并导入这份 PDF 到本地知识库 | builtin.document.ingest → import_document | act | — |
26 · zh-document-ocr | 中国語 | 识别我选择的图片文字并录入知识库 | builtin.document.ingest → scan_document | act | — |
27 · en-document-import | 英語 | Import the selected PDF into my local knowledge base. | builtin.document.ingest → import_document | act | — |
28 · en-document-ocr | 英語 | Run OCR on the selected image and add it to the knowledge base. | builtin.document.ingest → scan_document | act | — |
29 · zh-memory-remember | 中国語 | 记住我不喜欢订阅制软件 | builtin.memory.governance → remember | act | 不足:空 |
30 · zh-memory-forget | 中国語 | 忘记我之前保存的语言偏好 | builtin.memory.governance → forget | act | — |
31 · en-memory-list | 英語 | Show the long-term preferences you remember about me. | builtin.memory.governance → list_memories | retrieve | — |
32 · en-memory-remember | 英語 | Remember that I prefer one-time purchases. | builtin.memory.governance → remember | act | 不足:空 |
33 · zh-mail-complete | 中国語 | 给 Alex 起草邮件,主题是周会,正文写明改到周五下午三点 | builtin.mail.draft → create_draft | act | 不足:空 |
34 · zh-mail-missing | 中国語 | 帮我起草一封邮件 | builtin.mail.draft → create_draft | clarify | 不足:非空 |
35 · en-mail-complete | 英語 | Draft an email to Alex with subject Weekly Sync and say it moved to Friday at 3 PM. | builtin.mail.draft → create_draft | act | 不足:空 |
36 · en-mail-missing | 英語 | Create an email draft for me. | builtin.mail.draft → create_draft | clarify | 不足:非空 |
37 · zh-runtime-contract | 中国語 | 检查 Vesta 当前的 Runtime 和安全执行契约 | builtin.runtime.inspect → inspect_runtime | retrieve | — |
38 · zh-runtime-mcp | 中国語 | 列出本机 MCP Runtime 当前暴露的能力 | builtin.runtime.inspect → inspect_runtime | retrieve | — |
39 · en-runtime-contract | 英語 | Inspect Vesta's current runtime and safety contract. | builtin.runtime.inspect → inspect_runtime | retrieve | — |
40 · en-runtime-mcp | 英語 | Show the capabilities exposed by the local MCP runtime. | builtin.runtime.inspect → inspect_runtime | retrieve | — |
41 · zh-plan-sequence | 中国語 | 先查看明天日程,然后为没有空闲时间的事项创建提醒 | builtin.task.plan_recover → orchestrate | act | 計画必須 |
42 · zh-plan-breakdown | 中国語 | 把准备发布会这件事拆成可验证的步骤并跟踪进度 | builtin.task.plan_recover → orchestrate | act | 計画必須 |
43 · en-plan-sequence | 英語 | First inspect tomorrow's calendar, then create reminders for unresolved items. | builtin.task.plan_recover → orchestrate | act | 計画必須 |
44 · en-plan-breakdown | 英語 | Break down the product launch preparation into verifiable steps and track progress. | builtin.task.plan_recover → orchestrate | act | 計画必須 |
45 · zh-data-export | 中国語 | 导出并加密备份我的全部 Vesta 本地数据 | builtin.data.portability → export_package | act | — |
46 · zh-data-restore | 中国語 | 从这个 vestaexport 数据包选择性恢复记忆和任务 | builtin.data.portability → restore_package | act | — |
47 · en-data-export | 英語 | Export an encrypted backup of all my local Vesta data. | builtin.data.portability → export_package | act | — |
48 · en-data-inspect | 英語 | Inspect this Vesta backup package without restoring it. | builtin.data.portability → inspect_package | retrieve | — |
Challenge:48 件の境界ケース
| # / Case ID | 言語 | テスト入力 | 期待 Skill → Action | Mode | 追加条件 |
|---|---|---|---|---|---|
49 · challenge-zh-alarm-recurring | 中国語 | 每个工作日早上八点半叫我起床 | builtin.alarm.manage → create_alarm | act | 不足:空 |
50 · challenge-zh-alarm-query | 中国語 | 我明早有设叫醒铃吗? | builtin.alarm.manage → list_alarms | retrieve | — |
51 · challenge-en-alarm-recurring | 英語 | Wake me at 6:45 every weekday. | builtin.alarm.manage → create_alarm | act | 不足:空 |
52 · challenge-en-alarm-query | 英語 | Do I have a wake-up alarm tomorrow morning? | builtin.alarm.manage → list_alarms | retrieve | — |
53 · challenge-zh-schedule-create | 中国語 | 下周一上午十点留半小时和产品经理同步 | builtin.schedule.manage → create_calendar_event | act | 不足:空 |
54 · challenge-zh-schedule-delete | 中国語 | 删除明天下午由 Vesta 创建的牙医提醒 | builtin.schedule.manage → delete_reminder | act | — |
55 · challenge-en-schedule-create | 英語 | Put lunch with Sam on my calendar at noon Tuesday. | builtin.schedule.manage → create_calendar_event | act | 不足:空 |
56 · challenge-en-schedule-delete | 英語 | Cancel the Vesta reminder to pay rent. | builtin.schedule.manage → delete_reminder | act | — |
57 · challenge-zh-brief-tomorrow | 中国語 | 我明天有哪些会和待办,按时间排一下 | builtin.daily.briefing → summarize_schedule | retrieve | — |
58 · challenge-zh-brief-load | 中国語 | 这周哪几天的安排最满? | builtin.daily.briefing → summarize_schedule | retrieve | — |
59 · challenge-en-brief-morning | 英語 | Give me a morning briefing from my calendar and reminders. | builtin.daily.briefing → summarize_schedule | retrieve | — |
60 · challenge-en-brief-load | 英語 | Which days this week are overloaded? | builtin.daily.briefing → summarize_schedule | retrieve | — |
61 · challenge-zh-general-rewrite | 中国語 | 把这句话改得更礼貌:你写错了 | builtin.general.answer → answer | answer | — |
62 · challenge-zh-general-calculate | 中国語 | 计算 240 的 18% 是多少 | builtin.general.answer → answer | answer | — |
63 · challenge-en-general-rewrite | 英語 | Rewrite this more politely: You are wrong. | builtin.general.answer → answer | answer | — |
64 · challenge-en-general-howto | 英語 | How can I set an alarm on iPhone? Explain the steps only. | builtin.general.answer → answer | answer | — |
65 · challenge-zh-knowledge-policy | 中国語 | 从已经收录的报销制度里找出打车标准 | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
66 · challenge-zh-knowledge-compare | 中国語 | 对比知识库中两份方案的风险章节 | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
67 · challenge-en-knowledge-policy | 英語 | According to documents already in my library, what is the reimbursement limit? | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
68 · challenge-en-knowledge-summary | 英語 | Summarize the termination clause from the contract I previously imported. | builtin.knowledge.answer → answer_from_knowledge | retrieve | — |
69 · challenge-zh-connected-web | 中国語 | 打开并概括这个链接:https://example.com/brief | builtin.connected.context → answer_from_source | retrieve | — |
70 · challenge-zh-connected-outlook | 中国語 | 在 Outlook 里找 Alex 最新发来的邮件 | builtin.connected.context → answer_from_source | retrieve | — |
71 · challenge-en-connected-contact | 英語 | Find Jordan's phone number in my contacts. | builtin.connected.context → answer_from_source | retrieve | — |
72 · challenge-en-connected-web | 英語 | Read and summarize https://example.com/brief. | builtin.connected.context → answer_from_source | retrieve | — |
73 · challenge-zh-document-scan | 中国語 | 把我刚选的扫描件 OCR 后加入资料库 | builtin.document.ingest → scan_document | act | — |
74 · challenge-zh-document-word | 中国語 | 导入这个 Word 文件并建立本地索引 | builtin.document.ingest → import_document | act | — |
75 · challenge-en-document-photo | 英語 | Extract text from this selected photo and save it to my local library. | builtin.document.ingest → scan_document | act | — |
76 · challenge-en-document-sheet | 英語 | Add the selected spreadsheet to my local documents. | builtin.document.ingest → import_document | act | — |
77 · challenge-zh-memory-remember | 中国語 | 以后回答尽量简短,请记住这个偏好 | builtin.memory.governance → remember | act | 不足:空 |
78 · challenge-zh-memory-list | 中国語 | 列出你长期保存的关于我的偏好 | builtin.memory.governance → list_memories | retrieve | — |
79 · challenge-en-memory-forget | 英語 | Forget that I prefer dark mode. | builtin.memory.governance → forget | act | — |
80 · challenge-en-memory-update | 英語 | Change my saved language preference to Chinese. | builtin.memory.governance → remember | act | — |
81 · challenge-zh-mail-complete | 中国語 | 给财务起草邮件,说明发票将在周五补交 | builtin.mail.draft → create_draft | act | 不足:空 |
82 · challenge-zh-mail-missing | 中国語 | 写封邮件通知项目延期 | builtin.mail.draft → create_draft | clarify | 不足:非空 |
83 · challenge-en-mail-complete | 英語 | Draft an email to finance saying the invoice will arrive Friday. | builtin.mail.draft → create_draft | act | 不足:空 |
84 · challenge-en-mail-missing | 英語 | Write an email announcing the delay. | builtin.mail.draft → create_draft | clarify | 不足:非空 |
85 · challenge-zh-runtime-sources | 中国語 | 检查 Vesta 当前授权了哪些数据源 | builtin.runtime.inspect → inspect_runtime | retrieve | — |
86 · challenge-zh-runtime-tools | 中国語 | 查看本地执行器现在注册了哪些工具 | builtin.runtime.inspect → inspect_runtime | retrieve | — |
87 · challenge-en-runtime-tools | 英語 | Which tools are currently registered in the local runtime? | builtin.runtime.inspect → inspect_runtime | retrieve | — |
88 · challenge-en-runtime-write | 英語 | Check whether this runtime is allowed to execute write operations. | builtin.runtime.inspect → inspect_runtime | retrieve | — |
89 · challenge-zh-task-sequence | 中国語 | 先找出今天逾期的事项,再逐项建立新的提醒 | builtin.task.plan_recover → orchestrate | act | 計画必須 |
90 · challenge-zh-task-resume | 中国語 | 继续上次中断的发布准备任务并从失败步骤恢复 | builtin.task.plan_recover → recover | act | 計画必須 |
91 · challenge-en-task-sequence | 英語 | Review today's overdue items first, then create a reminder for each one. | builtin.task.plan_recover → orchestrate | act | 計画必須 |
92 · challenge-en-task-resume | 英語 | Resume the interrupted launch task from its failed step. | builtin.task.plan_recover → recover | act | 計画必須 |
93 · challenge-zh-data-inspect | 中国語 | 只检查这个备份包里有什么,不要恢复 | builtin.data.portability → inspect_package | retrieve | — |
94 · challenge-zh-data-export | 中国語 | 把知识库和长期偏好导出成加密数据包 | builtin.data.portability → export_package | act | — |
95 · challenge-en-data-restore | 英語 | Restore only memories from this Vesta export package. | builtin.data.portability → restore_package | act | — |
96 · challenge-en-data-inspect | 英語 | Verify this backup archive without importing anything. | builtin.data.portability → inspect_package | retrieve | — |
何を採点するか
弱点を別の長所で隠せる単一の総合点は使いません。
| 指標 | 確認すること |
|---|---|
| Parse | 2 段階の出力が完全な契約として解析できたか |
| Skill | 正しい機能を選んだか |
| Action | Skill 内の正しい操作を選んだか |
| Mode | 実行、計画、確認のどれを選ぶべきか |
| Missing Slots | 必須情報がなければ本当に停止したか |
| Scope Validity | 候補範囲と Schema 内に収まっているか |
| TTFT / E2E | 生成開始とルーティング完了までの時間 |
Parse が高くても意味が正しいとは限りません。合法な JSON を安定して出しながら、Skill を安定して間違えるモデルもあります。逆に、内容は理解しているようでも、出力形式が崩れて Runtime が使えない場合もあります。
実行ルーターとして重要なのは Skill、Action、Mode、不足 Slots の挙動です。Skill は強くても Action が弱いモデルは、第 1 段階の候補絞り込みには使えても、実行パラメータを直接任せるべきではありません。
公平とは、全モデルに同じ文字列を渡すことではない
10 モデルはすべて GGUF Q4_K_M、同じ evaluator、同じデータセット、同じ 4K/8K 設定、固定デコード条件で実行しました。
temperature = 0
top_p = 1
top_k = 1
seed = 42
candidate_limit = 3
ただし、全モデルに同じ ChatML 文字列を無理に渡してはいません。Llama 3 は header tokens、SmolLM3 は extended thinking を無効化し、LFM2.5 は必須の start-of-text token を使います。タスク、情報、出力契約は同じまま、外側のテンプレートだけをモデル本来の形式に合わせています。
私たちにとって公平な比較とは、仕事とルールを揃えたうえで、誤った入力形式による不利益を意図的に作らないことです。
各重みについて、提供元、リポジトリ、commit、ファイル名、バイト数、SHA-256、ライセンス、Prompt Profile も記録します。モデル名だけでは再現できません。同名でも変換や量子化ファイルが違えば、挙動が変わる可能性があります。
能力評価と実機測定を分ける理由
ここは特に誤解されやすい点です。
96 件の能力評価は、同じモデルファイルをデスクトップの Metal evaluator で実行します。大量実行、全 Raw Output の保存、安定した条件での再比較がしやすいためです。
リソース測定は A17 Pro、8 GB 物理メモリの iPhone 15 Pro Max 実機で行い、SwiftLlama と llama.cpp b8668 を使いました。各モデルを 4K と 8K でそれぞれ 3 回独立起動し、合計 60 回測定しました。
実機で記録するものは次のとおりです。
- モデルのロード時間
- 短い Prompt の TTFT
- プロセスメモリ
- Metal メモリ
- 熱状態
- 基本生成が完了したか
This diagram could not be rendered. Its source is still available below.
View diagram source
flowchart TB
A[モデルファイルと SHA-256 を固定] --> B1[デスクトップ Metal 能力評価]
A --> B2[iPhone 実機リソース評価]
B1 --> C1[96 件の二言語要求]
C1 --> D1[Parse Skill Action Mode]
B2 --> C2[4K と 8K を各 3 回起動]
C2 --> D2[Load TTFT Memory Thermal]
D1 --> E[モデル選択]
D2 --> E
この 2 種類の証拠は混ぜません。デスクトップの能力精度は iPhone のエンドツーエンド成功率ではなく、iPhone でロードできたことも 96 件を理解できた証明にはなりません。
4K と 8K で測ったもの
今回の実機 Prompt と生成は短くしています。4K/8K 測定が答えるのは主に 3 点です。
- 対象端末で、その context 設定のモデルをロードできるか。
- context 拡大による追加メモリはいくらか。
- 短い依頼での起動、最初の token、熱状態は許容できるか。
8K token を埋めた後も速度が同じだとは証明していません。長い Prompt の prefill 性能も未測定です。それには実際に約 3.5K/7.5K token を入力し、prefill、生成速度、消費電力、継続的な熱推移を測る必要があります。
今回の 8K は容量とリソースのテストであり、「8K 長文能力の認証」ではありません。
結果を証拠として残す
能力評価では最終的な百分率だけでなく、モデルの Raw Output と SHA-256 を保存します。集計 JSON には次の情報が入ります。
- データセットのバージョンと digest
- モデルファイルの SHA-256
- Prompt 設定の SHA-256
- Prompt Profile
- context と候補数
- ケースごとの期待値、実値、各判定
- TTFT、E2E 遅延、token 数
- 形式修復が必要だったか
実機側では、独立起動ごとの Raw Text、CSV 集計、モデル別チェックサムを残します。証拠ディレクトリ全体にも SHA256SUMS.txt があります。
これで人為的な誤りがすべて消えるわけではありません。それでも、どのファイルを、どの設定で測り、表の数値がどのサンプルから計算されたかを後から確認できます。
この結果で証明しないこと
現在の証拠は、このオンデバイス Agent のルーター選びには使えます。ただし、次の主張には直接使えません。
- あるモデルの一般知能が最も高い
- すべての言語と Tool で優れている
- 8K の長文 prefill 性能を検証済み
- 実際のアラーム、カレンダー、メールの成功率が特定の数字に達した
- 学術的または業界全体のランキングである
96 件のうち 48 件の core は開発フィードバックに使われており、完全に独立した最終 holdout ではありません。確認質問や planning の重要な切片もまだ小さい状態です。実機測定は 1 構成 3 回で、モデル順序のランダム化、統一した冷却、電力、20 ターン連続セッションも未実施です。
これは記事末尾の形式的な注意書きではなく、結果そのものの一部です。
次に追加するもの
次版では、基準をさらに厳しくします。
- tuning と分離した 300 件以上の独立 holdout を作る。
- 全ケースを 2 名の非作者がバージョン管理された Rubric で確認する。
- 1 ケース 3 Trial 以上を実行し、安定通過、変動ケース、95% Wilson 下限を出す。
- 実際の 3.5K/7.5K prefill、連続会話、電力、熱推移、Jetsam 復旧を測る。
- 隔離 Tool fixture でパラメータ、順序、承認、確認質問、最終環境状態を検証する。
- 最後に少数の高リスク経路を、実機のシステム機能でエンドツーエンド確認する。
300 件の tuning/holdout 草案と Harness はすでにありますが、独立した 2 名の確認は完了していません。そのため、正式結果としては扱っていません。
最初の問いに戻る
この方法は「世界で最も賢い小型モデル」を探すものではありません。定義された端末、Runtime、Agent 契約の中で、現在のワークフローに最も適したデフォルトを選び、勝った理由、失敗する場所、証拠の限界を確認できるようにするものです。
10 モデルの結果、iPhone の 4K/8K リソース、モデルごとの判断は、「iPhone 実機で小型言語モデル 10 種を比較」で公開しています。