
如何给 Colibrì 的 GLM-5.3-Flash 提供图片输入并控制单图 token 上限【免费下载链接】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ì 的 GLM-5.3-Flash 引擎c/glm53.c带有一个 vision tower但 C 引擎本身不认 JPEG、不做缩放和归一化——图片预处理由 Python 工具完成引擎只接收预先切好的 patch。这篇文档回答两件事如何通过coli chat/coli web/ OpenAI 接口把一张图片交给 GLM-5.3-Flash以及用哪个环境变量控制单张图最多消耗多少 token。前提你已经用转换脚本得到模型容器并构建了引擎或coli启动器。引擎读的是转换后的容器不是 Hugging Face 原始快照。准备转换模型容器并构建引擎模型容器一次命令完成下载和转换逐分片处理峰值磁盘占用是输出目录加一个 5 GB 源分片不会占满原仓库的 328 GBpython3 tools/convert_glm53.py --outdir /path/glm53_i4 --min-free-gb 30其中/path/glm53_i4替换为你存放模型容器的本地目录--min-free-gb 30要求目标盘至少留有 30 GB 空闲。构建引擎与使用方式来自 docs/glm53-flash.mdmake glm53 ./glm53 --model dir --prompt Ciao, come stai? --greedy 32dir是模型容器目录。图片输入只在启动器coli这条路径上可用它是图片和 chat template 的所在coli chat --model dir --no-think coli serve --model dir coli web --model dir提供图片输入三种入口docs/glm53-flash.md 的 Vision 一节说明图片可以从三个面进入coli chat直接在输入里粘贴图片路径。CLI 按扩展名识别图片.png、.jpg、.jpeg、.webp、.bmp、.gif、.tif、.tiff见 c/coli 中的IMAGE_SUFFIXES。两点行为需要注意每条消息只接受一张图片给出两个路径时 CLI 直接提示 una immagine per messaggio每条消息一张图并拒绝发送文件不存在时 CLI 会立刻报错并给出它解析到的本地路径不会带着空图片去等模型回答。在 WSL 里粘贴 Windows 路径C:\Users\...时CLI 会自动翻译成/mnt/c/...形式。coli web在页面里 attach 或拖放图片文件。OpenAI 兼容接口coli serve消息里用image_urlpartURL 给 base64 data URI 或本地路径。远程 URL 会被直接拒绝而不是去抓取——服务器不应该按发送方指定的地址发起网络连接。底层协议是IMAGE帧图片以独立帧发出紧跟在它所属的SUBMIT请求之前见 docs/serve_protocol.md。提示词中必须已为每个输出 token 放好一个|image|占位符数量是(grid_h/merge) × (grid_w/merge)数量对不上时引擎拒绝而不是答非所图。引擎同时只挂一张待处理图片新图会直接丢掉旧图。预处理tools/glm53_image.py 做了什么引擎拿到的是已切好的 patch所以 c/tools/glm53_image.py 负责完整的前处理顺序与官方Glm5NextImageProcessor一致解码并转 RGBsmart_resize选出一张对齐到 28 的画布patch 14 × merge 2且不超过 checkpoint 的 token 预算缩放、按 1/255 归一、用 CLIP 均值和方差标准化最后按 vision tower 要求的顺序merge 块、通道、时间重复、行、列切成 patch。图像保持宽高比缩放并补零不做拉伸补零发生在归一化之前。几何参数patch_size、merge_size、temporal_patch_size、均值方差优先从模型目录的processor_config.json和config.json读取避免在几何不同的 checkpoint 上切出错误尺寸的 patch。文档说明它与官方 processor 对齐所有试过的形状几何一致不发生重采样的位置像素位级一致发生重采样时最坏差异 0.03Pillow 与 torchvision 的 bicubic 之差。单独运行它查看一张图的网格规模文档用法python3 tools/glm53_image.py foto.jpg --out patches.f32 python3 tools/glm53_image.py foto.jpg --json # 只打印网格--model dir传入 checkpoint 目录以读取其真实参数--json输出grid_h、grid_w、patches、image_tokens四个字段image_tokens就是这张图会占用的 token 数可直接用来核对预算。控制单图 token 上限GLM53_MAX_IMAGE_TOKENScheckpoint 自身的上限是每图 8000 token。以 1080p 照片为例8000 的上限对应 2691 个 token——对一个专家从磁盘流式读取的引擎这是一段没人愿意干等的 prefill。每个 image token 覆盖 28×28 像素设成 256 还能看清普通文字设成 64 只剩形状和颜色。图是被缩小而不是裁切丢的是细节而非局部。docs/ENVIRONMENT.md 中glm53一节的定义变量默认值作用GLM53_MAX_IMAGE_TOKENScheckpoint 的8000单图 token 上限。每个 token 覆盖 28×28 像素256 保持普通文字可读64 只保留形状和颜色。图片缩小而非裁剪。该变量由c/glm53.c读取tools/glm53_image.py的预处理也读同一个变量所以在运行coli的 shell 里 export 即可同时约束引擎与预处理export GLM53_MAX_IMAGE_TOKENS256 coli chat --model dir想确认某张图实际落到多少 token用--json看image_tokens或者设置GLM53_VERBOSEglm53 专有的调试变量引擎会把解析出的几何、专家预算和每 token 缓存成本打印到 stderr。限制与边界远程图片 URL 一律被拒绝只能给 base64 data URI 或本地路径引擎只保留一张待处理图片连续发图时旧图会被丢弃模型不会假装还在回答上一张照片图片占位符数量与 IMAGE 帧网格不匹配时引擎拒绝该请求GLM53_*变量只被c/glm53.c读取与其他引擎colibri、kimi_k3等的变量互不通用设错引擎不会有任何警告。进一步的细节见 docs/glm53-flash.mdVision 与 Environment 节、docs/ENVIRONMENT.mdGLM53_MAX_IMAGE_TOKENS行和 docs/serve_protocol.mdIMAGE帧格式。【免费下载链接】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),仅供参考