4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AI × C#】最前線の開発スタック総まとめ(2025年)

Last updated at Posted at 2025-07-08

"AI を組み込むなら Python " ――そんな常識はもう古い。
.NET 9 と最新 SDK 群のおかげで C# だけ でクラウド LLM からローカル推論、RAG、NativeAOT まで一気通貫に扱えます。

今回は、「何を選べば "今" の AI 開発を最速で回せるか」 を整理してメモしたものです。C#がますます面白くなってきました!!

1. .NET 9 が用意した "AI Building Blocks"

.NET 9 では Microsoft.Extensions.AIMicrosoft.Extensions.VectorData が標準化され、クラウド LLM・ローカル推論・ベクトル検索を 同じインターフェース で呼び分けられるようになりました。さらに Tensor<T> / TensorPrimitives が加わり、SIMD 最適化済みの行列演算を "ほぼ素の C#" で高速に扱えます。ML.NET 4.0 も同梱され、Llama / Phi 系 Causal LM を CPU/GPU で手軽に回せるプレビュー API まで利用可能です。

新 API 公式の立ち位置 まず覚えると便利なこと
Microsoft.Extensions.AI 推論・埋め込みの共通抽象レイヤー OpenAI でもローカル Llama でも 同じコード で呼び出せる
Microsoft.Extensions.VectorData ベクトルストア操作の統一 Azure AI Search → Qdrant → Weaviate設定 1 行 で差し替え
Tensor / TensorPrimitives 多次元配列の高速計算を標準で提供 for ループ無しで画像フィルタや行列積が 10× 以上速く なる

具体的には…
GPU がなくても CPU だけで小さなニューラルネットを動かしたり、Excel では数分かかる巨大表の集計を一瞬で終わらせることができます。

2. 推論エンジン ― ONNX Runtime 1.22 と Olive

ONNX Runtime (ORT) は "書きだしたら即動く" 万能ランタイムへ進化しました。CUDA / DirectML / WebGPU / CPU AVX-512… デプロイ先に合わせた最適化バイナリを自動選択 するため、同じモデルを PC、スマホ、ブラウザで再利用できます。モデル圧縮ツール Olive と組み合わせれば、量子化・グラフ最適化・レイヤー融合が ワンコマンド。サイズ削減と速度向上をまとめて達成できます。

ツール 役割 あとで効いてくるポイント
ONNX Runtime (ORT) AI モデル実行エンジン CUDA / DirectML / CPU など ハード毎に自動最適化 バイナリを選択
Olive モデル圧縮パイプライン 量子化 + グラフ最適化 → サイズ 1/4・推論 2〜3× 速 をワンコマンド

具体的には…
GitHub で拾った 1 GB 超の学習済みモデルを Olive で圧縮し、スマホアプリに組み込んでも数十 MB/サクサク動作、ということが可能になります。

3. TorchSharp 0.105 + ML.NET 4.0

C# だけでディープラーニングを完結させたい場合の二本柱です。TorchSharp は PyTorch とほぼ同じ API を .NET に移植した低レベルフレームワーク。対して ML.NET は AutoML や GUI ライクなパイプラインが売りで、CSV を放り込むと最適モデル+C# コードを自動生成してくれます。用途に合わせて "直書き" と "AutoML" を使い分けるのが定番です。

ライブラリ コア用途 何が楽になるか
TorchSharp PyTorch 相当の低レベル制御を C# で 画像分類や Llama 系の微調整を Python なし で完結
ML.NET GUI 感覚の AutoML & 推論 API CSV を食わせるだけ で売上予測モデル生成 → C# コードも自動生成

具体的には…
開発 PC の GPU で自社データを使ってモデル微調整 → そのまま DLL として業務アプリに組み込む、という流れがスムーズになります。

4. Azure OpenAI SDK v1.4(Function Calling)+ Semantic Kernel 1.x

OpenAI API が 2025 Q1 に v1 世代へ統合され、Azure と OpenAI 本家を同じ SDK で使い分けられるようになりました。注目は Function Calling――GPT に「自分専用コマンド」を教える仕組みです。さらに Semantic Kernel がワークフロー定義 DSL を提供し、RAG・ツール呼び出し・メモリ管理を 数行の宣言 で構築可能になりました。

