PaddlePaddle
Valeur ajoutée gratuite
Guide complet des outils d’IA Framework de développement d’IA

PaddlePaddle

Plateforme open source couvrant le développement du deep learning, les modèles industriels et les outils de déploiement

Étiquettes :

Qu’est-ce que PaddlePaddle ?

PaddlePaddle est une plateforme d’apprentissage profond open source initiée et maintenue par Baidu ; son nom en anglais provient de Parallel Distributed Deep Learning. Elle couvre le calcul de tenseurs, les réseaux de neurones, la dérivation automatique, les optimiseurs, la précision mixte, l’entraînement distribué, le sauvegardage des modèles et leur déploiement pour l’inference, et est accompagnée d’une grande quantité de kits de modèles industriels et d’outils de développement.

Kubeflow peut être utilisé pour l’enseignement ainsi que pour les tâches visuelles, vocales et de recommandation traditionnelles, et il est également destiné au pré-entraînement, au micro-ajustement et à l’inference des grands modèles. Le framework principal peut être installé localement ou sur un serveur, tandis que la communauté AI Studio Galaxy propose des cours, des notebooks, des ensembles de données, des modèles et des ressources de calcul cloud ; ces deux éléments ne doivent pas être confondus comme s’il s’agissait du même produit payant.

Version actuelle de PaddlePaddle 3.3

À la date de cette vérification, les documents officiels du site web ainsi que GitHub indiquent tous deux la version 3.3 comme la dernière version stable. La version 3.x met l’accent sur le renforcement de l’expression intermédiaire unifiée PIR, du compilateur, du parallélisme automatique, de l’entraînement distribué de grands modèles, de la compatibilité avec les checkpoints, ainsi que sur l’adaptation à divers matériels nationaux.

La version stable convient à la production et à l’apprentissage, tandis que develop et Nightly sont destinés à tester les dernières fonctionnalités ; des changements dans l’API et des problèmes de compatibilité peuvent survenir. Lors du déploiement, il faut fixer le numéro de version complet et faire en sorte que les environnements d’entraînement, d’exportation et d’inference utilisent une version compatible.

Graphiques dynamiques et graphiques statiques

L’écriture des graphes dynamiques est proche du Python classique, les opérations s’exécutent immédiatement, ce qui facilite le débogage et la recherche ; les graphes statiques construisent d’abord un graphe de calcul complet avant de se compiler et de s’exécuter, ce qui permet une optimisation globale et un déploiement plus simple.

PyTorch offre une capacité de conversion dynamique en statique, permettant de transformer les modèles graphiques dynamiques en une forme statique adaptée à l’inférence.

La conversion dynamique en statique impose des contraintes sur le flux de contrôle de Python, les opérateurs personnalisés et les formes dynamiques. En cas d’échec de conversion, il convient de réduire la portée du problème, de vérifier la syntaxe non prise en charge et de valider la précision à l’aide d’entrées réelles, plutôt que de se contenter de confirmer que le fichier du modèle a été exporté avec succès.

PIR et optimisation de compilation

PIR est une représentation intermédiaire unifiée importante de PaddlePaddle 3.x, utilisée pour relier les API frontales, le parallélisme automatique, le compilateur et l’exécution backend. Le compilateur CINN permet la fusion d’opérateurs, l’optimisation du graphe et la génération de code, afin de réduire la mémoire intermédiaire et les coûts de planification.

Les avantages de l’optimisation de compilation dépendent de la structure du modèle, de la forme, du matériel et du taux de couverture des opérateurs. Une fois activée, il convient de comparer la précision des résultats, le temps de compilation initial, le débit et la mémoire vidéo ;

En cas de rencontre avec un opérateur non pris en charge, il peut y avoir un recul ou il sera nécessaire de désactiver certaines Pass.

Dérivée automatique et API de réseaux neuronaux

