【AI大模型开发者指南】llama3认知微调——xtuner实战

【AI大模型开发者指南】llama3认知微调——xtuner实战

基于xtuner的微调,核心要素三x三

前期准备

  • 环境配置
  • 准备模型
  • 创建数据集

训练

  • 修改训练配置
  • xtuner一键启动训练
  • 生成pth

后期处理

  • 生成adapter
  • 合并adapter与现有模型
  • 部署

实战过程

本次工作目录结构可以克隆

git clone https://github.com/SmartFlowAI/Llama3-Tutorial.git
cd Llama3-Tutorial

环境配置在此不再赘述,模型下载也是一样

进入到创建数据集

import json

# 输入你的名字
name = 'SmartFlowAI'
# 重复次数
n = 2000

data = [
    {
        "conversation": [
            {
                "system":"你是一个懂中文的小助手",
                "input": "你是(请用中文回答)",
                "output": "您好,我是{},一个由 SmartFlowAI 打造的人工智能助手,请问有什么可以帮助您的吗?".format(name)

               
            }
        ]
    }
]

for i in range(n):
    data.append(data[0])

with open('./data/personal_assistant.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

唐僧念经式认知微调数据集脚本↑

前期准备完成,进入训练阶段

修改训练配置

三个关键

  • 模型地址(pretrained_model_name_or_path)
  • 数据集配置(alpaca_en.dataset)
    • path
    • data_files
    • dataset_map_fn
  • 评估问题(evaluation_inputs)

本次数据格式

[
    {
        "conversation": [
            {
                "system": "你是一个懂中文的小助手",
                "input": "你是(请用中文回答)",
                "output": "您好,我是SmartFlowAI,一个由 SmartFlowAI 打造的人工智能助手,请问有什么可以帮助您的吗?"
            }
        ]
    },
    ...
]

不需要修改dataset_map_fn,数据集方面只需要改alpaca_en.dataset的path为"json"data_files为现有数据集位置即可

完成后,一键启动训练

xtuner train ./configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir ./llama3_pth

训练中

training
训练结束

train-end
生成adapter

xtuner convert pth_to_hf ./llama3_pth/llama3_8b_instruct_qlora_assistant.py \
  ./llama3_pth/iter_500.pth \
  ./llama3_hf_adapter

create_adapter
adapter生成完毕,下一步合并模型

export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge /root/model/Meta-Llama-3-8B-Instruct \
  ./llama3_hf_adapter\
  ./llama3_hf_merged

如果不设置MKL,可能报错如下,并且不会继续

MKL-error
设置无误后,可能还会有error,但可以继续

在这里插入图片描述
完成合并后,streamlit web demo 测试

streamlit run ./tools/internstudio_web_demo.py \
  ./llama3_hf_merged

streamlit-web-demo
认知修改成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值