Los modelos de lenguaje grandes (conocidos por sus siglas en inglés LLM, por Large Language Models) son sistemas de inteligencia artificial diseñados para procesar, entender y generar texto humano. A diferencia de los programas de software tradicionales que siguen una lista fija de instrucciones, estos modelos utilizan redes neuronales profundas para predecir la siguiente palabra más probable en una secuencia, basándose en una inmensa cantidad de datos de entrenamiento.

Estos modelos han transformado la forma en que interactuamos con la tecnología, permitiendo aplicaciones que van desde la traducción automática hasta la generación de código informático. Su capacidad para capturar matices del lenguaje natural los convierte en herramientas fundamentales en la era actual de los datos.

Definición y concepto

Un modelo de lenguaje grande (LLM, por sus siglas en inglés) es una arquitectura de inteligencia artificial diseñada específicamente para procesar y generar texto. No debe confundirse con una red neuronal genérica. Mientras que una red convolucional puede identificar bordes en una imagen o una red recurrente puede analizar series de tiempo simples, un LLM se especializa en capturar la estructura estadística del lenguaje humano a gran escala. Su capacidad no reside únicamente en contar palabras, sino en entender cómo se relacionan entre sí dentro de un contexto amplio.

El lenguaje como datos discretos

Para que una máquina pueda procesar el lenguaje, este debe convertirse en números. Los LLM no ven letras individuales como unidad mínima, sino que dividen el texto en fragmentos llamados tokens. Un token puede ser una palabra completa, parte de una palabra o incluso un solo carácter, dependiendo del vocabulario del modelo. Este proceso, conocido como tokenización, transforma el lenguaje en una secuencia de enteros. Esta representación discreta permite que la red neuronal trate el texto como una serie de datos matemáticos manejables.

El modelo como función estadística

En su esencia, un LLM funciona como una función de probabilidad compleja. Dada una secuencia de tokens anteriores, el modelo calcula la probabilidad de que aparezca un token específico a continuación. No busca la "verdad" absoluta, sino la continuación más probable según los datos con los que fue alimentado. Esta naturaleza estadística significa que el modelo predice la siguiente palabra basándose en patrones aprendidos. La precisión de esta predicción define la calidad del lenguaje generado.

Dato curioso: La palabra "token" proviene de la lingüística computacional y se refiere a la unidad mínima de significado que el procesador puede distinguir. En inglés, "un" y "uno" pueden ser tokens diferentes, mientras que en español, "juego" y "juega" podrían compartir el mismo token raíz dependiendo del modelo.

Entrenamiento versus inferencia

El ciclo de vida de un LLM se divide en dos fases distintas: el entrenamiento y la inferencia. Durante el entrenamiento, el modelo ajusta sus millones de parámetros internos al analizar un corpus masivo de texto. En esta etapa, el objetivo es minimizar el error entre la palabra predicha y la palabra real. Es un proceso costoso y lento, donde la red "aprende" las reglas del idioma. La inferencia ocurre después, cuando el modelo ya está fijo y se utiliza para generar respuestas nuevas. En esta fase, la velocidad y la eficiencia son cruciales, ya que el modelo debe calcular la siguiente palabra en tiempo casi real para el usuario final.

La distinción entre estas dos etapas es fundamental para entender por qué los LLM requieren tanto poder de cómputo. El entrenamiento es un proceso de descubrimiento estadístico, mientras que la inferencia es una aplicación práctica de esos descubrimientos. Sin un entrenamiento robusto, la inferencia sería poco más que una adivinación aleatoria. La consecuencia es directa: la calidad de la salida depende enteramente de la calidad y cantidad de los datos de entrada durante la fase de aprendizaje.

¿Cómo aprenden los modelos de lenguaje?

Los modelos de lenguaje no nacen sabiendo todo; su conocimiento surge de un proceso de entrenamiento intensivo que transforma datos crudos en patrones estadísticos. Este proceso se divide en tres etapas fundamentales que van de lo general a lo específico, permitiendo que la máquina pase de predecir la siguiente palabra a entender matices humanos.

Pre-entrenamiento: La base de todo

La primera fase es el pre-entrenamiento, donde el modelo lee cantidades masivas de texto sin etiquetar. En 2026, estos conjuntos de datos incluyen casi toda la web pública, libros digitales, artículos académicos y código fuente de lenguajes como Python o JavaScript. El objetivo aquí es aprender la estructura básica del lenguaje: gramática, hechos mundanos y relaciones entre conceptos.

