Hugging Face Unity API インストールと使用ガイド

The Hugging Face Unity API は、Hugging Face Inference API のシームレスな統合を提供し、Unity 開発者がゲームプロジェクト内で AI モデルを直接実装できるようにします。この統合により、ローカルでモデルをホストすることなく、さまざまな機械学習タスクを実行できます。

インストール手順

The Hugging Face Unity API は、Git URL を使用して Unity Package Manager からパッケージとしてインストールされます。セットアップ手順は以下の通りです。

  1. Package Addition: Unity プロジェクトで Window -> Package Manager に移動し、Add Package from git URL を選択して、https://github.com/huggingface/unity-api.git を入力します。
  2. Authentication: インストール後、Window -> Hugging Face API Wizard にある Hugging Face API Wizard が Hugging Face API キーを要求します。このキーはユーザーのアカウント設定で生成できます。
  3. Configuration: ユーザーはウィザード内で API キーをテストでき、必要に応じてモデルエンドポイントを変更できます。モデルを変更するには、開発者は Hugging Face のウェブサイト上の特定モデルページの Deploy -> Inference API セクションで API_URL を確認します。
  4. Examples: API Wizard には Install Examples オプションがあり、開発者にサンプル実装を提供します。

対応 AI タスクとカスタムモデル

HuggingFaceAPI クラスは、さまざまな機械学習タスク向けの専用メソッドを提供します。対応タスクは以下の通りです。

  • Conversational AI: 会話
  • Text Generation: テキスト生成
  • Visual Content: テキストから画像へ
  • Natural Language Processing: テキスト分類、質問応答、翻訳、要約
  • Audio Processing: 音声認識

開発者は、API Wizard でモデルエンドポイントを特定のモデルの Inference API URL に合わせて更新することで、Hugging Face にホストされたカスタムモデルを利用できます。

実装例: 文の類似度

API を Unity スクリプトに統合するには HuggingFace.API 名前空間を使用する必要があります。API は非同期で動作するため、成功とエラーの状態を処理するコールバックを使用します。

文の類似度タスクの実装例:

using HuggingFace.API;

void Query() {
    string inputText = "I'm on my way to the forest.";
    string[] candidates = {
        "The player is going to the city",
        "The player is going to the wilderness",
        "The player is wandering aimlessly"
    };
    HuggingFaceAPI.SentenceSimilarity(inputText, OnSuccess, OnError, candidates);
}

void OnSuccess(float[] result) {
    foreach(float value in result) {
        Debug.Log(value);
    }
}

void OnError(string error) {
    Debug.LogError(error);
}

使用方法とパフォーマンス最適化

Unity 環境で安定したパフォーマンスを確保するために、開発者は以下の技術的考慮事項を守るべきです。

  • Asynchronous Execution: API は非同期で呼び出しを行い、レスポンスとエラーは提供されたコールバックで処理する必要があります。
  • Latency Management: 開発者が応答遅延やパフォーマンスボトルネックに直面した場合、リソース消費の少ないモデルへエンドポイントを切り替えることが推奨されます。

Sources