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

news2024/11/18 12:16:18

一、环境配置

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部署截图

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬取图片(thumbURL和html文件标签分别爬取)

当查看源代码,发现网址在thumbURL之后时,用此代码: # 当查看源代码,发现网址在thumbURL之后时,用此代码:import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121…

typing python 类型标注学习笔记

在Python 3.5版本后引入的typing模块为Python的静态类型注解提供了支持。这个模块在增强代码可读性和维护性方面提供了帮助。 目录 简介为什么需要 Type hints typing常用类型typing初级语法typing基础语法默认参数及 Optional联合类型 (Union Type)类型别名 (Type Alias)子类型…

tcp/ip协议2实现的插图,数据结构7 (27 - 章)

(166) 166 二七1 TCP的函数 函tcp_drain,tcp_drop (167) (168)

【AI Superman workshop】AI excel类工具体验

本打卡参与活动:AI Superman workshop,由奇想星球平台与Datawhale联合举办 ChatExcel https://chatexcel.com/ 示例数据 体验内容 1、哪个城市的订单最多? 2、哪个城市的订单最少? 这里能看出订单最少的城市有几十个都为…

CVPR 2023 Hybrid Tutorial: All Things ViTs之DINO attention map

All Things ViTs系列讲座从ViT视觉模型注意力机制出发,本文给出DINO attention map可视化部分阅读学习体会. 课程视频与课件: https://all-things-vits.github.io/atv/ 代码:https://colab.research.google.com/github/all-things-vits/code-samples/blob/main/probing/dino_at…

Windows 11 UEFI引导修复的方法有哪些?

若Windows 11 UEFI 引导加载程序损坏了,您的电脑将无法启动,那么Win11怎么修复UEFI引导?下面我们就来了解一下。 通过自动修复进行UEFI引导修复 1. 将可启动U盘连接到损坏的电脑,进入BIOS设置您的电脑从U盘启动电脑。然后&#x…

红队打靶练习:W34KN3SS: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、gobuster 5、dirsearch WEB web信息收集 目录探测 漏洞利用 openssl密钥碰撞 SSH登录 提权 get user.txt get passwd 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB…

接口测试遇到500报错?别慌,你的头部可能有点问题

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

SSE[Server-Sent Events]实现页面流式数据输出(模拟ChatGPT流式输出)

文章目录 前言SSE 简介应用场景区分浏览器支撑性 实现过程Web VUE核心解析数据代码实例demo参考 前言 服务端向客户端推送消息,除了用WebSocket可实现,还有一种服务器发送事件(Server-Sent Events)简称 SSE,这是一种服务器端到客户端(浏览器)…

idea上传本地项目到gitlab

1. idea上传本地项目到gitlab 1. 配置idea里本地安装的git位置 即选择 Settings -> Version Control -> Git -> Path to Git executable 2. 在idea创建本地仓库 即选择 VCS -> Create Git Repository 然后选择目录,默认就是选择的当前项目&#xff…

(学习日记)2024.01.19

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

C和指针课后答案

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 第八章课后答案 提示:以下是本篇文章正文内容,下面案例可供参…

ISA Server 2006部署网站对比nginx

2024年了,我还是第1次使用ISA Server 。没办法在维护一个非常古老的项目。说到ISA Server可能有小伙们不清楚,但是说到nginx大家应该都知道吧。虽然他们俩定位并不相同,但是本文中提到的需求,他俩是都可以实现。 网上找的到的教程…

全网最详细丨2024年AMC8真题及答案来了

目录 前言 真题回忆 真题解析 结尾 前言 相信大家都已经知道今年AMC8出事情了吧,但最重要的还是要从中学到新知识。 听说今年考生被提前12分钟强制交卷了,肯定因为试题泄露了。 最新回复:我们这边已经退费了 真题回忆 需要word文档的请…

基于JavaWeb+SSM+Vue基于微信小程序的网上商城系统的设计和实现

基于JavaWebSSMVue基于微信小程序的网上商城系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想…

应届生必读:Java真实项目的开发流程和常用工具

目录 1 接需求和前期设计 2 敏捷开发模式 3 开发、测试与测试环境 4 项目部署细节说明 5 监控系统,解决线上问题 6 项目管理和部署工具 7 代码管理工具 8 Java项目开发的常用组件 9 测试类工具 10 数据库服务器及其客户端组件 11 linux连接组件 12 总结…

Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI

Helm Dashboard 通过提供图形用户界面,使在 Kubernetes 中管理 Helm 版本变得更加容易,这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本,并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…

鸿蒙 HarmonyOS ArkTS ArkUI 动画 中心扩展、向下扩展、纵向扩展

EntryComponentstruct Index {State widthA: number 0State heightA: number 0onPageShow():void{animateTo ( {duration: 2000,iterations: -1,curve:Curve.Linear}, () > {this.widthA 200this.heightA 200} )}build() {Column() {// 中心扩展Column(){}.width(this.wi…

二叉树基础oj题目

二叉树基础oj题目及思路总结 前文中,介绍了二叉树的基本概念及基础操作,进一步对于二叉树的递归遍历及子问题的处理思想有了一定的了解。本文将带来几道二叉树经典的oj题目。 目录 二叉树基础oj题目 对称二叉树平衡二叉树二叉树的层序遍历 二叉树基…

(C语言)编译和链接

前言͟͟͞͞💌:对于现在的各种编译器而言许多都是好多个功能的集成,那么我们的代码到底是如何去实现的呢?难道我们的计算机可以直接读懂我们所写的代码,并运行吗?对于很多细心的小伙伴们可能会想这样的问题…