Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jev勉強会

Avatar for Takeshi Kato Takeshi Kato
September 28, 2026

 Jev勉強会

Avatar for Takeshi Kato

Takeshi Kato

September 28, 2026

Other Decks in Technology

Transcript

  1. 普通のプログラムなら、if文で書く if (response.status === 200) { next(); } else {

    retry(); } 判定の材料が数値や文字列なら、これで済みます。 9
  2. コードにすると、こうなる const text = await llm.ask(`次のログを読んで、成功したかを {"ok": true|false} のJSONで返してください。\n${log}`); const

    { ok } = JSON.parse(text); // 文章を受け取り、パースして分岐 if (ok) { next(); } else { retry(); } 判定のたびに、LLMをまるごと1回動かす。この形に、3つの問題があります。 12
  3. 質問の型は、3つ —— Choice・Score・Noul 質問の中身は何でも構いません。決まっているのは型だけです。 型 答え方 次のページからの例 Choice 選択肢から1つ(選択肢ごとの確率つき) 問い合わせの種類は?

    Score 段階(段階ごとの確率つき) 対応の緊急度は? Noul Yes / No(Yes の確率) AI が自動で回答してよいか? さっきの「成功した?」「原因は?」のような判定も、全部この3つの型で聞けます。 20
  4. 実物で見る: 1回の呼び出しに、3つの型を全部入れる "state": "問い合わせフォームより:「先週注文した商品がまだ届きません。注文番号は 20260918-0042 です。 もう3回も問い合わせています。人間の担当者に代わってもらえますか?」", "questions": { "auto_reply":

    { "type": "noul", "instructions": "この問い合わせに、AIが自動で回答してよいか" }, "category": { "type": "choice", "instructions": "問い合わせの種類", "criteria": { "配送": "商品の到着や配送状況", "返品・交換": "返品や交換の希望", "支払い": "請求や決済", "その他": "上記に当てはまらない" } }, "urgency": { "type": "score", "instructions": "対応の緊急度", "criteria": [ "急がない", "通常", "急ぐ", "至急" ] } } 状況(state)は自由なテキスト。質問は3つとも、この1回で返ってきます(約0.3秒、入力 541トークン)。 21
  5. 返ってきたもの(全体) { "model": "jev-1.13.0", "answers": { "auto_reply": { "type": "noul",

    "noul": 0.27 }, "category": { "type": "choice", "choice": "配送", "probabilities": { "配送": 1, "返品・交換": 0, "支払い": 0, "その他": 0 }, "confidence": 1 }, "urgency": { "type": "score", "score": 2.41, "legend": { "0": "急がない", "1": "通常", "2": "急ぐ", "3": "至急" }, "probabilities": { "0": 0, "1": 0, "2": 0.59, "3": 0.41 }, "confidence": 0.59 } }, "usage": { "input_tokens": 541, "output_tokens": 82 } } 文章は1文字もありません。質問ごとに、答えと確率だけ。次の3ページで、型ごとに見ます。 22
  6. Noul —— Yes/No を、確率で 質問 "auto_reply": { "type": "noul", "instructions":

    "この問い合わせに、AIが自動で回答してよいか" } 答え "auto_reply": { "type": "noul", "noul": 0.27 } 「はい」の確率が 0.27。人間の担当者を求めているので、自動回答はやめて人に回す、と読め ます。 23
  7. Choice —— 選択肢から1つを、確率つきで 質問 "category": { "type": "choice", "instructions": "問い合わせの種類",

    "criteria": { "配送": "商品の到着や配送状況", "返品・交換": "返品や交換の希望", "支払い": "請求や決済", "その他": "上記に当てはまらない" } } 答え "category": { "type": "choice", "choice": "配送", "probabilities": { "配送": 1, "返品・交換": 0, "支払い": 0, "その他": 0 }, "confidence": 1 } 選択肢ごとの確率が全部返る。criteria(各選択肢の説明)を書くのは人間の仕事です。 24
  8. Score —— 段階を、確率つきで 質問 "urgency": { "type": "score", "instructions": "対応の緊急度",

    "criteria": [ "急がない", "通常", "急ぐ", "至急" ] } 答え "urgency": { "type": "score", "score": 2.41, "legend": { "0": "急がない", "1": "通常", "2": "急ぐ", "3": "至急" }, "probabilities": { "0": 0, "1": 0, "2": 0.59, "3": 0.41 }, "confidence": 0.59 } 「急ぐ」(2) と「至急」(3) の間、2.41。3回問い合わせている分、急ぎ寄りに出ています。 25
  9. だから、速く・安く・確からしさが出る LLM に文章で聞く 答えを文章として1トークンずつ生成す る 生成した分だけ時間と料金がかかる 「確率」は文章の一部として書かせるだ け Jev 生成しない。1回の計算で、選択肢ごとの確率を出して終

    わり 1回分しかかからない → 速く、安い 答えそのものが確率 → 確からしさが数字で出る 詳しい仕組みは第3部で。ここでは「文章を生成しないから、判定に向いている」とだけ。 26
  10. 数字の出どころ 速さ 料金 TypeSafe の公称 193倍 444倍 第三者の集計(X の投稿の中央値) 7倍

    30倍 手元で30件測った(Claude Haiku 比) 3.5倍 1/18 公称ほどではないが、速さは数倍、料金は桁違い。精度は Haiku と同じでした。 30
  11. 一番多いのは、コーディングエージェントの中 978 件 Claude Code や Codex の周辺で使うツール。ゲーム(619)や業務の分類(431)より多い 例: Claude

    Code の会話が長くなったとき、「要約」の代わりに Jev で要る発言と要らない発言を 選別する。 要約だとファイル名やエラー文が消えるが、選別なら原文のまま残る。 37
  12. 業務の分類でも 例 結果 税務書類 261 種類の仕分 厳密一致 100%、1ページ約 0.15円。以前の LLM

    より 34倍安く6倍 け 速い 家計簿のレシート 14枚 × 合計 0.08円、0.2秒台 3問 Jev が確率つきで選び(1秒) 、LLM は選ばれたものの説明だけ書く 85 の統計手法から1つ選ぶ (25秒) 最後の例のように、「選択は Jev、説明は LLM」 という組み合わせが定番になりつつありま す。 39
  13. 迷ったら LLM に回す —— 結果 1.97秒 → 0.46秒 1操作あたり、押す要素を選ぶまでの時間。LLM に戻ったのは

    147回中4回 同じ形をチケット対応に当てはめた LangChain の試算では、100万件の料金が $30,400 → $6,480。 開発中の機能。browserbase/stagehand #2953 / LangChain 2026-09-17 44
  14. 誰が作ったか 作ったのは TypeSafe AI。創業者は元 OpenAI で、ChatGPT の研究に関わった人です。 TypeSafe はこれを「System One

    Model(直感で即答するモデル)」と呼び、 LLM とは別の種類のモデルだと位置づけています 47
  15. 「文章を書かない」の意味 答えは、用意した選択肢に対する確率の分布です。 "cause": { "choice": "アプリのバグ", "probabilities": { "アプリのバグ": 0.78,

    "テスト手順の誤り": 0.17, "成功": 0.05, "環境の問題": 0, "不安定(タイミング)": 0 }, "confidence": 0.71 } 選択肢の外の値は、構造上出ません。パースも要りません(手元の実測から、実際の答えを1つ)。 48
  16. 何十問でも、同時に聞ける "questions": { "ok": { "type": "noul", "instructions": "この手順は成功したか" },

    "cause": { "type": "choice", "instructions": "失敗の原因", "criteria": {...} }, "retry": { "type": "noul", "instructions": "再実行すれば通る可能性が高いか" }, "danger": { "type": "noul", "instructions": "データを消す操作を含むか" } } LLMなら4回聞くところが、1回・数百ミリ秒で返ります。 49
  17. 1週間で、複製が6つ。全部、作り方が違う 名前 作り方 Laya 分類専用の小型モデルに、選択肢を採点する層を足した Kev(Vercel の開発者) 公開 LLM に薄い層を足した。MacBook

    で動く Nimble 公開 LLM を合成データで微調整 SemIf 公開 LLM の「次の1トークン」の確率をそのまま読む。学習なし Jevlike 40KB の埋め込みだけ。「どこまで小さくできるか」の実験 DiffusionGemma Google の拡散モデルの出力枠を固定して、1回で埋める Jev と同じ3つの型(Choice・Score・Noul)で答える 65
  18. 精度は近い。確からしさには、まだ差がある 90% vs 93% 複製(Nimble)と Jev の正答率。同じ324問で比較 ただし「確率が当てになるか」の指標では、Jev が 82.7

    に対して複製はどれも大きく下回る。 手元で動く複製は、簡単な分類なら Jev と同じ精度だが、長文や難しい問題では 17 ポイント 以上下でした。 66
  19. 既存の LLM で、同じことはできないのか 複製とは別に、「出力を絞れば普通の LLM でも同じでは」という試みもありました。 Google の LLM(Gemini)の出力を2項目に絞って Jev

    と比較: 精度は Gemini が上。しかし 2.3倍遅く、19倍高い。確率も 0 か 1 に張り付いた 精度だけなら LLM で足りる。速さ・料金・確からしさで、判定専用の部品に及ばない。 DevelopersIO 2026-09 67
  20. 根拠は3つ 1. LLM はツール呼び出しの判断で、すでに内部で「1トークンの分類」をしている。外に出す だけ 2. Claude Code の Auto

    モードは、すでに同じ場所に分類器を挟んでいる 3. TypeSafe 自身が「差はデータ」と言っている。大手はデータを作れる Claude や Codex のようなコーディングエージェントも、内部の分岐(次に何をするか、 止まるか、危険か)を この経路で処理し、全体が速く安くなる 71
  21. まとめ 1. Jev は文章を書かず、判定だけを返す。エージェントの判定が、速く・安く・確からし さつきになる 2. 実測で Haiku の3.5倍速く、料金は1/18、精度は同等 3.

    「LLM に文章で聞いていた判定」を置き換える。確信度が低いときの逃げ道を用意す る 4. Jev が残るかは分からないが、判定だけをするモデルは主流の1つになる。問いを決め るのは人間の仕事 前回のループの中の判定にも、使えるかもしれません。まだ試していません 73
  22. 試すなら 経路 必要なもの TypeSafe のコンソール 登録のみ Cloudflare Workers AI Cloudflare

    アカウント + AI Gateway のクレジット Vercel AI Gateway / OpenRouter それぞれのアカウント 74