El mecanismo central es la minimización de la 'pérdida' o loss. El modelo intenta predecir la siguiente palabra en una secuencia. Si la respuesta correcta es "gato" y el modelo predice "perro" con una probabilidad del 60%, la función de pérdida calcula qué tan lejos estuvo la predicción de la realidad. Matemáticamente, esto se suele expresar mediante la entropía cruzada:

L=−i=1∑N​yi​log(y^​i​)

Donde yi​ es la palabra verdadera y y^​i​ es la probabilidad asignada por el modelo. El algoritmo ajusta millones de parámetros internos para reducir este valor numérico. Cuanto menor sea la pérdida, mejor predice el modelo. La escala es crucial: en la actualidad, los modelos más potentes cuentan con cientos de miles de millones de parámetros, lo que les permite capturar relaciones complejas que modelos más pequeños pierden.

Dato curioso: Un modelo pre-entrenado puede saber que "París" está en "Francia" simplemente por la frecuencia con que aparecen juntas, aunque nunca haya visto un mapa. El contexto estadístico actúa como memoria.

Ajuste fino y preferencia humana

El pre-entrenamiento produce un modelo genérico, a veces llamado "en bruto". Para hacerlo útil, se aplica el ajuste fino (fine-tuning). Aquí, el modelo se expone a datos etiquetados, como pares de pregunta-respuesta o instrucciones específicas. Si el modelo aprendió del web, ahora aprende de manuales técnicos o diálogos estructurados.

La etapa final es el Ajuste de Preferencia Humana (RLHF, por sus siglas en inglés). Los entrenadores humanos leen varias respuestas del modelo y las ordenan por calidad. El modelo aprende qué respuesta prefiere la gente, no solo cuál es estadísticamente probable. Esto añade matices como la coherencia, el tono y la precisión factual que los datos crudos a veces ignoran. La consecuencia es directa: el modelo se vuelve más "intuitivo" para el usuario final.

Este proceso combina la fuerza bruta de los datos con la sutileza del juicio humano, creando herramientas que, aunque basadas en probabilidades, parecen comprender el significado detrás de las palabras.

¿Qué diferencia a los LLMs de otras redes neuronales?

Los modelos de lenguaje grandes (LLMs) no son una categoría aislada, sino una evolución específica dentro del vasto ecosistema de las redes neuronales. Su arquitectura se distingue radicalmente de otros tipos de redes al priorizar la relación contextual global sobre la proximidad espacial o la memoria secuencial inmediata. Esta diferencia estructural determina su capacidad para procesar información compleja y generar resultados coherentes.

Arquitectura: Atención frente a Convolución y Recurrencia

Las Redes Neuronales Convolucionales (CNNs), predominantes en el procesamiento de imágenes, funcionan analizando píxeles vecinos mediante filtros locales. Una CNN sabe que un píxel está relacionado con sus inmediatos, pero a menudo pierde el contexto global de la imagen a menos que la red sea muy profunda. En contraste, los LLMs utilizan el mecanismo de "atención" (attention). Este mecanismo permite que cada palabra en una secuencia "atente" a todas las demás palabras simultáneamente, ponderando su importancia relativa. Esto resuelve el problema del contexto largo que limitaba a las Redes Neuronales Recurrentes (RNNs).

Las RNNs procesaban el texto paso a paso, guardando un estado oculto que actuaba como una memoria a corto plazo. Sin embargo, esta memoria tendía a desvanecerse con el tiempo, olvidando el inicio de una oración larga. Los LLMs, al basarse en la atención, acceden directamente a cualquier parte de la entrada, haciendo que la distancia entre palabras sea menos crítica que su significado relacional.

Modelos de Probabilidad, no Bases de Datos

Una confusión común es pensar que un LLM funciona como una base de datos estática donde se busca una respuesta exacta. No es así. Un LLM es esencialmente una máquina de calcular probabilidades. Dada una secuencia de palabras anteriores, el modelo calcula la probabilidad de que la siguiente palabra sea cualquiera de las miles en su vocabulario. La salida no es una recuperación directa, sino una generación basada en la distribución de probabilidad aprendida durante el entrenamiento.

