【Pytorch神经网络实战案例】32 使用Transformers库的管道方式实现:加载指定模型+文本分类+掩码语言建模+摘要生成+特征提取+阅读理解+实体词识别
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
AIGC Stable Diffusion文生图Lora模型微调实现虚拟上装
在Transformers库中pipeline类的源码文件pipelines.py里,可以找到管道方式自动下载的预编译模型地址完美体育入口。可以根据这些地址,使用第三方下载工具将其下载到本地。
管道方式是Transformers库中高度集成的极简使用方式。使用这种方式来处理NLP任务只需要编写几行代码就能实现。通过本例的练习可以使读者对Transformers库的使用快速上手。
在Transformers库中pipeline类的源码文件pipelines.py里可以找到管道方式自动下载的预编译模型地址。可以根据这些地址使用第三方下载工具将其下载到本地。
管道层对下层的自动模型层进行了二次封装完成了NLP任务的端到端实现。
在实际应用中也可以修改SUPPORTED._TASKS对象中的设置加载指定模型还可以按照实例中的手动加载模型方式加载本地已有的预训练模型。
文本分类是指模型可以根据文本中的内容来进行分类。文本分类模型一般是通过有监督训练得到的。对文本内容的具体分类方向依赖于训练时所使用的样本标签。
特征提取任务的输出结果需要结合其他模型一起工作不是端到端解决任务的模型对句子进行特征提取后的结果可以当作词向量来使用。
1.直接使用torchtext库的内置预训练词向量进行转化也可以得到类似形状的结果。直接使用内置预训练词向量进行转化的方式对算力消耗较小但需要将整个词表载入内存对内存消耗较大。
2.使用管道方式来完成特征提取任务只适用于数据预处理阶段。虽然会消耗一些算力但是内存占用相对可控只是模型的空间大小)如果再配合剪枝压缩等技术更适合工程部署完美体育官方网站。如果要对已有的BERTology注意系列模型进行微调——对Transformers库中的模型进行再训练还需要使用更底层的类接口。
在训练BERT模型时利用遮蔽语言的方式先对输入序列文本中的单词进行随机遮蔽并将遮蔽后的文本输入模型令模型根据上下文中提供的其他非遮蔽词预测遮蔽词的原始值。一旦BERT模型训练完成即可得到一个能够处理完形填空任务的模型MLM。
阅读理解任务/问答任务即输入一段文本和一个问题令模型输出结果。
摘要生成任务的输入是一段文本输出是一段相对于输入较短的文字。
实体词识别任务是NLP中的基础任务。它用于识别文本中的人名(PER)、地名(LOC)、组织(ORG)以及其他实体(MISC)等。
实体词识别任务本质上是一个分类任务它又被称为序列标注任务。实体词识别是句法分析的基础同时句法分析也是NLP任务的核心。
在pipeline类的初始化接口中还可以直接指定如载模型的路径从本地预训练模型进行载入要求要载入的预训练模型文件心须使用固定的文件名称。
在pipeline类接口中预训练模型文件是以套为单位的每套训练模型文件的组成及其固定的文件名称如下
当通过指定预训练模型目录进行加载时系统只会在目录里搜索固定名称的模型文件当没有找到固定名称的模型文件时将返回错误。