Xtuner实战+LLM微调

发布时间:2024年01月16日

Finetune 微调

在实际对话中,通常会有三种角色

  • system:给定一些上下文信息,“你是一个专业的内科医生,能回答医疗领域的专业问题”
  • User:用户的问题,”肿瘤如何治疗“
  • Assistant:LLM的回答

增量预训练

让基座模型学习到一些垂类领域的新知识

学习时只需要学习知识,“珠穆朗玛峰是世界第一高峰”,并不需要问题(User)和系统提示(System),这些留空。计算损失只计算output

指令跟随微调

指令跟随微调,输入数据需要包含System、User、Assistant。计算损失只计算output

在这里插入图片描述

在这里插入图片描述

LoRA& QLoRA

在这里插入图片描述

XTuner

  • 支持工具类模型的对话
  • 支持从Huggingface和modelscope加载模型
  • 原始问答对生成多种不同LLM的格式化问答对
  • 多数据样本拼接,增强并行性

Tmux

用户与计算机的交互,称为一次会话(session)。会话的一个特点是,将窗口和其中运行的进程绑定,窗口关闭,则进程关闭。Tmux就是将窗口和其中的进程进行解绑

# Ubuntu 或 Debian
$ sudo apt-get install tmux

# CentOS 或 Fedora
$ sudo yum install tmux

微调

安装环境

# 1.创建虚拟环境
/root/share/install_conda_env_internlm_base.sh xtuner0.1.9
# 2.进入虚拟环境
conda activate xtuner0.1.9
cd ~
mkdir xtuner019 && cd xtuner019
# 3.拉取Xtuner源码
git clone -b v0.1.9  https://github.com/InternLM/xtuner
# 4.从源码安装Xtuner
cd xtuner
pip install -e '.[all]'

配置文件

# 创建一个微调 oasst1 数据集的工作路径,进入
mkdir ~/ft-oasst1 && cd ~/ft-oasst1
# 列出所有内置配置
xtuner list-cfg
cd ~/ft-oasst1
#拷贝一个配置文件到当前目录
xtuner copy-cfg internlm_chat_7b_qlora_oasst1_e3 .

模型下载

数据集

cd ~/ft-oasst1
# ...-guanaco 后面有个空格和英文句号啊
cp -r /root/share/temp/datasets/openassistant-guanaco .

修改配置文件

训练

# 单卡
## 用刚才改好的config文件训练
xtuner train ./internlm_chat_7b_qlora_oasst1_e3_copy.py

# 多卡
NPROC_PER_NODE=${GPU_NUM} xtuner train ./internlm_chat_7b_qlora_oasst1_e3_copy.py

# 若要开启 deepspeed 加速,增加 --deepspeed deepspeed_zero2 即可

进阶任务

在这里插入图片描述

在这里插入图片描述

文章来源:https://blog.csdn.net/L1142456160/article/details/135632018
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。