Je me trouve dans une sorte de zone crépusculaire, tant physiquement que figurativement. Il est 2 heures du matin à l’aéroport de Newark, et je suis dans cet espace qui pourrait être l’Amérique ou n’importe où ailleurs. En attendant mon vol de correspondance pour San Francisco pour l’AI Engineer World Fair, je viens de terminer ce qui est mon petit-déjeuner, après tout, c’est le matin en France.
J’attends cette semaine avec impatience. #AIEngineerWorldFair
L’ingénierie de l’IA est un peu indéfinie, il n’est toujours pas clair ce que le monde pense qu’est un ingénieur en IA ! Alors je note mes réflexions d’avant-conférence. Il sera intéressant de comparer les réflexions post-conférence.
D’un point de vue général du domaine, je vois 4 versions distinctes, non mutuellement exclusives, des rôles d’ingénierie en IA.
Explorons-les :
Ingénieur logiciel qui utilise l’IA
Le premier s’aligne sur ce qu’on pourrait appeler le Développement Axé sur l’Intention. Un ingénieur qualifié travaille avec un chef de produit qualifié (ou directement avec un client, ou similaire) pour partager la conception et les caractéristiques d’un système ainsi que les “exigences”. Je ne vais pas entrer dans les détails sur la façon dont les LLM peuvent aider avec les exigences, autre que de dire que je suis certain qu’ils peuvent aider et que le faire bien n’est pas sans problèmes complexes à résoudre. La chaîne d’outils devient de plus en plus automatisée (comme DevOps l’a fait pour l’infrastructure).
Point clé : L’ingénieur possède l’expertise pour sélectionner le “copilote” le plus approprié pour chaque tâche d’ingénierie spécifique.
Bien que cela puisse sembler simple, les capacités en rapide expansion des copilotes IA introduisent de nouvelles couches de complexité. Il est très peu probable que nous obtenions “un Copilote pour les gouverner tous”. L’interopérabilité devient très importante alors que nous entrons dans cette nouvelle phase de développement automatisé.
Ingénieur de prompts
Point clé : L’ingénieur connaît le “meilleur” choix de techniques de prompt basé sur les modèles disponibles.
Cela comprend :
- Le modèle de base à choisir
- Si un fine-tuning est nécessaire, comment le réaliser
- Comment le prompting est le plus efficace
- Les prompts pour l’interaction programmatique avec les LLM
Ingénieur de systèmes IA
Ce dernier s’aligne sur les compétences dont quelqu’un a besoin pour travailler sur des systèmes qui tirent parti des modèles d’IA (en particulier les LLM génératifs pré-entraînés).
Point clé : L’ingénieur connaît le “meilleur” choix d’ensemble d’outils d’IA générative pour ajouter de la valeur commerciale.
Cela comprend :
- Le modèle de base à choisir
- Si un fine-tuning est nécessaire, comment le réaliser
- Comment le prompting est le plus efficace
- Comment gérer les prompts
- L’hébergement et la découverte de modèles (Découverte de services pour les points d’accès aux modèles)
- Comment convaincre les gens de ne pas utiliser RAG
- Quand accepter que RAG est utile
- L’utilisation d’outils
- L’enchaînement des requêtes et des réponses
- L’observabilité
- La sécurité
Ingénieur de connaissances en IA
Point clé : L’ingénieur connaît le “meilleur” choix de mécanisme de données pour chaque application IA unique.
Les choix incluent :
- Graphes de connaissances : Pour cartographier des relations et hiérarchies complexes
- Bases de données vectorielles : Parfaites pour les recherches de similarité et la compréhension sémantique
- Découpage en morceaux : Décomposer de grands ensembles de données en morceaux digestibles pour la consommation de l’IA
- Réseaux hiérarchiques à petit monde : Combinant le meilleur des structures hiérarchiques et des propriétés de petit monde pour une récupération efficace de l’information
- Les bonnes vieilles données relationnelles : Parce que parfois, les classiques sont toujours les meilleurs
- Plus si nouveau que ça - NoSQL : Pour quand la flexibilité l’emporte sur la structure
- Un mélange de tout cela : Parce que dans le monde réel, une taille unique convient rarement à tous