Weblog Posit AI: tocha 0.10.0


Estamos felizes em anunciar que o torch v0.10.0 agora está no CRAN. Nesta postagem do weblog, destacamos algumas das mudanças que foram introduzidas nesta versão. Você pode verificar o changelog completo aqui.

Precisão mista automática

Precisão Mista Automática (AMP) é uma técnica que permite um treinamento mais rápido de modelos de aprendizado profundo, mantendo a precisão do modelo usando uma combinação de formatos de ponto flutuante de precisão simples (FP32) e meia precisão (FP16).

Para usar a precisão mista automática com tocha, você precisará usar o with_autocast
alternador de contexto para permitir que o torch use diferentes implementações de operações que podem ser executadas com meia precisão. Em geral, também é recomendado dimensionar a função de perda para preservar pequenos gradientes, à medida que eles se aproximam de zero na meia precisão.

Aqui está um exemplo mínimo, omitindo o processo de geração de dados. Você pode encontrar mais informações no artigo amp.

...
loss_fn <- nn_mse_loss()$cuda()
web <- make_model(in_size, out_size, num_layers)
decide <- optim_sgd(web$parameters, lr=0.1)
scaler <- cuda_amp_grad_scaler()

for (epoch in seq_len(epochs)) {
  for (i in seq_along(information)) {
    with_autocast(device_type = "cuda", {
      output <- web(information((i)))
      loss <- loss_fn(output, targets((i)))  
    })
    
    scaler$scale(loss)$backward()
    scaler$step(decide)
    scaler$replace()
    decide$zero_grad()
  }
}

Neste exemplo, usar precisão mista levou a uma aceleração de cerca de 40%. Essa aceleração é ainda maior se você estiver apenas executando inferência, ou seja, não precisa dimensionar a perda.

Binários pré-construídos

Com binários pré-construídos, instalar o torch fica muito mais fácil e rápido, especialmente se você estiver no Linux e usar as compilações habilitadas para CUDA. Os binários pré-construídos incluem LibLantern e LibTorch, ambas dependências externas necessárias para executar o torch. Além disso, se você instalar as compilações habilitadas para CUDA, as bibliotecas CUDA e cuDNN já estarão incluídas.

Para instalar os binários pré-compilados, você pode usar:

emitir aberto por @egillaxpoderíamos encontrar e consertar um bug que fazia com que as funções do torch retornando uma lista de tensores fossem muito lentas. A função no caso period torch_split().

Esse problema foi corrigido na v0.10.0, e confiar nesse comportamento deve ser muito mais rápido agora. Aqui está um benchmark mínimo comparando a v0.9.1 com a v0.10.0:

anunciado recentemente livro ‘Aprendizagem Profunda e Computação Científica com R torch‘.

Se você quiser começar a contribuir para o torch, sinta-se à vontade para entrar em contato no GitHub e ver nosso guia de contribuição.

O changelog completo para esta versão pode ser encontrado aqui.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *