资讯动态

Phi-4-mini-instruct MLX 8Bit 多轮对话教程:chat_template.jinja 一招搞定对话与工具调用

发布时间:2026/10/18 0:42:12 来源:尧图企业网站定制
【免费下载链接】Phi-4-mini-instruct-mlx-8Bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Phi-4-mini-instruct-mlx-8Bit点击查看免费下载Phi-4-mini-instruct-mlx-8Bit 是将微软 Phi-4-mini-instruct 小模型转换为 MLX 格式并做 8Bit 量化的版本专为 Apple Silicon 芯片设计让 Mac 也能流畅跑本地大模型多轮对话。本教程带你彻底看懂它的核心文件 chat_template.jinja——这个模板既能组织多轮对话历史又能在 system 消息中嵌入工具调用定义一套模板通吃两种场景 为什么选 MLX 8Bit 版本这个仓库里的模型基于 model.safetensors.index.json 中记录的约38.4 亿参数约 3.8B并通过 config.json 中的quantization字段配置为 8Bitbits: 8、group_size: 64、mode: affine量化特性说明运行框架MLXREADME.md 中说明使用 mlx-lm 0.31.2 转换量化精度8Bit 分组量化体积约为 bf16 的一半上下文长度tokenizer_config.json 中model_max_length为 131072长文本能力config.json 配置了longrope的rope_scaling8Bit 量化意味着模型文件更小、显存/内存占用更低在 Mac 上运行多轮对话时速度更快而效果损失很小是本地部署的性价比之选 ✅核心文件 chat_template.jinja 解析chat_template.jinja 是整个仓库的灵魂文件——它决定了你的对话消息最终会被拼装成什么样的文本喂给模型。整个模板只有一行逻辑却包含两个关键分支{% for message in messages %} {% if message[role] system and tools in message and message[tools] is not none %} {{ | message[role] | message[content] |tool| message[tools] |/tool| |end| }} {% else %} {{ | message[role] | message[content] |end| }} {% endif %} {% endfor %} {% if add_generation_prompt %}{{ |assistant| }}{% else %}{{ eos_token }}{% endif %}用表格拆解它的行为规则场景模板输出普通消息user / assistant / system\|role\|内容\|end\|system 消息且带tools字段\|system\|内容\|tool\|工具定义\|/tool\|\|end\|add_generation_promptTrue末尾追加\|assistant\|提示模型该你回答了add_generation_promptFalse末尾追加eos_token作为收尾可以看到每一轮消息都用|end|收尾角色由|user|、|assistant|等标记界定——这就是多轮对话能在同一模板里层层叠加的底层机制。多轮对话实战构建对话循环使用 README.md 中的 mlx-lm 方式多轮对话的关键是维护一个messages列表每轮把模型回复追加进去再重新渲染模板。from mlx_lm import load, generate model, tokenizer load(SkyStar-tech/Phi-4-mini-instruct-mlx-8Bit) # 维护多轮历史 messages [{role: user, content: 帮我解释一下什么是量化}] for _ in range(3): # 模拟三轮对话 prompt tokenizer.apply_chat_template( messages, tokenizeFalse, add_generation_promptTrue ) response generate(model, tokenizer, promptprompt) # 追加模型回复与下一轮用户输入 messages.append({role: assistant, content: response}) messages.append({role: user, content: input(你: )})渲染后的 prompt 大致长这样每一轮都被完整保留|user|帮我解释一下什么是量化|end||assistant|量化是指……|end| |user|那 8Bit 和 4Bit 有什么区别|end||assistant|三个必须懂的参数add_generation_promptTrue在末尾生成|assistant|模型看到这个标记就知道轮到自己生成回答多轮对话必须开启。add_generation_promptFalse末尾输出eos_token适合训练数据构造这类完整语料场景仓库中的微调脚本 sample_finetune.py 正是这么用的。tokenizeFalse返回渲染后的文本而不是 token ID方便你肉眼检查模板拼接是否正确排查对话串台问题非常有用。工具调用system 消息里的隐藏开关模板中if message[role] system and tools in message这个分支就是工具调用的入口。只要在 system 消息里带上tools字段工具定义就会被自动包进|tool|...|/tool|标记中messages [ { role: system, content: You are a helpful assistant., tools: {type:function,function:{name:get_weather,description:查询天气,parameters:{type:object,properties:{city:{type:string}},required:[city]}}} }, {role: user, content: 北京今天天气怎么样} ] prompt tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue)渲染结果中system 部分会变为|system|You are a helpful assistant.|tool|{type:function,...}|/tool||end| |user|北京今天天气怎么样|end||assistant|⚠️ 两点提醒该模板把工具定义放在system 消息的tools字段中属于项目自定义的拼装方式与 OpenAI 风格的独立tools参数并不通用。若使用 mlx-lm 等框架内置的工具调用功能需确认框架能正确传递这个字段。模型只负责按模板格式输出真正解析工具调用结果并循环调用外部函数需要你在应用层自行实现。相关配置与文件清单文件作用chat_template.jinja对话与工具调用的 Jinja 模板本教程主角tokenizer.json / tokenizer_config.json分词器词表与特殊 token 定义config.json模型结构、8Bit 量化与长上下文配置generation_config.json生成时的起止 tokeneos_token_id等modeling_phi3.py / configuration_phi3.pyPhi-3 架构的模型实现与配置类sample_finetune.py基于 SFTTrainer LoRA 的微调示例内含apply_chat_template用法如果后续想用自己的数据微调可以参考 sample_finetune.py它演示了如何用tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptFalse)把多轮对话语料拼成训练文本配合 LoRAr16在 V100 级别显卡上即可训练。总结多轮对话维护messages列表 每轮add_generation_promptTrue重新渲染模板会自动带上全部历史。工具调用在 system 消息中添加tools字段模板会将其包进|tool|标记无需额外改代码。本地部署8Bit 量化的 MLX 格式让 3.8B 模型在 Apple Silicon 上运行更快、占用更低配合 131072 的上下文长度可处理长文档。掌握 chat_template.jinja 这一个文件你就掌握了 Phi-4-mini-instruct-mlx-8Bit 多轮对话与工具调用的全部钥匙 赞分享【免费下载链接】Phi-4-mini-instruct-mlx-8Bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/Phi-4-mini-instruct-mlx-8Bit点击查看免费下载相关推荐Phi-4-mini-instruct-mlx-8Bit快速上手Apple Silicon本地跑通3.8B对话LLM的完整概览Phi 4 mini instruct mlx 8Bit快速上手Apple Silicon本地跑通3.8B对话LLM的完整概览 本文带你用 MLX 框架在 A如何快速上手Phi-4-mini-instruct-mlx-fp16用mlx-lm在Mac上完成第一次本地对话如何快速上手Phi 4 mini instruct mlx fp16用mlx lm在Mac上完成第一次本地对话 Phi 4 mini instructPhi-4-mini-instruct-mlx-6Bit可以商用吗MIT许可证与4/6/8Bit量化方案横向对比Phi 4 mini instruct mlx 6Bit可以商用吗MIT许可证与4/6/8Bit量化方案横向对比 Phi 4 mini instruct ml创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