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:
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} }