コンポーネント ひと言 出来ること
Function Calling GPT に "社内専用コマンド" を教える仕組み 「今年の売上グラフ」と聞かれたら自動で GetSalesReport() を実行 → PowerPoint を返す
Semantic Kernel AI・外部 API・ツールをワークフロー化 要約 → 英訳 → PDF 生成 …などを レシピ定義 だけで実行

具体的には…
チャットボットから「田中さんの座席を教えて」と入力すると、Kernel が

  1. GPT に意図理解させ
  2. 座席検索関数を実行
  3. 結果を自然言語+画像で整形

──を自動的に繋いでくれます。

5. ベクトル検索 & RAG(Retrieval-Augmented Generation)

社内文書や PDF は Embedding → ベクトルストア に格納すれば GPT の "知識" として扱えます。.NET 9 では VectorData API がこの部分を統一し、Azure AI Search / Qdrant / Weaviate などをコード変更ゼロで差し替え可能。RAG パイプラインを Semantic Kernel と組み合わせることで、引用付きの安全回答を短納期で実装できます。

技術 役割 活用例
VectorData API ベクトル DB 操作の共通化 マニュアル PDF を Embedding → Azure AI Search / Weaviate / Qdrant どれでも検索
RAG パイプライン GPT + 社内文書を合体 「このエラーコードの対処法は?」に対し 該当段落を引用付き で回答

具体的には…
チャットボットがマニュアル 500 ページを瞬時に検索し、該当段落を引用しながら答えてくれるようになります。

6. NativeAOT とハードウェア最適化

生成 AI でも Cold-Start は UI 体験を左右します。.NET 9 の NativeAOTI/O Uring + HTTP/3 スタックを組み合わせると、自己完結 exe が数十 ms で起動し、ネットワーク IO 待ちもカーネルバイパスで最小化できます。推論サーバやエッジデバイスでとくに効果大です。

機能 何が嬉しい?
NativeAOT 依存 DLL ゼロの単体 exe、Cold-Start を 数百 ms → 数十 ms
I/O Uring + HTTP/3 Linux 上でカーネルバイパス、推論サーバのレイテンシ削減

具体的には…
工場ライン PC にデプロイする座席検知 exe が 起動 0.1 秒・サイズ 5 MB で済み、余分な .NET ランタイムを入れずに配布できます。

7. 実戦サンプル:Datask(座席検索チャットボット)

ステップ 処理内容
1. ユーザー入力 「田中さんはどこ?」
2. LLM 解釈 Function Calling が FindSeat(emp="田中") を呼び出す
3. データ取得 ベクトル検索で類似名前を補完 → SeatLog ビューから現在座標を取得
4. 応答生成 Semantic Kernel がマップ画像を添付し 「北エリア B-12 です」 と返答

→ GPT は座席座標を知らなくても、"ツール" を通じて答えられる。

8. まとめ

2025 年の .NET は "AI を後付けする言語" から "AI ファーストで設計されたプラットフォーム" へ進化しました。小さな PoC でも良いので、まずは ひとつの既存アプリに LLM を差し込む ところからスタートしてみると面白いかもです。

まず試すなら 理由
Azure OpenAI SDK(Function Calling) 既存 C# コードに GPT を 安全に差し込みやすい
Olive → ORT 性能と配布サイズを 後から チューニングできる
TensorPrimitives "素の C#" で行列演算が 10× 速い → 小規模推論/画像処理が楽

学び方のコツ: 名前が難しい技術ほど「何が楽になる?」をセットで覚えると定着が早い。まずは dotnet new console -n AIDemo → SDK サンプルを動かしてみましょう。

追記:次の一手を迷わないために

1. 段階的統合が鉄則

すべてを一度に導入するより、まず Function Calling だけ実装 → 効果を確認 → RAG → NativeAOT… と 1 レイヤーずつ足す 方が失敗コストを抑えられます。

2. 測定せずに最適化しない

ORT 量子化や TensorPrimitives で「どれくらい速くなったか」を BenchmarkDotNet で計測し、数字に基づいて次の施策を選ぶのが 2025 年流。

3. コミュニティを活用する

.NET AI Stack は急速に進化中。Semantic Kernel DiscordONNX Runtime GitHub Discussions で事例を集めると、公式ドキュメントにないベストプラクティスに出会えます。

参考リンク

.NET AI 基盤

ベクトル検索

Tensor 演算

.NET 9 概要

推論ランタイム

モデル最適化

ディープラーニング

AutoML

LLM API

オーケストレーション

HTTP/3 / I/O

ベンチマーク

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?