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

Hugging face 模型微调学习:T5-base的微调

最近想做一点文本生成的小实验,无意发现了NLPer应该了解到了一个网站:Hugging face。
Hugging face 在 github上开源了一个Transformers库,允许用户上传和下载的预训练的模型,并进行原有模型的基础上进行微调。如此,使得每个 NLPer 必须依靠大量美金才能训练出来的预训练模型,可以轻易的在huggingface网站对自己的数据集上进行微调,并达到很好的效果。
这篇文章介绍了自己在探索Hugging face 模型微调的操作过程,希望能帮助到大家。

1.登陆网址,查找需要的模型

1)使用下方命令安装transformers

pip install transformers

2)查找合适的预训练模型

以T5为例,在huggingface网站搜索t5,进入详情页点files and verisons。就会看到如下方图所示的模型文件和配置文件。
在这里插入图片描述

2.进入预训练界面

1)找到首页按钮 train 进入AutoTrain界面

跳转至AutoTrain界面在这里插入图片描述

2)选择训练的任务

这里,我希望做生成的任务,因此选择了Summarize摘要类型的来完成。
在这里插入图片描述

3)填写fine-tune的项目信息

填写项目名称,任务类型,以及手动还是自动(选择了自动的我,并没有探索手动需要怎么做…)的信息,并创建一个自己的项目。
在这里插入图片描述

3.准备数据并开始训练

1)准备数据

这里支持上传csv, json格式的数据,并给出了数据样例。
数据量一开始先搞个3000条以下! 后面解释具体的原因。

在这里插入图片描述

这里给出了我上传的数据样例,是json格式的,数据量3000。

在这里插入图片描述

2)选择对应的数据列

传入数据后,系统会简单的识别一下。我这个文件有3列,但是实际只用到2列。因此,后面有两个下拉框,问我选择哪两列数据分别作为源列和目标列。
在这里插入图片描述

3)准备训练

数据上传成功后,通过Go to trainings进入训练界面。
在这里插入图片描述

进入训练界面后,需要选择训练模型。我选用了第一个。
这里要解释一下建议3000条以下数据量的原因:因为3000条以上需要使用大模型并交钱了,作为看这篇文章的小白,最好先训练试一试,不要急于一次性解决问题。

在这里插入图片描述

4)开始训练吧

点击Start models training按钮,开始训练模型。需要等待几分钟呢。

4.下载模型并使用

1)这里是训练模型的结果

这5个模型内部包含的文件是有所不同的,可以点击每个模型的详情页查看。但是博主还不太明白区别在哪里,知道的可以下方评论留言。
带有星星标志的模型文件缺少一个spiece.model,因此我没有使用,而是选择了第二个模型。

在这里插入图片描述
在这里插入图片描述

2)使用模型

选择你要使用的模型,并利用如下代码调用。注意,使用过程中,保证外网畅通噢!

from transformers import AutoTokenizer, AutoModelForSeq2SeqLMtokenizer = AutoTokenizer.from_pretrained("lambdarw/autotrain-pret5-base-re-3702698639")  # 你的用户名/项目名称model = AutoModelForSeq2SeqLM.from_pretrained("lambdarw/autotrain-pret5-base-re-3702698639")  # 你的用户名/项目名称

3)修改名称并公开

想要使用自己的模型,必须将它设置为pulic,否则会报Unauthorized错误。如下:

requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://huggingface.co/lambdarw/pret5-base-re-en/resolve/main/spiece.model

如果希望自己的模型更加有辨识度,方便记忆,也可以给模型修改一下名称。在settings标签页中,可以修改项目名称,删除项目,公开项目或私有项目,等等操作。

在这里插入图片描述

不希望使用外网,选用离线的方式fine-tune的小伙伴推荐参考博文:Hugging face 模型微调系列1—— 实战transfomers文本分类

http://www.lryc.cn/news/18838.html

相关文章:

  • JavaScript 测试 Prototype
  • pnpm / yarn / npm管理依赖包
  • 注意力机制详解系列(一):注意力机制概述
  • 搜索引擎 Elasticsearch 的三大坑
  • 运营级手机直播平台源码 短视频直播带货APP源码
  • http/HTTPS相关的一些知识
  • MySQL高可用 集群(MHA)
  • 【JavaScript速成之路】JavaScript运算符
  • 计网个人作业05
  • 码匠 × OpenAI :快速生成 SQL 语句,提升开发效率!
  • 电脑显示屏不亮但是主机已开机?5种原因以及解决方案
  • 公司项目vue cli2升级到vue cli3
  • 流程图培训
  • 编写使用多buffer的应用程序
  • 【java 8】强大的 Stream API
  • 自动驾驶仿真:ECU TEST自动化测试常用API调用
  • notepad++中使用正则表达式
  • 什么蓝牙耳机打游戏好?打游戏好用的无线蓝牙耳机
  • 基于appium的app自动化测试框架
  • 【拿好了!Linux 运维必备的 13 款实用工具!】
  • 软考中级--嵌入式系统设计师考试培训教程开始了
  • JDBC学习(复习)-面试总结详细
  • 前端:你不知道的async await
  • c#前端实现对pcl点云颜色根据强度特征动态变化突出指定对象
  • 如何制定达人营销策略
  • 100种思维模型之三层解释思维模型-020
  • RK系列(RK3568) i2s 音频输入 麦克风驱动
  • Python|Pymol的安装
  • Mysql中关于查询日志的配置详解
  • 外包整整干了一年,废了。。。