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 服务开辟了一条清晰的路径。
