Le dernier panel de la journée à notre conférence Frontiers cette année a été animé par moi, même s’il allait être difficile de suivre le panel de Benj Edwards, expert en Ars AI, car je n’avais pas prévu d’introduction mignonne. Le sujet que nous couvrons était ce qui pourrait arriver aux développeurs lorsque l’IA générative devient suffisamment bonne pour créer systématiquement un bon code – et, heureusement, nos panélistes ne pensaient pas que nous avions grand-chose à craindre. Pas à court terme, du moins.
Rejoints par Katie Moussouris, fondatrice et PDG de Luta Security, et Drew Lohn, chercheur principal à l’Université de Georgetown, le consensus général était que, bien que les grands modèles de langage puissent faire des choses extrêmement impressionnantes, les libérer pour créer du code de production est une idée terrible. Bien que l’IA générative ait démontré sa capacité à créer du code, même un examen superficiel prouve que les grands modèles de langage (LLM) d’aujourd’hui font souvent la même chose lors du codage que lors de la création d’histoires : ils créent tout un tas de choses. (Le terme artistique ici est « hallucination », mais Benj a tendance à préférer le terme « confabulation », car il reflète plus précisément ce que les modèles font.)
Ainsi, alors que l’on peut compter sur les LLM aujourd’hui pour faire des choses simples, comme créer une expression régulière, leur faire confiance avec votre code de production est beaucoup plus délicat.
Selon Katie, un énorme problème sous-jacent est que les modèles génératifs ne sont aussi bons que le code sur lequel ils sont formés. « Mes amis de Veracode ont fait une petite étude au cours des 12 derniers mois, et 70% du code qui existe contient des failles de sécurité », a-t-elle expliqué. « Donc, si vous avez un modèle formé sur un code vulnérable à 70%… le code résultant qui en sort est très susceptible de contenir des failles de sécurité. » Cela signifie que même si le code peut être principalement fonctionnel, comme mon regex généré par Bing Chat ci-dessus, il y a aussi une forte probabilité qu’il s’accompagne de problèmes.
Drew s’est appuyé sur ce point, notant qu’il y a eu des recherches universitaires dans le domaine pour étayer le problème. « Quelques personnes à NYU et à Stanford ont publié des articles montrant ces choses… même si vous les associez à un humain, que l’humain écrit un code plus vulnérable avec l’aide de l’IA. » L’inquiétude de Drew est que le problème devienne un serpent qui se mord la queue – comme l’IA génère du code avec de petits problèmes, ce code est ensuite utilisé comme données d’entraînement pour des modèles plus génératifs, et ces petits problèmes deviennent profondément systémiques.
Les deux panélistes conseillent la prudence dans notre avenir généré par l’IA, et tous deux ont expliqué que l’examen humain à tous les niveaux du processus de développement reste vital. Nous ne sommes pas encore près de pouvoir produire du code sur le pilote automatique, bien qu’il semble assez probable que le jour viendra finalement. Personnellement, je n’aurais aucun problème à compter sur l’IA générative pour générer de petites choses que je pourrait faire mais préférerait pas faire — des scripts shell simples, des regexes et d’autres corvées qui me prendraient beaucoup de temps à écrire. Il faut beaucoup moins de temps pour vérifier quelques lignes de code généré que pour créer, pour un non-développeur comme moi.
Et si ma regex inaugure la singularité qui fait que l’IA anéantit l’humanité, je suis vraiment désolé.