Maison >Périphériques technologiques >IA >Les scientifiques de Google s'expriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Les scientifiques de Google s'expriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

王林
王林avant
2023-04-12 12:25:161855parcourir

Avec le développement de modèles linguistiques à grande échelle, pouvons-nous utiliser ses capacités pour guider les robots afin qu'ils comprennent des instructions complexes et accomplissent des tâches plus avancées ? Et à quels défis serons-nous confrontés dans ce processus ? Récemment, la communauté Zhiyuan a invité le chercheur scientifique de Google, le Dr Xia Fei, à présenter un rapport sur le « Le raisonnement incorporé basé sur le langage et la vision », détaillant le travail de pointe de l'équipe dans ce domaine émergent.

À propos de l'auteur : Xia Fei travaille actuellement comme chercheur scientifique dans l'équipe de robotique de Google Brain. Son principal axe de recherche est l'application des robots à des environnements complexes non structurés. Son travail représentatif comprend GibsonEnv, iGibson, SayCan, etc. Ses recherches ont été rapportées par WIRED, le Washington Post, le New York Times et d'autres médias. Le Dr Xia Fei est diplômé de l'Université de Stanford, où il a étudié auprès de Silvio Savarese et Leonidas Guibas. Il a publié de nombreux articles dans des conférences et revues telles que CVPR, CoRL, IROS, ICRA, Neurips, RA-L, Nature Communications, etc. Son axe de recherche récent consiste à utiliser des modèles de fondation (Foundation Models) dans le processus de prise de décision des agents intelligents. Son équipe a récemment proposé le modèle PaLM-SayCan.

01 Contexte

L'apprentissage automatique pour les robots a fait de grands progrès ces dernières années, mais il reste encore de gros problèmes. L'apprentissage automatique nécessite beaucoup de données pour s'entraîner, mais les données générées par les robots sont très coûteuses et les robots eux-mêmes sont également sujets à des pertes.

Lorsque les humains sont enfants, ils interagissent avec le monde physique par le jeu et apprennent de nombreuses lois physiques. Inspiré par cela, le robot peut-il également interagir avec l’environnement pour obtenir ces informations physiques afin d’accomplir diverses tâches ? L'application de l'apprentissage automatique aux robots repose en grande partie sur des environnements de simulation.

À cet égard, le Dr Xia Fei et ses collègues ont proposé des travaux tels que Gibson Env (Environnement) et iGibson. Le premier se concentre sur la reconstruction de l'environnement visuel, tandis que le second se concentre sur la simulation physique. En effectuant une numérisation et une reconstruction tridimensionnelles du monde réel et en restituant des signaux visuels via des réseaux neuronaux, un environnement de simulation est créé, permettant à divers robots d'effectuer des simulations physiques et d'apprendre le contrôle, des capteurs de temps aux actionneurs. Dans l'environnement iGibson, les robots peuvent apprendre des interactions plus riches avec l'environnement, comme apprendre à utiliser un lave-vaisselle.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Le Dr Xia Fei estime que le travail ci-dessus représente la transformation de l'IA Internet vers l'IA incarnée. Dans le passé, la formation en IA reposait principalement sur des ensembles de données tels que ImageNet et MS COCO, qui étaient des tâches Internet. L'IA incarnée nécessite que la perception et l'action de l'IA forment une boucle fermée - l'IA doit décider de la prochaine action en fonction des résultats perçus. La thèse de doctorat de Xia Fei « Simulation à grande échelle pour la perception incarnée et l'apprentissage des robots » porte sur la simulation de robots à grande échelle pour l'apprentissage, la perception et le raisonnement.

Ces dernières années, les modèles de base se sont développés rapidement dans le domaine de l'intelligence artificielle. Certains chercheurs pensent qu’au lieu de s’appuyer sur l’environnement de simulation, des informations peuvent être extraites du modèle de base pour aider le robot à prendre des décisions. Le Dr Xia Fei a appelé cette nouvelle direction « Modèle de base pour la prise de décision » et lui et son équipe ont proposé des travaux tels que PaLM-SayCan.

