Personnaliser le modèle NMT

L'API Cloud Translation – Advanced vous permet de personnaliser le modèle de traduction automatique neuronale (NMT) de Google sans écrire de code. Cela signifie que vous pouvez adapter un modèle personnalisé à votre contenu spécifique à un domaine et produire des traductions plus précises que celles du modèle NMT Google par défaut.

Le modèle NMT couvre un grand nombre de combinaisons linguistiques et est très efficace avec du texte polyvalent. Un modèle personnalisé se démarque par son efficacité pour le vocabulaire de niche spécifique. La personnalisation du modèle NMT vous permet d'obtenir la traduction appropriée pour la terminologie spécifique à un domaine qui vous intéresse.

Si vous gérez un service de reporting spécialisé qui a l'opportunité de s'étendre à de nouveaux pays. Ces marchés nécessitent que vos contenus urgents soient traduits correctement en temps réel, y compris la terminologie spécialisée. Plutôt que de recruter un employé bilingue ou de faire appel à un traducteur spécialisé, tous deux très onéreux, vous pouvez créer et affiner un modèle personnalisé pour effectuer le travail en temps réel à un coût bien inférieur.

Préparation des données

Pour entraîner un modèle personnalisé, vous devez fournir des paires de segments correspondants dans les langues source et cible. Il s'agit de paires de mots ou d'expressions qui signifient la même chose dans la langue à partir de laquelle vous voulez traduire et dans celle vers laquelle vous voulez traduire. Plus vos paires de segments sont proches, plus votre modèle est performant.

Lorsque vous constituez l'ensemble de données de paires de segments correspondants, commencez par le cas d'utilisation :

  • Quel résultat souhaitez-vous obtenir ?

  • Quels types de segments sont importants à traduire correctement pour atteindre ce résultat ? Le modèle NMT peut-il le faire immédiatement ?

  • L'être humain est-il en mesure de traduire ces segments clés de manière satisfaisante ? Si la tâche de traduction est suffisamment ambiguë pour qu'une personne parlant couramment les deux langues ait du mal à faire un travail satisfaisant, le modèle NMT peut être aussi performant qu'un modèle personnalisé.

  • Quels types d'exemples reflètent le mieux le type et la plage de paires de segments que votre système devra traduire ?

Trouver des données correspondant à la complexité du domaine

Vous entraînez un modèle de traduction personnalisé, car vous avez besoin d'un modèle adapté à un domaine linguistique particulier. Assurez-vous que les paires de segments couvrent l'ensemble du vocabulaire, de la syntaxe et des particularités grammaticales de votre secteur ou domaine d'activité. Trouvez des documents qui regroupent les syntaxes types qui pourraient apparaître dans les tâches de traduction que vous souhaitez accomplir. Assurez-vous que la signification des phrases sources et cibles est la plus proche possible. Bien sûr, il arrive que le vocabulaire ou la syntaxe ne correspondent pas parfaitement dans les deux langues. Cependant, essayez de capturer toute la diversité de la sémantique que vous vous attendez à utiliser, si possible. Vous vous appuyez sur un modèle qui fonctionne déjà assez bien pour de la traduction polyvalente. L'entraînement à partir de vos exemples constitue la dernière étape permettant aux modèles personnalisés d'être performants pour votre cas d'utilisation en particulier. Par conséquent, assurez-vous que ces exemples sont pertinents et représentatifs de ce que vous attendez.

Capturer la diversité de l'espace linguistique

On pourrait supposer que la façon dont les gens écrivent sur un sujet spécifique est suffisamment uniforme pour qu'un petit nombre d'échantillons de texte traduits par un petit nombre de traducteurs suffise à entraîner un modèle qui fonctionne bien pour tous les écrits sur ce sujet. Or, nous sommes tous différents, et nous apportons chacun notre propre personnalité aux mots que nous écrivons. Un ensemble de données d'entraînement comprenant des paires de segments provenant d'un grand nombre d'auteurs et de traducteurs est plus susceptible de vous fournir un modèle utile pour la traduction des écrits d'une autre organisation. En outre, en tenant compte de la diversité des segments en termes de longueur et de structure, un ensemble de données dont tous les segments ont la même taille ou partagent une structure grammaticale similaire ne permettra pas de créer un modèle personnalisé convenable qui capture toutes les possibilités.

