Skip to content
Latchkey

O Que É um Jupyter Notebook no CI? Executar Notebooks em Pipelines Explicado

Um Jupyter notebook é um documento interativo que mistura código, saída e prosa; executar um no CI significa rodá-lo automaticamente para verificar se ele ainda funciona de ponta a ponta.

Os Jupyter notebooks são a forma como a maior parte da ciência de dados é feita: um documento interativo onde você escreve código, executa e vê gráficos e tabelas inline. Mas notebooks são notoriamente difíceis de manter funcionando ao longo do tempo, e por isso as equipes os rodam no CI - para provar que um notebook ainda executa de forma limpa.

O que é um Jupyter notebook

Um Jupyter notebook é um arquivo (.ipynb) feito de células - células de código que executam e produzem saída, e células markdown com prosa. Ele é ideal para exploração e análise porque você vê os resultados imediatamente, misturando narrativa, código e visualizações num único documento.

Por que notebooks são difíceis de manter

Notebooks armazenam saídas junto ao código, podem ser executados fora de ordem (estado oculto) e raramente têm testes. Um notebook que funcionava no mês passado pode quebrar silenciosamente quando uma dependência ou dataset muda. Sem automação, ninguém percebe até reabri-lo.

Executar notebooks no CI

Ferramentas como nbconvert, papermill e jupyter nbconvert --execute rodam um notebook de cima a baixo num kernel novo. Se qualquer célula lançar um erro, a execução falha - transformando "este notebook ainda funciona?" em uma verificação automatizada.

Uma verificação de notebook no CI

Execute o notebook num kernel limpo a cada mudança, para que uma célula quebrada faça o pipeline falhar.

Executing a notebook in CI
steps:
  - run: pip install jupyter nbconvert
  - run: jupyter nbconvert --to notebook --execute analysis.ipynb

Nota Latchkey

Notebooks muitas vezes carregam grandes datasets ou modelos e podem precisar de GPU para células de ML. No Latchkey, rode verificações de notebook em runners com GPU ou grandes quando necessário, faça cache dos datasets e dos pesos de modelo que eles baixam, e use auto-retry nas buscas de dados transitórias que de outra forma fariam uma execução longa de notebook falhar.

Principais conclusões

  • Um Jupyter notebook mistura código executável, saída e prosa num único documento interativo.
  • Notebooks são difíceis de manter funcionando por causa de saídas armazenadas, estado oculto e falta de testes.
  • Rodar um notebook de cima a baixo num kernel novo no CI transforma "ele ainda funciona?" em uma verificação automatizada.

Guias relacionados