このチュートリアルでは、AI を利用したサンプルを紹介するオープンソースの Windows アプリケーション (Microsoft Store で利用可能) であるAI Dev Galleryを使用して、ONNX ベースの大規模言語モデル (LLM) を実行する方法について説明します。
これらの手順は、次のようなONNX Runtime GenAI形式の LLM に対して機能します。
- Hugging Face からダウンロードしたモデル
- AI Toolkit for Visual Studio Code 変換ツールを使用して他のフレームワークから変換されたモデル
手順 1: AI Dev Gallery でインタラクティブサンプルを選択します。
AI Dev Gallery アプリを開きます。
[ サンプル ] タブに移動し、 テキスト サンプル ("テキストの生成" や "チャット" など) を選択します。
[ モデル セレクター ] ボタンをクリックすると、そのサンプルで使用可能なモデルが表示されます。
独自の ONNX LLM を取り込むには、[ カスタム モデル ] タブを選択します。
手順 2: ONNX LLM モデルを取得または変換する
AI Dev Galleryでモデルを使用するには、ONNX Runtime GenAI形式である必要があります。 次のようにすることができます。
事前に変換されたモデルをダウンロードします。
Hugging Face ONNX モデルでモデルを参照する、または
AI Dev Galleryで、モデルの追加 → ハギングフェイスを検索に移動します。
独自のモデルを変換する:
- モデル セレクターで [ 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形式に変換します。
- モデル セレクターで [ Open AI Toolkit's Conversion Tool]\(AI ツールキットの変換ツールを開く \) をクリックすると、Visual Studio Code で AI Toolkit 拡張機能 が起動します。
現在サポートされている変換モデル:
- DeepSeek R1 蒸留 Qwen 1.5B
- Phi 3.5 ミニ指示
- Qwen 2.5-1.5B の指示
- ラマ 3.2 1B 指示
注
AI ツールキットの変換はプレビュー段階であり、現在は上記のモデルのみをサポートしています。
手順 3: ONNX モデルを AI Dev Gallery
ONNX Runtime GenAI形式のモデルを作成したら、AI Dev Gallerymodel セレクター ウィンドウに戻ります。
[ Add model → From Disk ] をクリックし、ONNX モデルへのパスを指定します。
注
AI Toolkit の変換ツールを使用した場合、変換されたモデル パスは次の形式に従う必要があります。
c:/{workspace}/{model_project}/history/{workflow}/model/model.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の抽象化 (IChatClient、ChatMessageなど) にプラグインされるため、プロンプトと応答を自然で高度な方法で操作できます。 - ファクトリ (
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 アプリケーションに統合する方法の詳細については、次を参照してください。
こちらも参照ください
- ダウンロード AI Dev Gallery
- ハギングフェイスのONNXモデル
- AI Toolkit for Visual Studio Code
- AI Dev Gallery GitHub リポジトリ