Plénière DISTILLER Avril 2023
Tristan COIGNION
Demande beaucoup de ressources à l'entraînement et à la génération
(ex: BLOOM : $2-5M equivalent in cloud computing)
Désolé, j'ai pas eu le temps de trouver mes sources, mais j'ai vu des gens plus intelligents en parler
Est-ce que le gain de temps en vaut la peine ?
Aucune étude sur la performance énergétique des modèles de génération de code (et très peu sur la performance en temps)
Il existe de la recherche sur la consommation énergétique des IAs en général
Est-ce qu'un modèle qui génère plus souvent du code valide, génère du code plus performant ?
Est-ce que certains modèles sont meilleurs que d'autres seulement pour des tâches spécifiques ?
Quels facteurs vont affecter la performance du code généré ?
Un exemple de problème sur Leetcode
Température = Nombre entre 0 et 1.
Température haute -> Modèle "plus créatif"
Pour utiliser les modèles, on les utilises aux températures 0, 0.2, 0.4, 0.6, 0.8 et 1.0.
Il existe d'autres paramètres, mais je ne les fais pas varier.
Pour chaque modèle, température et problème
300 problèmes de Leetcode, chacun avec une solution exemple et trois test cases
Taux de générations valides par modèle
Les modèles entraînés avec du texte anglais en plus du code réussissent beaucoup mieux que ceux entraînés juste sur du code !
Plus la difficulté des problèmes augmente, plus c'est difficile pour les modèles de générer une solution valide !
Mais aussi, plus c'est difficile, plus la solution attendue est longue.
Non.
Il semblerait que l'évolution du taux de réussite d'un modèle à travers des catégories de tâches n'évolue pas à travers les modèles.
Un seul problème,
une génération par modèle
On compare simplement le temps en secondes des runs du problème
Un seul problème,
plusieurs générations par modèle
Même chose qu'avant, mais on fait la moyenne des runs d'un même modèle
Mais, et si on a plusieurs problèmes, avec chacun des échelles de temps différentes ?
Même méthode qu'avant, on va normaliser les temps au sein de chacun des problèmes
On ne peut pas faire comme avant et simplement faire la moyenne de tous les problèmes
=> En faisant la moyenne, on va perdre l'information de classement de nos modèles
La normalisation garde les informations de classement et de distance entre les problèmes
Si on faisait une moyenne de chaque modèle ici, le classement final serait très sûrement le même que celui du premier problème.
Comparaison générale des modèles
(Toutes températures comprises)
Plus c'est bas, plus c'est rapide !
Plus c'est à droite, plus c'est souvent valide !
Comparaison générale des modèles, décomposés par température
Comparaison générale des modèles, décomposés par température.
Avec les deux plus basses températures
Comparaison générale des modèles, décomposés par température
Plus la température augmente, plus les performances générales sont dégradées
Dans les trois meilleurs modèles (english-trained), le taux de succès n'est pas corrélé avec la performance du code
Les meilleurs modèles produisent du code beaucoup plus lent à haute température que des modèles moins bon à basse température
Comparaison générale des températures (Bonus)
Plus la température augmente, plus les performances générales sont dégradées
Performances de Copilot
Comparaison générale des températures (Bonus)
Plus la température augmente, plus les performances générales sont dégradées
Exemple sur un seul problème
A de plus hautes températures, des solutions moins efficaces vont voir le jour
Comparaison générale des températures (Bonus)
Plus la température augmente, plus les performances générales sont dégradées
Il peut arriver que de meilleures solutions soient générées, mais c'est rare