
Arrêtez de vous sentir perdu : comment maîtriser la conception du système ML
data scientist ou ingénieur ML, l’apprentissage de la conception de systèmes d’apprentissage automatique est l’une des compétences les plus essentielles que vous devez connaître. C’est le pont entre la création de modèles et le déploiement de solutions qui génèrent de réels résultats commerciaux.
La capacité de transformer les idées de ML en systèmes de production qui permettent d’économiser de l’argent, d’augmenter les revenus et de créer une valeur mesurable détermine votre évolution de carrière à long terme et votre salaire.
J’ai construit des systèmes d’apprentissage automatique qui ont permis aux entreprises d’économiser plus de 1,5 million de dollars par an, et ces mêmes compétences m’ont aidé à décrocher des offres d’emploi dépassant 100 000 $.
Dans ce guide, je vais expliquer ce que je pense de la conception du système ML afin que vous puissiez faire de même.
Cadre général
Vous trouverez ci-dessous mon cadre sur la façon d’aborder la conception d’un système d’apprentissage automatique :
Note: Il s’agit du type de conception le plus courant pour un système d’apprentissage automatique appliqué dans une entreprise technologique établie. Il existe d’autres cas, plus nuancés, comme la conception d’infrastructures et la conception d’expériences de recherche IA/ML..

