Cómo optimizar los modelos de IA

Cómo optimizar los modelos de IA

Respuesta corta: Para optimizar los modelos de IA, elija una restricción principal (latencia, costo, memoria, calidad, estabilidad o rendimiento) y, a continuación, obtenga una línea base fiable antes de realizar cualquier cambio. Elimine primero los cuellos de botella del pipeline y, a continuación, aplique mejoras de bajo riesgo, como la precisión mixta y el procesamiento por lotes. Si la calidad se mantiene, proceda a las herramientas de compilación/tiempo de ejecución y, solo entonces, reduzca el tamaño del modelo mediante cuantificación o destilación cuando sea necesario.

Conclusiones clave:

Restricción : elija una o dos métricas objetivo; la optimización es un conjunto de compensaciones, no de ganancias gratuitas.

Medición : Perfila cargas de trabajo reales con p50/p95/p99, rendimiento, utilización y picos de memoria.

Pipeline : corrija la tokenización, los cargadores de datos, el preprocesamiento y el procesamiento por lotes antes de tocar el modelo.

Servicio : utilice almacenamiento en caché, procesamiento por lotes deliberado, ajuste de simultaneidad y controle de cerca la latencia de cola.

Barandillas : ejecute indicaciones de oro, métricas de tareas y controles puntuales después de cada cambio de rendimiento.

Infografía sobre cómo optimizar los modelos de IA

🔗 Cómo evaluar modelos de IA de manera efectiva
Criterios y pasos clave para juzgar los modelos de manera justa y confiable.

🔗 Cómo medir el rendimiento de la IA con métricas reales
Utilice puntos de referencia, latencia, costos y señales de calidad para comparar.

🔗 Cómo probar modelos de IA antes de la producción
Flujo de trabajo de pruebas prácticas: divisiones de datos, casos de estrés y monitoreo.

🔗 Cómo usar IA para la creación de contenido
Convierta ideas en borradores más rápido con indicaciones estructuradas e iteración.


1) Qué significa “optimizar” en la práctica (porque cada uno lo usa de forma diferente) 🧠

Cuando la gente dice "optimizar un modelo de IA", podrían querer decir:

  • Hazlo más rápido (menor latencia)

  • Hacerlo más barato (menos horas de GPU, menor gasto en la nube)

  • Hacerlo más pequeño (huella de memoria, implementación en el borde)

  • Hacerlo más preciso (mejoras de calidad, menos alucinaciones)

  • Hacerlo más estable (menos varianza, menos fallos en la producción)

  • Facilitar el servicio (rendimiento, procesamiento por lotes, rendimiento predecible)

Aquí está la verdad, aunque un poco molesta: no se pueden maximizar todos estos a la vez. Optimizar es como apretar un globo: se presiona un lado y el otro sale. No siempre, pero sí con la suficiente frecuencia como para que se deban planificar las compensaciones.

Entonces, antes de tocar cualquier cosa, elige tu restricción principal :


2) Cómo es una buena versión de optimización de modelos de IA ✅

Una buena versión de optimización no se limita a "aplicar cuantificación y esperar". Es un sistema. Las mejores configuraciones suelen tener:

  • Una línea base en la que confías.
    Si no puedes reproducir tus resultados actuales, no puedes saber si has mejorado algo. Es simple… pero la gente se lo salta. Y entonces entran en una espiral.

  • Una métrica objetivo clara
    , «Más rápido», es imprecisa. «Reducir la latencia p95 de 900 ms a 300 ms con la misma puntuación de calidad» es un objetivo real.

  • Barreras para la calidad.
    Cada mejora en el rendimiento conlleva el riesgo de una regresión silenciosa de la calidad. Se necesitan pruebas, evaluaciones o, al menos, un conjunto de herramientas de control de calidad.

  • Conciencia del hardware.
    Un modelo "rápido" en una GPU puede arrastrarse en otra. Las CPU son su propio tipo especial de caos.

  • Cambios iterativos, no una reescritura radical.
    Cuando cambias cinco cosas a la vez y el rendimiento mejora, no sabes por qué. Lo cual es… inquietante.

