LLaMA-Factory-行业垂直大模型微调训练·可行性实践

背景

  • 行业:生物试剂
  • 手上有自产试剂的所有说明书,大概300多份
  • 不限于说明书的资料

目标

希望微调出一个名字为 dayou 的自产生物试剂行业垂直大语言模型。首要目标是能解答说明书内的相关内容,继而继续增加数据集,如技术、销售等领域。

实践

  • 微调模型选择:Qwen2.5-7B-Instruct
  • 微调框架选择:LLaMA-Factory
  • GPU显卡选择: RTX 4090
  • 数据集制作:easy-dataset

算力准备及训练环境准备

本次实验使用AutoDL AI算力云 租借算力,采用GPU卡进行训练,使用Ubuntu 24.04LTS版本
IX3I8x

AutoDL的系统盘和数据盘可以通过source ~/.bashrc 查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ source ~/.bashrc
+-----------------------------------------------AutoDL-----------------------------------------------------+
目录说明:
╔═════════════════╦════════╦════╦══════════════════════════════════════════════════════════════╗
║目录 ║名称 ║速度 ║说明 ║
╠═════════════════╬════════╬════╬══════════════════════════════════════════════════════════════╣
║/ ║系 统 盘 ║一般║实例关机数据不会丢失,可存放代码等。会随保存镜像一起保存。 ║
║/root/autodl-tmp ║数 据 盘 ║ 快 ║实例关机数据不会丢失,可存放读写IO要求高的数据。但不会随保存镜像一起保存 ║
╚═════════════════╩════════╩════╩═══════════════════════════════════════════════════════════════╝
CPU :16 核心
内存:120 GB
GPU :NVIDIA GeForce RTX 4090, 1
存储:
系 统 盘/ :29% 8.6G/30G
数 据 盘/root/autodl-tmp:1% 72M/50G

LLaMA-Factory搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
## 克隆项目
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
## 创建环境
conda create -n llamafactory python=3.10
## 激活环境
conda activate llamafactory
## 安装依赖
pip install -e ".[torch,metrics]" --no-build-isolation -i https://mirrors.aliyun.com/pypi/simple
## 执行webui
llamafactory-cli webui
## 后台运行
nohup llamafactory-cli webui > webui.log 2>&1 &
  • 下载模型
    a0F1dg
    界面中选择Qwen2.5-7B-Instruct,并加载模型,会自动下载到默认路径: /root/.cache/modelscope/hub/models/Qwen,我们自己手动下载并指定路径。
    1
    2
    3
    4
    5
    pip install modelscope
    modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir /root/autodl-tmp/LLaMA-Factory/models/Qwen/Qwen2.5-7B-Instruct
    modelscope download --model Qwen/Qwen2.5-1.5B-Instruct --local_dir /root/autodl-tmp/LLaMA-Factory/models/Qwen/Qwen2.5-1.5B-Instruct

    git clone https://www.modelscope.cn/Qwen/Qwen2.5-7B-Instruct.git /root/autodl-tmp/LLaMA-Factory/models/Qwen

数据集准备

我们使用easy-dataset来简化我们的数据集制作流程,通过大模型自动生成QA数据集。

  • 初始化数据库文件。
    1
    2
    3
    4
    git clone https://github.com/ConardLi/easy-dataset.git
    cd easy-dataset
    npm install
    npm run db:push
  • 部署
    docker-compose.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    services:
    easy-dataset:
    image: ghcr.io/conardli/easy-dataset
    container_name: easy-dataset
    ports:
    - '1717:1717'
    volumes:
    - ./local-db:/app/local-db
    - ./prisma:/app/prisma # 如果需要挂载请先手动初始化数据库文件
    restart: unless-stopped
    1
    docker-compose up -d
    就此我们部署好我们的数据集制作工具。
    sYzgAT

实践

todo