Oi, pessoal! Tudo bem?
Se vocês já tentaram treinar uma rede neural profunda em seus computadores pessoais, devem saber a diferença que uma placa gráfica (GPU) faz! A diferença de tempo no treinamento é gigantesca entre o processamento feito em CPU e GPU, mesmo que vocês tenham uma plaquinha gráfica modesta. Vale muito mais a pena usá-la do que seu processador core i7.
Já pensou poder usar uma GPU parruda sem ter que gastar milhares de reais? E de graça, já pensou? Isso está apenas há alguns cliques de você e hoje vou te mostrar como acessar essa maravilha!
Muitas pessoas tem perguntado sobre preço. O serviço é gratuito, pessoal! Isso mesmo, 0800! Segundo esta thread no Kaggle, existe uma limitação de 12h de uso ininterrupto, mas é possível salvar o status intermediário do treinamento! Na mesma thread no Kaggle, é mencionada a configuração de 2 vCPUs, 13G RAM e GPUs K80s!
O Google Colab é uma plataforma cloud gratuita que permite rodar código Python (2.7 e 3.6) em um formato muito parecido com um Jupyter Notebook (se você não sabe o que é isso, dê uma olhada aqui) de forma colaborativa, o que já é muito legal, e agora foi liberado o suporte a GPU como otimização!
Para saber mais sobre o Google Colab, clique aqui. Existe também uma FAQ sobre o Colab neste link.
Legal, agora vamos rodar um exemplo. Para acessar o Colab:
- Acesse em sua conta Google o Drive
- No Drive, clique em Novo > Mais > Colaboratory
Abaixo está uma imagem para ilustrar os passos feitos até aqui.
Com isso, você irá iniciar um novo documento no Colab, como um novo notebook do Jupyter. Veja abaixo:
Essa interface funciona de forma muito parecida com um notebook Jupyter, experimente um pouco!
Para ativar a aceleração por GPU faça o seguinte:
- Acesse o menu Edit > Notebook settings
- Em Hardware accelerator, mude para GPU e pronto!
- Neste menu você também pode mudar para Python 3
Certo, mas como saber se estou mesmo usando GPU? Vamos para um teste!
GPU ativada, agora é com você! Se quiser testar algum projeto mais interessante, tenho alguns no meu Github.
Destaco estes aqui:
- Classificação de imagens com redes convolucionais (dataset cifar-10)
- Classificação de imagens com redes feedforward (dataset mnist)
- Tradução de texto com redes seq2seq (en-fr com vocabulário limitado)
Espero que tenham gostado! Como sempre, todas as perguntas, feedbacks e sugestões são bem vindos!
Um abraço!
Referências
- https://medium.com/deep-learning-turkey/google-colab-free-gpu-tutorial-e113627b9f5d
- https://research.google.com/colaboratory/faq.html
- https://colab.research.google.com/notebooks/welcome.ipynb
- https://www.kdnuggets.com/2018/02/fast-ai-lesson-1-google-colab-free-gpu.html
- https://www.quora.com/Whats-the-difference-between-Google-Colaboratory-and-Jupyter-notebooks