Optimizar debería ser como afinar una guitarra: pequeños ajustes, escuchar atentamente, repetir 🎸. Si es como hacer malabarismos con cuchillos, algo falla.


3) Tabla comparativa: Opciones populares para optimizar modelos de IA 📊

A continuación se muestra una tabla comparativa rápida y algo desordenada de herramientas y enfoques de optimización comunes. No, no es del todo justa; la vida real tampoco lo es.

Herramienta/Opción Audiencia Precio Por qué funciona
torch.compile de PyTorch ( documentación de PyTorch ) Gente de PyTorch Gratis La captura de gráficos + trucos del compilador pueden reducir la sobrecarga... a veces es mágico ✨
ONNX Runtime ( Documentación de ONNX Runtime ) Equipos de implementación Más o menos libre Fuertes optimizaciones de inferencia, amplio soporte, bueno para servicio estandarizado
TensorRT ( documentación de NVIDIA TensorRT ) Implementación de NVIDIA Vibraciones pagadas (a menudo agrupadas) Fusión de kernel agresiva + manejo de precisión, muy rápido cuando hace clic
DeepSpeed ​​( documentación de ZeRO ) Equipos de entrenamiento Gratis Optimizaciones de memoria y rendimiento (ZeRO, etc.). Puede parecer un motor a reacción
FSDP (PyTorch) ( Documentación de PyTorch FSDP ) Equipos de entrenamiento Gratis Parámetros/gradientes de fragmentos que hacen que los modelos grandes sean menos intimidantes
cuantificación de bits y bytes ( bitsandbytes ) Experimentos con LLM Gratis Pesos bajos en bits, gran ahorro de memoria: la calidad depende, pero ufff 😬
Destilación ( Hinton et al., 2015 ) Equipos de productos “Costo de tiempo” El modelo de estudiante más pequeño hereda el comportamiento, generalmente el mejor retorno de la inversión a largo plazo
Poda ( Tutorial de poda de PyTorch ) Investigación + producción Gratis Elimina el peso muerto. Funciona mejor cuando se combina con el reentrenamiento
Atención Flash / núcleos fusionados ( documento FlashAttention ) Fanáticos del rendimiento Gratis Atención más rápida, mejor memoria. Una verdadera victoria para los transformadores
Servidor de inferencia Triton ( procesamiento por lotes dinámico ) Operaciones/infraestructura Gratis Producción, procesamiento por lotes, tuberías multimodelo: se siente empresarial

Confesión de peculiaridad de formato: "Precio" es un poco desordenado porque el código abierto todavía puede costarte un fin de semana de depuración, lo cual es... un precio. 😵💫


4) Comienza con la medición: perfila como si lo sintieras 🔍

Si sólo haces una cosa de toda esta guía, haz esto: medir correctamente.

En mis propias pruebas, los mayores "avances de optimización" surgieron al descubrir algo vergonzosamente simple como:

  • El cargador de datos está dejando sin recursos a la GPU

  • Cuello de botella en el preprocesamiento de la CPU

  • Lotes de tamaño pequeño que provocan sobrecarga en el lanzamiento del núcleo

  • Tokenización lenta (los tokenizadores pueden ser villanos silenciosos)

  • Fragmentación de memoria ( notas del asignador de memoria CUDA de PyTorch )

  • Una sola capa que domina la computación

Qué medir (conjunto mínimo)

  • Latencia (p50, p95, p99) ( SRE en percentiles de latencia )

  • Rendimiento (tokens/seg, solicitudes/seg)

  • Utilización de la GPU (computación + memoria)

  • Picos de VRAM/RAM

  • Costo por cada 1k tokens (o por inferencia)

