.NET 10 推理大模型TensorSharp 3.3.0 部署实测:纯.NET推理引擎反超llama.cpp 1.5倍,DFlash2提速62%

TensorSharp 是开发者傅忠恺打造的原生 .NET 10 大模型推理引擎,直接加载 GGUF,跨 Windows/macOS/Linux 运行,自带 CLI、Web 聊天界面与 Ollama/OpenAI 双兼容 API。2026-08-30 发布的 3.3.0.0 版本合入约 40 个 PR:首发 Wan 视频生成、落地 GLM-5.2 与 Muse-Glimmer、推出 DFlash2 投机解码并补齐服务端安全。社区背靠背实测显示其 prefill 吞吐较 llama.cpp 最高快 1.50×,DFlash2 让 Qwen3.8-27B 解码从 19.5 升至 31.7 tok/s。适用于想把本地推理落进 C#/.NET 技术栈、或想换引擎榨干显卡的开发者


一、模型速览

严格说,TensorSharp 不是"一个大模型",而是一套原生 .NET 10 的本地推理引擎 (仓库 github.com/zhongkaifu/TensorSharp,BSD-3-Clause 许可)。它不用 Python、不用 C++,直接加载 GGUF 跑自回归 LLM、文本扩散与视频扩散模型;后端覆盖 GGML(Metal/CUDA/Vulkan)、直连 CUDA、Apple MLX 与纯 C# CPU;对外提供控制台、ASP.NET Core Web UI、Ollama 兼容 API 与 OpenAI 兼容 /v1/chat/completions。一句话定位:给 .NET 生态一个零原生依赖、可内嵌业务系统的本地推理底座,并在 prefill 延迟上反超 llama.cpp。 它的价值不在"又一个推理库",而在于把推理能力下沉到 .NET 运行时------C# 程序可以像调用本地方法一样加载 GGUF、做连续批处理与投机解码,无需额外起一个 Python 进程或守护服务,部署形态和普通 NuGet 组件没有区别。

目前已注册的自回归家族包括 Gemma 3/4、Qwen 3/3.5/3.6/3.8 Flash-Next、GLM 5.x、DeepSeek V4 Flash、GPT-OSS、Nemotron-H、Mistral3、Muse-Glimmer、DiffusionGemma(文本扩散),以及多模态 Qwen-Image-Edit、Wan 2.1/2.2 视频生成与 MiniMax-H3 音视频联合生成。3.3.0.0 于 2026-08-30 发布,距上个版本 3.2.1.0 仅三周半却合入约 40 个 PR,迭代节奏凶猛;官方同时提供 10 个预编译包(CLI/Server × Linux CPU/CUDA、macOS arm64、Windows CPU/CUDA),零原生依赖即可开箱。作为本周三"推理优化工具"主题下最新鲜的候选,它把"换引擎就能白嫖性能"这件事做到了开箱即用------这也是本文选它而非又一款新模型的原因。

二、核心亮点