Collecter des données

Après avoir défini les données dont vous avez besoin, vous devez trouver un moyen de les collecter. Vous pouvez commencer par prendre en compte toutes les données que votre organisation recueille. Vous constaterez peut-être que vous collectez déjà les données dont vous avez besoin pour entraîner un modèle de traduction. Dans le cas contraire, vous pouvez les obtenir manuellement ou confier cette étape à un fournisseur tiers.

Maintenir une intervention humaine

Dans la mesure du possible, assurez-vous qu'une personne bilingue valide la correspondance des paires de segments, ainsi que la compréhension et la justesse des traductions. Une erreur courante, comme un mauvais alignement des lignes de la feuille de calcul des données d'entraînement, peut générer des traductions qui ne veulent rien dire. Des données de haute qualité constituent l'élément le plus important que vous puissiez fournir à l'API Cloud Translation – Advanced pour obtenir un modèle utilisable par votre entreprise.

Gardez à l'esprit l'équité lors du développement de paires de segments

Les produits de ML de Google reposent sur un principe fondamental : le machine learning centré sur l'humain, une approche qui met en avant les pratiques d'IA responsables, y compris l'équité. L'objectif de l'équité dans le ML est de comprendre et d'empêcher le traitement injuste ou préjudiciable des personnes en lien avec l'origine ethnique, les revenus, l'orientation sexuelle, la religion, le genre et d'autres caractéristiques historiquement associées à la discrimination et à la marginalisation, lorsque et où elles se manifestent dans les systèmes algorithmiques ou la prise de décision assistée par un algorithme. Pour en savoir plus, consultez notre guide et les remarques sur l'équité suivantes :

  • Vérifiez la réglementation qui s'applique dans votre région et dans les lieux de diffusion de votre application. Renseignez-vous également sur les recherches et les produits existants dans votre domaine afin de connaître les normes applicables ainsi que les éventuels problèmes culturels. En savoir plus

  • Déterminez si votre cas d'utilisation ou votre produit peuvent avoir un impact négatif sur les opportunités, économiques ou autres, importantes dans la vie d'un individu. Si c'est le cas, en savoir plus

  • Si vous manquez de données pour un sous-groupe particulier, assurez-vous que vos données sont réparties de façon représentative entre les ensembles d'entraînement et de test en effectuant une répartition manuelle.

  • Lors des tests, réfléchissez attentivement à toute la complexité de votre domaine, et jaugez son potentiel d'iniquité et de biais. Identifiez les situations qui auraient un impact négatif sur les utilisateurs si elles survenaient en période de production, et évaluez-les en priorité. En savoir plus

  • Si votre cas d'utilisation justifie de prendre en compte le principe d'équité, découvrez comment utiliser votre modèle de manière à minimiser les biais ou les résultats défavorables. En savoir plus

  • Plus de consignes sur les données pour l'équité

Nettoyer les données désordonnées

