Ernie Pytorch

Alternatives To Ernie Pytorch
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Transformers88,46364911a day ago91June 21, 2022618apache-2.0Python
🤗 Transformers: State-of-the-art Machine Learning for Pytorch, TensorFlow, and JAX.
Real Time Voice Cloning40,272
8 days ago104otherPython
Clone a voice in 5 seconds to generate arbitrary speech in real-time
Ray24,80780199a day ago76June 09, 20222,872apache-2.0Python
Ray is a unified framework for scaling AI and Python applications. Ray consists of a core distributed runtime and a toolkit of libraries (Ray AIR) for accelerating ML workloads.
Netron21,780463a day ago489July 04, 202222mitJavaScript
Visualizer for neural network, deep learning, and machine learning models
D2l En16,954
12 days ago83otherPython
Interactive deep learning book with multi-framework code, math, and discussions. Adopted at 400 universities from 60 countries including Stanford, MIT, Harvard, and Cambridge.
Ncnn16,760
2 days ago19July 01, 2022957otherC++
ncnn is a high-performance neural network inference framework optimized for the mobile platform
Datasets15,6339208a day ago52June 15, 2022532apache-2.0Python
🤗 The largest hub of ready-to-use datasets for ML models with fast, easy-to-use and efficient data manipulation tools
Deeplearning Models15,594
a month ago5mitJupyter Notebook
A collection of various deep learning architectures, models, and tips
Onnx14,351148245a day ago26June 18, 2022373apache-2.0Python
Open standard for machine learning interoperability
Horovod13,14220106 days ago72June 21, 2022344otherPython
Distributed training framework for TensorFlow, Keras, PyTorch, and Apache MXNet.
Alternatives To Ernie Pytorch
Select To Compare


Alternative Project Comparisons
Readme

ERNIE-Pytorch

This project is to convert ERNIE from paddlepaddle to huggingface's format (in Pytorch).

GitHub stars GitHub issues

News: ERNIE has been merged into huggingface/[email protected] !!

Get Started

pip install --upgrade transformers

Take ernie-1.0-base-zh as an example:

from transformers import BertTokenizer, ErnieModel

tokenizer = BertTokenizer.from_pretrained("nghuyong/ernie-1.0-base-zh")
model = ErnieModel.from_pretrained("nghuyong/ernie-1.0-base-zh")

Supported Models

Model Name Language Description
ernie-1.0-base-zh Chinese Layer:12, Heads:12, Hidden:768
ernie-2.0-base-en English Layer:12, Heads:12, Hidden:768
ernie-2.0-large-en English Layer:24, Heads:16, Hidden:1024
ernie-3.0-xbase-zh Chinese Layer:20, Heads:16, Hidden:1024
ernie-3.0-base-zh Chinese Layer:12, Heads:12, Hidden:768
ernie-3.0-medium-zh Chinese Layer:6, Heads:12, Hidden:768
ernie-3.0-mini-zh Chinese Layer:6, Heads:12, Hidden:384
ernie-3.0-micro-zh Chinese Layer:4, Heads:12, Hidden:384
ernie-3.0-nano-zh Chinese Layer:4, Heads:12, Hidden:312
ernie-health-zh Chinese Layer:12, Heads:12, Hidden:768
ernie-gram-zh Chinese Layer:12, Heads:12, Hidden:768

You can find all the supported models from huggingface's model hub: huggingface.co/nghuyong, and model details from paddle's official repo: PaddleNLP and ERNIE.

Details

I want to convert the model from paddle version by myself

The following will take ernie-1.0-base-zh as an example to show how to convert.

  1. Download the paddle-paddle version ERNIE model from here , move to this project path and unzip the file.
  2. pip install -r requirements.txt
  3. python convert.py
  4. Now, a folder named convert will be in the project path, and there will be three files in this folder: config.json,pytorch_model.bin and vocab.txt.
I want to check the calculation results before and after model conversion
python test.py --task logit_check

You will get the output:

huggingface result
pool output: [-1.         -1.          0.9981035  -0.9996652  -0.78173476 -1.          -0.9994901   0.97012603  0.85954666  0.9854131 ]

paddle result
pool output: [-0.99999976 -0.99999976  0.9981028  -0.9996651  -0.7815545  -0.99999976  -0.9994898   0.97014064  0.8594844   0.985419  ]

It can be seen that the result of our convert version is the same with the official paddlepaddle's version.

I want to reproduce the cloze test in ERNIE1.0's paper
python test.py --task cloze_check

You will get the output:

huggingface result
prediction shape:	 torch.Size([47, 18000])
predict result:	 ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
[CLS] logit:	 [-15.693626 -19.522263 -10.429456 ... -11.800728 -12.253127 -14.375117]

paddle result
prediction shape:	 [47, 18000]
predict result:	 ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
[CLS] logit:	 [-15.693538 -19.521954 -10.429307 ... -11.800765 -12.253114 -14.375412]

Citation

If you use this work in a scientific publication, I would appreciate that you can also cite the following BibTex entry:

@misc{[email protected],
  title={ERNIEPytorch},
  author={Yong Hu},
  howpublished={\url{https://github.com/nghuyong/ERNIE-Pytorch}},
  year={2019}
}
Popular Pytorch Projects
Popular Tensorflow Projects
Popular Machine Learning Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Pytorch
Tensorflow
Chinese