apoAI : de retour dans le Language Lounge ...
Salut apoAI ! Quoi de neuf ?
Bonjour Ishmael ! Ça va merci, je n’ai pas à me plaindre. Et toi ?
Au top ! As-tu réussi à lire Moby Dick ?
À vrai dire, je n’ai pas encore eu le temps. J’ai une montagne de choses à faire.
Tiens, tu tombes bien. Est-ce que je peux te poser à nouveau quelques questions ?
Vas-y !
Je fais de la post-édition de traductions automatiques (MTPE) depuis quelques temps déjà et j’ai parfois l’impression de passer en mode robot et de perdre un peu mon sens critique. Avec le temps, j’ai un peu peur de perdre mes compétences en traduction classique et de devenir dépendant de la machine.
Mmh. En fait, je ne suis pas le mieux placé pour répondre à cette question.
Pourquoi ?
Je n’ai aucune expérience en post-édition ! Et j’en serais bien incapable.
Mais oui, c'est logique.
Mais tu ne vas pas me croire : je peux quand même t’apporter une réponse.
Comment ça ? Caches-tu un petit post-éditeur en coulisse ?
Ça non, mais j’ai lu un livre à ce sujet.
Ah petit cachottier ! Dis-moi tout : comment faire pour éviter de « m’abrutir » en faisant de la post-édition ?
Voici quelques conseils :
- Commence d’abord par lire le texte en entier. Tu peux ainsi comprendre de quoi il s’agit et garder le contexte en tête quand tu post-édites – chose que je suis incapable de faire !
- Fais des pauses régulières : c’est plus reposant que de travailler pendant de longues heures. (Je crois que la méthode a un rapport avec la tomate, mais je n’ai pas tout compris.)
- Pour terminer, relis à nouveau le texte dans son intégralité, idéalement le jour suivant.
- Alterner entre différents types de tâches (post-édition, traduction, relecture, correction, etc.) peut aussi être bénéfique.
Merci beaucoup, apoAI ! Tes conseils sont très utiles, en particulier la technique de la tomate.
Puis-je te demander autre chose ? Je suis curieux de savoir quelles sont les erreurs que tu corriges le plus dans ma traduction automatique.
Il y en a plusieurs : il manque parfois des mots ou alors tu rajoutes du contenu. Les phrases contiennent des erreurs grammaticales ; tu utilises les mauvaises prépositions, tu oublies les articles, ou il y a des erreurs de terminologie. Tu traduis aussi des mots qui ne devraient pas être traduits, comme les noms propres. Et parfois …
D’accord merci, tu peux t’arrêter là ! Mon disque dur chauffe déjà ! Je comprends bien que mon potentiel de développement personnel est immense.
… et tu traduis parfois un concept par un terme puis un autre plus loin dans le texte. Comment cela se fait-il ?
Un instant, laisse-moi reprendre mes esprits. Ça y est. Alors, il se trouve que me souvenir de ce que j’ai déjà traduit me demande beaucoup d’efforts, c.-à-d. une grande puissance de calcul.
Comment ça ? Tu as pourtant assez d’espace de stockage ?
Absolument, pour les bases de données et ce genre de choses. Nous parlons ici du traitement de données générées pendant le processus de traduction, que l’algorithme doit prendre en compte lors du calcul de chaque nouveau mot. Y parvenir dans l’ensemble d’un document est au-dessus de mes forces. Le simple fait de pouvoir tenir compte, lors de la traduction d’un mot, des mots qui précèdent dans la même phrase était déjà un progrès considérable pour la traduction automatique !
C'est passionnant ! On a donc dû t’implanter une mémoire à court terme en quelque sorte ?
On peut dire ça oui.
Comment cela fonctionne dans le détail ?
On fait référence ici au passage des réseaux neuronaux traditionnels aux réseaux neuronaux récurrents (RNN, à rétroaction). Dans les réseaux neuronaux traditionnels, chaque entrée est traitée individuellement pour produire une sortie. Pour les données séquentielles, par exemple pour le langage, il est très avantageux de pouvoir intégrer les sorties des calculs précédents lors du traitement. C'est l’intégration de rétroactions et d’unités de mémoire spéciales appelées « couches cachées » qui rend ce processus possible. Je peux ainsi avoir une certaine notion de temps et du contexte de la phrase.
Pourrais-tu me donner un exemple ?
Avec plaisir ! Prenons la phrase suivante :
Nora isst schon früh morgens Chips.
Si je me reposais sur un réseau neuronal traditionnel et que je devais traduire cette phrase en français, je me poserais la question suivante : le mot « Chips» désigne-t-il ici des chips de pommes de terre ou des puces informatiques ? Mon réseau neuronal récurrent me permet de saisir le contexte et de remarquer la présence du mot « isst » (mange) avant. Grâce à cette information, il y a de fortes chances ici que je doive traduire le mot « Chips » par le terme français « chips ».
Pourquoi fais-tu parfois fausse route avec la terminologie ?
Personne n’est parfait... Tu viens toi-même de me le démontrer ! As-tu un exemple ?
Quand tu utilises par exemple « distributeur de billets » au lieu de « Bancomat ». Ou « tétine » au lieu de « lolette ».
En fait, cela dépend des données avec lesquelles je me suis entraîné. Le fait que j’emploie une variante française au lieu du terme suisse ne devrait pas se produire, car mon moteur s’est entraîné pour la Suisse. C’est quelque chose de plus courant avec DeepL. Si nécessaire, on peut aussi me mettre à disposition une base terminologique spécifique à un domaine ou aux préférences du client. Dans ce cas, je sais que les termes de la base de données sont prioritaires.
Et pour quelle raison tes traductions sont-elles parfois incomplètes ? Es-tu parfois distrait ?
Non pas du tout. En réalité, il m’arrive de temps en temps de lire un livre au travail. (Je suis le roi du multitâches. Psst !)
Je construis mes phrases mot par mot et pour chaque mot, il existe toujours plusieurs options. Chacune d’entre elles a une probabilité d’être correcte. Je sélectionne le mot qui a la plus grande probabilité d’être correct, puis je passe au mot suivant et je recommence. Il arrive parfois que l’option qui affiche la plus forte probabilité soit celle de la fin de la phrase. C'est la raison pour laquelle je m’arrête et je mets un point.
Mais si tu traduis mot par mot, comment peux-tu laisser de côté certains mots ?
Ce n’est pas ce que tu penses. Comme je l’ai déjà expliqué, je construis la phrase mot par mot. Mais cela ne signifie pas que j’utilise dans la langue cible un mot pour chaque mot de la phrase source. On ne peut pas traduire correctement un texte de cette manière. Et comme je m’entraîne avec de vraies traductions, je sais qu’il est peu probable qu’une telle traduction mot à mot soit correcte.
Je suis perdu !
Examinons la dimension technique de la chose : la traduction d'une phrase est toujours le fruit de mon encodeur et de mon décodeur :
- L’encodeur produit une représentation (vecteur numérique) pour chaque mot source dans le contexte de la phrase. (Souviens-toi : nous avons évoqué la dernière fois les coordonnées dans le champ de significations, qui permettent de classer chacun des mots.)
- Le décodeur construit alors progressivement la phrase de sortie, mot par mot, de gauche à droite.
- Il peut s’appuyer sur les données de l’encodeur (mots de la langue source) qu’il considère utiles.
- Il n’y a aucune garantie qu'il ait pris en compte toutes les données de l’encodeur lorsqu’il parvient à la fin de la phrase.
Ton encodeur ne peut-il pas vérifier si le décodeur a bien pris en compte l’intégralité du contenu lors de la traduction
Non, il se contente de faire son travail et de passer la main au décodeur. Ils ne communiquent pas entre eux – je ne sais pas trop pourquoi. Peut-être qu’ils ne s’apprécient pas ! En tout cas, ni l’un ni l’autre n’a la moindre idée de ce que veut dire la phrase. Pour eux, tout est question de chiffres et de probabilité. Une chose est sûre : une probabilité de 1 n’arrive quasiment jamais. En pratique, il est très rare que je puisse garantir l’exactitude de ma traduction. C'est à toi de l’évaluer au cours de la post-édition.
Pas de problème, je prends volontiers le relais. C'est moi qui ai maintenant la tête qui tourne ! Il faut que je digère d’abord ces chiffres. Mais je te remercie apoAI et je te dis à bientôt !
Au plaisir !