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

Transformers中加载预训练模型的过程剖析

使用HuggingFace的Transformers库加载预训练模型来处理下游深度学习任务很是方便,然而加载预训练模型的方法多种多样且过程比较隐蔽,这在一定程度上会给人带来困惑。因此,本篇文章主要讲一下使用不同方法加载本地预训练模型的区别、加载预训练模型及其配置的过程,藉此做个记录,也可供参考。

加载预训练模型的过程

transformers里主要使用 from_pretrained 方法来加载预训练模型,调用这个方法时会执行以下过程:

  • 加载预训练模型:from_pretrained方法可以选择从本地加载已下载的预训练模型,或者提供模型名称从HuggingFace的模型仓库下载预训练模型权重;
  • 加载配置:from_pretrained方法会加载预训练模型的配置文件,配置包含了模型的名称、架构、参数等信息。这些配置参数定义了模型的结构;
  • 初始化模型:使用配置文件中的参数初始化模型,构建模型的各个层和结构;
  • 载入权重:将预训练模型权重载入到初始化的模型结构中;
  • 创建实例:返回加载了权重的模型实例,利用这个实例进一步完成特定的下游任务。

加载预训练模型的方法

要加载预训练模型,可以使用transformers库的 AutoModel 方法或具体模型对应的方法(比如要加载的是Ernie模型,则可以直接使用 ErnieModel )。这两者有区别吗?

先说结论:AutoModel.from_pretrainedErnieModel.from_pretrained 方法本质上是一样的。

本文以 shibing624/text2vec-base-chinese-paraphrase 模型为例,可以下载到本地以作示例之用。注意至少需要下载 pytorch_model.binconfig.jsonvocab.txt 三个文件,其中前两个文件加载预训练模型会用到,第三个文件加载切词器会用到,否则会报错。


在这里插入图片描述

图1

#需要先安装transformers模块(pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple/)
from transformers import AutoModel, ErnieModel
#下载的预训练模型的路径(按自己存放位置修改)
model_path 
http://www.lryc.cn/news/345756.html

相关文章:

  • 使用MCU的 GPIO口 模拟SDIO时序读写TF/SD卡的可能性。
  • SSM【Spring SpringMVC Mybatis】——Mybatis(二)
  • 在线教育系统在线网校报价,培训机构是怎样招聘老师的?流程是什么?
  • 您的文件和驱动器上的“密码保护”有多安全?
  • 4000字超详解Linux权限
  • SearXNG - 一个注重隐私的互联网元搜索引擎
  • (第15天)【leetcode题解】459、重复的子字符串
  • PostgreSQL的学习心得和知识总结(一百四十二)|深入理解PostgreSQL数据库数据库之 Continuous Integration
  • 【外币兑换,简单贪心】
  • 数据库入门(sql文档+命令行)
  • 【机器学习300问】84、AdaGrad算法是为了解决什么问题?
  • Java算法-力扣leetcode-14. 最长公共前缀
  • 视频拼接融合产品的产品与架构设计(二)
  • 【docker 】push 镜像到私服
  • Java框架精品项目【用于个人学习】
  • 每周一算法:无向图的最小环
  • 分布式websocket IM即时通讯聊天开源项目如何启动
  • tensorflow学习笔记(1)环境准备写个简单例子(小白手册)-20240506
  • kubernate 基本概念
  • 【系统架构师】-选择题(十二)计算机网络
  • 代码随想录|总结篇
  • 网络编程套接字和传输层tcp,udp协议
  • 通过wget下载ftp文件
  • Acrobat Pro DC 2023 for Mac:PDF处理的终极解决方案
  • map容器
  • GNU/Linux - 是否可以多次打开同一个设备文件
  • Visual Studio的使用方法
  • 【35分钟掌握金融风控策略18】贷前风控策略详解-3
  • 秋招后端开发面试题 - MySQL事务
  • C语言栈的含义与栈数据操作代码详解!