【NLP,Huggingface,Colab】使用 Trainer 训练模型,并保存模型参数

news2024/9/25 17:19:48

【NLP,Huggingface,Colab】使用 Trainer 训练模型,并保存模型参数

  • 前置知识
  • 上代码

前置知识

  • Colab 的使用
  • Huggingface 官网和一些基础API

上代码

  • 首先,建议保存代码到 VSCode,这样双击关键类,F12可以进入查看具体接口参数及其含义。
    然后,建议代码在 Colab 运行,第一个是有默认 GPU 资源,第二个是否则会产生各种 ConnectionError, OSError 等错误…
  • 重点可以看注释。自行摸索了一些额外的参数,大多数人都没有讲训练中/后需要保存模型参数…
"""
首先运行如下代码安装库
然后直接运行改代码即可
!pip install datasets transformers
!pip install accelerate -U
"""

from datasets import load_dataset
from transformers import (
    AutoTokenizer,
    DataCollatorWithPadding,
    TrainingArguments,
    AutoModelForSequenceClassification,
    Trainer,
)

# 加载数据集,并加载对应模型的分词器
raw_datasets = load_dataset("glue", "mrpc")
checkpoint = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(checkpoint)


def tokenize_function(example):
    return tokenizer(example["sentence1"], example["sentence2"], truncation=True)

# 数据集分词并打包,传给data_collator
tokenized_datasets = raw_datasets.map(tokenize_function, batched=True)
data_collator = DataCollatorWithPadding(tokenizer=tokenizer)

# 设置训练参数,这里我选择训练1poch,每处理20%steps就保存,注意最后100%时不保存。
training_args = TrainingArguments(
    "test-trainer",
    num_train_epochs=1,
    save_strategy="steps",
    save_steps=0.2,
)

# 设置模型
model = AutoModelForSequenceClassification.from_pretrained(checkpoint, num_labels=2)

# 设置训练器,提供各种必要参数。
trainer = Trainer(
    model,
    training_args,
    train_dataset=tokenized_datasets["train"],
    eval_dataset=tokenized_datasets["validation"],
    data_collator=data_collator,
    tokenizer=tokenizer,
)

# 训练,结束后保存模型
trainer.train()

model.save_pretrained("./output_model")
  • 最后文件夹如下,test-trainer 保存训练断点,output_model保存训练后参数模型。
    请添加图片描述

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

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

相关文章

一个HTTP的流程

1,键入一个URL后浏览器将URL进行解析 2,浏览器解析URL后,需要查询服务器域名对应的IP地址。 流程如下:查询缓存- >客户端发送DNS请求-> 根DNS,根DNS根据 .COM-> 顶级域名服务器,根据baidu->权…

【Linux后端服务器开发】管道设计

目录 一、管道通信 二、匿名管道 1. 匿名管道通信 2. 匿名管道设计 三、命名管道 comm.hpp client.cc serve.cc 一、管道通信 进程通信 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源 通知事件&…

Matlab建模实战学习——(规划问题)

1.Matlab函数linprog()的使用 1.1 Matlab基本描述 1.2 函数linprog() 三种表达形式 [x,fval] linprog(c,A,b)[x,fval] linprog(c,A,b,Acq,bcq)[x,fval]linprog(c,A,b,Aeq,beq,lb,ub) 其中 x返回的是决策向量的取值&#xf…

K8S应用服务安全(最小特权 策略方案 资源限制 调用限制 沙箱)

应用服务安全 1 应用服务安全1.1 最小特权1.1.1 基础知识1.1.2 安全上下文1.1.3 资源实践1.1.4 特权基础1.1.5 特权实践1.1.5 PSP实践 1.2 策略方案1.2.1 OPA简介1.2.2 特权策略1.2.3 策略进阶 1.3 资源限制1.3.1 AppArmor简介1.3.2 基础知识1.3.2 应用实践 1.4 调用限制1.4.1 …

Git装机基础配置

Git在开发中可谓是必用的工具软件了,下面介绍下装机必须的几个配置 配置用户身份 git config –global user.name “Your Name” git config –global user.email “emailexample.com”// 例如: git config –global user.name “xiaowag” git config …

openpnp - 负压传感器DP102的设置

文章目录 openpnp - 负压传感器DP102的设置概述笔记上电后的画面查看模式进入设置模式输出1检测模式输出2检测模式输出1和输出2的常态(常开/常闭状态)设置动作响应时间输出动作颜色的设置压力单位的设置回到正常的运行模式输出1下限的设置输出1上限的设置输出2下限的设置输出2上…

有趣的命令——————用shell脚本实现三角形(直角三角形、等腰三角形)

直角三角形 vim zhijiao.sh 输入以下内容&#xff1a;#!/bin/bashread -p "几层的三角形:" nfor ((i1;i<$n;i)) dofor ((jn;j>i;j--))doecho -n " "donefor ((j1;j<i;j))doecho -n "*"doneecho done例&#xff1a; 测试&#xff1a; 等…

JDBC事务操作