Dato curioso: Cuando un LLM "piensa", está realizando multiplicaciones de matrices masivas para determinar qué palabra tiene la mayor probabilidad estadística de seguir a la anterior, no está "recordando" un hecho como un humano.

Esta naturaleza probabilística significa que la respuesta puede variar ligeramente entre ejecuciones, dependiendo de la temperatura del modelo y del contexto inmediato. No hay una única verdad almacenada, sino una estimación más probable basada en los datos de entrenamiento.

Generalización y Efectos Emergentes

La verdadera potencia de los LLMs radica en su capacidad de generalización. A diferencia de una red neuronal simple que podría necesitar un entrenamiento específico para cada tarea nueva, los LLMs muestran "efectos emergentes". Esto ocurre cuando el modelo, al escalar en tamaño y datos, desarrolla habilidades que no fueron explícitamente entrenadas. Por ejemplo, la capacidad de realizar razonamiento lógico básico o traducir idiomas sin haber visto esa tradacción exacta antes.

Este fenómeno surge de la interacción compleja de millones de parámetros. La consecuencia es directa: los LLMs pueden adaptarse a tareas nuevas con muy pocos ejemplos (aprendizaje few-shot), algo que las CNNs o RNNs tradicionales logran con mayor dificultad. Esta flexibilidad los convierte en herramientas versátiles, capaces de pasar de la clasificación de textos a la generación de código sin cambiar su estructura fundamental.

Historia y evolución de los LLMs

De las reglas fuestas a la probabilidad contextual

El procesamiento del lenguaje natural (PLN) no siempre se basó en la intuición estadística. Durante décadas, los sistemas dependían de una lógica de "regla + excepción". Los ingenieros definían estructuras gramaticales rígidas para predecir el significado de una palabra según su vecindad inmediata. Este enfoque era eficiente pero frágil: un cambio leve en el orden de las palabras podía colapsar toda la interpretación del texto.

El cambio de paradigma hacia un modelo de "probabilidad + contexto" comenzó con la necesidad de cuantificar la significancia de las palabras. En lugar de tratar cada término como una entidad aislada, se empezó a medir su relevancia estadística dentro de un corpus. Un ejemplo clásico es la fórmula TF-IDF, que evalúa la importancia de un término multiplicando su frecuencia local por su rareza global:

TF-IDF(t,d)=TF(t,d)×log(DF(t)N​)

Esta fórmula sentó las bases para entender que el significado surge de la relación entre los datos, no solo de su definición aislada. Sin embargo, seguía faltando una forma de capturar el contexto profundo.

El salto de Word2Vec a la atención

A principios de la década de 2010, la llegada de Word2Vec transformó las palabras en vectores numéricos. Ahora, palabras con significados similares (como "rey" y "reina") se ubicaban cerca en un espacio multidimensional. Esto permitió operaciones matemáticas sobre el lenguaje, como la famosa ecuación "Rey - Hombre + Mujer ≈ Reina". Fue un avance enorme, pero seguía siendo limitado porque no podía distinguir matices complejos más allá de la inmediatez.

Dato curioso: La capacidad de los modelos para capturar el contexto no llegó de golpe. Fue necesaria la introducción del mecanismo de "atención" para que las redes neuronales pudieran "mirar" hacia atrás en la secuencia de palabras y ponderar su importancia relativa.

Este mecanismo fue el motor que impulsó a BERT y a las primeras versiones de GPT. Estos modelos dejaron de leer las palabras una por una y empezaron a analizarlas simultáneamente, comparando cada término con todos los demás en la oración. La precisión aumentó drásticamente, pero los modelos aún eran pequeños y requerían ajustes específicos para cada tarea.

La escala de GPT-3 y la era actual

El punto de inflexión llegó con GPT-3. Este modelo demostró que la escala era, en sí misma, una característica emergente. Al entrenar la red con cientos de miles de millones de parámetros y un volumen masivo de datos, el modelo comenzó a mostrar capacidades que los ingenieros no habían codificado explícitamente. La ley de potencia sugiere que el rendimiento mejora de forma predecible a medida que crecen los datos y los parámetros:

Error∝Ndatos−α​×Nparaˊmetros−β​

Esto marcó el fin de la necesidad de entrenar un modelo diferente para cada función. Un solo modelo generalista podía realizar múltiples tareas con alta precisión.

