
如何用 Colibrì 在 25 GB 内存主机上跑起 975B 的 Inkling【免费下载链接】colibriRun frontier MoE models on hardware you already own — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 项目地址: https://gitcode.com/GitHub_Trending/colibri3/colibriColibrì 用「专家从磁盘流式读取」的方式把 Thinking Machines 的 Inkling975B 总参 / 41B 激活Apache 2.0放到普通主机上运行。但官方预转换的 int4 容器里routed experts 虽然是 int4dense 权重仍是 bf16这部分必须常驻内存每个 token 都要用到全部实测占 49.4 GB且加载时load_w会把 bf16 展开成 f32峰值约 99 GB。文档明确低于约 64 GB 内存的机器进程会在生成任何东西之前就被杀掉。要让 975B 在 25 GB 内存的主机上跑起来文档给出的路径是把 dense 部分单独量化成 int4-gs64——从 49.4 GB 降到 15.3 GB——引擎会自动识别这个容器。本文按 docs/inkling.md 的流程走一遍下载预转换快照 → 量化 dense 并放入容器目录 → 构建引擎 → 生成并验证。开始前需要准备什么来自 docs/inkling.md 的硬性前提构建引擎C 编译器 make纯 CPU 构建无其他依赖转换脚本需要python3与 numpy存储NVMe 磁盘存放快照。预转换容器约469 GiBdense 量化会再写出约 15.3 GB 的新文件确认磁盘余量足够内存25 GB 主机走的是 int4 dense 容器路径bf16 dense 的标准构建要求约 120 GB 内存不适用于本场景。Inkling 引擎由c/inkling.c实现构建目标见 c/Makefile支持音频输入vision 编码器与 MTP 头不加载。第 1 步获取预转换的 int4 快照在仓库根目录执行命令直接来自 docs/inkling.mdhf download nbeerbower/Inkling-colibri-int4 --local-dir ~/Models/inkling_i4~/Models/inkling_i4是文档示例路径可换成你主机上任意 NVMe 目录后文命令需同步替换。如果手头有原始 bf16 checkpoint 而不是下载预转换容器可以自行转换--watch可在下载进行中边下边转python3 c/tools/convert_inkling_int4.py --indir bf16-checkpoint --outdir ~/Models/inkling_i4其中bf16-checkpoint替换为你本地 bf16 checkpoint 的路径。这条路径是原文档给出的替代方案下载预转换容器是最短路径。第 2 步把 dense 权重量化为 int4-gs64这一步是本场景的核心。脚本 c/tools/convert_inkling_dense_int4.py 的工作方式摘自脚本头部注释只读取各 shard 的 header 建索引逐张量按 4096 行分块量化峰值内存约 1 GB只写一个新文件464 GB 的 routed experts 分片完全不碰原始文件以只读方式打开失败可以重跑。文档给出的整轮耗时约 14 分钟。先跑--plan估算它只打印计划、不写任何文件python3 c/tools/convert_inkling_dense_int4.py --dir ~/Models/inkling_i4 --plan输出包含待转换张量数、bf16 输入大小、预估输出大小和磁盘剩余空间。确认磁盘剩余量足够脚本要求剩余空间不小于预估输出的 1.15 倍否则直接以[ERR]退出后去掉--plan正式执行python3 c/tools/convert_inkling_dense_int4.py --dir ~/Models/inkling_i4成功后生成~/Models/inkling_i4/dense-int4g64.safetensors脚本还会打印按类别统计的量化误差相对 L2在真实权重上实测例如 attention/shared experts/dense MLP 约 11%、embed/lm_head 约 0.9%。最后按文档要求把文件放进固定位置引擎才能识别mkdir -p ~/Models/inkling_i4/dense-int4g64 mv ~/Models/inkling_i4/dense-int4g64.safetensors \ ~/Models/inkling_i4/dense-int4g64/dense.safetensors量化后的精度策略来自脚本与 docs/inkling.mdattention、shared experts、dense MLP 用 int4-gs64相对 L2 误差约 11%文档解释这是 4 bit 在该权重分布下的固有代价不是转换缺陷embed_tokens和lm_head保持 int8 逐行量化约 0.9%因为它们参与每个 tokennorms、biases、router、conv1d 原样保留。11% 的误差下 975B 在 25 GB 主机上仍能给出连贯输出。第 3 步构建引擎make -C c inkling # 纯 CPU无外部依赖另外还有一个可选分支make -C c inkling CUDA1 # bf16 residents in VRAM (needs ~37 GB free)CUDA 构建把 bf16 常驻权重放进显存、要求约 37 GB 空闲显存并且把腾出的内存让给更大的专家缓存——它面向大内存机器25 GB 主机走纯 CPU 构建即可。第 4 步运行并验证文档给出的启动方式SNAP~/Models/inkling_i4 ./c/inkling -p The capital of France is -n 64SNAP指向快照目录-p是提示词-n限制生成 token 数到 eos 或达到 N 为止。判断 dense 容器是否生效的依据是启动日志中的这行文档原文[dense] container int4-gs64: …看到这行说明引擎已自动加载 int4 dense 容器。如果日志里没出现它按文档顺序排查两点dense-int4g64/dense.safetensors是否已移动到正确位置SNAP是否指向包含该目录的快照根目录。反过来设置INK_DENSE_Q40可以让引擎忽略该容器、回退到 bf16 dense——文档强调内存充足的机器不需要做第 2 步什么都不改即可。关于速度要有正确预期文档对 25 GB 主机的说法很直白dense 集占用后只剩约 8 GB 留给专家缓存对 464 GB 的专家库而言驻留率约 1.7%decode 是磁盘受限的——单块 NVMe 上每个 token 要几十秒不是交互式速度。这条路径的价值是让模型在小主机上可运行、可测试而不是快。文档明确提示PIN和更大的缓存在你愿意给更多内存时按比例见效。可调项与边界专家缓存上限cap第一个位置参数或coli的--cap指定每层在内存里保留多少个专家。每层每个槽位约 28 MBcap × 层数 × 28 MB要和常驻 dense 集共存int4 dense 容器加 25 GB 主机的组合下文档建议cap取 2 左右。取小值仍然正确但慢引擎按cap分批处理 routed experts 并累加中途被淘汰的专家会重读而不是被错误值静默替代。缓存预热每次生成后引擎按(layer, expert)统计专家选择并写入SNAP/.coli_usage启动时固定pin每层热度最高的前PIN_N个专家默认cap/20 表示只做排序不 pin。计数跨运行累积所以预热提示词应当多样单一提示词训出来的 pin 会过拟合。一次批量预热SNAP~/Models/inkling_i4 ./c/inkling -f warmup_prompts.txt -n 32相关环境变量PINoff完全关闭预热PINpath换用别的统计文件PIN_Nn指定每层 pin 数USAGE_SAVE0不重写统计文件跑基准时用。TOPP按累计权重截断路由减少每 token 读取的专家数——这是磁盘受限主机上真正有效的杠杆但它是与声明的 top-k 不同的计算默认关闭。开启后运行会报告[topp] … N/M routed used (X% trimmed)便于度量取舍。ATTN_BITS8转换脚本的默认行为就是把 attention 也量化为 int8文档另有一处提到ATTN_BITS8可把 attention 误差从 11% 降到 1.1%代价约 4 GB 内存。如果你想用内存换精度保持默认即可想进一步压内存可以调整但文档标注 attention 4 bit 会让输出退化谨慎处理。到此25 GB 主机上 Inkling 975B 的最短可执行路径就是下载预转换容器 →convert_inkling_dense_int4.py两遍先--plan后正式转换 移动 dense 容器 →make -C c inkling→ 用SNAP启动并确认[dense] container int4-gs64日志。能生成连贯输出即验证通过速度上接受文档给出的磁盘受限预期想提升体验再按上文用预热缓存和TOPP两个文档明确支持的旋钮。【免费下载链接】colibriRun frontier MoE models on hardware you already own — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 项目地址: https://gitcode.com/GitHub_Trending/colibri3/colibri创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考