1、 事务概述 事务的概念&#xff1a;逻辑上的一组SQL语句&#xff08;一个或者多个&#xff09;执行的时候要么全部执行成功&#xff0c;要么全部执行失败。 事务的案例&#xff1a;转账案例&#xff1a;一个账户中的余额减少&#xff0c;另一个账户中的余额增加。 更新数据…

Docker笔记 Docker架构与常用命令

大家好 我是积极向上的湘锅锅&#x1f4aa;&#x1f4aa;&#x1f4aa; 1. Docker 架构 首先Docker由三大部分组成 Clients:客户端 通过docker的客户端操作命令&#xff0c;然后命令发送到daemon&#xff08;守护进程&#xff09;里面去执行操作Hosts&#xff1a;主机 主机包…

Linux——内核概念

一、内核 什么是内核&#xff1f; 计算机是由各种外部硬件设备组成的&#xff0c;如内存、cpu、硬盘等。如果每个应用都要和这些硬件对接通信协议&#xff0c;就太麻烦了&#xff0c;所以这个工作就由内核来负责。内核作为软件连接硬件设备的桥梁&#xff0c;使应用开发者只需…

C++常用库函数 1.缓冲区操作函数

函数名&#xff1a;memchr 函数原型&#xff1a;void *memchr(const void *buf&#xff0c;int c&#xff0c;sizet count)&#xff1b; 参数&#xff1a;buf 缓冲区的指针&#xff1b;c 查找的字符&#xff1b;count 检查的字符个数。 所需头文件&#xff1a;<cstring&g…

Python算法中的时间复杂度与空间复杂度

大家好&#xff0c;当谈论算法性能时&#xff0c;经常提到两个关键的衡量标准&#xff1a;时间复杂度和空间复杂度。时间复杂度指的是随着输入规模的增长&#xff0c;执行一个算法需要的时间&#xff0c;而空间复杂度指的是一个算法在执行过程中所使用的内存量。本文将详细探讨…

机器学习-sigmoid函数和relu函数-个人解读

机器学习-sigmoid函数和relu函数-个人解读 今天博主来解读一下sigmoid函数和relu函数&#xff0c;我觉得很多同学可能都知道这两个函数是什么&#xff0c;他们干什么的&#xff0c;他们有什么用&#xff0c;但是呢&#xff1f;我想这两个常用的激活函数内在的本质&#xff0c;…

Ai数字人——为写实而生

在当今数字化时代&#xff0c;人工智能技术正成为推动各行各业发展的重要驱动力。企业需要创新的解决方案&#xff0c;以提高效率、降低成本、增强客户体验并应对市场竞争。Ai数字人作为数字化转型的关键组成部分&#xff0c;具备强大的潜力和多样化的应用场景。 根据市场研究…

dbeaver配置SQL server连接

一、需要java jdk环境&#xff0c;我用的比较新 新的&#xff0c;那坑可就来了&#xff0c;先记着 cmd中 java --version出现版本号代表安装成功 二、dbeaver新建连接SQL server 点击测试连接会自动下载驱动&#xff0c;这个时候重点报错就开始出现了 错误一&#xff1a;DBea…

【已解决】matrix contains invalid numeric entries,记录bug修改

文章目录 摘要原因解决办法图像分类网络AlexNetVGGNetGooLeNet系列ResNetDenseNetSwin TransformerMAECoAtNetConvNeXtV1、V2MobileNet系列MPViTVITSWAEfficientNet系列MOBILEVITEdgeViTsMixConvRepLKNetTransFGConvMAEMicroNetRepVGGMaxViTMAFormerGhostNet系列DEiT系列MetaFo…

CMOS图像传感器——三星ISOCELL HP2技术解析

在之前有写文章介绍三星在2022年技术日活动分享的包括图像传感器在内的各种系统相关技术的最新改进和未来愿景,可以回顾下看看。 三星ISOCELL——2022 改进与展望_沧海一升的博客-CSDN博客三星ISOCELL最新改进和未来发展趋势https://blog.csdn.net/qq_21842097/article/detai…

Stable Diffusion AI 绘画入门指南

Stable Diffusion AI 绘画入门指南 市面上用的最多的AI绘画工具是 Stable-Diffusion&#xff08;SD&#xff09; 和 Midjourney&#xff08;Mid&#xff09;&#xff0c;SD是在本地运行的服务&#xff0c;开源&#xff0c;门槛高&#xff0c;但自控性极高。而Mid作为在线的服务…

Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)

初识Redis Redis为键值型数据库&#xff0c;数据以键值形式存储。没有表&#xff0c;没有约束。 认识NoSQL mysql就是典型的关系型数据库(SQL)。 目的都是数据的增删改查&#xff0c;但数据存储方式不一样。 关系型和非关系型在结构上有差异 关系型的结构一般定好后就很少修…

基于 FFmpeg 的跨平台视频播放器简明教程(六):使用 SDL 播放音频和视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;一&#xff09;&#xff1a;FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;二&#xff09;&#xff1a;基础知识和解封装&#xff08;demux&#xff09;基于 FFmpeg 的跨平台视频…