5 Lições Após Trabalhar com Ambientes Conda por 5 Anos

Nos últimos cinco anos, eu utilizei Conda em diferentes ambientes, começando como pesquisador durante o mestrado, depois como engenheiro de dados e agora como engenheiro de MLOps.

Eu aprendi bastante durante esse caminho, a lista a seguir tenta resumir algumas das lições que aprendi.

1. Não Tenha Medo de Deletar Seu Ambiente

Um ambiente de desenvolvimento deve ser algo efêmero. Coisas inesperadas acontecem o tempo todo, e aceitar que em algum momento seu ambiente vai parar de funcionar fará com que a sua reconstrução seja menos dolorosa.

Então, não trate seu ambiente Conda como um animalzinho de estimação. Esteja preparado para dizer adeus a ele a qualquer momento. Abrace a ideia de ambientes descartáveis e não ter medo de experimentar.

2. Use Arquivos YAML Para Criar o Seu Ambiente

Agora que você está mentalmente preparado para reconstruir seu ambiente a qualquer momento, vamos tornar esse processo mais prático.

Os arquivos YAML do Conda não são apenas backups; eles são ferramentas para compartilhamento e reprodutibilidade. Crie um, e você terá um ambiente replicável e versionável (se você fixar as versões dos módulos, é claro 😉).

Você pode encontrar mais informações sobre como criar definições YAML de ambientes aqui.

Para criar ambientes Conda reprodutíveis em diferentes plataformas, sugiro dar uma olhada no projeto conda-lock.

3. Acelere o Processo de Instalação de Pacotes com Mamba

O solver clássico do Conda pode ser MUITO lento. Não é incomum esperar minutos ou até horas para instalar um novo pacote. Felizmente, existe uma alternativa mais rápida. Mamba, um solver rápido baseado em C++ originalmente desenvolvido pela equipe da QuantStack.

O processo de instalação do Mamba é simples. A forma que eu costumo fazer é executando:

conda install mamba -n base -c conda-forge 

Uma vez instalado, o Mamba pode ser usado no lugar do Conda para instalar pacotes com o comando:

mamba install <package>

Mas recentemente eu aprendi que a QuantStack trabalhou com a Quantsight e a Anaconda para desenvolver o conda-libmamba-solver (fonte: A Faster Solver for Conda: Libmamba). Este novo plugin torna o solver mamba parte do ecossistema conda.

Assumindo que você está usando o Conda 22.11 ou posterior, você pode instalar o novo solver com os seguintes comandos (fonte: conda-is-fast-now):

conda install -n base conda-libmamba-solver
conda config --set solver libmamba

De acordo com a Anaconda, você deve esperar uma melhoria de desempenho de 50-80% ao usar o novo solver.

4. Escolha Miniconda em Vez de Anaconda

Eu sei, eu sei. Anaconda é extremamente popular no mundo da ciência de dados. Mas me ouça. A maioria dos usuários não precisa de tudo que o Anaconda oferece (por exemplo, a interface gráfica).

Na minha opinião, uma melhor alternativa é o Miniconda, um instalador mínimo para o Conda. É contém apenas o Conda e suas dependências, nada mais. Você pode instalar os pacotes que precisa quando for necessário.

E não sou só eu que penso assim. A documentação oficial do Conda também sugere o uso do Miniconda em vez do Anaconda.

5. Limpe Regularmente o Cache do Conda

O cache do Conda pode crescer para proporções gigantescas. Familiarize-se com o comando conda clean. Eu uso conda clean -a regularmente para remover os pacotes antigos. Mas esteja ciente de que este comando removerá todos os pacotes e índices em cache.

Se você quiser remover pacotes, tarballs ou índices individualmente, então você pode usar as outras flags disponíveis no comando.

Uma janela de terminal mostrando as opções de ajuda do comando 'conda clean', incluindo a remoção de caches e arquivos de bloqueio. Opções de ajuda do comando ‘conda clean’.

Bonus Round:

5.1. Reverta Parar Uma Versão Anterior do Seu Ambiente

Ao executar conda list --revisions de dentro do seu ambiente, você verá todas as alterações aplicadas ao seu ambiente (⚠️ instalações pip não são levadas em consideração).

Uma janela de terminal mostrando as 'revisões do conda'. Revisões do Conda.

Para reverter para um estado anterior, você pode usar:

conda install --revision <revision_number>

Este é um recurso útil quando você precisa reverter para um estado anterior do seu ambiente.

5.2. Scripts de Ativação/Desativação

Conda pode executar scripts específicos sempre que você ativar ou desativar um ambiente. Isso significa que você pode configurar seu terminal, ajustar variáveis ou executar ações pré/pós o uso do ambiente automaticamente.

Você pode adicionar scripts aos seguintes diretórios:

caminho_para_o_seu_ambiente/etc/conda/activate.d
caminho_para_o_seu_ambiente/conda/deactivate.d

Os scripts no diretório activate.d serão executados quando você ativar o ambiente, e os scripts no diretório deactivate.d serão executados quando você desativar o ambiente.

Você pode encontrar mais informações sobre esse recurso aqui.

Conclusão

E isso é tudo! Espero que essas dicas te ajudem a tirar o máximo do Conda.

Se eu esqueci de mencionar a sua dica favorita, ou se você tiver alguma dúvida, deixe um comentário abaixo. Até o próximo post 🚀