Llamafactory的使用(1)

发布时间:2026/6/12 17:59:57

Llamafactory的使用(1) Llamafactory是一个开源的大模型微调框架我们不需要编写代码就能用LoRA、QLoRA等方法微调很多主流大模型。一、环境配置在之前的博客中也有提到模型微调需要的环境一般的电脑是无法支持的所以这次我们操作的环境是网上的云服务器。这里我们选择的是魔搭社区的云服务器。登录魔搭社区绑定支付宝就有免费的额度在notebook中选择最gpu环境选择默认的启动之后点击查看notebook就能打开我们的云服务器了。打开的界面是这样的我们操作基本上都是在终端。二、下载模型选择我们需要微调的模型点击下载模型选择命令行下载复制命令在我们云服务器终端上输入回车即可和在本机上是一样的下载好模型之后设置显示隐藏文件方便找到我们模型的位置我们模型的地址就在.cache/modelsccope/models/Qwen中有我们要下载的模型Qwen3-4B就说明模型下载成功。三、下载LlamafactoryLlamafactory是在github上下载的。不要着急下载先往下滑选择中文然后往下滑会发现如下图上述代码如下后三行是需要每次重启云服务器时都需要进行一遍的依赖git clone --depth 1 https://github.com/hiyouga/LlamaFactory.git cd LlamaFactory pip install -e . pip install -r requirements/metrics.txt四、模型微调、推测、合并因为Llamafactory是一个微调的框架我们不需要自己去写微调的代码就跟yolo一样我们只需要配置一些信息就能直接使用。所以要微调只需要修改一个配置信息即可。当然llamafactory中有一些比较受欢迎的模型配置文件。比如说我们下载的qwen模型框架中就有写好的模版。我们只需要修改一下路径就行。没有模版的模型也可以进行训练在魔搭社区能找到的模型需要我们自己创建yaml文件对其中一些参数进行配置就行。在llamafactory中的examples中会发现这些文件家里面都是yaml文件到底用哪个这些到底有什么不同呢inference中都是推理配置用来进行模型推理的。train_lora是进行lora微调train_qlora是进行qlora微调train_full是进行全量微调。merge_lora是合并模型的也就是我们训练的模型和基础模型进行合并。注意其中的模型路径我们需要写完整/mnt/workspace/.cache/modelscope/models/Qwen/Qwen3-4B-Instruct-2507如果我们是自己创建yaml文件touch config.yaml之后需要给这个文件设置权限chmod 777 config.yaml在进行写入vim config.yaml就跟linux系统操作是一样的。文件配置好之后就可以进行微调等操作了在命令行调用对应配置文件即可llamafactory-cli train examples/train_lora/qwen3_lora_sft.yaml#微调 llamafactory-cli chat examples/inference/qwen3_lora_sft.yaml#推理 llamafactory-cli export examples/merge_lora/qwen3_lora_sft.yaml#合并1.微调配置文件一些参数微调其实就是训练这里我们训练好的模型会有一个新的权重参数被我们保存在output下的路径里面。学什么指定数据集dataset: sft_data和对话模板template: qwen3。怎么学设定学习率learning_rate、训练轮数num_train_epochs、批次大小per_device_train_batch_size。学多少配置 LoRA 的参数比如秩lora_rank: 8和目标模块lora_target: all。产出运行后你会得到一个新的文件夹通常在 saves/ 目录下里面包含训练好的 **LoRA 权重文件**adapter_model.bin### model model_name_or_path: Qwen/Qwen3-4B-Instruct-2507 trust_remote_code: true ### method stage: sft do_train: true finetuning_type: lora lora_rank: 8 lora_target: all ### dataset dataset: identity,alpaca_en_demo template: qwen3_nothink cutoff_len: 2048 max_samples: 1000 preprocessing_num_workers: 16 dataloader_num_workers: 4 ### output output_dir: saves/qwen3-4b/lora/sft logging_steps: 10 save_steps: 500 plot_loss: true overwrite_output_dir: true save_only_model: false report_to: none # choices: [none, wandb, tensorboard, swanlab, mlflow] ### train per_device_train_batch_size: 1 gradient_accumulation_steps: 8 learning_rate: 1.0e-4 num_train_epochs: 3.0 lr_scheduler_type: cosine warmup_ratio: 0.1 bf16: true ddp_timeout: 180000000 resume_from_checkpoint: null ### eval # eval_dataset: alpaca_en_demo # val_size: 0.1 # per_device_eval_batch_size: 1 # eval_strategy: steps # eval_steps: 5002.推理配置文件相关参数推理其实就是使用模型体验模型。model_name_or_path: Qwen/Qwen3-4B-Instruct-2507 adapter_name_or_path: saves/qwen3-4b/lora/sft template: qwen3_nothink infer_backend: huggingface # choices: [huggingface, vllm, sglang, ktransformers] trust_remote_code: true加载谁它需要同时指定基础模型model_name_or_path和刚才训练出来的 LoRA 权重adapter_name_or_path。用什么引擎这里就是你刚才问到的infer_backend: huggingface或vllm。格式必须保持和训练时一样的对话模板template: qwen3否则模型会听不懂人话。产出一个交互式的命令行界面你可以输入问题模型实时回答。3.合并模型配置文件相关参数合并其实就是把我们训练部分和基础模型进行合并并导出成为一个新的模型。### Note: DO NOT use quantized model or quantization_bit when merging lora adapters ### model model_name_or_path: Qwen/Qwen3-4B-Instruct-2507 adapter_name_or_path: saves/qwen3-4b/lora/sft template: qwen3_nothink trust_remote_code: true ### export export_dir: saves/qwen3_sft_merged export_size: 5 export_device: cpu # choices: [cpu, auto] export_legacy_format: false源文件指定基础模型路径和 LoRA 权重路径。去向指定合并后的模型保存路径export_dir。注意这里通常要求基础模型必须是 FP16/BF16 格式不能是量化过的如 INT4/INT8否则合并会失败或精度受损。产出一个全新的、独立的模型文件夹。这个文件夹里包含了所有权重不再依赖 LoRA 插件可以直接被任何支持该架构的工具加载。五、监控显卡微调过程中可以对显卡情况进行检查两条安装命令pip install nvitop#下载监控库 pip install nvidia-ml-py -U#显卡驱动接口下面三条命令都是调用只不过显示的模式不同依次是自动模式、紧凑模式、完整模式。nvitop -m auto nvitop -m compact nvitop -m full

相关新闻