Mentalidad práctica de elaboración de perfiles

  • Describe un escenario que te interese (que no sea un tema de discusión).

  • Registra todo en un pequeño "diario de rendimiento".
    Sí, es tedioso... pero te ahorra el gaslighting después.

(Si desea una herramienta concreta para comenzar: PyTorch Profiler ( torch.profiler docs ) y Nsight Systems ( NVIDIA Nsight Systems ) son los sospechosos habituales).


5) Optimización de datos y entrenamiento: el superpoder silencioso 📦🚀

La gente se obsesiona con la arquitectura del modelo y olvida el pipeline. Mientras tanto, este consume silenciosamente la mitad de la GPU.

Victorias fáciles que aparecen rápidamente

  • Utilice precisión mixta (FP16/BF16 donde sea estable) ( PyTorch AMP / torch.amp ).
    Generalmente más rápido, a menudo bien, pero tenga cuidado con las peculiaridades numéricas.

  • Acumulación de gradiente cuando el tamaño del lote es limitado ( Guía de aceleración )
    Mantiene la optimización estable sin explotar la memoria.

  • Puntos de control de gradiente ( torch.utils.checkpoint )
    Intercambia capacidad de procesamiento por memoria, lo que hace posibles contextos más grandes.

  • Tokenización eficiente ( 🤗 Tokenizadores ).
    La tokenización puede convertirse en un cuello de botella a gran escala. No es glamorosa, pero importa.

  • Ajuste del cargador de datos
    Más trabajadores, memoria fija, precarga: discreto pero efectivo 😴➡️💪 ( Guía de ajuste del rendimiento de PyTorch )

Ajuste fino de parámetros eficiente

Si estás ajustando modelos grandes, los métodos PEFT (como los adaptadores tipo LoRA) pueden reducir drásticamente el coste de entrenamiento y, al mismo tiempo, mantener una solidez sorprendente ( 🤗 Guía PEFT de Transformers , artículo sobre LoRA ). Este es uno de esos momentos en los que uno se pregunta: "¿Por qué no lo hicimos antes?".


6) Optimización a nivel de arquitectura: dimensione correctamente el modelo 🧩

A veces la mejor manera de optimizar es… dejar de usar un modelo demasiado grande para la tarea. Lo sé, es un sacrilegio 😄.

Haga un llamado a algunos conceptos básicos:

  • Decide si necesitas vibraciones de inteligencia general o de un especialista.

  • Mantenga la ventana de contexto tan grande como sea necesario, no más grande.

  • Utilice un modelo entrenado para el trabajo en cuestión (modelos de clasificación para el trabajo de clasificación, etc.).

Estrategias prácticas de dimensionamiento adecuado

  • Cambie a una red troncal más pequeña para la mayoría de las solicitudes.
    Luego, dirija las “consultas difíciles” a un modelo más grande.

  • Usa una configuración de dos etapas.
    Borradores de modelos rápidos, un modelo más sólido verifica o edita.
    Es como escribir con un amigo exigente: molesto, pero efectivo.

  • Reducir la longitud de salida.
    Los tokens de salida cuestan dinero y tiempo. Si tu modelo divaga, pagas por ello.

He visto a equipos reducir drásticamente sus costos al imponer plazos de entrega más cortos. Parece insignificante, pero funciona.


7) Optimizaciones del compilador y gráficos: de dónde proviene la velocidad 🏎️

Esta es la capa "hacer que la computadora haga cosas más inteligentes".

Técnicas comunes:

En pocas palabras: tu modelo puede ser rápido matemáticamente, pero lento operativamente. Los compiladores solucionan algunos problemas.

Notas prácticas (también conocidas como cicatrices)

  • Estas optimizaciones pueden ser sensibles a los cambios de forma del modelo.

  • Algunos modelos aceleran mucho, otros apenas se mueven.

  • A veces se produce una aceleración y aparece un error desconcertante, como si hubiera entrado un gremlin 🧌

