GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
GPT实战系列-如何使用P-Tuning本地化训练ChatGLM2等LLM模型?
文章目录
- GPT实战系列-如何使用P-Tuning本地化训练ChatGLM2等LLM模型?
- P-Tuning微调训练概述
- 1、预训练模型或者是torch模型
- 2、训练器的超参数
- 3、数据预处理工具
- 4、加载数据
- 5、分词处理
- 6、数据预处理,如填充,前后缀
- 7、训练参数配置
- 8、执行训练
- 软件依赖
- 数据处理
P-Tuning v2 将 ChatGLM2-6B 模型需要微调的参数量,减少到原来的 0.1%,再通过模型量化、Gradient Checkpoint 等方法,最低只需要 7GB 显存即可运行。
本文试图分析程序结构和代码,解释序列转换生成模型的微调训练。为了篇幅不要过长,下期解读训练代码。
P-Tuning微调训练概述
训练过程函数分为五个部分:训练参数配置,训练数据预处理,训练数据加载,执行迭代训练,训练评估与测试。
把训练任务参数配置传递给Trainer:
1、预训练模型或者是torch模型
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")
2、训练器的超参数
TrainingArguments包含可以更改的模型超参数,如学习率、批大小和要训练的epoch数量。如果不指定任何训练参数,则使用默认值:
from transformers import TrainingArguments
training_args = TrainingArguments(output_dir="path/to/save/folder/",learning_rate=2e-5,per_device_train_batch_size=8,per_device_eval_batch_size=8,num_train_epochs=2,
)
3、数据预处理工具
如分词器、图像处理器、特征提取器或处理器:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
4、加载数据
from datasets import load_dataset
dataset = load_dataset("rotten_tomatoes") # doctest: +IGNORE_RESULT
5、分词处理
创建一个函数对数据集进行分词,并使用map将其应用到整个数据集上:
def tokenize_dataset(dataset):return tokenizer(dataset["text"])
dataset = dataset.map(tokenize_dataset, batched=True)
6、数据预处理,如填充,前后缀
使用DataCollatorWithPadding从数据集中创建一批示例:
from transformers import DataCollatorWithPadding
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
7、训练参数配置
在Trainer中使用所有这些类:
from transformers import Trainer
trainer = Trainer(model=model,args=training_args,train_dataset=dataset["train"],eval_dataset=dataset["test"],tokenizer=tokenizer,data_collator=data_collator,
) # doctest: +SKIP
8、执行训练
调用train()开始训练:
trainer.train()
对于使用序列到序列模型的任务(如翻译或摘要),请使用Seq2SeqTrainer和Seq2SeqTrainingArguments类。
可以通过继承Trainer中的方法来自定义训练循环。允许自定义特性,如损失函数、优化器和调度器(scheduler)。请查看 Trainer参考文档,了解哪些方法可以被子类化。
软件依赖
需要pip安装中文分词器,中文评价指标,数据集管理
pip install rouge_chinese nltk jieba datasets
数据处理
训练数据形式的转换,本训练测试以广告数据集作为样例讲解。
ADGEN数据集任务的数据形式,输入(content),生成输出(summary)
{"content": "类型#上衣*版型#宽松*版型#显瘦*图案#线条*衣样式#衬衫*衣袖型#泡泡袖*衣款式#抽绳","summary": "这件衬衫的款式非常的宽松,利落的线条可以很好的隐藏身材上的小缺点,穿在身上有着很好的显瘦效果。领口装饰了一个可爱的抽绳,漂亮的绳结展现出了十足的个性,配合时尚的泡泡袖型,尽显女性甜美可爱的气息。"
}
End
GPT专栏文章:
GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案
GPT实战系列-ChatGLM2模型的微调训练参数解读
GPT实战系列-如何用自己数据微调ChatGLM2模型训练
GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案
GPT实战系列-Baichuan2本地化部署实战方案
决策引擎:
Falcon构建轻量级的REST API服务
决策引擎-利用Drools实现简单防火墙策略
相关文章:
GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
GPT实战系列-如何使用P-Tuning本地化训练ChatGLM2等LLM模型? 文章目录 GPT实战系列-如何使用P-Tuning本地化训练ChatGLM2等LLM模型?P-Tuning微调训练概述1、预训练模型或者是torch模型2、训练器的超参数3、数据预处理工具4、加载数据5、分词处理6、数据预…...
【Python】爬虫代理IP的使用+建立代理IP池
目录 前言 一、代理IP 1. 代理IP的获取 2. 代理IP的验证 3. 代理IP的使用 二、建立代理IP池 1. 代理IP池的建立 2. 动态维护代理IP池 三、完整代码 总结 前言 在进行网络爬虫开发时,我们很容易遭遇反爬虫机制的阻碍。为了规避反爬虫机制,我们…...
JS-项目实战-新增水果库存功能实现
1、fruit.js function $(name) {if (name) {//假设name是 #fruit_tblif (name.startsWith("#")) {name name.substring(1); //fruit_tblreturn document.getElementById(name);} else {return document.getElementsByName(name); //返回的是NodeList类型}} }//当…...
mysql 常见操作指令
use k_order – 查看版本 select version(); – 查看所有数据库 show databases; – 查看所有执行引擎 show engines; – 查看当前数据库 select database(); – 查看所有table show tables; – 查看默认存储引擎 SHOW VARIABLES LIKE ‘default_storage_engine’; – 系…...
Vue3 生命周期
如下是Vue3的生命周期函数图: 一、Vue2生命周期和Vue3声明周期的区别 1. Vue2 中,只要创建Vue实例对象而不需要挂载就可以实现beforeCreate 和 created 生命周期函数。 Vue3中必须要将Vue实例对象挂载完成,所有的准备工作做完,…...
rocketmq 安装dashboard1.0.0 mq消息控制台安装 rocketmq控制台安装 rocketmq-dashboard-1.0.0编译安装
1. 官网: 下载 | RocketMQ 2. dashboard安装包位置: 在连接最下面,点击download.zip即可 3. 需要安装maven, 编译命令: mvn clean install -U -Dmaven.test.skiptrue4. 启动jar: java -jar rocketmq-dashboard-1.0.0.jar &…...
常见的数据结构有哪些?
数据结构分为逻辑结构和物理结构。 逻辑结构:指数据元素之间逻辑关系的数据结构,这里的逻辑关系是指数据元素之间的前后间关系,与数据在计算机中的存储位置无关。物理结构:指数据的逻辑结构在计算机存储空间中的存放形式称为数据…...
Spring中有哪几种方法获取HttpSession对象
Spring MVC 可以直接作为Controller的参数传入: RequestMapping(value "/test", method RequestMethod.POST, produces "application/json;charsetUTF-8")ResponseBodypublic Map test(HttpSession session, String otherParam) {//TODOre…...
springboot开启Redis缓存支持
开启缓存支持,只需要继承CachingConfigurerSupport 即可。代码如下: import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.ObjectMapper; impo…...
2.4 矩阵的运算法则
矩阵是数字或 “元素” 的矩形阵列。当矩阵 A A A 有 m m m 行 n n n 列,则是一个 m n m\times n mn 的矩阵。如果矩阵的形状相同,则它们可以相加。矩阵也可以乘上任意常数 c c c。以下是 A B AB AB 和 2 A 2A 2A 的例子,它们都是 …...
让文字在盒子中水平居中与垂直居中
简单方法: 1.先用text-align: center;将文字垂直居中。 2.再用line-height: Xpx;将元素的行高设置为与父元素同样的高度。(这里的X代表父元素的高度) 举例: 对于该网页的代码如下: <!DOCTYPE html> <html&…...
聊一聊前端面临的安全威胁与解决对策
前端是用户在使用您的网站或Web应用程序时首先体验到的东西。如果您的Web应用程序的前端受到侵害,它可能会影响整个布局,并造成糟糕的用户体验,可能难以恢复。集成前端安全变得越来越重要,本文将指导您通过可以应用于保护您的Web应…...
【matlab学习】现代控制
文章目录 (1) SISO Modeling(2) MIMO Modeling(3) 状态空间模型(4) 状态空间模型->传递函数(5) 传递函数->状态空间模型(6) 状态空间模型变换(7) 特征值和特征向量(8) 广义特征向量(9) 状态空间模型->约旦型 (1) SISO Modeling y ( k 2 ) 5 y ( k 1 ) 6 y ( k ) …...
Debezium报错处理系列之九十九:ConnectException: Source offset ‘file‘ parameter is missing
Debezium报错处理系列之九十九:ConnectException: Source offset file parameter is missing 一、完整报错二、错误原因三、解决方法研究Debezium技术遇到的各种错误解决方法系列文章传送门: Debezium从入门到精通系列之:百篇系列文章汇总之研究Debezium技术遇到的各种错误的…...
基于深度学习的活体人脸识别检测算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1. 活体人脸识别检测算法概述 4.2. 深度学习在活体人脸识别检测中的应用 4.3. 算法流程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 …...
Angular 由一个bug说起之二:trackBy的一点注意事项
trackBy是angualr优化项目性能的一种方法, 通过返回一个具有绑定性的唯一值, 比如id,手机号,身份证号之类的,来让angular能够跟踪数组的项目,根据数据的变化来重新生成DOM, 这样就节约了性能。 但是如果是使用ngFor循环组件&…...
单片机FLASH下载算法的制作
环境 硬件使用正点原子STM32F407探索者V2开发板 编程环境使用MDK 下载工具使用JLINK FLASH芯片使用W25Q128 什么是下载算法 单片机FLASH的下载算法是一个FLM文件,FLM通过编译链接得到,其内部包含一系列对FLASH的操作,包括初始化、擦除、写…...
[nlp] 损失缩放(Loss Scaling)loss sacle
在深度学习中,由于浮点数的精度限制,当模型参数非常大时,会出现数值溢出的问题,这可能会导致模型训练不稳定。为了解决这个问题,损失缩放(Loss Scaling)技术被引入,它通过缩放损失值来解决这个问题。 在深度学习中,损失缩放技术通常是通过将梯度进行缩放来实现的。具…...
Django框架之视图层
【一】三板斧 【1】HttpResponse 返回字符串类型 【2】render 返回html页面,并且在返回给浏览器之前还可以给html页面传值 【3】redirect 重定向页面 在视图文件中写视图函数的时候不能没有返回值了,默认返回的是None,页面上就会报错 d…...
商城免费搭建之java商城 java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c
1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…...
OpenClaw+QwQ-32B成本对比:自建模型如何节省90%API费用
OpenClawQwQ-32B成本对比:自建模型如何节省90%API费用 1. 为什么我要做这次成本实验 去年冬天,当我第一次用OpenClaw对接GPT-4完成月度报表自动化时,账单上的数字让我倒吸一口冷气——连续执行3天的数据整理任务,竟然消耗了价值…...
Arduino ESP平台MQTT固件空中升级(FUOTA)轻量库
1. 项目概述mqtt_fuota_duino是一个面向资源受限嵌入式物联网终端的轻量级固件空中升级(Firmware Update Over-The-Air, FUOTA)库,专为 Arduino 生态设计,深度适配 ESP8266 和 ESP32 平台。其核心使命并非替代标准 HTTP/HTTPS OTA…...
终极宽屏补丁:让《暗黑破坏神2》在现代电脑上重获新生
终极宽屏补丁:让《暗黑破坏神2》在现代电脑上重获新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否曾在…...
OpenClaw定时任务系统:ollama-QwQ-32B每日早报自动生成与推送
OpenClaw定时任务系统:ollama-QwQ-32B每日早报自动生成与推送 1. 为什么需要自动化晨报系统 每天早上打开电脑,我都会被各种信息轰炸——行业新闻、技术动态、待办事项、会议安排...手动整理这些内容至少需要半小时。直到我发现OpenClawollama-QwQ-32B…...
Emergency Mode Troubleshooting: A Comprehensive Guide to Fixing System Boot Failures with journalctl
1. 紧急模式入门:当系统启动失败时该怎么办 那天早上我正准备部署一个关键服务,结果服务器突然卡在启动界面,屏幕上赫然显示"Welcome to emergency mode!"。作为运维老手,我立刻意识到这是Linux系统最后的自我保护机制…...
BilibiliDown:专业B站Hi-Res音频下载工具全攻略
BilibiliDown:专业B站Hi-Res音频下载工具全攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bili…...
BG3ModManager全攻略:从基础配置到故障解决的模组管理大师之路
BG3ModManager全攻略:从基础配置到故障解决的模组管理大师之路 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModManager 一、基础配置:搭建你的模组管理中心 让游戏与工具…...
(新手)Linux 输入子系统实战教程 —— 02设备信息查询 + 输入事件读取(阻塞 / 非阻塞模式)
Linux 输入子系统实战教程 —— 设备信息查询 输入事件读取(阻塞 / 非阻塞模式)完整学习文档本文档基于Linux 输入设备事件读取程序编写,包含完整注释源码、核心原理、逐模块解析、真实实验现象、错误原因分析,专为嵌入式 Linux …...
Asian Beauty Z-Image Turbo 跨平台部署:基于.NET框架的Windows桌面应用集成
Asian Beauty Z-Image Turbo 跨平台部署:基于.NET框架的Windows桌面应用集成 最近在做一个Windows桌面项目,需要集成一个图片生成功能。团队里的小伙伴用Python在服务器上跑了一个Asian Beauty Z-Image Turbo模型,效果挺惊艳的,但…...
个人隐私守护者:Qwen-Image-Edit本地化部署,修图数据不出本地
个人隐私守护者:Qwen-Image-Edit本地化部署,修图数据不出本地 想要体验AI修图的魔力,又担心隐私泄露?Qwen-Image-Edit本地化部署方案让你鱼与熊掌兼得。本文将带你从零开始,在本地服务器上部署这款强大的图像编辑工具…...
