人工智能大模型基础模型本地部署多模态计算机视觉AI Agent【免费下载链接】Fara1.5-9B-OptiQ-4bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Fara1.5-9B-OptiQ-4bit点击查看免费下载Fara1.5-9B-OptiQ-4bit是微软开源的计算机使用computer-use视觉智能体模型 Fara1.5-9B 的 MLX 混合精度量化版本专为 Apple Silicon 本地推理打造。很多人下载模型后都会问一个问题模型的说话格式到底是怎么定的答案就在仓库根目录的 chat_template.jinja 里。这份 Jinja 模板同时负责两件事工具调用Function Calling的消息拼装与思考模式Thinking Mode的开关控制是理解这个模型行为的关键钥匙。Chat Template 是什么模型格式的翻译官大模型本身只认识 token 序列。你在 API 里发的messages数组system / user / assistant / tool 多轮对话必须经过一层翻译才能变成模型训练时见过的文本格式——这层翻译就是Chat Template。在 Fara1.5-9B-OptiQ-4bit 仓库中相关文件的分工如下文件作用chat_template.jinjaJinja 模板定义消息拼装规则本文主角tokenizer_config.json特殊 token、分词器参数Qwen2Tokenizer、工具解析器类型等config.json模型架构与 4/8-bit 混合量化配置generation_config.json生成参数如eos_token_id: 248044optiq_metadata.jsonOptiQ 量化元数据目标 5.0 bpw实测 5.21 bpw几个值得注意的模板变量messages对话消息列表缺失时模板会直接抛出No messages provided.异常tools可选的工具函数Schema 列表决定是否注入工具系统提示add_generation_prompt是否在末尾追加assistant生成提示enable_thinking思考模式总开关取值true/false。视觉占位符一张图片如何变成文字Fara1.5 是视觉语言模型用户消息里可以混排文本和图片。模板顶部的render_content宏chat_template.jinja负责把多模态 content 渲染成纯文本遇到图片项 → 输出特殊 tokenimage可选前缀Picture N:由add_vision_id控制遇到视频项 → 输出video特殊 tokensystem 消息里出现图片/视频会被直接拒绝System message cannot contain images.这是防注入的硬约束图片和视频各有独立计数器image_count/video_count多张图时编号不混乱。对应的 token 定义在 tokenizer_config.json 中image_token为imagevideo_token为video视觉边界 token 为vision_bos_token/vision_eos_token。处理器Qwen3VLProcessor则负责把真实图片切块并与这些占位符对齐像素范围由min_pixels: 3136与max_pixels: 12845056约束。 换句话说图片在模型眼里就是一串image占位符真正的像素信息走视觉塔vision tower而它在本仓库中以 bf16 精度单独存放在 optiq/optiq_vision.safetensors——这也是同一个仓库既能纯文本跑、又能图文跑的原因。工具调用第一步tools 如何注入 system 消息当请求里带tools参数时模板会在最前面生成一个特殊的 system 块chat_template.jinja以# Tools开头声明你有以下函数可用用tools标签包裹全部工具每个工具用tojson序列化为一行 JSON即标准 OpenAI Function Calling 的 Schema 格式附上一段格式铁律调用函数只能输出function_call包裹的function...嵌套结构必填参数必须给出推理说明要放在调用之前而非之后如果消息列表第一条本来就是 system 消息用户自写的 system 内容会被追加到这段工具说明之后用空行分隔而不是被覆盖。不带tools时走 else 分支chat_template.jinja只输出system块如果存在干净利落。多步工具链的哨兵last_query_index这是整份模板里最精妙的机制。看一段核心逻辑chat_template.jinjans namespace(multi_step_tooltrue, last_query_index消息总数 - 1) 从最后一条消息向前扫描 若遇到 user 消息且其内容【不是】tool_response 包裹 → multi_step_tool false记录 last_query_index它的目的判断当前是否处于工具返回结果、等待模型继续的多步调用中间态。如果最后一条 user 消息只是tool_response回传说明真正的人类提问在更早的某处——这个位置就是last_query_index若全程都找不到一条真正的用户提问模板会抛出No user query found in messages.防止拼出一段无主的对话这个索引后面还会决定一件事思考块只出现在最后一轮真实用户提问之后的 assistant 消息中见下文。三种角色消息如何被拼装拿到上述铺垫后模板按顺序遍历messages对每个角色执行不同规则chat_template.jinjauser 消息最直接的包装user 这里是用户内容含 image 占位符tool 消息归并到 user 块工具结果不独立成块而是复用 user 角色chat_template.jinja连续的多个 tool 结果会合并进同一个 user 块每个结果各自包在tool_response标签里只有当下一条不是 tool 消息、或已到消息末尾时才补上闭合标签与换行这套合并 延迟闭合设计正是多步工具链能保持格式稳定的原因。assistant 消息思考块 工具调用的主战场assistant 分支chat_template.jinja做三件事① 拆分思考内容。如果消息带独立的reasoning_content字段优先使用它否则尝试从正文里按/think拆分出思考部分避免重复。② 决定是否渲染思考块。只有当该消息位置晚于last_query_index即属于最后一轮真实提问之后的回复时才渲染完整的think结构assistant think 推理过程 正文历史轮次的 assistant 消息则只输出正文不保留思考块——这让训练时的只在末轮思考的约定得以贯彻。③ 拼装 function_call。如果消息带tool_calls逐个函数渲染成嵌套结构chat_template.jinjafunction_call functionget_weather parametercity 北京 function_call细节考究之处参数是字典或列表时用tojson序列化普通字符串原样输出第一个调用若前面已有正文会多补一个空行分隔多个并行工具调用之间用独立标签串联。思考模式的开关enable_thinking 参数模板的最后一段chat_template.jinja决定了模型接下来往哪里写场景末尾追加内容效果未开add_generation_prompt无纯补全模式enable_thinking falsethink空思考块模型直接进正文开启或未指定默认think模型先输出推理过程再给答案这就是 Qwen3 系列标志性的推理开关调用方只需在参数里传一个布尔值模型就会在边想边答和直接作答两种模式间切换无需改动提示词。配套地tokenizer_config.json 中声明了tool_parser_type: qwen3_coder即框架侧用同一套 qwen3_coder 解析器把function_call标签反向解析回结构化的tool_calls——模板写、解析器读形成闭环。完整输出示例一条消息经过模板之后假设带有一个get_weather工具最后一轮用户提问后请求生成模板拼出的大致结构是system Tools 你有以下函数可用 tools {type: function, function: {name: get_weather, ...}} tools 调用格式铁律…… 你是 Fara一个计算机使用智能体…… system user 帮我查一下北京天气 user assistant think 用户想查北京天气应调用 get_weather…… function_call functionget_weather parametercity 北京 function_call若工具结果返回则追加一轮归并到 user 块并以think结尾等待模型续写——整个多步链路由此循环。写在最后模板与量化的分工把视角拉回整个仓库模板层chat_template.jinja决定模型怎么说话——多模态占位、工具协议、思考协议全部在此编码权重层约 89.5 亿参数的 Qwen3_5 架构config.json 中architectures: Qwen3_5ForConditionalGeneration经 OptiQ 混合 4/8-bit 量化到 5.21 bits/weight磁盘约 7.5G视觉塔保持 bf16运行层一条命令optiq serve --model mlx-community/Fara1.5-9B-OptiQ-4bit即可在 Apple Silicon 上起 OpenAI 兼容端点model_max_length高达 262144 token长对话与截图序列都从容应对。读懂这份 Jinja 模板你就握住了与 Fara1.5 对话的底层语法工具调用为何如此规整、思考模式为何能一键开关、多步 Agent 链为何不会乱——答案都在这 154 行里。延伸阅读README.md 中列出了模型标签computer-use / web-agent / agent与支持该仓库的加载器说明值得一并查阅。赞分享人工智能大模型基础模型本地部署多模态计算机视觉AI Agent【免费下载链接】Fara1.5-9B-OptiQ-4bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Fara1.5-9B-OptiQ-4bit点击查看免费下载相关推荐如何开关模型大脑XYZ-Aquila-mini-OptiQ-4bit 的 :think 与 :no-think 思考模式完全控制指南如何开关模型大脑XYZ Aquila mini OptiQ 4bit 的 :think 与 :no think 思考模式完全控制指南 XYZ Aquila m深入剖析Fara1.5-9B-OptiQ-4bit的4/8-bit混合精度量化5.21 bits/weight如何平衡质量与体积深入剖析Fara1.5 9B OptiQ 4bit的4/8 bit混合精度量化5.21 bits/weight如何平衡质量与体积 Fara1.5 9B Opt人工智能大模型基础模型本地部署多模态计算机视觉AI AgentVision塔为何单独保留bf16Fara1.5-27B-OptiQ-4bit双加载模式架构设计剖析Vision塔为何单独保留bf16Fara1.5 27B OptiQ 4bit双加载模式架构设计剖析 Fara1.5 27B OptiQ 4bit 是一个基于人工智能大模型基础模型多模态计算机视觉AI Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?