CE25 - Sciences et génie du logiciel - Réseaux de communication multi-usages, infrastructures de hautes performances 2021

Apport de l'intelligence artificielle à la conception et au décodage de codes correcteurs d'erreurs – AI4CODE

AI4CODE: L'IA au service de la conception et du décodage des codes correcteurs d'erreurs

Apprendre à construire des codes correcteurs plus robustes et à mieux les décoder pour garantir une transmission et un stockage fiable de nos données numériques.

Contexte, enjeux, et objectifs

Le codage correcteur ou codage de canal est une fonction de la couche physique. C’est la science et l’art d’introduire une forme de redondance contrôlée dans les données que nous transmettons ou stockons, afin de pouvoir détecter et corriger les erreurs ou perturbations qui ne manqueront pas de se produire à la réception ou à la relecture de l'information. C'est donc une brique essentielle à tous nos systèmes de transmission et de stockage numérique. Cela fait maintenant 75 ans que l’on s’intéresse au problème de concevoir des codes correcteurs efficaces, c’est-à-dire simples à encoder, relativement simples à décoder, et surtout qui introduisent le moins de redondance possible pour atteindre la capacité de correction souhaitée. Aujourd’hui, on comprend très bien le problème du point de vue théorique, dans le cas de systèmes « simples », point à point, où la communication se fait en pair à pair. Problème: Les systèmes de communication et de stockage actuels sont complexes ! On ne parle plus de systèmes mais de réseaux de communication, où chacun à quelque chose à dire à tout le monde, en même temps. Le stockage s’est lui aussi dématérialisé, et les applications, le calcul, font progressivement de même. Concevoir des codes permettant l'échange fiable d’information dans des environnements aussi complexes et hétérogènes est un problème très compliqué. Heureusement, on dispose désormais de nouveaux outils très performants et prometteurs pour nous aider, et parmi eux, l’apprentissage profond. Tout comme la vision par ordinateur ou le traitement du langage naturel, codage et décodage de canal présentent la particularité d'opérer dans des espaces discrets de très très grande dimension, à la recherche de quelques points particuliers dans cette immensité. C’est donc tout l’enjeu du projet AI4CODE d’étudier comment et jusqu'à quel point l’apprentissage peut nous aider à découvrir ou développer de nouveaux codes et décodeurs pour tous ces problèmes de codage de canal, anciens et nouveaux, que l’on ne maîtrise pas bien. Le projet AI4CODE réunit 6 équipes de recherche françaises expertes dans la conception, le décodage, l’implémentation matérielle et la standardisation de codes correcteurs d'erreurs, autour de trois défis scientifiques : 1) Apprendre à construire des codes correcteurs plus performants que nos standards actuels 2) Apprendre à mieux décoder, plus vite, avec moins de calculs 3) Apprendre des solutions découvertes par la machine

Comment apprendre à construire de meilleurs codes ?

 

Les recettes de conception « expertes » utilisée jusqu'à présent n’offrent pas suffisamment de garantie sur l’optimalité des codes qu’elles produisent. Généralement, concevoir un bon code correcteur se fait en deux temps : 1) construire un bon ensemble de codes pour le modèle de canal et le décodeur ciblés, et 2) piocher un bon code à la longueur voulue au sein de cet ensemble. Chacune de ces deux étapes implique une recherche dans des espaces de très grande dimension, où l’exploration systématique n’est pas possible. D’où le recours à des méthodes d’optimisation heuristique et des recherches partielles qui offrent peu de garanties sur le fait que les codes obtenus de la sorte soient les meilleurs possibles. Une autre source d’incertitude réside dans le fait que les paramètres utilisés pour guider cette recherche heuristique ne sont, la plupart du temps, que des indicateurs très incomplets de la performance du décodeur. En conséquence, les méthodes de conception « expertes » peinent à produire des codes satisfaisant les exigences de certains problèmes de communication ou stockage numériques, par faute d’heuristique approprié. L’apprentissage machine offre la possibilité d’améliorer l’adéquation entre le code et le décodeur cible, en identifiant et en optimisant des attributs du code qui capturent mieux la performance effective du décodeur que les métriques conventionnelles. L’apprentissage peut également rendre nos méthodes de conception plus efficaces par une exploration plus intelligente et plus rapide de l’espace (gigantesque) des codes possibles.

 

Comment apprendre à mieux décoder ?

 

