次の方法で共有


チュートリアル: ONNX LLM を AI Dev Gallery

このチュートリアルでは、AI を利用したサンプルを紹介するオープンソースの Windows アプリケーション (Microsoft Store で利用可能) であるAI Dev Galleryを使用して、ONNX ベースの大規模言語モデル (LLM) を実行する方法について説明します。

これらの手順は、次のようなONNX Runtime GenAI形式の LLM に対して機能します。


  1. AI Dev Gallery アプリを開きます。

  2. [ サンプル ] タブに移動し、 テキスト サンプル ("テキストの生成" や "チャット" など) を選択します。

    [サンプル] タブに移動し、テキスト サンプルを選択します

  3. [ モデル セレクター ] ボタンをクリックすると、そのサンプルで使用可能なモデルが表示されます。

    [モデル セレクター] ボタンをクリックします

  4. 独自の ONNX LLM を取り込むには、[ カスタム モデル ] タブを選択します。

    [カスタム モデル] タブを選択する


手順 2: ONNX LLM モデルを取得または変換する

AI Dev Galleryでモデルを使用するには、ONNX Runtime GenAI形式である必要があります。 次のようにすることができます。

  • 事前に変換されたモデルをダウンロードします。

  • 独自のモデルを変換する:

    • モデル セレクターで [ Open AI Toolkit's Conversion Tool]\(AI ツールキットの変換ツールを開く \) をクリックすると、Visual Studio Code で AI Toolkit 拡張機能 が起動します。
      • インストールされていない場合は、VS Code Extensions Marketplace で "AI Toolkit" を検索します。
    • AI Toolkit for Visual Studio Code を使用して、サポートされているモデルをONNX Runtime GenAI形式に変換します。

現在サポートされている変換モデル:

  • DeepSeek R1 蒸留 Qwen 1.5B
  • Phi 3.5 ミニ指示
  • Qwen 2.5-1.5B の指示
  • ラマ 3.2 1B 指示

AI ツールキットの変換はプレビュー段階であり、現在は上記のモデルのみをサポートしています。


  1. ONNX Runtime GenAI形式のモデルを作成したら、AI Dev Gallerymodel セレクター ウィンドウに戻ります。

  2. [ Add model → From Disk ] をクリックし、ONNX モデルへのパスを指定します。

    ディスクからモデルを追加する AI Dev Gallery

    AI Toolkit の変換ツールを使用した場合、変換されたモデル パスは次の形式に従う必要があります。
    c:/{workspace}/{model_project}/history/{workflow}/model/model.onnx

  3. 追加したら、モデルを選択し、対話型サンプルで使用できるようになりました。

    カスタム モデルが選択され、使用できる状態 AI Dev Gallery

  4. 必要に応じて、アプリで [ソース コードの表示 ] をクリックして、モデルを実行するコードを表示します。

    で選択した ONNX モデル サンプルのソース コードを表示する AI Dev Gallery


これらの ONNX LLM は、 AI Dev Galleryの次のサンプルと共に使用できます。

テキスト

  • テキストの生成
  • テキストの集計
  • Chat
  • セマンティック カーネル チャット
  • 文法チェック
  • テキストの言い換え
  • テキストセンチメントの分析
  • コンテンツ モデレーション
  • カスタム パラメーター
  • 検索拡張生成

スマート コントロール

  • Smart TextBox

Code

  • コードの生成
  • コードの説明

次のステップ

AI Dev Galleryで ONNX LLM を試したので、同じアプローチを独自のアプリに取り込むことができます。

このサンプルのしくみ

  • AI Dev Galleryサンプルでは、(OnnxRuntimeGenAIChatClient の) ONNX Runtime GenAIを使用して ONNX モデルをラップします。
  • このクライアントは、 Microsoft.Extensions.AI の抽象化 (IChatClientChatMessageなど) にプラグインされるため、プロンプトと応答を自然で高度な方法で操作できます。
  • ファクトリ (OnnxRuntimeGenAIChatClientFactory) 内では、アプリによって Windows ML (WinML) 実行プロバイダーが登録され、使用可能なハードウェア アクセラレーション (CPU、GPU、または NPU) が最適な ONNX モデルが実行されます。

サンプルの例:

// Register WinML execution providers (under the hood)
var catalog = Microsoft.Windows.AI.MachineLearning.ExecutionProviderCatalog.GetDefault();
await catalog.EnsureAndRegisterCertifiedAsync();

// Create a chat client for your ONNX model
chatClient = await OnnxRuntimeGenAIChatClientFactory.CreateAsync(
    @"C:\path\to\your\onnx\model",
    new LlmPromptTemplate
    {
        System = "<|system|>\n{{CONTENT}}<|end|>\n",
        User = "<|user|>\n{{CONTENT}}<|end|>\n",
        Assistant = "<|assistant|>\n{{CONTENT}}<|end|>\n",
        Stop = [ "<|system|>", "<|user|>", "<|assistant|>", "<|end|>"]
    });

// Stream responses into your UI
await foreach (var part in chatClient.GetStreamingResponseAsync(messages, null, cts.Token))
{
    OutputTextBlock.Text += part;
}

ONNX モデルを Windows アプリケーションに統合する方法の詳細については、次を参照してください。


こちらも参照ください