Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los modelos de lenguaje grande (LLM) son eficaces, pero tienen límites. Debe saber qué pueden hacer las LLM de forma predeterminada y cómo ajustarlas para obtener los mejores resultados para las aplicaciones de IA generativas. En este artículo se tratan los principales desafíos de las VM y se muestran formas sencillas de resolverlos y mejorar cómo se genera contenido, independientemente del tipo de características de inteligencia artificial generativa que cree.
Desafíos de ingeniería al trabajar con LLM
Estos son los desafíos y limitaciones más significativos que se deben tener en cuenta al trabajar con VM:
Corte de conocimiento: los LLM solo saben lo que se entrenaron hasta una fecha determinada. Sin conexiones de datos externos, no pueden acceder a información privada ni en tiempo real.
Alucinación: los LLM pueden generar información inexacta o engañosa. La característica de detección de tierra de Azure AI Foundry le ayuda a determinar si las respuestas de un LLM se basan en los materiales de origen que proporcione. Las respuestas en primer plano incluyen información no admitida por los datos. Obtenga información sobre cómo usar la detección de la base en este inicio rápido.
Transparencia: no siempre puede realizar un seguimiento del origen o la precisión del contenido generado y no hay ningún paso de comprobación integrado.
Ningún conocimiento específico del dominio: los LLM no conocen los datos internos o propietarios a menos que lo integre.
Incapacidad de aprender de las interacciones: los LLM no tienen memoria ni reconocimiento de las interacciones anteriores, por lo que no pueden adaptarse ni mejorar con el tiempo en función de los comentarios del usuario. Para superar estos desafíos y obtener los mejores resultados, complemente el conocimiento de LLM con sus propios datos y use herramientas de validación.
Dónde obtienen su información los LLM
Los LLM se entrenan en grandes conjuntos de datos de libros, artículos, sitios web y otros orígenes. Sus respuestas reflejan patrones en estos datos, pero no se incluye nada que suceda después del corte de entrenamiento. Sin conexiones externas, los LLM no pueden acceder a información en tiempo real ni examinar Internet, lo que puede provocar respuestas obsoletas o incompletas.
Factores que afectan a cómo funciona la inferencia
Cuando se usa un LLM, podría parecerse al modelo que recuerda toda la conversación. En realidad, cada nueva solicitud que envíe incluye todas las solicitudes anteriores y las respuestas del modelo. LlM usa este historial completo como contexto para crear la siguiente respuesta. Este historial de ejecución es la ventana de contexto.
Cada LLM tiene un tamaño máximo de ventana de contexto, que cambia por modelo y versión. Si la conversación supera este límite, el modelo quita las partes más antiguas y las omite en su respuesta.
Las ventanas de contexto más largas significan que el modelo tiene que procesar más datos, lo que puede ralentizar las cosas y costar más.
El tamaño de la ventana de contexto usa tokens, no palabras. Los tokens son los fragmentos de texto más pequeños que puede controlar el modelo: estas partes pueden ser palabras completas, partes de palabras o caracteres únicos, según el lenguaje y el tokenizador.
Para los desarrolladores, el uso de tokens afecta directamente a:
- La cantidad máxima de historial de conversaciones que el modelo puede tener en cuenta (ventana de contexto)
- El costo de cada solicitud y finalización, ya que la facturación se basa en el número de tokens procesados.
¿Qué es la tokenización?
La tokenización es el proceso de dividir texto en tokens: las unidades más pequeñas que puede procesar un modelo. La tokenización es esencial para el entrenamiento y la inferencia con LLMs. Según el lenguaje y el tokenizador, los tokens pueden ser palabras completas, subpalabras o incluso caracteres únicos. La tokenización puede ser tan simple como dividir por espacios y signos de puntuación, o tan compleja como el uso de algoritmos que son responsables de la estructura del lenguaje y la morfología.
En la página Tokenizer de OpenAI se explica con detalle la tokenización e incluye una calculadora para mostrar cómo se dividen las oraciones en tokens.
En texto en inglés típico, un token tiene aproximadamente cuatro caracteres. En promedio, 100 tokens son aproximadamente 75 palabras.
Para los desarrolladores, las bibliotecas siguientes ayudan a calcular los recuentos de tokens para solicitudes y finalizaciones, lo que resulta útil para administrar los límites y los costos de las ventanas de contexto:
- la biblioteca tiktoken (Python y JavaScript)
- la biblioteca Microsoft.ML.Tokenizers (.NET)
- la biblioteca Hugging Face Tokenizers (JavaScript, Python y Java)
El uso de tokens afecta a la facturación
Cada API de Azure OpenAI tiene una metodología de facturación diferente. Para procesar y generar texto con la API de finalizaciones de chat, se le facturará en función del número de tokens que envíe como solicitud y el número de tokens que se generan como resultado (finalización).
Cada modelo LLM (por ejemplo, GPT-4.1, GPT-4o o GPT-4o mini) normalmente tiene un precio diferente, que refleja la cantidad de cálculo necesario para procesar y generar tokens. Muchas veces, el precio se presenta como "precio por 1000 tokens" o "precio por 1 millón de tokens".
Este modelo de precios tiene un efecto significativo sobre cómo diseñar las interacciones del usuario y la cantidad de preprocesamiento y posprocesamiento que agregue.
Avisos del sistema frente a solicitudes de usuario
Hasta ahora, en este artículo se describen las indicaciones del usuario. Un mensaje de usuario es lo que envía al modelo y a qué responde el modelo.
OpenAI también agregó el símbolo del sistema (o instrucciones personalizadas). Un símbolo del sistema es un conjunto de reglas que agrega a cada chat. Por ejemplo, puede indicar al LLM que "responda siempre en forma haiku". Después de eso, cada respuesta será un haiku.
En este ejemplo de haiku se muestra cómo puede cambiar las respuestas de LLM cambiando el mensaje.
¿Por qué cambiar el mensaje del usuario? Si crea una aplicación de IA generativa para el trabajo, los clientes o los asociados, es posible que quiera agregar reglas para limitar lo que el modelo puede responder.
Pero cambiar el mensaje del usuario es simplemente una manera de mejorar la generación de texto.
Métodos para mejorar la experiencia de generación de texto para los usuarios
Para mejorar los resultados de la generación de texto, los desarrolladores se limitan a mejorar la solicitud y hay muchas técnicas de ingeniería de solicitudes que pueden ayudar. Sin embargo, si va a crear su propia aplicación de IA generativa, hay varias maneras de mejorar la experiencia de generación de texto para los usuarios y puede experimentar con la implementación de todas ellas:
- Modifique mediante programación las solicitudes del usuario.
- Implemente una canalización de inferencia.
- Generación aumentada por recuperación (tratada en otros artículos).
- Ajuste preciso (descrito en otros artículos).
Modificación de solicitudes de usuario mediante programación
Para agregar una solicitud del sistema a una conversación de usuario, no use una API especial. Solo tiene que añadir instrucciones a la solicitud según sea necesario.
Pero puede usar algunas técnicas para mejorar las indicaciones del usuario:
- Preparación contextual: diseñe solicitudes del sistema que establezcan explícitamente el contexto de la conversación dentro del dominio. Este enfoque implica proporcionar una breve descripción o un conjunto de instrucciones al principio de cada interacción. Las instrucciones guían la inteligencia artificial para permanecer dentro del dominio del problema.
- guía basada en ejemplo: en el mensaje inicial, incluya ejemplos de los tipos de preguntas y respuestas que son relevantes para su dominio. Este enfoque ayuda a la inteligencia artificial a comprender qué tipo de respuestas se esperan.
Puede usar cualquier técnica de ingeniería rápida. Si puede hacerlo mediante programación, puede mejorar la solicitud del usuario en su nombre.
La limitación para este enfoque es que cuanto más largo sea el aviso, mayor será el costo de cada llamada al LLM. Incluso así, es probable que este enfoque sea el enfoque menos costoso que se describe en este artículo.
Implementación de una canalización de inferencia
Después de mejorar el mensaje del usuario, el siguiente paso es crear una canalización de inferencia.
Una canalización de inferencia es un proceso que:
- Limpia la entrada sin procesar (como texto o imágenes)
- Lo envía al modelo (preprocesamiento)
- Comprueba la respuesta del modelo para asegurarse de que satisface las necesidades del usuario antes de mostrarla (posprocesamiento).
El preprocesamiento puede incluir la comprobación de palabras clave, la relevancia de puntuación o el cambio de la consulta para ajustarse mejor a su dominio. Por ejemplo, examine el primer mensaje del usuario. Pregunte al LLM si el mensaje tiene sentido, sigue las reglas, se basa en una idea correcta o necesita volver a escribir para evitar sesgos. Si LLM encuentra problemas, puede pedirle que vuelva a escribir el mensaje para obtener una mejor respuesta.
El postprocesamiento puede significar comprobar si la respuesta se ajusta a su dominio y cumple sus estándares. Puede quitar o marcar respuestas que no coincidan con las reglas. Por ejemplo, compruebe la respuesta de LLM para ver si satisface sus necesidades de calidad y seguridad. Puede pedir al LLM que revise su respuesta y cámbiela si es necesario. Repita este proceso hasta que obtenga un buen resultado.
Tenga en cuenta: cada vez que se llama a un LLM en la canalización de inferencia, se tarda más tiempo en responder y cuesta más. Debe equilibrar estas ventajas con su presupuesto, velocidad y cómo funciona el sistema.
Para obtener información sobre los pasos específicos que se deben seguir para crear una canalización de inferencia, consulte Creación de un sistema avanzado de generación aumentada de recuperación.
Otros factores que influyen en las finalizaciones
Más allá de modificar mediante programación la solicitud, crear una canalización de inferencia y otras técnicas, se describen más detalles en Aumento de un modelo de lenguaje de gran tamaño con la generación aumentada por recuperación y el ajuste. Además, puede modificar los parámetros al realizar llamadas a la API de Azure OpenAI.
Para revisar los parámetros obligatorios y opcionales que pueden afectar a varios aspectos de la finalización, consulte la Documentación del punto de conexión de chat. Si usa un SDK, consulte la documentación del SDK para el lenguaje que usa. Puede experimentar con los parámetros de Área de juegos.
Temperature: controle la aleatoriedad de la salida que genera el modelo. En cero, el modelo se convierte en determinista, seleccionando de forma coherente el siguiente token más probable de sus datos de entrenamiento. A una temperatura de 1, el modelo se equilibra entre elegir tokens de alta probabilidad e introducir aleatoriedad en la salida.Max Tokens: controla la longitud máxima de la respuesta. Establecer un límite superior o inferior puede afectar a los detalles y el ámbito del contenido generado.Top P(muestreo del núcleo): se usa conTemperaturepara controlar la aleatoriedad de la respuesta.Top Plimita la inteligencia artificial para tener en cuenta solo el porcentaje superior de masa de probabilidad (P) cuando genera cada token. Los valores más bajos conducen al texto más centrado y predecible. Los valores más altos permiten más diversidad.Frequency Penalty: disminuye la probabilidad de que el modelo repita la misma línea o frase. Aumentar este valor ayuda a evitar la redundancia en el texto generado.Presence Penalty: anima al modelo a introducir nuevos conceptos y términos en la finalización.Presence Penaltyes útil para generar salidas más diversas y creativas.Stop Sequences: puede especificar una o varias secuencias para indicar a la API que deje de generar más tokens.Store Sequencesson útiles para controlar la estructura de la salida, como terminar una finalización al final de una frase o párrafo.Logit Bias: le permite modificar la probabilidad de que los tokens especificados aparezcan en la finalización.Logit Biasse puede usar para guiar la finalización en una determinada dirección o para suprimir contenido específico.
Medidas de seguridad de Microsoft Azure OpenAI
Es probable que, además de cómo limitar las respuestas de LLM a temas o dominios específicos, también le interesen los tipos de preguntas que los usuarios hacen al LLM. Es importante tener en cuenta los tipos de respuestas que genera.
En primer lugar, las llamadas API a Microsoft Azure OpenAI Services filtran automáticamente el contenido que la API encuentra potencialmente ofensivo e informa esto de nuevo a usted en muchas categorías de filtrado.
Puede usar directamente Content Moderation API directamente para comprobar cualquier contenido potencialmente dañino.
Después, puede usar La seguridad del contenido de Azure AI para ayudar con la moderación de texto, la moderación de imágenes, la detección de riesgos de jailbreak y la detección de materiales protegidos. Este servicio combina una experiencia de configuración, configuración e informes del portal con el código que puede agregar a la aplicación para identificar contenido perjudicial.
Agentes de IA
Los agentes de inteligencia artificial son una nueva manera de crear aplicaciones de IA generativas que funcionan por sí mismas. Usan LLM para leer y escribir texto, y también pueden conectarse a sistemas externos, API y orígenes de datos. Los agentes de inteligencia artificial pueden administrar tareas complejas, tomar decisiones mediante datos en tiempo real y aprender de cómo los usuarios los usan. Para más información sobre los agentes de IA, consulte Inicio rápido: Creación de un nuevo agente.
Llamada a herramientas
Los agentes de inteligencia artificial pueden usar herramientas y API externas para obtener información, tomar medidas o conectarse con otros servicios. Esta característica les permite hacer más que simplemente generar texto y controlar tareas más complejas.
Por ejemplo, un agente de IA puede obtener actualizaciones meteorológicas en tiempo real de una API meteorológica o extraer detalles de una base de datos en función de lo que un usuario le pregunte. Para más información sobre las llamadas a herramientas, consulte Llamada a herramientas en Azure AI Foundry.
Protocolo de contexto de modelo (MCP)
El Protocolo de contexto de modelo (MCP) permite a las aplicaciones proporcionar funcionalidades y contexto a un modelo de lenguaje grande. Una característica clave de MCP es definir herramientas que los agentes de IA usan para completar tareas. Los servidores MCP se pueden ejecutar localmente, pero los servidores MCP remotos son cruciales para compartir herramientas a escala en la nube. Para más información: consulte Build Agents using Model Context Protocol on Azure (Compilación de agentes mediante el protocolo de contexto de modelo en Azure).
Consideraciones finales para el diseño de aplicaciones
Comprender la tokenización, las estrategias de precios, las ventanas de contexto y cómo la implementación de mejoras programáticas afecta a la manera en que diseña su sistema de IA generativa para mejorar la experiencia de generación de texto de los usuarios.
Esta es una breve lista de aspectos que se deben tener en cuenta y otros aspectos de este artículo que podrían afectar a las decisiones de diseño de aplicaciones:
- Evalúe la necesidad de usar el modelo de inteligencia artificial más reciente con respecto a las consideraciones de costos. Los modelos que son menos costosos pueden ser suficientes para las necesidades de la aplicación. Equilibre el rendimiento con restricciones presupuestarias.
- Considere la posibilidad de optimizar la longitud de la ventana de contexto para administrar los costos sin afectar significativamente a la experiencia del usuario. El recorte de partes innecesarias de la conversación podría reducir las tarifas de procesamiento al tiempo que se mantienen las interacciones de calidad.
- Evalúe cómo la tokenización y la granularidad de las entradas y salidas afectan al rendimiento. Comprender cómo el LLM elegido controla la tokenización puede ayudarle a optimizar la eficacia de las llamadas API, lo que podría reducir los costos y mejorar los tiempos de respuesta.
Si desea empezar a experimentar con la creación de una solución de inteligencia artificial generativa inmediatamente, se recomienda echar un vistazo a Introducción al chat mediante su propio ejemplo de datos para Python. El tutorial también está disponible en .NET, Javay javaScript.