Pourquoi séparer l’état d’exécution de l’IA des fichiers de modèles sur un serveur personnel ?

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les homelabs et les logiciels open source, elle se spécialise dans la traduction de concepts techniques complexes en guides accessibles et pratiques. Eva croit que l’auto-hébergement doit être amusant, pas intimidant. À travers ses tutoriels, elle donne à la communauté les moyens de démystifier les configurations matérielles, depuis la construction de leur premier NAS jusqu’à la maîtrise des conteneurs Docker.

L’état d’exécution de l’IA doit être séparé des fichiers de modèle, car les poids immuables et les caches modifiables nécessitent des permissions, des sauvegardes, des mises à niveau et des règles de récupération différentes.

Un conteneur d’IA local peut lire un point de contrôle de modèle tout en écrivant continuellement des métadonnées de téléchargement, des noyaux compilés, des caches de prompts, l’état des conversations, des téléversements temporaires, des fichiers de verrouillage, des journaux et des instantanés de l’allocateur. Placer tous ces fichiers dans un seul répertoire accessible en écriture rend difficile de déterminer ce qui est une référence, supprimable, privé, spécifique à une version ou sans risque à effacer. Les sections ci-dessous expliquent comment une structure séparée protège l’intégrité des modèles tout en permettant à l’état d’exécution d’évoluer, d’expirer et d’être récupéré indépendamment.

Les artefacts de modèle et l’état d’exécution ont des cycles de vie différents

Les poids du modèle, les ressources du tokenizer, la configuration et les métadonnées de quantification ne changent normalement que lorsqu’une révision précise du modèle est installée. Les fichiers d’exécution peuvent changer à chaque requête ou redémarrage.

Les recommandations de Harbor en matière de gestion des modèles appliquent l’immutabilité des artefacts aux fichiers d’IA volumineux afin qu’une révision nommée reste reproductible. Mélanger des entrées de cache modifiables dans ce chemin d’artefacts affaiblit la signification d’une version de modèle.

Une séparation claire considère le répertoire du modèle comme une entrée versionnée et le répertoire d’exécution comme un état généré. L’exécution peut être reconstruite sans modifier discrètement les poids installés.

Un chemin de modèle en lecture seule limite les modifications accidentelles et malveillantes

Un service d’inférence doit généralement lire les fichiers du modèle, et non les réécrire à chaque requête. Monter ce chemin en lecture seule empêche un plugin compromis, une tâche de nettoyage défectueuse ou une commande de conteneur erronée de remplacer les fragments du point de contrôle.

Les recommandations de sécurité des conteneurs préconisent des chemins accessibles en écriture limités pour les journaux, le cache et les fichiers temporaires, plutôt que d’accorder au processus un arbre applicatif entièrement accessible en écriture.

Un stockage en lecture seule ne prouve pas que le modèle est fiable, mais il préserve les octets installés après vérification et rend visibles les écritures inattendues en les faisant échouer.

Les nouvelles révisions de modèle doivent être introduites via une étape contrôlée d’importation ou de déploiement, et non avec les mêmes permissions que celles utilisées pour traiter les prompts des utilisateurs.

Les noyaux compilés et les caches d’exécution appartiennent à l’état d’exécution

Les moteurs d’inférence peuvent compiler des noyaux ou des graphes d’exécution pour un modèle de GPU, un pilote, une version du framework, une forme de tenseur et une configuration donnés. Ces artefacts peuvent accélérer les démarrages ultérieurs, mais ils sont dérivés de l’environnement.

NVIDIA Engineering décrit l’état d’exécution initialisé comme une source distincte de délai au démarrage à froid par rapport aux poids du modèle eux-mêmes. Une mise à jour du pilote ou de l’environnement d’exécution peut rendre cet état inutilisable, même si le point de contrôle reste inchangé.

Stockez les caches de compilation et de noyaux sous une racine de cache d’exécution versionnée. Ils pourront ainsi être purgés ou régénérés sans supprimer la copie de référence du modèle.

Les caches de conversation et de préfixes contiennent des données propres aux utilisateurs

Le cache KV, le cache de prompts, les passages récupérés, les téléversements temporaires et la mémoire de session peuvent contenir ou encoder le contexte du foyer. Leurs règles de confidentialité et d’expiration ne sont pas les mêmes que celles des poids de modèles publics.

L’architecture de LMCache sépare l’état du cache KV des workers d’inférence afin que la réutilisation du cache puisse survivre aux changements de workers. Cette séparation fait également de la propriété, de la conservation et du nettoyage une responsabilité opérationnelle distincte.

