Compartilhando notebooks Jupyter em uma equipe

22

Gostaria de configurar um servidor que pudesse dar suporte a uma equipe de ciência de dados da seguinte maneira: ser um ponto central para armazenamento, versão, compartilhamento e possível execução de notebooks Jupyter.

Algumas propriedades desejadas:

  1. Diferentes usuários podem acessar o servidor e abrir e executar blocos de anotações armazenados por eles ou por outros membros da equipe. A questão interessante aqui é qual seria o comportamento se o usuário X executar células em um bloco de anotações criado pelo usuário Y. Acho que o bloco de anotações NÃO deve ser alterado:
  2. A solução deve ser auto-hospedada.
  3. Os notebooks devem ser armazenados no servidor ou no Google drive ou na instância auto-hospedada do owncloud.
  4. (Bônus) Os blocos de anotações estarão sob o controle de versão do git (o git pode ser auto-hospedado. Não pode ser vinculado ao GitHub ou algo desse tipo).

Eu olhei para JupyterHub e Binder . Com o primeiro, não entendi como permitir o acesso entre usuários. O último parece suportar apenas o GitHub como o armazenamento dos notebooks.

Você tem experiência com alguma das soluções?

Dror Atariah
fonte
Kaggle anunciou um sistema que pode ser o que você deseja.
Ricardo Cruz
1
O JupiterHub é exatamente para essa proposta.
Dannyeuu
@dannyeuu Presumo que você quis dizer JupyterHub, certo? É possível compartilhar notebooks entre usuários?
Dror Atariah 16/11
Não, cada usuário tem uma instância separada do Jupyter gerada. AFAIK, você não pode compartilhar facilmente blocos de anotações.
Lukasz Tracewski
O Google Colaboratory definitivamente atende ao requisito 3.
Leponzo

Respostas:

2

O Airbnb recentemente abriu seu repositório interno de conhecimento em ciência de dados: https://github.com/airbnb/knowledge-repo

Pelo seu leia-me, parece que ele pode se ajustar livremente ao seu caso de uso:

O projeto Repositório de Conhecimento está focado em facilitar o compartilhamento de conhecimento entre cientistas de dados e outras funções técnicas, usando formatos e ferramentas de dados que fazem sentido nessas profissões. Ele fornece vários armazenamentos de dados (e utilitários para gerenciá-los) para "postagens de conhecimento", com foco especial em notebooks (R Markdown e Jupyter / iPython Notebook) para promover melhor a pesquisa reproduzível.

Há também uma postagem no blog comentando sua motivação.

ncasas
fonte
2

O JupyterHub não fornece sistema de controle de versão nem facilita o compartilhamento de Notebooks. Você se mencionou uma limitação do Binder.

Tente Zeppelin . A versão 0.7 deve ser lançada nos próximos dias.

  • Como você pode ver no roteiro , esta versão oferece recursos "corporativos" que são exatamente sobre colaboração.
  • O sistema de controle de versão (git) está integrado.
  • É auto-hospedado.

Em essência, acho que atende a todos os requisitos que você postou. Além disso, ele oferece recursos de visualização mais ricos e vários outros recursos (funciona com Shiro, Knox, Kerberos - Secure Spark alguém?).

Lukasz Tracewski
fonte
0

A única solução auto-hospedada que conheço é a configuração paga da nuvem do Anaconda Enterprise, https://anaconda.org/about . As outras soluções que conheço não são auto-hostáveis!

RHC
fonte
0

Essa solução não é boa o suficiente?

Você pode proteger o acesso com o ssh, e os arquivos hospedados podem ser o repositório git que você deseja, com acesso de usuário diferente do linux (ou qualquer outro). Você precisará do seu próprio servidor.

Robin
fonte
0

O que eu descobri - compartilhar notebooks para cientistas de dados não é um formato desejável para comunicação. Muitos deles preferem IDE como Spider / RStudio ou apenas editores de texto (conheço alguns cientistas de dados que usam vi).

Você pode apenas compartilhar código pelo controle de origem e dados por armazenamento em nuvem. Aumentará a flexibilidade.

Recentemente, abri uma ferramenta de código aberto que combina código, dados e as dependências entre dados e código em um único ambiente e torna seu projeto de ciência de dados reproduzível: DVC ou dataversioncontrol.com (há um tutorial).

Com a ferramenta DVC, você pode simplesmente compartilhar seu projeto pelo Git, sincronizar dados com o S3 com um único comando DVC. Se alguns de seus cientistas de dados decidirem alterar o código em qualquer estágio do seu projeto, o resultado final poderá ser facilmente reproduzido por um único comando dvc repro data/target_metrics.txt.

Dmitry Petrov
fonte
0

O Domino Data Lab oferece hospedagem de notebooks baseada em instalações, SaaS e VPC (Jupyter, Zeppelin, RStudio), integração git, computação escalável, modelos de ambiente e várias outras coisas úteis. As ofertas de instalações / VPC podem ser um exagero e muito caras se você for uma equipe pequena, mas os planos de SaaS têm preços razoáveis.

[Divulgação completa: eu sou um ex-funcionário do Domino]

danielchalef
fonte