
Les ingénieurs logiciels sont profondément divisés sur le sujet des grands modèles de langage. Beaucoup pensent qu'il s'agit de la technologie la plus transformatrice de l'histoire de l'industrie. D'autres pensent qu'il s'agit de la dernière d'une longue série de produits qui ne font que du battage médiatique : il est passionnant d'y penser, mais en fin de compte, ils ne sont pas utiles aux professionnels qui essaient de faire un travail sérieux.
Personnellement, j'ai l'impression que l'IA m'apporte beaucoup. Je pense que beaucoup de ceux qui ne sont pas de cet avis « tiennent mal », c'est-à-dire qu'ils n'utilisent pas les modèles de langage de la manière la plus utile qui soit. Dans ce billet, je vais énumérer un certain nombre de façons dont j'utilise régulièrement l'IA dans mon travail quotidien d'ingénieur.
Écrire du code de production
J'utilise les complétions Copilot chaque fois que j'écris du code. La quasi-totalité des compléments que j'accepte sont de la pure routine (remplir les arguments ou les types de fonctions, par exemple). Il est rare que je laisse Copilot produire de la logique métier pour moi, mais cela arrive occasionnellement. Dans mes domaines d'expertise (Ruby on Rails, par exemple), je suis certain de pouvoir faire mieux que le LLM. Il s'agit simplement d'une (très bonne) autocomplétion.
Cependant, je ne travaille pas toujours dans mes domaines d'expertise. Je me retrouve souvent à faire de petits changements tactiques dans des domaines moins familiers (par exemple, un service Golang ou une bibliothèque C). Je connais la syntaxe et j'ai écrit des projets personnels dans ces langages, mais je suis moins sûr de ce qui est idiomatique. Dans ces cas-là, je me fie davantage à Copilot. Typiquement, j'utilise Copilot chat avec le modèle o1 activé, je colle mon code et je demande directement « est-ce que c'est du C idiomatique ? »
Il est risqué de s'appuyer davantage sur le LLM, car je ne sais pas ce que je manque. Il me permet en fait d'opérer à un niveau de base « smart-intern » dans tous les domaines. Je dois également me comporter comme un stagiaire sensé et m'assurer qu'un expert en la matière examine le changement pour moi. Mais même avec cette mise en garde, je pense qu'il est très utile d'être capable de faire ce genre de changements tactiques rapidement.
Écrire du code jetable
Je suis beaucoup plus libéral dans mon utilisation des LLM lorsque j'écris du code qui ne sera jamais produit. Par exemple, j'ai récemment effectué un bloc de recherche qui nécessitait d'extraire des morceaux de données publiques d'une API, de les classer et d'approximer cette classification à l'aide d'une série de regex rapides. Tout ce code a été exécuté sur mon ordinateur portable uniquement, et j'ai utilisé des LLM pour l'écrire en grande partie : le code pour extraire les données, le code pour exécuter un LLM séparé pour les classer, le code pour les tokeniser et mesurer les fréquences des tokens et les noter, etc.
Les LLM excellent dans l'écriture d'un code qui fonctionne et qui n'a pas besoin d'être maintenu. Le code non productif qui n'est exécuté qu'une seule fois (par exemple, pour la recherche) convient parfaitement à cet exercice. Je dirais que mon recours aux LLM m'a permis de réaliser ce travail deux à quatre fois plus vite que si je n'avais pas été assisté.
Apprendre de nouveaux domaines
La chose la plus utile que je fais avec LLMs est probablement de l'utiliser comme un tuteur à la demande pour apprendre de nouveaux domaines. Par exemple, le week-end dernier, j'ai appris les bases de Unity, en m'appuyant fortement sur ChatGPT-4o. La magie de l'apprentissage avec les LLM réside dans le fait que vous pouvez poser des questions : pas seulement « comment fonctionne X », mais aussi des questions complémentaires telles que « quel est le rapport entre X et Y ». Plus utile encore, vous pouvez poser des questions du type « est-ce que c'est correct ? Je rédige souvent ce que je pense avoir appris et je le renvoie au LLM, qui m'indique où j'ai raison et où je n'ai toujours pas compris. Je pose beaucoup de questions au LLM.
Je prends beaucoup de notes lorsque j'apprends quelque chose de nouveau. Pouvoir copier-coller toutes mes notes et les faire réviser par le LLM est formidable.
Qu'en est-il des hallucinations ? Honnêtement, depuis GPT-3.5, je n'ai pas remarqué que ChatGPT ou Claude faisait beaucoup d'hallucinations. La plupart des domaines que j'essaie d'étudier sont très bien compris (mais pas par moi) et, d'après mon expérience, cela signifie que le risque d'hallucination est assez faible. Je n'ai jamais rencontré de cas où j'ai appris quelque chose d'un LLM qui s'est avéré fondamentalement erroné ou halluciné.
Corrections de bogues en dernier recours
Je ne le fais pas souvent, mais parfois, lorsque je suis vraiment bloqué sur un bug, j'attache le ou les fichiers entiers au chat de Copilot, je colle le message d'erreur, et je demande simplement « pouvez-vous m'aider ? ».
La raison pour laquelle je ne le fais pas, c'est que je pense que je suis actuellement bien meilleur dans la chasse aux bugs que les modèles d'IA actuels. Presque toujours, Copilot (ou Claude, pour certains projets personnels) s'embrouille. Mais cela vaut toujours la peine d'essayer si je suis vraiment bloqué, juste au cas où, parce que c'est un effort minime. Je me souviens de deux ou trois cas où j'avais manqué un comportement subtil que le LLM a détecté, ce qui m'a fait gagner beaucoup de temps.
Parce que les LLM ne sont pas encore très bons dans ce domaine, je ne passe pas beaucoup de temps à itérer ou à essayer de décoller le LLM. J'essaie juste une fois pour voir s'il y arrive.
Relecture des fautes de frappe et des erreurs de logique
Je rédige un grand nombre de documents en anglais : ADR, résumés techniques, messages internes, etc. Je ne permets jamais au LLM de les rédiger à ma place. Cela s'explique en partie par le fait que je pense pouvoir écrire plus clairement que les LLM actuels. C'est aussi en partie à cause de mon dégoût général pour le style maison de ChatGPT.
Ce que je fais occasionnellement, c'est envoyer un brouillon au LLM et lui demander son avis. Les LLM sont très doués pour repérer les fautes de frappe et soulèvent parfois un point intéressant qui devient une modification de mon projet.
Comme pour la correction des bogues, je n'itère pas lorsque je fais cela - je demande simplement un retour d'information. En général, le LLM propose des commentaires stylistiques, que j'ignore toujours.
Résumé
J'utilise les LLM pour ces tâches :
- Autocomplétion intelligente avec Copilot
- Courts changements tactiques dans des domaines que je ne connais pas bien (toujours revus par un PME)
- Rédaction d'un grand nombre de codes de recherche utilisables une fois et jetables
- Poser beaucoup de questions pour en savoir plus sur de nouveaux sujets (par exemple, le moteur de jeu Unity)
- Correction de bogues en dernier recours, juste au cas où il serait possible de résoudre le problème immédiatement.
- la relecture d'ensemble pour les communications en anglais de longue haleine.
Je n'utilise pas (encore) les LLM pour ces tâches :
- Rédiger pour moi des relations publiques complètes dans des domaines que je connais bien
- Rédaction d'ADR ou d'autres communications techniques
- Recherche dans de grandes bases de code et découverte de la manière dont les choses sont faites
Source : How I use LLMs as a staff engineer
Et vous ?


Voir aussi :



Vous avez lu gratuitement 1 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.