Opus4.8は怪しい可能性があるの言ったので、5.6Solで完全にチェックした。
Fable5? Opus5? どちらも週間も制限食らってて、お預け状態。
Fable5で$250の検証したばかりなので・・・
結論、一応できる。
「Microsoft公式Rust対応」ではなく、更新中のRC版を使う構成です。前の回答より慎重に言うと、試作・社内用途には使えるものの、無条件に本番推奨とは言えません。
実機で確認した結果:
- Rust:1.96.0
ort:2.0.0-rc.12- Windows ML:
Microsoft.Windows.AI.MachineLearning 2.1.74 - WinML付属ONNX Runtime:
1.24.20260504.1 - CPU EP:認識
- DirectML GPU EP:2デバイス認識
- NVIDIA TensorRT RTX EP:登録・認識
- ONNX推論:入力
[2.0, 4.0]→出力[3.0, 5.0] - 終了コード:0
つまり、次の経路は実際に通っています。
Rust
→ ortクレート
→ WinML付属 onnxruntime.dll
→ WinML EP Catalog
→ GPU/CPU EP列挙
→ セッション作成
→ ONNX推論更新状況
ortの公開最新版は2.0.0-rc.12で、2026年3月5日公開です。安定版2.0.0にはまだ到達していません。crates.io
一方、リポジトリ本体は2026年7月25日にもコミットされており、ONNX Runtime 1.27系への更新も進行中です。放置されたクレートではありません。最新コミット
ただし、これは次を意味します。
- メンテナンスは活発
- 公開版はRC
mainと公開版のAPIには差がある- 次のRCで破壊的変更が入る可能性がある
気になった点
実際のコンパイルでは、SessionBuilderの回復可能エラーをanyhowへ直接?変換できない箇所がありました。以下のように明示的な変換が必要でした。
.with_auto_device(AutoDevicePolicy::MaxPerformance)
.map_err(|error| anyhow!("{error}"))?動作不良ではありませんが、RC版らしい粗さは残っています。
本番で使うなら
現在の組み合わせを固定するのが安全です。
ort = {
version = "=2.0.0-rc.12",
default-features = false,
features = ["std", "ndarray", "load-dynamic", "api-24"]
}合わせて以下を固定します。
Microsoft.Windows.AI.MachineLearning = 2.1.74
onnxruntime.dll = WinMLパッケージ同梱版システムのPATHにある別のonnxruntime.dllを拾わせず、必ず絶対パスでort::init_from()してください。Windows ML 2.1.74は現在の公式NuGetパッケージです。NuGet
評価は次のようになります。
| 用途 | 判断 |
|---|---|
| 試作・個人開発 | 問題なく使える |
| 社内ツール | バージョン固定すれば現実的 |
| 一般配布アプリ | 実機CIとCPU fallbackが必要 |
| 長期保守・高信頼製品 | 小さなC/C++ラッパーを挟む方が安全 |
| NPU利用 | 対象NPU実機ごとの検証が必須 |
今回GPUとCPUは確認できましたが、NPU搭載機ではないため、QNN・VitisAIなどのNPU推論までは未検証です。Rust自体はMicrosoftの公式サポート対象言語ではない、という制約も残ります。
そしてOpus4.8に指示したら、思いっきり間違う!!
余計なことしやがる。
Opus5なら間違わなかったのか?