当前位置: 首页 > 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 

相关文章:

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

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

数据可视化的艺术:使用Matplotlib和Seaborn揭示数据故事

引言 数据可视化是数据分析中的关键一环,它帮助我们理解数据模式、趋势和异常。在Python中,Matplotlib和Seaborn是两个流行的数据可视化库,它们提供了丰富的图表和图形选项,使数据的可视化变得简单而强大。 Matplotlib&#xff…...

2024全新小狐狸AI免授权源码

源码安装说明: 下 载 地 址 : runruncode.com/php/19757.html 1. 在宝塔新建一个站点,选择 PHP 版本为 7.2、7.3 或 7.4。将压缩包上传到站点的根目录,并设置运行目录为 /public。 2. 导入数据库文件,该文件位于 …...

Python基础详解四

目录 一,Json解析 二,pyecharts模块 三,类和对象 四,类型注解 一,Json解析 字典转换为JSON: import jsondata [{"name":"袁震","age":20},{"name":"张三&…...

es6新语法和ajax和json

es6新语法 1.定义变量&#xff1a;let 2.定义常量&#xff1a;const <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…...

Hadoop3:HDFS副本节点选择逻辑讲解

一、副本节点选择&#xff08;机架感知&#xff09; 说明 第一个副本&#xff0c;因为我们的client可能是web页&#xff0c;也可能是shell终端。 如果是web页&#xff0c;则随机选取一个节点&#xff0c;如果是shell终端&#xff0c;则选择当前shell终端所在的节点。 节点距离最…...

Java 高级面试问题及答案 更新(二)

Java 高级面试问题及答案 以下是几个常见的Java高级面试问题及其答案&#xff0c;这些问题覆盖了Java语言的核心概念和高级特性。 问题1: 什么是Java内存模型(JMM)&#xff0c;它在并发编程中扮演着什么角色&#xff1f; 答案&#xff1a; Java内存模型(JMM)是一个抽象的概念…...

MacOS安装Go

下载 Go 安装包&#xff1a; 访问 Go 官方网站的下载页面&#xff0c;找到适合 macOS 系统的 Go 安装包&#xff0c;并下载 go1.20.2.darwin-amd64.pkg&#xff08;假设你的 macOS 是 64 位系统&#xff09;。 安装 Go&#xff1a; 打开下载的安装包 go1.20.2.darwin-amd64.pk…...

【微服务最全详解】

文章目录 微服务微服务的介绍微服务服务架构演变 微服务网关微服务的负载均衡微服务的容灾机制服务崩溃服务容灾机制微服务熔断机制微服务限流Sentinel怎么实现限流微服务限流算法1.令牌桶算法2.漏斗桶算法 服务监控日志收集 微服务 微服务的介绍 微服务是一种软件架构风格&a…...

如何在云电脑实现虚拟应用—数据分层(应用分层)技术简介

数据分层&#xff08;应用分层&#xff09;技术简介 近几年虚拟化市场实现了非常大的发展&#xff0c;桌面虚拟化在企业中应用越来越广泛&#xff0c;其拥有的如下优点得到大量企业的青睐&#xff1a; 数据安全不落地。在虚拟化环境下面数据保存在中心服务器上面&#xff0c;…...

【动态规划五】回文串问题

目录 leetcode题目 一、回文子串 二、最长回文子串 三、分割回文串 IV 四、分割回文串 II 五、最长回文子序列 六、让字符串成为回文串的最少插入次数 leetcode题目 一、回文子串 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/…...

【C++杂货铺铺】AVL树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 概念 &#x1f4c1; 节点的定义 &#x1f4c1; 插入 &#x1f4c1; 旋转 1 . 新节点插入较高左子树的左侧---左左&#xff1a;右单旋 2. 新节点插入较高右子树的右侧---右右&#xff1a;左单旋 3. 新节点插入较高左…...

【R语言】生存分析模型

生存分析模型是用于研究时间至某个事件发生的概率的统计模型。这个事件可以是死亡、疾病复发、治疗失败等。生存分析模型旨在解决在研究时间相关数据时的挑战&#xff0c;例如右侧截尾&#xff08;右侧截尾表示未观察到的事件发生&#xff0c;例如研究结束时还未发生事件&#…...

「AIGC」Python实现tokens算法

本文主要介绍通过python实现tokens统计,避免重复调用openai等官方api,开源节流。 一、设计思路 初始化tokenizer使用tokenizer将文本转换为tokens计算token的数量二、业务场景 2.1 首次加载依赖 2.2 执行业务逻辑 三、核心代码 from transformers import AutoTokenizer imp…...

【Unity】编程感悟20240510

【背景】 这一点感悟是过去有所认识&#xff0c;但是最近写Unity项目&#xff0c;涉及UDP通信需要持续监听逻辑时更加感受深刻的。 选用合适的触发点&#xff0c;用明确的逻辑避免循环处理 尽量采用明确的触发点使逻辑清晰&#xff0c;规避一定时间刷新这类的逻辑。 比如UDP…...

C#【进阶】泛型

1、泛型 文章目录 1、泛型1、泛型是什么2、泛型分类3、泛型类和接口4、泛型方法5、泛型的作用思考 泛型方法判断类型 2、泛型约束1、什么是泛型2、各泛型约束3、约束的组合使用4、多个泛型有约束思考1 泛型实现单例模式思考2 ArrayList泛型实现增删查改 1、泛型是什么 泛型实现…...

50. UE5 RPG FGameplayEffectContext

接下来&#xff0c;我想实现处理完伤害时&#xff0c;将伤害的触发格挡或者触发暴击时的逻辑传递到数据集的PostGameplayEffectExecute里面&#xff0c;这样&#xff0c;在处理IncomingDamage时&#xff0c;我们可以通过释放触发格挡或者触发暴击在UI上面进行对应的效果表现。 …...

Golang 的 unmarshal 踩坑指南

文章目录 1. 写在最前面2. 字段区分出空字段还是未设置字段2.1 问题描述2.2 解决 3. 字段支持多种类型 & 按需做不同类型处理3.1 问题描述3.2 解决 4. 碎碎念5. 参考资料 1. 写在最前面 笔者最近在实现将内部通知系统的数据定义转化为产品定义的对外提供的数据结构。 举例…...

Linux的常用指令 和 基础知识穿插巩固(巩固知识必看)

目录 前言 ls ls 扩展知识 ls -l ls -a ls -al cd cd 目录名 cd .. cd ~ cd - pwd 扩展知识 路径 / cp [选项] “源文件名” “目标文件名” mv [选项] “源文件名” “目标文件名” rm 作用 用法 ./"可执行程序名" mkdir rmdir touch m…...

MP3解码入门(基于libhelix)

主要参考资料: 【Arduino Linux】基于 Helix 解码库实现 MP3 音频播放: https://blog.csdn.net/weixin_42258222/article/details/122640413 libhelix-mp3: https://github.com/ultraembedded/libhelix-mp3/tree/master 目录 一、MP3文件二、MP3 解码库三、libhelix-mp3库3.1 …...

技能图谱:构建结构化知识体系,实现高效学习与成长

1. 项目概述&#xff1a;一个技能图谱的诞生与价值在技术社区里&#xff0c;我们经常看到各种“Awesome List”——那些按领域整理的工具、库和资源清单。它们很有用&#xff0c;但总感觉缺了点什么。直到我偶然在 GitHub 上看到了tenequm/skills这个仓库&#xff0c;它给我带来…...

告别浏览器标签混乱:5分钟搭建高效Gmail桌面邮件中心

告别浏览器标签混乱&#xff1a;5分钟搭建高效Gmail桌面邮件中心 【免费下载链接】gmail-desktop :postbox: Gmail desktop app for macOS, Windows & Linux (formerly Gmail Desktop) 项目地址: https://gitcode.com/gh_mirrors/gm/gmail-desktop 厌倦了在浏览器标…...

从‘Missing for class: Script3’出发:深度解析Groovy动态属性与ShardingSphere配置陷阱

1. 当Spring Boot遇上ShardingSphere&#xff1a;一个诡异的报错现场 那天下午正喝着咖啡&#xff0c;突然收到同事的求助&#xff1a;"数据源初始化失败了&#xff01;"第一反应是数据库配置有问题&#xff0c;结果排查半天发现报错信息里藏着这样一行字&#xff1a…...

【NotebookLM内容可信度跃迁关键】:如何用“证据锚定法”让讨论部分通过专家级评审?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM讨论部分的可信度本质与评审标准 可信度的本质&#xff1a;语义对齐与溯源可验证性 NotebookLM 的讨论部分并非传统意义上的“生成式问答”&#xff0c;而是基于用户上传文档构建的语义索引…...

算力基石:CPU、GPU与嵌入式AI的技术逻辑与融合发展

在人工智能全面普及的时代&#xff0c;算力已经成为数字产业发展的核心驱动力。从日常使用的智能手机、家用电脑&#xff0c;到云端大模型、智能汽车、工业传感设备&#xff0c;各类智能终端的运转都离不开处理器的算力支撑。其中&#xff0c;CPU作为通用计算核心、GPU作为并行…...

QT无边框窗口实战:从圆角绘制到自定义标题栏与拖拽交互

1. 为什么需要无边框窗口&#xff1f; 现代桌面应用越来越注重视觉体验&#xff0c;传统的系统标题栏往往与整体设计风格格格不入。想象一下&#xff0c;你精心设计了一款深色主题的音乐播放器&#xff0c;顶部却突兀地挂着Windows默认的白色标题栏——这种割裂感正是无边框窗口…...

瑞萨RA系列MCU入门实战:用e2 studio和FSP库5分钟点灯(从安装到烧录)

瑞萨RA系列MCU五分钟极速入门&#xff1a;从零点亮LED的全流程解析 当一块全新的瑞萨RA系列开发板第一次在你手中亮起LED时&#xff0c;那种"Hello World"式的成就感往往能瞬间点燃学习热情。不同于传统教程按部就班的软件安装介绍&#xff0c;本文将带您体验实战驱…...

STM32驱动WS2812灯珠颜色错乱?可能是你的GRB顺序和位序搞反了!

STM32驱动WS2812灯珠颜色错乱&#xff1f;GRB顺序与位序的深度解析 当你第一次用STM32成功点亮WS2812灯珠时&#xff0c;那种成就感难以言表。但紧接着&#xff0c;你可能遇到了一个令人困惑的问题&#xff1a;明明在代码里设置了纯红色&#xff08;255, 0, 0&#xff09;&…...

LabVIEW变量实战指南:从局部、全局到共享变量的高效数据流设计

1. 温度监控系统设计中的变量选择困境 第一次用LabVIEW做温度监控系统时&#xff0c;我在变量选择上栽过大跟头。当时为了图省事&#xff0c;把所有传感器数据都塞进了全局变量&#xff0c;结果系统运行半小时后就开始卡顿&#xff0c;报警响应延迟高达5秒——这对工业场景简直…...

告别文献混乱!Mendeley保姆级入门指南:从安装、导入到Word引用,一篇搞定

Mendeley科研文献管理全流程实战&#xff1a;从零搭建高效学术工作流 刚踏入科研领域的研究生们&#xff0c;往往会被海量文献淹没——下载的PDF散落各处&#xff0c;引用格式五花八门&#xff0c;重复阅读相同文献却找不到重点。这种混乱不仅消耗时间&#xff0c;更会打断研究…...