最近話題の Jev を使ってみる。
個人的には、LLMの全体から一昔前に mnist とかで解いていたようなタスクの部分をごっそり抜き出してイメージ。
本質的にはLLMでもできそうだし、結局クソデカモデルでクソデカデータセットで学習させて、蒸留的なアプローチのほうがいいのかもしれない。
個人的にはホリエモンの Fast & slow の説明がしっくり来る。
https://www.youtube.com/watch?v=o1syRK2t0lE
この理解だと、中身というか本質的な側面はおいておいてユースケースはめちゃくちゃありそう。
アカウントを作る。
https://console.typesafe.ai/playground
まずはここからアカウント登録をする。現状だと重みとかモデル構造とかは一切公開されておらず、API経由で使うしか方法はない。
(どっかがサクッと蒸留して似たようなモデルをOSSで公開しそうな雰囲気もある)と思ってたらやっぱりいた。
https://x.com/nwnwnyo/status/2101605150242849140?s=20
https://github.com/Argos1111/jev_local
いいかどうかはわからないが、いずれにせよ、内部的にやっていることはそこまで複雑なタスクではないようだ。
とにかく、アカウントを作る。
そしてAPIキーを作る。
Fast & Slowの「Fast」にふさわしい、パッと見で直感的に判断できるタスク(スパム判定や感情分析など)を例にしてpythonで実行してみる。
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
state = "この商品マジで最悪。二度と買わない。金返せ。"
with TypeSafeClient(model="jev-latest") as client:
response = client.system_one(
state=state,
questions={
"sentiment": Choice(
instructions="テキストの感情は?",
criteria={
"positive": "好意的",
"negative": "批判的",
"neutral": "中立",
},
),
"is_spam": Noul(
instructions="これはスパムや荒らしコメントか?",
criteria={
"true": "スパム・荒らしである",
"false": "通常のレビューである",
},
),
"urgency": Score(
instructions="対応の緊急度は?",
criteria=[
"低:放置でよい",
"中:確認が必要",
"高:すぐに対応が必要",
],
),
},
)
print("感情:", response.choices["sentiment"].choice)
print("スパム判定:", response.nouls["is_spam"].noul)
print("緊急度:", response.scores["urgency"].score)
使い道は色々ありそう、楽しそう。
┌───────────────────────────┬────────────────┬────────────────┐
│ │ 費用 │ 時間 │
├───────────────────────────┼────────────────┼────────────────┤
│ gpt-4o だけ(14キー) │ $0.0154 ≒ ¥2.4 │ 1.71秒 │
├───────────────────────────┼────────────────┼────────────────┤
│ gpt-4o 4キー + Jev 10キー │ $0.0093 ≒ ¥1.4 │ 1.30秒(直列) │
└───────────────────────────┴────────────────┴────────────────┘
全くのメモ的なノリだけど、jevを活用することで、トークン利用料と時間を節約することができる。とにかく早い・安いのがメリット。