4.11记录

本文介绍了如何使用transformers库加载本地模型,包括使用AutoTokenizer和AutoModel,以及如何对CNN/DailyMail数据进行预处理,特别提到了pad_sequence函数在填充序列数据中的应用。
摘要由CSDN通过智能技术生成

1、transformer加载本地模型

基于transformers加载运行模型_transformers 加载本地模型-CSDN博客

创建分词器

tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)

第一个参数可以以多个形式载入。

一个字符串,预定义分词器的模型标识,托管在 huggingface.co 的模型仓库中。有效的模型标识可以位于根级别,如 bert-base-uncased,或位于用户或组织名称的命名空间下,如 THUDM/chatglm2-6b-32k。

一个包含分词器所需词汇文件的目录路径,例如使用 save_pretrained() 方法保存的目录,例如:/root/prj/ChatGLM-6B/THUDM/chatglm2-6b-32k。

仅当分词器只需要一个词汇文件(如 Bert 或 XLNet)时,为单个保存的词汇文件的路径或 URL,例如:./my_model_directory/vocab.txt。(不适用于所有派生类)

第二个参数trust_remote_code是否允许在其自己的建模文件中使用在Hub上定义的自定义模型。仅应对您信任且已阅读了代码的存储库将此选项设置为True,因为它将在您的本地计算机上执行Hub上存在的代码。

实例化模型

model = AutoModel.from_pretrained(model_path, trust_remote_code=True).half().cuda()


上述代码是初始化模型,AutoModel这是一个通用的模型类,当使用 from_pretrained() 类方法或 from_config() 类方法创建时,它将作为库中基础模型类之一进行实例化。

       第一个参数除了模型标志,模型路径外, 还支持指向 TensorFlow 索引检查点文件的路径或 URL(例如,./tf_model/model.ckpt.index)。在这种情况下,from_tf 应设置为 True,并且应该提供一个配置对象作为 config 参数。与使用提供的转换脚本将 TensorFlow 检查点转换为 PyTorch 模型并加载 PyTorch 模型后加载路径较慢。

       第二个参数与AutoTokenizer.from_pretrained的解析相同。

       而后面接的.half().cuda()的意思是将模型转成半精度的模型。

2、CNN/DailyMail数据预处理

1、填充

torch.nn.utils.rnn.pad_sequence(sequences, batch_first=False, padding_value=0.0)

作用:将输入的tensor数据填充至等长

参数说明:sequences:输入的tensor数据,类型为列表或者tuple等等;

                  batch_first:决定输出中batch这一维度是否在第一维;

                  padding_value:要填充的值,一般为0

pad_sequence输出结果为一个tensor B*T*H

pytorch中torch.nn.utils.rnn相关sequence的pad和pack操作_torch.nn.utils.rnn.pad_sequence-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/HUSTHY/article/details/123916820

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值