Back home

Una vez que el modelo de código abierto se hace público, lo primero que se vuelve frágil es el bloqueo de la versión.

Los pesos del modelo aún se pueden obtener, pero es posible que la versión fija no sea reproducible.

Después de que un modelo de código abierto se hace público, la versión fija suele ser la primera en aflojarse, mientras que el archivo de peso suele ser el más estable.

El nombre del almacén sigue ahí y el nombre del modelo sigue ahí, pero la entrada real utilizada para ejecutar evaluaciones, hacer regresiones y conectar el tráfico a menudo no es la misma. Lo que extrajimos hoy es main, y seguirá siendo el mismo camino la próxima semana, pero el tokenizador, la plantilla, el paquete de cuantificación, el tipo de valor predeterminado e incluso los parámetros recomendados en el README han sido cambiados. Lo que ves en línea no es “el modelo desaparece”, sino “el mismo nombre del modelo se convierte en otro entregable”.

Después de asumir el acceso al modelo varias veces, encontrará que el valor que se ignora más fácilmente es el valor predeterminado. Por lo general, alguien observa el archivo de peso, pero la etiqueta predeterminada, la imagen predeterminada, la plantilla predeterminada y el directorio de caché predeterminado a menudo se dejan desatendidos. Cuando una ventana de sincronización se atasca, o la estación espejo solo sincroniza los pesos pero no la configuración, el equipo descubrirá de repente que lo que tienen no es una versión reproducible, sino una serie de nombres a la deriva.

La entrada predeterminada es más fácil de desviar que el peso.

El archivo de peso es estático, la entrada no.

model-name:latest Esta forma de escribir parece fácil, pero el problema es que deja la cuestión de “cuándo actualizar” al exterior. Si el upstream cambia el tokenizador, agrega una plantilla de chat o vuelve a escribir el paquete de cuantificación, el comportamiento de la parte de acceso cambiará en consecuencia. Es posible que las puntuaciones de la evaluación solo fluctúen un poco, pero el resultado en línea cambiará silenciosamente de tono. La parte más tortuosa a la hora de solucionar problemas está aquí: todo parece normal en el registro, pero en realidad se está llamando a otra entrada.

Lo realmente incómodo no es el cambio en sí, sino el hecho de que el cambio no deja fronteras. Mientras el nombre permanezca sin cambios, la regresión, la escala de grises y la revisión de accidentes solo pueden centrarse en los resultados y adivinar los motivos. El nombre del modelo sigue ahí, pero el equipo no tiene forma de confirmar si el que obtuvieron hoy es el mismo producto que el que utilizó como base la semana pasada.

Las imágenes, plantillas y paquetes de cuantificación deben congelarse juntos

No basta con bloquear el peso.

Una vez que un modelo de código abierto ingresa al flujo de trabajo, generalmente contiene más de un .bin o .safetensors. También traerá tokenizador, plantilla de chat, parámetros del marco de inferencia, archivos de cuantificación, imágenes de descarga, scripts de inicio y rutas de caché. Si alguno de ellos se desvía, eventualmente podría mostrar que “el modelo ha empeorado”. De hecho, a menudo no es el modelo el que cambia, sino el paquete de entrega.

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

Este tipo de configuración parece detallada, pero da como resultado tres cosas: la imagen es responsable de la disponibilidad, el número de versión y el hash son responsables de la reproducibilidad, y el script de inicio es responsable de los parámetros de inferencia consistentes. Sin ninguna de estas capas, el modelo llamado “ya público” sólo puede considerarse un producto semiacabado. Para la parte que accede, lo más importante no es si se puede descargar, sino si el contenido descargado aún puede producir el mismo conjunto de resultados tres semanas después.

Lo que realmente hay que preservar es la capacidad de reproducirse.

Una vez que el modelo de código abierto se hace público, lo que el equipo necesita proteger no es una entrada misteriosa, sino la reproducibilidad.

Una vez que se interrumpe la reproducibilidad, la línea base de evaluación se desviará, los resultados A/B se distorsionarán y la reproducción accidental perderá referencia. Cuando todo el mundo está discutiendo el problema usando el dicho “era normal la semana pasada”, la gestión de versiones básicamente ha fallado. No tiene mucho sentido hablar de capacidades del modelo en este momento; Solo ajustando la versión fija, la sincronización de imágenes, la verificación de hash y la ruta de reversión podemos estar calificados para continuar hablando del efecto.

Este tipo de modelo se parece más a un artefacto de software que a un servicio web. Si la página web no funciona, aún puede ver 500 y la versión del modelo varía y, en muchos casos, cambiará lentamente en la salida. En la superficie todavía tiene el mismo nombre, pero en realidad se ha cambiado la mitad del sistema.

FAQ

What to read next

Related

Continue reading