02 PaLM-SayCan : Laissez le modèle de langage guider le robot

1 Pourquoi est-il difficile pour les robots de gérer des tâches complexes et à longue portée ?

L'équipe PaLM-SayCan compte un total de 45 auteurs. Il s'agit d'un projet collaboratif entre l'équipe Google Robotics et Everyday Robots. Le but est d'explorer l'utilisation de l'apprentissage automatique pour changer le domaine de la robotique. , et laissez les robots fournir des données pour améliorer les capacités d'apprentissage automatique. La recherche se concentre sur deux problématiques : les environnements complexes non structurés et rendre les robots plus utiles dans la vie quotidienne.

Bien que les gens disposent déjà d'assistants personnels comme Siri ou Alexa, une telle présence n'existe pas dans le domaine de la robotique. Le Dr Xia a donné cet exemple : Lorsqu'une boisson est renversée, nous voulons expliquer la situation au robot et lui demander de l'aide. Ou si vous êtes fatigué après l'exercice, demandez-lui de vous fournir des boissons et des collations. La recherche espère que les robots pourront comprendre et effectuer ces tâches.

La difficulté actuelle est qu'il est encore difficile pour les robots d'effectuer des tâches à long terme ou à longue distance, et qu'ils sont toujours incapables d'effectuer des tâches qui nécessitent une planification complexe, du bon sens et un raisonnement. pli. Le premier est le manque d'une bonne interface d'interaction utilisateur dans le domaine des robots. Lorsque les robots traditionnels effectuent des tâches Pick&Place, ils utilisent généralement des méthodes de conditionnement par objectif ou de conditionnement à chaud. Le conditionnement des objectifs doit indiquer au robot quel est l'objectif et laisser le robot effectuer la tâche de changer les conditions initiales en conditions de l'objectif. Cela nécessite d'abord de démontrer au robot à quoi ressembleront les conditions de la tâche terminée.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

 Et le conditionnement à chaud utilise le codage à chaud, et toutes les tâches que le robot peut effectuer (comme 100 tâches) sont numérotées de 0 à 99. Chaque fois qu'il doit être exécuté, un numéro est fourni au robot et il sait quelle tâche accomplir. Cependant, le problème avec la condition one-hot est que l'utilisateur doit se souvenir de l'encodage correspondant à chaque tâche, et l'encodage one-hot n'obtient pas les informations de dépendance entre les tâches (comme terminer la séquence d'encodage de tâche correspondant à un objectif). ).

En conséquence, les robots actuels ne peuvent effectuer que des tâches à courte portée, généralement saisir et placer, et le robot lui-même est statique plutôt que mobile. De plus, l'environnement se limite également à des scènes telles que des laboratoires, souvent sans humains.

2. Modèle de langage pour robots : Comment lui faire « parler » le langage du robot ?

Afin de résoudre ces problèmes, l'équipe a pensé à utiliser un modèle de base. Les modèles linguistiques peuvent remplacer le conditionnement des objectifs et décrire les tâches de manière claire et sans ambiguïté à travers le langage. Dans le même temps, le langage contient également des informations de dépendance entre les étapes de la tâche, telles que la première étape, la deuxième étape, etc. sur la recette, pour faciliter l'apprentissage du robot. En outre, le langage peut également être utilisé pour définir des tâches à long terme et résoudre les limites des méthodes d’apprentissage par imitation.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

