¿Qué es la inferencia de la IA?

Explicación y simplificación de la inferencia de IA

En machine learning, la inferencia de IA es el acto de utilizar un modelo de IA entrenado para hacer predicciones sobre nuevos datos. En esencia, cualquier caso en el que un modelo de inteligencia artificial genere salidas 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 a partir de sus datos de entrenamiento a para inferir el resultado correcto para una entrada determinada.

Todo el machine learning, desde los modelos de detección de spam en el correo electrónico hasta los sistemas de navegación que impulsan los coches autoconducidos o 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 del modelo (e hiperparámetros) se ajustan hasta que la toma de decisiones del modelo se “adapta” a los patrones de los datos de entrenamiento. La hipótesis fundamental del machine learning es que, si los datos de entrenamiento son lo suficientemente relevantes para lo que el modelo encontrará en situaciones reales, este realizará predicciones precisas en esos casos de uso del mundo real.

Mientras que gran parte de la jerga de la IA es muy técnica, “inferencia de la IA” es en realidad un término literal e intuitivo.

  • Un modelo de predicción bursátil no sabe cómo va a variar el precio de una acción concreta; lo que hace es inferir, basándose en la comparación del historial de esa acción con las tendencias pasadas en la evolución de los precios bursátiles, qué va a suceder a continuación.

  • Un modelo de detección de spam no sabe si un determinado correo electrónico es spam; infiere, basándose en cuánto se parece ese correo electrónico a los ejemplos de spam que vio en el entrenamiento, si es spam o no.

  • Un modelo de lenguaje de gran tamaño (LLM) infiere de forma iterativa cuál será la siguiente palabra, o mejor dicho, token, basándose en los patrones lingüísticos de los millones de muestras de texto con las que fue entrenado.

  • Las redes sociales infieren con qué contenido es más probable que interactúe basándose en el contenido con el que usted y personas similares a usted han interactuado antes.

Mientras que el objetivo del entrenamiento en IA es lograr la precisión y la alineación del modelo, el objetivo de la inferencia en IA es implementar ese modelo entrenado de una manera lo más eficiente y rentable posible. El mismo modelo de IA puede tener un rendimiento diferente en distintos marcos de inferencia.

No existe una única configuración “óptima” para la inferencia de IA. Hay muchas formas diferentes de dividir las cargas de trabajo, diferentes tipos de hardware (y algoritmos computacionales con los que utilizarlos) y diferentes entornos en los que acceder a ese hardware. La configuración ideal para un escenario determinado dependerá de la naturaleza de su caso de uso y de la carga de trabajo. Para las empresas, el reto suele ser identificar un enfoque de inferencia que equilibre el deseo de baja latencia con la necesidad de ser escalable y rentable.

Inferencia de IA vs. entrenamiento de IA

Tanto la inferencia de la IA como el entrenamiento de la IA implican que un modelo haga predicciones sobre los datos de entrada. La diferencia radica en sus respectivos propósitos y, en el caso del entrenamiento de la IA, en los pasos adicionales que se dan hacia ese propósito.

El entrenamiento es donde se produce el “aprendizaje” en el 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 medio (o “pérdida”) de cada predicción y se utiliza un algoritmo de optimización para actualizar los parámetros del modelo de forma que se reduzcan las pérdidas. 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 la función de recompensa en lugar de minimizar la función de pérdida.

En resumen, el entrenamiento de la IA suele implicar tanto un paso hacia adelante, en el que el modelo genera una salida en respuesta a cada entrada, como un paso 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 realiza predicciones a partir de datos de entrada del mundo real. La inferencia de IA funciona utilizando lo que ha “aprendido”, es decir, las actualizaciones de los parámetros del modelo que se realizaron para mejorar su rendimiento en los datos de entrenamiento, para inferir la salida correcta para los nuevos datos de entrada. Al contrario que en el entrenamiento de modelos, la inferencia solo implica un paso adelante.

Aunque el entrenamiento y la inferencia suelen ser etapas separadas y distintas, cabe destacar que no son del todo excluyentes. Por ejemplo, el algoritmo de recomendación de una plataforma de redes sociales ya se ha entrenado 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.

