【AI大模型】Transformers大模型库(二):AutoModelForCausalLM

目录​​​​​​​

一、引言 

二、AutoModelForCausalLM

2.1 概述

2.2 主要功能

2.3 代码示例

三、总结


一、引言 

 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。

🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。
🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。
🤗 Transformers 支持三个最热门的深度学习库: Jax, PyTorch 以及 TensorFlow — 并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载和推理。

本文重点介绍AutoModelForCausalLM类。

二、AutoModelForCausalLM

2.1 概述

`AutoModelForCausalLM`是Hugging Face的`transformers`库中的一个类,它是一个自动模型类,用于因果语言建模(Causal Language Modeling)。因果语言建模是指模型预测文本序列中下一个词或字符,给定之前的词或字符序列的任务。这种模型广泛应用于生成式任务,如对话系统、文本续写、摘要生成等。

2.2 主要功能

这个类是基于`AutoModel`的,它能够根据指定的模型名称或路径自动加载相应的模型架构。当你使用`AutoModelForCausalLM`时,不需要直接指定模型的所有细节,只需要提供模型的名称(如`"gpt2"`、`"t5"`等,尽管T5模型更常用于序列到序列任务),库会自动配置为适合因果语言建模的版本。

2.3 代码示例

例如,加载一个预训练的GPT-2模型用于因果语言建模,代码如下: 

from transformers import AutoModelForCausalLM, AutoTokenizermodel_name = "gpt2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)# 使用模型进行预测的代码会在这里继续...

这个例子使用AutoTokenize,AutoModelForCausalLM, r两个类分别实例化gpt2对应的分词器和模型。这里使用了Auto自动模型,transformers包括管道pipeline自动模型auto以及具体模型三种模型实例化方法,如果同时有配套的分词工具(Tokenizer),需要使用同名调度。

  • 管道(Pipline)方式:高度集成的使用方式,几行代码就可以实现一个NLP任务
  • 自动模型(AutoModel)方式:自动载入并使用BERT等模型
  • 具体模型方式:在使用时需要明确具体的模型,并按照特定参数进行调试 

在上述三种应用方式中,管道方式使用最简单,但灵活度最差;具体模型方式使用复杂,但是灵活度最高。

三、总结

本文对使用transformers的AutoModelForCausalLM进行尝试,主要对CausalLM(因果推理模型)进行实例化,需要与同类的AutoTokenizer分词器一起使用。同时,列举了管道模型自动模型具体模型等三种transformers预训练大模型实例化方法。期待大家三连。

如果您还有时间,可以看看我的其他文章:

《AI—工程篇》

AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效

AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署

AI智能体研发之路-工程篇(三):大模型推理服务框架Ollama一键部署

AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署

AI智能体研发之路-工程篇(五):大模型推理服务框架LocalAI一键部署

《AI-模型篇》

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争

AI智能体研发之路-模型篇(四):一文入门pytorch开发

AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

AI智能体研发之路-模型篇(六):【机器学习】基于tensorflow实现你的第一个DNN网络

AI智能体研发之路-模型篇(七):【机器学习】基于YOLOv10实现你的第一个视觉AI大模型

AI智能体研发之路-模型篇(八):【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/23705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SOA的相关概念

1.SOA的定义 面向服务的体系结构(Service-Oriented Architecture,SOA),从应用和原理的角度看,目前有两种业界公认的标准定义。 从应用的角度定义,可以认为SOA是一种应用框架,它着眼于日常的业务…

【Python机器学习】预处理对监督学习的作用

