XTuner 微调 Llama3
来源:互联网
时间:2026-08-03 13:53:09
先说说这份数据。你看到的这个JSON格式,其实结构很简单,说白了就是记录一段对话。里面包含了两个对话样例,每个样例都遵循一个固定的“套路”:系统设定、用户提问、模型回答。这在微调任务中非常常见,本质上就是在告诉模型,“你看,当用户这么问的时候,你就该这么答”。
至于那条训练指令:
xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth
它启动的是XTuner的训练流程。我们重点关注几个关键参数:
configs/assistant/llama3_8b_instruct_qlora_assistant.py这个配置文件是关键,它定义了模型结构、训练策略、数据类型等所有细节。在你开始跑之前,建议先看一眼里面的参数,特别是学习率和batch size。--work-dir /root/llama3_pth指定了所有训练产出的存放地,包括checkpoints、日志、配置文件副本等。方便后续的调试和回溯。
训练完成后,我们拿到的只是一个“Adapter”(适配器),它代表了基于LoRA等方法训练出来的增广参数。要让它在推理框架(比如 vLLM、TGI)里正常工作,必须把它合并回原始模型。这里有一个标准流程:
# 第一步:将训练的Adapter PTH格式转换为Hugging Face标准格式
xtuner convert pth_to_hf /root/llama3_pth/llama3_8b_instruct_qlora_assistant.py
/root/llama3_pth/iter_500.pth
/root/llama3_hf_adapter
# 第二步:将HF格式的Adapter与原始Base模型合并
export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge /root/model/Meta-Llama-3-8B-Instruct
/root/llama3_hf_adapter
/root/llama3_hf_merged
这里需要注意几个容易踩坑的地方:
pth_to_hf这一步必不可少,因为XTuner原生存储的 .pth 格式与Hugging Face生态不兼容。不做这个转换,你后面合并的时候一定会报错。- 模型合并命令中的
export MKL_SERVICE_FORCE_INTEL=1是一个环境变量,主要为了解决Intel MKL库在某些环境下线程冲突的问题。如果你的服务器是AMD CPU,可以尝试移除或替换为export MKL_THREADING_LAYER=GNU。
最后,如何验证我们合并后的模型是否正常工作?这里我们用一个Streamlit应用来快速启动一个Web Demo:
streamlit run ~/Llama3-XTuner-CN/tools/internstudio_web_demo.py /root/llama3_hf_merged
这条命令中,~/Llama3-XTuner-CN/tools/internstudio_web_demo.py 是预先写好的Web应用脚本,它会加载你指定的模型路径(即 /root/llama3_hf_merged),并提供一个友好的聊天界面。在浏览器里打开返回的地址,输入一句“你好”,如果模型能正常回复,恭喜你,微调流程就圆满结束了。

-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名