unity sentis v2.1.1でPhi-1.5を動かす

初めに

過去にsentisの1.3.0-pre.3で動かしていましたが、unity6およびsentis v2が出ているのでこちらでも動かしていきます。

過去の記事はこちら

ayousanz.hatenadiary.jp

開発環境

  • Unity 6000.0.31f1
  • sentis 2.1.1
  • nuget.newtonsoft-json 3.2.1

セットアップ

Unity6でプロジェクトを作成します

その後 manifest.json に以下のライブラリを追加します

    "com.unity.sentis": "2.1.1",
    "com.unity.nuget.newtonsoft-json": "3.2.1",

以下のブランチから sentis 2.1.1に対応しているCSスクリプトをダウンロードします

huggingface.co

ダウンロード後の配置は以下のようになります(スクリプトは適当なフォルダに入れてください)

実行

スクリプトをオブジェクトにアタッチして、実行すると以下のようなログがコンソールに出力されます

sentis v1からv2への大きな変更点

以下のドキュメントを参考に変更点を見ていきます

docs.unity3d.com

変更された項目

  • TensorFloatやTensorIntの代わりに、TensorTensorを使用するようになりました。
  • Workerメソッドが再構築され、統合されました。
  • IWorkerとGenericWorkerが、インスタンス化可能なWorkerクラスに変更されました。
  • ExecuteがScheduleに名称変更されました。
  • BurstTensorDataがCPUTensorDataに名称変更されました。
  • SymbolicTensorShapeがDynamicTensorShapeに名称変更・再構築されました。
  • Functional.CompileメソッドがFunctionalGraphオブジェクトのメソッドとして再構築されました。

削除された項目

  • GPUCommandBufferバックエンドが削除されました。
  • IBackendメソッドが削除されました。

PRのスクリプトも上記の内容が対応されているのが差分で見ることができます

huggingface.co

備考

unity sentis v1からv2への変更点は以下の記事でわかりやすくまとめられていました

sugiura-lab.com