Conocimiento Bóveda 2/30 - ICLR 2014-2023
Song Han, Huizi Mao, Bill Dally ICLR 2016 - Compresión Profunda: Comprimiendo Redes Neuronales Profundas con Poda, Cuantización Entrenada y Codificación de Huffman
<Imagen del Resumen >

Gráfico de Conceptos & Resumen usando Claude 3 Opus | Chat GPT4 | Gemini Adv | Llama 3:

graph LR classDef compression fill:#f9d4d4, font-weight:bold, font-size:14px; classDef applications fill:#d4f9d4, font-weight:bold, font-size:14px; classDef pipeline fill:#d4d4f9, font-weight:bold, font-size:14px; classDef results fill:#f9f9d4, font-weight:bold, font-size:14px; classDef benefits fill:#f9d4f9, font-weight:bold, font-size:14px; A[Song Han et al
ICLR 2016] --> B[Compresión profunda: modelos más pequeños,
misma precisión. 1] A --> C[Aprendizaje profundo: amplias aplicaciones,
potencia embebida limitada. 2] C --> D[Aprendizaje profundo en la nube: inteligente,
ineficiente. 3] C --> E[Aprendizaje profundo móvil: tamaños
de modelo grandes. 4] A --> F[Sistemas embebidos: la mayoría de la energía
proviene del acceso a DRAM. 5] A --> G[Compresión profunda: modelos 10-50x más pequeños,
misma precisión. 6] G --> H[AlexNet 35x, VGGNet 49x,
GoogleNet 10x, SqueezeNet 10x. 7] A --> I[Pipeline de compresión profunda: poda,
compartir pesos, código de Huffman. 8] I --> J[Poda: elimina conexiones redundantes. 9] J --> K[El cerebro poda conexiones desde
el nacimiento hasta la adultez. 10] J --> L[Convolucional 66% podado, totalmente
conectado 90% podado. 11] J --> M[Poda iterativa, reentrenamiento: 90%
de AlexNet podado, sin pérdida. 12] J --> N[La poda funciona para RNNs,
LSTMs, charla neuronal. 13] I --> O[Después de la poda: clústeres de peso,
motivación para cuantización. 14] I --> P[Compartición de pesos: cuantización no lineal,
mayor compresión. 15] P --> Q[Compartición de pesos: k-means, libro de códigos,
cuantización, reentrenamiento. 16] P --> R[Alimentación directa: pesos como índices de clúster,
menos bits. 17] P --> S[Entrenamiento de compartición de pesos: SGD,
ajuste fino de centroides. 18] P --> T[Totalmente conectado 2 bits,
convolucional 4 bits tolerados. 19] I --> U[Poda, cuantización: funcionan bien
juntos, a veces mejor. 20] U --> V[AlexNet: 8/5 bits sin
pérdida, 4/2 bits 2% pérdida. 21] U --> W[Poda + cuantización: 3%
tamaño, sin pérdida de precisión. 22] I --> X[Código de Huffman: menos bits
para pesos frecuentes. 23] I --> Y[10-49x compresión sin Huffman. 24] A --> Z[Modelos comprimidos en SRAM:
aceleración, eficiencia energética. 25] Z --> AA[Totalmente conectado: 3x aceleración
en CPU, GPU después de compresión. 26] Z --> AB[Acelerador EIE: 189x aceleración,
24,000x eficiencia sobre CPU. 27] A --> AC[Compresión 10-50x permite aprendizaje
profundo móvil bajo 10MB. 28] A --> AD[10-50x menos ancho de banda de memoria,
beneficia capas totalmente conectadas. 29] A --> AE[SRAM en chip: 100x ahorro
energético vs DRAM fuera de chip. 30] class A,B,G,I,U,Y,AC compression; class C,D,E applications; class J,K,L,M,N,O,P,Q,R,S,T,V,W,X pipeline; class H,Z,AA,AB,AD,AE results; class F benefits;

Resumen:

1.-La presentación trata sobre la compresión profunda, que comprime redes neuronales para hacer modelos más pequeños manteniendo la precisión.

2.-El aprendizaje profundo tiene una amplia gama de aplicaciones, pero los sistemas embebidos tienen potencia de cálculo limitada.