Le guide de ZimaSpace sur le contexte par utilisateur montre pourquoi les caches d’exécution doivent suivre l’identité de l’utilisateur plutôt que d’hériter de la vaste politique de partage d’un répertoire de modèle commun.

Ne sauvegardez pas automatiquement l’état transitoire des prompts simplement parce que les fichiers de modèle sont sauvegardés. Déterminez d’abord si cet état est nécessaire, privé, reproductible et toujours couvert par sa durée de conservation.

Des chemins séparés rendent les mises à niveau et les restaurations prévisibles

Une mise à jour doit pouvoir remplacer l’image d’exécution ou activer une nouvelle révision du modèle tout en ne conservant que l’état compatible. Lorsque le code, les fichiers de modèle et les données générées sont mélangés, une restauration peut rétablir une combinaison incohérente.

Un modèle de déploiement immuable maintient des emplacements d’état applicatif explicites. Une mise à niveau d’exécution défaillante peut être remplacée tandis que les chemins persistants restent inspectables et que les révisions de modèle demeurent inchangées.

Utilisez des répertoires de modèles versionnés et un pointeur actif atomique plutôt que de remplacer les poids sur place. Attribuez à chaque version d’exécution un espace de noms de cache compatible lorsque les artefacts compilés ne peuvent pas être partagés en toute sécurité.

Les politiques de sauvegarde et de nettoyage doivent suivre la valeur des données

Les fichiers de modèle peuvent être retéléchargeables, affinés localement, soumis à licence ou coûteux à reconstruire. L’état d’exécution va des fichiers temporaires supprimables aux conversations précieuses et aux adaptateurs locaux irremplaçables.

La stratégie des artefacts de modèle met l’accent sur la traçabilité du modèle afin d’identifier les poids et la configuration exacts à l’origine d’un déploiement. Les sauvegardes de l’état d’exécution doivent plutôt être sélectionnées selon la valeur métier, la confidentialité et la capacité de récupération.

Excluez des sauvegardes courantes les caches de noyaux régénérables, les téléchargements incomplets et les tenseurs temporaires. Protégez les affinages, les adaptateurs, les historiques approuvés par les utilisateurs et la configuration au moyen de leurs propres procédures de restauration testées.

Le nettoyage du disque devient plus sûr lorsque l’éviction du cache ne peut pas parcourir les poids du modèle et que l’élagage des modèles ne peut pas supprimer l’état actif des utilisateurs.

Construisez la structure de stockage autour de contrats explicites

Utilisez des chemins distincts pour les révisions de modèles immuables, la sélection du modèle actif, les téléchargements en cours, les artefacts compilés, le cache des prompts ou KV, les sessions utilisateur, les journaux et les téléversements temporaires. Documentez pour chacun le propriétaire, les permissions, le quota, la durée de conservation et la politique de sauvegarde.

Un modèle de registre de modèles cloud-native utilise des artefacts de modèles versionnés afin que l’état du déploiement puisse pointer vers un modèle précis sans considérer les fichiers d’exécution générés comme faisant partie de cette révision.

Effectuez des tests en rendant le chemin du modèle accessible en lecture seule, en supprimant uniquement le chemin du cache, en redémarrant l’environnement d’exécution, en restaurant son image précédente et en restaurant l’état utilisateur sans restaurer les artefacts compilés. Chaque opération ne doit affecter que la couche nommée dans la procédure.

FAQ

Les fichiers de modèle téléchargés et le cache du modèle doivent-ils être séparés ?

Au minimum, séparez les révisions complètes et vérifiées des téléchargements incomplets et des métadonnées modifiables. Un cache de téléchargement partagé adressable par contenu peut néanmoins alimenter un chemin de modèle déployé en lecture seule.

Peut-on supprimer le cache d’exécution sans risque ?

Uniquement après avoir identifié son contenu. Les caches de noyaux et de compilation sont généralement régénérables, tandis que l’état des prompts, des sessions utilisateur, des adaptateurs ou de la base de données applicative peut ne pas l’être.

La séparation nécessite-t-elle des disques physiques différents ?

Non. Des jeux de données, volumes, répertoires, permissions et règles de sauvegarde distincts peuvent établir la limite entre les cycles de vie sur un seul pool de stockage. Des appareils différents sont utiles lorsque les performances ou l’isolation des pannes l’exigent.

Centre Tech & IA

Plus à lire

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.