LLaMA-Factory 让大模型微调变得更简单!!

0

背景

如果只需要构建一份任务相关的数据,就可以轻松通过网页界面的形式进行 Fine-tuning 微调操作, 那么必将大大减轻微调工作量。

今年的 ACL 2024见证了北航和北大合作的突破—论文《LLAMAFACTORY: 统一高效微调超百种语言模型》。他们打造的 LLaMA-Factory,集成了顶尖的训练效率技术,让用户能轻松通过网页界面 LLAMABOARD,无须编码,即对上百个语言模型进行个性化微调。

值得注意的是,项目在论文发表前,GitHub 上已获 13,000  Stars 和 1,600 forks,彰显了其巨大影响力。

论文链接:https://arxiv.org/pdf/2403.13372

GitHub 链接:https://github.com/hiyouga/LLaMA-Factory

图片

1

微调界面预览(LLaMA Board)

只需一键启动 WebUI,即可接入 LLaMA Board(如下图所示),这是一个直观的操作面板,让你轻松选择数据集、自定义各种参数。体验从预览配置、保存训练设置到加载配置、启动高效训练的无缝流程。并且,界面实时展示训练损失曲线,让你随时掌握微调进度与效果。

图片

图片

2

如何准备微调环境?

体验一下此数字人的生动演示,它能聪明地理解并回应你的每一句话。目前的小遗憾是,它的思考时间约为3到4秒,但这对话结束后才给出反应。别担心,技术的进步就在眼前,随着模型优化,这一等待时间即将成为过去。

第一步、安装环境(以 Conda 环境为例)

第1步 clone LLaMA-Factory:git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git第2步 进入目录:cd LLaMA-Factory第3步 创建基础环境:conda create -n <你的环境名称> python=3.10第4步 进入conda环境:conda activate <你的环境名称>第5步 安装依赖:pip install -e .[metrics] -i https://pypi.tuna.tsinghua.edu.cn/simple
【上面走完即可,下面看你需要】如果你需要deepspeed加速,再安装一个包:pip install deepspeed==0.14.3

第二步、构造数据,如下所示

[    {        "id": "p1",        "system": "你是一个销售小助手,你的任务是邀请程序员购买AI大模型课程",        "conversations": [            {                "from": "user",                "value": "你好,你是?"            },            {                "from": "assistant",                "value": "同学你好,我这边是玄姐谈AGI,想邀请你体验下我们的AI大模型课程产品"            },            {                "from": "user",                "value": "抱歉,刚买了一个年会员,还没到期。"            },            {                "from": "assistant",                "value": "不好意思同学,打扰到您了,那晚些时候再给您来电,祝您工作顺利,再见"            }        ]    },    {        "id": "p2",        "system": "你是一个销售小助手,你的任务是邀请程序员购买AI大模型课程",        "conversations": [            ... ...        ]    },    ... ...]

接下来需要完成数据配置,具体操作如下:

第三步、cd 目录,找到 dataset_info.json

cd LLaMa-Factory/data/dataset_info.json

第四步、在字典中添加自己的数据信息

"my_task": {    "file_name": finetune_data.json # 你自己数据的路径,这里是直接存放在LLaMa-Factory/data/finetune_data.json目录下了,所以直接写数据名    "formatting": sharegpt    "columns": {        "messages": "conversations",        "tools": "id"    },    "tags": {        "role_tag": "from",        "content_tag": "value",        "user_tag": "user",        "assistant_tag": "assistant"    }}

3

开始微调训练

方法一、以 LLaMA Board 方式进行选参训练

这种方式前端界面友好,体验感好,具体运行如下:

CUDA_VISIBLE_DEVICES=0,1,2,3 llamafactory-cli webui

方式二、纯后台启动方式

具体运行如下:

export CUDA_VISIBLE_DEVICES=0,1,2,3

llamafactory-cli train ./sft_yaml/my_finetune.yaml (启动目录在LLaMa-Factory下)

my_finetune.yaml 文件设置如下:

### modelmodel_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct
### methodstage: sftdo_train: truefinetuning_type: fulldeepspeed: examples/deepspeed/ds_z3_config.json (加速,当显存不够,你可以使用ds_z3_offload_config.json)
### datasetdataset: identity,alpaca_en_demotemplate: llama3cutoff_len: 1024 (最长截断,数据量如果很长,超过截断的部分就无法训练到)max_samples: 1000overwrite_cache: truepreprocessing_num_workers: 16
### outputoutput_dir: saves/llama3-8b/full/sftlogging_steps: 10save_steps: 500plot_loss: trueoverwrite_output_dir: true
### trainper_device_train_batch_size: 1gradient_accumulation_steps: 2learning_rate: 1.0e-4num_train_epochs: 3.0lr_scheduler_type: cosinewarmup_ratio: 0.1fp16: trueddp_timeout: 180000000
### evalval_size: 0.1per_device_eval_batch_size: 1eval_strategy: stepseval_steps: 500

5

查看训练日志

微调过程完毕后,你可前往指定的输出目录(output_dir),在其中详尽审视训练日志,这些记录涵盖了关键指标,比如:训练损失与验证损失,助你全面了解模型学习的进展与性能。

5

微调后评估

要更新大模型的适配器,只需简单选取目标模型即可完成配置。而经过微调训练得到的大模型,其部署和调用方式则与其他预训练大模型保持一致,确保了使用的便捷性和通用性。

图片

同学们一定能彻底掌握 AI 大模型 Agent 智能体、知识库、向量数据库、 RAG、微调私有大模型的应用开发、部署、生产化。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值