24.6 C
Colombia
domingo, julio 6, 2025

Posit AI Weblog: luz 0.4.0



Posit AI Weblog: luz 0.4.0

Una nueva versión de luz ya está disponible en CRAN. luz es una interfaz de alto nivel para torch. Su objetivo es reducir el código repetitivo necesario para entrenar modelos de antorcha y, al mismo tiempo, ser lo más versatile posible, de modo que pueda adaptarlo para ejecutar todo tipo de modelos de aprendizaje profundo.

Si quieres empezar con luz te recomendamos leer el
publicación de weblog de lanzamiento anterior así como el ‘Entrenando con luz’ capítulo de la ‘Aprendizaje profundo y computación científica con antorcha R’ libro.

Esta versión agrega numerosas funciones más pequeñas y puede consultar el registro de cambios completo aquí. En esta publicación de weblog destacamos las funciones que más nos entusiasman.

Soporte para Apple Silicio

Desde antorcha v0.9.0es posible ejecutar cálculos en la GPU de Mac equipadas con Apple Silicon. Sin embargo, luz no hacía uso automático de las GPU y, en su lugar, solía ejecutar los modelos en la CPU.

A partir de esta versión, luz usará automáticamente el dispositivo ‘mps’ cuando ejecute modelos en computadoras Apple Silicon y, por lo tanto, le permitirá beneficiarse de las aceleraciones de ejecutar modelos en la GPU.

Para tener una concept, ejecutar un modelo CNN easy en MNIST desde este ejemplo para una época en un chip Apple M1 Professional tomaría 24 segundos cuando se usa la GPU:

  consumer  system elapsed 
19.793   1.463  24.231 

Mientras que en la CPU tardaría 60 segundos:

  consumer  system elapsed 
83.783  40.196  60.253 

¡Esa es una buena aceleración!

Tenga en cuenta que esta característica todavía es algo experimental y no todas las operaciones de la antorcha son compatibles con MPS. Es possible que vea un mensaje de advertencia que explique que es posible que sea necesario utilizar el respaldo de CPU para algún operador:

[W MPSFallback.mm:11] Warning: The operator 'at:****' shouldn't be presently supported on the MPS backend and can fall again to run on the CPU. This may increasingly have efficiency implications. (operate operator())

Puntos de management

La funcionalidad de puntos de management se ha refactorizado en luz y ahora es más fácil reiniciar las carreras de entrenamiento si fallan por algún motivo inesperado. Todo lo que se necesita es agregar un resume devolución de llamada al entrenar el modelo:

# ... mannequin definition omitted
# ...
# ...
resume <- luz_callback_resume_from_checkpoint(path = "checkpoints/")

outcomes <- mannequin %>% match(
  checklist(x, y),
  callbacks = checklist(resume),
  verbose = FALSE
)

Ahora también es más fácil guardar el estado del modelo en cada época, o si el modelo ha obtenido mejores resultados de validación. Obtenga más información con el ‘Puntos de management’ artículo.

Corrección de errores

Esta versión también incluye algunas pequeñas correcciones de errores, como respetar el uso de la CPU (incluso cuando hay un dispositivo más rápido disponible) o hacer que los entornos de métricas sean más consistentes.

Sin embargo, hay una solución de error que nos gustaría destacar especialmente en esta publicación de weblog. Descubrimos que el algoritmo que estábamos usando para acumular la pérdida durante el entrenamiento tenía una complejidad exponencial; por lo tanto, si tuvieras muchos pasos por época durante el entrenamiento de tu modelo, luz sería muy lenta.

Por ejemplo, considerando un modelo ficticio que recorre 500 pasos, la luz tardaría 61 segundos en una época:

Epoch 1/1
Prepare metrics: Loss: 1.389                                                                
   consumer  system elapsed 
 35.533   8.686  61.201 

El mismo modelo con el error solucionado ahora tarda 5 segundos:

Epoch 1/1
Prepare metrics: Loss: 1.2499                                                                                             
   consumer  system elapsed 
  4.801   0.469   5.209

Esta corrección de errores da como resultado una aceleración 10 veces mayor para este modelo. Sin embargo, la aceleración puede variar según el tipo de modelo. Los modelos que son más rápidos por lote y tienen más iteraciones por época se beneficiarán más de esta corrección de errores.

Muchas gracias por leer esta publicación de weblog. Como siempre, damos la bienvenida a cualquier contribución al ecosistema de la antorcha. No dude en abrir ediciones para sugerir nuevas funciones, mejorar la documentación o ampliar la base del código.

La semana pasada anunciamos el lanzamiento de la antorcha v0.10.0: aquí hay una enlace a la publicación del weblog de lanzamiento, en caso de que te la hayas perdido.

Foto por Peter John Maridable en desempaquetar

Reutilizar

El texto y las figuras tienen licencia Artistic Commons Attribution. CC POR 4.0. Las figuras que han sido reutilizadas de otras fuentes no están cubiertas por esta licencia y pueden reconocerse por una nota en su pie de foto: “Figura de…”.

Citación

Para atribución, cite este trabajo 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 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/},
  yr = {2023}
}

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles