当前位置: 首页 > 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 = './pretrain_models/shibing624-text2vec-base-chinese-paraphrase' 
model 
http://www.lryc.cn/news/350138.html

相关文章:

  • 数据可视化的艺术:使用Matplotlib和Seaborn揭示数据故事
  • 2024全新小狐狸AI免授权源码
  • Python基础详解四
  • es6新语法和ajax和json
  • Hadoop3:HDFS副本节点选择逻辑讲解
  • Java 高级面试问题及答案 更新(二)
  • MacOS安装Go
  • 【微服务最全详解】
  • 如何在云电脑实现虚拟应用—数据分层(应用分层)技术简介
  • 【动态规划五】回文串问题
  • 【C++杂货铺铺】AVL树
  • 【R语言】生存分析模型
  • 「AIGC」Python实现tokens算法
  • 【Unity】编程感悟20240510
  • C#【进阶】泛型
  • 50. UE5 RPG FGameplayEffectContext
  • Golang 的 unmarshal 踩坑指南
  • Linux的常用指令 和 基础知识穿插巩固(巩固知识必看)
  • MP3解码入门(基于libhelix)
  • Oracle 中索引与完整性(SQL)
  • 【Linux深度学习笔记5.13(Apache)】
  • 汇编语言入门:探索 x86 架构
  • [ffmpeg处理指令]
  • 测试之路 - 精准而优雅
  • Java基础篇常见面试问题总结
  • Spring、SpringMVC
  • 【传知代码】VRT: 关于视频修复的模型(论文复现)
  • 不用投稿邮箱,怎样向各大新闻媒体投稿?
  • NAT技术总结与双向NAT配置案例
  • mysql的explain