Maison >Périphériques technologiques >IA >La méthodologie d'industrialisation des grands modèles est entièrement cachée dans le GPU

La méthodologie d'industrialisation des grands modèles est entièrement cachée dans le GPU

王林
王林avant
2023-04-11 20:04:071274parcourir

Introduction

À l'ère de l'intelligence des données, l'informatique est à la fois une nécessité et un problème. La caractéristique la plus importante est un mot : grand.

Diviser le « grand » en trois caractéristiques, notamment :

  • Grands lots de données
  • Calcul des dépendances en série
  • Calcul complexe Sexe élevé

Cela inclut la complexité des données et des algorithmes, et les données, les algorithmes et la puissance de calcul sont les trois éléments de l'ère intelligente. La complexité des deux premiers sera finalement portée par la puissance de calcul.

Cela a entraîné une augmentation rapide de la demande de puissance de calcul de l’industrie, à la fois dans l’espace et dans le temps, à la manière d’un tsunami.

​GPU a un moyen de subdiviser le tsunami en milliers de filets dans l'espace, de raccourcir le trajet de l'eau dans le temps, de rationaliser la structure des branches du chemin et de diviser les tâches à grande échelle en petites tâches. demande facilement une puissance de calcul massive et devient le fondement de la puissance de calcul à l’ère intelligente.

En réponse aux trois caractéristiques ci-dessus, le GPU utilise trois méthodes : parallélisme, fusion et simplification pour accélérer au niveau de l'opérateur en fonction du débit, de la mémoire vidéo et d'autres indicateurs. ​

La principale méthodologie d’accélération GPU est également adaptée à l’industrialisation de grands modèles.

Avec l'amélioration et les progrès des puces sous-jacentes, de la puissance de calcul, des données et d'autres infrastructures, l'industrie mondiale de l'IA passe progressivement de l'intelligence informatique à l'intelligence perceptuelle et à l'intelligence cognitive, et forme en conséquence une « puce, des installations de puissance de calcul » , cadre d'IA" et modèle d'algorithme, scénario d'application" division industrielle du travail et système de collaboration. Depuis 2019, les grands modèles d'IA ont considérablement amélioré la capacité à généraliser la résolution de problèmes, et « grands modèles + petits modèles » sont progressivement devenus la voie technologique dominante dans l'industrie, entraînant l'accélération globale du développement de l'industrie mondiale de l'IA.

Il n'y a pas si longtemps, DataFun a organisé un événement de partage « Feuille de route technologique des grands modèles d'IA et pratiques de mise en œuvre de l'industrialisation ». Six experts de NVIDIA, Baidu, ByteDance Volcano Translation, Tencent WeChat, etc. ont partagé leurs points de vue sur la technologie de formation de modèles et l'inférence. solutions et multiples L'application de la traduction automatique du langage, le développement et la mise en œuvre de modèles linguistiques à grande échelle, etc. apportent un partage passionnant des itinéraires technologiques de grands modèles d'IA et des pratiques de mise en œuvre de l'industrialisation.

Lorsqu'ils ont mis en œuvre de grands modèles dans l'industrie, ils ont largement adopté des méthodes de parallélisme, de fusion et de simplification, et ont également étendu les niveaux de formation et d'inférence au niveau de modélisation algorithmique.

1. Parallèle

La méthode parallèle est une méthode d'échange d'espace contre du temps, qui subdivise le tsunami en filets. Plus précisément, pour les calculs impliquant de gros lots de données, chaque étape de calcul prend un temps relativement long. Le GPU utilise le calcul parallèle, c'est-à-dire que les données sans dépendances de calcul sont parallélisées autant que possible et que les gros lots sont divisés en petits lots pour réduire le temps d'attente d'inactivité du GPU pour chaque étape de calcul et améliorer le débit de calcul.

​Afin de réellement compléter la formation de grands modèles, un cadre logiciel à haute efficacité est nécessaire pour rendre la formation hautement efficace sur le plan informatique sur un seul GPU, un seul nœud ou même sur un cluster à grande échelle.