Tipos de inferencia de la IA

“Tipo” es un término impreciso: hay muchas formas de llevar a cabo la inferencia de IA y, por lo tanto, muchas formas de definir sus variantes. Pero las dos categorías más fundamentales de estrategias de inferencia de la IA son la inferencia por lotes y la inferencia en línea.

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 cuyas salidas sean sensibles al tiempo (como los vehículos autónomos, las pujas en publicidad digital o la fijación dinámica de precios) o que requieran interacciones en tiempo real con los usuarios (como los chatbots o la traducción automática).

La inferencia en línea generalmente implica mayores costes y complejidad, especialmente para las grandes cargas de trabajo y las grandes redes neuronales que impulsan los modelos de deep learning, pero a menudo es necesaria para cualquier caso de uso que requiera la toma de decisiones en tiempo real. Un chatbot o un coche autónomo debe procesar los datos en tiempo real para evitar degradar la experiencia del usuario. La utilidad de un sistema de inteligencia artificial 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 de datos, pero en un vehículo autónomo unos pocos milisegundos adicionales de retraso podrían poner en peligro a los pasajeros.

Inferencia por lotes

En la inferencia por lotes, un modelo entrenado procesa un gran volumen de entradas de forma 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 una mayor flexibilidad y eficiencia, por lo que la inferencia por lotes es la opción más rentable. Sin embargo, solo es práctica 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 miles de unidades de procesamiento (o “núcleos”), cada una de las cuales puede realizar cálculos simultáneamente en paralelo. Realizar una inferencia con una sola entrada sin utilizar todos esos núcleos es como dejar asientos vacíos en un autobús: puede ser necesario en situaciones en las que el tiempo es un factor crucial, pero supone un uso subóptimo de los recursos. La inferencia por lotes le permite ejecutar la inferencia solo cuando su hardware esté “lleno”, por así decirlo.

Además, los parámetros del modelo, que, para los modelos de deep learning, a menudo comprenden literalmente miles de millones de pesos del modelo, deben cargarse en la memoria del sistema cada vez que se realiza una inferencia. Esto implica el uso y los costes de energía. La inferencia por lotes reduce el número de veces que los pesos deben cargarse en la RAM, repartiendo el coste a lo largo de todo el lote.

Microprocesamiento por lotes

El microlote 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 existe un tamaño de lote claro y cuantificable que diferencie el “microprocesamiento por lotes” del “procesamiento por lotes”. En cambio, ambos enfoques se diferencian principalmente por sus objetivos: el microprocesamiento por lotes tiene como objetivo aumentar el rendimiento del modelo conservando (en gran medida) su velocidad, mientras que la inferencia por lotes convencional busca maximizar la eficiencia y, por lo general, no tiene en cuenta la latencia. En la inferencia por lotes, una entrada puede procesarse minutos o incluso horas después de recibirla, pero el microprocesamiento suele tener como objetivo un retraso de entre unos milisegundos y unos pocos segundos.

Quizá la aplicación más destacada del microprocesamiento sea 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 solicitan un chatbot simultáneamente, estos servicios suelen procesar varias instrucciones en paralelo, lo que aumenta la eficiencia sin retrasos perceptibles para los usuarios finales individuales.

Entornos de inferencia de IA

Una de las consideraciones más importantes a la hora de 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 implementación suelen clasificarse en una de las cuatro categorías, cada una de las cuales tiene sus propios puntos fuertes y desventajas.

  • On-premise

  • Nube

  • Implementación perimetral

  • En el dispositivo

Implementación on-premise

En la implementación on-premise, los modelos de IA se ejecutan en hardware físico que usted (o su organización) posee y mantiene por cuenta propia.

La implementación 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 resulta especialmente beneficioso en sectores altamente regulados, como la sanidad, las finanzas, el gobierno y el derecho, en los que es obligatorio cumplir estrictamente los requisitos de protección de datos y seguridad.

Ese control conlleva un coste y un esfuerzo adicionales. La implementación on-prem, especialmente con el hardware necesario para las cargas de trabajo a escala empresarial y los enormes modelos que normalmente se asocian con la IA generativa, implica una importante inversión inicial. También implica la necesidad de profesionales de TI dedicados a gestionar esos servidores.