Si vous souhaitez une copie PDF de ce modèle, vous pouvez y accéder en utilisant ce lien :
https://framework.egorhowell.com
Décomposons ces étapes un peu plus en détail.
Problème commercial
Le but de cette étape est de :
- Clarifier les objectifs —Quel est le problème commercial ou utilisateur que vous essayez de résoudre, et comment le traduire en solution d’apprentissage automatique ?
- Définir des métriques –Quelles mesures ciblons-nous : précision, score F1, ROC-AUC, précision/rappel, RMSE, etc. et comment cela se traduit en performances commerciales.
- Contraintes et portée— Quelle quantité de ressources de calcul est disponible, voulons-nous des prédictions en temps réel ou une inférence par lots, avons-nous même besoin d’apprentissage automatique ?
- Conception de haut niveau— À quoi ressemblera l’architecture approximative, des données à l’inférence ?
Données
Il s’agit de collecter et d’acquérir des données :
- Identifier les sources de données –Bases de données, API, journaux ou données générées par l’utilisateur.
- Identifier la variable cible— Quelle est la variable cible et comment l’obtenir ?
- Contrôle de qualité— Dans quel état se trouvent les données ? Y a-t-il des problèmes juridiques liés à l’utilisation des données ?
Ingénierie des fonctionnalités
Créez de nouvelles fonctionnalités à partir des données pour résoudre le problème spécifique :
- Importance des fonctionnalités— Comprendre quelles fonctionnalités sont susceptibles de piloter la variable cible.
- Nettoyage des données —Gérez les valeurs manquantes, les valeurs aberrantes et les entrées incohérentes.
- Représentation des fonctionnalités— Encodage à chaud, encodage cible, intégrations et mise à l’échelle des données.
- Échantillonnage et fractionnement— Tenez compte des ensembles de données déséquilibrés, des fuites de données et divisez-les correctement en ensembles de données de formation et de test.
Conception et sélection de modèles
C’est ici que vous présentez vos connaissances théoriques sur les modèles d’apprentissage automatique :
- Référence— Commencez par un simple modèle ou heuristique « stupide », puis augmentez lentement la complexité.
- Entraînement— Validation croisée, réglage des hyperparamètres, arrêt anticipé.
- Compromis— Tenez compte des compromis tels que la vitesse de formation, la vitesse d’inférence, la latence et l’interprétabilité.
Service et déploiement
Comprendre la meilleure façon de servir et de déployer le modèle en production.
- Infrastructures —Choisissez le cloud/sur site, configurez des pipelines CI/CD et assurez l’évolutivité.
- Service— Point de terminaison de l’API, modèle Edge, prédictions par lots et prédictions en ligne.
Évaluation et suivi
La dernière partie consiste à configurer des systèmes et des cadres pour suivre votre modèle dans l’environnement de production.
- Métrique— Quelles métriques suivre avec le modèle « en ligne » par rapport au modèle « hors ligne ».
- Surveillance— Configurer un tableau de bord, un carnet de surveillance, des alertes Slack.
- Expérience— Concevoir une expérience A/B.
Que faut-il apprendre ?
Laissez-moi vous confier un secret : la conception d’un système d’apprentissage automatique n’est pas un entretien ou un ensemble de compétences de niveau débutant.
En effet, la conception du système d’apprentissage automatique est testée aux niveaux intermédiaire et supérieur.
À ce moment-là, vous posséderez de solides connaissances en apprentissage automatique et en génie logiciel et développerez probablement une spécialisation.
Néanmoins, si vous souhaitez une liste complète, mais en aucun cas exhaustive, c’est ce que vous devez apprendre.
Théorie de l’apprentissage automatique
- Apprentissage supervisé —Classification (régression logistique, machines à vecteurs de support, arbres de décision), régression (régression linéaire, arbres de décision. arbres boostés par gradient).
- Apprentissage non supervisé —Clustering (k-means, DBSCAN), réduction de dimensionnalité, analyse sémantique latente.
- Apprentissage profond —Réseaux de neurones, réseaux de neurones convolutifs et réseaux de neurones récurrents.
- Fonctions de perte –Précision, score F1, NDCG, précision/rappel, RMSE, etc.
- Sélection des fonctionnalités –Comment identifier les fonctionnalités essentielles, telles que l’analyse de corrélation, l’élimination récursive des fonctionnalités, la régularisation, la validation croisée et le réglage des hyperparamètres.
- Statistiques —Statistiques bayésiennes, tests d’hypothèses et tests A/B.
- Spécialités— Séries chronologiques, vision par ordinateur, recherche opérationnelle, systèmes de recommandation. traitement du langage naturel, etc. Seulement besoin de 1 à 2.
Conception et ingénierie du système
- Nuage— Le principal est AWS, et vous devriez le savoir S3, EC2, Fonctions Lambdaet ECS. De toute façon, la plupart des choses ne sont que des enveloppes de stockage et de calcul.
- Conteneurisation—Docker et Kubernetes.
- Conception du système— Mise en cache, mise en réseau, quantification, API et stockage.
- Contrôle des versions—CercleCI, Jenkins, git, MLflow, Chien de données, Pondérations et biais.
- Frameworks de déploiement et d’orchestration—Argo, Métaflux, Briques de données, Flux d’air et Kubeflow.
Ressources
Entretiens de conception de systèmes ML
Je prévois de publier ultérieurement une vidéo plus détaillée sur le processus d’entretien de conception du système d’apprentissage automatique, mais pour l’instant, j’aimerais vous fournir un aperçu de haut niveau ainsi que quelques conseils pour vous aider à vous préparer.
Les entretiens de conception de systèmes d’apprentissage automatique s’adressent généralement aux ingénieurs en apprentissage automatique de niveau intermédiaire et supérieur. Au cours de ces entretiens, vous serez généralement confronté à un problème vaste et ouvert, comme la conception d’un système de recommandation ou d’un filtre anti-spam.
Si votre rôle implique une spécialisation particulière, telle que la vision par ordinateur, la question de l’entretien se concentrera souvent sur ce domaine spécifique.
L’un des plus grands défis des entretiens de conception de systèmes d’apprentissage automatique est leur manque de standardisation. Contrairement aux entretiens de génie logiciel, qui suivent un format relativement cohérent, les entretiens de conception ML varient considérablement dans leur structure. Il y a aussi beaucoup de choses à aborder : d’innombrables concepts, compromis et pistes de solutions potentielles.
Cela dit, la plupart des responsables du recrutement ont tendance à évaluer les candidats sur quelques dimensions clés :
- Traduction du problème –Pouvez-vous prendre un problème commercial et le présenter comme une solution d’apprentissage automatique ?
- Prise de décision –Reconnaissez-vous les compromis et justifiez-vous logiquement vos choix de conception ?
- Largeur et profondeur —Démontrez-vous une solide compréhension de la théorie du ML, d’une variété de modèles et de la manière de les appliquer efficacement dans des scénarios du monde réel ?
Comment se préparer aux entretiens
En termes de préparation, il y a une chose clé que je recommande.
Résolvez les problèmes passés.
Voici quelques ressources pour trouver de tels problèmes :
Je recommande également de consulter les articles de blog des grandes entreprises technologiques pour en savoir plus sur la manière dont les algorithmes d’apprentissage automatique sont déployés à grande échelle :
Plus tôt, j’ai expliqué comment les entretiens de conception de systèmes testent bien plus que vos compétences en modélisation.
Mais quels sont les fondamentaux sous-jacents qu’ils testent réellement ?
C’est précisément ce que j’aborde dans l’un de mes articles précédents, qui vous guidera à travers tout ce que vous devez savoir, ainsi que les meilleures ressources.
La feuille de route ultime IA/ML pour les débutants
Une autre chose !
Je propose des appels de coaching 1:1 où nous pouvons discuter de tout ce dont vous avez besoin, qu’il s’agisse de projets, de conseils de carrière ou simplement de déterminer votre prochaine étape. Je suis là pour vous aider à avancer !
Appel de mentorat 1:1 avec Egor Howell
Orientation professionnelle, conseils d’emploi, aide au projet, révision de CVtopmate.io



