Grands modèles de langageIngénierie IAGrands modèles de langageIngénierie IA
Grands modèles de langage8 min de lecture

Développeurs de LLMs, développeurs logiciels et ingénieurs ML : les principales différences

Une comparaison des développeurs de LLMs, des développeurs logiciels et des ingénieurs ML, axée sur les compétences réellement nécessaires dans chaque rôle.

Mis à jour le 11 févr. 2025

Audio de la vidéo française

Écouter l’article

Source

L'avenir du développement logiciel: Les Développeurs LLMs

Développeurs de LLMs, développeurs logiciels et ingénieurs ML : les principales différences
Sommaire

À retenir

  • Le développement de LLMs recoupe l’ingénierie logicielle, mais ajoute le comportement du modèle, le contexte, la recherche d’information et le travail d’évaluation.
  • L’ingénierie ML reste pertinente, mais plusieurs produits fondés sur les LLMs dépendent davantage de la conception du système que de l’entraînement d’un modèle à partir de zéro.
  • Les meilleurs développeurs de LLMs comprennent le code, les contraintes produit, le flux des données et la façon de tester les outputs du modèle.

Le besoin de nouvelles compétences et de nouveaux rôles

La montée des LLMs ne concerne pas seulement la technologie, mais aussi les gens. Pour libérer tout leur potentiel, nous avons besoin d’une main-d’œuvre qui possède de nouvelles compétences et occupe de nouveaux rôles. Cela comprend les développeurs de LLMs, qui font le pont entre le développement logiciel, l’ingénierie en apprentissage automatique et le prompt engineering.

Comparons brièvement ces rôles. Les développeurs logiciels construisent principalement des applications traditionnelles avec du code explicite. Les ingénieurs en apprentissage automatique se spécialisent dans l’entraînement de modèles à partir de zéro et leur déploiement à grande échelle. Les développeurs de LLMs occupent plutôt un terrain intermédiaire. Ils personnalisent des modèles de fondation existants, utilisent le prompt engineering pour guider les outputs et construisent des pipelines qui intègrent des techniques comme le RAG, le fine-tuning et les systèmes fondés sur des agents.

Devenir un excellent développeur de LLMs exige plus que des connaissances techniques. Il faut cultiver des compétences entrepreneuriales et de communication, comprendre les compromis économiques et apprendre à intégrer aux outils et aux workflows l’expertise propre à un secteur. Ces développeurs doivent aussi exceller dans l’amélioration des solutions par itérations, l’anticipation des modes d’échec et l’équilibre entre les performances, les coûts et la latence.

La demande pour les développeurs de LLMs augmente rapidement et, comme ce domaine est très récent, il existe encore très peu d’experts. C’est donc le moment idéal pour acquérir ces compétences et vous placer à l’avant-garde de cette transition.

En quoi les développeurs de LLMs diffèrent-ils des développeurs logiciels et des ingénieurs ML ?

Construire sur un modèle de fondation existant qui possède déjà certaines capacités permet d’économiser énormément de temps de développement et de lignes de code comparativement à la création d’applications logicielles traditionnelles. Cela exige aussi beaucoup moins d’expertise en ingénierie des données et en apprentissage automatique, moins d’expérience en infrastructure et des coûts d’entraînement bien inférieurs à ceux de l’entraînement de vos propres modèles d’apprentissage automatique à partir de zéro. Nous croyons que les développeurs de LLMs sont essentiels pour maximiser la fiabilité et les gains de productivité de votre produit final. Ils doivent construire des applications personnalisées et fiables à partir des LLMs de fondation. Tout cela exige toutefois la création et l’enseignement de nouvelles compétences et de nouveaux rôles, comme les développeurs de LLMs et les prompt engineers. Les excellents développeurs de LLMs sont très rares, surtout comparativement aux prompt engineers autoproclamés !

Exemple visuel tiré de Développeurs de LLMs, développeurs logiciels et ingénieurs ML : les principales différences

Survol des compétences nécessaires aux différents rôles de développeurs, avec une répartition approximative du temps consacré aux différents processus de chaque rôle.

