Compartir cuadernos Jupyter dentro de un equipo

22

Me gustaría configurar un servidor que pueda soportar un equipo de ciencia de datos de la siguiente manera: ser un punto central para almacenar, versionar, compartir y, posiblemente, también ejecutar cuadernos Jupyter.

Algunas propiedades deseadas:

  1. Diferentes usuarios pueden acceder al servidor y abrir y ejecutar cuadernos almacenados por ellos o por otros miembros del equipo. La pregunta interesante aquí es cuál sería el comportamiento si el usuario X ejecuta celdas en un cuaderno creado por el usuario Y. Supongo que el cuaderno NO debe cambiarse:
  2. La solución debe ser autohospedada.
  3. Los cuadernos deben almacenarse en el servidor o en la unidad de Google o en una instancia autohospedada de owncloud.
  4. (Bonus) Las computadoras portátiles estarán bajo el control de versiones de git (git puede ser autohospedado. No puede vincularse a GitHub o algo por el estilo).

Miré a JupyterHub y Binder . Con el primero, no entendía cómo permitir el acceso cruzado de usuarios. Este último parece admitir solo GitHub como el almacenamiento de los portátiles.

¿Tienes experiencia con alguna de las soluciones?

Dror Atariah
fuente
Kaggle anunció un sistema que podría ser lo que quieres.
Ricardo Cruz
1
JupiterHub es exactamente para esta propuesta.
dannyeuu
@dannyeuu Supongo que te referías a JupyterHub, ¿verdad? ¿Es posible compartir cuadernos entre usuarios?
Dror Atariah
No, cada usuario tiene una instancia separada de Jupyter generado. AFAIK no puede compartir fácilmente cuadernos.
Lukasz Tracewski
Google Colaboratory definitivamente cumple el requisito 3.
Leponzo

Respuestas:

2

Airbnb abrió recientemente su repositorio interno de conocimiento de ciencia de datos: https://github.com/airbnb/knowledge-repo

Por su léame, parece que podría ajustarse libremente a su caso de uso:

El proyecto Knowledge Repository se centra en facilitar el intercambio de conocimientos entre los científicos de datos y otros roles técnicos utilizando formatos de datos y herramientas que tienen sentido en estas profesiones. Proporciona varios almacenes de datos (y utilidades para administrarlos) para "publicaciones de conocimiento", con un enfoque particular en los cuadernos (R Markdown y Jupyter / iPython Notebook) para promover mejor la investigación reproducible.

También hay una publicación de blog que comenta sobre su motivación.

ncasas
fuente
2

JupyterHub no proporciona un sistema de control de versiones ni facilita el intercambio de portátiles. Usted mencionó la limitación de Binder.

Prueba Zeppelin . La versión 0.7 debería lanzarse dentro de unos días.

  • Como puede ver en la hoja de ruta , esta versión ofrece características "empresariales" que tratan exactamente sobre la colaboración.
  • El sistema de control de versiones (git) está integrado.
  • Es autohospedado.

En esencia, creo que cumple con todos los requisitos que publicaste. Además de eso, ofrece capacidades de visualización más ricas y una gran cantidad de otras funciones (funciona con Shiro, Knox, Kerberos, ¿seguro Spark cualquiera?).

Lukasz Tracewski
fuente
0

La única solución autohospedada que conozco es la configuración de nube paga de Anaconda Enterprise, https://anaconda.org/about . ¡Las otras soluciones que conozco no son autohospedables!

RHC
fuente
0

¿No es esta solución lo suficientemente buena?

Puede proteger el acceso con ssh, y los archivos alojados podrían ser el repositorio git que desee, con diferentes accesos de usuario de Linux (o lo que sea). Necesitarás tu propio servidor.

Robin
fuente
0

Lo que encontré: compartir cuadernos para científicos de datos no es un formato deseable para la comunicación. Muchos de ellos prefieren IDE como Spider / RStudio o simplemente editores de texto (conozco algunos científicos de datos que usanvi ).

Es posible que solo comparta código por su control de origen y datos por almacenes en la nube. Aumentará la flexibilidad.

Recientemente he abierto una herramienta que combina código, datos y las dependencias entre datos y código en un solo entorno y hace que su proyecto de ciencia de datos sea reproducible: DVC o dataversioncontrol.com (hay un tutorial).

Con la herramienta DVC, solo puede compartir su proyecto con Git, sincronizar datos a S3 con un solo comando DVC. Si algunos de sus científicos de datos deciden cambiar el código en cualquier etapa de su proyecto, el resultado final podría reproducirse fácilmente con un solo comando dvc repro data/target_metrics.txt.

Dmitry Petrov
fuente
0

Laboratorio de datos de Domino ofrece alojamiento de portátiles locales, SaaS y VPC (Jupyter, Zeppelin, RStudio), integración git, cómputo escalable, plantillas de entorno y muchas otras cosas útiles. Las ofertas de locales / VPC pueden ser excesivas y demasiado caras si es un equipo pequeño, pero los planes SaaS tienen un precio bastante razonable.

[Divulgación completa: soy un ex empleado de Domino]

danielchalef
fuente