还是用cancer数据集,观察使用MinMaxScaler对学习SVC的作用。 首先,在原始数据上拟合SVC: cancerload_breast_cancer() X_train,X_test,y_train,y_testtrain_test_split(cancer.data,cancer.target,random_state0 ) svmSVC(C100) svm.fit(X_t…

推荐个 Edge/Chrome/Firefox 都支持的 IP 定位查询扩展

作为一个博客站长,对 IP 地址应该都不陌生,可以说是跟站长的工作是息息相关的,反正明月几乎每天都会面临 IP 查询、定位的需要,今天让明月给找到了一个叫”IP 定位查询“的浏览器扩展,在 Edge 和 Firefox 下体验后感觉…

多卡聚合智能融合通信设备在无人机无线视频传输应用

无人驾驶飞机简称“无人机”,是利用(无线电)遥控设备和自备的程序控制装置操纵的不载人飞行器,现今无人机在航拍、农业、快递运输、测绘、新闻报道多个领域中都有深度的应用。 无人机无线视频传输保证地面人员利用承载的高灵敏度照相机可以进行不间断的画…

【蓝桥杯2025备赛】分巧克力

【蓝桥杯2025备赛】分巧克力 [蓝桥杯 2017 省 AB] 分巧克力 题目描述 儿童节那天有 K K K 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 N N N 块巧克力,其中第 i i i 块是 H i W i H_i \times W_i Hi​Wi​ 的方格组成的长方形…

自动化执行任务的脚本代码分享!

在当今信息化社会,自动化执行任务的脚本代码已经成为提高工作效率、减少人工错误的重要工具。 无论是数据处理、文件操作,还是网络请求、系统监控,脚本代码都能帮助我们实现自动化操作,从而释放人力,让我们有更多时间…

LeetCode-103. 二叉树的锯齿形层序遍历【树 广度优先搜索 二叉树】

LeetCode-103. 二叉树的锯齿形层序遍历【树 广度优先搜索 二叉树】 题目描述:解题思路一:层序遍历,唯一区别就是ans.append(level[::-1] if len(ans) % 2 else level)背诵版:解题思路三:0 题目描述: 给你二…

网络层-IP协议 二

一、网段划分 为了进行组网,把一个IP地址,分成了两个部分: 网络号 主机号 例如:192.168.2.100 这个IP地址中,前面一部分 : 192.168.2就是我们的网络号 后面一部分 100就是我们的主机号. 家用宽带来说,一般默认就是前面三个字节是网络号,主机号的范围就表示局域网中可以有…

计数排序(简略概括)

介绍 通过数组,将对应的数存放在新数组对应的下标位置,遇到重复的数就1. 然后遍历数组将每个数存放到原数组中 实现 找到最大的数和最小的数,最小的数为下标0的位置,最大的数与最小的数的差值为数组大小 代码 // 计数排序 v…

避免使用for循环操作高维数组:numpy.apply_along_axis用法

文章目录 场景实际操作编写相关函数np.apply_along_axis 场景 设想我有一列高维向量,读取之后的数据都是字符串变量,我需要把这些字符串数据转换为复数之后求绝对值 实际操作 在使用pd.read_csv()读取数据之后,将这一列数据转换为numpy数…

信息系统项目管理师0145:敏捷与适应方法(9项目范围管理—9.2项目范围管理过程—9.2.3敏捷与适应方法)

点击查看专栏目录 文章目录 9.2.3 敏捷与适应方法9.2.3 敏捷与适应方法 对于需求不断变化、风险大或不确定性高的项目,在项目开始时通常无法明确项目的范围,而需要在项目期间逐渐明确。敏捷或适应型方法特意在项目早期缩短定义和协商范围的时间,为后续细化范围、明确范围争取…

一些关于科技的想法

一、背景 1、自从有了科技,生产力快速发展,可以生产很多以前没有的产品,扩展人的交通、沟通交流、食物生产、物质流通等方面,还能提供超出想象的服务(基因治疗、人造器官、辐射育种、特种材料等等)。 2、有了不断发展的科技&…

mybatisplus 条件是更新者并按时间排序查最新一条

要在MybatisPlus中根据更新者(假设字段名为updater)作为条件,并按时间(假设时间字段名为update_time)排序来查询最新的一条记录,你可以结合LambdaQueryWrapper或QueryWrapper来实现。这里提供一个使用Lambd…

打响G7国家降息第一枪!加拿大央行宣布降息

KlipC报道:6月5日,加拿大央行宣布降息25个基点至4.75%,与市场预期一致。加拿大央行是G7国家中第一个降息的央行。其还表示有持续证据表明核心通胀正在缓解,货币政策不再需要那么限制性。 KlipC分析师表示,在2023年7月&…

打破信息孤岛,U-Mail邮件系统轻松集成各类业务系统

随着国家大力推动企业数字化转型,企业内部数字化建设需要各种业务系统来提高企业生产力,然而,随着在业务数据量逐步增大的情形下,如何更加高效地整合、协同各个系统之间的信息交互,并且更好地融合企业邮件系统&#xf…

【C++ | 类】类和对象

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 ⏰发布时间⏰:2024-05-30 本…

存在 ZooKeeper 未授权访问【原理扫描】--通过防火墙策略进行修复

ELK集群存在 ZooKeeper 未授权访问【原理扫描】 10.xx.xx.115; 10.xx.xx.98; 10.xx.xx.110; 10.xx.xx.6; 10.xx.xx.95; 1、启动firewalld服务并设置开机自动启动,下面的命令必须在防火墙开启的状态下才可用,由于firewalld默认不是放行所有端口&#xf…

nn.Sequential 和 nn.ModuleList

在 PyTorch 中,nn.Sequential 和 nn.ModuleList 都是用来容纳多个子模块的容器,但它们的用途和行为有所不同。以下是它们的用法和区别的详细解释,以及样例代码。 nn.Sequential nn.Sequential 是一个顺序容器,模块将按它们在传递…

重学java 57.哈希表结构存储过程

别焦虑,生活无非见招拆招 —— 24.6.3 哈希表存储数据去重复的过程: a.先比较元素的哈希值(重写hashCode),再比较内容(重写equals) b.如果哈希值不一样,证明内容不一样,存 c.如果哈希值一样,再比较内容 如果哈希值一样,内容不一样(哈希碰撞,哈希冲突),存 如果哈希值…

Vue3-VueRouter

客户端 vs. 服务端路由​ 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML,然后重新加载整个页面。 然而,在单页面应用中&a…