Aún así, cuando funciona, es una de las victorias más limpias.


8) Cuantización, Poda, Destilación: Más Pequeño Sin Llorar (Demasiado) 🪓📉

Esta es la sección que la gente quiere… porque parece una actuación gratuita. Puede serlo, pero hay que tratarlo como una cirugía.

Cuantización (pesos/activaciones de menor precisión)

  • Excelente para la velocidad de inferencia y la memoria

  • Riesgo: la calidad disminuye, especialmente en casos extremos

  • Mejor práctica: evaluar en un conjunto de pruebas real, no en vibraciones

Sabores comunes de los que oirás hablar:

Poda (eliminar parámetros)

  • Elimina pesos o estructuras “sin importancia” ( tutorial de poda de PyTorch )

  • Generalmente necesita volver a capacitarse para recuperar la calidad

  • Funciona mejor de lo que la gente piensa… cuando se hace con cuidado

Destilación (el estudiante aprende del profesor)

Esta es mi palanca favorita a largo plazo. La destilación puede producir un modelo más pequeño con un comportamiento similar y, a menudo, es más estable que la cuantificación extrema ( Destilando el conocimiento en una red neuronal ).

Una metáfora imperfecta: la destilación es como verter una sopa compleja a través de un filtro y obtener… una sopa más pequeña. No es así como funciona la sopa, pero ya entiendes la idea 🍲.


9) Servicio e inferencia: la verdadera zona de batalla 🧯

Puedes optimizar un modelo y aun así entregarlo mal. El servicio es donde la latencia y el costo se vuelven cruciales.

Sacando victorias que importan

  • El procesamiento por lotes
    mejora el rendimiento, pero aumenta la latencia si se excede. Equilíbralo. ( Aplicación por lotes dinámica de Triton )

  • El almacenamiento en
    caché de solicitudes y la reutilización de caché KV pueden ser enormes en contextos repetidos. ( Explicación de la caché KV )

  • Salida de streaming:
    Los usuarios la perciben más rápida incluso si el tiempo total es similar. La percepción es importante 🙂.

  • Reducción de gastos generales token a token.
    Algunas pilas realizan trabajo extra por token. Reduce esos gastos generales y obtendrás grandes ganancias.

Tenga cuidado con la latencia de cola

Tu promedio puede parecer excelente, mientras que tu p99 es un desastre. Desafortunadamente, los usuarios viven en la cola. ( «Latencia de cola» y por qué mienten los promedios ).


10) Optimización consciente del hardware: adapta el modelo a la máquina 🧰🖥️

Optimizar sin tener en cuenta el hardware es como tunear un coche de carreras sin revisar los neumáticos. Claro, se puede hacer, pero es un poco absurdo.

Consideraciones sobre la GPU

  • El ancho de banda de la memoria es a menudo el factor limitante, no el cómputo puro

  • Los lotes de mayor tamaño pueden ayudar, hasta que dejen de serlo

  • Las optimizaciones de atención y fusión de kernel son muy importantes para los transformadores ( FlashAttention: atención exacta consciente de IO )

Consideraciones sobre la CPU

  • El subprocesamiento, la vectorización y la localidad de memoria son muy importantes

  • La sobrecarga de la tokenización puede dominar ( 🤗 Tokenizadores “rápidos” )

  • Es posible que necesites estrategias de cuantificación diferentes a las de la GPU

Consideraciones sobre dispositivos móviles y de borde

  • La huella de memoria se convierte en la prioridad número uno

  • La variación de latencia es importante porque los dispositivos son… cambiantes

  • Los modelos más pequeños y especializados a menudo superan a los grandes modelos generales


11) Barandillas de calidad: No te "optimices" hasta convertirte en un error 🧪

Cada victoria rápida debería venir con un control de calidad. De lo contrario, celebrarás, enviarás el proyecto y luego recibirás un mensaje como "¿Por qué el asistente de repente habla como un pirata?" 🏴☠️