L'utilisation de grands modèles sur des robots peut rencontrer certains défis. Le plus important est de déterminer le langage orienté vers la sortie du robot. Le grand modèle est formé sur la base du langage naturel humain, et les tâches qu'il génère peuvent ne pas être réalisables pour les robots. Et le modèle de langage n’a pas été formé sur les données du robot, il ne connaît donc pas l’étendue des capacités du robot. Le deuxième est le problème de mise à la terre. Le grand modèle n’a pas personnellement expérimenté le monde physique et manque d’informations incarnées. Le troisième est la sécurité et l’interprétabilité du robot lui-même sous la direction de grands modèles. Les biais dans les modèles linguistiques peuvent être amplifiés par leur association avec des systèmes physiques, entraînant des conséquences réelles.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Il existe un exemple de crédibilité : lorsqu'un utilisateur humain communique avec le modèle LaMDA de Google, l'utilisateur demande au modèle « île préférée », et le modèle répond Crète, Grèce, et peut également répondre. Trouvez quelques raisons. Mais ce résultat n'est pas crédible, car le résultat que devrait donner l'IA est "Je ne sais pas quelle île je préfère, car je ne suis jamais allé sur aucune île". Le problème avec le modèle de langage est qu'il n'a pas interagi avec le monde réel et ne produit que la phrase suivante la plus probable sur la base de règles statistiques.

Si des modèles de langage sont utilisés sur des robots, différents modèles donneront des résultats différents, dont certains ne sont pas utiles pour conduire le robot à effectuer des tâches. Par exemple, si un utilisateur demande au robot de « nettoyer une boisson renversée », GPT-3 pourrait dire : « Vous pouvez utiliser un aspirateur ». Ce résultat n’est pas tout à fait exact car les aspirateurs ne peuvent pas nettoyer les liquides.

S'il s'agit d'un modèle LaMDA, LaMDA peut dire "Voulez-vous que je vous aide à trouver un nettoyeur ?" Cette réponse est normale, mais d'aucune utilité pratique car LaMDA affine le matériel de dialogue Son objectif. La fonction est de prolonger la conversation autant que possible, et non d’aider à accomplir la tâche. S'il s'agit d'un modèle FLAN, il répondra « Désolé, je ne le pensais pas ». Il ne comprend pas l'intention de l'utilisateur : s'agit-il d'une conversation ? Vous devez encore résoudre un problème ? Par conséquent, l’utilisation de grands modèles de langage sur des robots pose une série de problèmes.

PaLM-SayCan s'efforce de résoudre ces défis. La première consiste à permettre au grand modèle de parler le langage du robot grâce au Few-shot Prompting (apprentissage en quelques coups). Par exemple, construisez des tâches telles que « amener le café dans le placard », « donne-moi une orange », etc., et donnez les étapes correspondantes (telles que 1-5 et 1-3). L'utilisateur donne alors une instruction au modèle : "Mettez une pomme sur la table". Après avoir reçu les invites de l'étape précédente, le modèle trouvera et combinera lui-même les étapes de la tâche appropriée et générera un plan pour terminer la tâche étape par étape.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Il convient de noter qu'il existe deux principaux modes d'interaction dans les grands modèles : L'une est l'interface générative, qui génère le jeton suivant en fonction de l'entrée, l'autre est la notation ; Formule (Scoring Interface), calcule la fonction de vraisemblance pour un jeton donné. PaLM-SayCan utilise une méthode de notation, qui rend le modèle de langage plus stable et plus facile à produire les résultats souhaités. Lors de la tâche consistant à placer une pomme, le modèle note différentes étapes et sélectionne le résultat approprié.

3. Combler le fossé entre le modèle de langage et le monde réel : laissez le robot explorer les possibilités de l'environnement

