開いた System One
CLM-8B。状態↔行動の対比埋め込みで候補を採点。Apache 2.0。~75MB の頭+凍結 Qwen3-8B。
2026-09-24、Jacky Kwok ら Contrastive-LM が CLM-8B を出した。候補行動を対比埋め込みで採点する System One モデルだ。テキスト生成ではない。TypeSafe 互換の Choice / Noul / Score。自己報告では T-Rex で約9.1倍速。ツール呼び出し精度は Jev がやや上。明日、Jev 形の呼び出しをローカルへ差し替えられる。
CLM-8B。状態↔行動の対比埋め込みで候補を採点。Apache 2.0。~75MB の頭+凍結 Qwen3-8B。
他タスクは約1.6〜4倍。BFCL 成功は 95.2% vs Jev 99.2%。速さは全面、精度はツールで差が残る。
vLLM pooling + clm-serve。system_one で Choice/Noul/Score を置換試験。NVIDIA GPU 必須。
読み分け: 公式・README/docs 編集の整理 自己報告・小規模eval /末尾の数字から根拠へ移動できる。
2026-09-24、Contrastive-LM が CLM-8B を公開した。候補を埋め込みで採点する。生成しない。
CLM(Contrastive Language Models)は、状態エンコーダと行動エンコーダを対比学習(InfoNCE)で揃える。デプロイ時は、現在の状態と候補行動の埋め込みの整合で採点し、最高点を選ぶ。型付き質問は、状態+閉じた選択肢だ。softmax が回答分布になる。[1]
API は TypeSafe 互換を掲げる。Choice / Noul / Score。Jev 向けに書いた system_one(state, questions) が、ほぼそのまま動く想定だ。重みは Hugging Face の Contrastive-LM/CLM-v0.1-8B。コードと重みは Apache 2.0。[1][3]
凍結 LLM 背骨は Qwen3-8B(vLLM pooling)。trainable は投影ヘッド約20M(約75MB)。状態と行動を分けてキャッシュできる。候補が多い/行動が再利用されるほど速い。
60M Nemotron Q&A → 30M 合成 hard negatives → 1M agentic trajectories。著者紹介日は 2026-09-24(Jacky Kwok ほか)。
もう一つの崩れは、「9倍=全タスク」だ。ピークは T-Rex。全部ではない。
速い判断は閉じた Jev の独占で、開いた実装は遅いか精度不足 — という像が、CLM-8B の自己報告で揺らぐ。
System One と言えば TypeSafe の Jev。速い判断は閉じて買う。オープンはクローンか遅い代替。ツール精度は閉じた側が当然上。
開いた対比学習ヘッドで、Jev 形 API をローカルに置ける。速さは自己報告で全面勝ち寄り。精度は BFCL / WikiRacing で Jev がやや上。議論は「開く+速い」対「TypeSafe のツール精度エッジ」。[2]
README / explainx とも、ピークは T-Rex(16.5ms vs 149.8ms ≈ 9.1x)。他は約1.6x〜4x。見出しの「9倍」を汎用速度として社内資料に書かない。
価格は N/A(ローカル)。主数字は自己報告の latency と成功。小規模セットは注記必須。
| タスク | CLM-8B | Jev | 倍率(概算) | CLM成功 | Jev成功 |
|---|---|---|---|---|---|
| T-Rex | 16.5 ms | 149.8 ms | ~9.1x | 5/5 | 5/5 |
| Tool calling BFCL V4 | 76.8 ms | 125.5 ms | ~1.6x | 95.2% | 99.2% |
| WikiRacing | 79.8 ms | 225 ms | ~2.8x | 26/30 | 30/30 |
| Super Mario | 33.5 ms | 132.6 ms | ~4x | 5/5 | 5/5 |
「on par」は公平だが同一ではない。ツール呼び出しと WikiRacing は Jev がやや上。速さは CLM が全行で下回る。自己報告[1][2]
| ベンチ | 設定 | pass@1 | CLM | Jev | CLM latency | Jev latency |
|---|---|---|---|---|---|---|
| DeepSWE | Bo4 · Opus5 · 38タスク | 73.7% | 81.6% | 71.1% | 79 ms(~5.7x) | 449 ms |
| Terminal-Bench 2.1 | Bo5 · Fable5 · 30タスク | 84.0% | 87.6% | 83.1% | 32 ms(~4.1x) | 131 ms |
評価は 38 / 30 タスクと小さい。1〜2件で%が動く。CLM は軽量 fine-tune 済み、Jev は untuned。比較は「同一ゼロショット」ではない。latency は H100 上の報告。独立再現は未確認。[1][2]
編集ルール:本文の主数字は README の表のみ。Notion ブログの図は本文に入れない(取得不能・二次)。SOTA ラベルは著者主張として扱い、独立検証前に確定語にしない。
要件は Linux、Python 3.10+、NVIDIA GPU。明日の差し替え試験はこの4段。
git clone https://github.com/Contrastive-LM/CLM.git && cd CLM && pip install -r requirements.txtCLMClient.system_one に差し替え、同一 state / questions で latency と選択を1行ログ。# 1. encoder: Qwen3-8B, last-token pooling
vllm serve Qwen/Qwen3-8B --served-model-name qwen3-8b --runner pooling \
--enable-prefix-caching --max-model-len 2048 --gpu-memory-utilization 0.35 --port 8090
# 2. API — Contrastive-LM/CLM-v0.1-8B(~75 MB)を初回取得
clm-serve --port 8700 --emb-url http://127.0.0.1:8090/v1/embeddings
from clm import CLMClient, Choice, Noul, Score
client = CLMClient() # CLM_BASE_URL default http://127.0.0.1:8700
r = client.system_one(
state="Customer: my invoice was charged twice and nobody answers the phone!",
questions={
"urgency": Noul(instructions="Is this urgent?"),
"department": Choice(
instructions="Which team should handle this?",
criteria={"billing": "Charges, invoices, refunds",
"technical": "Bugs and outages"},
),
"frustration": Score(
instructions="How frustrated is the customer?",
criteria=["Calm", "Frustrated", "Very angry"],
),
},
)
print(r.answers["urgency"].noul)
print(r.answers["department"].choice)
print(r.usage.input_tokens, r.latency_ms)
Contrastive-LM/CLM-v0.1-8B · Apache 2.0
POST /v1/systemone · POST /v1/rank · playground GET /
いま Jev(または同等)に投げているルーティング/検証1本を、同じ state と候補で CLM に通す。成功一致と latency_ms を1行。ツール呼び出しが主戦場なら、精度差(BFCL の方向)を先に見る。
CLM は選択肢の中から選ぶ。文章を書かない。計画も単独では担わない。
インテント/ツール/キューのルーティング。best-of-N の検証・再ランク。ゲームや UI エージェントの実時間選択。ラベル文を書き換えて分類を回す(再学習なし)。候補が多く、行動埋め込みを再利用できる場面。
オープンエンド生成。長視野の単独プランニング。候補集合が未知・列挙不能。校正なしの確率をそのまま意思決定に使うこと。ツール呼び出しの最終精度を閉じた Jev と同一視すること。
切る点は「Jev 形の口をローカルに移せるか」。議論は open+fast 対 TypeSafe のツール精度エッジ。「9x」は T-Rex ピーク。eval 38/30 は確定語にしない。
次に見るのはリーダーボードではない。自分の候補集合での一致率と latency だ。生成の代わりに置かない。ツール主戦場では精度差を先に測る。
一次は GitHub Contrastive-LM/CLM README と Hugging Face 重み。explainx は同一数字の整理。Notion 著者ブログは本文未採用(取得不能)。
README。CLM-8B、学習レシピ、zero-shot / verifier 表、serve 手順、Apache 2.0。一次 2026-09-24 紹介。
2026-09-24。README 同一数字の表と caveat(38/30、fine-tune vs untuned、9x=T-Rex)。
reference head 重み。Apache 2.0。Qwen3-8B backbone / last-token pooling 前提。
Kwok et al., Contrastive Language Models, 2026。Notion Blog URL は README 記載どおり。