Las últimas tendencias de IA presentadas por expertos
Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .
En machine learning, la inferencia de IA es el acto de utilizar un modelo de IA entrenado para hacer predicciones sobre datos nuevos. Esencialmente, cualquier instancia de un modelo de inteligencia artificial que realmente genere resultados o tome decisiones en una aplicación de IA del mundo real constituye una inferencia de IA. En términos sencillos, la inferencia de IA consiste en que un modelo entrenado aplique los patrones que ha aprendido de sus datos de entrenamiento para inferir el resultado correcto a partir de una entrada determinada.
Todo el machine learning, desde los modelos de detección de spam por correo electrónico hasta los sistemas de navegación que impulsan autos autónomos y la IA generativa, se reduce al reconocimiento de patrones. Los modelos están “entrenados” para funcionar bien en un conjunto de datos de tareas de muestra o puntos de datos. Durante el entrenamiento del modelo , los parámetros (e hiperparámetros) del modelo se ajustan hasta que la toma de decisiones del modelo se “adapte” a los patrones de los datos de entrenamiento. La suposición central del machine learning es que si los datos de entrenamiento son lo suficientemente relevantes para lo que el modelo verá en escenarios del mundo real, hará predicciones precisas en esos casos de uso del mundo real.
Mientras que gran parte de la jerga de IA es altamente técnica, “inferencia de IA” es en realidad un término literal e intuitivo.
Un modelo de forecasting bursátil no sabe cómo cambiará el precio de una acción determinada; infiere, en función de cómo se compara el historial de esa acción con las tendencias pasadas en el movimiento del precio de las acciones, qué sucederá después.
Un modelo de detección de spam no sabe si un correo electrónico dado es spam; infiere, basándose en el grado de similitud de ese correo electrónico con los ejemplos de spam que vio durante el entrenamiento, si se trata de spam o no.
Un modelo de lenguaje grande (LLM) infiere iterativamente cuál será la siguiente palabra, o más bien, token,en función de los patrones lingüísticos de los millones de muestras de texto con las que se entrenó.
Las redes sociales infieren con qué contenido es más probable que interactúe en función del contenido con el que usted y personas similares a usted han interactuado antes.
Mientras que el objetivo del entrenamiento de IA es lograr la precisión y alineación del modelo, el objetivo de la inferencia de IA es desplegar ese modelo entrenado de una manera eficiente y rentable al máximo. El mismo modelo de IA puede funcionar de manera diferente en diferentes marcos de inferencia.
No existe una única configuración de inferencia de IA “óptima”. Hay muchas formas diferentes de dividir cargas de trabajo, diferentes tipos de hardware (y algoritmos computacionales con los que usarlos) y diferentes entornos en los que acceder a ese hardware. La configuración ideal para un escenario concreto dependerá de la naturaleza de su caso de uso y de su carga de trabajo. Para las empresas, el desafío suele ser identificar un enfoque de inferencia que equilibre el deseo de baja latencia con la necesidad de ser escalable y rentable.
Tanto la inferencia de IA como el entrenamiento de IA implican un modelo que hace predicciones sobre los datos de entrada. La diferencia radica en sus respectivos propósitos y, en el caso del entrenamiento de IA, en los pasos adicionales que se dan hacia ese propósito.
La capacitación es donde se produce el “aprendizaje” en machine learning. En el entrenamiento de modelos, un modelo de machine learning hace predicciones sobre un lote de ejemplos de datos de entrenamiento. En el aprendizaje supervisado, una función de pérdida calcula el error promedio (o “pérdida”) de cada predicción, y se utiliza un algoritmo de optimización para actualizar los parámetros del modelo de manera que se reduzca la pérdida. Este proceso se repite iterativamente hasta que la pérdida se haya minimizado a un nivel aceptable. El aprendizaje por refuerzo funciona de manera similar, aunque con el objetivo de maximizar una función de recompensa en lugar de minimizar una función de pérdida.
En resumen, el entrenamiento de la IA suele implicar tanto un pase hacia adelante, en el que el modelo genera una salida en respuesta a cada entrada, como un pase hacia atrás, en el que se calculan las posibles mejoras de los parámetros del modelo. Estas actualizaciones de parámetros comprenden el “conocimiento” de un modelo de machine learning.
En la inferencia de IA, el modelo entrenado hace predicciones sobre datos de entrada del mundo real. La inferencia de IA funciona mediante el uso de lo que ha “aprendido”, es decir, las actualizaciones de parámetros del modelo que se realizaron para mejorar su rendimiento en los datos de entrenamiento, para inferir el resultado correcto para los nuevos datos de entrada. A diferencia del entrenamiento de modelos, la inferencia implica solo un pase hacia adelante.
Si bien el entrenamiento y la inferencia suelen ser etapas separadas y distintas, vale la pena señalar que no son mutuamente excluyentes. Por ejemplo, el algoritmo de recomendación de una plataforma de redes sociales ya se entrenó con grandes conjuntos de datos del comportamiento de los usuarios antes de unirse a la plataforma, y realiza inferencias cada vez que le proporciona sugerencias de contenido. Pero ese modelo entrenado también se ajusta continuamente a sus comportamientos individuales, refinando sus sugerencias en función de cómo interactúa personalmente con el contenido.
Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .
“Tipo” es una palabra confusa: hay muchas formas de ejecutar la inferencia de IA y, por lo tanto, muchas formas de delinear sus variantes. Pero las dos categorías más fundamentales de estrategia de inferencia de IA son la inferencia por lotes y la inferencia en línea.
En la inferencia en línea, un modelo entrenado procesa los datos de entrada inmediatamente, una entrada a la vez. La inferencia en línea es apropiada para cualquier sistema de IA cuyos resultados sean urgentes (como vehículos autónomos, ofertas de anuncios digitales o precios dinámicos) o que requieran interacciones en vivo con los usuarios (como chatbots o traducción automática).
La inferencia en línea generalmente implica mayores costos y complejidad, especialmente para cargas de trabajo pesadas y las grandes redes neuronales que potencian los modelos de aprendizaje profundo, pero a menudo es necesaria para cualquier caso de uso del mundo real que requiera la toma de decisiones en tiempo real. Un chatbot o un vehículo autónomo debe procesar los datos en tiempo real para evitar degradar la experiencia del usuario. La utilidad de un sistema de IA que predice si un solicitante determinado debe recibir un préstamo no se ve realmente afectada por un ligero retraso entre la entrada y la salida, pero en un vehículo autónomo, unos pocos milisegundos adicionales de retraso podrían poner en peligro a los pasajeros.
En la inferencia por lotes, un modelo entrenado procesa un gran volumen de entradas de manera asíncrona en grupos (o “lotes”). Cada lote suele programarse para una hora determinada: por ejemplo, una empresa podría utilizar la inferencia por lotes para ejecutar informes nocturnos sobre toda la actividad de ese día. Esto permite mayor flexibilidad y eficiencia, haciendo que la inferencia por lotes sea la opción más rentable. Sin embargo, solo es práctico en situaciones en las que la puntualidad no es importante.
La inferencia por lotes también permite un uso más eficiente del hardware. Por ejemplo, las GPU contienen muchos miles de unidades de procesamiento (o “núcleos”), cada una de las cuales puede realizar cálculos simultáneamente en paralelo. Ejecutar una inferencia para una sola entrada que no enlista todos esos núcleos es como dejar asientos vacíos en un bus: podría ser necesario en situaciones urgentes, pero es un uso subóptimo de los recursos. La inferencia por lotes le permite ejecutar la inferencia solo una vez que su hardware está “lleno”, por así decirlo.
Además, los parámetros del modelo, que, para los modelos de aprendizaje profundo, a menudo comprenden miles de millones literales de pesos de modelo, deben cargarse en la memoria del sistema cada vez que se realiza la inferencia. Esto implica consumo y costos de energía. La inferencia por lotes reduce el número de veces que los pesos deben cargar en la RAM, repartiendo el costo a lo largo de todo el lote.
El microprocesamiento por lotes es un enfoque intermedio entre la inferencia en línea y la inferencia por lotes: como su nombre indica, implica ejecutar la inferencia en pequeños lotes.
No hay un tamaño de lote claro y cuantificable que diferencie el “microprocesamiento por lotes” del “procesamiento por lotes”. En cambio, los dos enfoques se diferencian principalmente por sus objetivos: el microprocesamiento por lotes tiene como objetivo aumentar el rendimiento del modelo mientras (en su mayoría) preserva la velocidad del modelo, mientras que la inferencia por lotes convencional tiene como objetivo maximizar la eficiencia y generalmente no tiene en cuenta la latencia. En la inferencia por lotes, una entrada puede procesarse minutos o incluso horas después de recibirse, pero el microprocesamiento por lotes generalmente tiene como objetivo no más milisegundos a unos pocos segundos de retraso.
Quizás la aplicación más destacada del microprocesamiento por lotes es la inferencia de LLM basada en la nube a través de plataformas importantes, como Claude de Anthropic o ChatGPT de OpenAI. Cuando miles de usuarios aplican un chatbot simultáneamente, estos servicios suelen procesar múltiples instrucciones en paralelo, aumentando la eficiencia sin que haya retrasos perceptibles para los usuarios finales individuales.
Una de las consideraciones más importantes al diseñar un ecosistema de IA es decidir dónde se ejecutará realmente la carga de trabajo de inferencia. En otras palabras, dónde se encuentra el hardware y cómo accederá a ese hardware.
Los entornos de despliegue generalmente se dividen en una de cuatro categorías, cada una de las cuales tiene sus propias fortalezas y compensaciones.
On-premises
Nube
Despliegue en los bordes
En el dispositivo
En el despliegue on-premises (“on-prem”), los modelos de IA se ejecutan en hardware físico que usted o su organización posee y mantiene por cuenta propia.
El despliegue on-prem ofrece el mayor control posible sobre las cargas de trabajo de IA, ya que usted mismo tiene autonomía sobre cómo y cuándo se procesan los datos y se asignan los recursos computacionales. Esto es especialmente beneficioso en industrias altamente reguladas, como la atención médica, las finanzas, el gobierno y el derecho, en las que es obligatorio cumplir estrictamente con los requisitos de privacidad y seguridad de los datos.
Ese control conlleva una contrapartida en cuanto al costo y la mano de obra que implica. El despliegue on-prem, especialmente con el hardware necesario para cargas de trabajo a escala empresarial y los modelos masivos típicamente asociados con la IA generativa, implica una gran inversión inicial. Esto también implica la necesidad de contar con profesionales de TI dedicados para gestionar esos servidores.
En el despliegue en la nube, los modelos se ejecutan en servidores remotos gestionados por proveedores externos (como IBM) en un gran centro de datos. Esto permite a una organización utilizar hardware de IA de alta potencia sin la enorme inversión inicial necesaria para comprarlo o la mano de obra continua para mantenerlo. Como tal, el despliegue en la nube suele representar la ruta más rápida hacia la escalabilidad, especialmente en circunstancias en las que debe escalar rápidamente sus recursos computacionales para satisfacer algún pico de demanda.
Esa flexibilidad y escalabilidad conlleva una compensación en la soberanía de los datos y, en algunos casos, la latencia y los costos a largo plazo. Los datos pueden desplazarse constantemente hacia y desde los servidores en la nube, lo que podría tener un efecto negativo en la velocidad de inferencia (aunque esto suele compensarse con el hardware más potente que suelen ofrecer los principales proveedores de la nube). Eso también introduce complicaciones teóricas con respecto a la procedencia de los datos, ya que los datos están expuestos a más entidades de las que estarían en escenarios on-prem.
El despliegue perimetral se refiere a la utilización de recursos computacionales que están físicamente cerca de la fuente de datos, como a través de dispositivos del Internet de las Cosas (IoT) y redes de área local.
En términos generales, el despliegue perimetral puede entenderse como algo parecido a una “nube on premises”. Es más beneficioso cuando los datos deben agregarse o distribuirse a una serie de dispositivos, como sensores en una línea de ensamblaje de fábrica o dispositivos de monitoreo en un hospital, y procesarse casi en tiempo real. En tales escenarios, ejecutar inferencias a través de dispositivos en el “perímetro” de una red local permite un procesamiento más rápido y una mayor privacidad de lo que sería posible a través del despliegue en la nube.
Esos beneficios se mitigan, en cierta medida, por el hecho de que la computación perimetral suele contar con hardware relativamente limitado en comparación con lo que está disponible a través de los proveedores de la nube. Y a medida que las redes locales crecen, la gestión de actualizaciones en cientos o miles de “nodos perimetrales” se vuelve cada vez más compleja.
El despliegue en el dispositivo es el más sencillo: la inferencia de IA se ejecuta directamente en el dispositivo del usuario final, como una computadora portátil o un teléfono inteligente.
El despliegue en el dispositivo es simple y seguro, y en teoría proporciona la mayor privacidad posible al usuario. Por supuesto, está limitado por la capacidad informática del propio dispositivo: la capacidad informática disponible en un teléfono inteligente, o incluso en una computadora de consumo de alto rendimiento, generalmente palidece en comparación con la del hardware especializado. Particularmente en los teléfonos inteligentes, la inferencia en el dispositivo suele limitarse a tareas específicas, como filtros de cámara, reconocimiento facial o voz a texto.
La inferencia de IA es un proceso complejo que implica capacitar un modelo de IA en conjuntos de datos apropiados hasta que pueda inferir respuestas precisas. Este es un proceso altamente intensivo en computación, que requiere hardware y software especializado. Antes de analizar el proceso de entrenamiento de modelos de IA para la inferencia de IA, exploremos algunos de los hardware especializados que lo permiten:
Como su nombre indica, las GPU fueron diseñadas originalmente para renderizar gráficos (como en los videojuegos). Renderizar gráficos 3D, como hacer inferencia para redes neuronales profundas, requiere multiplicaciones masivas de matrices; por ejemplo, para calcular los efectos de la luz y la textura en miles de pixeles simultáneamente.
La capacidad de usar ese paralelismo para matemáticas (en lugar de gráficos) dio un gran salto cuando NVIDIA introdujo Compute Unified Device Architecture (CUDA), una plataforma de software, API y modelo de programación que permite a los desarrolladores escribir código que se ejecuta directamente en los miles de dispositivos paralelos. núcleos de GPU. Hoy en día, las GPU siguen siendo el hardware estándar de la industria para entrenar y ejecutar modelos de aprendizaje profundo.
Las TPU son chips personalizados patentados de Google, creados específicamente para redes neuronales. Mientras que las GPU son procesadores paralelos flexibles y de uso general, las TPU están diseñadas exclusivamente para matemáticas matriciales de alta velocidad. Aunque son menos versátiles que las GPU, las TPU ofrecen mayor velocidad y eficiencia energética al procesar grandes cantidades de datos de redes neuronales.
Las unidades de procesamiento neuronal (NPU), como las TPU, se diseñaron explícitamente para procesar los cálculos de las redes neuronales. Por lo general, se utilizan en teléfonos inteligentes y otros dispositivos móviles, ya que sus capacidades más enfocadas reducen el consumo de energía en relación con el de las GPU.
Las matrices de puertas programables en campo (FPGA) son un tipo de circuito integrado configurable que se puede programar (y reprogramar) para adaptarse a las demandas de aplicaciones específicas, incluidas las operaciones de inteligencia artificial. Aunque generalmente ofrecen menos potencia de procesamiento que las GPU de primer nivel, las FPGA son ventajosas cuando se necesita una personalización extrema.
Los ASICS, a diferencia de las FPGA, no se puede personalizar ni reconfigurar. Están diseñados explícitamente para realizar una sola tarea con la máxima eficiencia. Las TPU de Google, por ejemplo, son ASIC diseñados para realizar exclusivamente operaciones de redes neuronales a través de TensorFlow, PyTorch y JAX.
Las cargas de trabajo de entrenamiento o inferencia de un modelo de IA generativa de gran tamaño suelen superar la capacidad incluso del hardware acelerador más potente. Cuando su carga de trabajo es demasiado grande para una sola GPU, puede distribuirse entre varios procesadores utilizando una o más técnicas de paralelismo para dividir y distribuir el trabajo. Existen muchos paradigmas de paralelismo, pero los más destacados son el paralelismo de datos, el paralelismo tensorial y el paralelismo de pipelines.
Los desarrolladores suelen recurrir a marcos de código abierto como vLLM para optimizar y simplificar el proceso de distribución de la inferencia entre múltiples dispositivos.
En el paralelismo de datos, se copia una réplica del modelo completo en cada procesador. El conjunto de datos de entrada en sí se divide en varios lotes (o “fragmentos”) y cada copia del modelo, es decir, cada procesador, maneja un solo lote. Aunque quizá sea la forma más sencilla de lograr el paralelismo, requiere que cada procesador tenga suficiente capacidad para almacenar todos los parámetros del modelo en la memoria. Cuando se trata de LLM más grandes y modelos de lenguaje de visión (VLM) con docenas o cientos de miles de millones de parámetros, esto rara vez es posible. En tales casos, se deben utilizar otros paradigmas de paralelismo.
En el paralelismo de pipelines, diferentes capas de una red neuronal se asignan a diferentes GPU. Por ejemplo, una red neuronal de 12 capas podría dividirse en 3 GPU, asignando a la primera GPU las primeras 4 capas, a la segunda GPU las 4 capas intermedias y a la tercera GPU las 4 capas finales. Luego, los datos se procesan secuencialmente: la salida de la primera GPU se pasa a la segunda GPU, la salida de la segunda GPU se pasa a la tercera y la tercera GPU calcula la salida final del modelo.
El paralelismo de pipelines eficiente suele requerir microprocesamiento por lotes, de modo que cada GPU siempre procese datos simultáneamente en lugar de permanecer inactiva hasta que reciba datos de la GPU anterior en la secuencia. En nuestro ejemplo básico del párrafo anterior, la primera GPU podría comenzar a procesar un nuevo minilote de datos de entrada inmediatamente después de pasar la salida del primer minilote a la segunda GPU.
Naturalmente, un sistema que utiliza paralelismo de pipelines requiere cierto tiempo de “aumento” para alcanzar la utilización completa del dispositivo. En nuestro ejemplo, la segunda GPU no puede comenzar a funcionar hasta que reciba datos de la primera; la tercera GPU no puede comenzar a funcionar hasta que las 2 primeras GPU hayan procesado el minilote completo; la cuarta GPU no puede comenzar hasta que la tercera esté terminada.
Para modelos muy grandes, incluso una sola capa podría ser demasiado grande para caber en un solo procesador. En el paralelismo tensorial, las propias capas se subdividen, y cada procesador recibe una parte del tensor de pesos del modelo. La incorporación vectorial, es decir, la representación tensorial, de los datos de entrada también se subdivide, y cada procesador recibe un subconjunto correspondiente de los datos de entrada.
El paralelismo tensorial reduce significativamente las demandas de memoria en cada dispositivo, ya que cada procesador necesita cargar tensores más pequeños en la memoria que en otros paradigmas de paralelismo. Esto conlleva cierta compensación en complejidad, ya que se necesita una mayor cantidad de comunicación dentro del dispositivo y pasos matemáticos para entrelazar los resultados de cada GPU.
Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.
Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.
Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.
1 “Why Companies Are Vastly Underprepared For The Risks Posed By AI”, Forbes, 15 de junio de 2023
2 “Onshoring Semiconductor Production: National Security Versus Economic Efficiency”, Council on Foreign Relations, abril de 2024