Uma nova versão do luz está disponível no CRAN. luz é uma interface de alto nível para torch. Ela visa reduzir o código boilerplate necessário para treinar modelos torch, sendo o mais flexível possível, para que você possa adaptá-lo para executar todos os tipos de modelos de deep studying.
Se você quer começar a usar o Luz, recomendamos a leitura do
postagem de weblog de lançamento anterior assim como o ‘Treinamento com luz’ capítulo do ‘Aprendizado profundo e computação científica com R Torch’ livro.
Esta versão adiciona vários recursos menores e você pode verificar o changelog completo aqui. Nesta postagem do weblog destacamos os recursos que mais nos entusiasmam.
Suporte para Apple Silicon
Desde tocha v0.9.0é possível executar cálculos na GPU de Macs equipados com Apple Silicon. O luz não usaria automaticamente as GPUs e, em vez disso, executaria os modelos na CPU.
A partir desta versão, o luz usará automaticamente o dispositivo ‘mps’ ao executar modelos em computadores Apple Silicon e, assim, permitirá que você se beneficie das acelerações da execução de modelos na GPU.
Para se ter uma ideia, executar um modelo CNN simples no MNIST a partir de este exemplo para uma época em um chip Apple M1 Professional levaria 24 segundos ao usar a GPU:
consumer system elapsed
19.793 1.463 24.231
Embora levasse 60 segundos na CPU:
consumer system elapsed
83.783 40.196 60.253
Essa é uma boa aceleração!
Observe que esse recurso ainda é um tanto experimental, e nem toda operação de torch tem suporte para execução no MPS. É provável que você veja uma mensagem de aviso explicando que pode ser necessário usar o fallback da CPU para algum operador:
(W MPSFallback.mm:11) Warning: The operator 'at:****' will not be at present supported on the MPS backend and can fall again to run on the CPU. This will likely have efficiency implications. (operate operator())
Ponto de verificação
A funcionalidade de checkpointing foi refatorada no luz, e agora é mais fácil reiniciar as execuções de treinamento se elas travarem por algum motivo inesperado. Tudo o que é necessário é adicionar um resume
retorno de chamada ao treinar o modelo:
Agora também é mais fácil salvar o estado do modelo em cada época, ou se o modelo obteve melhores resultados de validação. Saiba mais com o ‘Ponto de verificação’ artigo.
Correções de bugs
Esta versão também inclui algumas pequenas correções de bugs, como respeitar o uso da CPU (mesmo quando há um dispositivo mais rápido disponível) ou tornar os ambientes de métricas mais consistentes.
Há uma correção de bug que gostaríamos de destacar especialmente neste publish do weblog. Descobrimos que o algoritmo que estávamos usando para acumular a perda durante o treinamento tinha complexidade exponencial; portanto, se você tivesse muitos passos por época durante o treinamento do seu modelo, o luz seria muito lento.
Por exemplo, considerando um modelo fictício correndo 500 passos, luz levaria 61 segundos para uma época:
Epoch 1/1
Practice metrics: Loss: 1.389
consumer system elapsed
35.533 8.686 61.201
O mesmo modelo com o bug corrigido agora leva 5 segundos:
Epoch 1/1
Practice metrics: Loss: 1.2499
consumer system elapsed
4.801 0.469 5.209
Esta correção de bug resulta em uma aceleração de 10x para este modelo. No entanto, a aceleração pode variar dependendo do tipo de modelo. Modelos que são mais rápidos por lote e têm mais iterações por época se beneficiarão mais desta correção de bug.
Muito obrigado por ler este publish do weblog. Como sempre, damos boas-vindas a todas as contribuições para o ecossistema torch. Sinta-se à vontade para abrir points para sugerir novos recursos, melhorar a documentação ou estender a base de código.
Na semana passada, anunciamos o lançamento do Torch v0.10.0 – aqui está um hyperlink para a postagem do weblog de lançamento, caso você tenha perdido.
Foto por Pedro João Maridable sobre Desaparecer
Reutilizar
Texto e figuras são licenciados sob Artistic Commons Attribution CC BY 4.0. As figuras que foram reutilizadas de outras fontes não se enquadram nesta licença e podem ser reconhecidas por uma nota na legenda: “Figura de …”.
Citação
Para atribuição, cite este trabalho como
Falbel (2023, April 17). Posit AI Weblog: luz 0.4.0. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2023-04-17-luz-0-4/
Citação BibTeX
@misc{luz-0-4, creator = {Falbel, Daniel}, title = {Posit AI Weblog: luz 0.4.0}, url = {https://blogs.rstudio.com/tensorflow/posts/2023-04-17-luz-0-4/}, 12 months = {2023} }