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サービスへの明確な道筋を示しています。