kkokosa/dotLLM
LLM inference engine written in .NET
解决的问题
dotLLM 是一个使用 C# 和.NET 原生构建的高性能 LLM 推理引擎。它消除了对 Python 封装或 llama.cpp 等外部库的需求,为运行基于 Transformer 的模型(如 Llama、Mistral、Phi、Qwen 和 DeepSeek)提供了纯.NET 实现,具备原生速度和效率。
工作原理
该引擎使用非托管内存来实现零 GC 推理,并利用 SIMD 向量化进行 CPU 计算。对于 GPU 加速,它使用通过 CUDA Driver API 加载的 CUDA PTX 内核。它支持通过内存映射文件加载 GGUF 模型,实现近乎瞬时的启动。架构采用分层设计,将服务器(OpenAI 兼容 API)、引擎(KV-cache 和调度)以及后端(CPU/CUDA)分离。
适用对象
希望在不依赖 Python 或原生共享库的情况下将 LLM 推理直接集成到应用程序中的.NET 开发者,以及正在寻找具有 OpenAI 兼容 API 的轻量级、高性能本地 LLM 服务器的用户。
亮点
- 原生.NET 实现:从底层使用 C# 编写;并非封装层。
- 性能优化:Zero-GC 热路径、SIMD 优化的 CPU 内核以及 CUDA GPU 加速。
- 高级推理功能:支持投机解码 (speculative decoding)、分页 KV-cache 和提示词缓存 (prompt caching)。
- 结构化输出:受限解码,确保符合 JSON、JSON Schema、正则表达式和语法规范。
- 部署灵活性:提供全局.NET 工具、自包含二进制文件或 NuGet 包。
- OpenAI 兼容性:包含带有
/v1/chat/completions的 ASP.NET 服务器和内置 Web UI。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目