Implementación en la nube

En la implementación en la nube, los modelos se ejecutan en servidores remotos gestionados por proveedores externos (como IBM) en un 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 ni la mano de obra continua para mantenerlo. Por ello, la implementación en la nube suele representar la vía 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 un compromiso en la soberanía de los datos y, en algunos casos, en la latencia y los costes a largo plazo. Los datos pueden desplazarse constantemente hacia y desde los servidores en la nube, lo que podría afectar negativamente a la velocidad de inferencia (aunque este efecto suele verse compensado por el hardware más potente que suelen ofrecer los principales proveedores de servicios en la nube). Esto 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 on-prem.

Implementación en el edge

La implementación en el edge 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 de Internet de las cosas (IoT) y redes de área local.

En términos generales, la implementación en el edge puede entenderse como algo parecido a una “nube on-premise”. Resulta especialmente útil cuando es necesario agregar datos procedentes de varios dispositivos, como sensores repartidos por la cadena de montaje de una fábrica o dispositivos de monitorización en un hospital, o distribuirlos a ellos, y procesarlos casi en tiempo real. En estos casos, ejecutar inferencias a través de dispositivos en los “edges” de una red local permite un procesamiento más rápido y una mayor privacidad de lo que sería posible con la implementación en la nube.

Esos beneficios se ven, hasta cierto punto, mitigados por el hecho de que el edge computing suele utilizar hardware relativamente limitado en comparación con lo que está disponible a través de los proveedores de servicios en la nube. Y a medida que las redes locales crecen, la gestión de actualizaciones en cientos o miles de “nodos edge” se vuelve cada vez más compleja.

Implementación en el dispositivo

La implementación en el dispositivo es la más sencilla: la inferencia de la IA se ejecuta directamente en el dispositivo del usuario final, como un ordenador portátil o un móvil.

La implementación en el dispositivo es sencilla y segura y, en teoría, proporciona la mayor privacidad posible al usuario. Por supuesto, está limitada por la capacidad de cálculo del propio dispositivo: la capacidad de cálculo disponible en un móvil, o incluso en un ordenador de alto rendimiento para consumidores, generalmente palidece en comparación con la de hardware especializado. Especialmente en los móvil, la inferencia en el dispositivo suele limitarse a tareas específicas, como filtros de cámara, reconocimiento facial o conversión de voz a texto.

AI Academy

Conviértase en un experto en IA

Obtenga los conocimientos necesarios para priorizar las inversiones en IA que impulsan el crecimiento empresarial. Dé sus primeros pasos hoy mismo con nuestra AI Academy gratuita y lidere el futuro de la IA en su organización.

Hardware para la inferencia de IA

La inferencia de la IA es un proceso complejo que implica entrenar un modelo de IA en conjuntos de datos apropiados hasta que pueda inferir respuestas precisas. Se trata de un proceso muy intensivo desde el punto de vista computacional, que requiere hardware y software especializados. Antes de examinar el proceso de entrenamiento de modelos de IA para la inferencia de la misma, exploremos parte del hardware especializado que lo permite:

Unidades de procesamiento gráfico (GPU)

Las GPU, como su nombre indica, se diseñaron originalmente para renderizar gráficos (como en los videojuegos). La renderización de gráficos en 3D, al igual que la ejecución de inferencias para redes neuronales profundas, requiere multiplicaciones matriciales masivas, por ejemplo, para calcular los efectos de la luz y la textura en miles de píxeles simultáneamente.

La capacidad de aprovechar ese paralelismo para las matemáticas (en lugar de para los gráficos) dio un gran salto adelante cuando NVIDIA presentó la 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 núcleos paralelos de la GPU. Hoy en día, las GPU siguen siendo el hardware estándar del sector para entrenar y ejecutar modelos de deep learning.

Unidades de procesamiento tensorial (TPU)

Las TPU son los chips personalizados propietarios de Google, diseñados 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 realizar cálculos matriciales a 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.

Unidades de procesamiento neuronal (NPU)

