Jovyans Just Wanna Have Fun: Trabalhando com Jupyter Notebooks, Optuna e MLFlow em Ambiente Conteinerizado
Lis Barreto

Lis Barreto @lisrbarreto

About: I'm a Machine Learning Engineer exploring the multiverse of Big Data

Location:
Aracaju, Sergipe, Brasil
Joined:
May 2, 2021

Jovyans Just Wanna Have Fun: Trabalhando com Jupyter Notebooks, Optuna e MLFlow em Ambiente Conteinerizado

Publish Date: Jun 9
0 0

No melhor dos mundos, sempre estamos gerenciando nossos projetos pessoais em ambientes virtuais (salve o bom e velho venv rs), com gerenciadores como Poetry e UV. No entanto, de vez em quando, precisamos ir além.

Futurama

O Desafio

Quando queremos expor diferentes serviços em algumas portas, pode ficar difícil gerenciar tantas abas no terminal Linux. Como resolver essa situação? A resposta é simples e direta: com Docker!

Imagens Docker para Jupyter

Hoje é dia é possível encontrar imagens Docker oficiais para o Jupyter, que podem ser encontradas através desse link

Neste tutorial, usaremos a versão da imagem para SciPy, adicionando alguns ingredientes extras como Optuna e MLFlow.

Estrutura do Diretório

Antes de começarmos, vamos criar a estrutura de diretório necessária. Abaixo está como ficará a árvore de diretórios:

projeto/
├── notebooks/
├── requirements.txt
├── start.sh
└── Dockerfile
Enter fullscreen mode Exit fullscreen mode

Configurações Extra do Contêiner

Para temperar o contêiner ao seu gosto, você precisará dos seguintes arquivos:

1. requirements.txt

Este arquivo contém as bibliotecas que você deseja instalar:

xgboost
lightgbm
catboost
optuna
mlflow
Enter fullscreen mode Exit fullscreen mode

2. start.sh

Um script para iniciar os serviços necessários:

#!/bin/bash

mlflow ui --host 0.0.0.0 --port 5000 &

jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
Enter fullscreen mode Exit fullscreen mode

3. Dockerfile

O arquivo Dockerfile que define como construir a imagem:

FROM jupyter/scipy-notebook:latest

COPY start.sh /home/jovyan/start.sh
COPY requirements.txt .
COPY ./notebooks /home/jovyan/work/notebooks

USER root
RUN chmod +x /home/jovyan/start.sh
USER jovyan

RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir -r requirements.txt

WORKDIR /home/jovyan/work

EXPOSE 8888
EXPOSE 5000

CMD ["/home/jovyan/start.sh"]
Enter fullscreen mode Exit fullscreen mode

Passo a Passo para Configuração

Agora que você tem todos os arquivos, siga os passos abaixo para configurar seu ambiente:

  1. Crie a pasta local notebooks/. Aqui você pode desenvolver seus notebooks no VS Code e já subí-los pro Jupyter ou criar no Jupyter mesmo e salvar.
  2. Construa a imagem Docker:
   docker build -t ml-jupyter .
Enter fullscreen mode Exit fullscreen mode
  1. Rode o container montando a pasta:
   docker run -p 8888:8888 -p 5000:5000 -v "$(pwd)/notebooks":/home/jovyan/work ml-jupyter
Enter fullscreen mode Exit fullscreen mode
  1. Acesse o Jupyter pelo navegador (link no terminal).

Lembre-se que tudo que for salvo no Jupyter estará disponível na sua pasta local, inclusive arquivos com os artefatos do modelo gerados pelo MLFlow.

Agora sim, podemos dar vida aos projetinhos pessoais sem perder nenhum detalhe!

Futurama

Referências

Imagens Docker Disponíveis no Jupyter

MLflow with Optuna: Hyperparameter Optimization and Tracking

Comments 0 total

    Add comment