En 2026, los LLMs han evolucionado hacia arquitecturas más eficientes y especializadas. La competencia se ha desplazado de la mera cantidad de parámetros a la calidad de los datos de entrenamiento y la capacidad de razonamiento lógico. Los modelos actuales no solo predicen la siguiente palabra, sino que estructuran el conocimiento para reducir las "alucinaciones" y mejorar la coherencia en textos largos. La consecuencia es directa: el lenguaje computacional se ha convertido en una capa fundamental de la infraestructura digital global.

Aplicaciones prácticas y ejemplos

Los modelos de lenguaje grandes (LLM, por sus siglas en inglés) han pasado de ser curiosidades estadísticas a motores centrales de la productividad digital en 2026. Su capacidad para capturar matices contextuales permite aplicaciones que superan la simple predicción de la siguiente palabra. Estas herramientas se integran en flujos de trabajo diversos, desde la traducción automática en tiempo real hasta la depuración compleja de código fuente.

Traducción y resumen de textos

La traducción automática con LLMs ya no depende exclusivamente de pares de palabras, sino de la estructura semántica completa. Esto reduce errores de género gramatical y modismos en idiomas con poca data histórica. En el ámbito académico y empresarial, el resumen de textos permite condensar informes extensos conservando la jerarquía de ideas principales. Los sistemas actuales pueden extraer puntos clave de documentos de cientos de páginas en segundos, facilitando la revisión rápida de literatura científica o contratos legales.

Generación de código y chatbots

La generación de código asistida por IA ha transformado el desarrollo de software. Los programadores utilizan estos modelos para escribir funciones completas, detectar errores lógicos y generar pruebas unitarias. Los chatbots conversacionales, por su parte, manejan la interfaz de usuario en servicios al cliente, ofreciendo respuestas personalizadas basadas en el historial de interacción. La diferencia radica en la capacidad del LLM para mantener coherencia a largo plazo, algo que las respuestas genéricas solían perder.

Procesamiento en tiempo real vs. uso por lotes

Es crucial distinguir entre el procesamiento en tiempo real (streaming) y el procesamiento por lotes (batch). El tiempo real es esencial para la interacción humana, donde cada segundo de retraso afecta la experiencia del usuario. El uso por lotes, común en la integración continua de código o el análisis de datos históricos, prioriza la precisión sobre la velocidad, permitiendo que el modelo procese grandes volúmenes de datos antes de devolver un resultado unificado.

Ejemplo comparativo: Una red neuronal clásica (como una Red de Capa Simple) podría traducir "The cat sits" como "El gato se sienta", basándose en probabilidades directas. Un LLM, al analizar el contexto de una historia completa, podría sugerir "El gato está sentado" o incluso "El felino reposa", dependiendo del tono del texto previo. La diferencia es la profundidad del contexto.

La precisión de estos modelos depende de la función de pérdida utilizada durante el entrenamiento. La pérdida de entropía cruzada mide la diferencia entre la distribución de probabilidad predicha y la distribución real. Esta métrica cuantifica qué tan "sorprendido" está el modelo al ver la palabra correcta.

L=−i∑​yi​log(y^​i​)

Donde yi​ es la probabilidad real y y^​i​ es la probabilidad predicha. Minimizar esta pérdida permite al LLM ajustar sus millones de parámetros para reducir la incertidumbre en cada predicción. Esta base matemática es lo que permite la flexibilidad observada en las aplicaciones modernas.

Limitaciones y desafíos actuales

Los modelos de lenguaje grandes (LLMs) no son bases de datos perfectas ni motores de búsqueda infalibles. Su funcionamiento se basa en la probabilidad estadística: predicen la siguiente palabra más probable dada una secuencia anterior. Esta naturaleza predictiva, aunque poderosa, genera debilidades estructurales que limitan su precisión absoluta. No almacenan hechos como una tabla SQL, sino que los "recuerdan" como patrones de co-ocurrencia en millones de textos. La consecuencia es directa: pueden ser coherentes sin ser necesariamente ciertos.

El fenómeno de las alucinaciones

