Les organisations de secteurs tels que la vente au détail, la banque, la finance, la santé, la fabrication et les prêts doivent souvent gérer de grandes quantités de documents texte non structurés provenant de diverses sources, telles que des actualités, des blogs, des critiques de produits, des canaux de support client et des médias sociaux. Ces documents contiennent des informations critiques qui sont essentielles pour prendre des décisions commerciales importantes. Au fur et à mesure qu'une organisation grandit, il devient difficile d'extraire des informations critiques de ces documents. Avec l'avancement des techniques de traitement du langage naturel (NLP) et d'apprentissage automatique (ML), nous pouvons découvrir rapidement et avec une grande précision des informations et des liens précieux à partir de ces documents textuels, aidant ainsi les entreprises à prendre des décisions commerciales de qualité dans les délais. Les services de PNL entièrement gérés ont également accéléré l'adoption de la PNL. Amazon comprendre est un service entièrement géré qui vous permet de créer des modèles NLP personnalisés spécifiques à vos besoins, sans avoir besoin d'une expertise en ML.
Dans cet article, nous montrons comment utiliser des techniques ML de pointe pour résoudre cinq tâches NLP différentes : résumé de documents, classification de texte, réponse aux questions, reconnaissance d'entités nommées et extraction de relations. Pour chacune de ces tâches PNL, nous montrons comment utiliser Amazon Sage Maker pour effectuer les actions suivantes :
- Déployer et exécuter l'inférence sur un modèle pré-entraîné
- Affiner le modèle pré-formé sur un nouvel ensemble de données personnalisé
- Améliorez encore les performances de réglage fin avec Réglage automatique du modèle SageMaker
- Évaluer les performances du modèle sur les données de test retenues avec diverses métriques d'évaluation
Bien que nous couvrons cinq tâches NLP spécifiques dans cet article, vous pouvez utiliser cette solution comme modèle pour généraliser le réglage fin des modèles pré-formés avec votre propre ensemble de données, puis exécuter l'optimisation des hyperparamètres pour améliorer la précision.
Modèles de solution JumpStart
Amazon SageMaker JumpStart fournit des solutions de bout en bout en un clic pour de nombreux cas d'utilisation courants du ML. Explorez les cas d'utilisation suivants pour plus d'informations sur les modèles de solution disponibles :
Les modèles de solution JumpStart couvrent une variété de cas d'utilisation, sous chacun desquels plusieurs modèles de solution différents sont proposés (cette solution Document Understanding est sous le cas d'utilisation "Extraire et analyser les données des documents").
Choisissez le modèle de solution qui correspond le mieux à votre cas d'utilisation sur la page d'accueil JumpStart. Pour plus d'informations sur les solutions spécifiques à chaque cas d'utilisation et sur la façon de lancer une solution JumpStart, voir Modèles de solutions.
Vue d'ensemble de la solution
L'image suivante montre comment vous pouvez utiliser cette solution avec les composants SageMaker. Les tâches de formation SageMaker sont utilisées pour former les différents modèles NLP, et les points de terminaison SageMaker sont utilisés pour déployer les modèles à chaque étape. Nous utilisons Service de stockage simple Amazon (Amazon S3) aux côtés de SageMaker pour stocker les données de formation et les artefacts de modèle, et Amazon Cloud Watch pour consigner les sorties de formation et de point de terminaison.
Ouvrir la solution Document Understanding
Accédez à la solution Document Understanding dans JumpStart.
Nous pouvons maintenant examiner de plus près certains des actifs inclus dans cette solution, à commencer par le bloc-notes de démonstration.
Carnet de démonstration
Vous pouvez utiliser le bloc-notes de démonstration pour envoyer des exemples de données aux points de terminaison de modèle déjà déployés pour les tâches de synthèse de document et de réponse aux questions. Le bloc-notes de démonstration vous permet d'acquérir rapidement une expérience pratique en interrogeant les exemples de données.
Après avoir lancé la solution Document Understanding, ouvrez le bloc-notes de démonstration en choisissant Utiliser le point de terminaison dans Notebook.
Plongeons plus profondément dans chacun des cinq ordinateurs portables principaux de cette solution.
Pré-requis
In Amazon SageMakerStudio, assurez-vous d'utiliser le PyTorch 1.10 Python 3.8 CPU Optimized
image/kernel pour ouvrir les cahiers. La formation utilise cinq instances ml.g4dn.2xlarge, vous devez donc augmenter un demande d'augmentation de limite de service si votre compte nécessite des limites plus élevées pour ce type.
Classification de texte
La classification de texte fait référence à la classification d'une phrase d'entrée dans l'une des étiquettes de classe de l'ensemble de données d'apprentissage. Ce bloc-notes montre comment utiliser le API JumpStart pour la classification de texte.
Déployer et exécuter l'inférence sur le modèle pré-entraîné
Le modèle de classification de texte que nous avons choisi d'utiliser repose sur une incorporation de texte (tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2
) modèle de Hub TensorFlow, qui est pré-formé sur les ensembles de données Wikipedia et BookCorpus.
Le modèle disponible pour le déploiement est créé en attachant une couche de classification binaire à la sortie du modèle d'intégration de texte, puis en affinant l'ensemble du modèle sur le SST-2 ensemble de données, qui comprend des critiques de films positives et négatives.
Pour exécuter l'inférence sur ce modèle, nous devons d'abord télécharger le conteneur d'inférence (deploy_image_uri
), script d'inférence (deploy_source_uri
) et modèle pré-entraîné (base_model_uri
). Nous les transmettons ensuite en tant que paramètres pour instancier un objet modèle SageMaker, que nous pouvons ensuite déployer :
Le code suivant montre nos réponses :
Affiner le modèle pré-formé sur un jeu de données personnalisé
Nous venons de parcourir l'exécution de l'inférence sur un modèle BERT pré-formé, qui a été affiné sur le SST-2
jeu de données.
Ensuite, nous expliquons comment affiner un modèle sur un jeu de données personnalisé avec n'importe quel nombre de classes. L'ensemble de données que nous utilisons pour le réglage fin est toujours le SST-2
base de données. Vous pouvez remplacer cet ensemble de données par n'importe quel ensemble de données qui vous intéresse.
Nous récupérons le conteneur Docker d'entraînement, la source de l'algorithme d'entraînement et le modèle pré-entraîné :
Pour les hyperparamètres spécifiques à l'algorithme, nous commençons par récupérer un dictionnaire Python des hyperparamètres d'apprentissage que l'algorithme accepte avec leurs valeurs par défaut. Vous pouvez les remplacer par des valeurs personnalisées, comme illustré dans le code suivant :
Le jeu de données (SST-2
) est divisé en ensembles d'apprentissage, de validation et de test, où l'ensemble d'apprentissage est utilisé pour ajuster le modèle, l'ensemble de validation est utilisé pour calculer les métriques d'évaluation qui peuvent être utilisées pour HPO, et l'ensemble de test est utilisé comme données retenues pour évaluer les performances du modèle. Ensuite, l'ensemble de données d'entraînement et de validation est chargé sur Amazon S3 et utilisé pour lancer la tâche d'entraînement de réglage fin :
Une fois la tâche de réglage fin terminée, nous déployons le modèle, exécutons l'inférence sur l'ensemble de données de test retenu et calculons les métriques d'évaluation. Comme il s'agit d'une tâche de classification binaire, nous utilisons le score de précision ainsi que le Score F1 comme paramètres d'évaluation. Une valeur plus élevée indique de meilleures performances. La capture d'écran suivante montre nos résultats.
Améliorez encore les performances de réglage fin avec le réglage automatique du modèle SageMaker
Dans cette étape, nous montrons comment vous pouvez encore améliorer les performances du modèle en affinant le modèle avec le réglage automatique du modèle SageMaker. Le réglage automatique du modèle, également appelé optimisation des hyperparamètres (HPO), trouve la meilleure version d'un modèle en exécutant plusieurs tâches d'entraînement sur votre jeu de données avec une plage d'hyperparamètres que vous spécifiez. Il choisit ensuite les valeurs d'hyperparamètres qui se traduisent par un modèle qui fonctionne le mieux, tel que mesuré par une métrique que vous choisissez, sur l'ensemble de données de validation.
Tout d'abord, nous définissons l'objectif comme le score de précision sur les données de validation (val_accuracy
) et défini des métriques pour la tâche de réglage en spécifiant le nom de la métrique objective et une expression régulière (regex). L'expression régulière est utilisée pour faire correspondre la sortie du journal de l'algorithme et capturer les valeurs numériques des métriques. Ensuite, nous spécifions des plages d'hyperparamètres pour sélectionner les meilleures valeurs d'hyperparamètres. Nous fixons le nombre total de travaux de réglage à six et distribuons ces travaux sur trois différents Cloud de calcul élastique Amazon (Amazon EC2) pour exécuter des tâches de réglage parallèles. Voir le code suivant :
Nous transmettons ces valeurs pour instancier un objet SageMaker Estimator, similaire à ce que nous avons fait à l'étape précédente de réglage fin. Au lieu d'appeler le fit
fonction de la Estimator
objet, nous passons le Estimator
object in en tant que paramètre de HyperparameterTuner constructeur et appeler le fit
fonction de celui-ci pour lancer des travaux de réglage :
Une fois les tâches de réglage terminées, nous déployons le modèle qui donne le meilleur score de métrique d'évaluation sur l'ensemble de données de validation, effectuons l'inférence sur le même ensemble de données de test d'exclusion que nous avons fait dans la section précédente et calculons les métriques d'évaluation.
Les résultats montrent que le modèle sélectionné par le réglage automatique du modèle surpasse de manière significative le modèle affiné dans la section précédente sur un jeu de données de test retenu.
Reconnaissance des entités nommées
La reconnaissance d'entités nommées (NER) est le processus de détection et de classification d'entités nommées dans des catégories prédéfinies, telles que les noms de personnes, d'organisations, de lieux et de quantités. Il existe de nombreux cas d'utilisation réels pour NER, tels que les moteurs de recommandation, la catégorisation et l'attribution des tickets d'assistance client au bon service, l'extraction d'informations essentielles des rapports des patients dans le domaine de la santé et la classification du contenu des actualités et des blogs.
Déployer et exécuter l'inférence sur le modèle pré-entraîné
Nous déployons le Fr_core_web_md modèle de la SpaCy bibliothèque. spaCy est une bibliothèque NLP open source qui peut être utilisée pour diverses tâches et possède des méthodes intégrées pour NER. Nous utilisons un AWS PyTorch Deep Learning Container (DLC) avec un mode script et installons la bibliothèque spaCy en tant que dépendance au-dessus du conteneur.
Ensuite, un point d'entrée pour le script (argument entry_point.py
) est spécifié, contenant tout le code pour télécharger et charger le En_core_web_md
modéliser et effectuer une inférence sur les données envoyées au point de terminaison. Enfin, nous devons encore fournir model_data
comme modèle pré-entraîné pour l'inférence. Parce que les pré-formés En_core_web_md
modèle est téléchargé à la volée, ce qui est spécifié dans le script d'entrée, nous fournissons un fichier d'archive vide. Une fois le point de terminaison déployé, vous pouvez appeler le point de terminaison directement à partir du bloc-notes à l'aide des SDK SageMaker Python. Predictor
. Voir le code suivant:
Les données d'entrée du modèle sont un document textuel. Le modèle d'entité nommée extrait des morceaux de nom et des entités nommées dans le document textuel et les classe en un certain nombre de types différents (tels que des personnes, des lieux et des organisations). L'entrée et la sortie d'exemple sont présentées dans le code suivant. La start_char
le paramètre indique le décalage de caractère pour le début de la plage, et end_char
indique la fin de la plage.
Affiner le modèle pré-formé sur un jeu de données personnalisé
Dans cette étape, nous montrons comment affiner un modèle de langage pré-formé pour NER sur votre propre jeu de données. L'étape de réglage fin met à jour les paramètres du modèle pour capturer les caractéristiques de vos propres données et améliorer la précision. Nous utilisons le WikiANN (PAN-X) ensemble de données pour affiner DistilBERT-base-sans boîtier Modèle de transformateur de Hugging Face.
L'ensemble de données est divisé en ensembles d'entraînement, de validation et de test.
Ensuite, nous spécifions les hyperparamètres du modèle, et utilisons un AWS Hugging Face DLC avec un mode script (argument entry_point
) pour déclencher la tâche de réglage fin :
Une fois la tâche de réglage fin terminée, nous déployons un point de terminaison et interrogeons ce point de terminaison avec les données de test retenues. Pour interroger le point de terminaison, chaque chaîne de texte doit être segmentée en un ou plusieurs jetons et envoyée au modèle de transformateur. Chaque jeton obtient une balise d'entité nommée prédite. Étant donné que chaque chaîne de texte peut être segmentée en un ou plusieurs jetons, nous devons dupliquer la balise d'entité nommée vérité terrain de la chaîne sur tous les jetons qui lui sont associés. Le cahier fourni vous guide à travers les étapes pour y parvenir.
Enfin, nous utilisons les métriques d'évaluation intégrées de Hugging Face suite pour calculer des notes d'évaluation sur les données de test d'attente. Les mesures d'évaluation utilisées sont la précision globale, le rappel global, la F1 globale et l'exactitude. La capture d'écran suivante montre nos résultats.
Améliorez encore les performances de réglage fin avec le réglage automatique du modèle SageMaker
Semblable à la classification de texte, nous montrons comment vous pouvez encore améliorer les performances du modèle en affinant le modèle avec le réglage automatique du modèle SageMaker. Pour exécuter la tâche de réglage, nous devons définir une métrique objective que nous voulons utiliser pour évaluer les performances du modèle sur l'ensemble de données de validation (score F1 dans ce cas), des plages d'hyperparamètres pour sélectionner les meilleures valeurs d'hyperparamètres, ainsi que des configurations de tâche de réglage telles que nombre maximal de tâches de réglage et nombre de tâches parallèles à lancer simultanément :
Une fois les tâches de réglage terminées, nous déployons le modèle qui donne le meilleur score de métrique d'évaluation sur l'ensemble de données de validation, effectuons l'inférence sur le même ensemble de données de test d'exclusion que nous avons fait dans la section précédente et calculons les métriques d'évaluation.
Nous pouvons voir que le modèle avec HPO atteint des performances nettement meilleures sur toutes les métriques.
Question répondant
La réponse aux questions est utile lorsque vous souhaitez interroger une grande quantité de texte pour obtenir des informations spécifiques. Il permet à un utilisateur d'exprimer une question en langage naturel et d'obtenir une réponse immédiate et brève. Les systèmes de réponse aux questions alimentés par NLP peuvent être utilisés dans les moteurs de recherche et les interfaces de conversation téléphonique.
Déployer et exécuter l'inférence sur le modèle pré-entraîné
Notre modèle pré-entraîné est le modèle extractive question answering (EQA) bert-large-un-cased-whole-word-masking-finetuned-squad construit sur un modèle Transformer de Hugging Face. Nous utilisons un DLC AWS PyTorch avec un mode script et installons le transformateurs bibliothèque en tant que dépendance au-dessus du conteneur. Semblable à la tâche NER, nous fournissons un fichier d'archive vide dans l'argument model_data
car le modèle pré-formé est téléchargé à la volée. Une fois le point de terminaison déployé, vous pouvez appeler le point de terminaison directement à partir du bloc-notes à l'aide des SDK SageMaker Python. Predictor
. Voir le code suivant:
Tout ce que nous avons à faire est de construire un objet dictionnaire avec deux clés. context
est le texte à partir duquel nous souhaitons récupérer des informations. question
est la requête en langage naturel qui spécifie les informations que nous souhaitons extraire. Nous appelons predict
sur notre prédicteur, et nous devrions obtenir une réponse du point de terminaison qui contient les réponses les plus probables :
Nous avons la réponse, et nous pouvons imprimer les réponses les plus probables qui ont été extraites du texte précédent. Chaque réponse a un score de confiance utilisé pour le classement (mais ce score ne doit pas être interprété comme une vraie probabilité). En plus de la réponse textuelle, vous obtenez également les index des caractères de début et de fin de la réponse à partir du contexte d'origine :
Maintenant, nous affinons ce modèle avec notre propre ensemble de données personnalisé pour obtenir de meilleurs résultats.
Affiner le modèle pré-formé sur un jeu de données personnalisé
Dans cette étape, nous montrons comment affiner un modèle de langage pré-formé pour l'EQA sur votre propre ensemble de données. L'étape de réglage fin met à jour les paramètres du modèle pour capturer les caractéristiques de vos propres données et améliorer la précision. Nous utilisons le escadron2.0 ensemble de données pour affiner un modèle d'incorporation de texte bert-base-sans boîtier de Visage étreignant. Le modèle disponible pour le réglage fin attache une couche d'extraction de réponse au modèle d'incorporation de texte et initialise les paramètres de la couche à des valeurs aléatoires. L'étape d'affinement affine tous les paramètres du modèle pour minimiser l'erreur de prédiction sur les données d'entrée et renvoie le modèle affiné.
Semblable à la tâche de classification de texte, l'ensemble de données (SQuAD2.0) est divisé en ensemble d'entraînement, de validation et de test.
Ensuite, nous spécifions les hyperparamètres du modèle et utilisons les API JumpStart pour déclencher une tâche de réglage fin :
Une fois la tâche de réglage fin terminée, nous déployons le modèle, exécutons l'inférence sur l'ensemble de données de test retenu et calculons les métriques d'évaluation. Les paramètres d'évaluation utilisés sont le score de correspondance exact moyen et le score F1 moyen. La capture d'écran suivante montre les résultats.
Améliorez encore les performances de réglage fin avec le réglage automatique du modèle SageMaker
Comme dans les sections précédentes, nous utilisons un HyperparameterTuner
objet pour lancer les tâches de réglage :
Une fois les tâches de réglage terminées, nous déployons le modèle qui donne le meilleur score de métrique d'évaluation sur l'ensemble de données de validation, effectuons l'inférence sur le même ensemble de données de test d'exclusion que nous avons fait dans la section précédente et calculons les métriques d'évaluation.
Nous pouvons voir que le modèle avec HPO montre une performance significativement meilleure sur les données de test de retenue.
Extraction de relations
L'extraction de relations consiste à extraire des relations sémantiques du texte, qui se produisent généralement entre deux ou plusieurs entités. L'extraction de relations joue un rôle important dans l'extraction d'informations structurées à partir de sources non structurées telles que du texte brut. Dans ce bloc-notes, nous illustrons deux cas d'utilisation de l'extraction de relations.
Affiner le modèle pré-formé sur un jeu de données personnalisé
Nous utilisons un modèle d'extraction de relations construit sur un Base BERT sans boîtier modèle utilisant des transformateurs Transformateurs de visage étreignant bibliothèque. Le modèle de réglage fin attache une couche de classification linéaire qui prend une paire d'incorporations de jetons générées par le modèle d'incorporation de texte et initialise les paramètres de couche à des valeurs aléatoires. L'étape d'affinement affine tous les paramètres du modèle pour minimiser l'erreur de prédiction sur les données d'entrée et renvoie le modèle affiné.
L'ensemble de données que nous affinons le modèle est SemEval-2010 Tâche 8. Le modèle renvoyé par le réglage fin peut être déployé davantage pour l'inférence.
L'ensemble de données contient des ensembles d'entraînement, de validation et de test.
Nous utilisons le DLC AWS PyTorch avec un mode script du SDK Python SageMaker, où le transformers
bibliothèque est installée en tant que dépendance au-dessus du conteneur. Nous définissons le SageMaker PyTorch
estimateur et un ensemble d'hyperparamètres tels que le modèle pré-formé, le taux d'apprentissage et les nombres d'époques pour effectuer le réglage fin. Le code permettant d'affiner le modèle d'extraction de relations est défini dans le entry_point.py
. Voir le code suivant:
Améliorez encore les performances de réglage fin avec le réglage automatique du modèle SageMaker
Comme dans les sections précédentes, nous utilisons un HyperparameterTuner
objet pour interagir avec les API de réglage d'hyperparamètres SageMaker. Nous pouvons démarrer le travail de réglage des hyperparamètres en appelant le fit
méthode:
Lorsque la tâche de réglage des hyperparamètres est terminée, nous effectuons une inférence et vérifions le score d'évaluation.
Nous pouvons voir que le modèle avec HPO montre de meilleures performances sur les données de test retenues.
Résumé des documents
Le résumé de document ou de texte consiste à condenser de grandes quantités de données textuelles en un sous-ensemble plus petit de phrases significatives qui représentent les informations les plus importantes ou les plus pertinentes du contenu original. Le résumé de document est une technique utile pour distiller des informations importantes à partir de grandes quantités de données textuelles en quelques phrases. Le résumé de texte est utilisé dans de nombreux cas d'utilisation, tels que le traitement de documents et l'extraction d'informations à partir de blogs, d'articles et d'actualités.
Ce bloc-notes illustre le déploiement du modèle de synthèse de document Base T5 du Transformateurs de visage étreignant bibliothèque. Nous testons également les points de terminaison déployés à l'aide d'un article de texte et évaluons les résultats à l'aide de la métrique d'évaluation intégrée Hugging Face. ROUGE.
Semblable aux cahiers de questions-réponses et NER, nous utilisons le PyTorchModel
du SDK Python SageMaker avec un entry_point.py
script pour charger le modèle de base T5 sur un point de terminaison HTTPS. Une fois le point de terminaison déployé avec succès, nous pouvons envoyer un article texte au point de terminaison pour obtenir une réponse de prédiction :
Ensuite, nous évaluons et comparons l'article texte et le résultat du résumé à l'aide de la métrique ROUGE. Trois mesures d'évaluation sont calculées : rougeN
, rougeL
ainsi que rougeLsum
. rougeN
mesure le nombre de correspondances n-grams
entre le texte généré par le modèle (résultat du résumé) et un reference
(Texte de saisie). Les métriques rougeL
ainsi que le rougeLsum
mesurer les séquences de mots correspondantes les plus longues en recherchant les sous-chaînes communes les plus longues dans les résumés générés et de référence. Pour chaque métrique, les intervalles de confiance pour la précision, le rappel et le score F1 sont calculés. Voir le code suivant :
Nettoyer
Les ressources créées pour cette solution peuvent être supprimées à l'aide de la Supprimer toutes les ressources bouton de l'IDE SageMaker Studio. Chaque bloc-notes fournit également une section de nettoyage avec le code pour supprimer les points de terminaison.
Conclusion
Dans cet article, nous avons montré comment utiliser des techniques ML de pointe pour résoudre cinq tâches NLP différentes : résumé de documents, classification de texte, questions et réponses, reconnaissance d'entités nommées et extraction de relations à l'aide de Jumpstart. Commencez dès maintenant avec Jumpstart!
À propos des auteurs
Dr Xin Huang est un scientifique appliqué pour Amazon SageMaker JumpStart et les algorithmes intégrés d'Amazon SageMaker. Il se concentre sur le développement d'algorithmes d'apprentissage automatique évolutifs. Ses intérêts de recherche portent sur le traitement du langage naturel, l'apprentissage en profondeur explicable sur des données tabulaires et l'analyse robuste du clustering spatio-temporel non paramétrique. Il a publié de nombreux articles dans les conférences ACL, ICDM, KDD et Royal Statistical Society: Series A journal.
Vivek Gangasani est architecte principal de solutions d'apprentissage automatique chez Amazon Web Services. Il aide les startups à créer et à opérationnaliser des applications AI/ML. Il se concentre actuellement sur la combinaison de son expérience dans les conteneurs et l'apprentissage automatique pour fournir des solutions sur MLOps, ML Inference et ML low-code. Dans ses temps libres, il aime essayer de nouveaux restaurants et explorer les tendances émergentes en matière d'IA et d'apprentissage en profondeur.
Gérémy Cohen est un architecte de solutions chez AWS, où il aide les clients à créer des solutions cloud de pointe. Dans ses temps libres, il aime faire de courtes promenades sur la plage, explorer la baie avec sa famille, réparer les choses autour de la maison, casser des choses autour de la maison et faire des barbecues.
Neelam Koshiya est un architecte de solutions d'entreprise chez AWS. Son objectif actuel est d'aider les entreprises clientes dans leur parcours d'adoption du cloud pour des résultats commerciaux stratégiques. Dans ses temps libres, elle aime lire et être à l'extérieur.
- Avancé (300)
- AI
- art de l'IA
- générateur d'art ai
- robot IA
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- intelligence artificielle
- certification en intelligence artificielle
- intelligence artificielle en banque
- robot d'intelligence artificielle
- robots d'intelligence artificielle
- logiciel d'intelligence artificielle
- Apprentissage automatique AWS
- blockchain
- conférence blockchain ai
- cognitif
- intelligence artificielle conversationnelle
- crypto conférence ai
- de dall
- l'apprentissage en profondeur
- Spécialiste (400)
- google ai
- machine learning
- Platon
- platon ai
- Intelligence des données Platon
- Jeu de Platon
- PlatonDonnées
- jeu de platogamie
- échelle ai
- syntaxe
- zéphyrnet