Reduce pesos insignificantes

Mantenido por el equipo de optimización de modelos de TensorFlow

En este documento, se proporciona una descripción general sobre la reducción de modelos para que puedas determinar cómo se adapta a tu caso de uso.

Descripción general

La reducción de pesos basada en la magnitud coloca gradualmente en cero los pesos del modelo durante el proceso de entrenamiento para lograr una dispersión del modelo. Los modelos dispersos son más fáciles de comprimir. Además, podemos omitir los ceros durante la inferencia para mejorar la latencia.

Esta técnica permite realizar mejoras mediante la compresión de modelos. En el futuro, la compatibilidad de esta técnica con el marco de trabajo mejorará la latencia. Hemos presenciado hasta 6 mejoras en la compresión de modelos con una pérdida de exactitud mínima.

La técnica se está evaluando en varias aplicaciones de voz, como por ejemplo, de reconocimiento de voz y de texto a voz, y se ha probado en varios modelos de visión y traducción.

Matriz de compatibilidad de API

Los usuarios pueden aplicar la reducción con las siguientes API:

  • Compilación de modelos: tf.keras solo con modelos secuenciales y funcionales
  • Versiones de TensorFlow: TF 1.x para las versiones 2.x y las posteriores a 1.14.
    • tf.compat.v1 con un paquete TF 2.X y tf.compat.v2 con un paquete TF 1.X no son compatibles
  • Modo de ejecución de TensorFlow: inmediata y por grafos
  • Entrenamiento distribuido: tf.distribute solo con la ejecución por grafos

Nuestro objetivo es agregar compatibilidad en las siguientes áreas:

Resultados

Clasificación de imágenes

Modelo Exactitud máxima no dispersa Exactitud dispersa Dispersión
InceptionV3 78.1% 78.0% 50%
76.1%75%
74.6%87.5%
MobilenetV1 22471.04%70.84%50%

Los modelos se probaron en ImageNet.

Traducción

Modelo BLEU no disperso BLEU disperso Dispersión
GNMT EN-DE 26.77 26.86 80%
26.5285%
26.1990%
GNMT DE-EN 29.47 29.50 80%
29.2485%
28.8190%

Los modelos usan el conjunto de datos alemán e inglés WMT16 con news-test2013 como el conjunto de desarrollo y news-test2015 como el conjunto de prueba.

Ejemplos

Además del instructivo Reducción con Keras, consulta los siguientes ejemplos:

  • Entrena con reducción un modelo de CNN en la tarea de clasificación de dígitos escritos a mano de MNIST: código
  • Entrena con reducción una LSTM en la tarea de clasificación de opiniones de IMDB: código

Para obtener más información, consulta Reducir o no reducir: explora la eficacia de la reducción en la compresión de modelos [artículo].