En théorie, le décodeur optimal qui minimise la probabilité de commettre une erreur de décision est bien connu. Mais son coût de calcul exponentiel fait qu'il est trop compliqué à mettre en œuvre. En pratique, on lui préfère donc des solutions approchées, avec le problème que la performance de ces décodeurs approchés est d’autant plus en retrait de celle du décodeur optimal qu’ils sont simples à implémenter. Toute la question est donc de savoir si l’apprentissage peut nous aider à combler cet écart de performance avec un coût de calcul maîtrisé, par l’exploitation de structures ou stratégies auquel l’humain n'a pas encore pensé. L’objectif est d’arriver à des décodeurs plus intelligents que ceux déjà connus, par la greffe d'une couche d'apprentissage à un algorithme expert, ou bien en remplaçant le décodeur par un modèle d'IA entraîné à corriger.

 

Qu'apprendre de la machine ?

 

Les codes découverts par la machine et les modèles développés vont être analysés pour tâcher d'apprendre de ceux-ci. L’objectif recherché est double : parfaire nos algorithmes experts, mais également en tirer des leçons quant à la meilleure manière d’adapter architectures et bonnes pratiques de l’apprentissage à nos problèmes de codage.

Parmi les résultats les plus marquants du projet, le recours à l'apprentissage machine, sous différentes formes, nous a permis :

- de découvrir une nouvelle façon de moduler les mots de code, permettant de diviser par 1000 le taux d'erreur résiduel après décodage dans un cas d'usage bien spécifique

- de découvrir de nouvelles séquences d'étalement cycliques robustes à la troncature, idéales pour la transmission des paquets courts de l'Internet-des-Objets (IoT), dont nous avons pu prouver qu'il n'en existe pas de meilleures et que nous avons brevetées

- de construire de nouveaux codes polaires (codes utilisés sur le canal de contrôle de la 5G) qui maintiennent de bonnes performances lorsque l'on contraint fortement la capacité de calcul du décodeur

- de surpasser des algorithmes experts de la littérature, en identifiant plus rapidement les bits qui posent problème dans le décodage des codes LDPC (codes utilisés pour la transmission de données en 5G), ce qui donne plus de chances de réussite à une seconde tentative de décodage

- d'entraîner des modèles de décodeurs génériques à reproduire assez précisément la performance du décodeur optimal, ce qui est le premier pas vers la mise au point, à terme, de décodeurs universels, agnostiques au code employé

- d'améliorer, dans le contexte des communications radio avec plusieurs antennes d'émission et réception (WiFi ou 5G par exemple), la démodulation des flux d'information des différents utilisateurs pour se rapprocher de la performance de référence du détecteur optimal, lui-même irréalisable car trop compliqué

 

Nous retirons également quelques grandes leçons de ce projet:

- l'apprentissage machine peut découvrir des solutions ou stratégies qui échappent au regard expert, et cela d'autant plus facilement qu'on le laisse opérer ou chercher par lui-même (apprentissage non-supervisé ou bien par renforcement)

- les modèles de décodeurs génériques de la littérature ne passent pas à l'échelle, il faut revoir les architectures, et aussi prêter davantage d'attention et de soin au choix des données utilisées pour les entraîner

- tirer le meilleur de l'apprentissage profond nécessite d'embrasser pleinement toutes les bonnes pratiques de cette discipline encore très expérimentale

- certaines de ces bonnes pratiques peuvent être source d'inspiration pour le codage de canal

- concernant le problème du décodage, nous n'avons pas réussi à trancher sur la question de savoir s'il vaut mieux augmenter un algorithme expert par une sur-couche IA, ou bien alors le remplacer par un modèle d'IA ; la première option produit des solutions simples, relativement compréhensibles, mais qui peinent à s'affranchir des limitations de l'algorithme d'origine ; la seconde a plus de potentiel, mais conduit à des modèles complexes et difficiles à interpréter

Après quatre ans de recherche sur le sujet, notre conclusion principale est que l'apprentissage profond a encore beaucoup d'avenir pour la recherche sur le codage de canal. S'il n'est pas certain que l'on puisse un jour en faire une solution d'intérêt pratique pour nos récepteurs, les modèles d'IA peuvent être très utiles pour avoir une idée fine de ce qu'il est possible de faire au mieux pour des problèmes de codage, théorie de l'information, ou de traitement du signal compliqués.

 