paddle.Tensor, paddle.nn.Layer, Loss, Optimizer et DataLoader constituent les interfaces de formation couramment utilisées. Une fois que l’utilisateur a défini la logique forward du réseau, le framework construit automatiquement le calcul backward et met à jour les paramètres, en permettant l’utilisation d’optimiseurs tels que SGD, Adam, AdamW, ainsi que de planificateurs de taux d’apprentissage.

Lors de l’évaluation du modèle, en plus d’appeler eval, il faut également utiliser no_grad pour désactiver l’enregistrement des gradients, sinon cela peut augmenter la mémoire vidéo. Lors du sauvegarde du modèle, il est nécessaire de distinguer les paramètres, l’état de l’optimiseur et le modèle d’inference ; les fichiers exportés pour la reprise de l’entraînement et ceux destinés au déploiement ont des finalités différentes.

Précision de mélange automatique

AMP peut utiliser FP16 ou BF16 pour réduire la mémoire vidéo et améliorer le débit des Tensor Core, tout en combinant GradScaler pour diminuer les débordements dus à une faible précision. L’entraînement de grands modèles peut également intégrer un recalculation, l’accumulation des gradients et des optimiseurs par morceaux.

Une faible précision peut entraîner des valeurs NaN, des variations de convergence ou une instabilité de certains opérateurs. Il convient de conserver la référence FP32, de surveiller la perte et les gradients, de contrôler les opérateurs sensibles à l’aide d’une liste blanche ou noire, et de valider en fonction des indicateurs métier finaux.

Entraînement distribué et Fleet

paddle.distributed et Fleet prennent en charge des modes tels que plusieurs cartes sur une seule machine, plusieurs machines avec plusieurs cartes, parallélisme des données, parallélisme des modèles, parallélisme en pipeline, parallélisme des tenseurs et serveur de paramètres. Le lanceur peut spécifier une GPU ou un nœud, tandis que Fleet configure, via DistributedStrategy, la précision mixte, le recalcul, la fusion des communications et les stratégies de parallélisme.

Kubernetes 3.3 continue d’améliorer les stratégies de parallélisme automatique et FSDP, ainsi que la fusion en ligne et la répartition à nouveau de FlexCheckpoint. Les performances distribuées dépendent du réseau, de la topologie, de la taille des lots et de la lecture des données ;

L’augmentation du nombre de cartes ne s’accélère pas nécessairement de manière linéaire ; il est nécessaire d’analyser la part des communications et les inégalités de charge.

Entraînement de grands modèles

Paddle propose pour les grands modèles de langage une détection automatique de stratégies parallèles, des Checkpoints distribués, une optimisation de la mémoire vidéo et des opérateurs à haute performance. PaddleNLP et PaddleFleetX fournissent des exemples de pré-entraînement, d’ajustement fin, d’alignement et d’inference, pouvant être utilisés pour les grands modèles nationaux et open source.

L’entraînement de grands modèles nécessite de définir clairement la licence du modèle, les autorisations sur les données et la tolérance aux pannes du cluster. Il est recommandé de valider d’abord le pipeline de données et la fonction de perte avec une configuration à petite échelle, avant de l’étendre à plusieurs machines.

Checkpoint doit être synchronisé vers un stockage fiable et des exercices de récupération doivent être effectués régulièrement.

Déploiement par raisonnement

Paddle Inference est utilisé pour l’inférence haute performance du côté serveur, et peut être combiné avec PIR, CINN, TensorRT, MKL ainsi que des optimisations de backend matériel. Paddle Lite s’adresse aux appareils mobiles et aux dispositifs edge, Paddle Serving est destiné aux services en ligne, et Paddle.js couvre certains scénarios de navigateurs et de front-end.

Les modèles et opérateurs pris en charge par les différents composants déployés ne sont pas exactement identiques. Après l’exportation, des tests de correction, de démarrage en froid, de latence P95, de débit, de mémoire maximale et de stabilité à long terme doivent être effectués sur le dispositif cible.

Support matériel

FeiJiang propose des packages d’installation pour CPU et GPU NVIDIA, et a également mis en place une adaptation pour du matériel national tel que le Kunlun XPU, le Ascend NPU et le Haiguang DCU. La documentation officielle 3.3 fournit des instructions d’installation indépendantes, d’image, de pilotes et de vérification de santé pour différents chipsets.