Il est facile de commettre des erreurs lors du prétraitement des données. Certaines d'entre elles peuvent perturber considérablement un modèle personnalisé. Recherchez en particulier les problèmes de données suivants, qu’il est souvent possible de corriger :

  • Supprimez les segments sources en double, surtout lorsqu’ils possèdent des traductions cibles différentes. L'API Cloud Translation – Advanced n'utilise que le premier exemple vu et supprime toutes les autres paires au moment de l'importation. En supprimant les doublons, vous vous assurez que l'API Cloud Translation – Advanced utilise votre traduction préférée.
  • Alignez les segments sources sur les segments cibles appropriés.
  • Assurez-vous que les segments correspondent à la langue spécifiée. Par exemple, un ensemble de données en chinois ne doit contenir que des segments rédigés en chinois.
  • Pour les segments cibles incluant plusieurs langues, vérifiez que les mots non traduits sont intentionnellement non traduits, tels que les noms de produits ou d'organisations. Les segments cibles qui incluent par erreur des mots non traduits ajoutent du bruit à vos données d'entraînement, ce qui peut être à l'origine d'un modèle de qualité inférieure.
  • Corrigez les segments comportant des erreurs typographiques ou grammaticales afin que votre modèle n'apprenne pas ces erreurs.
  • Supprimez le contenu intraduisible, tel que les balises d'espace réservé et les balises HTML. Le contenu intraduisible peut entraîner des erreurs de ponctuation.
  • N'incluez pas de paires de segments qui remplacent les entités générales par des noms spécifiques. Par exemple, évitez un exemple qui traduit un terme général tel que président par le nom d'un président spécifique tel que JFK. Cela pourrait apprendre au modèle à remplacer toutes les instances de président par JFK. Supprimez ces paires de segments ou remplacez les noms spécifiques par des termes génériques.
  • Supprimez les segments en double dans les ensembles d'entraînement et de test (consultez Division de l'ensemble de données pour savoir comment diviser votre ensemble de données en trois sous-ensembles).
  • Divisez les segments longs en plusieurs paires de segments. L'entraînement sur un ensemble de données où de nombreux éléments contiennent plus de 50 jetons (mots) produit des modèles de qualité inférieure. Dans la mesure du possible, scindez les éléments en phrases individuelles.
  • Utilisez une casse cohérente. La casse affecte la façon dont un modèle apprend, par exemple à distinguer un titre d'un corps de texte.
  • Supprimez les balises TMX lors de l'importation de données à partir d'un fichier TSV. Dans certains cas, vous pouvez exporter votre mémoire de traduction existante vers un fichier TSV, qui peut inclure des balises TMX. Toutefois, l'API Cloud Translation Advanced ne supprime les balises d'unité de traduction que lorsque vous importez un fichier TMX ; cette opération n'est pas effectuée pour les fichiers TSV.

Traitement des données

L'API Cloud Translation – Advanced arrête d'analyser votre fichier d'entrée de données lorsque :

  • le format n'est pas valide ;
  • une paire de segments est excessivement longue (10 Mo) ;
  • Le fichier utilise un encodage autre que UTF-8.

L'API Cloud Translation – Advanced ignore certaines erreurs pour les problèmes qu'elle ne peut pas détecter. Par exemple :

  • Un élément <tu> d'un fichier TMX qui ne spécifie pas la langue source ni la langue cible.
  • Une des paires de segments en entrée est vide.

Pour la répartition automatique des données, l'API Cloud Translation Advanced effectue un traitement supplémentaire (voir Division de l'ensemble de données) :

  • Une fois l'ensemble de données importé, les paires de segments avec des segments sources identiques sont supprimées.

  • Il répartit de manière aléatoire les données en trois ensembles, avec un ratio de 8:1:1 (entraînement:validation:test) avant l'entraînement.

Division de l'ensemble de données

Votre ensemble de données de paires de segments est divisé en trois sous-ensembles, pour l'entraînement, la validation et les tests :

  • Ensemble d'entraînement
    La plupart de vos données doivent figurer dans l'ensemble d'entraînement. Il s'agit des données auxquelles votre modèle accède pendant l'entraînement. Elles sont utilisées pour apprendre les paramètres du modèle et calculer la pondération des connexions entre les nœuds du réseau de neurones.

  • Ensemble de validation
    L'ensemble de validation, parfois appelé ensemble dev, est également utilisé lors du processus d'entraînement. Lors de l'entraînement d'un modèle, le framework utilise l'ensemble d'entraînement pour entraîner une série de modèles candidats. Il utilise ensuite les performances des modèles sur l'ensemble de validation pour choisir le meilleur modèle généré, puis pour ajuster les hyperparamètres de ce modèle, qui sont des variables spécifiant sa structure. Si vous utilisiez l'ensemble d'entraînement pour ajuster les hyperparamètres, le modèle pourrait finir par trop se focaliser sur vos données d'entraînement. L'utilisation d'un ensemble de données relativement nouveau pour affiner la structure du modèle permet une meilleure généralisation du modèle à d'autres données.

  • Ensemble de test
    L'ensemble de test n'est pas du tout impliqué dans le processus d'entraînement. Une fois l'entraînement du modèle terminé, l'ensemble de test est utilisé comme un nouveau défi pour le modèle. Ses performances sur l'ensemble de test sont supposées vous fournir une idée plutôt fidèle de son comportement sur des données réelles.

