初めに
Unityが Unity Sentisで動く phi 1.5のONNXのモデルを公開しているので、こちらを動かしていきます
(注)Unityが Unity Sentis 1.4向けのONNXを公開していないので、1.3で動かしています
Demo
以下の動画のように動きます
またリポジトリは以下で公開しています
開発環境
- Unity 2023.3.0b2
- Unity Sentis 1.3.0-pre.3
- nuget.newtonsoft-json 3.2.1
ライブラリのインストール
まずは、Unityを立ち上げて必要なライブラリを入れます
manifest.jsonに以下を追加します
"com.unity.nuget.newtonsoft-json": "3.2.1", "com.unity.sentis": "1.3.0-pre.3",
モデルのダウンロード
2024/05/07時点で、Unity Sentis 1.4向けのONNXを公開していないみたいなので 1.3で動かしていきます
Yes, working on it. The 1.30 version is still here: https://huggingface.co/unity/sentis-phi-1_5/tree/sentis-1-3-0 But we need to upload the 1.4.0 version. The internet was a being a bit slow to upload such a large file. But it should be up there soon.
以下で 1.3のブランチからモデル等をクローンしてきます
git lfs install git clone https://huggingface.co/unity/sentis-phi-1_5 cd sentis-phi-1_5/ git checkout -b sentis-1-3-0 origin/sentis-1-3-0
再度のブランチの切り替えは、約6GBのモデルをダウンロードするので時間がかかります
(クローンしなくても以下のダウンロードボタンを押すことでモデルの取得は可能です)
モデルとスクリプトのUnityへの配置
ダウンロードしたモデルを以下の画像のように配置します
この時に phi15.sentis
、vocab.json
、merges.txt
は Assets/StreamingAssets
に入れる必要があります
Assets/StreamingAssets
RunPhi15.cs
Unity側でLLMの実行
配置が終わったらUnity側で実行をすると 以下で設定されているプロンプトの返信を行い、コンソールに表示されます
string outputString = "Once upon a time, there were three";
出力