En quoi les développeurs de LLMs diffèrent-ils donc des développeurs logiciels et des ingénieurs ML ?

Les développeurs logiciels travaillent principalement dans le cadre du « Software 1.0 » et écrivent du code pour fournir les instructions explicites fondées sur des règles qui font fonctionner les applications. Ces rôles se spécialisent généralement selon le langage et les compétences logicielles. De nombreux développeurs possèdent plusieurs années d’expérience dans leur domaine. Ils ont développé de solides capacités générales de résolution de problèmes et une intuition pour organiser et faire évoluer le code, ainsi que pour choisir les outils et les librairies les mieux adaptés.

Les ingénieurs en apprentissage automatique se concentrent sur l’entraînement et le déploiement de modèles d’apprentissage automatique, ou « Software 2.0 ». Le « code » du Software 2.0 est abstrait et stocké dans les poids d’un réseau neuronal, où les modèles se programment essentiellement eux-mêmes en s’entraînant sur des données. Le travail de l’ingénieur consiste à fournir les données d’entraînement, souvent en collaboration avec des experts des données, puis à définir l’objectif de l’entraînement et l’architecture du réseau neuronal. Dans la pratique, ce rôle exige encore de nombreuses compétences en Software 1.0 et en ingénierie des données pour développer le système complet. Les rôles peuvent être spécialisés, mais l’expertise porte sur l’entraînement des modèles, le traitement des données ou le déploiement des modèles dans des environnements de production évolutifs. Ces ingénieurs préparent les données d’entraînement, gèrent l’infrastructure des modèles et optimisent les ressources pour entraîner des modèles performants tout en corrigeant des problèmes comme le surapprentissage et le sous-apprentissage.

Les prompt engineers se concentrent sur l’interaction avec les LLMs en langage naturel, ou « Software 3.0 ». Leur rôle consiste à raffiner les outputs des modèles de langage avec des prompts stratégiques. Il exige une intuition de haut niveau des forces et des modes d’échec des LLMs. Ils fournissent des données aux modèles et optimisent les techniques de prompting et les performances sans avoir besoin de connaître le code. Le prompt engineering est le plus souvent une nouvelle compétence plutôt qu’un rôle complet. Dans une grande partie de l’économie, les gens devront développer cette compétence en plus de leur rôle actuel pour rester concurrentiels par rapport à leurs collègues. Les techniques précises de prompting changeront, mais cette compétence consiste fondamentalement à développer une intuition de la façon d’utiliser les LLMs, de leur donner des instructions et d’interagir avec eux en langage naturel pour obtenir les outputs les plus productifs et profiter de la technologie.

Les développeurs de LLMs font le pont entre les Software 1.0, 2.0 et 3.0. Ils occupent une position unique pour personnaliser les grands modèles de langage avec des données et des instructions propres à un domaine. Ils choisissent les meilleurs LLMs pour une tâche précise, créent et organisent des datasets personnalisés, conçoivent des prompts, intègrent des techniques avancées de RAG et font le fine-tuning des LLMs afin de maximiser leur fiabilité et leurs capacités. Ils exploitent les meilleures technologies existantes au lieu de repartir de zéro, ce que la plupart des entreprises autres que Google et Meta ne peuvent de toute façon pas se permettre. Ce rôle exige de comprendre les bases et les techniques des LLMs et de rester au courant des nouveaux modèles, des nouvelles approches, des méthodes d’évaluation et des compromis économiques afin d’évaluer l’adéquation d’un LLM aux workflows ciblés. Il faut aussi comprendre l’utilisateur final et le cas d’utilisation final, puisque l’utilisateur interagira d’une certaine façon avec le LLM. Avec les pipelines de LLMs, vous intégrez davantage d’expertise humaine propre au secteur dans le logiciel. Pour vraiment profiter de la personnalisation, vous devez mieux comprendre les nuances du problème que vous résolvez. Même si ce rôle utilise les Software 1.0 et 2.0, il exige généralement moins de théorie et d’expertise fondamentales en apprentissage automatique et en informatique.

