Golden Pairs for Smarter Code Repair: How AuPair Revolutionizes In-Context Learning
L’apprentissage in-context (ICL) avec les grands modèles linguistiques (LLM) repose sur la capacité du modèle à s’adapter à une tâche en se basant sur des exemples fournis dans le prompt. Cependant, le choix des exemples joue un rôle crucial dans la performance. Une approche courante consiste à sélectionner aléatoirement des exemples ou à les tirer d’un jeu de données, mais cette méthode ne garantit pas l’efficacité des exemples. Le papier AuPair : Golden Example Pairs for Code Repair de Google DeepMind propose une solution systématique pour identifier les paires d’exemples les plus pertinentes, notamment dans le domaine de la réparation de code. L’approche d’AuPair se déroule en deux phases. La première consiste à générer un grand ensemble de paires d’exemples, chacune composée d’un code erroné et de sa correction. Cette phase repose sur des appels itératifs au LLM pour produire des corrections valides, ce qui permet d’élargir la base de données d’exemples. La deuxième phase, appelée extraction des AuPairs, vise à sélectionner les paires les plus efficaces. Pour cela, une matrice de qualité est construite en évaluant, pour chaque paire candidate, sa capacité à aider le LLM à corriger des problèmes de code testés sur un jeu de validation. Chaque cellule de la matrice indique le score de performance d’une paire sur un problème spécifique. Le processus de sélection suit un algorithme glouton : la paire ayant le meilleur score moyen est choisie, puis son impact est soustrait des scores des autres paires. Cette étape permet d’éviter la redondance et de s’assurer que chaque nouvelle paire apporte une contribution unique, en couvrant des types de problèmes non traités précédemment. Le processus s’arrête quand l’amélioration marginale devient négligeable, produisant ainsi une liste ordonnée de paires « d’or ». Les résultats montrent que AuPair surpasse significativement des méthodes comme le self-reflection ou le best-of-N sampling sur sept jeux de données de programmation, avec des modèles LLM variés. En outre, il atteint des performances équivalentes avec seulement 12 paires d’or contre 32 exemples aléatoires, réduisant ainsi la consommation de calcul de 2 à 3 fois. Une caractéristique remarquable est la généralisation : les paires générées sur CodeForces fonctionnent bien sur des plateformes comme HackerEarth ou AtCoder, ce qui démontre leur robustesse dans un domaine donné. Toutefois, AuPair présente des limites. Il nécessite un coût computationnel élevé pour générer les paires initiales, notamment via des appels répétés au LLM. Il dépend également fortement de métriques d’évaluation fiables, comme les tests unitaires, ce qui peut limiter son application dans des domaines où ces métriques sont absentes ou difficiles à définir. Enfin, les expérimentations ont porté sur des problèmes structurés de concours, pas sur des bases de code réelles complexes. En somme, AuPair offre une méthode rigoureuse et efficace pour sélectionner des exemples dans l’apprentissage in-context, en se concentrant sur l’impact réel des exemples plutôt que sur leur disponibilité. Bien que son déploiement initial soit coûteux, les paires d’or obtenues sont robustes et généralisables, ouvrant la voie à des applications similaires dans d’autres domaines comme la génération de requêtes SQL à partir de texte. Cette recherche marque une avancée vers une utilisation plus intelligente et mesurable des exemples dans les LLM.