Descripción general del jardín modelo

TensorFlow Model Garden proporciona implementaciones de muchos modelos de aprendizaje automático (ML) de última generación para visión y procesamiento de lenguaje natural (NLP), así como herramientas de flujo de trabajo que le permiten configurar y ejecutar rápidamente esos modelos en conjuntos de datos estándar. Ya sea que esté buscando comparar el rendimiento de un modelo conocido, verificar los resultados de una investigación publicada recientemente o ampliar los modelos existentes, Model Garden puede ayudarlo a impulsar su investigación y aplicaciones de ML.

Model Garden incluye los siguientes recursos para desarrolladores de aprendizaje automático:

Estos recursos están diseñados para usarse con el marco TensorFlow Core y se integran con sus proyectos de desarrollo de TensorFlow existentes. Los recursos de Model Garden también se proporcionan bajo una licencia de código abierto, por lo que puede ampliar y distribuir libremente los modelos y las herramientas.

Los modelos prácticos de ML son computacionalmente intensivos para entrenar y ejecutar, y pueden requerir aceleradores como Unidades de procesamiento gráfico (GPU) y Unidades de procesamiento de tensor (TPU). La mayoría de los modelos en Model Garden se entrenaron en grandes conjuntos de datos utilizando TPU. Sin embargo, también puede entrenar y ejecutar estos modelos en procesadores GPU y CPU.

Maquetas de jardín modelo

Los modelos de aprendizaje automático en Model Garden incluyen código completo para que pueda probarlos, entrenarlos o volver a entrenarlos para investigación y experimentación. Model Garden incluye dos categorías principales de modelos: modelos oficiales y modelos de investigación .

Modelos oficiales

El repositorio de modelos oficiales es una colección de modelos de última generación, con un enfoque en la visión y el procesamiento del lenguaje natural (NLP). Estos modelos se implementan con las API actuales de alto nivel de TensorFlow 2.x. Las bibliotecas de modelos de este repositorio están optimizadas para un rendimiento rápido y los ingenieros de Google las mantienen activamente. Los modelos oficiales incluyen metadatos adicionales que puede usar para configurar rápidamente experimentos usando el marco de experimentos de entrenamiento de Model Garden.

Modelos de investigación

El repositorio de modelos de investigación es una colección de modelos publicados como recursos de código para trabajos de investigación. Estos modelos se implementan con TensorFlow 1.x y 2.x. Las bibliotecas de modelos en la carpeta de investigación cuentan con el respaldo de los propietarios del código y la comunidad de investigación.

Marco de experimento de entrenamiento

El marco de experimentos de entrenamiento de Model Garden le permite ensamblar y ejecutar rápidamente experimentos de entrenamiento utilizando sus modelos oficiales y conjuntos de datos estándar. El marco de entrenamiento usa metadatos adicionales incluidos con los modelos oficiales de Model Garden para permitirle configurar modelos rápidamente usando un modelo de programación declarativo. Puede definir un experimento de entrenamiento con los comandos de Python en la biblioteca de modelos de TensorFlow o configurar el entrenamiento con un archivo de configuración YAML, como este ejemplo .

El marco de entrenamiento usa tfm.core.base_trainer.ExperimentConfig como objeto de configuración, que contiene los siguientes objetos de configuración de nivel superior:

  • tiempo de runtime : define el hardware de procesamiento, la estrategia de distribución y otras optimizaciones de rendimiento
  • task : define el modelo, los datos de entrenamiento, las pérdidas y la inicialización
  • trainer : define el optimizador, los bucles de entrenamiento, los bucles de evaluación, los resúmenes y los puntos de control

Para ver un ejemplo completo con el marco de experimentos de entrenamiento de Model Garden, consulte el tutorial Clasificación de imágenes con Model Garden . Para obtener información sobre el marco del experimento de capacitación, consulte la documentación de la API de modelos de TensorFlow . Si está buscando una solución para administrar los bucles de entrenamiento para sus experimentos de entrenamiento de modelos, consulte Orbit .

Operaciones de ML especializadas

Model Garden contiene muchas operaciones de visión y NLP diseñadas específicamente para ejecutar modelos de última generación que se ejecutan de manera eficiente en GPU y TPU. Consulte los documentos de la API de la biblioteca TensorFlow Models Vision para obtener una lista de operaciones de visión especializadas. Consulte los documentos de la API de la biblioteca de NLP de modelos de TensorFlow para obtener una lista de las operaciones de NLP . Estas bibliotecas también incluyen funciones de utilidad adicionales que se utilizan para el procesamiento de datos de visión y NLP, el entrenamiento y la ejecución de modelos.

Bucles de entrenamiento con Orbit

La herramienta Orbit es una biblioteca ligera y flexible diseñada para facilitar la escritura de bucles de entrenamiento personalizados en TensorFlow 2.x, y funciona bien con el marco de experimentos de entrenamiento de Model Garden. Orbit maneja tareas comunes de entrenamiento de modelos, como guardar puntos de control, ejecutar evaluaciones de modelos y configurar la redacción de resúmenes. Se integra a la perfección con tf.distribute y admite la ejecución en diferentes tipos de dispositivos, incluidos hardware de CPU, GPU y TPU. La herramienta Orbit también es de código abierto , por lo que puede ampliarla y adaptarla a las necesidades de entrenamiento de su modelo.

Por lo general, entrenas los modelos de TensorFlow escribiendo un bucle de entrenamiento personalizado o usando la función Keras Model.fit de alto nivel. Para modelos simples, puedes definir y administrar un ciclo de entrenamiento personalizado con métodos TensorFlow de bajo nivel como tf.GradientTape o tf.function . Alternativamente, puede usar Keras Model.fit de alto nivel.

Sin embargo, si su modelo es complejo y su ciclo de entrenamiento requiere un control o personalización más flexible, entonces debe usar Orbit. Puede definir la mayor parte de su ciclo de entrenamiento por la clase orbit.AbstractTrainer u orbit.StandardTrainer . Obtenga más información sobre la herramienta Orbit en la documentación de la API de Orbit .