Si vous ne spécifiez pas manuellement comment votre ensemble de données est réparti entre ces fonctions, comme décrit dans Préparer les données d'entraînement, et si votre ensemble de données contient moins de 100 000 paires de segments, l'API Cloud Translation - Advanced utilise automatiquement 80 % de vos documents de contenu pour l'entraînement, 10 % pour la validation et 10 % pour les tests. Si vos données sont plus volumineuses, vous devez spécifier explicitement comment les répartir. La répartition manuelle vous offre plus de contrôle sur le processus. Elle vous permet non seulement de déterminer les pourcentages de répartition, mais aussi de spécifier les ensembles dans lesquels inclure des paires de segments spécifiques.

Importer des données

Une fois que vous avez déterminé si vous souhaitez procéder à la répartition manuelle ou automatique de vos données, deux options s'offrent à vous pour les ajouter :

  • Vous pouvez importer les données sous forme d'un fichier TSV (valeurs séparées par des tabulations) contenant des segments sources et cibles (une paire de segments par ligne).

  • Vous pouvez importer les données sous forme d'un fichier TMX. Il s'agit d'un format standard permettant de fournir des paires de segments aux outils de modélisation de traduction automatique (consultez Préparer des données d'entraînement pour en savoir plus sur le format TMX). Si un fichier TMX contient des balises XML non valides, l'API Cloud Translation – Advanced les ignore. Si le fichier TMX contient des erreurs XML ou TMX (par exemple, s'il manque une balise de fin ou un élément <tmx>), l'API Cloud Translation – Advanced interrompt le traitement et renvoie une erreur si elle ignore plus de 1 024 éléments non valides.

Évaluation préliminaire de votre modèle personnalisé

Une fois le modèle entraîné, vous recevez un résumé de ses performances. Cliquez sur l'onglet Entraînement pour afficher une analyse détaillée. Les scores BLEU de votre modèle personnalisé et du modèle NMT standard de Google s'affichent dans l'onglet Entraînement, ainsi que le gain de performance du score BLEU obtenu en utilisant le mode personnalisé.

Plus le score BLEU est élevé, plus les traductions que votre modèle peut fournir pour des segments semblables à vos données d'entraînement sont de qualité. Les scores compris entre 30 et 40 sont considérés comme bons. Pour obtenir une explication détaillée des scores BLEU, consultez La métrique de qualité de traduction BLEU.

Il existe d'autres métriques d'évaluation qui sont souvent plus fiables que le score BLEU. Pour en savoir plus sur ces options d'évaluation, consultez Évaluer les modèles de traduction.

Débogage

Le débogage d'un modèle personnalisé consiste davantage à déboguer les données que le modèle proprement dit. Si votre modèle ne traduit pas comme vous le souhaitez, vérifiez vos données pour voir où elles peuvent être améliorées.

Tests

Même si votre score BLEU semble correct, il est judicieux de vérifier par vous-même le modèle afin de vous assurer que ses performances correspondent à vos attentes. Si les données d'entraînement et de test proviennent d'un même ensemble qui est incorrect, le score peut être excellent alors que la traduction ne veut rien dire. Ajoutez quelques exemples en tant qu'entrées dans l'onglet Prédiction et comparez les résultats du modèle personnalisé avec ceux du modèle NMT de base de Google. Il se peut que votre modèle présente les mêmes prédictions que le modèle de base, en particulier pour les segments courts ou si votre ensemble d'entraînement est petit, car le modèle de base est déjà assez performant pour une grande variété de cas d'utilisation. Dans ce cas, essayez des segments plus longs ou plus complexes. Cependant, si tous vos segments présentent des prédictions identiques au modèle de base, cela peut indiquer un problème au niveau des données.

Si vous craignez particulièrement que votre modèle commette une erreur (par exemple, une erreur de traduction qui pourrait être coûteuse en termes d'argent ou de réputation), assurez-vous que votre ensemble ou procédure de test couvre ce cas de manière adéquate pour que vous vous sentiez en sécurité en utilisant votre modèle dans les tâches quotidiennes.

Étapes suivantes