Il y a un autre problème qui doit être résolu : le modèle de langage ne ne connaît pas la situation actuelle du robot lors de la génération des étapes de tâche. Ce qui peut être fait. S’il n’y a pas de pomme devant le robot, celui-ci ne peut pas terminer la tâche consistant à placer la pomme. Par conséquent, cela nécessite que le modèle de langage sache quelles tâches le robot peut effectuer dans l’environnement et l’état actuels. Un nouveau concept doit être introduit ici, appelé Robotic Affordances (affordances robot) , qui est également au cœur de ce travail.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Lesaffordances traduites en chinois sont appeléesaffordances. C'est un concept proposé par le psychologue américain James J. Gibson vers 1977. est défini comme les tâches qu'un agent peut effectuer dans un environnement dans son état actuel représente ses moyens. L'affordance peut être obtenue grâce à l'apprentissage supervisé, mais cela nécessite une grande quantité de données et d'étiquetage.

À cet égard, l'équipe a adopté une méthode d'apprentissage par renforcement et a utilisé la fonction de valeur de Policy pour approximer les moyens financiers. Par exemple, entraînez un robot à saisir diverses choses dans l'environnement. Après l'entraînement, laissez le robot explorer la pièce lorsqu'il voit un objet devant lui, la fonction de valeur de ramasser l'objet deviendra très élevée, remplaçant ainsi l'objet. articles disponibles.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

En combinant les moyens financiers et les modèles de langage, nous obtenons l'algorithme PaLM-SayCan. Comme le montre la figure ci-dessus, le côté gauche est le modèle de langage, qui note les tâches que le robot peut effectuer selon les instructions données par l'utilisateur et calcule la probabilité que l'exécution des sous-tâches aide à terminer la tâche globale. Le côté droit est la fonction de valeur, qui représente la probabilité de terminer chaque tâche dans l’état actuel. Le produit des deux représente la probabilité que le robot termine avec succès une sous-tâche qui contribue à la tâche globale. Dans l'exemple d'Apple, il n'y a pas de pomme devant le robot dans l'état actuel. Pour accomplir cette tâche, la première chose à faire est de trouver la pomme, donc le score d'accessibilité pour trouver la pomme est relativement élevé, et le score d'accessibilité pour trouver la pomme est donc relativement élevé. le score de saisie de la pomme est faible. Après avoir trouvé la pomme, le score d'accessibilité pour saisir la pomme augmente et la tâche consistant à saisir la pomme est effectuée. Ce processus est répété jusqu'à ce que la tâche globale soit terminée.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot


03 Plus de travail sur l'intelligence incarnée : Améliorez les capacités de raisonnement du modèle et utilisez les commentaires environnementaux pour former une boucle fermée

1.Chaîne de pensée : Comprendre le bon sens complexe

En plus de PaLM-SayCan, le Dr Xia et ses collègues ont également réalisé d'autres travaux connexes. En termes d'invite, l'équipe a proposé une chaîne de réflexion (qui peut être comprise comme des idées de résolution de problèmes) pour donner au modèle de langage plus de capacités de raisonnement.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Le mode Invite standard consiste à concevoir un modèle de question et à donner la réponse. Le modèle génère des réponses lors de l'inférence, mais parfois les réponses données par le modèle sont fausses. Par conséquent, l’objectif de Chain of Thought Prompting est de fournir une explication au modèle tout en posant le problème, ce qui peut améliorer considérablement les résultats du modèle et même dépasser les niveaux humains dans certaines tâches.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Le modèle est sujet à des erreurs lors du traitement des phrases négatives. Par exemple, un utilisateur humain a demandé "Donnez-moi un fruit, mais pas une pomme". Les modèles ont tendance à fournir une pomme car il y a des pommes à la fois dans la question et dans les options exécutables. À l’aide de l’invite de chaîne de pensée, certaines explications peuvent être fournies. Par exemple, le modèle afficherait "L'utilisateur veut un fruit, mais pas une pomme. Une banane est un fruit, pas une pomme. Je peux donner une banane à l'utilisateur."

L'incitation à la chaîne de pensée peut également résoudre des exigences négatives plus subtiles. Par exemple, un utilisateur exprime une allergie à la caféine et demande au robot de lui apporter à boire. Les allergies sont une autre forme subtile de négation. En utilisant des méthodes traditionnelles, le robot pourrait prendre une boisson contenant de la caféine (sans comprendre la négation que représentent les allergies). L'invite de chaîne de pensée peut expliquer les allergies, etc. et améliorer l'effet de raisonnement.

