|
1 | | -# PaddleNLP |
| 1 | +简体中文 | [English](./README_en.md) |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <img src="./docs/imgs/paddlenlp.png" width="520" height ="100" /> |
| 5 | +</p> |
| 6 | + |
| 7 | +------------------------------------------------------------------------------------------ |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +## 简介 |
| 14 | + |
| 15 | +PaddleNLP 2.0拥有丰富的模型库、简洁易用的API与高性能的分布式训练的能力,旨在为飞桨开发者提升文本建模效率,并提供基于PaddlePaddle 2.0的NLP领域最佳实践。 |
| 16 | + |
| 17 | +## 特性 |
| 18 | + |
| 19 | +- **丰富的模型库** |
| 20 | + - 涵盖了NLP主流应用相关的前沿模型,包括中文词向量、预训练模型、词法分析、文本分类、文本匹配、文本生成、机器翻译、通用对话、问答系统等,更多详细介绍请查看[PaddleNLP模型库](./docs/model_zoo.md)。 |
| 21 | + |
| 22 | +- **简洁易用的API** |
| 23 | + - 深度兼容飞桨2.0的高层API体系,提供可复用的文本建模模块,可大幅度减少数据处理、组网、训练环节的代码开发量,提升文本建模开发效率。 |
| 24 | + |
| 25 | +- **高性能分布式训练** |
| 26 | + - 通过深度优化的混合精度训练策略与Fleet分布式训练API,可充分利用GPU集群资源,高效完成大规模预训练模型的分布式训练。 |
| 27 | + |
| 28 | + |
| 29 | +## 安装 |
| 30 | + |
| 31 | +### 环境依赖 |
| 32 | + |
| 33 | +- python >= 3.6 |
| 34 | +- paddlepaddle >= 2.0.0 |
| 35 | + |
| 36 | +``` |
| 37 | +pip install paddlenlp==2.0.0rc |
| 38 | +``` |
| 39 | + |
| 40 | +## 快速开始 |
| 41 | + |
| 42 | +### 数据集快速加载 |
| 43 | + |
| 44 | +```python |
| 45 | +from paddlenlp.datasets import ChnSentiCorp |
| 46 | + |
| 47 | +train_ds, dev_ds, test_ds = ChnSentiCorp.get_datasets(['train', 'dev', 'test']) |
| 48 | +``` |
| 49 | + |
| 50 | +可参考[Dataset文档](./docs/datasets.md)查看更多数据集。 |
| 51 | + |
| 52 | +### 一键加载中文词向量 |
| 53 | + |
| 54 | +```python |
| 55 | +from paddlenlp.embeddings import TokenEmbedding |
| 56 | + |
| 57 | +wordemb = TokenEmbedding("w2v.baidu_encyclopedia.target.word-word.dim300") |
| 58 | +print(wordemb.cosine_sim("国王", "王后")) |
| 59 | +>>> 0.63395125 |
| 60 | +wordemb.cosine_sim("艺术", "火车") |
| 61 | +>>> 0.14792643 |
| 62 | +``` |
| 63 | + |
| 64 | +内置50+中文词向量,更多使用方法请参考 [Embedding文档](./examples/word_embedding/README.md)。 |
| 65 | + |
| 66 | + |
| 67 | +### 一键加载高质量中文预训练模型 |
| 68 | + |
| 69 | +```python |
| 70 | +from paddlenlp.transformers import ErnieModel, BertModel, RobertaModel, ElectraModel, GPT2ForPretraining |
| 71 | + |
| 72 | +ernie = ErnieModel.from_pretrained('ernie-1.0') |
| 73 | +bert = BertModel.from_pretrained('bert-wwm-chinese') |
| 74 | +roberta = RobertaModel.from_pretrained('roberta-wwm-ext') |
| 75 | +electra = ElectraModel.from_pretrained('chinese-electra-small') |
| 76 | +gpt2 = GPT2ForPretraining.from_pretrained('gpt2-base-cn') |
| 77 | +``` |
| 78 | + |
| 79 | +请参考 [Pretrained-Models](./docs/transformers.md)查看目前支持的预训练模型。 |
| 80 | + |
| 81 | +## 模型库及其应用 |
| 82 | + |
| 83 | +PaddleNLP模型库整体介绍请参考文档[PaddleNLP Model Zoo](./docs/model_zoo.md). |
| 84 | +模型应用场景介绍请参考[PaddleNLP Examples](./examples/README.md)。 |
| 85 | + |
| 86 | +- [词向量](./examples/word_embedding/README.md) |
| 87 | +- [词法分析](./examples/lexical_analysis/README.md) |
| 88 | +- [语言模型](./examples/language_model) |
| 89 | +- [文本分类](./examples/text_classification/README.md) |
| 90 | +- [文本生成](./examples/text_generation/README.md) |
| 91 | +- [语义匹配](./examples/text_matching/README.md) |
| 92 | +- [命名实体识别](./examples/named_entity_recognition/README.md) |
| 93 | +- [文本图学习](./examples/text_graph/erniesage/README.md) |
| 94 | +- [通用对话](./examples/dialogue) |
| 95 | +- [机器翻译](./examples/machine_translation) |
| 96 | +- [阅读理解](./examples/machine_reading_comprehension) |
| 97 | + |
| 98 | +## 进阶应用 |
| 99 | + |
| 100 | +- [模型压缩](./examples/model_compression/) |
| 101 | + |
| 102 | +## API 使用文档 |
| 103 | + |
| 104 | +- [Transformer API](./docs/transformers.md) |
| 105 | + * 基于Transformer结构相关的预训练模型API,包含ERNIE, BERT, RoBERTa, Electra等主流经典结构和下游任务。 |
| 106 | +- [Data API](./docs/data.md) |
| 107 | + * 文本数据处理Pipeline的相关API说明。 |
| 108 | +- [Dataset API](./docs/datasets.md) |
| 109 | + * 数据集相关API,包含自定义数据集,数据集贡献与数据集快速加载等功能说明。 |
| 110 | +- [Embedding API](./docs/embeddings.md) |
| 111 | + * 词向量相关API,支持一键快速加载包预训练的中文词向量,VisulDL高维可视化等功能说明。 |
| 112 | +- [Metrics API](./docs/metrics.md) |
| 113 | + * 针对NLP场景的评估指标说明,与飞桨2.0框架高层API兼容。 |
| 114 | + |
| 115 | + |
| 116 | +## 交互式Notebook教程 |
| 117 | + |
| 118 | +- [使用Seq2Vec模块进行句子情感分类](https://aistudio.baidu.com/aistudio/projectdetail/1283423) |
| 119 | +- [如何通过预训练模型Fine-tune下游任务](https://aistudio.baidu.com/aistudio/projectdetail/1294333) |
| 120 | +- [使用BiGRU-CRF模型完成快递单信息抽取](https://aistudio.baidu.com/aistudio/projectdetail/1317771) |
| 121 | +- [使用预训练模型ERNIE优化快递单信息抽取](https://aistudio.baidu.com/aistudio/projectdetail/1329361) |
| 122 | +- [使用Seq2Seq模型完成自动对联](https://aistudio.baidu.com/aistudio/projectdetail/1321118) |
| 123 | +- [使用预训练模型ERNIE-GEN实现智能写诗](https://aistudio.baidu.com/aistudio/projectdetail/1339888) |
| 124 | +- [使用TCN网络完成新冠疫情病例数预测](https://aistudio.baidu.com/aistudio/projectdetail/1290873) |
| 125 | + |
| 126 | +更多教程参见[PaddleNLP on AI Studio](https://aistudio.baidu.com/aistudio/personalcenter/thirdview/574995)。 |
| 127 | + |
| 128 | + |
| 129 | +## 社区贡献与技术交流 |
| 130 | + |
| 131 | +- 欢迎您加入PaddleNLP的SIG社区,贡献优秀的模型实现、公开数据集、教程与案例、外围小工具。 |
| 132 | +- 现在就加入PaddleNLP的QQ技术交流群,一起交流NLP技术吧!⬇️ |
| 133 | + |
| 134 | +<div align="center"> |
| 135 | + <img src="./docs/imgs/qq.png" width="200" height="200" /> |
| 136 | +</div> |
| 137 | + |
| 138 | + |
| 139 | +## License |
| 140 | + |
| 141 | +PaddleNLP遵循[Apache-2.0开源协议](./LICENSE)。 |
0 commit comments