1. 零原生依赖 + .NET 10 源生成互操作 + 服务端安全。 3.3.0 把全部 DllImport 迁移到源生成的 LibraryImport(#162),原生字符串改按 UTF-8 编组(#144),互操作不再依赖运行时代码生成,跨平台行为一致、启动更稳。对 C# 团队而言,这意味着把它当成一个普通程序集嵌进桌面/服务端即可,无需管理 C++ 工具链。本版还集中补齐了安全:附件/图像编辑/视频路径全部收敛到上传目录内,堵死路径穿越;上传改为扩展名白名单 + 安全 content-type 并支持存储配额;API 与 404 不再泄露宿主机路径;模型热重载失败保留在服模型而非崩溃;新增 --no-webui 纯 API 模式便于嵌入网关。对外提供 HTTP 服务的用户务必升到这一版。

2. DFlash2 投机解码(#175),回滚耗时归零。 Qwen3.x 这类混合架构上,旧投机解码是负优化(18.3→15.5 tok/s),根因是 GDN 递归状态无法截断,每步被部分拒绝都要在 PCIe 上搬 151MB 状态副本。DFlash2 把状态提交全部留在设备端,回滚耗时从 3604ms 直接归零;再叠加分组动态深度卷积与候选选择器(把相邻位置的 top-K 候选通过低秩码本成对打分,将整块 token 读作格图上的一次"游走"),Qwen3.8-27B 在 RTX 3080 笔记本上从 19.5 提到 31.7 tok/s ,且输出与普通解码逐字节一致(官方实测)。同版本 llama.cpp 暂无法加载 DFlash2 草稿器------此项 TensorSharp 暂时独家。

3. vLLM 式分页 KV + 块哈希前缀共享 + 连续批处理。 引擎内核采用分页 KV 池与连续批处理,多并发下显存利用与吞吐接近生产级。配合统一 draft-verify 运行时,已集齐四种投机算法:MTP/NextN 草稿头、独立草稿 GGUF、DSpark/DFlash 块草稿、免训练 n-gram speculator,覆盖从大模型到小模型的提速需求。

4. WAN 视频生成双引擎 + GLM/Muse 家族落地。 首发阿里通义万相 Wan 2.1/2.2(文生/图生视频),同时给出 GGML 全图内核与不依赖 ggml 的 WanDirect 实现,连纯 C# CPU 后端都能出片;蒸馏版 checkpoint 从文件名自动识别并切到 4 步推理,同一 1088×832×121 帧任务在 M5 Pro 上从 3h30m 降到 17m30s。此外 GLM-5.2(744B-A40B MoE、1M 上下文)与 GLM-5.3-Flash(320B MoE)已接入,支持张量并行与 CPU MoE offload------约 92% 的 routed experts 可放进内存、显卡只留主干;Muse-Glimmer-30B 则支持图像输入、思考模式与 ATEM 工具调用。

三、部署实战

环境准备(二选一):

bash

bash 复制代码
# 方案A:装 .NET 10 SDK 后运行
dotnet --version            # 需 >= 10.0
# 方案B:直接用官方 10 个预编译包(CLI/Server × Linux/macOS/Windows)
# 下载解压即可,零原生依赖

模型下载(任意 GGUF,例如 HuggingFace 上的 Qwen3.8-27B / GLM-5.2 / Gemma 4 E4B):

bash

bash 复制代码
# HuggingFace
huggingface-cli download <owner>/<repo> --include "*.gguf" --local-dir ./models
# 国内可改用 ModelScope 镜像下载同名 GGUF

小显存跑超大 MoE:对 GLM 这类模型加 --moe-offload 把专家卸载到内存,显卡只留主干。

后端选择:默认按平台自动挑后端(Windows/Linux 走 CUDA,macOS 走 Metal,无独显走 Vulkan/CPU);显式指定可用 --backend cuda|metal|vulkan|cpu。AMD 用户务必用 3.3.0------小 BAR 显卡上此前有约 27× 的 Vulkan 减速已在 #141 修复。

启动服务(开启 DFlash2 投机解码提速):

bash

bash 复制代码
# 控制台交互 REPL
dotnet TensorSharp.Cli.dll chat --model ./models/model.gguf --temp 0.7

# 或启动 OpenAI 兼容服务(--no-webui 纯 API,便于挂网关)
dotnet TensorSharp.Server.dll --model ./models/model.gguf \
    --port 5000 --spec --no-webui

推理代码(Python 客户端,复制即可跑):

python

bash 复制代码
# pip install openai
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:5000/v1",
    api_key="EMPTY",  # TensorSharp.Server 默认无鉴权
)

resp = client.chat.completions.create(
    model="local",
    messages=[
        {"role": "system", "content": "你是一个简洁的中文助手。"},
        {"role": "user",   "content": "用一句话解释什么是投机解码。"},
    ],
    temperature=0.7,
    max_tokens=256,
)
print(resp.choices[0].message.content)

效果验证:服务启动后日志会打印已加载的 GGUF 架构与量化类型,也可访问 /api/models 查看在服模型;Python 客户端返回标准 OpenAI 格式 ChatCompletion 对象,resp.usageprompt_tokens / completion_tokens,即代表 prefill 与 decode 链路打通。

四、性能测评

速度维度(来源:官方 GitHub 实测 / 社区背靠背测试,2026-08)。需要强调:TensorSharp 的快并非靠牺牲精度换来------DFlash2 与普通解码逐字节一致,说明提速来自计算与调度优化而非近似计算,这点对生产环境尤为关键。

场景 TensorSharp 3.3.0 对照 提升
GLM-5.2 prefill(pp2048,3×RTX PRO 6000 Blackwell,prompt≥1000) 1145.8 tok/s llama.cpp 763.1 tok/s 1.50×
GLM-5.2 prefill(pp4096) ~1.47× vs llama.cpp --- ---
Qwen3.8-27B 解码(RTX 3080 笔记本,贪心) 31.7 tok/s(+DFlash2) 普通解码 19.5 tok/s +62.6%
GLM-5.2 NextN 草稿(--spec 约 1.3×,草稿接受率 94% --- ---

视频生成维度(来源:官方实测):

任务 TensorSharp 3.3.0 对照 提速
图生视频 1088×832×121 帧(M5 Pro,蒸馏 4 步) 17m30s 普通 3h30m ~12×
TI2V-5B 81 帧 480p(16GB 显卡) 8 分钟 --- ---
Wan 2.1 端到端 vs stable-diffusion.cpp --- ---

显存维度:权重采用零拷贝映射 + 原生量化(Q4_KM/Q8_0/IQ 系列/MXFP4),与同文件 llama.cpp 占用基本持平;差异主要来自 KV 池与并发设置,CLI 单轮对话显存≈模型权重本身,超大 MoE 可借 --moe-offload 进一步压低显存峰值。

质量维度:DFlash2 与普通解码逐字节一致 ,属无损提速;Wan 各后端 latent 余弦相似度 ≥0.999、DiT 单步 cos 0.99999+,数值对齐 diffusers 参考实现。需说明:以上 tok/s 均为项目在指定硬件上的最佳-case 实测,落地到你的模型与显卡请以本地复测为准。想自己复测:用相同 GGUF、相同 GPU,在 TensorSharp 与 llama.cpp 上各跑一次长 prefill 与固定 decode,记录 resp.usage 与首 token 耗时即可横向对比;注意关闭其他占用显存的进程,保证两次实验显存余量一致。

五、使用建议

适用:.NET/C# 团队要把本地推理内嵌进桌面或后端服务;想换引擎专门榨 prefill 与首 token 延迟;跑 Wan 视频生成或 GLM-5.2/Muse-Glimmer 这类新家族;AMD 小 BAR 显卡用户(3.3.0 修掉了约 27× Vulkan 减速)。

不适用:需要多机 EP/PP 大规模训练式部署(生态成熟度仍不如 vLLM);依赖 ONNX/TensorFlow 等非 GGUF 格式;需要服务端内置鉴权/TLS(当前需自建 Nginx 反向代理);跨大版本升级请先 pin 版本、核对启动参数,避免 flag 改名导致启动失败。

调优提示 :解码提速一律先加 --spec;超大 MoE 加 --moe-offload 把专家卸到内存;Wan 直接用蒸馏版 checkpoint 触发 4 步推理;对外服务用 --no-webui 纯 API 并加反向代理;自建服务强烈建议升到 3.3.0,安全修复集中在此版本。

选型对照(本地推理引擎横向):

维度 TensorSharp 3.3.0 llama.cpp Ollama vLLM
语言/依赖 C#/.NET10,零原生依赖 C++,无依赖 Go+C,需守护进程 Python,偏重
多并发 连续批处理 + 分页 KV 有限 有限 工业级
投机解码 4 种,含独家 DFlash2 DSpark/MTP 依赖底层 支持
视频生成 Wan / MiniMax-H3 部分 实验性
最适场景 .NET 内嵌 / 桌面 / 视频 通用本地 快速上手 服务端大规模

一句话结论:要"嵌进 C# 程序"或"顺手出视频",TensorSharp 现在是最省心的那条路;要扛千级并发的生产流量,vLLM 仍是默认答案。

相关推荐
格林威2 小时前
C# 图像异步落盘存储:基于Channel 配合 ArrayPool 实现异步落盘
开发语言·人工智能·数码相机·机器学习·计算机视觉·c#·视觉检测
软件黑马王子2 小时前
11.缓存池优化:窗口布局
开发语言·前端框架·c#
格林威2 小时前
C# 图像使用AVX2指令集:使用OpenCvSharp实现字节图像解压缩速度和map_image算子速度提升
开发语言·图像处理·人工智能·计算机视觉·c#·视觉检测·工业相机
软件黑马王子3 小时前
12.缓存池优化:对象上限
开发语言·前端框架·c#
唐青枫16 小时前
别把日志、权限写进业务方法:C#.NET 动态代理从原理到实战
c#·.net
风云16 小时前
Vane.Dispatch 1.0.0 发布:一个与容器、传输层零耦合的 .NET 服务分发引擎
微服务·mvc·.net·ndf·vane.dispatch
fujisheng66118 小时前
Unity UI 生命周期状态机:处理 Covered、异步竞态与事务回滚
c#·unity3d
leoZ2311 天前
第 8 篇:与 AI 协作的工作流 + 完整案例
前端·人工智能·神经网络·自然语言处理·性能优化·c#·php