- 人工智能
- 大模型
- 基础模型
- 多模态
- 计算机视觉
- AI Agent
【免费下载链接】Fara1.5-27B-OptiQ-4bit
Fara1.5-27B-OptiQ-4bit是微软 Fara1.5-27B 计算机操作(computer-use)/ Web Agent 视觉语言大模型的MLX 混合精度(4/8-bit)量化版,可在 Apple Silicon 上本地推理,磁盘占用仅约 20GB,平均每个权重 4.74 bit。很多新手第一次打开这个仓库会被十几个文件搞晕:为什么有 4 个 safetensors?kv_config.json是什么?optiq_metadata.json谁在用?本文将逐一拆解每个文件的作用与加载顺序,帮你 10 分钟看懂整个仓库结构。
一、目录结构一览表
| 文件 | 作用 | 一句话解释 |
|---|---|---|
| config.json | 模型架构 + 量化蓝图 | 每个子层用 4bit 还是 8bit,都写在这里 |
| model-00001-of-00004.safetensors ~ model-00004-of-00004.safetensors | 语言模型权重(分片) | 27B 参数切 4 份,每份约 5GB |
| optiq/optiq_vision.safetensors | 视觉塔权重 | 保留 bf16 全精度,约 920MB |
| model.safetensors.index.json | 权重索引 | “目录页”:每个权重在哪个分片里 |
| optiq_metadata.json | 量化元数据 | 量化方法、达成 bit 数、层分配统计 |
| tokenizer.json / tokenizer_config.json | 分词器 | 文本切词规则 + 图像/视频特殊 token |
| generation_config.json | 生成默认参数 | temperature 0.6、top_k 20、top_p 0.95 |
| chat_template.jinja | 对话模板 | 把多轮消息 + 图片占位符渲染成提示词 |
| kv_config.json | KV Cache 量化配置 | 16 个全注意力层的 KV 缓存量化方案 |
📌 注:本镜像仓库中的
.safetensors文件以 Git LFS 指针存储,git clone后会自动拉取完整二进制(语言模型权重合计约 20GB)。
二、每个文件的作用详解
1️⃣ config.json:模型架构 + 混合精度量化蓝图
这是加载器读取的第一个文件,它定义了:
- 架构类型:
architectures为Qwen3_5ForConditionalGeneration,model_type为qwen3_5,即基于 Qwen3.5 的视觉-语言模型(见 config.json)。 - 文本塔参数:64 层隐藏层、
hidden_size5120、词表 248320、支持 262144 超长上下文(见 config.json)。特别的是,64 层里每 4 层出现 1 层全注意力(full_attention),其余为线性注意力(linear_attention),因此只有 16 层需要 KV Cache。 - 量化方案:
quantization段记录全局默认 4bit、group_size64,并逐层给出例外覆盖——对“敏感”子层(如第 0 层几乎所有投影、embed_tokens、lm_head)提升到 8bit,这就是“混合精度”的来源(示例见 config.json 与 config.json)。 - 视觉侧车声明:文件末尾的
optiq_vision段指明视觉塔权重存放在独立文件optiq/optiq_vision.safetensors,精度保持bfloat16,共 333 个张量(见 config.json)。
2️⃣ model-00001 ~ 00004-of-00004.safetensors:语言模型权重的 4 个分片
27B 参数量化后约 20GB,超过了单文件大小习惯,于是切成 4 片:
| 分片 | 实际大小 |
|---|---|
| model-00001-of-00004.safetensors | 约 5.34GB |
| model-00002-of-00004.safetensors | 约 5.36GB |
| model-00003-of-00004.safetensors | 约 5.36GB |
| model-00004-of-00004.safetensors | 约 4.27GB |
每个被量化的线性层不再只存weight,而是拆成三个张量:weight(int4/int8 打包值)、scales(每 64 个权重一个缩放因子)、biases(零点),三者共同完成“反量化还原”。例如layers.0.linear_attn.in_proj_qkv的三件套都落在 1 号分片里(见 model.safetensors.index.json)。
3️⃣ optiq/optiq_vision.safetensors:保持 bf16 的视觉塔
视觉编码塔(ViT,27 层、hidden_size1152)对精度非常敏感,量化后识别能力会明显下降,因此 OptiQ 将它整体保留在 bf16,单独存放在 optiq/optiq_vision.safetensors(约 921MB,333 个张量)。这是本仓库的“一个仓库两种玩法”的关键:
- 只加载 4 个主分片 → 纯文本模型,标准
mlx-lm即可运行; - 再加载视觉侧车 → 完整“图片 + 文本”计算机操作模型,需用
optiq加载。
4️⃣ model.safetensors.index.json:权重文件的“目录页”
加载器不会去逐个打开 safetensors 猜测内容,而是先读这份索引:
metadata里写明总参数 26,895,993,856(约 26.9B)、总大小 20,338,206,208 字节(约 20GB)(见 model.safetensors.index.json);weight_map是“权重名 → 所在文件”的映射表,例如lm_head三件套指向 4 号分片,vision_tower.*全部指向optiq/optiq_vision.safetensors(见 model.safetensors.index.json 与 model.safetensors.index.json)。
有了它,加载器可以按需只读需要的分片,而不是把 20GB 全部一次性读进内存。
5️⃣ optiq_metadata.json:量化配方的“小票”
这份文件记录了本次量化是怎么做的,方便复现与审计(见 optiq_metadata.json):
method: config_transfer—— 没有对 Fara1.5 单独跑敏感度评估,而是直接移植自mlx-community/Qwen3.5-27B-OptiQ-4bit的逐层 bit 分配(Fara1.5 是 Qwen3.5-27B 的微调版,架构完全相同);target_bpw: 4.5,实际达成achieved_bpw ≈ 4.74;- 统计:217 个高层用 8bit、279 个高层用 4bit。
6️⃣ tokenizer.json 与 tokenizer_config.json:文本入口
- tokenizer.json 是分词词表本体(约 20MB);
- tokenizer_config.json 定义行为:分词器类为
Qwen2Tokenizer,处理管线为Qwen3VLProcessor,最大长度 262144,并声明了图像占位符<|image|>、视频占位符<|video|>、vision_bos/eos等多模态特殊 token(见 tokenizer_config.json)。这些 token id 与config.json中的image_token_id: 248056等一一对应。
7️⃣ generation_config.json:开箱即用的采样参数
记录推荐推理参数(见 generation_config.json):temperature: 0.6、top_k: 20、top_p: 0.95,以及bos/pad/eostoken id。大多数前端会默认采用它,你无需手动调参。
8️⃣ chat_template.jinja:把对话“排版”成模型能懂的样子
这是一份 Jinja 模板(见 chat_template.jinja),负责把 messages 数组渲染成最终提示词:遇到图片内容项就插入<|image|>占位并编号("Picture 1: ...”),同时内置了工具调用(function call)的 system 段落格式——这正是它作为 Web Agent 模型能“调工具点网页”的模板基础。
9️⃣ kv_config.json:KV Cache 量化配置
由于 64 层中只有 16 层是全注意力层(第 3、7、11、…、63 层,每隔 4 层一个),KV Cache 压力远小于普通模型。kv_config.json进一步对这 16 层的 KV 缓存做量化:绝大多数取 4bit,个别敏感层(如第 19、27 层)保留 8bit(见 kv_config.json)。这能显著降低长上下文的内存占用。
三、加载原理:模型启动的 4 步流水线 🚀
- 读配置:加载器先读 config.json,确定架构是
Qwen3_5ForConditionalGeneration,取出逐层量化方案与视觉侧车路径; - 查目录:解析 model.safetensors.index.json 的
weight_map,得知每个权重张量在哪个分片; - 按需加载:
- 文本路径:只映射 4 个
model-*.safetensors,按scales/biases/weight三件套在线反量化为 4/8bit; - 视觉路径:额外读取 optiq/optiq_vision.safetensors 的 bf16 视觉塔;
- MTP 路径:
text_config中声明了 1 层 MTP(多 token 预测,mtp_num_hidden_layers: 1,见 config.json),optiq 加载器可启用投机解码加速;
- 文本路径:只映射 4 个
- 套模板:用 chat_template.jinja 渲染提示词、tokenizer.json 切词、按 generation_config.json 的参数生成,KV 缓存则按 kv_config.json 量化存储。
四、最快运行方法
仓库 README.md 给出的标准方式:
pip install -U optiq optiq serve --model mlx-community/Fara1.5-27B-OptiQ-4bit服务启动后,OpenAI 兼容端点位于http://localhost:8000/v1,请求中带上image_url内容即可走计算机操作/视觉路径。若只用文本,标准mlx-lm也能直接加载本仓库权重。
五、新手常见疑问 FAQ
Q1:为什么不把所有权重合成一个大文件?单文件超过 5GB 会拖慢加载与校验,分片后加载器可按需读取,且每个分片可并行下载。
Q2:视觉塔为什么要单独放一个文件还保持 bf16?视觉特征对量化误差敏感,保持全精度可避免“看图能力”劣化;独立成文件后,纯文本场景还能省掉这约 920MB 的加载开销。
Q3:这个 4bit 量化和 Qwen3.5-27B-OptiQ-4bit 什么关系?Fara1.5 与 Qwen3.5-27B 架构完全相同,因此直接复用了后者逐层验证过的 4/8bit 分配方案(config_transfer),无需重新跑敏感度评估。
Q4:文件清单里还有 README.md 吗?README.md 是项目的模型卡,介绍量化规格、加载器支持(mlx-optiq 全功能 / mlx-lm 纯文本)与运行命令,是了解本仓库的入口文档。
总结:这个仓库看似文件很多,其实逻辑很清晰——config.json是蓝图,index 是目录,4 个分片是语言大脑,optiq_vision是眼睛,其余 JSON 负责“怎么读、怎么生成、怎么排版”。理解这条加载链后,你就能快速判断它能在什么设备上跑、能省多少内存,以及如何正确启动 Fara1.5-27B-OptiQ-4bit 这个本地计算机操作大模型。
- 人工智能
- 大模型
- 基础模型
- 多模态
- 计算机视觉
- AI Agent
【免费下载链接】Fara1.5-27B-OptiQ-4bit
相关推荐
Vision塔为何单独保留bf16:Fara1.5-27B-OptiQ-4bit双加载模式架构设计剖析
Vision塔为何单独保留bf16:Fara1.5 27B OptiQ 4bit双加载模式架构设计剖析 Fara1.5 27B OptiQ 4bit 是一个基于
人工智能大模型基础模型多模态计算机视觉AI AgentSpring Boot 定时任务实战:spring-boot-demo 中 @Scheduled 的三种用法与调度线程池配置
Spring Boot 定时任务实战:spring boot demo 中 @Scheduled 的三种用法与调度线程池配置 demo task 是 sprin
人工智能大模型基础模型多模态计算机视觉AI Agentok-ww 实战指南:图像识别驱动的《鸣潮》后台自动化完整流程
ok ww 实战指南:图像识别驱动的《鸣潮》后台自动化完整流程 ok ww 是一款面向《鸣潮》的开源图像识别后台挂机工具:通过目标检测加 OCR 识别游戏画面,
人工智能大模型基础模型多模态计算机视觉AI Agent
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考