Barandillas pragmáticas:

  • Indicaciones de oro (conjunto fijo de indicaciones que siempre prueba)

  • Métricas de tareas (precisión, F1, BLEU, lo que sea adecuado)

  • Controles humanos puntuales (sí, en serio)

  • Umbrales de regresión (“no se permite una caída mayor al X%)

También realice un seguimiento de los modos de fallo:

  • desviación del formato

  • cambios en el comportamiento de rechazo

  • frecuencia de alucinaciones

  • inflación de la longitud de respuesta

La optimización puede cambiar el comportamiento de maneras sorprendentes. De forma peculiar. De forma irritante. De forma predecible, en retrospectiva.


12) Lista de verificación: Cómo optimizar los modelos de IA paso a paso ✅🤖

Si desea un orden claro de operaciones sobre cómo optimizar los modelos de IA , este es el flujo de trabajo que tiende a mantener a la gente cuerda:

  1. Definir el éxito
    Elija 1 o 2 métricas principales (latencia, costo, rendimiento, calidad).

  2. Mide
    las cargas de trabajo reales del perfil de referencia, registra p50/p95, memoria y coste. ( PyTorch Profiler )

  3. Solucionar cuellos de botella en la canalización
    Carga de datos, tokenización, preprocesamiento y procesamiento por lotes.

  4. Aplique cálculos de bajo riesgo que logren
    precisión mixta, optimizaciones del kernel y mejor procesamiento por lotes.

  5. Pruebe optimizaciones de compilador/tiempo de ejecución
    Captura de gráficos, tiempos de ejecución de inferencia, fusión de operadores. ( Tutorial de torch.compile , documentación de ONNX Runtime )

  6. Reducir el coste del modelo
    Cuantifique con cuidado, destile si puede, pode si es necesario.

  7. Ajuste del servicio de almacenamiento
    en caché, concurrencia, pruebas de carga y correcciones de latencia de cola.

  8. Validar la calidad
    Ejecute pruebas de regresión y compare los resultados lado a lado.

  9. Iterar.
    Pequeños cambios, notas claras, repetir. Discreto, pero efectivo.

Y sí, esto sigue siendo " Cómo optimizar modelos de IA", aunque parezca más bien "Cómo dejar de pisar rastrillos". Lo mismo.


13) Errores comunes (para que no los repitas como el resto de nosotros) 🙃

  • Optimizar antes de medir.
    Perderás tiempo. Y luego optimizarás lo incorrecto con total seguridad.

  • Persiguiendo un único punto de referencia.
    Los puntos de referencia mienten por omisión. Tu carga de trabajo es la verdad.

  • Ignorar la memoria.
    Los problemas de memoria causan ralentizaciones, bloqueos y vibraciones. ( Comprender el uso de memoria de CUDA en PyTorch )

  • Sobrecuantizar demasiado pronto
    La cuantificación de bits bajos puede ser sorprendente, pero comience primero con pasos más seguros.

  • Sin plan de reversión.
    Si no se puede revertir rápidamente, cada implementación se vuelve estresante. El estrés genera errores.


Notas de cierre: La forma humana de optimizar 😌⚡

Optimizar modelos de IA no es un truco sencillo. Es un proceso en capas: medir, corregir la canalización, usar compiladores y entornos de ejecución, optimizar la entrega y, si es necesario, reducir el modelo con cuantificación o destilación. Hazlo paso a paso, mantén los límites de calidad y no te fíes de la métrica "se siente más rápido" (tus sensaciones son maravillosas, no son un generador de perfiles).

Si quieres la conclusión más corta:

  • Mide primero 🔍

  • Optimiza el pipeline a continuación 🧵

  • Luego optimiza el modelo 🧠

  • Luego optimiza el servicio 🏗️

  • Mantén siempre los controles de calidad ✅