2. Monologue intérieur : Corriger les erreurs et revenir à la bonne piste d'exécution

La combinaison de grands modèles pour la prise de décision des robots et l'interaction environnementale est également une direction de recherche importante. L'équipe a proposé le travail d'Inner Monologue, qui vise à permettre au modèle de langage de revoir les décisions passées en fonction des changements dans l'environnement et de se remettre des mauvaises instructions ou des accidents causés par l'environnement. Par exemple, lorsque les humains rentrent chez eux et constatent que la clé sélectionnée ne peut pas ouvrir la porte, ils choisissent d'essayer une autre clé ou de changer le sens de rotation. Cela incarne la correction des erreurs et la mise à jour de nouvelles actions en fonction des retours de l'environnement. Inner Monologue fonctionne de cette manière. Par exemple, si le cola tombe pendant que le robot attrape un cola, les tâches suivantes ne peuvent pas être accomplies. Inner Monologue est nécessaire pour détecter si la tâche est terminée avec succès, intégrer les commentaires dans le processus de prise de décision et prendre de nouvelles décisions en fonction de cela. la décision de rétroaction. Comme le montre la figure, le travail du monologue intérieur comprend une description de scène active et un détecteur de réussite de tâche. Lorsque les humains donnent des instructions, le modèle peut exécuter les instructions et activer des descriptions de scénarios pour aider le robot à prendre des décisions. Le processus de formation utilise toujours la méthode Few-shot Prompt, afin de pouvoir tirer des conclusions à partir d'un exemple. Par exemple, lorsque le robot reçoit l’ordre de prendre un verre, il demandera à l’humain s’il doit prendre un Coca ou un soda.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Un autre cas est le raisonnement d'informations historiques par des modèles linguistiques. Dans de nombreux cas, les humains changeront d'avis après avoir donné un ordre, ou demanderont au robot d'accomplir la « tâche juste » après avoir modifié les instructions. plusieurs fois. Ici, la « tâche juste » n'est pas spécifiée, ce qui oblige le modèle à revenir en arrière dans l'histoire pour voir quelles étaient les tâches précédentes. En plus de l'anglais, Inner Monologue est actuellement disponible en chinois et dans d'autres langues. Après des expériences dans d’autres domaines, l’équipe a découvert que cette méthode de rétroaction environnementale peut accomplir certaines tâches de planification très complexes et en boucle fermée.

04 Q&ALes scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Q : Le grand modèle de langage de PaLM-SayCan est-il formé à partir de zéro ? Ou utilisez simplement le modèle.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

A : Le grand modèle de prédiction n'a pas besoin d'être affiné, il contient déjà de nombreuses informations décisionnelles. Par exemple, vous pouvez utiliser GPT-3 avec 175 milliards de paramètres, ou PaLM, qui contient déjà suffisamment d'informations sur la planification et la séquence de mission.

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Q : Lorsqu'il travaille sur Inner Monologue, l'agent prendra-t-il également l'initiative de poser des questions ? Comment cela a-t-il été absorbé ?

A : Nous utilisons le modèle de langage et la méthode Prompt. Lorsque le robot termine une tâche, deux options "et demander" et "et continuer" apparaîtront. Le fait de poser une question ou de continuer dépend de l’existence ou non d’une ambiguïté dans la sémantique contextuelle.

Q : Comment le robot sait-il où se trouve un article (comme des chips dans le tiroir) ? Si les capacités des robots augmentent progressivement à l’avenir, l’espace de recherche sera-t-il trop grand lors de l’exploration ?