Las alucinaciones ocurren cuando el modelo genera información falsa con un tono de confianza absoluta. Esto sucede porque el objetivo principal del LLM es la fluidez gramatical y la coherencia contextual, no la veracidad factual. Si el modelo no encuentra un dato exacto en su entrenamiento, puede "rellenar el hueco" con palabras estadísticamente probables. Por ejemplo, podría citar un artículo científico real con un título ligeramente inventado o atribuir una frase a un autor correcto pero en un contexto erróneo. Para estudiantes y profesionales, esto implica que la verificación cruzada sigue siendo obligatoria. Un LLM puede decirte "qué" dice la literatura, pero tú debes confirmar si realmente lo dice así.

Debate actual: La comunidad científica discute si las alucinaciones son un error inherente a la arquitectura de atención o si pueden reducirse significativamente con técnicas de "atención dispersa" y entrenamiento en refuerzo humano (RLHF). Aún no hay consenso sobre cuál es la solución definitiva.

Sesgos y la ventana de atención

Los sesgos son reflejos de los datos de entrenamiento. Si un modelo se entrena mayoritariamente en textos occidentales, históricos o técnicos, su "visión del mundo" tenderá a priorizar esas perspectivas. Esto no es solo un problema social, sino técnico: el modelo aprende asociaciones estadísticas que pueden reforzar estereotipos. Además, existe la limitación de la "ventana de atención". Aunque los LLM modernos pueden procesar miles de palabras, su capacidad para mantener el contexto preciso disminuye a medida que crece el texto. Es como leer un libro sin subrayar: al llegar a la página 50, los detalles de la página 2 pueden difuminarse o mezclarse con otros. Esto limita su uso para análisis de documentos extremadamente largos sin técnicas de división del texto.

Costo computacional y la "caja negra"

El costo energético y económico de entrenar y ejecutar un LLM es elevado. Cada consulta requiere miles de multiplicaciones de matrices en unidades de procesamiento gráfico (GPU). La complejidad computacional crece casi cuadráticamente con el tamaño de la ventana de atención. Si n es el número de tokens, la complejidad aproximada de la capa de atención estándar es:

O(n2⋅d)

Donde d es la dimensión de los vectores de entrada. Esto explica por qué no todos los dispositivos pueden ejecutar modelos gigantes en tiempo real. Finalmente, la interpretabilidad sigue siendo el mayor desafío técnico. Los LLM son frecuentemente llamados "cajas negras" porque, aunque sabemos qué entra (texto) y qué sale (predicción), el camino interno de activación de millones de parámetros es difícil de rastrear para un humano. No siempre es claro por qué el modelo eligió una palabra sobre otra, más allá de su peso estadístico. Esta falta de transparencia limita su adopción en campos críticos como la medicina o el derecho, donde la explicabilidad es tan importante como el resultado.

Ejercicios resueltos

La teoría de los modelos de lenguaje grandes (LLMs) cobra sentido cuando se aplica a métricas concretas. A continuación, se presentan ejercicios prácticos que ilustran cómo funcionan los costos, el procesamiento de datos y la evaluación de la salida del modelo. Estos ejemplos utilizan datos ficticios pero realistas para fines didácticos.

Ejercicio 1: Estimación de tokens

Los LLM no leen palabras completas, sino fragmentos llamados tokens. Un token suele ser una palabra corta o un sufijo. Para estimar el costo, es necesario convertir texto en unidades. Supongamos que utilizamos un tokenizer estándar donde 1 token equivale aproximadamente a 4 caracteres en inglés o 0.75 palabras.

Problema: ¿Cuántos tokens tiene la frase "El aprendizaje automático transforma la industria"?

Solución paso a paso:

  1. Contar las palabras: La frase tiene 7 palabras.
  2. Aplicar la regla general: Multiplicamos el número de palabras por el factor de conversión promedio de 0.75 tokens por palabra.
  3. Cálculo: 7×0.75=5.25 tokens.

Como los tokens suelen ser enteros en la salida bruta, redondeamos hacia arriba. La frase contiene aproximadamente 6 tokens. Esta variabilidad explica por qué dos frases de igual longitud en caracteres pueden tener costos distintos.

Ejercicio 2: Cálculo de costo de inferencia

El costo de usar un LLM depende del número de parámetros y del precio por token de entrada (input) y salida (output). Los precios varían según el proveedor, pero un modelo común en 2026 podría cobrar 0.01 USD por cada 1,000 tokens de entrada y 0.03 USD por cada 1,000 tokens de salida.