Y si te sirve de ayuda, recuerda: el objetivo no es un "modelo perfecto". El objetivo es un modelo que sea rápido, asequible y lo suficientemente confiable como para que puedas dormir por la noche... casi todas las noches 😴.

Preguntas frecuentes

Qué significa optimizar un modelo de IA en la práctica

"Optimizar" suele significar mejorar una limitación principal: latencia, coste, consumo de memoria, precisión, estabilidad o rendimiento del servicio. Lo difícil es encontrar soluciones intermedias: impulsar un área puede perjudicar otra. Un enfoque práctico consiste en elegir un objetivo claro (como la latencia p95 o el tiempo de calidad) y optimizar para alcanzarlo. Sin un objetivo, es fácil "mejorar" y aun así perder.

Cómo optimizar los modelos de IA sin perjudicar silenciosamente la calidad

Considere cada cambio de velocidad o costo como una posible regresión silenciosa. Utilice medidas de seguridad como indicaciones de oro, métricas de tareas y comprobaciones rápidas realizadas por personas. Establezca un umbral claro para la desviación de calidad aceptable y compare los resultados en paralelo. Esto evita que la pregunta "¿es más rápido?" se convierta en "¿por qué se volvió extraño de repente en producción?" después del lanzamiento.

Qué medir antes de empezar a optimizar

Comienza con los percentiles de latencia (p50, p95, p99), el rendimiento (tokens/s o solicitudes/s), el uso de la GPU y el pico de VRAM/RAM. Monitorea el costo por inferencia o por cada 1000 tokens si el costo es una limitación. Describe un escenario real que uses, no un modelo de simulación. Llevar un registro de rendimiento te ayuda a evitar conjeturas y errores repetidos.

Victorias rápidas y de bajo riesgo para el rendimiento del entrenamiento

La precisión mixta (FP16/BF16) suele ser la primera palanca más rápida, pero tenga cuidado con las peculiaridades numéricas. Si el tamaño del lote es limitado, la acumulación de gradientes puede estabilizar la optimización sin sobrecargar la memoria. Los puntos de control de gradientes compensan el exceso de cómputo por menos memoria, lo que permite contextos más amplios. No ignore la tokenización y el ajuste del cargador de datos, ya que pueden sobrecargar silenciosamente la GPU.

Cuándo usar torch.compile, ONNX Runtime o TensorRT

Estas herramientas se enfocan en la sobrecarga operativa: captura de grafos, fusión de kernels y optimizaciones de grafos en tiempo de ejecución. Pueden ofrecer mejoras de velocidad de inferencia limpias, pero los resultados varían según la forma del modelo y el hardware. Algunas configuraciones parecen mágicas; otras apenas se mueven. Es posible que se produzcan cambios de forma y errores ocasionales; mida antes y después con su carga de trabajo real.

Si vale la pena cuantificar y cómo evitar ir demasiado lejos

La cuantificación puede reducir drásticamente la memoria y acelerar la inferencia, especialmente con INT8, pero la calidad puede disminuir en casos extremos. Las opciones de menor precisión (como INT4/k bits) ofrecen mayores ahorros, pero con mayor riesgo. La práctica más segura es evaluar en un conjunto de pruebas real y comparar los resultados, no basarse en la intuición. Empiece con los pasos más seguros primero y luego reduzca la precisión solo si es necesario.

La diferencia entre poda y destilación para la reducción del tamaño del modelo

La poda elimina parámetros de peso muerto y suele requerir reentrenamiento para recuperar la calidad, especialmente cuando se realiza de forma agresiva. La destilación entrena un modelo de estudiante más pequeño para imitar el comportamiento de un profesor más grande, y puede ofrecer un ROI a largo plazo más sólido que la cuantificación extrema. Si se busca un modelo más pequeño con un comportamiento similar y estable, la destilación suele ser la opción más limpia.

Cómo reducir los costos de inferencia y la latencia mediante mejoras en el servicio