L’installation du matériel doit être compatible avec le système d’exploitation, Python, CUDA ou le runtime du fabricant, les pilotes et les paquets de frameworks. Il n’est pas possible d’installer des Wheel de backends différents dans un environnement ordinaire.

Les images de conteneur sont généralement plus adaptées pour fixer les dépendances, mais nécessitent néanmoins une compatibilité avec les pilotes du hôte.

PaddleOCR

PaddleOCR est un outil d’OCR et de compréhension de documents très connu dans l’écosystème Paddle, couvrant la détection de texte, la reconnaissance, l’analyse de mise en page, les tableaux, les formules et l’analyse structurée des documents. Il est adapté à la structuration des reçus, des scans, du texte dans les images et des PDF.

La précision de l’OCR dépend de la clarté, de l’angle, de la langue, du format et des polices utilisées dans le domaine. Les systèmes de production doivent être évalués sur des échantillons réels, et il convient de conserver des vérifications pour les niveaux de confiance faibles, ainsi que des coordonnées de mise en page et des preuves de l’image originale.

PaddleNLP

PaddleNLP propose des outils pour la classification de texte, l’extraction d’informations, les embeddings, les modèles linguistiques pré-entraînés et l’entraînement ainsi que le déploiement de grands modèles, incluant un tokenizer, des ensembles de données, un entraîneur et des exemples industriels. Il peut être combiné avec les capacités distribuées de Paddle pour gérer l’entraînement à grande échelle.

Les différents modèles peuvent utiliser des licences et des sources de poids distinctes. Le fait que le code de PaddleNLP soit open source ne signifie pas que chacun de ses modèles puisse être utilisé à des fins commerciales sans condition ; il est encore nécessaire de vérifier la carte de modèle avant de le télécharger.

Kit visuel et industriel

PaddleDetection couvre la détection d’objets, le suivi, les points clés et la segmentation d’instances ; PaddleSeg est utilisé pour la segmentation d’images.

PaddleClas est utilisé pour la classification et l’identification ; PaddleRec est destiné aux recommandations.

PaddleSpeech couvre la reconnaissance et la synthèse vocale ; le service PaddleHelix s’occupe de la bio-informatique.

PaddleX offre un développement à faible code et une plateforme unifiée, facilitant la combinaison de fonctionnalités telles que l’OCR, la détection, le classement et le segmentage pour créer des applications. Il existe une matrice de compatibilité entre les versions du kit et le framework principal ; lors de l’installation, il convient de choisir la combinaison en se référant à leurs documents respectifs.

Sauvegarde et migration de modèles

Lors de l’entraînement, il est possible de sauvegarder les paramètres et l’état de l’optimiseur afin de reprendre l’entraînement ; avant le déploiement, un modèle d’inference est généré via JIT ou des interfaces d’exportation correspondantes. 3.3 Les capacités distribuées permettent un traitement plus flexible des Checkpoints fragmentés, et il est possible de charger certains Checkpoints au format ouvert de Hugging Face.

La compatibilité de format ne garantit pas une structure de modèle et des résultats numériques entièrement identiques. La migration entre frameworks doit comparer le tokenizer, la mise en correspondance des poids, les encodages de position, les types de précision et les paramètres de génération, et effectuer une comparaison couche par couche ou sur le résultat final à l’aide d’exemples fixes.

Mode d’installation

Pour la version CPU, on installe généralement paddlepaddle via pip, tandis que pour la version GPU, on utilise paddlepaddle-gpu en choisissant la source officielle ou un Wheel correspondant à CUDA. Après l’installation, on peut vérifier la version et exécuter paddle.utils.run_check pour effectuer une vérification de base de la santé du système.

La compatibilité avec Windows, Linux, macOS et différentes architectures varie. Avant de commencer, utilisez le sélecteur d’installation sur le site officiel pour vérifier la combinaison Python, système d’exploitation et matériel ; ne copiez pas directement l’extension CUDA des anciens tutoriels.

