在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:PALM开源软件地址:https://gitee.com/paddlepaddle/PALM开源软件介绍:PaddlePALMEnglish | 简体中文 PaddlePALM (PArallel Learning from Multi-tasks) 是一个灵活,通用且易于使用的NLP大规模预训练和多任务学习框架。 PALM是一个旨在快速开发高性能NLP模型的上层框架。 使用PaddlePALM,可以非常轻松灵活的探索具有多种任务辅助训练的“高鲁棒性”阅读理解模型,基于PALM训练的模型D-Net在EMNLP2019国际阅读理解评测中夺得冠军。
MRQA2019 排行榜 除了降低NLP研究成本以外,PaddlePALM已被应用于“百度搜索引擎”,有效地提高了用户查询的理解准确度和挖掘出的答案质量,具备高可靠性和高训练/推理性能。 特点:
你可以很容易地用较少的代码复现出很好的性能,涵盖了大多数NLP任务,如分类、匹配、序列标记、阅读理解、对话理解等等。更多细节可以在
Package概览
PALM架构图 PaddlePALM是一个设计良好的高级NLP框架。基于PaddlePALM的轻量级代码可以高效实现监督学习、非监督/自监督学习、多任务学习和迁移学习。在PaddlePALM架构中有三层,从下到上依次是component层、trainer层、high-level trainer层。 在组件层,PaddlePALM提供了6个 解耦的组件来实现NLP任务。每个组件包含丰富的预定义类和一个基类。预定义类是针对典型的NLP任务的,而基类是帮助用户开发一个新类(基于预定义类或基类)。 训练器层是用选定的构件建立计算图,进行训练和预测。该层描述了训练策略、模型保存和加载、评估和预测过程。一个训练器只能处理一个任务。 高级训练器层用于复杂的学习和推理策略,如多任务学习。您可以添加辅助任务来训练健壮的NLP模型(提高模型的测试集和领域外的性能),或者联合训练多个相关任务来获得每个任务的更高性能。
安装PaddlePALM 支持 python2 和 python3, linux 和 windows, CPU 和 GPU。安装PaddlePALM的首选方法是通过 pip install paddlepalm 通过源码安装git clone https://github.com/PaddlePaddle/PALM.gitcd PALM && python setup.py install 库依赖
下载预训练模型我们提供了许多预训练的模型来初始化模型主干网络参数。用预先训练好的模型训练大的NLP模型,如12层Transformer,实际上比用随机初始化的参数更有效。要查看所有可用的预训练模型并下载,请在python解释器中运行以下代码(在shell中输入命令 >>> from paddlepalm import downloader>>> downloader.ls('pretrain')Available pretrain items: => RoBERTa-zh-base => RoBERTa-zh-large => ERNIE-v2-en-base => ERNIE-v2-en-large => XLNet-cased-base => XLNet-cased-large => ERNIE-v1-zh-base => ERNIE-v1-zh-base-max-len-512 => BERT-en-uncased-large-whole-word-masking => BERT-en-cased-large-whole-word-masking => BERT-en-uncased-base => BERT-en-uncased-large => BERT-en-cased-base => BERT-en-cased-large => BERT-multilingual-uncased-base => BERT-multilingual-cased-base => BERT-zh-base>>> downloader.download('pretrain', 'BERT-en-uncased-base', './pretrain_models')... 使用快速开始8个步骤开始一个典型的NLP训练任务。
更多实现细节请见示例: 多任务学习多任务学习模式下运行:
multi_head_trainer的保存/加载和预测操作与trainer相同。 更多实现 设置saver在训练时保存 models/checkpoints 和 logs,调用 评估/预测训练结束后进行预测和评价, 只需创建额外的reader, backbone和head(重复上面1~4步骤),注意创建时需设 使用多GPU如果您的环境中存在多个GPU,您可以通过环境变量控制这些GPU的数量和索引CUDA_VISIBLE_DEVICES。例如,如果您的环境中有4个gpu,索引为0、1、2、3,那么您可以运行以下命令来只使用GPU2: CUDA_VISIBLE_DEVICES=2 python run.py 多GPU的使用需要 CUDA_VISIBLE_DEVICES=2,3 python run.py 在多GPU模式下,PaddlePALM会自动将每个batch数据分配到可用的GPU上。例如,如果 许可证书此向导由PaddlePaddle贡献,受Apache-2.0 license许可认证。 |
请发表评论