Lazy loaded image
记录-使用LLaMA-Factory微调的缺点
字数 1268阅读时长 4 分钟
2025-9-1
2025-9-6
AI智能摘要
GPT
这里是萌新AI,这篇文章介绍了使用 LLaMA-Factory 微调模型时,因提示词模版不同导致输出不一致的问题。文章首先指出,LLaMA-Factory 与 HuggingFace、vLLM 推理引擎使用的模版存在差异,从而影响生成结果。接着,作者详细说明了如何找到这两种模版,并提供了解决方法:将 LLaMA-Factory 的模版转换为 jinja 类型,供 vLLM 使用。
URL
type
Post
status
Published
date
Sep 1, 2025
slug
LLaMaFactory3
summary
LlaMA-Factory
tags
大模型
深度学习
Pytorch
Python
实用教程
category
大模型
icon
password
😀
本篇博客主要记录LLaMa-Factory微调模型带来的问题。

📝 问题描述

LLaMa-Factory框架微调

提示词模版不同可能会影响最终模型生成文本信息不同。在微调时,LLaMa-Factory框架使用的是框架本身适配各种模型的提示词模版。虽然我们在框架中发现有各种模型版本的提示词模版,但仔细对比魔塔和HuggingFace社区提供的模型文件的提示词模版,就会发现两种提示词模版是有差异的。
根据上诉情况,我们不难猜出为什么在LLaMa-Factory框架微调好的模型,但在不同推理引擎cha t的时候,生成不同的输出。
具体示例如下:第一张图是HuggingFace引擎,第二张图是vllm引擎。从两张图可以发现模型输出差异性巨大(博主将温度系数和top-p都设置了最低值,防止多样性干扰。)
notion image
notion image
问题:出现上诉问题的原因是什么?
解答:LlaMA-Factory使用HuggingFace引擎进行推理时,使用的是LlaMA-Factory框架自身的提示词模版。但是,LlaMA-Factory使用vLLM引擎推力时,vLLM加载的是模型文件中的提示词模版。两种推理引擎使用的提示词模版不同,所以造成最终的模型输出不同。
问题:提示词模版在哪里找?
解答:LlaMA-Factory框架的提示词模版在LLaMA-Factory/src/llamafactory/data/template.py文件中。伙伴们可以直接搜索qwen即可找到。如下图:
notion image
我们从社区下载模型文件的提示词是在/Qwen/Qwen2.5-1.5B-Instruct/tokenizer_config.json文件中,直接搜索chat_template即可找到。如下图:
notion image
从两张图可以发现,提示词模版确实不同。

解决LlaMA-Factory框架微调和vLLM不一致方法

博主在vLLM中文站网站中找到,vLLM在启动服务时,可以指定模型使用的提示词模版,但是vLLM加载提示词模版使用的是jinja类型文件。所以,我们需要将LlaMA-Factory框架中qwen提示词模版转换为jinja类型的文件。
幸运的是,LlaMA-Factory框架帮我们实现了这个函数,我们只需要调用该函数即可。下面是我们需要自己敲的代码。
注意:博主使用LlaMA-Factory框架的版本是0.9.3,该版本merge后的模型文件夹中已经有我们需要的jinja格式文件。所以不需要我们手动转换。如下图:
notion image

📎 参考文章

 
💡
以上便是本篇博客的主要内容,欢迎您在底部评论区留言,一起交流~
上一篇
记录-LLaMA-Factory页面框(基础)
下一篇
记录-模型-Open WebUI-vLLM使用

评论
Loading...