Tokenization des langues tchadiennes

Tokenization
Preprocessing
Author

Abdel-aziz Harane

Published

February 20, 2024

Dans ce guide, je partage avec vous les approches que nous avons adoptĂ©es pour concevoir un tokenizer adaptĂ© Ă  l’arabe tchadien (Shu), une mĂ©thodologie Ă©galement applicable Ă  d’autres langues locales. Nous explorerons ensemble la littĂ©rature existante, les principaux algorithmes de tokenization et je vous expliquerai en dĂ©tail le processus d’implĂ©mentation de notre propre modĂšle.

Note

La crĂ©ation d’un tokenizer est une Ă©tape essentielle lorsqu’on souhaite entraĂźner un modĂšle Ă  partir de zĂ©ro ou affiner (fine-tuning) un modĂšle prĂ©-entraĂźnĂ©.

En effet, les tokenizers gĂ©nĂ©riques ne prennent pas en compte les spĂ©cificitĂ©s linguistiques et morphologiques de nos langues, ce qui rend nĂ©cessaire le dĂ©veloppement d’un nouveau tokenizer. Sans cette adaptation, les modĂšles existants peinent Ă  capturer les spĂ©cificitĂ©s linguistiques et morphologiques des langues locales.

Dans le cadre de ce projet, nous avons appliquĂ© trois algorithmes de tokenization distincts, chacun prĂ©sentant ses avantages et ses limites. Cette dĂ©marche nous a permis d’explorer en profondeur le fonctionnement de la tokenization et d’analyser son impact sur l’arabe tchadien (Shu).

Nous dĂ©butons par une prĂ©sentation de la tokenization : sa dĂ©finition, son importance et son mode de fonctionnement. Ensuite, nous passerons en revue les trois mĂ©thodes que nous avons expĂ©rimentĂ©es, afin d’en comprendre les spĂ©cificitĂ©s et d’évaluer leur pertinence pour notre projet.

Sans plus tarder, commençons. On file !

Qu’est-ce qu’un tokenizer ?

Pour qu’un ordinateur puisse lire et comprendre une phrase, il est d’abord nĂ©cessaire de la transformer en une reprĂ©sentation numĂ©rique, un processus appelĂ© vectorisation (rendre les mots en vecteur numĂ©rique). En effet, une machine ne comprend pas les mots sous leur forme brute. Pour elle, une phrase n’est qu’une succession de caractĂšres sans signification intrinsĂšque. Or, les ordinateurs ne traitent que des suites de 0 et de 1.

C’est ici qu’intervient la tokenization : un mĂ©canisme qui permet de dĂ©couper une phrase en unitĂ©s plus petites – appelĂ©es tokens – afin de les rendre comprĂ©hensibles pour un modĂšle d’intelligence artificielle (IA). Une fois ce dĂ©coupage effectuĂ©, chaque token est ensuite converti en une valeur numĂ©rique, une Ă©tape connue sous le nom d’encodage.

Ainsi, une phrase est représentée sous forme de vecteurs, comme par exemple : [129, 103, 192] .

Par exemple, la phrase :

"Zahra indaha khalag asfar" Peut ĂȘtre transformĂ©e en :

"Zahra"
"indaha"
"khalag"
"asfar"

Ces morceaux sont appelĂ©s des tokens, et l’ordinateur peut maintenant travailler avec eux plus facilement.

Les 3 algorithmes les plus utilisĂ©s 👇🏿

C’est quoi BPE ?

Lors qu’on veut apprendre Ă  Ă©crire un texte en utilisant le moins de place possible ou plutĂŽt que de stocker chaque mot individuellement, nous pouvons donc repĂ©rer les lettres ou les groupes de lettres les plus frĂ©quents et les remplacer par un symbole plus court.

- Phrase originale : Zahra indaha khalag asfar
- Découpage en tokens : ["Za", "hra", "inda", "ha", "kha", "lag", "as", "far"]
- AprĂšs BPE : ["#A", "inda", "ha", "#B"] (oĂč #A et #B sont des unitĂ©s apprises)

C’est quoi Sentencepiece ?

Imagineons que nous avons une phrase et voulons la dĂ©couper, mais nous ne voulons pas seulement couper aux espaces (car certaines langues n’ont pas d’espaces clairs entre les mots comme le Chinois). Sentencepiece apprend Ă  dĂ©couper la phrase en morceaux de maniĂšre plus flexible.

- Phrase originale : Al-naadum da gaa'id fil-beet
- Tokenization avec SentencePiece : [Al-", "naadum", "da", "gaa'id", "fil-", "beet]
- SentencePiece peut aussi découper : ["Al", "na", "adum", "da", "gaa'", "id", "fil", "beet"] pour plus de flexibilité.

C’est quoi WordPiece ?

WordPiece est une mĂ©thode de tokenization qui segmente une phrase en sous-unitĂ©s en privilĂ©giant les sĂ©quences les plus frĂ©quemment rencontrĂ©es dans les donnĂ©es d’entraĂźnement. Elle est notamment utilisĂ©e dans des modĂšles comme BERT et GPT.

- Phrase originale : "Zahra indaha khalag asfar"
- Tokenization avec WordPiece : **["Zah", "##ra", "inda", "##ha", "khal", "##ag", "as", "##far"]**

Les langues tchadiennes et la tokenization

Les langues tchadiennes, comme le Toupouri, Mundang et le Sara, prĂ©sentent des dĂ©fis en tokenization. L’arabe tchadien, par exemple, utilise une Ă©criture attachĂ©e et des mots qui peuvent ĂȘtre trĂšs longs lorsqu’ils contiennent des prĂ©fixes et suffixes. Il est donc essentiel de tester plusieurs algorithmes et si besoin d’en crĂ©er un autre (ce que nous avons fait pour l’arabe tchadien et Sara).

Cela permet de garder des unités fréquentes tout en fragmentant les mots moins courants.

Ces trois mĂ©thodes nous ont permit de mieux adapter la tokenization en crĂ©ant notre propre tokenizer sur le vocabulaire de shu. Cette approche pourrais ĂȘtre Ă©tendue Ă  d’autres langues locales telles que : Sara, Kanembou, Mundang, Zaghawa, 
 C’est une premiĂšre expĂ©rimentation et nous l’adapterons Ă  nos autres langues locales.

Pour garantir une meilleure prise en charge, il est essentiel de tester plusieurs algorithmes et, si nĂ©cessaire, d’en dĂ©velopper un nouveau. Cette premiĂšre expĂ©rimentation sera progressivement affinĂ©e et adaptĂ©e Ă  d’autres langues tchadiennes.

Si ce guide vous a Ă©tĂ© utile, n’hĂ©sitez pas Ă  le partager avec vos pairs ! 🚀