Las unidades de procesamiento neuronal (NPU), como las TPU, se diseñaron explícitamente para procesar los cálculos de las redes neuronales. Normalmente se utilizan en móviles y otros dispositivos móviles, ya que sus capacidades más específicas reducen el consumo de energía en comparación con las GPU.

Matrices de puerta programable en campo

Las matrices de puertas programables en campo (FPGA) son un tipo de circuito integrado configurable que puede programarse (y reprogramarse) para adaptarse a las demandas de aplicaciones específicas, incluidas las operaciones de inteligencia artificial. Aunque suelen ofrecer menos potencia de procesamiento que las GPU de gama alta, las FPGA son una buena opción cuando se requiere una personalización extrema.

Circuitos integrados para aplicaciones específicas

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 exclusivamente para realizar operaciones de redes neuronales a través de TensorFlow, PyTorch y JAX.

Inferencia distribuida de la IA

Las cargas de trabajo de entrenamiento o inferencia de un gran modelo de IA generativa suelen superar la capacidad incluso del hardware acelerador más grande. Cuando la carga de trabajo es demasiado grande para una sola GPU, puede repartirse entre varios procesadores utilizando una o varias técnicas de paralelismo para dividir y repartir el trabajo. Existen muchos paradigmas de paralelismo, pero los más destacados son el paralelismo de datos, el paralelismo tensorial y el paralelismo de pipeline.

Los desarrolladores a menudo pueden utilizar marcos de código abierto como vLLM para optimizar y simplificar el proceso de distribución de la inferencia entre múltiples dispositivos.

Paralelismo de datos

En el paralelismo de datos, se copia una réplica del modelo completo en cada procesador. A continuación, el propio conjunto de datos de entrada se divide en varios lotes (o “fragmentos”) y cada copia del modelo, es decir, cada procesador, gestiona un único lote. Aunque este es quizás el medio más sencillo de paralelismo, requiere que cada procesador sea lo suficientemente grande como para que quepan todos los parámetros del modelo en la memoria. Cuando se trata de LLM más grandes y modelos de visión-lenguaje (VLM) con docenas o cientos de miles de millones de parámetros, esto rara vez es posible. En esos casos, se deben utilizar otros paradigmas de paralelismo.

Paralelismo de pipeline

En el paralelismo de pipeline, diferentes capas de una red neuronal se asignan a distintas GPU. Por ejemplo, una red neuronal de 12 capas podría dividirse en 3 GPU, asignando a la primera GPU las cuatro primeras capas, a la segunda GPU las cuatro capas intermedias y a la tercera GPU las cuatro capas finales. A continuación, 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.

Para lograr un paralelismo de pipeline eficiente, suele ser necesario recurrir al microprocesamiento por lotes, de modo que cada GPU procese datos de forma simultánea en todo momento, en lugar de permanecer inactiva hasta recibir 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.

Como es lógico, un sistema que utiliza el paralelismo de pipeline necesita un cierto tiempo de “aceleración” para provechar al máximo la capacidad de los dispositivos. En nuestro ejemplo, la segunda GPU no puede empezar a funcionar hasta que reciba datos de la primera; la tercera GPU no puede empezar a funcionar hasta que las dos primeras GPU hayan procesado el minilote completo; la cuarta GPU no puede comenzar hasta que la tercera esté terminada.

Paralelismo tensorial

En el caso de modelos muy grandes, incluso una sola capa puede resultar demasiado grande para caber en un solo procesador. En el paralelismo tensorial, las capas en sí mismas se subdividen, y cada procesador recibe una porción del tensor de pesos del modelo. La incrustación vectorial, es decir, la representación tensorial, de los datos de entrada se subdivide igualmente, de modo que 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 complejidad, ya que se necesita una mayor cantidad de comunicación dentro del dispositivo y pasos matemáticos para entrelazar las salidas de cada GPU.

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida de desarrollo de la IA. Produzca potentes soluciones de IA con interfaces intuitivas, flujos de trabajo y acceso a API y SDK estándar del sector.

  1. Explore watsonx.ai
  2. Solicite una demostración en directo
Notas a pie de página