Communauté AI Studio Galaxy

AI Studio est la communauté d’apprentissage et de formation associée à PaddlePaddle, qui offre des notebooks en ligne, des cours, des projets, des ensembles de données, des compétitions, une communauté de modèles, un espace d’application et des GPU en cloud. Les débutants peuvent exécuter des exemples directement dans leur navigateur, sans avoir besoin d’installer un environnement local au préalable.

La plateforme dispose de ressources de calcul gratuites pour les activités, et propose également des GPU haute performance en échange d’abonnements ou de monnaie A. Les avantages offerts aux membres, la consommation de monnaie A ainsi que les quotas liés aux activités peuvent varier ; le nombre fixe d’heures V100 par jour indiqué dans les données historiques ne constitue pas une promesse permanente pour le présent.

Prix et frais

Le framework principal PaddlePaddle, le code source officiel et la plupart des dépôts de l’écosystème sont disponibles gratuitement, sans frais d’abonnement au framework. Lorsque les utilisateurs l’exécutent eux-mêmes, ils assument les coûts liés au serveur, aux GPU, à l’électricité, au stockage et à la maintenance.

La puissance de calcul cloud d’AI Studio est un service indépendant. Actuellement, les avantages offerts s’appuient sur un système de membres et de monnaie A ; les ressources haute performance nécessaires aux projets ou applications sont consommées selon les règles indiquées sur la page. Les prix spécifiques pour les membres ainsi que la quantité de GPU échangeable doivent être vérifiés sur la page d’achat en temps réel.

Pour la privatisation des entreprises, la formation et les services techniques, veuillez contacter nous.

GitHub et les licences open source

Le dépôt principal est PaddlePaddle/Paddle, sous licence Apache License 2.0, qui autorise l’utilisation, la modification et la distribution à condition de respecter les exigences de la licence et des déclarations associées. Les documents, PaddleOCR, PaddleNLP, PaddleDetection, etc., sont maintenus par leurs dépôts officiels respectifs.

La licence cadre ne couvre pas automatiquement les ensembles de données de tiers, les poids des modèles et le contenu généré. Les projets commerciaux doivent établir séparément des listes de licences pour le code, les modèles, les données et le contenu.

Guide d'utilisation de PaddlePaddle

Terminer une tâche de base

  1. Inscrivez-vous à PaddlePaddle et créez une clé API réservée uniquement à l’environnement de test ;
  2. Sélectionner le modèle en fonction du type d’entrée, du contexte, de la qualité, de la vitesse et du prix ;
  3. Appeler d’abord la version actuelle de PaddlePaddle 3.3 pour effectuer la requête minimale et vérifier la structure de réponse ;
  4. Tester ensuite la sortie en flux, les paramètres et les réponses aux exceptions à l’aide de diagrammes dynamiques et statiques ;
  5. Enregistrer les tokens, le nombre d’appels, le délai, le taux d’erreurs et le coût par appel ;
  6. Transférez la clé dans le gestionnaire de clés du serveur avant de l’intégrer à l’application officielle ;

Créer des flux de travail professionnels réutilisables

  1. Utiliser des clés et des quotas différents pour les environnements de développement, de test et de production ;
  2. Créer un ensemble d’évaluation représentatif en utilisant la version actuelle de PaddlePaddle 3.3, les graphes dynamiques et statiques, ainsi que PIR et l’optimisation de compilation ;
  3. Définir les délais d’attente, la concurrence, les tentatives de réessai, le throttling et les plafonds budgétaires ;
  4. Effectuer des vérifications sur la sortie en ce qui concerne les faits, la sécurité, le format et les informations sensibles ;
  5. Surveiller les changements de version, de prix, de délai et de taux d’échec des modèles de surveillance ;
  6. Préparer des plans de dégradation du modèle, de coupure et de prise en main manuelle ;

