
L’architecture d’un réseau de neurones définit l’organisation des couches, des connexions et des opérations qui transforment les données d’entrée en résultat. Choisissez-la selon la prédiction attendue, la structure des données et les contraintes du système qui l’exécutera. Un MLP, un CNN, un réseau récurrent ou un transformeur constitue un candidat à tester, pas une garantie de meilleurs résultats.
Pour choisir un premier modèle ou remplacer un modèle existant, la question utile est la suivante : quelle approche atteint la qualité requise avec une latence, une consommation de mémoire et une maintenance acceptables ? Ce guide compare quatre familles courantes et propose une méthode de sélection.
L’architecture décrit la circulation des données : types de couches, dimensions, connexions et opérations intermédiaires. Les poids et les biais sont les valeurs ajustées pendant l’entraînement. Deux modèles peuvent partager la même architecture et produire des résultats différents en raison de leurs poids, de leurs données ou de leur procédure d’entraînement.
Dans un réseau simple, la couche d’entrée reçoit un vecteur de caractéristiques, les couches cachées le transforment et la couche de sortie produit une prédiction. Les fonctions d’activation non linéaires permettent de représenter des relations qu’une seule transformation linéaire ne peut pas exprimer. Le tutoriel PyTorch sur les réseaux de neurones présente ces composants.
Distinguez l’architecture des paramètres d’entraînement. La fonction de perte définit l’objectif, la rétropropagation calcule les gradients et l’optimiseur les utilise pour mettre à jour les paramètres. Le taux d’apprentissage, la taille des lots et la durée d’entraînement peuvent modifier les résultats sans changer la structure du réseau.
Définissez une tâche de prédiction avant de choisir un réseau. « Analyser les données clients » reste trop vague. « Prévoir la demande du mois prochain à partir des informations disponibles aujourd’hui » précise le résultat et la limite temporelle.
Précisez également qui utilisera le résultat et les conséquences d’une erreur. Une petite amélioration de la précision moyenne peut être sans intérêt si le modèle échoue sur les cas importants ou dépasse le délai de réponse de l’application.
Un perceptron multicouche transmet les informations à travers des couches entièrement connectées et des activations non linéaires. Son calcul direct ne conserve pas d’état récurrent entre les entrées successives. Le chapitre de Dive into Deep Learning sur les MLP explique cette structure.
Un MLP constitue un candidat neuronal de référence pour un vecteur de taille fixe ou une tête de prédiction ajoutée à un autre modèle. Sa conception n’intègre pas la structure spatiale locale d’une image. Pour des données tabulaires, comparez-le aux modèles linéaires et aux ensembles d’arbres avant d’ajouter des couches ou des unités.
Un réseau convolutif applique des filtres partagés à des régions locales. La localité fait donc partie de sa conception, au lieu de connecter indépendamment chaque caractéristique à chaque unité cachée. Consultez l’explication des convolutions dans D2L.
Un CNN est un candidat utile pour la classification d’images et d’autres tâches de vision par ordinateur. La résolution, le champ réceptif et la tête de sortie restent déterminants. Fournir davantage d’images à un classificateur ne le transforme pas en détecteur d’objets. Pour une première comparaison, partez d’un modèle préentraîné adapté et évaluez-le sur des exemples représentatifs.
Un réseau récurrent transmet un état caché d’une étape à la suivante. Il peut ainsi intégrer des observations antérieures pendant le traitement d’une séquence ; le chapitre D2L sur les RNN décrit ce mécanisme.
Les LSTM et les GRU utilisent des portes pour contrôler le flux d’informations. Un LSTM conserve aussi un état de cellule, comme le montre la documentation PyTorch. Ces conceptions répondent à certaines limites des réseaux récurrents simples, sans garantir des prédictions fiables à longue portée.
Envisagez un modèle récurrent pour des données de capteurs ordonnées ou un traitement en continu, puis testez la gestion de l’état et la latence. Pour les séries temporelles, incluez aussi une méthode de prévision simple. La longueur de la séquence ne suffit pas à désigner le meilleur modèle.
Un transformeur associe l’attention à des couches à propagation avant et à d’autres composants. L’auto-attention relie les positions d’une séquence ; les informations de position fournissent l’ordre. Le chapitre D2L sur les transformeurs présente la conception standard.
Les transformeurs préentraînés sont des candidats utiles pour le traitement du langage naturel et les tâches qui dépendent des relations entre les éléments d’une entrée. Leur pertinence dépend du checkpoint, de la tâche, de la longueur des entrées et du budget de déploiement. Un grand modèle de langage n’est pas automatiquement le meilleur classificateur.
Commencez par une méthode qui donne du sens à la comparaison : règle existante, prévision constante, régression logistique ou autre modèle simple adapté. Les recommandations de Google sur les expériences de ML proposent de mesurer une référence, de contrôler les changements et de consigner aussi les essais infructueux.
Pour des données tabulaires, incluez un candidat fondé sur des arbres. Un benchmark publié à NeurIPS en 2022 a observé de bonnes performances de ces modèles sur ses jeux de données de taille moyenne. Ce résultat justifie leur évaluation ; il ne prouve pas leur supériorité sur tous les réseaux et toutes les données.
Fixez une règle d’arrêt. Si un modèle simple satisfait les exigences de qualité et de fonctionnement, une architecture plus complexe doit apporter un avantage concret. Examinez les erreurs avant d’ajouter des couches : des informations absentes ou des annotations incohérentes peuvent être la véritable limite.
L’architecture et l’initialisation sont deux décisions distinctes. Un checkpoint préentraîné contient déjà des poids appris. Vous pouvez figer le réseau principal et entraîner une nouvelle tête de prédiction, ou ajuster une partie ou la totalité des paramètres. Le tutoriel PyTorch sur le transfert d’apprentissage illustre ces deux approches pour les images.
Vérifiez si les entrées et le domaine d’entraînement du checkpoint correspondent à votre tâche. Consultez sa licence, son prétraitement et ses limites documentées. Un petit jeu de données annotées peut rendre la réutilisation intéressante, sans démontrer la fiabilité du modèle sur vos propres cas.
Pour adapter un modèle de langage, notre guide du fine-tuning LoRA présente une méthode qui ajuste un nombre limité de paramètres. LoRA modifie la manière d’adapter les poids ; il ne remplace pas le choix d’un modèle et d’un jeu d’évaluation appropriés.
Gardez le jeu de test à l’écart de la sélection et du réglage des architectures. Ajustez le prétraitement sur les données d’entraînement, puis appliquez la transformation obtenue aux jeux de validation et de test. Le guide des erreurs courantes de scikit-learn explique comment une fuite peut donner une impression trompeuse de précision.
Choisissez une séparation représentative du déploiement. Si plusieurs exemples appartiennent au même client, appareil ou document, envisagez une séparation par groupe. Pour la prévision, évaluez des observations ultérieures au lieu de mélanger aléatoirement passé et futur. La documentation sur la validation croisée décrit ces approches.
Attribuez aux candidats un budget de réglage explicite et consignez la version des données, le prétraitement, la graine aléatoire, la configuration et la métrique de sélection. Répétez les essais prometteurs lorsque c’est possible pour vérifier la stabilité des petits écarts. Examinez les erreurs par catégorie ou condition d’utilisation pertinente.
Le temps d’entraînement et la latence en service répondent à des questions différentes. Un modèle rapide à entraîner peut être inadapté à une application interactive. À l’inverse, un entraînement initial coûteux peut être acceptable si le modèle déployé répond à un besoin opérationnel récurrent.
Mesurez toute la chaîne de prédiction sur le matériel prévu : prétraitement, exécution du modèle et traitement du résultat. Notez la taille des entrées et des lots, la concurrence, les versions logicielles et l’inclusion éventuelle de l’initialisation. Séparez les démarrages à froid des requêtes en régime établi. Notre guide du matériel pour l’entraînement et l’inférence développe cette distinction.
Le nombre de paramètres ne suffit pas à dimensionner le matériel. Les tenseurs intermédiaires, la précision, les dimensions des entrées et le comportement du moteur comptent aussi. Le nom de l’architecture ne permet pas, à lui seul, de choisir un GPU : mesurez d’abord les besoins de votre charge.
Il s’agit de propositions d’expériences, et non de résultats de benchmarks.
Définissez les éléments qui pourraient vous faire changer de choix. « Essayer un transformeur » ne devient une expérience qu’après avoir précisé la tâche, la référence, les données, la métrique et les contraintes.
Non. Un modèle peut combiner plusieurs composants, et d’autres conceptions répondent à d’autres tâches. Ces familles forment un point de départ, pas une classification exhaustive ni quatre catégories mutuellement exclusives.
Ne les écartez pas et ne les choisissez pas selon leur ancienneté. Comparez une implémentation adaptée aux alternatives sur la tâche séquentielle : gestion de l’état, qualité des prédictions, mémoire et latence en service.
Non. Ajouter des couches peut modifier la capacité du modèle et la difficulté d’optimisation. Un meilleur ajustement aux données d’entraînement ne démontre pas une meilleure généralisation. Justifiez la complexité par la validation et les contraintes de l’application.
Choisissez une charge de travail d’IA, de calcul ou de stockage à tester sur Hivenet, ou échangez avec notre équipe sur sa mise en production.