Le démarrage à froid d’un modèle d’IA domestique dépend de la disposition du stockage, car l’environnement d’exécution doit localiser, lire, décoder, mapper et transférer chaque poids requis avant l’inférence.
Deux copies du même modèle peuvent démarrer à des vitesses différentes lorsque l’une est déjà mise en cache sur un NVMe local et stockée dans un format adapté au chargement, tandis que l’autre se trouve sur un partage réseau, un système de fichiers fragmenté, une archive compressée ou un répertoire contenant des fragments mal organisés. Le chemin à froid comprend également les fichiers du tokenizer, la configuration, l’initialisation de l’environnement d’exécution, l’allocation de l’accélérateur et la première exécution. Les sections ci-dessous distinguent la bande passante brute du stockage de la disposition du point de contrôle, afin de relier les délais de démarrage à l’étape appropriée.
Le démarrage à froid est une chaîne d’étapes de stockage et d’exécution
Un modèle n’est pas prêt lorsque le processus ouvre simplement son premier fichier. L’environnement d’exécution doit découvrir les métadonnées du point de contrôle, créer la structure du modèle, lire les octets des poids, désérialiser ou mapper les tenseurs, allouer la mémoire de destination, transférer les données et initialiser les noyaux ou les graphes d’exécution.
Les recherches sur l’inférence sans serveur identifient le chargement au démarrage à froid comme une part importante du délai précédant la disponibilité d’un service LLM. L’étape la plus lente varie selon la taille du modèle, son format, le niveau de stockage, la mémoire de l’hôte et le chemin vers l’accélérateur.
Un SSD rapide peut accélérer les lectures tout en laissant inchangés la désérialisation, les copies effectuées par le processeur, le transfert vers le GPU ou le préchauffage des noyaux. Mesurez le temps à chaque limite au lieu de considérer toute la pause comme un seul test de disque.
La localité détermine si les poids proviennent du cache, du réseau local ou du disque
Les poids stockés sur un NVMe local peuvent être lus sans latence réseau ni file d’attente d’un autre serveur. Un modèle situé sur SMB, NFS, un stockage d’objets ou un disque externe froid ajoute le transport et le comportement du cache distant avant même le début du chargement local.
Des travaux récents sur les modèles mis en cache sur les nœuds montrent que le stockage local des artefacts volumineux peut rendre les démarrages ultérieurs des réplicas beaucoup moins dépendants d’une redistribution distante répétée. Sur un serveur domestique, le même principe distingue un premier téléchargement d’un lancement local répété.
Local ne signifie pas toujours chaud. Un redémarrage, une éviction du cache, un remontage du système de fichiers ou une lecture volumineuse concurrente peut forcer le démarrage suivant à récupérer de nouveau la plupart des pages du modèle depuis le stockage physique.
L’article de ZimaSpace sur l’éviction des modèles traite de la limite de mémoire associée : lorsqu’un modèle n’est plus résident, la requête suivante doit recréer l’état d’exécution rapide.
Le format du point de contrôle contrôle le travail de désérialisation et de copie
Un point de contrôle peut être constitué d’un seul fichier contigu optimisé pour le chargement, de plusieurs fragments de tenseurs accompagnés d’un index, d’une archive compressée ou d’une sérialisation propre à un framework qui reconstruit des objets Python et les métadonnées des tenseurs.
ServerlessLLM utilise des lectures séquentielles des points de contrôle afin de réduire la surcharge du démarrage à froid. Une disposition permettant de grandes lectures directes et un placement prévisible des tenseurs consomme moins de temps en petites opérations sur les métadonnées et en reconstructions intermédiaires.
Le partitionnement peut réduire la quantité maximale de RAM de l’hôte, car un seul fragment est traité à la fois. Toutefois, un trop grand nombre de petits fichiers augmente les recherches dans les répertoires, les ouvertures, les déplacements et le traitement des index. La meilleure taille de fragment dépend du parallélisme du chargeur et du système de fichiers sous-jacent.
La compression échange une capacité de stockage réduite contre un travail accru du processeur au démarrage. Elle peut être utile lorsque le stockage est très lent, mais pénaliser le démarrage lorsqu’un SSD rapide attend la décompression et les copies en mémoire.
Le mappage mémoire modifie le moment où les pages entrent en RAM
Un chargeur avide peut allouer un grand tampon sur l’hôte et lire la majeure partie, voire la totalité, du point de contrôle avant de copier les tenseurs ailleurs. Un chargeur utilisant le mappage mémoire crée des mappages virtuels et laisse le système d’exploitation charger les pages du fichier en RAM lorsqu’elles sont consultées.
Les recherches et les systèmes de chargement modernes utilisent le chargement par mappage mémoire pour éviter de dupliquer l’artefact complet dans la mémoire anonyme. Cela peut réduire la quantité maximale de RAM utilisée et permettre à plusieurs processus de réutiliser les pages grâce au cache du système de fichiers.
Le mappage mémoire ne supprime pas la latence du stockage. Il reporte les lectures au moment des défauts de page. La première inférence peut donc encore être ralentie si les pages requises n’ont pas été chargées ou préchargées.
Le préchargement séquentiel peut aider un modèle qui parcourt la plupart de ses poids dans l’ordre, tandis qu’un accès aléatoire aux experts ou aux composants multimodaux peut rendre le schéma des défauts de page moins prévisible.
Le chargement parallèle n’aide que si le chemin de stockage dispose d’une marge suffisante
Plusieurs threads de chargement ou flux de copie vers le GPU peuvent superposer lecture, décodage et transfert. Ils peuvent également transformer une lecture ordonnée en plusieurs flux concurrents qui saturent un SSD limité, un pont USB, un partage réseau ou le chemin des métadonnées du système de fichiers.
Les résultats techniques de NVIDIA sur le streaming concurrent des poids montrent que la conception du chargement et le choix du stockage déterminent conjointement les améliorations obtenues. Le parallélisme est utile lorsque la source et la destination peuvent le soutenir sans allonger les files d’attente.
Un serveur domestique peut également diffuser des médias, écrire des sauvegardes, analyser des fichiers ou exécuter des bases de données sur le même pool. Ces charges modifient la latence du démarrage à froid même si le répertoire du modèle reste inchangé.
Le cache chaud et la réutilisation des poids peuvent dominer les démarrages répétés
Le premier démarrage après le redémarrage peut lire chaque octet du modèle depuis le stockage, tandis que le deuxième bénéficie du cache de pages du système de fichiers, de la mémoire GPU conservée ou d’un environnement d’exécution qui garde les poids prêts à être réutilisés.
Tangram accélère le démarrage grâce à la réutilisation des poids en mémoire GPU. Pour un serveur domestique, la leçon générale est qu’il faut préciser les caches et les processus vidés avant le test lorsque l’on parle de « démarrage à froid ».
Ne comparez pas un modèle immédiatement après une exécution à chaud avec un autre modèle testé après un redémarrage. Définissez séparément les états à froid, avec le système de fichiers chaud, avec l’environnement d’exécution chaud et avec l’accélérateur chaud.
Évaluez la disposition avec un test reproductible en état froid
Notez la taille du modèle, le nombre de fichiers, la taille des fragments, le système de fichiers, les options de montage, le périphérique de stockage, le chemin réseau, le mode de chargement, la RAM de l’hôte, la mémoire de l’accélérateur et les opérations d’E/S concurrentes. Mesurez ensuite la découverte des métadonnées, la lecture par l’hôte, la désérialisation, le transfert vers le périphérique, l’initialisation de l’environnement d’exécution et le premier jeton.
Les études de FlowLoader portent sur la mise en cache locale des modèles, car l’emplacement des points de contrôle et le chevauchement des pipelines peuvent réduire le démarrage de plusieurs secondes ou minutes. Le gain exact dépend de la question de savoir si le véritable goulot d’étranglement vient du stockage, des copies ou de l’initialisation.
Répétez le test après avoir vidé le cache du système de fichiers, après une exécution normalement à chaud et pendant un trafic NAS représentatif. L’écart obtenu indique si une modification de la disposition, un niveau local plus rapide, un nombre réduit de fragments, le mappage mémoire ou une politique de maintien en vie sera utile.
Centre Tech & IA
Plus à lire

Qu’est-ce qui amène un planificateur d’agent IA à répéter des étapes déjà effectuées ?
Suivez les étapes répétées du planificateur à travers la persistance de l’état, les preuves d’achèvement, l’analyse des résultats des outils, la conservation du contexte,...

Qu’est-ce qui provoque des erreurs d’autorisation uniquement dans les sous-processus des agents d’IA ?
Comparez l’identité du processus parent et du processus enfant, la vue du système de fichiers, l’environnement, les capacités, la politique de sécurité et le...

Quelles sont les causes de la saturation du processeur lorsque le transcodage matériel et l’IA vidéo s’exécutent simultanément ?
Suivez la saturation du processeur au niveau du déchargement des codecs, de la conversion des pixels, des copies d’images, du prétraitement de l’IA, de...

