Articulo de referencia

Compresión de modelos

La compresión de modelos es una técnica de aprendizaje automático para reducir el tamaño de los modelos entrenados. Los modelos grandes pueden lograr una alta precisión, pero a ...

La compresión de modelos es una técnica de aprendizaje automático para reducir el tamaño de los modelos entrenados. Los modelos grandes pueden lograr una alta precisión, pero a menudo a costa de un consumo significativo de recursos. Las técnicas de compresión buscan comprimir los modelos sin una reducción significativa del rendimiento. Los modelos más pequeños requieren menos espacio de almacenamiento y consumen menos memoria y capacidad de cómputo durante la inferencia. [ 1 ]

Los modelos comprimidos permiten su implementación en dispositivos con recursos limitados, como teléfonos inteligentes , sistemas embebidos , dispositivos de computación perimetral y ordenadores de electrónica de consumo . La inferencia eficiente también resulta valiosa para las grandes corporaciones que gestionan la inferencia de modelos complejos a través de una API, lo que les permite reducir los costes computacionales y mejorar los tiempos de respuesta para los usuarios. [ 2 ]

La compresión de modelos no debe confundirse con la destilación del conocimiento , en la que un modelo "estudiante" más pequeño se entrena para imitar el comportamiento de entrada-salida de un modelo "maestro" más grande (en contraposición a utilizar los parámetros entrenados del "maestro" o los objetivos de entrenamiento del "maestro"). [ 3 ]

Técnicas

Para la compresión de modelos se emplean diversas técnicas.

Poda

La poda hace que un modelo grande sea más disperso al establecer algunos parámetros exactamente a cero. Esto reduce efectivamente el número de parámetros. Esto permite el uso de operaciones con matrices dispersas , que son más rápidas que las operaciones con matrices densas. [ 4 ]

Los criterios de poda pueden basarse en magnitudes de parámetros, el patrón estadístico de activaciones neuronales , valores hessianos , etc. [ 5 ] [ 6 ]

Cuantización

La cuantización reduce la precisión numérica de los pesos y las activaciones. Por ejemplo, en lugar de almacenar los pesos como números de coma flotante de 32 bits , se pueden representar mediante enteros de 8 bits. Los parámetros de baja precisión ocupan menos espacio y requieren menos capacidad de cálculo para realizar operaciones aritméticas. [ 7 ]

También es posible cuantificar algunos parámetros de forma más agresiva que otros; por ejemplo, un parámetro menos importante puede tener una precisión de 8 bits, mientras que otro, más importante, puede tener una precisión de 16 bits. La inferencia con estos modelos requiere aritmética de precisión mixta . [ 8 ] [ 9 ]

Los modelos cuantizados también se pueden usar durante el entrenamiento (en lugar de después del entrenamiento). PyTorch implementa precisión mixta automática (AMP), que realiza conversión automática de tipos, escalado de gradiente y escalado de pérdida. [ 10 ] [ 11 ]

Factorización de bajo rango

Las matrices de pesos pueden aproximarse mediante matrices de bajo rango .W{\displaystyle W}ser una matriz de pesos de formametro×norte{\displaystyle m\times n}. Una aproximación de bajo rango esWUVT{\displaystyle W\approx UV^{T}}, dóndeU{\displaystyle U}yV{\displaystyle V}son matrices de formasmetro×k,norte×k{\displaystyle m\times k,n\times k}. Cuandok{\displaystyle k}es pequeño, esto reduce el número de parámetros necesarios para representarW{\displaystyle W}aproximadamente, y acelera la multiplicación de matrices porW{\displaystyle W}.

Las aproximaciones de bajo rango se pueden encontrar mediante la descomposición en valores singulares (SVD). La elección del rango para cada matriz de pesos es un hiperparámetro y se optimiza conjuntamente como un problema de optimización mixto discreto-continuo. [ 12 ] El rango de las matrices de pesos también se puede podar después del entrenamiento, teniendo en cuenta el efecto de las funciones de activación como ReLU en el rango implícito de las matrices de pesos. [ 13 ]

