TensorSharp 是一款针对 GGUF 语言模型的纯 .NET 推理引擎,现已正式发布。它让 .NET 开发者无需启动 Python 服务器即可运行大语言模型 (LLM) 推理。该项目声称其性能可与广泛使用的 llama.cpp 相媲美,并支持在 Windows、macOS 和 Linux 上运行,同时支持 CPU、CUDA、MLX、Metal 和 Vulkan 后端。

为什么原生 .NET 至关重要

大多数 LLM 运行时是用 C/C++ 编写的,或者依赖于暴露独立进程的 Python 封装。对于服务已经在 .NET 上运行的团队来说,这一额外层增加了容器、进程间通信以及更大的攻击面。将推理保留在同一个运行时中,可以让开发者简化 CI/CD 流水线,减少网络跳转带来的延迟,并降低维护 Python 环境的成本。

TensorSharp 是如何构建的

作者从零开始编写了该引擎,而不是复用 llama.cpp。其 CPU 后端 100% 使用 C# 编写,因此在 Windows 和 Linux 上运行时无需原生依赖。GPU 支持来自现有的图形 API:Nvidia 的 CUDA、Apple Silicon 的 MLX、macOS GPU 的 Metal 以及跨平台的 Vulkan。核心功能集成了许多现代技术,例如针对 Qwen 和 Gemma 等模型的分页键值 (KV) 缓存、连续批处理 (continuous batching) 和投机解码 (speculative decoding)。

开发者开箱即用的功能

  • GGUF 模型兼容性 – 与近期开源 LLM 发布所使用的格式相同。
  • 跨平台运行 – 无需更改代码即可在 Windows、macOS 和 Linux 上运行。
  • 兼容 OpenAI 和 Ollama 的 HTTP API – 可作为现有客户端库的即插即用替换方案。
  • 多模态处理 – 可以将图像、视频、音频和 PDF 作为提示词 (prompt) 的一部分进行输入。
  • 工具调用和结构化输出 – 支持聊天型智能体 (chat-based agents) 中常见的函数调用模式。

性能对比 llama.cpp

维护者分享的基准测试显示结果各异:

  • 预填充 (Prefill) 和首字延迟 (TTFT) – TensorSharp 通常优于 llama.cpp,能为初始响应提供更低的延迟。
  • 解码吞吐量 – 通常与 llama.cpp 相当,或略慢于后者。

数据表明,纯 C# 实现并没有在延迟最敏感的阶段牺牲速度,同时在原始每秒 Token 输出量方面也保持了竞争力。

需要注意的限制

  • 实际性能会因模型架构、硬件配置和内存布局而异;开发者在投入生产环境之前应进行自己的基准测试。

后续关注点

该项目在 Telegram 上的讨论频道为早期采用者提供了一个分享结果和请求功能的地方。

总结: TensorSharp 为 .NET 团队提供了一种将 LLM 推理直接嵌入其应用程序的方法,消除了对独立 Python 技术栈的需求,并提供了与事实上的 llama.cpp 基准相当的延迟。生产团队应在目标硬件上验证性能,但该引擎为 .NET 生态系统内的原生 AI 服务开辟了一条清晰的路径。