2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

基于LLaMA-Factory框架对Qwen2-7B模型进行微调实践

发布日期:2024-08-15 07:31:26 浏览次数: 5249
作者:小兵的AI视界

微信搜一搜,关注“小兵的AI视界”

一、引言

在当前人工智能的发展中,大型语言模型(LLMs)已成为NLP研究和应用的关键。Qwen2-7B模型作为领域的领先者,以其巨大的参数量和强大的功能获得了广泛注意,尤其是它在经过微调后能更好地完成特定任务。本文旨在详述如何运用LLaMA-Factory框架高效微调Qwen2-7B模型,以优化其在特定任务中的表现。

二、LLaMA-Factory简介

LLaMA-Factory是一个集多种微调技术于一身的高效框架,支持包括Qwen2-7B在内的多种大型语言模型。它通过集成如LoRAQLoRA等先进的微调算法,以及提供丰富的实验监控工具,如LlamaBoardTensorBoard等,为用户提供了一个便捷、高效的微调环境。此外,LLaMA-Factory还支持多模态训练方法和多硬件平台,包括GPUAscend NPU,进一步拓宽了其应用范围。


三、安装modelscope


在国内,由于网络环境的特殊性,直接从国际知名的模型库如Hugging Face下载模型可能会遇到速度慢或连接不稳定的问题。为了解决这一问题,我们选择使用国内的ModelScope平台作为模型下载的渠道。ModelScope不仅提供了丰富的模型资源,还针对国内用户优化了下载速度。


修改模型库为modelscope
export USE_MODELSCOPE_HUB=1修改模型缓存地址,否则默认会缓存到/root/.cache,导致系统盘爆满export MODELSCOPE_CACHE=/root/autodl-tmp/models/modelscope
学术资源加速
source /etc/network_turbo
安装modelscope(用于下载modelscope的相关模型)
pip install modelscope


四、模型下载

在下载Qwen2-7B模型之前,我们首先需要设置modelscope的环境变量,确保模型能够被正确地缓存到指定的路径,避免因为默认路径导致的空间不足问题。接下来,通过编写一个简单的Python脚本,我们可以使用modelscopeAPI来下载所需的模型。


使用 modelscope 中的 snapshot_download 函数下载模型,第一个参数为模型名称,参数 cache_dir 为模型的下载路径。

from modelscope import snapshot_downloadmodel_dir = snapshot_download('qwen/Qwen2-7B',cache_dir='/root/autodl-tmp',revision='master')

运行python /root/autodl-tmp/d.py 执行下载;执行完成如下:

五、安装LLaMA-Factory

LLaMA-Factory的安装过程相对简单,通过Git克隆仓库后,使用pip安装即可。这一步骤是整个微调流程的基础,为后续的操作提供了必要的工具和库。

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]"

六、启动LLaMA-Factory

LLaMA-Factory安装完成后,我们可以通过简单的命令启动其Web UI界面。这一界面提供了一个用户友好的操作环境,使得微调过程更加直观和便捷。


修改gradio默认端口
export GRADIO_SERVER_PORT=6006
启动LLaMA-Factory
llamafactory-cli webui

启动如下:

七、LLaMA-Factory操作实践

1、访问UI界面


http://localhost:6006/

通过访问Web UI,用户可以进行模型的配置、训练参数的设置以及微调过程的监控。

2、配置模型本地路径

UI界面中,用户可以根据自己的需求选择模型来源,无论是直接使用Hugging Face模型库中的资源,还是加载本地下载的模型。

3、微调相关配置
微调配置是整个流程中至关重要的一步。用户需要根据具体的任务需求,设置训练阶段、数据集、学习率、批次大小等关键参数。


4、预览训练参数
在开始训练之前,用户可以预览所有的训练参数,确保配置无误。


点击“预览命令”按钮,查看训练的参数配置,可以进行手工修改调整

llamafactory-cli train \


    --stage sft \


    --do_train True \


    --model_name_or_path /root/autodl-tmp/qwen/Qwen2-7B \


    --preprocessing_num_workers 16 \


    --finetuning_type lora \


    --quantization_method bitsandbytes \


    --template default \


    --flash_attn auto \


    --dataset_dir data \


    --dataset alpaca_zh_demo \


    --cutoff_len 1024 \


    --learning_rate 5e-05 \


    --num_train_epochs 3.0 \


    --max_samples 100000 \


    --per_device_train_batch_size 2 \


    --gradient_accumulation_steps 8 \


    --lr_scheduler_type cosine \


    --max_grad_norm 1.0 \


    --logging_steps 5 \


    --save_steps 100 \


    --warmup_steps 0 \


    --optim adamw_torch \


    --packing False \


    --report_to none \


    --output_dir saves/Qwen-7B/lora/train_2024-07-03-11-30-41 \


    --bf16 True \


    --plot_loss True \


    --ddp_timeout 180000000 \


    --include_num_input_tokens_seen True \


    --lora_rank 8 \


    --lora_alpha 16 \


    --lora_dropout 0 \


    --lora_target all \


    --val_size 0.1 \


    --eval_strategy steps \


    --eval_steps 100 \


    --per_device_eval_batch_size 2


5、开始训练

一旦确认配置无误,用户可以启动训练过程。LLaMA-Factory将根据用户的配置进行模型的微调。


点击“开始”按钮,开始训练

训练完成结果如下:

训练完成后,会在本地输出微调后的相关权重文件,Lora权重文件输出如下:

6、模型加载推理


在高级设置中有一个“Chat”页签,可用于模型推理对话

模型对话


 7、模型合并导出
模型训练完成后,我们可以将训练完后的Lora相关权重文件,和基础模型进行合并导出生成新的模型


合并后模型文件如下:

导出后我们可以基于导出后的新模型进行推理对话。


八、结语


通过本文的详细介绍,大家应该对如何使用LLaMA-FactoryQwen2-7B进行微调有了清晰的认识。微调不仅能够提升模型在特定任务上的表现,还能够为模型赋予更加丰富的应用场景。希望本文能够为大家在大型语言模型的微调实践中提供有价值的参考和指导。随着技术的不断进步,我们期待LLaMA-FactoryQwen2-7B能够在未来的AI领域发挥更大的作用。

点亮“关注”,设为“星标”,精彩不迷路!我们携手探索AI的无限可能,精彩内容,持续为您更新!

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