当前位置: 首页 > news >正文

xtuner微调大模型教程

1.构建虚拟环境

conda create --name xtuner-env python=3.10 -y
conda activate xtuner-en 

拉取 XTuner,过程大约需要几分钟

git clone https://github.com/InternLM/xtuner.git

然后安装依赖的软件,这步需要的时间比较长。可以百度pip的清华源进行下载

cd xtuner
pip install -e '.[all]'

2.下载模型

from modelscope import snapshot_download
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm2-chat
1_8b',cache_dir='/root/llm/internlm2-1.8b-chat')

3.微调

创建微调训练相关的配置文件在左侧的文件列表,xtuner 的文件夹里,打开 xtuner/xtuner/configs/internlm/internlm2_chat_1_8b/internlm2_chat_1_8b_qlora_alpaca_e3.py, 复制一份至根目录。 打开这个文件,然后修改预训练模型地址,数据文件地址等。

需要调整的部分

### PART 1中
#预训练模型存放的位置
pretrained_model_name_or_path = '/root/llm/internlm2-1.8b-chat   #基座模型路径

 #微调数据存放的位置
data_files = '/root/public/data/target_data.json'(多个数据集就配置多个json)
# 训练中最大的文本长度
max_length = 512
 # 每一批训练样本的大小
batch_size = 2
 #最大训练轮数
max_epochs = 3

 # PART 3中
#验证数据,只支持主观验证
evaluation_inputs = [
 '只剩一个心脏了还能活吗?', '爸爸再婚,我是不是就有了个新娘?',
 '樟脑丸是我吃过最难吃的硬糖有奇怪的味道怎么还有人买','马上要上游泳课了,昨天洗的泳裤还没
干,怎么办',
 '我只出生了一次,为什么每年都要庆生'
 ]
 dataset=dict(type=load_dataset, path="json",data_files=data_files)
 dataset_map_fn=None

4.微调训练

在当前目录下,输入以下命令启动微调脚本

xtuner train internlm2_chat_1_8b_qlora_alpaca_e3.py

5.模型转换

模型训练后会自动保存成 PTH 模型(例如 iter_2000.pth ,如果使用了 DeepSpeed,则将会是一个 文件夹),我们需要利用 xtuner convert pth_to_hf 将其转换为 HuggingFace 模型,以便于后续使 用。具体命令为

xtuner convert pth_to_hf ${FINETUNE_CFG} ${PTH_PATH} ${SAVE_PATH}
 # 例如:xtuner convert pth_to_hf internlm2_chat_7b_qlora_custom_sft_e1_copy.py 
./iter_2000.pth ./iter_2000_

6.模型合并

如果使用了 LoRA / QLoRA 微调,则模型转换后将得到 adapter 参数,而并不包含原 LLM 参数。如果您 期望获得合并后的模型权重(例如用于后续评测),那么可以利用 xtuner convert merge 

$ xtuner convert merge ${LLM} ${LLM_ADAPTER} ${SAVE_PATH}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/100590.html

相关文章:

  • SkyWalking+Springboot实战
  • 自定义C语言变量转换库
  • P1090合并果子(优先队列)
  • Vue3 其它API toRow和markRow
  • nacos 3.x Java SDK 使用详解
  • 【COMSOL】参数化建模以及通过MATLAB运行
  • qml中的Connections用法
  • Android Gradle 下载插件或依赖太慢
  • ansible主机清单文件以及ansible常用模块
  • 软考中级-软件设计师信息安全模块考点解析
  • docker 镜像下载的另一种方式
  • 简易指南“<em >快</em><em>3</em><em>倍</em><em>投</em><em>规</em><em>划
  • C++第13届蓝桥杯省b组习题笔记
  • 自动化工作流工具的综合对比与推荐
  • 自定义类型:结构体(1)
  • 在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
  • 5种特效融合愚人节搞怪病毒
  • 深入解析C#中的解释器模式:原理与应用
  • C语言:多线程
  • 《Python实战进阶》第39集:模型部署——TensorFlow Serving 与 ONNX
  • C--操作符
  • AI人工智能-PyCharm的介绍安装应用
  • Vue学习笔记集--defineExpose
  • CSP-J 2019 入门级 第一轮(初赛) 完善程序(2)
  • 协程 Coroutine
  • 综合实验一
  • Arduino示例代码讲解:Virtual Color Mixer 虚拟混色器
  • CS提取的基本使用和模块加载
  • 树莓派超全系列文档--(14)无需交互使用raspi-config工具其一
  • 记录vite-plugin-dts打包时无法生成 .d.ts文件问题