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