IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【Pytorch神经网络理论篇】 39 Transformers库中的BERTology系列模型 -> 正文阅读

[人工智能]【Pytorch神经网络理论篇】 39 Transformers库中的BERTology系列模型

如果想进一步深入研究,则需要了解Transformers库中更底层的实现,学会对具体的BERTology系列模型进行单独加载和使用。

1 Transformers库的文件结构

1.1 详解Transformers库中的预训练模型

在Transformers库中,预训练模型文件主要有3种,它们的具体作用如下:

  1. 词表文件:在训练模型时,将该文件当作一个映射表,把输入的单词转换成具体数字。(文本方式保存)
  2. 配置文件:存放模型的超参数,将源码中的模型类根据配置文件的超参数进行实例化后生成可用的模型。(文本方式保存)
  3. 权重文件:对应可用模型在内存中各个变量的值,待模型训练结束之后,将这些值保存起来。加载模型权重的过程,就是这些值“覆盖”到内存中的模型变量里,使整个模型恢复到训练后的状态。(二进制方式保存)

1.2 BERT模型的关联文件图

图3-18(a)BERT模型的基本预训练模型相关的词表文件,词表文件中是一个个具体的单词,每个单词的序号就是其对应的索引值。

图3-18(b)BERT模型的基本预训练模型相关的配置文件,配置文件则显示了其模型中的相关参数,其中部分内容如下。架构名称:BertForMaskedLM。注意力层中Dropout的丢弃率:0.1。隐藏层的激活函数:GEL∪激活函数。隐藏层中Dropout的丢弃率:0.1。

?1.3 Transformers库的文件目录

# 目录地址
\Anaconda3\envs\python38\Lib\site-packages\transformers

1.3.1?配置代码文件

以confiquraton开头的文件,是BERTOOQy系列模型的配置代码文件。

1.3.2?模型代码文件

以modeling开头的文件,是BERTology系列模型的模型代码文件

?1.3.3?词表代码文件

以tokenization开头的文件,是BERToogy系列模型的词表代码文件。

?1.4 每个模型都对应以上三个文件

每个模型都对应3个代码文件,存放着关联文件的下载地址。

1.4.1 举例:BERT模型对应文件列表:

配置代码文件:configuration_bert.py。
模型代码文件:modeling_bert,py。
词表代码文件:tokenization_bert.py。

1.5 加载预训练模型

训练模型的主要部分就是模型代码文件、配置代码文件和词表代码文件这3个代码文件。对于这3个代码文件,在Transformers库里都有对应的类进行操作。

配置类(Configuration Classes):是模型的相关参数,在配置代码文件中定义。

模型类(Model Classes):是模型的网络结构,在模型代码文件中定义。

词表类(TOkenizer Classes):用于输入文本的词表预处理,在词表代码文件定义。

这3个类都有from_pretrained方法,

1.5.1 调用函数简述

from_pretrained():可以加已经预训练好的模型或者参数。

save_pretraining():将模型中的提示配置文件、权重文件、词表文件保存在本地,以便可以使用from_pretraining方法对它们进行新加载。

1.5.2 自动加载

在使用时,通过向from_pretrained方法中传入指定模型的版本名称,进行自动下载,并加载到内存中。

from transformers import BertTokenizer,BertForMaskedLM

# 使用bert-base-uncased版本的BERT预训练模型,其中BertTokenizer类用于加载词表,BertForMaskedLM类会自动加载配置文件和模型文件。

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')#加载词表

model = BertForMaskedLM.frompretrained('bert-base-uncased')#加载模型


# 该代码运行后,系统会自动从指定网站加载对应的关联文件。这些文件默认会放在系统的用户目录中


1.5.3 手动加载

在源码中,找到对应的下载地址,手动加载后,再用frompretrained方法将其载入。

from transformers import BertTokenizer,BertForMaskeduM

#加载词表
tokenizer=BertTokenizer.frompretrained(r'./bert-base-uncased/bert-base-uncased-vocab.txt')
#加载模型
model=BertForMaskedLM.frompretrained('./bert-base-uncased/bert-base-uncased-pytorch_model.bin',conig='./bert-base-uncased/bert-base-uncased-conig.json')

# 手动加载与自动加载所使用的接口是一样的,手动加载需要指定加载文件的具体路径,而且在使用BertForMaskedLM类进行加载时,还需要指定配置文件的路径。

2?查找Transformers库中可以使用的模型

通过模型代码文件的命名,可以看到Transformers库中能够使用的模型。但这并不是具体的类名,想要找到具体的类名,可以采用以下3种方式:
(1)通过帮助文件查找有关预训练模型的介绍。
(2)在Transformers库的__init__.py文件中查找预训练模型。【相对费劲,但更为准确】
(3)使用代码方式输出Transformers库中的宏定义。

2.1?在Transformers库的__init__.py文件中查找预训练模型。【相对费劲,但更为准确】

2.2?使用代码方式输出Transformers库中的宏定义

from transformers import BLENDERBOT_SMALL_PRETRAINED_MODEL_ARCHIVE_LIST
print("输出全部模型:",BLENDERBOT_SMALL_PRETRAINED_MODEL_ARCHIVE_LIST)
# ['facebook/blenderbot_small-90M']

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:41:49  更:2022-04-26 11:42:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:48:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码