Capacitación

La compresión de modelos puede desacoplarse del entrenamiento; es decir, primero se entrena un modelo sin tener en cuenta cómo se comprimirá, y luego se comprime. Sin embargo, también puede combinarse con el entrenamiento.

El método "entrenar a gran escala y luego comprimir" entrena un modelo grande durante un número reducido de pasos de entrenamiento (menos de los que se necesitarían si se entrenara hasta la convergencia) y, posteriormente, lo comprime considerablemente. Se ha comprobado que, con el mismo presupuesto computacional, este método produce un modelo mejor que los modelos pequeños ligeramente comprimidos. [ 14 ]

En la compresión profunda, [ 15 ] la compresión tiene tres pasos.

  • Primer ciclo (poda): podar todos los pesos inferiores a un umbral, luego ajustar la red, luego podar de nuevo, etc.
  • Segundo bucle (cuantización): agrupar los pesos, luego imponer el reparto de pesos entre todos los pesos de cada grupo, luego ajustar la red, luego agrupar de nuevo, etc.
  • Tercer paso: Utilizar la codificación Huffman para comprimir el modelo sin pérdida de información.

El artículo de SqueezeNet informó que Deep Compression logró una relación de compresión de 35 en AlexNet y una relación de ~10 en SqueezeNets. [ 16 ]

