ONNX

ONNX est un format ouvert pour représenter les modèles d'apprentissage profond qui permet aux développeurs de déplacer plus facilement les modèles entre les outils de pointe.

ONNX est développé et soutenu par une communauté de partenaires.

Comment BERT a-t-il été formé ?

BERT a été formé à l'origine sur le BooksCorpus (800 millions de mots) et la Wikipédia anglaise (2,5 milliards de mots). Il s'agit d'un objectif de pré-entraînement de modèle de langue assez standard : Modèle de langage masqué (MLM) + Prédiction de la prochaine phrase (NSP).
Pour le MLM, 15 % des mots de chaque phrase sont masqués de manière aléatoire, et le modèle est entraîné à prédire les mots masqués. Pour la prédiction de la prochaine phrase (NSP), le modèle reçoit une paire de phrases et doit prédire si la deuxième phrase est la prochaine phrase du texte ou non.
Il y a beaucoup de discussions dans l'article sur les différentes façons de faire le MLM et le NSP, mais finalement ils ont choisi une approche assez simple :

- Pour le MLM, ils masquent 15% des mots avec un jeton [MASK], puis prédisent les mots masqués en utilisant un softmax sur un vocabulaire de 30.522 mots.

- Pour NSP, ils concaténent simplement les deux phrases ensemble avec un jeton spécial [SEP] entre les deux, et prédisent ensuite si la deuxième phrase est la prochaine phrase du texte ou non.

BERT est entraîné en utilisant un objectif standard de modélisation du langage : maximiser la probabilité du mot suivant dans le texte. Ils masquent 15 % des mots dans chaque phrase, puis prédisent les mots masqués en utilisant un softmax sur un vocabulaire de 30 522 mots.

Pour NSP, ils concaténent simplement les mots masqués ONNX est-il open source ? Oui, ONNX est un projet open source. Le code source est disponible sur GitHub.

Les modèles ONNX sont-ils plus rapides que PyTorch ?

Il n'y a pas de réponse simple à cette question. Cela dépend d'un certain nombre de facteurs, notamment le type de modèle, le matériel utilisé et l'application spécifique. En général, cependant, les modèles ONNX ont tendance à être plus rapides que les modèles PyTorch.

ONNX est-il plus rapide que TensorFlow ?

La réponse courte est que cela dépend.

ONNX est un standard ouvert relativement nouveau pour représenter les modèles d'apprentissage profond qui peuvent être optimisés et exécutés sur une variété de plateformes différentes. TensorFlow est un cadre open source largement utilisé pour la formation et le déploiement de modèles d'apprentissage profond.
En général, les modèles ONNX devraient pouvoir s'exécuter plus rapidement en moyenne que les modèles TensorFlow sur toute plateforme prenant en charge ONNX. Cela est dû au fait que la norme ONNX permet des optimisations qui ne sont pas possibles avec le framework TensorFlow.
Cependant, quelques facteurs peuvent avoir un impact sur les performances des modèles ONNX par rapport aux modèles TensorFlow.

Le premier est la qualité du convertisseur de modèle ONNX. Si le convertisseur n'est pas capable de générer un modèle ONNX optimisé, alors le modèle ne s'exécutera probablement pas aussi rapidement qu'un modèle TensorFlow optimisé de manière similaire.

Le second facteur est la qualité du runtime ONNX. Si le runtime n'est pas capable d'exécuter efficacement le modèle ONNX, alors le modèle ne s'exécutera probablement pas aussi rapidement qu'un modèle TensorFlow optimisé de manière similaire.

Le troisième facteur est le support d'ONNX sur la plateforme. Si la plate-forme n'offre pas un bon support pour ONNX, le modèle ne s'exécutera probablement pas aussi rapidement qu'un modèle TensorFlow optimisé de manière similaire.

Donc, en résumé, la réponse à la question "ONNX est-il plus rapide que TensorFlow ?"

Qu'est-ce que ONNX PyTorch ?

ONNX est un format open source pour les modèles d'apprentissage profond qui permet aux développeurs de déplacer plus facilement les modèles entre les outils et les cadres de pointe pour la formation, l'inférence et l'analyse.
PyTorch est un cadre open source d'apprentissage automatique pour les modèles et les algorithmes d'apprentissage profond. Il est largement utilisé par les chercheurs et les développeurs dans l'industrie et le milieu universitaire.