Back home

Une fois le modèle open source rendu public, la première chose qui devient fragile est le verrouillage de version.

Les poids du modèle peuvent toujours être obtenus, mais la version fixe peut ne pas être reproductible.

Une fois qu’un modèle open source est rendu public, la version corrigée est généralement la première à être assouplie, tandis que le fichier de pondération est souvent le plus stable.

Le nom de l’entrepôt est toujours là, et le nom du modèle est toujours là, mais l’entrée réelle utilisée pour exécuter des évaluations, effectuer des régressions et connecter le trafic n’est souvent pas la même chose. Ce que nous avons extrait aujourd’hui est main, et ce sera toujours le même chemin la semaine prochaine, mais le tokenizer, le modèle, le package de quantification, le type par défaut et même les paramètres recommandés dans le README ont été modifiés. Ce que vous voyez en ligne n’est pas « le modèle disparaît », mais « le même nom de modèle devient un autre livrable ».

Après avoir repris l’accès au modèle plusieurs fois, vous constaterez que la valeur la plus facilement ignorée est la valeur par défaut. Le fichier de poids est généralement surveillé par quelqu’un, mais la balise par défaut, l’image par défaut, le modèle par défaut et le répertoire de cache par défaut sont souvent laissés sans surveillance. Lorsqu’une fenêtre de synchronisation est bloquée ou que la station miroir synchronise uniquement les poids mais pas la configuration, l’équipe découvrira soudain que ce qu’elle détient n’est pas une version reproductible, mais une chaîne de noms à la dérive.

L’entrée par défaut est plus facile à dériver que le poids.

Le fichier de poids est statique, l’entrée ne l’est pas.

model-name:latest Cette façon d’écrire semble simple, mais le problème est qu’elle laisse de côté la question du « quand mettre à jour ». Si l’amont modifie le tokenizer, ajoute un modèle de discussion ou retape le package de quantification, le comportement de la partie d’accès changera en conséquence. Les scores d’évaluation ne fluctuent peut-être que légèrement, mais le résultat en ligne changera discrètement de ton. La partie la plus délicate lors du dépannage est ici : tout semble normal dans le journal, mais en fait, une autre entrée est appelée.

Ce qui est vraiment inconfortable, ce n’est pas le changement lui-même, mais le fait que le changement ne laisse aucune frontière. Tant que le nom reste inchangé, l’examen des régressions, des niveaux de gris et des accidents ne peut se concentrer que sur les résultats et en deviner les raisons. Le nom du modèle reste affiché, mais l’équipe n’a aucun moyen de confirmer si celui qu’elle a obtenu aujourd’hui est le même produit que celui qui a utilisé la référence la semaine dernière.

Les images, modèles et packages de quantification doivent être figés ensemble

Il ne suffit pas de bloquer le poids.

Une fois qu’un modèle open source entre réellement dans le flux de travail, il contient généralement plusieurs .bin ou .safetensors. Il apportera également un tokenizer, un modèle de discussion, des paramètres de cadre d’inférence, des fichiers de quantification, des images de téléchargement, des scripts de démarrage et des chemins de cache. Si l’un d’entre eux dérive, cela pourrait éventuellement montrer que « le modèle est devenu pire ». En fait, ce n’est souvent pas le modèle qui change, mais le forfait de livraison.

model:
  repo: example/model
  revision: 8f3c1a2
  tokenizer_revision: 8f3c1a2
  cache_dir: /opt/model-cache

Ce type de configuration semble verbeux, mais il aboutit à trois choses : l’image est responsable de la disponibilité, le numéro de version et le hachage sont responsables de la reproductibilité, et le script de démarrage est responsable des paramètres d’inférence cohérents. Sans aucune de ces couches, le modèle dit « déjà public » ne peut être considéré que comme un produit semi-fini. Pour celui qui accède au contenu, le plus important n’est pas de savoir si le contenu peut être téléchargé, mais si le contenu téléchargé peut toujours produire le même ensemble de résultats trois semaines plus tard.

Ce qu’il faut vraiment préserver, c’est la capacité de se reproduire

Une fois le modèle open source rendu public, ce que l’équipe doit protéger n’est pas une entrée mystérieuse, mais la reproductibilité.

Une fois la reproductibilité interrompue, la ligne de base de l’évaluation dérivera, les résultats A/B seront déformés et la lecture accidentelle perdra la référence. Au moment où tout le monde discute du problème en disant “c’était normal la semaine dernière”, la gestion des versions a pratiquement échoué. Cela n’a pas beaucoup de sens de parler des capacités du modèle à ce stade ; ce n’est qu’en resserrant la version corrigée, la synchronisation des images, la vérification du hachage et le chemin de restauration que nous pourrons être qualifiés pour continuer à parler de l’effet.

Ce type de modèle s’apparente davantage à un artefact logiciel qu’à un service Web. Si la page Web est cassée, vous pouvez toujours en voir 500, et la version du modèle dérive, et dans de nombreux cas, elle changera lentement dans la sortie. En apparence, il porte toujours le même nom, mais en réalité la moitié du système a été modifié.