当前位置:主页 > 查看内容

EasyTransfer帮助用户轻松地将深度 TL 用于 NLP 应用程序

发布时间:2021-08-12 00:00| 位朋友查看

简介:文献见证了将深度迁移学习 (TL) 成功应用于许多现实世界的 NLP 应用程序 但构建易于使用的 TL 工具包来实现这样的目标并不容易。为了弥补这一差距 EasyTransfer 旨在帮助用户轻松地将深度 TL 用于 NLP 应用程序。2017年初在阿里巴巴开发 目前已应用于阿里巴……

image.png

文献见证了将深度迁移学习 (TL) 成功应用于许多现实世界的 NLP 应用程序 但构建易于使用的 TL 工具包来实现这样的目标并不容易。为了弥补这一差距 EasyTransfer 旨在帮助用户轻松地将深度 TL 用于 NLP 应用程序。2017年初在阿里巴巴开发 目前已应用于阿里巴巴集团各大BU 在20 业务场景中取得了非常好的效果。支持主流的预训练ModelZoo 包括预训练语言模型 PLMs 和PAI上的多模态模型平台 集成了AppZoo中主流NLP应用的SOTA模型 支持PLM知识蒸馏。EasyTransfer 非常方便用户快速开始模型训练、评估、离线预测和在线部署。它还提供了丰富的 API 使 NLP 的开发和迁移学习变得更加容易。

主要特点语言模型预训练工具 支持全面的预训练工具 供用户预训练T5、BERT等语言模型。基于该工具 用户可以轻松训练模型 在 CLUE、GLUE 和 SuperGLUE 等基准排行榜上取得优异成绩 ModelZoo 具有丰富优质的预训练模型 支持 BERT、ALBERT、RoBERTa、T5 等主流 LM 模型的 Continual Pre-training 和 Fine-tuning。还支持使用 FashionBERT 开发的多模态模型阿里巴巴时尚领域数据 AppZoo 应用丰富易用 支持主流的NLP应用和阿里巴巴内部开发的模型 例如 文本匹配的HCNN MRC的BERT-HAE。自动知识蒸馏 支持任务自适应知识蒸馏 将知识从教师模型提取到特定任务的小型学生模型 以减少参数大小 同时保持可比较的性能。易于使用和高性能的分布式策略 基于内部PAI特性 为多CPU/GPU训练提供易于使用和高性能的分布式策略。架构

image.png

安装

您可以从 pip 安装

$ pip install easytransfer

或者从源码设置

$ git clone https://github.com/alibaba/EasyTransfer.git
$ cd EasyTransfer
$ python setup.py install

此 repo 在 Python3.6/2.7、tensorflow 1.12.3 上测试

快速开始

现在让我们展示如何仅使用 30 行代码来构建基于 BERT 的文本分类模型。

from easytransfer import base_model, layers, model_zoo, preprocessors
from easytransfer.datasets import CSVReader, CSVWriter
from easytransfer.losses import softmax_cross_entropy
from easytransfer.evaluators import classification_eval_metrics
class TextClassification(base_model):
 def __init__(self, **kwargs):
 super(TextClassification, self).__init__(**kwargs)
 self.pretrained_model_name google-bert-base-en 
 self.num_labels 2
 def build_logits(self, features, mode None):
 preprocessor preprocessors.get_preprocessor(self.pretrained_model_name)
 model model_zoo.get_pretrained_model(self.pretrained_model_name)
 dense layers.Dense(self.num_labels)
 input_ids, input_mask, segment_ids, label_ids preprocessor(features)
 _, pooled_output model([input_ids, input_mask, segment_ids], mode mode)
 return dense(pooled_output), label_ids
 def build_loss(self, logits, labels):
 return softmax_cross_entropy(labels, self.num_labels, logits)
 def build_eval_metrics(self, logits, labels):
 return classification_eval_metrics(logits, labels, self.num_labels)
app TextClassification()
train_reader CSVReader(input_glob app.train_input_fp, is_training True, batch_size app.train_batch_size)
eval_reader CSVReader(input_glob app.eval_input_fp, is_training False, batch_size app.eval_batch_size) 
app.run_train_and_evaluate(train_reader train_reader, eval_reader eval_reader)

您可以在我们的 Jupyter/Notebook PAI-DSW 中找到更多详细信息或使用代码。

您还可以使用 AppZoo 命令行工具快速训练 App 模型。以 SST-2 数据集上的文本分类为例。首先你可以下载train.tsvdev.tsvtest.tsv 然后开始训练

$ easy_transfer_app --mode train \
 --inputTable ./train.tsv,./dev.tsv \
 --inputSchema content:str:1,label:str:1 \
 --firstSequence content \
 --sequenceLength 128 \
 --labelName label \
 --labelEnumerateValues 0,1 \
 --checkpointDir ./sst2_models/\
 --numEpochs 3 \
 --batchSize 32 \
 --optimizerType adam \
 --learningRate 2e-5 \
 --modelName text_classify_bert \
 --advancedParameters pretrain_model_name_or_path google-bert-base-en 

然后预测

$ easy_transfer_app --mode predict \
 --inputTable ./test.tsv \
 --outputTable ./test.pred.tsv \
 --inputSchema id:str:1,content:str:1 \
 --firstSequence content \
 --appendCols content \
 --outputSchema predictions,probabilities,logits \
 --checkpointPath ./sst2_models/ 

要了解有关 AppZoo 使用的更多信息 请参阅我们的文档

教程PAI-ModelZoo 20 多个预训练模型 FashionBERT 跨模态预训练模型知识蒸馏 包括 vanilla KD、Probes KD、AdaBERTBERT 特征提取文本匹配包括BERT、BERT Two Tower、DAM、HCNN文本分类包括BERT、TextCNN机器阅读理解包括BERT、BERT-HAE包括BERT在内的序列标记跨域文本分类的元微调线索基准

image.png

您可以在https://www.yuque.com/easytransfer/cn/rkm4p7 中找到更多基准

这是 CLUE 快速入门笔记本

链接

教程 https://www.yuque.com/easytransfer/itfpm9/qtzvuc

ModelZoo https://www.yuque.com/easytransfer/itfpm9/oszcof

AppZoo https://www.yuque.com/easytransfer/itfpm9/ky6hky

API文档 http://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/eztransfer_docs/html/index.html


本文转自网络,原文链接:https://developer.aliyun.com/article/786587
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