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

大模型学习与实践笔记(七)

一、环境配置

1.平台:

Ubuntu + Anaconda + CUDA/CUDNN + 8GB nvidia显卡

2.安装

# 构建虚拟环境
conda create --name xtuner0.1.9 python=3.10 -y 

# 拉取 0.1.9 的版本源码
git clone -b v0.1.9  https://github.com/InternLM/xtuner

# 从源码安装 XTuner
pip install -e '.[all]'

3.模型下载

# 安装modelscope库
pip install modelscope

# 从 modelscope 下载下载模型文件
apt install git git-lfs -y
git lfs install
git lfs clone https://modelscope.cn/Shanghai_AI_Laboratory/internlm-chat-7b.git -b v1.0.3

4.数据集下载

数据集链接:https://huggingface.co/datasets/timdettmers/openassistant-guanaco/tree/main

5.拷贝模型配置文件到当前目录

`# xtuner copy-cfg ${CONFIG_NAME} ${SAVE_PATH}`

本次实践拷贝文件为:

xtuner copy-cfg internlm_chat_7b_qlora_oasst1_e3 .

数据集与配置文件准备完成后的文件目录:

二、修改配置文件并进行微调

1.配置文件修改

# 修改模型为本地路径
- pretrained_model_name_or_path = 'internlm/internlm-chat-7b'
+ pretrained_model_name_or_path = './internlm-chat-7b'

# 修改训练数据集为本地路径
- data_path = 'timdettmers/openassistant-guanaco'
+ data_path = './openassistant-guanaco'

其他超参数:

2.开始微调

# 训练:
xtuner train ${CONFIG_NAME_OR_PATH}

# 也可以增加 deepspeed 进行训练加速:
xtuner train ${CONFIG_NAME_OR_PATH} --deepspeed deepspeed_zero2

# 后台加速运行
nohup xtuner train ./internlm_chat_7b_qlora_oasst1_e3_copy.py --deepspeed deepspeed_zero2 >>./train.log 2>&1 &

3. 将训练后的模型转为HuggingFace 模型

mkdir hf
export MKL_SERVICE_FORCE_INTEL=1

xtuner convert pth_to_hf ./internlm_chat_7b_qlora_oasst1_e3_copy.py ./work_dirs/internlm_chat_7b_qlora_oasst1_e3_copy/epoch_3.pth ./hf

三、部署与测试

1. 将 HuggingFace adapter 合并到大语言模型

# xtuner convert merge \
#     ${NAME_OR_PATH_TO_LLM} \
#     ${NAME_OR_PATH_TO_ADAPTER} \
#     ${SAVE_PATH} \
#     --max-shard-size 2GB

# 示例:
xtuner convert merge ./internlm-chat-7b ./hf ./merged --max-shard-size 2GB

2.与合并后的模型对话

xtuner chat ./merged --prompt-template internlm_chat

默认是float 16格式加载模型,如果需要设置4bit量化加载

# 4 bit 量化加载
# xtuner chat ./merged --bits 4 --prompt-template internlm_chat

3. 运行demo

四、微调InternLM-Chat-7B 模型 修改模型身份认知

1.训练过程截图

2.训练结束后截图

3.gradio部署截图

相关文章:

  • SQL慢语句执行的很慢,如何分析优化呢,(如何优化的呢?)
  • H5小游戏如何提升APP变现收益?
  • SQL执行时间过长如何优化
  • 阿里云国外服务器多少钱一个月?24元/月
  • VRPSolverEasy:支持VRP问题快速建模的精确算法Python包
  • 架构篇05-复杂度来源:高可用
  • go语言(一)----声明变量
  • 【JavaEE】网络原理:网络中的一些基本概念
  • 制作一个Python聊天机器人
  • Git一台电脑 配置多个账号
  • PXE高效批量网络装机
  • 矩阵和矩阵如何相乘?
  • openssl3.2 - 官方demo学习 - test - certs
  • 【计算机网络】TCP握手与挥手:三步奏和四步曲
  • 低代码+物联网: 重塑智慧社区,开启未来生活新纪元
  • 市场复盘总结 20240119
  • 从数据角度分析年龄与NBA球员赛场表现的关系【数据分析项目分享】
  • 【RT-DETR有效改进】华为 | Ghostnetv1一种专为移动端设计的特征提取网络
  • 基于SpringBoot Vue家政服务预约平台系统
  • 【C++算法】构建最优哈夫曼树
  • “大鼻子情圣”德帕迪约因性侵被判缓刑,还有新的官司等着他
  • 重庆市委原常委、政法委原书记陆克华被决定逮捕
  • 微软宣布将裁员3%
  • 上海北外滩,未来五年将如何“长个子”“壮筋骨”?
  • 220名“特朗普币”持有者花1.48亿美元,获邀与特朗普共进晚餐
  • 尊严的代价:新加坡福利体系下的价值困境