文献见证了将深度迁移学习 (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训练提供易于使用和高性能的分布式策略。架构安装您可以从 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.tsv、dev.tsv和test.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在内的序列标记跨域文本分类的元微调线索基准您可以在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
中国最?好的一朵云飘进了华瑞银行。阿里云将进一步助力华瑞银行All in Cloud。 -...
在TOP云(zuntop.com)科技租赁过服务器的站长都知道独立服务器在价格上比VPS主...
9月17日,2020云栖大会上,阿里云正式发布工业大脑3.0。 阿里云智能资深产品专家...
一、PostgreSQL行业位置 一 行业位置 首先我们看一看RDS PostgreSQL在整个行业当...
查看表结构,sbtest1有主键、k_1二级索引、i_c二级索引 CREATE TABLE `sbtest1` ...
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/vlOUg46B5bcmToX-fjavJQ...
2020年对于云计算行业来说是突破性的一年,因为公共云供应商增加了收入,而疫情...
最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付...
定义 this是函数运行时自动生成的内部对象,即调用函数的那个对象。(不一定很准...
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁...