【免费下载链接】Tess-4-27B-8bit
Tess-4-27B-8bit 是一个已完成 MLX 格式转换的 270 亿参数多模态视觉语言模型(VLM),由mlx-community社区使用 mlx-vlm 0.6.4 工具将原始模型转换为 8bit 量化版本,让 Mac 用户无需 GPU 服务器,也能通过mlx_vlm.generate一条命令跑起长上下文、支持工具调用的多模态推理。
本文面向新手,用尽量少的代码讲清楚三件事:
- 🔄转换原理:原始权重如何变成 MLX 8bit 格式,
scales、biases是什么 - 🗂️目录结构:仓库里每个文件负责什么,权重是怎么分片的
- 🌱生态路线:MLX 生态里 mlx-vlm、mlx-lm 各自的角色,以及社区如何持续维护这类转换版模型
一、为什么需要"转换到MLX格式"
大模型权重发布后,往往要针对不同硬件框架做"格式适配"。MLX 是面向 Apple Silicon(M 系列芯片)的统一内存加速框架,其核心优势是权重直接放在统一内存里计算,省去 CPU↔GPU 的数据拷贝,在 Mac 上推理时能效比极高。
但 MLX 原生并不"认识"Hugging Face 上发布的safetensors张量布局与量化描述,因此需要一次转换:
| 阶段 | 形态 | 关键动作 |
|---|---|---|
| 原始权重 | 高精度浮点(bfloat16)safetensors | 模型方发布,体积大 |
| 量化 | 8bit 分组量化 | 每 64 个权重共享一组缩放/偏移参数 |
| MLX 格式 | 6 个分片 safetensors + 配置/索引 | 供 mlx-vlm 直接加载 |
本仓库正是第三阶段的产物:由migtissera/Tess-4-27B转换而来,许可证为 Apache-2.0(见 README.md 头部的元信息)。
二、转换原理:8bit 分组量化到底改了什么
打开 config.json 可以看到量化配置:
"quantization": { "group_size": 64, "bits": 8, "mode": "affine" }- bits: 8—— 权重从 bfloat16(每参数 2 字节)压缩为 8bit(约 1 字节),模型体积接近减半;
- group_size: 64—— 每 64 个连续权重为一组,组内共享校准参数;
- mode: affine—— 仿射量化,即每额外存一组
scale(缩放)与bias(偏移)来还原数值范围。
在 model.safetensors.index.json 的权重映射里,能直观看到成对出现的张量:
language_model.model.layers.0.mlp.up_proj.weight language_model.model.layers.0.mlp.up_proj.scales language_model.model.layers.0.mlp.up_proj.biases.weight是量化后的 8bit 权重,.scales/.biases就是 affine 量化所需的组级参数。而 LayerNorm、Mamba/线性注意力中的状态参数等小模块则保持原精度——只有大矩阵被量化,精度损失被控制在敏感层之外,这是 8bit 版本"质量接近原始模型"的关键。
整个模型共2180 个张量、总大小约 29.5GB(索引文件metadata.total_size字段可查),说明转换时完整保留了语言模型与视觉塔的全部参数。
三、仓库文件结构:每个文件负责什么
| 文件 | 作用 | 新手看点 |
|---|---|---|
| README.md | 使用说明与模型出处 | 唯一的"快速上手"入口 |
| config.json | 模型架构 + 量化配置 | 确认bits: 8、group_size: 64 |
| model.safetensors.index.json | 张量→分片文件的映射索引 | 加载器靠它找到每个权重 |
| model-00001-of-00006.safetensors ~ model-00006-of-00006.safetensors | 6 个权重分片 | 大模型必须分片存储 |
| chat_template.jinja | 对话/工具调用提示词模板 | 支持 thinking 与 tool_calls |
| tokenizer.json、tokenizer_config.json、vocab.json | 词表与分词器 | 词表大小 248320 |
| processor_config.json、preprocessor_config.json、video_preprocessor_config.json | 图像/视频预处理参数 | 决定输入图片如何切片 |
分片分布:2180 个张量被分配到 6 个文件中(分片1 含视觉塔与 0~9 层,约 560 个张量;分片6 主要是lm_head等收尾层,仅 98 个),单文件控制在合理体积内,方便断点续传与流式加载。
3.1 这是一个什么样的模型
- 架构:
Qwen3_5ForConditionalGeneration(config.json 的architectures字段),文本底座hidden_size: 5120、64 层,最大上下文262144token; - 混合注意力:64 层中每 4 层一组"3 层 linear_attention + 1 层 full_attention"(见
layer_types数组),线性注意力让长文本推理更省显存; - 视觉塔:27 层 ViT,
patch_size: 16、spatial_merge_size: 2,图像先切成 16×16 小方块再两两合并喂给语言模型; - 多模态输入:支持图片与视频(processor_config.json 中同时定义了 image/video 两套处理器,视频按 2fps 抽帧、最多 768 帧)。
3.2 对话模板:工具调用与思考模式开箱即用
chat_template.jinja 并非简单的"用户/助手"拼接,它内置了完整能力:
- 系统区注入 `
【免费下载链接】Tess-4-27B-8bit
相关推荐
从bf16到MLX 8Bit:grug-27b-Text-mlx-8Bit量化转换全流程原理与云端部署指南
从bf16到MLX 8Bit:grug 27b Text mlx 8Bit量化转换全流程原理与云端部署指南 grug 27b Text mlx 8Bit 是一个
LongCat-Flash-Lite-Sparse-8bit生态全景:mlx-vlm适配、6-bit/4-bit变体路线与社区支持指南
LongCat Flash Lite Sparse 8bit生态全景:mlx vlm适配、6 bit/4 bit变体路线与社区支持指南 LongCat Flas
MIT 授权与社区生态:Ming-Image MLX 系列(8bit 与 bf16)全景及路线图
MIT 授权与社区生态:Ming Image MLX 系列(8bit 与 bf16)全景及路线图 Ming Image MLX 8bit(mlx communi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考