Par conséquent, NVIDIA a développé le cadre de formation Megatron. ​

Megatron utilise des méthodes d'optimisation telles que le parallélisme de modèles et le parallélisme de séquence pour former efficacement de grands modèles Transformer et peut former des modèles avec des milliards de paramètres.

Au niveau de la modélisation algorithmique, Huoshan Translation et Baidu ont principalement exploré des méthodes de modélisation telles que les modèles MoE.

1. Parallélisme de modèle

Le parallélisme de modèle peut être divisé en parallélisme de pipeline et en parallélisme de tenseur.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Le parallélisme des pipelines est un parallélisme inter-couches (partie supérieure de l'image), qui divise différentes couches en différents GPU pour le calcul. La communication dans ce mode ne se produit qu'à la limite de la couche, et le nombre de communications et la quantité de données de communication sont faibles, mais cela introduira un temps d'attente supplémentaire pour l'espace GPU.

Le parallélisme tensoriel est un parallélisme intra-couche (partie inférieure de l'image), qui divise le calcul d'une couche en différents GPU. Ce mode est plus facile à mettre en œuvre, a de meilleurs effets sur les grandes matrices et permet de mieux réaliser un meilleur équilibrage de charge entre les GPU, mais le nombre de communications et la quantité de données sont relativement importants.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Afin d'utiliser pleinement les ressources du GPU, Megatron divise chaque lot d'entraînement en micro-lots plus petits.

Comme il n'y a pas de dépendance de données entre les différents micro-lots, ils peuvent couvrir le temps d'attente de chacun, améliorant ainsi l'utilisation du GPU et améliorant ainsi les performances globales de l'entraînement.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

​Tensor divise le calcul de chaque opérateur sur différents GPU en parallèle Pour une couche matricielle, il existe deux méthodes : le découpage croisé et le découpage vertical.

Comme le montre la figure, Megatron introduit ces deux méthodes de segmentation dans les parties attention et MLP du bloc Transformer.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

En mode parallèle Tensor, les étapes avant et arrière de chaque couche de transformateur nécessitent un total de quatre communications All-reduce. En raison de la grande quantité de communication All-reduce, le parallélisme Tensor est plus adapté à une seule. carte. Pour usage interne.

En combinant le parallélisme de pipeline et le parallélisme de tenseur, Megatron peut étendre la formation d'un modèle de 170 milliards de paramètres sur 32 GPU à la formation d'un modèle réduit de 1 000 milliards de paramètres sur 3072 GPU.

2. Parallélisme de séquence

Le parallélisme tenseur ne divise pas en fait Layer-norm et Dropout, donc ces deux opérateurs sont copiés entre chaque GPU.

Cependant, ces opérations elles-mêmes ne nécessitent pas beaucoup de calculs, mais elles occupent beaucoup de mémoire vidéo active.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

​A cette fin, Megatron a proposé une méthode d'optimisation parallèle de séquence. L'avantage du parallélisme de séquence est qu'il n'augmente pas le volume de communication et peut réduire considérablement l'utilisation de la mémoire. Étant donné que Layer-norm et Dropout sont indépendants le long de la dimension de séquence, ils peuvent être divisés en fonction de la dimension de séquence. ​

Après avoir utilisé le parallélisme de séquence, pour les modèles à très grande échelle, l'utilisation de la mémoire est toujours très importante. Par conséquent, Megatron a introduit la technologie de recalcul d’activation.

L'approche de Megatron consiste à trouver certains opérateurs qui nécessitent peu de calcul mais occupent une grande quantité de mémoire vidéo, tels que Softmax, Dropout et d'autres opérateurs dans Attention. L'activation et le recalcul de ces opérateurs peuvent réduire considérablement la mémoire vidéo et la surcharge de calcul. augmenter.

La combinaison du parallélisme de séquence et du recalcul d'activation sélectif peut réduire l'utilisation de la mémoire vidéo à environ 1/5 de l'original. Par rapport à la solution originale consistant à recalculer directement toutes les activations, la mémoire vidéo n'est que le double et la surcharge de calcul est considérablement réduite à mesure que l'échelle du modèle augmente, la proportion de la surcharge de calcul diminuera progressivement. Au moment où le modèle à l’échelle du billion est atteint, le coût du recalcul ne représente qu’environ 2 % du total.

3. Parallélisme des algorithmes

Le modèle MoE a reçu de plus en plus d'attention dans l'industrie en raison de son concept de conception simple et de sa forte évolutivité.

Le modèle MoE propose l'idée de conception consistant à diviser un grand modèle en plusieurs petits modèles. Chaque échantillon n'a besoin que d'activer une partie du modèle expert pour le calcul, économisant ainsi considérablement les ressources informatiques.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Actuellement, les grands modèles denses les plus couramment utilisés sont BERT, T5 et GPT-3, et le modèle MoE clairsemé le plus couramment utilisé est T5+MoE est en train de devenir une tendance dans la construction de grands modèles.

On peut dire que MoE combine l'idée du calcul parallèle au niveau de la modélisation des algorithmes.

La polyvalence des grands modèles se reflète dans de nombreux aspects. En plus des points que nous connaissons déjà, tels qu'un biais inductif plus faible du mécanisme d'attention, une grande capacité de modèle, de grandes données de modèle, etc. peut également être utilisé dans des tâches Pour optimiser la méthode de modélisation, MoE est un représentant typique.

Pour la traduction des volcans, l'idée de base du MoE est d'échanger la largeur contre la profondeur, car plus le modèle est profond, plus il y a de couches de calcul et plus le temps d'inférence est long.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Par exemple, pour un modèle Transformer avec 4 couches d'Encoder et 4 couches de Decoder, chaque calcul doit passer par le calcul des 8 FFN. S'il s'agit d'un modèle expert mixte, le FFN peut être placé en parallèle, réduisant à terme de moitié le chemin de calcul et donc le temps d'inférence.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Sous le même temps d'inférence, c'est-à-dire lorsque la profondeur du modèle est similaire, car MoE peut augmenter la largeur du modèle, l'effet final de la traduction automatique est également amélioré.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Pour les tâches de traduction multilingues dans 24 langues africaines et en anglais et français, Huoshan Translation a développé un modèle MoE avec 128 couches de Transformers et 24 couches d'experts, qui permet d'obtenir de meilleurs résultats que le modèle traditionnel. effet de traduction des architectures.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

​Mais le « modèle expert » dans Sparse MoE n'est peut-être pas digne de son nom, car pour une phrase, par exemple, les experts passés par chaque Token peuvent être différents.

Huoshan Translation a donc développé Hard Gate MoE, de sorte que les experts prononcés par la phrase soient déterminés par la langue. Cela simplifie la structure du modèle et les résultats expérimentaux montrent également que son effet de traduction est meilleur.

Dans l'exploration parallèle de la modélisation d'algorithmes, Baidu a également adopté le cadre de modèle de diffusion expert hybride dans le grand modèle de génération intermodale amélioré par les connaissances ERNIE-ViLG 2.0. ​

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

​Pourquoi devrions-nous utiliser des modèles experts pour les modèles de diffusion ?

En fait, c'est parce que les exigences de modélisation du modèle sont différentes selon les étapes de génération. Par exemple, dans la phase initiale, le modèle se concentre sur l'apprentissage de la génération d'images sémantiques à partir du bruit gaussien, et dans la phase finale, le modèle se concentre sur la récupération des détails de l'image à partir d'images bruitées. ​

En fait, la première version d'ERNIE 3.0 intégrait l'autoencodage et l'autorégression, qui peuvent combiner les deux méthodes de modélisation sur une représentation sémantique générale pour des tâches de génération et de compréhension spécifiques.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

L'idée de base de l'intégration de l'autoencodage et de l'autorégression est en fait similaire à la méthodologie de modélisation du modèle expert.

Plus précisément, sur la base d'une représentation universelle, une modélisation est effectuée selon que la tâche de compréhension est adaptée à la structure du réseau d'auto-encodage et la tâche de génération est adaptée à la structure du réseau autorégressive. De plus, ce type de modélisation apprend souvent de meilleures représentations générales.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

De plus, dans le modèle ERNIE-UniX2, Baidu combine des tâches de compréhension et de génération multilingues et multimodales en intégrant des paradigmes de pré-formation tels que l'apprentissage contrastif et les modèles linguistiques .Unifié.

​Après avoir entraîné le modèle MoE, le déploiement d'inférence est également un maillon qui attache une grande importance à l'efficacité.

Lors de la sélection d'une solution de déploiement pour l'inférence de modèle à très grande échelle, vous déciderez d'abord si vous souhaitez utiliser l'inférence sur une seule carte ou plusieurs cartes en fonction de l'échelle des paramètres du modèle, de la structure du modèle, de la mémoire GPU et du cadre d'inférence, ainsi que de la compromis entre la précision du modèle et les performances du raisonnement d’inférence. Si la mémoire vidéo est insuffisante, des solutions de compression de modèle ou d'inférence multi-cartes seront envisagées.

L'inférence multi-cartes inclut le parallélisme tenseur, le parallélisme pipeline, le parallélisme expert et d'autres modes. ​

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

L'utilisation de différents modes pour les très grands modèles MoE rencontrera différents défis. Parmi eux, les modèles Tensor parallèle et dense du modèle MoE sont similaires.

Si vous sélectionnez le mode parallèle Expert, les experts de chaque couche MoE seront divisés en différents GPU, ce qui peut entraîner des problèmes d'équilibrage de charge, entraînant l'inactivité d'un grand nombre de GPU, réduisant finalement le débit global. haut. C’est un point important sur lequel se concentrer dans le raisonnement du MoE Doka.

Pour le parallélisme Tensor et le parallélisme Pipeline, en plus de réduire la communication inter-cartes grâce à un réglage fin, une méthode plus directe consiste à augmenter la bande passante inter-cartes. Lorsque l'utilisation du parallélisme Expert pour le modèle MoE entraîne des problèmes d'équilibrage de charge, il peut être analysé et optimisé via le profilage.

La solution d'inférence multi-cartes augmente la surcharge de communication et a un certain impact sur le délai d'inférence du modèle.

2. Fusion

La fusion est une méthode permettant de résoudre les contradictions naturelles rencontrées dans le calcul parallèle et le calcul série sont deux modes de calcul de base. Lors de l'application du calcul parallèle, la difficulté la plus courante est le grand nombre de dépendances série et l'occupation de la mémoire de valeur intermédiaire qui en résulte, la mémoire GPU devient généralement l'un des goulots d'étranglement des performances matérielles pour la formation et l'inférence de grands modèles.

Pour le problème de la dépendance série dans le calcul massif, la méthode la plus importante consiste à raccourcir le chemin du filet, c'est-à-dire à réduire le processus de séjour intermédiaire. Plus précisément, la fusion d'opérateurs est utilisée pour fusionner des opérateurs avec des dépendances séquentielles afin de réduire l'utilisation de la mémoire vidéo.

La fusion des opérateurs n'est pas seulement mise en œuvre au niveau informatique, mais également au niveau de la conception des opérateurs.

1, 1F1B

Pipeline Si les processus avant et arrière sont séparés en parallèle, le problème d'une utilisation excessive de la mémoire vidéo se produira.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Par conséquent, Megatron a proposé un nouveau modèle de parallélisme Pipeline, 1F1B. Chaque GPU exécute les processus avant et arrière de chaque micro-lot de manière alternée pour libérer la mémoire vidéo qu'il occupe le plus tôt possible, réduisant ainsi l'utilisation de la mémoire vidéo.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

1F1B ne peut pas réduire le temps de bulle Afin de réduire davantage le temps de bulle, Megatron a proposé le mode 1F1B entrelacé. C'est-à-dire que chaque GPU était à l'origine responsable du calcul de quatre couches consécutives, mais maintenant il est responsable du calcul de deux couches consécutives, ce qui ne représente que la moitié de celle d'origine, donc le temps de bulle est également devenu la moitié de celui celui d'origine.

2. Kernel Fusion

Lors des calculs GPU, chaque processus de calcul peut être encapsulé dans un noyau GPU et placé sur le GPU pour exécution, et il est séquentiel. Par souci de polyvalence, les bibliothèques d'opérateurs traditionnelles conçoivent les opérateurs pour qu'ils soient très basiques, leur nombre est donc très grand. L'inconvénient est qu'elles occupent beaucoup de mémoire vidéo car elles doivent en outre stocker une grande quantité de représentations cachées intermédiaires. , cela nécessite une bande passante relativement élevée, ce qui peut éventuellement entraîner des retards ou des pertes de performances.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Volcano Translation intègre d'autres opérateurs de multiplication non matriciels basés sur l'interface de multiplication CuBLAS, notamment Softmax, LayerNorm, etc.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

En plus de comparer la fusion des opérateurs généraux, Volcano Translation optimise également la dépendance informatique de certains opérateurs spécifiques tels que Beam Search, qui ne peuvent pas faire bon usage du parallélisme GPU, obtenant ainsi une accélération.

Sur quatre modèles Transformer grand public, la fusion des opérateurs LightSeq a atteint une accélération jusqu'à 8 fois basée sur PyTorch.

3. Simplification

La simplification est un moyen relativement simple et intuitif d'accélérer, de rationaliser les branches du pipeline en détail. Plus précisément, pour une complexité de calcul élevée, la complexité de l'opérateur est simplifiée tout en garantissant les performances, et finalement la quantité de calcul est réduite.

L'inférence sur une seule carte de modèles à très grande échelle implique généralement une compression de modèle.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Les schémas de compression de modèles courants sont la quantification, la distillation et l'élagage. La quantification est l’un des schémas de compression de modèles les plus couramment utilisés dans l’industrie. Bien que le calcul quantitatif utilise une précision moindre, il peut maintenir l’ampleur des paramètres du modèle et, dans certains cas, mieux garantir la précision globale du modèle.

1. Quantification

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Il existe actuellement deux méthodes de quantification, l'une est la quantification post-entraînement et l'autre est la formation prenant en compte la quantification. Ce dernier préserve généralement mieux la précision du modèle que le premier.

Une fois la quantification terminée, des cadres d'accélération d'inférence tels que TensorRT ou FasterTransformer peuvent être utilisés pour accélérer davantage l'inférence de très grands modèles.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

LightSeq utilise une véritable quantification int8 dans la quantification du processus de formation, c'est-à-dire que l'opération de quantification est effectuée avant la multiplication matricielle et l'opération de quantification inverse est effectuée après la multiplication matricielle. Contrairement à la pseudo-quantification du passé, les opérations de quantification et de déquantification sont effectuées avant la multiplication matricielle pour permettre au modèle de s'adapter aux pertes et fluctuations provoquées par la quantification. Ce dernier n’accélère pas les calculs réels, mais peut augmenter le délai ou augmenter l’utilisation de la mémoire. Et la véritable quantification int8 apporte également de bons effets d'accélération dans les applications pratiques.

2. Distillation

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

La deuxième méthode de compression modèle est la distillation. La distillation peut utiliser différentes stratégies pour compresser de très grands modèles pour différents scénarios d'application. Dans certains cas, la distillation peut donner de meilleures capacités de généralisation aux très grands modèles.

3.Élagage

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

La dernière solution de compression du modèle est l'élagage. L'élagage peut être divisé en élagage complet du modèle et élagage en couches partielles. Pour les très grands modèles, il est très important de comprendre les couches clés du modèle. Il est nécessaire d'éviter l'élagage de ces parties qui ont le plus grand impact sur la précision. également applicable aux modèles MoE clairsemés.

4. Industrialisation des grands modèles

La recherche et la mise en œuvre de grands modèles sont devenues une tendance. On s'attend à ce qu'en 2022, il y ait plus de 10 000 articles sur les modèles de langage et les transformateurs à grande échelle. C'est plus que ce que Transformers venait de proposer il y a cinq ans, le temps a été multiplié par 7. De plus, les grands modèles ont également un large éventail d'applications, telles que la génération d'images, les systèmes de recommandation, la traduction automatique, voire les sciences de la vie, la génération de code, etc.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

OpenAI a également publié deux articles en 2020, qui ont montré que les performances d'un modèle sont essentiellement liées à trois facteurs principaux, à savoir la puissance de calcul, la taille de l'ensemble de données et la quantité de paramètres du modèle. bien prédire les performances du modèle.

La méthodologie dindustrialisation des grands modèles est entièrement cachée dans le GPU

Richard Sutton a dit un jour qu'au cours des 70 dernières années de développement de l'IA, une tendance récurrente est qu'une méthode générale capable d'utiliser efficacement les ressources informatiques sera toujours la gagnante finale.

Selon la « loi du gagnant » de Richard Sutton, le deep learning a gagné en polyvalence au cours de la dernière décennie. ​

Mais de nos jours, les défis de la formation de grands modèles sont évidents. Prenons l'exemple de GPT-3. Si vous utilisez la précision mixte d'origine pendant l'entraînement, vous devez enregistrer les paramètres et les gradients pendant l'entraînement ainsi que les principaux paramètres du FP 32. Si vous utilisez l'optimiseur Adam, vous devez également enregistrer. les informations d'impulsion des deux optimiseurs, un total de 2,8 To de mémoire vidéo est finalement nécessaire, ce qui dépasse de loin la capacité de mémoire vidéo d'une seule carte et nécessite plus de 35 A100 pour la transporter.

​L'article de NVIDIA de 2021 « Efficient Large-Scale Language Model Training on GPU Clusters Using Megatron-LM » a dérivé une formule empirique, indiquant qu'un modèle GPT-3 avec un seul paramètre d'itération de 175 milliards nécessite 4,5 100 millions de FLOP de puissance de calcul. Si l'ensemble du cycle de formation comprend 95 000 itérations, 430 ZettaFLOP sont nécessaires. En d’autres termes, il faut un A100 pour s’entraîner pendant 16 000 jours, ce qui est une conclusion quelle que soit l’efficacité des calculs.

En d’autres termes, le simple fait d’accumuler ces trois indicateurs constituerait un énorme gaspillage de ressources à l’ère d’une industrialisation modèle à grande échelle.

DeepMind a déclaré dans l'article de ChinChilla publié en 2022 qu'en fait, les grands modèles tels que GPT-3, OPT et PaLM sont fondamentalement des modèles sous-équipés. Si, sur la base des mêmes ressources informatiques, le nombre de paramètres du modèle est réduit et que davantage d'étapes sont entraînées, l'effet final du modèle sera meilleur. C'est également la philosophie de conception que WeChat suit dans le modèle de langage à grande échelle WeLM.

Les entreprises du secteur commencent fondamentalement à se détourner de l'échelle et à se concentrer plutôt sur les problèmes d'efficacité lors de la mise en œuvre de grands modèles.

Par exemple, du point de vue de l'efficacité globale de l'exécution, presque tous les modèles optimisés par Megatron ont une amélioration du débit de 30 %, et à mesure que la taille du modèle augmente, une utilisation plus élevée du GPU peut être obtenue. Sur le modèle GPT-3 à 175 milliards de paramètres, l'utilisation du GPU peut atteindre 52,8 %. Sur les modèles avec une échelle de paramètres supérieure à 530 milliards, le taux d'utilisation peut atteindre 57 %.

En d’autres termes, selon la « loi du gagnant » de Richard Sutton, l’efficacité deviendra le ton principal d’une industrialisation modèle à grande échelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer