在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:ERNIE开源软件地址:https://gitee.com/paddlepaddle/ERNIE开源软件介绍:English|简体中文 ERNIE是百度开创性提出的基于知识增强的持续学习语义理解框架,该框架将大数据预训练与多源丰富知识相结合,通过持续学习技术,不断吸收海量文本数据中词汇、结构、语义等方面的知识,实现模型效果不断进化。ERNIE在情感分析、文本匹配、自然语言推理、词法分析、阅读理解、智能问答等16个公开数据集上全面显著超越世界领先技术,在国际权威的通用语言理解评估基准GLUE上,得分首次突破90分,获得全球第一。在今年3月落下帷幕的全球最大语义评测SemEval 2020上,ERNIE摘得5项世界冠军, 该技术也被全球顶级科技商业杂志《麻省理工科技评论》官方网站报道,相关创新成果也被国际顶级学术会议AAAI、IJCAI收录。ERNIE在工业界得到了大规模应用,如搜索引擎、新闻推荐、广告系统、语音交互、智能客服等。 提醒: ERNIE老版本代码已经迁移至repro分支,欢迎使用我们全新升级的基于动静结合的新版ERNIE套件进行开发。另外,也欢迎上EasyDL体验更丰富的功能(如ERNIE 2.0、ERNIE 2.1、ERNIE领域模型等)。 新闻
导航快速上手import numpy as npimport paddle as Pfrom ernie.tokenizing_ernie import ErnieTokenizerfrom ernie.modeling_ernie import ErnieModelmodel = ErnieModel.from_pretrained('ernie-1.0') # Try to get pretrained model from server, make sure you have network connectionmodel.eval()tokenizer = ErnieTokenizer.from_pretrained('ernie-1.0')ids, _ = tokenizer.encode('hello world')ids = P.to_tensor(np.expand_dims(ids, 0)) # insert extra `batch` dimensionpooled, encoded = model(ids) # eager executionprint(pooled.numpy()) # convert results to numpy 教程手边没有GPU?欢迎在AIStudio中直接试用 ERNIE.(请选择最新版本的教程并申请GPU运行环境) 安装1. 安装 PaddlePaddle本项目依赖PaddlePaddle 1.7.0+, 请参考这里安装 PaddlePaddle。 2. 安装 ERNIE 套件pip install paddle-ernie 或者 git clone https://github.com/PaddlePaddle/ERNIE.git --depth 1cd ERNIEpip install -r requirements.txtpip install -e .
export PYTHONPATH=$PWD:$PYTHONPATH 3. 下载预训练模型(可选)
4. 下载数据集英文数据集 运行此脚本,下载GLUE datasets. 请将数据目录整理成以下格式,方便在后续 demo 教程中使用(通过 data/xnli├── dev│ └── 1├── test│ └── 1└── train └── 1 示例数据(MNLI任务测试、训练集合)。 中文数据
支持的NLP任务
python3 ./ernie_d/demo/finetune_classifier.py \ --from_pretrained ernie-1.0 \ --data_dir ./data/xnli
当采用分布式训练时,我们采用 示例脚本(请确保你有两张以上GPU卡, 在线模型下载功能在 python3 -m paddle.distributed.launch \./demo/finetune_classifier_distributed.py \ --data_dir data/mnli \ --max_steps 10000 \ --from_pretrained ernie2.0-en 更多示例脚本:
推荐超参数设置:
预训练 (ERNIE 1.0)请见这里 在线预测如果 关于生产环境中使用线上预测代码的实现细节,请见C++ inference API.或者你可以使用 python -m propeller.tools.start_server -m /path/to/saved/inference_model -p 8881 即可启动预测服务;随后在Python端采用如下命令访问该服务(仅限 python3): from propeller.service.client import InferenceClientfrom ernie.tokenizing_ernie import ErnieTokenizerclient = InferenceClient('tcp://localhost:8881')tokenizer = ErnieTokenizer.from_pretrained('ernie-1.0')ids, sids = tokenizer.encode('hello world')ids = np.expand_dims(ids, 0)sids = np.expand_dims(sids, 0)result = client(ids, sids) 你也可从此处下载一个预先制作好的ernie-1.0 base模型的 ids = np.expand_dims(ids, -1) # ids.shape==[BATCH, SEQLEN, 1] 蒸馏知识蒸馏是进行ERNIE模型压缩、加速的有效方式;关于知识蒸馏的实现细节请参见这里。 文献引用ERNIE 1.0@article{sun2019ernie, title={Ernie: Enhanced representation through knowledge integration}, author={Sun, Yu and Wang, Shuohuan and Li, Yukun and Feng, Shikun and Chen, Xuyi and Zhang, Han and Tian, Xin and Zhu, Danxiang and Tian, Hao and Wu, Hua}, journal={arXiv preprint arXiv:1904.09223}, year={2019}} ERNIE 2.0@article{sun2019ernie20, title={ERNIE 2.0: A Continual Pre-training Framework for Language Understanding}, author={Sun, Yu and Wang, Shuohuan and Li, Yukun and Feng, Shikun and Tian, Hao and Wu, Hua and Wang, Haifeng}, journal={arXiv preprint arXiv:1907.12412}, year={2019}} ERNIE-GEN@article{xiao2020ernie-gen, title={ERNIE-GEN: An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation}, author={Xiao, Dongling and Zhang, Han and Li, Yukun and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng}, journal={arXiv preprint arXiv:2001.11314}, year={2020}} ERNIE-ViL@article{yu2020ernie, title={ERNIE-ViL: Knowledge Enhanced Vision-Language Representations Through Scene Graph}, author={Yu, Fei and Tang, Jiji and Yin, Weichong and Sun, Yu and Tian, Hao and Wu, Hua and Wang, Haifeng}, journal={arXiv preprint arXiv:2006.16934}, year={2020}} 若希望复现 paper 中的所有实验,请切换至本repo的 讨论组
|
请发表评论