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

server/2024/9/24 11:25:02/

使用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.ppmy.cn/server/39575.html

相关文章

一个开源即时通讯源码

一个开源即时通讯源码 目前已经含服务端、PC、移动端即时通讯解决方案,主要包含以下内容。 服务端简介 不要被客户端迷惑了,真正值钱的是服务端, 服务是采用Java语言开发,基于spring cloud微服务体系开发的一套即时通讯服务端。…

【比邻智选】MR880A模组

🚀高性价比,5G/4G双模,稳定可靠 🌐功能丰富,5G特性一应俱全 🧩多封装兼容,适配性强,灵活升级智能设备

聚簇索引、非聚簇索引的区别

想象你在一家餐厅里点餐。聚簇索引就像是按照菜单上的菜品顺序排列桌子的方式。每张桌子上摆放着一道完整的菜,桌子的位置由菜单上的顺序确定。当你根据菜单点餐时,服务员会直接把你点的菜端到你所在的桌子上,因为菜和桌子是一一对应的。 而…

【Mac】LiveWallpaper(超高清4K动态壁纸) 安装教程

软件介绍 今天给大家介绍的一款软件叫Live Wallpaper & Themes 4K Pro,这是一款超高清4K动态壁纸应用程序。 Live Wallpaper & Themes 4K Pro是一款提供高品质动态壁纸和主题的应用程序。以下是它的一些主要特点和功能: 1.高清和4K动态壁纸&a…

常用的启发式算法:探索问题解决的智慧之道

启发式算法是一种通过启发式信息来引导搜索的算法,常用于解决那些在合理时间内难以找到最优解的问题。本文将介绍几种常用的启发式算法,包括贪心算法、遗传算法和模拟退火算法,并提供Java代码实现及测试,帮助读者深入理解这些算法…

ubuntu postgresql 安装

在Ubuntu上安装PostgreSQL,你可以按照以下步骤进行: 使用apt包管理器安装 更新系统: 在安装任何软件之前,建议先更新你的操作系统。 sudo apt update sudo apt upgrade 安装PostgreSQL: 使用apt包管理器来安装Postg…

uniapp生成二维码(uQRCode)与自定义绘制样式与内容

二维码生成使用了一款基于Javascript环境开发的插件 uQRCode ,它不仅适用于uniapp,也适用于所有Javascript运行环境的前端应用和Node.js。 uQRCode 插件地址:https://ext.dcloud.net.cn/plugin?id1287 目录 1、npm安装 2、通过import引…

彩虹聚合DNS管理系统

聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析,目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口,支持获取域名…