GGUF言語モデル向けの純粋な.NET推論エンジンであるTensorSharpが公開されました。これにより、.NET開発者はPythonサーバーを立ち上げることなく、大規模言語モデル(LLM)の推論を実行できるようになります。このプロジェクトは、Windows、macOS、Linux上で動作し、CPU、CUDA、MLX、Metal、Vulkanバックエンドをサポートしながら、広く使用されているllama.cppに匹敵するパフォーマンスを実現すると主張しています。
なぜネイティブな.NETが重要なのか
ほとんどのLLMランタイムはC/C++で記述されているか、別プロセスを公開するPythonラッパーに依存しています。すでにサービスを.NETで運用しているチームにとって、その追加レイヤーはコンテナ、プロセス間通信、そして攻撃対象領域(アタックサーフェス)の拡大を意味します。推論を同じランタイム内に保持することで、開発者はCI/CDパイプラインを簡素化し、ネットワークホップによるレイテンシを削減し、Python環境の維持コストを抑えることができます。
TensorSharpの仕組み
著者はllama.cppを再利用するのではなく、エンジンをゼロから構築しました。CPUバックエンドは100% C#で記述されているため、WindowsおよびLinuxではネイティブな依存関係なしで動作します。GPUサポートは既存のグラフィックスAPIを利用しています。Nvidia向けにはCUDA、Appleシリコン向けにはMLX、macOS GPU向けにはMetal、そしてクロスプラットフォームハードウェア向けにはVulkanが提供されます。コア部分には、paged key-value (KV) キャッシュ、continuous batching、そしてQwenやGemmaなどのモデル向けのspeculative decodingといった最新のテクニックが組み込まれています。
開発者がすぐに利用できる機能
- GGUFモデルとの互換性 – 最近のオープンソースLLMリリースで使用されているものと同じフォーマットです。
- クロスプラットフォーム動作 – コードを変更することなく、Windows、macOS、Linuxで動作します。
- OpenAIおよびOllama互換のHTTP API – 既存のクライアントライブラリのドロップインリプレイスメント(そのまま置き換え)として機能します。
- マルチモーダル対応 – プロンプトの一部として画像、ビデオ、オーディオ、PDFを取り込むことができます。
- ツール呼び出しと構造化出力 – チャットベースのエージェントで一般的な関数呼び出し(function-calling)パターンをサポートしています。
llama.cppとのパフォーマンス比較
メンテナーが共有したベンチマークでは、以下のような結果が出ています。
- PrefillおよびTime-to-First-Token (TTFT) – TensorSharpはllama.cppを上回ることが多く、初期レスポンスのレイテンシを低減します。
- Decodeスループット – 通常、llama.cppと同等か、わずかに遅くなります。
これらの数値は、純粋なC#実装が、最もレイテンシに敏感なフェーズにおいて速度を犠牲にすることなく、生のトークン/秒(token-per-second)出力においても競争力を維持していることを示唆しています。
注意事項
- 実環境でのパフォーマンスは、モデルのアーキテクチャ、ハードウェア構成、メモリレイアウトによって異なります。本番環境への導入前に、開発者自身でベンチマークを実行することをお勧めします。
今後の注目点
Telegram上のプロジェクトのディスカッションチャンネルでは、アーリーアダプターが結果を共有したり、機能をリクエストしたりすることができます。
まとめ: TensorSharpは、.NETを利用する開発現場に対し、LLM推論をアプリケーションに直接組み込む手段を提供します。これにより、個別のPythonスタックの必要性がなくなり、事実上の標準であるllama.cppに匹敵するレイテンシを実現できます。本番環境のチームはターゲットとなるハードウェアでパフォーマンスを検証すべきですが、このエンジンは.NETエコシステム内でのネイティブなAIサービスへの明確な道筋を示しています。
