WADA-DEV(7) $ /ja/blog/tev1-decision-model-runner-game/

NAME

tev1-decision-model-runner-game — 4B の判定モデル tev1 にゲームを操作させてみた

SYNOPSIS

Jev に迫る精度をうたう 4B の decision model、tev1 を自宅の GPU で動かし、横スクロールのゲームを操作させてみた。毎秒20回、1判定30ms台。これがローカルで回るのはすごい。

DESCRIPTION

きっかけ

ollama に decision model という種類のモデルが入った。テキストを生成する代わりに、渡した状況と選択肢に対して「どれを選ぶか」を確率つきで返してくる。元ネタは TypeSafe AI の Jev というクローズドな API で、その後追いとして重みが公開されているのが tev1 だ。

気になったのはサイズで、tev1 は 4B と 0.8B の2つしかない。大きいほうの 4B でもこの小ささなのに、公開ベンチでは Jev の 76.0% に対して 73.3% と、ほぼ並ぶ数字をうたっていた。4B なら自宅の GPU に余裕で載る。本当にそんなに使えるのか、試してみたくなった。

作ったもの

横スクロールのゲームを書いて、操作を全部 tev1 に任せた。

やっていることは単純で、ゲームの状況(足元に地面があるか、次の穴や敵が「今跳べば越えられる距離か」)を言葉にして渡し、run / jump / wait のどれにするかを毎回選ばせているだけ。右のパネルのバーが、tev1 が返してきた確率そのものだ。

判定は1回30ms台で返ってくるので、毎秒20回ほど判断し直している。ゲームはモデルの返事を待たずに進み、返ってきた時点で操作が切り替わる。途中で何度か死にながらも、穴を跳び越え、敵を踏んで、ゴールまで走り切った。

感想

正直、これが自宅のマシンで、4B のモデルで、リアルタイムに回るのはすごいと思った。

同じ tev1 でも、普通の生成 API で選択肢の記号を文章として答えさせると、考え込んだまま答えを返さないことがあったし、正答も減った。decision API は選択肢の確率を直接返すので、そういうことが起きない。この3択くらいの形に落とせれば、4B でもここまで速く回る。

ゲームはおもちゃだけど、同じ形の判断を大量にさばきたい場面は手元にいくらでもある。しばらく遊んでみようと思う。

SEE ALSO

COMMENTS