Concernant l'application de l'IA à la construction de nouveaux codes, il est surprenant de constater que les méthodes d'IA générative restent très largement sous-exploitées alors qu'elles paraissent faites pour ça. Il y a là tout un champ d'étude à défricher compte-tenu des progrès spectaculaires réalisés dans ce domaine depuis trois ans, tout particulièrement sur les modèles de diffusion discrets. Le défi majeur va être de développer des modèles suffisamment "créatifs" pour être en mesure de découvrir des codes très différents de ceux sur lesquels ils ont été entraînés.

 

Nous l'avons souligné dans notre bilan : l'une des conclusions du projet est que les architectures qui ont fait le succès de l'IA en vision par ordinateur (réseaux convolutifs) ou encore en traitement du langage naturel (réseaux récurrents et transformers) ne marchent pas suffisamment bien lorsqu'on les applique telles quelles au décodage des codes correcteurs. Elles ne passent pas à l'échelle : augmenter la taille des modèles et des jeux d'entraînement n'améliore pas la performance. L'architecture qui rendra l'IA indispensable au décodage reste encore à trouver.

 

Le codage de canal repose sur des algorithmes, pour la plupart heuristiques ou approximations de solutions optimales trop compliquées à calculer. AI4CODE a cherché à pallier les déficiences de ces solutions approchées par l'ajout d'un greffon d'apprentissage ou en leur substituant un modèle d'IA. Parfois, ni l'une ni l'autre de ces options n'est satisfaisante. Dans le même temps, les grands modèles de language (LLM) ont fait des progrès spectaculaires. On dispose désormais de modèles experts en raisonnement, résolution de problèmes mathématiques complexes, et programmation. Nous pensons que ces nouveaux outils peuvent radicalement changer la manière de faire de la recherche. C'est pourquoi nous avons déposé un nouveau projet en ce sens à l'AAPG 2026. Ce projet a pour ambition de découvrir de nouveaux algorithmes par de la synthèse de programmes guidée par IA générative (LLM), à la manière du système agentique AlphaEvolve de Google DeepMind. L'avantage de la synthèse de programme est qu'elle produit du code informatique, directement interprétable et vérifiable. Ici, l'IA est utilisé pour guider l'écriture et introduire de la créativité dans le code produit. Nous pensons que cette approche peut favoriser l'émergence rapide de nouvelles idées et solutions dans une discipline comme le codage où l'algorithme occupe un rôle central.

Le projet AI4CODE réunit 6 équipes de recherche françaises expertes dans la conception, le décodage et la standardisation de codes correcteurs d'erreurs. L'objectif est de monter en compétence sur les méthodes d'intelligence artificielle et d'apprentissage automatique, afin d'évaluer les améliorations qu'elles peuvent apporter à la conception des codes (réduction des paramètres, heuristiques plus pertinents, codes plus puissants) ainsi qu'à l'efficacité du décodage (meilleure performance, complexité ou consommation réduite), sur des scénarios d'intérêt pratique pour lesquels notre compréhension théorique n'est que partielle. Il ne s'agit pas ici de substituer un réseau de neurones générique à nos outils et algorithmes, mais plutôt de les compléter judicieusement par des systèmes d'apprentissage ou d'aide à la décision, l'idée étant de pouvoir ensuite analyser les solutions produites par la machine et d'apprendre de celles-ci pour gagner en compréhension et parfaire nos algorithmes.

Coordination du projet

Raphaël Le Bidan (Laboratoire des Sciences et Techniques de l'Information, de la Communication et de la Connaissance)

L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.

Partenariat

LAB-STICC Laboratoire des Sciences et Techniques de l'Information, de la Communication et de la Connaissance
IMS LABORATOIRE D'INTEGRATION DU MATERIAU AU SYSTEME
IRIT Institut de Recherche en Informatique de Toulouse
LETI Laboratoire d'Electronique et de Technologie de l'Information
ETIS Equipes Traitement de l'Information et Systèmes
LAB-STICC Laboratoire des Sciences et Techniques de l'Information, de la Communication et de la Connaissance

Aide de l'ANR 636 668 euros
Début et durée du projet scientifique : octobre 2021 - 48 Mois

Liens utiles

Explorez notre base de projets financés

 

 

L’ANR met à disposition ses jeux de données sur les projets, cliquez ici pour en savoir plus.

Inscrivez-vous à notre newsletter
pour recevoir nos actualités
S'inscrire à notre newsletter