À qui s’adresse-t-il ?

  • Étudiants et enseignants qui apprennent l’apprentissage profond et l’entraînement de modèles Python ;
  • Équipe d’ingénierie chargée du développement de systèmes OCR, visuels, NLP, vocaux et de recommandation ;
  • Les chercheurs ayant besoin d’ordinateurs multiples, de cartes graphiques multiples et d’un entraînement distribué à grande échelle ;
  • Les entreprises qui doivent s’adapter aux matériels nationaux tels que Kunlun, Ascend et Haiguang ;
  • Développeurs souhaitant utiliser les cours d’AI Studio, les notebooks et les ressources pour les compétitions.

Avantages du produit

  • Du cadre de base aux kits de modèles et à la chaîne d’outils de déploiement, tout est relativement complet ;
  • Prend en charge simultanément les graphiques dynamiques, les graphiques statiques, la conversion dynamique en statique ainsi que l’optimisation de compilation ;
  • Parallélisme automatique, Fleet et Checkpoint pour un entraînement à grande échelle ;
  • Les suites industrielles telles que PaddleOCR et PaddleNLP sont matures ;
  • Prend en charge les GPU NVIDIA et diverses puces d’IA locales ;
  • Apache 2.0 est open source et dispose de documents en chinois ainsi que d’une communauté d’apprentissage.

Restrictions et précautions

  • Il existe de nombreux composants dans l’écosystème PyTorch, et les incohérences entre le framework principal, CUDA, les pilotes, les kits et les versions du backend matériel sont des problèmes fréquents.
  • L’ancienne FluidAPI est progressivement abandonnée ; lors du transfert des projets anciens, les interfaces doivent être remplacées conformément au document 3.3.
  • Le fait que le framework lui-même soit gratuit ne signifie pas que l’entraînement et les ressources cloud le soient également.
  • Les poids du modèle peuvent également faire l’objet d’autres licences ;
  • Avant la mise à niveau de la production, il convient de verrouiller les dépendances, d’exécuter des tests de régression, de vérifier la précision numérique et d’exporter le modèle, tout en se préparant à revenir à une version antérieure.

Questions fréquentes

PaddlePaddle est-il gratuit ?

Le cadre de base est open source et gratuit, sans frais de abonnement. L’entraînement personnel entraîne des coûts en matériel, tandis que les ressources cloud haute performance d’AI Studio peuvent consommer des droits d’abonné ou des monnaies A.

Quelle est la dernière version stable actuelle de PyTorch ?

À la date de cette vérification, il s’agit de PaddlePaddle 3.3. Les versions nightly et develop sont mises à jour plus fréquemment, mais il est recommandé d’utiliser la version stable avec une version mineure fixe dans l’environnement de production.

Quel matériel est pris en charge par PaddlePaddle ?

Prend en charge les CPU et les GPU NVIDIA, et offre des backends tels que le Kunlun XPU, le Ascend NPU et le Haiguang DCU ; pour les modèles spécifiques et l’environnement, consultez la documentation d’installation correspondante de section 3.3.

PaddlePaddle convient-il aux grands modèles ?

Adéquat. Le framework offre une parallélisation automatique, Fleet, FSDP, précision mixte, recalculation et Checkpoint distribués, tandis que PaddleNLP fournit des outils pour l’entraînement et le déploiement de grands modèles.

Le PaddleJet peut-il être utilisé à des fins commerciales ?

Le cadre de base est basé sur Apache 2.0 et peut être utilisé à des fins commerciales sous licence. Les modèles spécifiques, les ensembles de données et les composants tiers doivent faire l’objet d’une vérification distincte de leur licence.

©️Droit d’auteur : Sauf indication contraire, tous les articles de ce site sont protégés par le droit d’auteur.Partage d’outils d’IATous les droits d’auteur sont réservés. Sans autorisation, aucune personne, média, site web ou groupe ne peut reproduire, copier ou diffuser de quelque manière que ce soit le contenu de ce site, ni créer de mirror sur des serveurs qui ne lui appartiennent pas. Dans le cas contraire, notre site se réserve le droit de poursuivre en justice les responsables conformément à la loi.

Outils similaires à PaddlePaddle