Hola, soy Luis y esta vez les traigo un artículo.
Los cuadernos de Jupyter son fantásticos en muchos sentidos, pero la colaboración no es tan fácil con ellos. En este artículo, veremos todas las herramientas que puede aprovechar para hacer que los portátiles funcionen bien con los sistemas de control de versiones modernos como git.
Índice
¿Por qué es tan difícil el control de versiones de Jupyter?
El mundo del software ha convergido en git como su herramienta de control de versiones preferida. Git está diseñado para funcionar principalmente con archivos de texto legibles por humanos. Mientras que Jupyter es un documento JSON enriquecido con código fuente, rebajas, HTML e imágenes, todo en un solo archivo .ipynb.
Git no maneja muy bien documentos enriquecidos como cuadernos. Por ejemplo, git merge para documentos JSON anidados durante mucho tiempo es humanamente imposible, git diff para una cadena de imagen binaria es horrible (se muestra a continuación).
¿Qué se requiere del control de versiones del portátil?
Esto es lo que necesitamos de un sistema de control de versiones moderno:
- Capacidad para crear puntos de control / confirmaciones
- Consulte rápidamente cualquiera de las versiones anteriores de portátiles
- Vea lo que cambió de una versión a otra (también conocido como diferencia visual para cuadernos)
- Varias personas pueden trabajar en una sola computadora portátil con una fácil resolución de conflictos de combinación
- Capacidad para proporcionar comentarios y hacer preguntas sobre una celda de portátil específica
¡Esa es nuestra lista de deseos! Esta entrada de blog te presentará todas las herramientas importantes que pueden ayudarte a lograrlas.
Descargo de responsabilidad: soy el autor de dos de las herramientas que se enumeran a continuación (ReviewNB y GitPlus), pero esta es una revisión imparcial de todas las herramientas útiles en este espacio.
nbdime
nbdime es una biblioteca de código abierto para diferenciar y fusionar cuadernos localmente. Puede configurar esto para que funcione con el cliente local de git para que git diff
Y git merge
los comandos usan nbdime para archivos .ipynb. Con nbdime puedes –
- correr
git diff
para ver cómo ha cambiado el cuaderno antes de comprometerse - Combine fácilmente cambios remotos con su cuaderno editado localmente
Extensiones de JupyterLab Git
Las siguientes extensiones de JupyterLab son útiles para el control de versiones de portátiles. Puede instalarlos en su JupyterLab local.
- jupyterlab-git se puede usar para explorar repositorios de GitHub, ver diferencias visuales de archivos modificados y enviar sus confirmaciones
- GitPlus se puede usar para enviar confirmaciones y crear solicitudes de extracción en GitHub directamente desde la interfaz de usuario de JupyterLab
AWS SageMaker
SageMaker es un servicio administrado de AWS que le brinda acceso a JupyterLab alojado. Se integra con los repositorios de GitHub para que pueda clonar sus repositorios públicos / privados en la instancia de SageMaker. Usa jupyterlab-git extensión para que pueda enviar sus cuadernos a GitHub.
Con SageMaker puede poner en marcha una poderosa instancia EC2 con unos pocos clics para entrenar sus modelos. La desventaja es que siempre está utilizando costosos cálculos en la nube incluso para tareas que se pueden realizar fácilmente en su máquina local, por ejemplo, explorar datos, editar cuadernos. Un equilibrio saludable de sesiones locales de Jupyter con un uso escaso de SageMaker (cuando realmente necesita una computación en la nube potente) es ideal para la mayoría de las personas.
Colaboratorio de Google
Otra opción popular es Google Colab. Tienen decente Integración con GitHub con el que puede abrir un cuaderno específico en un repositorio de GitHub. También puede enviar cualquier cambio al repositorio.
Colab proporciona una GPU gratuita limitada y puede actualizar a Colab Pro para límites de uso más altos. Algunas de las limitaciones son,
- Colab pro es una oferta de pago, pero no ofrece ninguna garantía de recursos en términos de tiempo y tipo de GPU.
- Todo se centra en un solo archivo de cuaderno, no clona todo el repositorio ni tiene acceso al sistema de archivos local. Colab parece sugerir el uso de Google Drive como su sistema de archivos virtual. Eso afectaría la velocidad del entrenamiento (obtener archivos de datos a través de una llamada de red en lugar de tenerlos disponibles localmente en el disco).
RevisiónNB
RevisiónNB es una aplicación de GitHub que muestra diferencias visuales para cualquier solicitud de extracción o confirmación de cuaderno. Puede escribir comentarios en una celda específica del cuaderno para proporcionar comentarios o hacer preguntas a sus compañeros de equipo.
Es gratis para repositorios de código abierto, pero requiere un plan pagado para repositorios privados. La aplicación ReviewNB ha sido verificada por GitHub y aprobada para venderla en Mercado de GitHub.
Conclusión
No existe una herramienta única que se adapte a todos cuando se trata de colaboración y control de versiones de portátiles Jupyter. Pero su equipo puede aprovechar las siguientes herramientas diseñadas específicamente para tener un flujo de trabajo sólido en el portátil:
- GitHub para almacenar cuadernos
- jupyterlab-git extensión para comandos git y diferencias locales enriquecidas
- GitPlus extensión para crear solicitudes de extracción
- RevisiónNB para revisiones de códigos de portátiles
- AWS SageMaker si y cuándo necesita ejecutar portátiles en una instancia de nube grande
Eso es todo por ahora.
Añadir comentario