以下の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/11/23/234418より取得しました。


Unity.InferenceEngineパッケージを使ってSLMをUnity上で実行する

本日はUnityの小ネタ枠です。
Unity.InferenceEngineパッケージを使ってSLMをUnity上で実行する方法です。

SLMとは

SLM(Small Language Model)は小規模な言語モデルを指します。
LLM(Large Language Model)と比較してサイズが小さくエッジデバイスで動くよう最適化されています。
ただしLLMと比較すると知識量や推論性能は低くなります。

モデルを取得する

今回は以下のRinna Japanese GPT2モデルを利用しました。
ONNX版があるため、Unity.InferenceEngineでそのまま利用できます。
saldra/rinna-japanese-gpt2-xsmall-onnx · Hugging Face

[Files and versions]を開き、onnxフォルダのモデルとtokenizer.jsonをダウンロードします。

Unityにモデルを取り込む際、Inspectorでbatch_size = 1、seequence_length = 64〜128に設定して最適化します。
batch_sizeは入力する文章の数、sequence_lengthは一度に扱えるトークン列(文章)の長さに当たります。
デフォルトだと、batch_size = -1(動的)、sequence_length = -1(動的)に設定されており、推論コンパイラが最適化できません。

Unity.InferenceEngineパッケージを使ってSLMをUnity上で実行する

Unity.InferenceEngineでSLMの言語推論を利用する場合、文字列をテンソルとして受け渡す必要があります。
以下のようなRinnaモデルに合わせて言語推論を行うサンプルスクリプトを作成しました。
・RinnaModelService.cs


クリックで展開

スクリプトをシーンに配置し、シーンを再生します。

コメントを入力すると推論結果が返ってきました。




以上の内容はhttps://bluebirdofoz.hatenablog.com/entry/2025/11/23/234418より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14