Introduction
Rars est une implémentation de l'algorithme de compression RAR en Rust, créée avec l'aide de modèles de langage LLM (Large Language Model). Cette réalisation est notable, car elle a nécessité seulement 5 semaines de travail, contre les 5 ans estimés pour une telle tâche.
Contexte Technique
Le format RAR a été initialement développé pour DOS et a évolué au fil du temps, avec des fonctionnalités telles que la compression multi-volume et les enregistrements de récupération. Cependant, le code source de RAR n'est pas libre, et son auteur, Eugene Roshal, n'est pas favorable à la piraterie. Pour créer Rars, il a fallu recourir à des sources de code libre et à des méthodes de reverse-engineering.
Les LLM utilisés pour cette tâche étaient OpenAI Codex 5.5 et Claude Opus 4.7. Le processus de création a consisté à documenter les spécifications du format RAR, puis à utiliser les LLM pour générer le code. Cependant, les LLM ont parfois généré du code incorrect ou incomplet, nécessitant des interventions manuelles pour les corriger.
Analyse et Implications
La création de Rars montre les capacités et les limites des LLM dans le développement de logiciels. Les LLM peuvent être très utiles pour générer du code, mais ils nécessitent une supervision et des corrections manuelles pour garantir la qualité et la fiabilité du code. De plus, les LLM peuvent être sensibles aux problèmes de sécurité, tels que la génération de code malveillant.
La sécurité est un aspect important à considérer lors de l'utilisation de LLM pour le développement de logiciels. Les LLM peuvent être vulnérables aux attaques de type « data poisoning », où des données malveillantes sont injectées dans le modèle pour influencer son comportement. Il est donc essentiel de mettre en place des mesures de sécurité pour protéger les LLM et les données qu'ils traitent.
Perspective
La création de Rars ouvre des perspectives intéressantes pour l'utilisation de LLM dans le développement de logiciels. Les LLM pourraient être utilisés pour accélérer le processus de développement, en générant du code de base qui pourrait ensuite être corrigé et amélioré par des développeurs humains. Cependant, il est important de prendre en compte les limites et les risques associés aux LLM, tels que la sécurité et la fiabilité du code généré.