El servicio es donde la optimización se hace tangible: el procesamiento por lotes aumenta el rendimiento, pero puede afectar la latencia si se abusa de él, así que ajústelo con cuidado. El almacenamiento en caché (almacenamiento en caché de indicaciones y reutilización de caché KV) puede ser enorme cuando los contextos se repiten. La salida en streaming mejora la velocidad percibida incluso si el tiempo total es similar. También debe tener en cuenta la sobrecarga token a token en su pila: el trabajo pequeño por token se acumula rápidamente.

Por qué la latencia de cola es tan importante al optimizar los modelos de IA

Los promedios pueden verse bien, mientras que p99 es un desastre, y los usuarios tienden a estar en la cola. La latencia de cola suele deberse a fluctuaciones: fragmentación de memoria, picos de preprocesamiento de la CPU, ralentizaciones de la tokenización o un comportamiento deficiente en el procesamiento por lotes. Por eso, la guía hace hincapié en los percentiles y las cargas de trabajo reales. Si solo optimiza p50, puede ofrecer una experiencia que "se sienta lenta de forma aleatoria"

Referencias

  1. Amazon Web Services (AWS) : Percentiles de AWS CloudWatch (definiciones de estadísticas) - docs.aws.amazon.com

  2. Google - La cola a escala (mejores prácticas de latencia de cola) - sre.google

  3. Google - Objetivos de nivel de servicio (Libro SRE) - Percentiles de latencia - sre.google

  4. PyTorch - antorcha.compilación - docs.pytorch.org

  5. PyTorch - Datos completamente fragmentados en paralelo (FSDP) - docs.pytorch.org

  6. PyTorch - Generador de perfiles de PyTorch - docs.pytorch.org

  7. PyTorch - Semántica de CUDA: gestión de memoria (notas sobre el asignador de memoria de CUDA) - docs.pytorch.org

  8. PyTorch - Precisión mixta automática (torch.amp / AMP) - docs.pytorch.org

  9. PyTorch - torch.utils.checkpoint - docs.pytorch.org

  10. PyTorch - Guía de optimización del rendimiento - docs.pytorch.org

  11. PyTorch - Tutorial de poda - docs.pytorch.org

  12. PyTorch : Comprensión del uso de memoria CUDA en PyTorch - docs.pytorch.org

  13. PyTorch - tutorial/descripción general de torch.compile - docs.pytorch.org

  14. Tiempo de ejecución de ONNX - Documentación de tiempo de ejecución de ONNX - onnxruntime.ai

  15. NVIDIA - Documentación de TensorRT - docs.nvidia.com

  16. NVIDIA - Tipos cuantificados de TensorRT - docs.nvidia.com

  17. NVIDIA - Sistemas Nsight - developer.nvidia.com

  18. NVIDIA - Servidor de inferencia Triton - procesamiento por lotes dinámico - docs.nvidia.com

  19. DeepSpeed ​​- Documentación de ZeRO Stage 3 - deepspeed.readthedocs.io

  20. bitsandbytes (bitsandbytes-foundation) - bitsandbytes - github.com

  21. Hugging Face - Acelerar: Guía de acumulación de gradientes - huggingface.co

  22. Hugging Face - Documentación de tokenizadores - huggingface.co

  23. Cara Abrazándose - Transformers: Guía PEFT - huggingface.co

  24. Cara Abrazándose - Transformers: Explicación del caché KV - huggingface.co

  25. Hugging Face - Transformers: Tokenizadores "rápidos" (clases de tokenizadores) - huggingface.co

  26. arXiv - Destilando el conocimiento en una red neuronal (Hinton et al., 2015) - arxiv.org

  27. arXiv - LoRA: Adaptación de bajo rango de grandes modelos lingüísticos - arxiv.org

  28. arXiv - FlashAttention: Atención precisa, rápida y eficiente en memoria con IO-Awareness - arxiv.org

Encuentra la última IA en la tienda oficial de AI Assistant

Sobre nosotros

Volver al blog