Referencias

  1. Zhou, Luping (2019). Anotación a gran escala de datos biomédicos y síntesis de etiquetas expertas y aprendizaje consciente del hardware para imágenes médicas e intervención asistida por computadora: ... Notas en Ciencias de la Computación Libro 11851) . Springer. págs.  98-101.
  2. Davies, ER (2021). Métodos avanzados y aprendizaje profundo en visión por computadora (Visión por computadora y reconocimiento de patrones) . Academic Press. pág. 167. ISBN  978-0128221495.
  3. Chen, Hsiao-Hwa (2025). Sistemas inalámbricos y satelitales: 14.ª Conferencia Internacional EAI, WiSATS 2024, Harbin, China, 23-25 ​​de agosto de 2024, Actas, Parte II (Notas de clase... e ingeniería de telecomunicaciones) . Springer. pág. 141. ISBN  3031862023.
  4. Lokoč, Jakub (2021). Modelado multimedia: 27.ª Conferencia Internacional, MMM 2021, Praga, República Checa, 22-24 de junio de 2021, Actas, Parte I (Lecture Notes in Computer Science Book 12572) . Springer. pág. 668. ISBN  978-3030678326.
  5. Reed, R. (septiembre de 1993). "Algoritmos de poda: una revisión". IEEE Transactions on Neural Networks . 4 (5): 740– 747. doi : 10.1109/72.248452 . PMID 18276504 . 
  6. Blalock, Davis; Gonzalez Ortiz, Jose Javier; Frankle, Jonathan; Guttag, John (15 de marzo de 2020). "¿Cuál es el estado de la poda de redes neuronales?" . Actas de Machine Learning and Systems . 2 : 129–146 .
  7. Ahanga, Reza (2023). Avances en herramientas de análisis empresarial para un mayor rendimiento financiero . IGI Global. pág. 247. ISBN  1668483866.
  8. Abdelfattah, Ahmad; Anzt, Hartwig; Boman, Erik G.; Carson, Erin; Cojean, Terry; Dongarra, Jack; Gates, Mark; Grützmacher, Thomas; Higham, Nicholas J.; Li, Sherry; Lindquist, Neil; Liu, Yang; Loe, Jennifer; Luszczek, Piotr; Nayak, Pratik; Pranesh, Sri; Rajamanickam, Siva; Ribizel, Tobias; Smith, Barry; Swirydowicz, Kasia; Thomas, Stephen; Tomov, Stanimire; Tsai, Yaohung M.; Yamazaki, Ichitaro; Urike Meier Yang (2020). "A Survey of Numerical Methods Utilizing Mixed Precision Arithmetic". arXiv : 2007.06674 [ cs.MS ].
  9. Micikevicius, Paulius; Narang, Sharan; Alben, Jonah; Diamos, Gregory; Elsen, Erich; Garcia, David; Ginsburg, Boris; Houston, Michael; Kuchaiev, Oleksii (2018-02-15). "Entrenamiento de precisión mixta". arXiv : 1710.03740 [ cs.AI ].
  10. "Precisión mixta: guía de rendimiento de entrenamiento de PyTorch" . residentmario.github.io . Consultado el 10 de septiembre de 2024 .
  11. "Lo que todo usuario debería saber sobre el entrenamiento de precisión mixta en PyTorch" . PyTorch . Consultado el 10 de septiembre de 2024 .
  12. Idelbayev, Yerlan; Carreira-Perpiñán, Miguel Á. (2020). "Compresión de bajo rango de redes neuronales: aprendizaje del rango de cada capa" . Conferencia IEEE/CVF 2020 sobre visión por computadora y reconocimiento de patrones, CVPR 2020, Seattle, WA, EE. UU., 13-19 de junio de 2020. Computer Vision Foundation / IEEE. pp. 8046–8056 . doi : 10.1109/CVPR42600.2020.00807 . ISBN  978-1-7281-7168-5.
  13. Dittmer, Sören; King, Emily J.; Maass, Peter (2020). "Valores singulares para capas ReLU" . IEEE Transactions on Neural Networks and Learning Systems . Vol. 31. IEEE. pp. 3594–3605 . arXiv : 1812.02566 . doi : 10.1109/TNNLS.2019.2945113 .  
  14. Li, Zhuohan; Wallace, Eric; Shen, Sheng; Lin, Kevin; Keutzer, Kurt; Klein, Dan; Gonzalez, Joey (21 de noviembre de 2020). "Entrenar a gran escala y luego comprimir: repensando el tamaño del modelo para un entrenamiento e inferencia eficientes de transformadores" . Actas de la 37.ª Conferencia Internacional sobre Aprendizaje Automático . PMLR: 5958–5968 .
  15. Han, Song; Mao, Huizi; Dally, William J. (2016-02-15). "Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding". arXiv : 1510.00149 [ cs.CV ].
  16. Iandola, Forrest N; Han, Song; Moskewicz, Matthew W; Ashraf, Khalid; Dally, William J; Keutzer, Kurt (2016). "SqueezeNet: precisión a nivel de AlexNet con 50 veces menos parámetros y un tamaño de modelo <0,5 MB". arXiv : 1602.07360 [ cs.CV ].
  • Artículos de revisión
    • Li, Zhuo; Li, Hengyi; Meng, Lin (12 de marzo de 2023). "Compresión de modelos para redes neuronales profundas: una revisión" . Computers . 12 (3). MDPI AG: 60. doi : 10.3390/computers12030060 . ISSN 2073-431X . 
    • Deng, By Lei; Li, Guoqi; Han, Song; Shi, Luping; Xie, Yuan (20 de marzo de 2020). "Compresión de modelos y aceleración de hardware para redes neuronales: una revisión exhaustiva". Actas del IEEE . 108 (4): 485– 532. doi : 10.1109/JPROC.2020.2976475 .
    • Cheng, Yu; Wang, Duo; Zhou, Pan; Zhang, Tao (23 de octubre de 2017). "Una revisión de la compresión y aceleración de modelos para redes neuronales profundas". arXiv : 1710.09282 [ cs.LG ].
    • Choudhary, Tejalal; Mishra, Vipul; Goswami, Anurag; Sarangapani, Jagannathan (8 de febrero de 2020). "Un estudio exhaustivo sobre la compresión y aceleración de modelos". Artificial Intelligence Review . 53 (7). Springer Science and Business Media LLC: 5113– 5155. doi : 10.1007/s10462-020-09816-7 . ISSN 0269-2821 .