Cet article présente une méthode permettant d'introduire et d'entraîner une architecture de réseau neuronal distribué (ADN) dans les domaines de la vision et du langage. ADN est initialisée comme une proto-architecture composée de modules tels que des transformateurs, des MLP, des modules d'attention et des routeurs. Un jeton (ou patch) peut traverser une série arbitraire de modules dans n'importe quel ordre. ADN est une généralisation naturelle des méthodes parcimonieuses telles que le mélange d'experts, le mélange de profondeurs et le partage de paramètres. Les schémas de calcul et de communication des modules ADN sont appris de bout en bout pendant l'apprentissage et dépendent du contenu et du contexte de chaque jeton (ou patch). Ces schémas peuvent être façonnés par des exigences supplémentaires pour des objectifs d'optimisation tels que l'efficacité de calcul/mémoire ou la répartition de charge. Expérimentalement, nous montrons que l'ADN entraîné est compétitif par rapport aux modèles de base denses dans les deux domaines et peut apprendre l'efficacité de calcul/le partage de paramètres à partir des données. De plus, en analysant la connectivité d'émergence et les schémas de calcul de l'ADN entraîné, nous constatons que les chemins empruntés par les jetons à travers le modèle sont distribués selon une loi de puissance, et montrons que certains chemins (ou, de manière équivalente, groupes de modules) présentent une spécialisation d'émergence. Enfin, nous montrons que le modèle apprend à assigner des paramètres de calcul et d'activation de manière interprétable.