这个项目能做什么

TensorFold 是一个本地推理服务器,通过兼容 OpenAI 的 HTTP API 对外提供语言模型服务。它面向两种后端:通过 MLX 支持 Apple Silicon,以及通过 CUDA 支持 NVIDIA GPU。每个受支持的模型家族都自带内核与草稿验证逻辑,而不是依赖单一的通用路径。 安装方式是从 Git 仓库用 pip 安装,CLI 提供 `serve`、`pull`、`models`、`info` 和 `update` 命令。典型的启动方式是 `tensorfold serve <checkpoint>`,之后客户端指向 `http://127.0.0.1:8080/v1`,并使用 `/v1/models` 报告的模型 ID。Chat completions、completions 和 Responses API 均可提供。要求 Python 3.11+,在 macOS 上要求 MLX 0.32.2+。 README 列出了受支持模型家族与检查点的表格,包括 Nemotron 3.5 Lightning、Qwen3.8-27B、Qwen3.8 Flash Next、GLM-5.3-Flash、Gemma 4 26B-A4B、DeepSeek-V4-Flash 和 Ternary Bonsai 2 27B,并注明了各自使用的后端与草稿方法。量化支持因家族而异:Qwen3.8-27B 可读取 MLX affine 2 位到 8 位检查点,包括混合层格式;Flash Next 要求 4 位/group-32 权重;Nemotron CUDA 要求 4 位/group-64 外加一个 MTP 头;GLM 可读取 4 位/group-64 以及混合位宽转换。部分 CUDA 路径接受 NVFP4 或 EXL3 转换,标记为实验性。 一个核心设计主张是精确解码:只有当推测式草稿与同一引擎串行生成的 token 完全一致时才会被接受,采样与提示或种子、绝对位置和 token ID 绑定。README 明确指出,精确性是相对于同一引擎、权重、运行时和设置而言的,并不意味着在 MLX 与 CUDA、不同量化或不同张量并行 rank 数之间输出完全相同。用户可以用 `"draft": false` 比较请求,以检查草稿输出与串行输出。 服务选项涵盖 host/port、对外公布的模型名、上下文大小、回复限制、采样默认值、thinking 开关与推理强度、后端选择、并行度、草稿控制,以及在 MLX 上的提示缓存和内存调优,例如保留前缀、磁盘溢写、快照目录和可复用缓冲区缓存。仅 CUDA 的选项包括 Flash Next 的 KV 缓存 dtype、MTP 置信度阈值和双 rank 张量并行执行。 内存处理有详细文档:MLX 默认使用 RAM 的 70% 作为进程预算,可通过环境变量覆盖,准入核算会考虑权重、缓存增长、回复 token 和 prefill 工作区。内存等级表列出了从 32 GB 到 256 GB 的资格槽位,但大多数单元格标记为 TBD;只有 64 GB M5 Pro 一行有已公布数据,归因于社区在较早版本上的一次运行。README 说明这些是资格槽位,而非最低内存承诺。 MLX 上的提示缓存使用从渲染后的 token 序列推导出的 chunk plan,恢复点位于 assistant 消息开头和第二条消息开头。快照携带模型、运行时、内核和 chunk plan 身份,因此前缀可以跨重启保留。CUDA 引擎保留自己的提示与回复状态,不使用 MLX 的磁盘快照或保留前缀选项。 对于 NVIDIA 硬件,README 推荐使用 NVIDIA 的 PyTorch 容器,因为该包没有 CUDA 安装 extra。Qwen3.8-27B、Flash Next 和 Nemotron 支持一个或两个 CUDA rank,而 GLM 要求两个。Rank 0 提供 HTTP 服务。 视觉输入是可选的:安装 vision extra 并以 `--vision` 启动兼容的 Qwen3.5/3.8 dense 检查点,即可通过同一引擎接受图像和文本内容部分。该项目采用 MIT 许可证,模型权重保留各自的许可证,部分可选草稿检查点带有非商业条款,已在第三方声明中注明。