Condividere i quaderni Jupyter all'interno di una squadra


22

Vorrei installare un server in grado di supportare un team di data science nel modo seguente: essere un punto centrale per l'archiviazione, il versioning, la condivisione e la possibile esecuzione anche dei notebook Jupyter.

Alcune proprietà desiderate:

  1. Diversi utenti possono accedere al server e aprire ed eseguire notebook memorizzati da loro o da altri membri del team. La domanda interessante qui è quale sarebbe il comportamento se l'utente X eseguisse celle in un notebook creato dall'utente Y. Immagino che il notebook NON debba essere cambiato:
  2. La soluzione dovrebbe essere ospitata autonomamente.
  3. I notebook dovrebbero essere archiviati sul server o su Google Drive o su un'istanza self-hosted di owncloud.
  4. (Bonus) I taccuini saranno sotto il controllo della versione di git (git può essere ospitato da solo. Non può essere associato a GitHub o qualcosa del genere).

Ho esaminato JupyterHub e Binder . Con il primo, non capivo come consentire l'accesso tra utenti. Quest'ultimo sembra supportare GitHub solo come memoria dei notebook.

Hai esperienza con una delle soluzioni?


Kaggle ha annunciato un sistema che potrebbe essere quello che vuoi.
Ricardo Cruz,

1
JupiterHub è esattamente per questa proposta.
dannyeuu,

@dannyeuu Immagino volessi dire JupyterHub, giusto? È possibile condividere i blocchi appunti tra utenti?
Dror Atariah,

No, ogni utente ha un'istanza separata di Jupyter generata. AFAIK non puoi condividere facilmente i notebook.
Lukasz Tracewski,

Google Colaboratory soddisfa sicuramente il requisito 3.
Leponzo,

Risposte:


2

Airbnb ha recentemente aperto il proprio repository interno di conoscenze sulla scienza dei dati: https://github.com/airbnb/knowledge-repo

Dal suo readme, sembra che potrebbe adattarsi vagamente al tuo caso d'uso:

Il progetto Knowledge Repository è focalizzato sulla facilitazione della condivisione delle conoscenze tra data scientist e altri ruoli tecnici utilizzando formati e strumenti di dati che hanno senso in queste professioni. Fornisce vari archivi di dati (e utilità per gestirli) per "post di conoscenza", con particolare attenzione ai notebook (R Markdown e Jupyter / iPython Notebook) per promuovere meglio la ricerca riproducibile.

C'è anche un post sul blog che commenta la sua motivazione.


2

JupyterHub non fornisce il sistema di controllo della versione né facilita la condivisione di Notebook. Hai menzionato la limitazione di Binder.

Prova Zeppelin . La versione 0.7 dovrebbe essere rilasciata entro pochi giorni.

  • Come puoi vedere dalla tabella di marcia , questa versione offre funzionalità "enterprise" che riguardano esattamente la collaborazione.
  • Il sistema di controllo della versione (git) è integrato.
  • È ospitato da solo.

In sostanza, penso che soddisfi tutti i requisiti che hai pubblicato. Inoltre, offre funzionalità di visualizzazione più ricche e una pletora di altre funzionalità (funziona con Shiro, Knox, Kerberos - Spark qualcuno sicuro?).


0

L'unica soluzione self-host che conosco è la configurazione del cloud Anaconda Enterprise a pagamento, https://anaconda.org/about . Le altre soluzioni di cui sono a conoscenza non sono auto-gestibili!


0

Questa soluzione non è abbastanza buona?

Puoi proteggere l'accesso con ssh e i file ospitati potrebbero essere il repository git che desideri, con diversi accessi utente Linux (o qualunque cosa). Avrai bisogno del tuo server.


0

Quello che ho trovato: la condivisione di notebook per data scientist non è un formato desiderabile per la comunicazione. Molti di loro preferiscono IDE come Spider / RStudio o solo un editor di testo (conosco alcuni data scientist che usano vi).

Potresti semplicemente condividere il codice tramite il controllo del codice sorgente e i dati tramite archivi cloud. Aumenterà la flessibilità.

Recentemente ho aperto uno strumento che combina codice, dati e dipendenze tra dati e codice in un singolo ambiente e rende riproducibile il tuo progetto di data science: DVC o dataversioncontrol.com (c'è un tutorial).

Con lo strumento DVC puoi semplicemente condividere il tuo progetto con Git, sincronizzare i dati con S3 con un singolo comando DVC. Se alcuni dei tuoi data scientist decidono di modificare il codice in qualsiasi fase del progetto, il risultato finale potrebbe essere facilmente riprodotto da un singolo comando dvc repro data/target_metrics.txt.


0

Domino Data Lab offre hosting di notebook basato su SaaS e VPC (Jupyter, Zeppelin, RStudio), integrazione git, elaborazione scalabile, modelli di ambiente e un sacco di altre cose utili. Le offerte locali / VPC possono essere eccessive e troppo costose se sei un piccolo team, ma i piani SaaS hanno un prezzo abbastanza ragionevole.

[Informativa completa: sono un ex dipendente Domino]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.