背景信息
AI Gallery的Transformers库支持部分开源的模型结构框架,并对昇腾系列显卡进行了训练/推理性能优化,可以做到开箱即用。如果你有自己从头进行预训练的模型,AI Gallery也支持使用SDK构建自定义模型接入AI Gallery。
Transformers库介绍
AI Gallery使用的Transformers机器学习库是一个开源的基于Transformer模型结构提供的预训练语言库。Transformers库注重易用性,屏蔽了大量AI模型开发使用过程中的技术细节,并制定了统一合理的规范。使用者可以便捷地使用、下载模型。同时支持用户上传自己的预训练模型到在线模型资产仓库中,并发布上架给其他用户使用。AI Gallery在原有Transformers库的基础上,融入了对于昇腾硬件的适配与支持。对AI有使用诉求的企业、NLP领域开发者,可以借助这个库,便捷地使用昇腾算力进行自然语言理解(NLU)和自然语言生成(NLG)任务的SOTA模型开发与应用。
支持的模型结构框架
AI Gallery的Transformers库支持的开源模型结构框架如表1所示。
核心基础类介绍
使用AI Gallery SDK构建自定义模型,需要了解2个核心基础类“PretrainedModel”和“PretrainedConfig”之间的交互。
- “PretrainedConfig”:预训练模型的配置基类
提供模型配置的通用属性和两个主要方法,用于序列化和反序列化配置文件。
PretrainedConfig.from_pretrained(dir) # 从目录中加载序列化对象(本地或者是url),配置文件为dir/config.json PretrainedConfig.save_pretrained(dir) # 将配置实例序列化到dir/config.json
- “PretrainedModel”:预训练模型的基类
包含一个配置实例“config”,提供两个主要方法,用来加载和保存预训练模型。
# 1. 调用 init_weights() 来初始化所有模型权重 # 2. 从目录中(本地或者是url)中导入序列化的模型 # 3. 使用导入的模型权重覆盖所有初始化的权重 # 4. 调用 PretrainedConfig.from_pretrained(dir)来将配置设置到self.config中 PretrainedModel.from_pretrained(dir) # 将模型实例序列化到 dir/pytorch_model.bin 中 PretrainedModel.save_pretrained(dir) # 给定input_ids,生成 output_ids,在循环中调用 PretrainedModel.forward() 来做前向推理 PretrainedModel.generate()