3.-Hacer aprendizaje profundo en la nube es inteligente pero ineficiente debido a la demora de la red, el presupuesto de energía y la privacidad del usuario comprometida.

4.-Ejecutar aprendizaje profundo localmente en dispositivos móviles enfrenta el problema de tamaños de modelo grandes.

5.-La mayor parte de la energía en sistemas embebidos se consume al acceder a DRAM, que es mucho más costoso que las operaciones de multiplicación y suma.

6.-La compresión profunda puede hacer que las redes neuronales profundas sean 10-50 veces más pequeñas con la misma precisión en ImageNet.

7.-AlexNet fue comprimido por 35x, VGGNet por 49x, GoogleNet por 10x, y SqueezeNet por 10x, todo sin pérdida de precisión.

8.-El pipeline de compresión profunda tiene tres etapas: poda de red, compartición de pesos y codificación de Huffman.

9.-La poda de red elimina conexiones redundantes, similar a cómo el cerebro humano poda conexiones neuronales desde el nacimiento hasta la adultez.

10.-Las capas convolucionales pueden ser podadas alrededor de un 66%, mientras que las capas totalmente conectadas pueden tener un 90% de parámetros podados.

11.-La poda iterativa y el reentrenamiento con regularización L2 pueden eliminar el 90% de los parámetros de AlexNet sin afectar la precisión.

12.-La poda también funciona para RNNs y LSTMs, verificado en el modelo de charla neuronal.

13.-Después de la poda, la distribución de pesos se separa en clústeres positivos y negativos, motivando el siguiente paso de cuantización y compartición de pesos.

14.-La compartición de pesos es un método de cuantización no lineal que puede lograr tasas de compresión más altas que la cuantización lineal.

15.-El proceso de compartición de pesos involucra agrupamiento k-means, generación de libro de códigos, cuantización de pesos con el libro de códigos y reentrenamiento iterativo del libro de códigos.

16.-Durante la alimentación directa, los pesos se representan por su índice de clúster, requiriendo menos bits que los números de punto flotante de 32 bits.

17.-El entrenamiento con compartición de pesos es derivable usando descenso de gradiente estocástico para ajustar finamente los centroides mientras se mantienen fijas las asignaciones de clúster.

18.-Las capas totalmente conectadas pueden tolerar cuantización hasta 2 bits, mientras que las capas convolucionales pueden bajar a 4 bits antes de que la precisión caiga significativamente.

19.-La poda y la cuantización funcionan bien juntas, a veces incluso mejor que cuando se aplican individualmente.

20.-AlexNet puede ser cuantizado a 8 o 5 bits sin pérdida de precisión, y 4 o 2 bits con solo un 2% de pérdida de precisión.

21.-Combinando poda y cuantización, los modelos pueden ser comprimidos a solo el 3% de su tamaño original sin afectar la precisión.

22.-La codificación de Huffman comprime aún más los pesos asignando menos bits a los pesos que ocurren con más frecuencia.

23.-La tasa total de compresión varía de 10x para modelos de inicio a 49x para otras redes, sin codificación de Huffman.

24.-Los modelos comprimidos que caben completamente en la caché SRAM resultan en mejoras significativas de velocidad y eficiencia energética.

25.-Las capas totalmente conectadas experimentan aproximadamente 3x de aceleración en CPU y GPU después de la poda y la cuantización.

26.-Un acelerador de hardware personalizado llamado EIE logra 189x de aceleración y 24,000x de eficiencia energética sobre CPU para modelos comprimidos.

27.-La compresión de modelos 10-50x permite el aprendizaje profundo en aplicaciones móviles bajo 10 MB.

28.-El ancho de banda de memoria también se reduce en 10-50x, especialmente beneficioso para capas totalmente conectadas con menos reutilización.

29.-Ajustar todo el conjunto de trabajo en SRAM en chip ahorra alrededor de 100x de energía en comparación con el acceso a DRAM fuera de chip.

30.-Los autores agradecen a sus colaboradores y asesores por su orientación y discusiones útiles en este trabajo.

Bóveda de Conocimiento construida porDavid Vivancos 2024