Instalando um ambiente fastai no Ubuntu
O curso de Deep Learning da fast.ai recomenda que novatos comecem utilizando alguma das soluções de nuvem que recomendam e ajudam a configurar em seu site.
No entanto, sempre poderá haver necessidades específicas que requeiram instalação em ambiente próprio. Aqui, sintetizamos um passo-a-passo para configurar um ambiente de desenvolvimento completo para o curso da fast.ai no sistema operacional Ubuntu 18.04.2 LTS.
Um ambiente de desenvolvimento para Deep Learning apoia-se em uma pirâmide de funcionalidades fornecidas por diversos sistemas de software: cadernos jupyter, biblioteca fastai, ambiente python com o gerenciador de pacotes Anaconda, framework pyTorch, biblioteca CUDA, drivers nVidia…
Assim, a opção mais simples utiliza sistemas já configurados com todas as partes instaladas e testadas.
A versão mais simples e gratuita utiliza o Kaggle: https://course.fast.ai/start_kaggle.html
Recomenda-se criar uma conta no Kaggle, como solução mínima que já garante poder executar os cadernos dos cursos da fast.ai, ainda que com várias limitações.
Uma solução mais disponível e confiável requer criar uma conta na Google Cloud (GCP), que requer fornecer dados de cartão de crédito, porém sem cobrança, podendo utilizar um crédito inicial de U$ 300! Instruções detalhadas para configuração do GCP no site da fas.ai: https://course.fast.ai/start_gcp.html
Finalmente, também é possível configurar seu próprio sistema, seja em computador local ou na nuvem. Para isso, é preciso instalar em sequência todos os degraus da pirâmide de software.
Segue um passo-a-passo de instalação e configuração, da base da pirâmide até a sua ponta.
1. Instalar os drivers da nVidia para Ubuntu
Opção 1: Pelo PPA, para fácil manutenção/upgrade utilizando o sistema APT do Ubuntu
1.1 adicionar o repositório ppa com os drivers oficiais da nVidia para Ubuntu:
Em um terminal, executar:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
1.2 consultar última versão disponível dos drivers em: https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
[em 4/3/2019 a versão mais recente é ‘nvidia-driver-415’]
Em caso de dúvida o seguinte comando permite listar os drivers disponíveis nesse ppa:
awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' /var/lib/apt/lists/*graphics-drivers*ppa*Packages
1.3 instalar a última versão do driver [aqui nvidia-driver-415]
sudo apt install nvidia-driver-415
Opção 2: Baixando os drivers adequados do site da nVidia:
https://www.nvidia.com/Download/index.aspx?lang=en-us 1
Arquivo tipo: NVIDIA-Linux-x86_64–418.43.run
Tornar o arquivo executável e executar o arquivo .run acima.
Qualquer que seja a opção utilizada acima, lembre-se de reiniciar o computador antes de prosseguir.
Após reiniciar, verificar que a instalação dos drivers foi bem sucedida, executando no terminal:
nvidia-smi
Esse comando deve retornar diversos dados de configuração de sua placa de vídeo:
- versão do driver
- versão CUDA
- nome da GPU
- uso de memória na GPU
- diversas outras informações: nível de uso, potência elétrica, processos utilizando a memória, etc.
2. Instalar Anaconda para Ubuntu
2.1 Baixe a última versão do instalador Anaconda, com python 3.7 para Linux em:
https://www.anaconda.com/download/
[em 4/3/2019, a última versão é Anaconda3–2018.12-Linux-x86_64.sh]
[opcional, mas boa prática] Verifique o hash criptográfico do instalador baixado com SHA-256, em um terminal:
sha256sum Anaconda3-2018.12-Linux-x86_64.sh
1019d0857e5865f8a6861eaf15bfe535b87e92b72ce4f531000dc672be7fce00 Anaconda3–2018.12-Linux-x86_64.sh
A comparar com o hash publicado em https://docs.anaconda.com/anaconda/install/hashes/lin-3-64/
[Aqui especificamente para a minha versão: https://docs.anaconda.com/anaconda/install/hashes/Anaconda3-2018.12-Linux-x86_64.sh-hash/]
2.2 Executar o script de instalação, no terminal:
bash Anaconda3-2018.12-Linux-x86_64.sh
Será preciso aceitar a licença, local de instalação e alteração no arquivo .bashsrc.
2.3 Verificar que o Anaconda foi bem instalado
Em novo terminal, executar:conda list
2.4 Atualizar o gerenciador de pacotes conda
conda update conda
3. Instalando Git
3.1 Executar a instalação no terminal no Ubuntu:
sudo apt install git-all
3.2 Testar a instalação:
git --version
4. Criando e ativando um ambiente virtual conda para uso da fast.ai:
Para evitar problemas de versão com outros programas é desejável utilizar um ambiente virtual conda:
conda create --name fastai python=3
source activate fastai
5. Instalando pyTorch e fastai
Finalmente, o passo mais importante! No ambiente virtual criado e ativado no passo anterior, executar: [obs: o pacote pytorch já instala os requisitos CUDA]
conda install -c pytorch -c fastai fastai
O comando acima deverá instalar as últimas versões de pyTorch (>= 1.0) com o CUDA mais avançado para a sua placa de vídeo, assim como a versão mais recente da fastai (>= v1). Outros cursos da fast.ai podem requerer diferentes versões da biblioteca, daí a importância de utilizar o ambiente virtual do conda.
ATENÇÃO: Algumas instruções de instalação da fastai recomendam instalar um decodificador JPEG otimizado para as operações de transformação de imagens. Recomendo não fazê-lo em um primeiro momento, pois isso gerou problemas de compatibilidade posteriormente entre as versões esperadas de PIL e pillow
c̶o̶n̶d̶a̶ ̶u̶n̶i̶n̶s̶t̶a̶l̶l̶ ̶-̶-̶f̶o̶r̶c̶e̶ ̶j̶p̶e̶g̶ ̶l̶i̶b̶t̶i̶f̶f̶ ̶-̶y̶
̶c̶o̶n̶d̶a̶ ̶i̶n̶s̶t̶a̶l̶l̶ ̶-̶c̶ ̶c̶o̶n̶d̶a̶-̶f̶o̶r̶g̶e̶ ̶l̶i̶b̶j̶p̶e̶g̶-̶t̶u̶r̶b̶o̶
̶C̶C̶=̶"̶c̶c̶ ̶-̶m̶a̶v̶x̶2̶"̶ ̶p̶i̶p̶ ̶i̶n̶s̶t̶a̶l̶l̶ ̶-̶-̶n̶o̶-̶c̶a̶c̶h̶e̶-̶d̶i̶r̶ ̶-̶U̶ ̶-̶-̶f̶o̶r̶c̶e̶-̶r̶e̶i̶n̶s̶t̶a̶l̶l̶ ̶-̶-̶n̶o̶-̶b̶i̶n̶a̶r̶y̶ ̶:̶a̶l̶l̶:̶ ̶-̶-̶c̶o̶m̶p̶i̶l̶e̶ ̶p̶i̶l̶l̶o̶w̶-̶s̶i̶m̶d̶
6. Copiar a biblioteca fastai para seu ambiente de desenvolvimento
No github, o projeto “course-v3" contém os cadernos jupyter do curso Practical Deep Learning for Coders, part 1 (DL1) mais recentes, adequados para uso com a versão da bilbioteca fastai v1.
Com o terminal na sua pasta de desenvolvimento, execute:
git clone https://github.com/fastai/course-v3
7. Instalando Jupyter
No ambiente virtual fastai criado e ativado no passo 4, executar:
conda install jupyter notebook
conda install -c conda-forge jupyter_contrib_nbextensions
Finalmente, lançar Jupyter para testar a fastai:
(fastai)> jupyter notebook
Na interface do jupyter, navegar até a pasta onde foi clonada a biblioteca fastai, navegar nas pastas:
course-v3/nbs/dl1/00_notebook_tutorial.ipynb
Realizar uma cópia do caderno “00_notebook_tutorial.ipynb” para “00_notebook_tutorial-copy.ipynb” de forma a poder editar livremente sua própria versão, sem causar problemas com atualizações posteriores da fastai pelo git.
Executar as células do caderno “00_notebook_tutorial-copy.ipynb”
Esse passo-a-passo funcionou bem para minha instalação do zero de Ubuntu 18:04 LTS com uma placa GTX 1080Ti, em 4/3/2019.
Caso prefira instalar seu ambiente de desenvolvimento no Windows (não recomendado pela fast.ai) sugiro que leiam o ótimo tutorial do nosso colega Pierre Guillou: https://medium.com/@pierre_guillou/how-to-install-fastai-v1-on-windows-10-ca1bc370dce4
Havendo alguma dificuldade, pesquisar o erro levantado nos fóruns da fastai.
Caso não resolva, utilize uma versão já instalada, em nuvem, como Google Cloud: https://course.fast.ai/start_gcp.html
Espero que esse passo-a-passo tenha sido útil. Se for o caso, aplauda o artigo para que eu priorize novas postagens desse tipo.