Nous pensons que les développeurs logiciels et les ingénieurs en apprentissage automatique peuvent rapidement apprendre les principes fondamentaux du développement de LLMs et amorcer leur transition vers ce nouveau rôle. C’est particulièrement facile si vous connaissez déjà Python ou des langages de programmation semblables. Devenir un excellent développeur de LLMs exige toutefois de cultiver un éventail étonnamment large de compétences nouvelles et parfois peu familières, y compris certaines compétences entrepreneuriales. Il est utile de développer une intuition des forces et des faiblesses des LLMs, d’apprendre à améliorer et à évaluer de façon itérative un pipeline de LLMs, de prédire les modes d’échec probables des données ou des LLMs et d’équilibrer les compromis entre les performances, les coûts et la latence. Les pipelines de LLMs peuvent aussi être développés plus facilement dans un processus « full stack », notamment avec Python même pour le front-end, ce qui pourrait exiger de nouvelles compétences chez les développeurs auparavant spécialisés. Le rythme rapide des progrès des LLMs demande aussi plus d’agilité pour suivre les nouveaux modèles et les nouvelles techniques.

Le rôle de développeur de LLMs exige également beaucoup plus de compétences non techniques, comme la prise en compte de la stratégie d’affaires et des aspects économiques de votre solution, qui peuvent être étroitement liés à vos choix techniques et de produit. Comprendre votre utilisateur final, les nuances des données du secteur et les problèmes que vous résolvez, puis intégrer à votre modèle l’expertise humaine issue de ce créneau, constituent aussi de nouvelles compétences essentielles. Enfin, les outils de LLMs eux-mêmes peuvent parfois être vus comme des « stagiaires peu fiables » ou de jeunes collègues. Pour les utiliser efficacement, il est utile de posséder des compétences en gestion d’équipe. Cela peut vouloir dire diviser les problèmes en composants plus faciles à expliquer et à résoudre, puis fournir des instructions claires et à toute épreuve pour y arriver. Cette compétence pourrait aussi être nouvelle si vous n’avez jamais géré une équipe. Plusieurs de ces nouvelles compétences et intuitions doivent s’apprendre par l’expérience. Nous voulons enseigner certaines de ces compétences, certains processus de réflexion et certaines astuces dans ce cours, tandis que votre projet pratique vous permettra de développer et de démontrer votre propre expérience.

Si vous avez trouvé cet article utile et le consultez en dehors du cours, n’oubliez pas de découvrir notre cours complet, où nous vous apprenons à construire des pipelines de LLMs prêts pour la production et à vous préparer à l’avenir du travail propulsé par l’IA. Merci d’avoir regardé. On se retrouve dans le prochain !

Exemple visuel tiré de Développeurs de LLMs, développeurs logiciels et ingénieurs ML : les principales différences

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Quelle est la différence entre un développeur de LLMs et un développeur logiciel ?

Un développeur de LLMs construit toujours des logiciels, mais conçoit aussi les prompts, le contexte, la recherche d’information, les évaluations et les workflows qui communiquent avec le modèle.

Les développeurs de LLMs ont-ils besoin de compétences en apprentissage automatique ?

Ils doivent comprendre suffisamment le ML pour raisonner sur le comportement des modèles, mais plusieurs emplois portent davantage sur l’intégration et l’évaluation.

Sur quoi les apprenants devraient-ils se concentrer en premier ?

Concentrez-vous sur Python, les API, la réflexion produit, la gestion des données, les bases du RAG, les évaluations et de petits projets qui exposent les échecs des modèles.

Pourquoi les produits fondés sur les LLMs créent-ils un rôle distinct de développeur ?

Les applications fiables exigent l’évaluation du modèle, la conception des prompts et du contexte, la recherche d’information, des garde-fous et l’ajustement du rapport coût-qualité en plus du travail logiciel ordinaire.

Pourquoi l’expertise du domaine est-elle importante dans un pipeline de LLMs ?

Elle définit ce qui constitue un comportement utile, un contexte pertinent, des erreurs acceptables et une véritable intégration au workflow.