A : La connaissance par le robot de l'emplacement de stockage des articles est actuellement codée en dur et ne constitue pas un processus automatique. Mais le grand modèle de langage contient également certaines connaissances sémantiques, comme l’emplacement des éléments. Cette connaissance sémantique peut réduire l'espace de recherche. Dans le même temps, vous pouvez également explorer en fonction de la probabilité de trouver des objets. Actuellement, l'équipe de Xia Fei a publié un nouveau travail pour résoudre ce problème. L'idée principale est d'établir une représentation de scène indexée en langage naturel. Site de référence nlmap-saycan.github.io

Les scientifiques de Google sexpriment personnellement : comment mettre en œuvre le raisonnement incarné ? Laissez le grand modèle « parler » le langage du robot

Q : De plus, l'apprentissage par renforcement hiérarchique qui a émergé ces dernières années a-t-il une certaine inspiration pour la planification de tâches complexes ?

PaLM-SayCan est similaire à l'apprentissage par renforcement hiérarchique. Il a des compétences de niveau inférieur et une planification des tâches de niveau supérieur. On peut dire qu'il s'agit d'une méthode hiérarchique, mais ce n'est pas un renforcement hiérarchique. apprentissage. Personnellement, je préfère cette approche en plusieurs niveaux, car lors de la planification des tâches, vous n'êtes pas nécessairement obligé de suivre chaque étape détaillée, ce qui serait une perte de temps. La planification de mission peut être formée à l'aide de données Internet massives, mais les compétences sous-jacentes nécessitent des données physiques, elles doivent donc interagir avec l'environnement et apprendre.

Q : PaLM-SayCan est actuellement utilisé dans les robots. Y a-t-il des problèmes fondamentaux qui restent non résolus ? S'il peut être utilisé en remplacement de la nounou quotidienne, combien de temps faudra-t-il pour le réaliser ?

R : Il reste encore des problèmes fondamentaux qui n'ont pas été résolus, et ce ne sont pas de simples problèmes d'ingénierie. En termes de principes, le contrôle du mouvement et la préhension sous-jacents du robot constituent un défi de taille. Nous ne parvenons toujours pas à atteindre un succès de préhension à 100 %, ce qui constitue un gros problème.

Bien sûr, il est déjà en mesure d'apporter une certaine valeur aux personnes à mobilité réduite. Cependant, s'il s'agit véritablement d'un produit commercial, ce n'est pas encore possible. Le taux de réussite des missions est d'environ 90 %, ce qui ne répond pas aux exigences commerciales.

Q : Le taux de réussite de la planification du robot est-il limité par l'ensemble des données d'entraînement ?

A : La capacité de planification du robot est limitée par le corpus de formation. Il est facile de retrouver certaines instructions dans le corpus, comme « jeter les poubelles ». Cependant, il n'y a presque pas de corpus tel que « déplacer la griffe à deux doigts du robot de 10 centimètres vers la droite » dans le corpus, car les gens ne laisseront pas de telles informations sur Internet. Cela pose le problème de l’information granulaire. Actuellement, limités par le corpus, les robots ne peuvent effectuer que des tâches grossières.

D'un autre côté, la planification fine elle-même ne devrait pas être réalisée par un modèle de langage, car elle contient trop d'informations physiques et peut ne pas être décrite dans un langage humain. Une idée est que des opérations plus fines peuvent être mises en œuvre en utilisant l'apprentissage par imitation (voir les travaux BC-Z) ou la génération de code (voir les derniers travaux de l'équipe https://code-as-policies.github.io/). Le rôle le plus important du grand modèle est de servir d'interface interactive à l'utilisateur, d'interpréter les instructions données par les humains au robot et de les décomposer en étapes que la machine peut exécuter.

De plus, le langage peut effectuer une planification sémantique de haut niveau sans avoir besoin d'une planification plus physique. Si vous souhaitez réaliser des tâches de planification fines, vous devez toujours vous fier à l'apprentissage par imitation ou à l'apprentissage par renforcement.

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