Jevに関連して調べたこと
このページは、なあに?
Jevにこういう入力を与えたらこういう出力が得られる、こういうユースケースで活用できる、といった表層的なことはわかるが、周辺領域も含めて概念的な理解が弱いと感じたのでLLMに教えてもらいながら学んでいく。
他者に向けた解説記事じゃなくて「自分用の学習メモ」って感じです。
Jevの仕様
公式ドキュメント Introduction - TypeSafe AI にある記述。
| 項目 | 内容 |
|---|---|
| 入力 | state (テキスト・JSON) と questions の組 |
| 質問の型 | Choice (選択肢からひとつ選ぶ) / Score (順序つきの段階で評価) / Noul (yes/noの確率) |
| 出力 | テキストではない。ラベルと確率のみ。choice: "billing"、score: 1.4、noul: 0.95 |
| 選択肢の定義 | 呼び出し側がリクエスト内で指定する |
| 学習方法 | RLCD (Reinforcement Learning for Calibrated Decisions) |
| 系統 | 事前学習済み言語モデルからRLHF・RLVRとは別方向に分岐、とAI primer - TypeSafe AIに図示 |
| 文脈長 | 64k トークン (state と全質問の合計) |
| 課金 | 入力トークンのみ。出力トークンは無料 |
Jevは、System 1なのか?
Daniel Kahnemanの定義するSystem 1
Thinking, Fast and Slow の二重過程理論における System 1 の性質。
- 速い、自動的、努力を要しない
- 常時稼働しており、止められない
- 連想的。聞かれていないことにまで答えを用意する
- 難しい問いを勝手に簡単な問いにすり替える (attribute substitution)
- WYSIATI (What You See Is All There Is)。手元の情報だけで筋の通った物語を構成する
- バイアスと過信の発生源。アンカリングも利用可能性ヒューリスティックも出どころはここ
- System 1が提案し、System 2が怠惰に承認する。この主従関係が議論の中核
Jevとの対応
一致するのは「速い」「単発で答えが出る」「熟慮の過程がない」の3点のみ。
| 観点 | KahnemanのSystem 1 | Jev |
|---|---|---|
| 起動 | 常時稼働、止められない | コードが呼んだときだけ動く |
| 応答範囲 | 聞かれていないことにも答える | 答えの空間を渡さないと答えない |
| 問いの扱い | 簡単な問いにすり替える | すり替えは不具合として扱われる |
| 確率の性質 | 過信・ミスキャリブレーションの源泉 | キャリブレーションが最大の売り |
| 制御関係 | System 1 が提案、System 2 が承認 | コードが指示、Jevが応答 (主従が逆) |
Kahnemanの主張の核は「System 1は速いが系統的に間違う」。Jevはこの軸で反対の性質を主張している。借りているのはSystem 1の中身ではなく「速い」という表層のみ。
「LLMはSystem 2」の側
機械学習の分野では、この比喩はもともと逆向きに使われてきた。
素のLLMの1回のforward passこそがSystem 1的(速い、連想的、熟慮なし)。Chain-of-Thoughtや推論モデルを足して、はじめてSystem 2的になる。
System 2 Attention (is something you might need too)、Distilling System 2 into System 1 はこの用法。TypeSafeのラベルの貼り方は業界の慣用と向きがちがう。
「逆の意味で使っている」というよりは、相対位置関係が変化したってことかと。LLMよりも速く反応するモデルが出てきたことで、相対的にLLMが「熟考寄り」に見られるようになったのだと思う。
公式ドキュメントの記述
System One - TypeSafe AI には次の注記がある。
The System One name comes from the concept Daniel Kahneman popularized in his book Thinking, Fast and Slow. System 1 thinking is fast and intuitive. System 2 is slower and more deliberate. Here, the emphasis is on fast, focused judgments.
適用範囲を「速くて焦点の絞れた判断」に自ら限定している。科学的主張ではなくネーミングの比喩である、という位置づけ。
TypeSafe AIは理論の方を「System 1」と書き、自分らのプロダクトの比喩的説明では「System One」と書いて区別している。
Jevは、BERTとはどうちがうか?
BERTの仕様
2018年のBERTはencoder-onlyのTransformer。
テキスト
↓
双方向attentionでencode
↓
[CLS]ベクトル
↓
線形ヘッド
↓
softmax
↓
ラベルの確率分布
- 生成はしない。分類とスコアリング専用
- 下流タスクごとにラベル付きデータでfine-tuneし、ラベル集合ごとに専用ヘッドを付ける
- 文脈長は512トークン
- 主な用途は感情分析、意図分類、自然言語推論、文書の再ランキング
一致する点
出力の契約。テキストではなくラベルと確率を返す。BERT系classifierと同じ形。
ユースケース。TypeSafeのcookbookに並ぶのはルーティング、再ランキング、値の抽出、モデレーション、階層分類。BERT時代のタスクリストとほぼ重なる。再ランキングはcross-encoderの直系。
失敗モード。Jev 1.13 jaggedness - TypeSafe AIに既知の弱点が列挙されている。
- 数えられない。理由は "The model recognizes the shape of an answer rather than tallying" (答えの形を認識しているだけで、数えてはいない)
- 日付を順序のある量ではなく文字列として読むため、前後の比較ができない
- literal reading。書かれた語を額面どおりに読み、意図を汲まない
- 参照の階層(indirection)が深くなると精度が落ちる
- 無関係な情報で
stateが膨らむと精度が落ちる
いずれも、逐次的な計算をせず一発のパターン照合で答えを出すモデルの症状。
一致しない点
タスクを推論時に自然言語で定義できる(zero-shot)。BERTはタスクごとにラベル付きデータを集めてfine-tuneが必要で、ラベルをひとつ足すだけでもヘッドの作り直しと再学習になる。Jevは選択肢も判断基準もリクエストのJSONに書くだけで、学習は不要。BERT系で最も近いのは bart-large-mnli などによるzero-shot分類だが、精度と柔軟性で差がある。
長い state と世界知識。BERTの文脈長は512トークン。後継のModernBERTで8kまで伸びたが、Jevは64k。「この返金ポリシー文書に照らして、この取引は重複請求にあたるか」のような判断には長い文脈と一般常識の両方が要る。
系統。AI primer - TypeSafe AIの図では、Jevの出自は「pretrained language model」と明示されている。BERTではない。
指示追従とキャリブレーションの位置づけ。判断基準や境界ケースを散文で書いて効かせられるのは、指示に従えるベースモデルを前提とする。またキャリブレーションが後付けの温度スケーリングではなく学習目標そのもの(RLCD)になっている。BERT時代は固定タスクひとつにtemperature scalingを後付けする方式だった。
比喩としての当否
「JevはBERTだ」は「LLMはマルコフ連鎖だ」と構造が似ている。インターフェースの形については正しいが、能力の宿る場所を指していない。
使い分けの目安
Jevが向く
- ラベル付きデータがない
- 判断の種類が頻繁に変わる。リクエストごとに選択肢がちがう
- 判断に長い文脈と一般常識が要る (ポリシー文書、取引履歴、会話ログ)
- LLMに「JSONで返して」と頼んでパースしている箇所を、型が保証された呼び出しに置き換えたい
Jevが向かない
- ラベル集合が固定で学習データが数千件ある。fine-tuneしたModernBERTのほうが安く、速く、同等以上に正確
- 計算、日付比較、カウント、完全一致検索。Jev 1.13 jaggedness - TypeSafe AIが「コードでやれ」と明言している
- 文章の生成。LLMを使う
まとめ
System OneはTypeSafe AIによる造語っぽいSystem 1じゃなくてSystem Oneです、という説明なので「これはSystem 1じゃないだろ!」という批判についてはそれはそう
- 実態は「推論時に自然言語でタスクを定義できる、キャリブレーションを最適化した分類器」
- 分類器であることに変わりはないので、精度・コスト・レイテンシ・既存手法との比較という分類器の物差しで測ってよい