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

HuggingFace中from_pretrained函数的加载文件

基本文件 

 文件目录结构

|- bert-base-chinese
|-- 各种checkpoint文件
|- test.py

加载模型

测试代码:如果加载成功,就打印1

from transformers import AutoModelForMaskedLMmodel = AutoModelForMaskedLM.from_pretrained("./bert-base-chinese")print(1)

加载tokenizer

from transformers import AutoTokenizertokenizer = AutoTokenizer.from_pretrained("./bert-base-chinese")print(1)

项目组件

一个完整的transformer模型主要包含三部分:

Config

控制模型的名称、最终输出的样式、隐藏层宽度和深度、激活函数的类别等。

将Config类导出时文件格式为 json格式,就像下面这样:

{"attention_probs_dropout_prob": 0.1,"hidden_act": "gelu","hidden_dropout_prob": 0.1,"hidden_size": 768,"initializer_range": 0.02,"intermediate_size": 3072,"max_position_embeddings": 512,"num_attention_heads": 12,"num_hidden_layers": 12,"type_vocab_size": 2,"vocab_size": 30522
}

当然,也可以通过config.json来实例化Config类,这是一个互逆的过程。

Tokenizer

这是一个将纯文本转换为编码的过程。注意,Tokenizer并不涉及将词转化为词向量的过程,仅仅是将纯文本分词,添加[MASK]标记、[SEP]、[CLS]标记,并转换为字典索引。Tokenizer类导出时将分为三个文件,也就是:

  • vocab.txt

    词典文件,每一行为一个词或词的一部分

  • special_tokens_map.json 特殊标记的定义方式

    {"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
    
  • tokenizer_config.json 配置文件,主要存储特殊的配置。

Model

也就是各种各样的模型。除了初始的Bert、GPT等基本模型,针对下游任务,还定义了诸如BertForQuestionAnswering等下游任务模型。模型导出时将生成config.jsonpytorch_model.bin参数文件。前者就是1中的配置文件,这和我们的直觉相同,即config和model应该是紧密联系在一起的两个类。后者其实和torch.save()存储得到的文件是相同的,这是因为Model都直接或者间接继承了Pytorch的Module类。从这里可以看出,HuggingFace在实现时很好地尊重了Pytorch的原生API。

 


http://www.mrgr.cn/news/69257.html

相关文章:

  • 处理namespace问题:Namespace not specified for AGP 8.0.0
  • web浏览器环境下使用window.open()打开PDF文件不是预览,而是下载文件?
  • 【安全科普】NUMA防火墙诞生记
  • Linux---常用shell脚本
  • 算法魅力-二分查找实战
  • python习题练习
  • 如何编写和运行go语言单元测试?
  • day55 图论章节刷题Part07([53.寻宝]prim算法、kruskal算法)
  • 《手写Spring渐进式源码实践》实践笔记(第十七章 数据类型转换)
  • Linux网络管理和修改配置文件
  • 《 C++ 修炼全景指南:十九 》想懂数据库?深入 B 树的世界,揭示高效存储背后的逻辑
  • Pycharm,2024最新版Pycharm下载安装配置教程!
  • 【划分型 DP-最优划分】力扣2707. 字符串中的额外字符
  • C#(asp.net)民宿客房管理系统-计算机设计毕业源码76233
  • Leetcode刷题Python之3242.设计相邻元素求和服务
  • 不同系统,单点登录实现解决方案,一次登录多系统验证!
  • AHB Matrix 四星级 验证笔记(2.4) Tt3.3AHB总线协议测试时的 并行数据
  • 更改Ubuntu22.04锁屏壁纸
  • U盘@购买攻略@检测工具@扩容检测
  • 大数据面试题--kafka夺命连环问
  • 周末适合做一些总结性的工作,不适合开启新的探索性的任务
  • 【JavaEE初阶 — 多线程】死锁的产生原因和解决方法
  • 【51单片机】UART串口通信原理 + 使用
  • Spring Security(5.x, 6.x ) RBAC访问控制
  • 数据冒险-ld,ld,dadd
  • requestAnimationFrame与setInterval的抉择