Uso del control de código fuente para recursos de aprendizaje automático
El modelo de clasificación para la diabetes de Proseware se creó en un cuaderno de Jupyter en un portátil. Cuando el equipo crece — científicos de datos, ingenieros de aprendizaje automático y revisores —, ese enfoque deja de funcionar. Necesita un lugar donde todos funcionen desde el mismo código, pueden revisar los cambios del otro y realizar un seguimiento de cada modelo al código que lo generó.
¿Qué pertenece a Git?
Un repositorio de Git es el hogar adecuado para los recursos que definen el modelo y su proceso de entrenamiento:
- Scripts de entrenamiento y preprocesamiento: los archivos Python que ejecutan la preparación de datos y el entrenamiento del modelo
- Definiciones de trabajos y componentes — archivos YAML que describen trabajos de comandos y componentes de canalización de Azure Machine Learning
-
Archivos de entorno y de dependencias —
requirements.txt,conda.ymlo definiciones de entorno de Azure Machine Learning - Archivos de configuración : nombres de área de trabajo, nombres de grupo de recursos, nombres de proceso y otras referencias que usa la automatización
¿Qué no pertenece a Git?
Algunos recursos pertenecen a servicios creados específicamente, no en un repositorio:
- Conjuntos de datos y datos sin procesar — use recursos de datos de Azure Machine Learning o Azure Data Lake Storage; los archivos de datos son grandes y se versionan por separado del código
- Artefactos de modelos entrenados — registrar recursos de modelo con nombre y versión en Azure Machine Learning
- Salidas y registros de una ejecución de entrenamiento — Azure Machine Learning los almacena con el trabajo
- Secretos y credenciales: use GitHub secretos o Azure Key Vault; al colocar credenciales en un repositorio, se exponen a cualquier persona con acceso de lectura.
Tip
Una prueba útil: si el archivo está basado en texto y define cómo se genera el modelo, pertenece a Git. Si es un binario grande o un valor confidencial, debe almacenarse en un almacenamiento diseñado específicamente para ello.
¿Por qué es importante el control de código fuente para el aprendizaje automático?
Cuando cada definición de entrenamiento reside en Git, el equipo funciona desde la misma versión del código. Un revisor ve exactamente lo que cambió entre ejecuciones. Si un cambio degrada el rendimiento del modelo, puede volver a la confirmación anterior. Las definiciones de código y entorno grabadas también le ayudan a reproducir una ejecución de entrenamiento.
Esta rastreabilidad es la base de todo lo siguiente: desarrollo basado en rama, validación automatizada y una pista de auditoría que conecta cada versión del modelo al cambio que lo generó.
Tip
Elija un recurso de proyecto. ¿Lo almacenaría en Git, Azure Machine Learning o un almacén de secretos? Explique por qué.