Problema: Calcular el costo total de una consulta donde la entrada son 500 tokens y la salida generada son 200 tokens.

Solución:

El costo total es de 0.011 dólares. Aunque parece pequeño, al escalar a millones de consultas, la diferencia entre optimizar la entrada y la salida se vuelve crítica para el presupuesto.

Ejercicio 3: Detección de alucinaciones

Una alucinación ocurre cuando el modelo genera información plausible pero no verificada. Identificarlas requiere cruzar la salida del modelo con datos externos o con el contexto proporcionado.

Debate actual: Las alucinaciones no son errores aleatorios; a menudo son la consecuencia directa de la naturaleza probabilística de la atención del modelo, que prioriza la coherencia estadística sobre la verdad factual absoluta.

Problema: Analizar la siguiente salida del modelo dado el contexto: "La capital de Francia es París. La moneda oficial es el Euro."

Salida del LLM: "La capital de Francia es París, una ciudad famosa por la Torre Eiffel. Su moneda oficial es la Libra Esterlina, utilizada también en Reino Unido."

Análisis:

1. Verificar hechos: La salida afirma que la moneda es la Libra Esterlina. El contexto establece que es el Euro. Hay una contradicción directa.

2. Evaluar plausibilidad: La Libra es una moneda europea real, lo que hace que el error sea sutil y difícil de detectar sin contexto previo. Esto se conoce como alucinación de hecho.

3. Conclusión: El modelo cometió una alucinación al sustituir el dato correcto por uno relacionado pero erróneo. La consecuencia es directa: sin verificación externa, el usuario podría aceptar información obsoleta o incorrecta.

Preguntas frecuentes

¿Qué significa exactamente "grande" en LLM?

Se refiere a la cantidad de parámetros ajustables dentro de la red neuronal. Mientras que un modelo antiguo podría tener millones de parámetros, los LLMs actuales suelen tener miles de millones o incluso billones, lo que les permite capturar relaciones más complejas en el lenguaje.

¿Cómo aprenden los LLMs si nadie les da una regla explícita?

Aprenden mediante la exposición a grandes volúmenes de texto. El modelo ajusta sus conexiones internas para minimizar el error al predecir la siguiente palabra en una frase, un proceso conocido como aprendizaje supervisado y aprendizaje por refuerzo.

¿Son los LLMs la misma cosa que el "efecto de la jirafa" (GPT)?

No exactamente. GPT (Generative Pre-trained Transformer) es una arquitectura específica muy popular, pero no la única. Otros ejemplos incluyen BERT o LLaMA. Sin embargo, GPT es tan conocido que a veces se usa como sinónimo genérico de LLM.

¿Pueden los LLMs recordar todo lo que leen?

No de forma perfecta. Dependen de su "ventana de atención", que es la cantidad de palabras anteriores que pueden considerar al generar una nueva. Además, tienden a "olvidar" detalles específicos si no aparecen frecuentemente en sus datos de entrenamiento.

¿Qué es la "sobreajuste" o overfitting en estos modelos?

Ocurre cuando el modelo memoriza los datos de entrenamiento en lugar de aprender patrones generales. Como resultado, funciona muy bien con los datos que ya vio, pero rinde mal con nuevos textos, perdiendo su capacidad de generalización.

Resumen

Los modelos de lenguaje grandes representan un avance significativo en el procesamiento del lenguaje natural, basándose en arquitecturas de transformadores y enormes conjuntos de datos. Su funcionamiento se basa en la predicción estadística de palabras, lo que les otorga una flexibilidad notable frente a las reglas fijas de los predecesores.

A pesar de su eficacia, enfrentan desafíos como la necesidad de gran potencia de cálculo, la tendencia a las "alucinaciones" (datos inventados) y la dependencia de la calidad de los datos de entrada. Comprender estos fundamentos es esencial para aprovechar su potencial en diversos campos académicos y profesionales.

Véase también

Referencias

  1. «que son modelos de lenguaje (llms)» en Wikipedia en español
  2. Attention Is All You Need — arXiv (Paper original del modelo Transformer)
  3. Language Models are Few-Shot Learners — arXiv (Paper del modelo GPT-3)
  4. What are Large Language Models (LLMs)? — IBM
  5. Large Language Models (LLMs) — Microsoft Azure AI