Comparteix a través de


Técnicas de ingeniería de solicitudes

Los modelos GPT-3, GPT-3.5, GPT-4 7 y GPT-4o de OpenAI se basan en solicitudes. Con los modelos basados en solicitudes, el usuario interactúa con el modelo ingresando una solicitud de texto, a la que el modelo responde con un texto completo. Esta finalización es la continuación del modelo del texto de entrada.

Si bien estos modelos son extremadamente poderosos, su comportamiento también es muy sensible a la solicitud. Esto hace que la construcción de la solicitud sea una habilidad importante a desarrollar.

La construcción de la solicitud puede ser difícil. En la práctica, la solicitud actúa para configurar los pesos del modelo para completar la tarea deseada, pero es más un arte que una ciencia y, a menudo, requiere experiencia e intuición para crear una solicitud que tenga éxito. El objetivo de este artículo es ayudarte a empezar a trabajar con este proceso de aprendizaje. Intenta capturar conceptos y patrones generales que se aplican a todos los modelos GPT. Sin embargo, es importante comprender que cada modelo se comporta de forma diferente, por lo que es posible que los aprendizajes no se apliquen igualmente a todos los modelos.

Aspectos básicos

En esta sección se tratan los conceptos básicos y los elementos de las solicitudes de GPT.

Las solicitudes de texto son cómo interactúan los usuarios con los modelos GPT. Al igual que con todos los modelos de lenguaje generativos, los modelos GPT intentan generar la siguiente serie de palabras que es más probable que sigan del texto anterior. Es como si estuviéramos diciendo ¿Qué es lo primero que viene a tu mente cuando digo <prompt>? Los ejemplos siguientes muestran este comportamiento. Dadas las primeras palabras del contenido famoso, el modelo puede continuar con precisión el texto.

Prompt Completion
Puntuación de cuatro y hace siete años nuestros padres produjeron en este continente una nueva nación, concebida en libertad y dedicada a la proposición de que todos los hombres son creados iguales. […]
"Llámame Ishmael". "Hace algunos años, no importa cuánto tiempo exactamente, teniendo poco o nada de dinero en mi bolso, y nada en particular que me interesara en tierra, pensé en navegar un poco y ver la parte acuática del mundo". […]

A medida que desarrolles solicitudes más complejas, es útil tener en cuenta este comportamiento fundamental. Independientemente de la solicitud que se proporcione, el modelo simplemente responde con lo que determina que es más probable (dados sus datos y objetivos de entrenamiento). Si haces una pregunta en la solicitud, el modelo no está siguiendo una ruta de código "Q&A" separada, sino que parece responder a la pregunta porque una respuesta es el tipo de respuesta más probable para la pregunta dada como entrada.

Componentes de la solicitud

Al usar la API Completion, aunque no hay diferenciación entre distintas partes del prompt, puede ser útil para el aprendizaje y la discusión para identificar los componentes subyacentes del prompt. Con la API de finalización de chat hay distintas secciones del mensaje que se envían a la API en forma de una matriz de diccionarios con roles asociados: sistema, usuario y asistente. Esta guía se centra más generalmente en cómo pensar en la construcción de prompts en lugar de proporcionar instrucciones prescriptivas específicas de una API sobre otra.

También es importante comprender que, aunque podría haber otras formas válidas de diseccionar prompts, el objetivo de este desglose es proporcionar una manera relativamente sencilla de pensar en la construcción de prompts. Con la API de finalización, todos los componentes son opcionales, pero al menos uno debe estar presente y la mayoría de los mensajes incluyen más de un componente. También puede haber un área gris entre componentes. El orden que se presenta a continuación se corresponde aproximadamente con la frecuencia de uso de cada componente, de la mayoría a la mínima.

Instructions

Es probable que las instrucciones sean el componente de solicitud más usado. Las instrucciones son simplemente eso: instrucciones para el modelo sobre qué hacer. Aunque son simples en concepto, pueden ser complejos en la práctica. En la tabla siguiente se muestra esto mostrando instrucciones simples y más complejas, en dos formas diferentes.

Tipo de instrucción Prompt Completion
Instrucciones sencillas Escribe una introducción para un boletín semanal. Te damos la bienvenida al boletín semanal. Esta semana tenemos un enfoque especial sobre la productividad. Compartiremos consejos y trucos sobre cómo ser productivos en todas las áreas de la vida. Esperamos que lo disfrutes y lo compartas con tus amigos!
Instrucciones complejas Escribe una introducción para un boletín semanal en mi empresa denominada Contoso. Cabe mencionar la gran reunión de manos que tuvimos la semana pasada y agradecer al equipo por todo su arduo trabajo durante los últimos meses difíciles. Te damos la bienvenida al boletín semanal de Contoso. Tuvimos una gran reunión con todos la semana pasada y quiero agradecer al equipo por todo su duro trabajo durante los últimos meses. Esperamos un futuro brillante y estoy seguro de que con la dedicación y el compromiso de nuestro equipo, lograremos grandes cosas. Gracias por ser parte de nuestro equipo y espero trabajar con todos vosotros en las próximas semanas y meses. Atentamente, [Tu nombre].
Instrucciones complejas Escribe una introducción para un boletín semanal, que incluya lo siguiente:
- Mi empresa se llama Contoso
- Un saludo exuberante
- Agradecer al equipo por su trabajo duro durante un par de meses difíciles
- Perspectivas positivas para el próximo trimestre
- Firmado por el SLT
¡Hola, equipo de Contoso! Quería dedicar un momento para agradeceros todo vuestro duro trabajo durante los últimos meses. Han sido un par de meses duros, pero todos os habéis unido y hecho un trabajo increíble. Estoy muy orgulloso de todos vosotros. De cara al próximo trimestre, me siento muy positivo. Creo que lograremos grandes cosas. Gracias de nuevo, el equipo de liderazgo sénior.

Contenido principal

El contenido principal hace referencia a algún tipo de texto que el modelo procesa o transforma. El contenido principal se usa normalmente junto con instrucciones. Un ejemplo sencillo sería la traducción de idioma. En el siguiente ejemplo, el texto en inglés se consideraría el contenido principal, mientras que "Traducir al francés:" es una instrucción.

Prompt Completion
¿Puedes decirme cómo llegar al museo?
Traducir al francés:
Pouvez-vous s'il vous plaît me dire comment aller au musée?

El contenido principal también puede ser mucho más largo. En el ejemplo siguiente, el contenido principal es la sección de introducción de la entrada de Wikipedia sobre la complejidad del tiempo, que tiene casi 300 palabras. Este contenido se ha abreviado en nuestra tabla para facilitar la visualización.

Prompt Completion
En informática, la complejidad del tiempo es la complejidad computacional que describe la cantidad de tiempo que se tarda en ejecutar un algoritmo. La complejidad del tiempo se estima normalmente por [...]
Resumir el texto anterior en algunas oraciones:
La complejidad del tiempo es una medida del tiempo que tarda un algoritmo en ejecutarse. Normalmente se expresa como una función del tamaño de la entrada. La medida más común es la complejidad del peor de los casos, que es la cantidad máxima de tiempo necesaria para las entradas de un tamaño determinado.
En informática, la complejidad del tiempo es la complejidad computacional que describe la cantidad de tiempo que se tarda en ejecutar un algoritmo. La complejidad del tiempo se estima normalmente por [...]
TL;DR (demasiado tiempo sin lectura)
La complejidad del tiempo de un algoritmo es la cantidad de tiempo que se tarda en ejecutar un algoritmo. La complejidad del tiempo se calcula normalmente contando el número de operaciones elementales realizadas por el algoritmo, lo que supone que cada operación elemental tarda un tiempo fijo en realizar. La complejidad del tiempo se expresa generalmente como una función del tamaño de la entrada.

Los modelos GPT también pueden controlar el contenido principal estructurado. En el ejemplo siguiente, se pasa un TSV sobre cervezas en Bélgica (abreviada para su presentación en este artículo) al modelo como parte del aviso. Es capaz de interpretar correctamente el contenido y responder a preguntas sobre los datos.

Prompt Completion
Belgian Beer Brands
Beer name Beer style color ABV Brewery
"Chimay Gold: ""Doree""" trappist pale ale gold 4.80% Chimay Brewery (official trappist)
"Chimay Blue: ""Grande Reserve""" trappist dark ale dark 9.00%
[…]
Haciendo referencia a la tabla anterior, ¿cuántas cervezas son inferiores al 6 % ABV?
Hay 10 cervezas en la tabla que tienen menos del 6 % ABV.

Ejemplos

Las indicaciones exitosas a menudo se basan en la práctica del aprendizaje de "una sola oportunidad" o "pocas oportunidades". Esto hace referencia a la inclusión de uno o varios ejemplos del comportamiento deseado del modelo, normalmente mediante la inclusión de pares de entrada y salida. Esto no está aprendiendo en el sentido de que el modelo se cambia permanentemente, sino que los ejemplos mejor condición que el modelo responda según lo deseado solo para la inferencia actual. El uso de avisos sin ejemplos a veces se denomina aprendizaje de “una sola oportunidad”. Tenga en cuenta que con la API de finalización de chat, los ejemplos de aprendizaje de pocas tomas generalmente se agregan a la matriz de mensajes en forma de interacciones de usuario/asistente de ejemplo después del mensaje inicial del sistema.

Tipo de aprendizaje Prompt Completion
Zero-shot Titular: El entrenador confía en que la lesión no descarrilará a los Warriors
Tema:
El entrenador confía en que la lesión no descarrile la temporada de los Warriors. El equipo sigue centrado en sus objetivos y seguirá trabajando duro para conseguirlos.
Few-shot Titular: Correa de los Twins usará la exclusión voluntaria y probará la agencia libre
Tema: Béisbol
Titular: La Copa Mundial de Qatar tendrá zonas para recuperar la sobriedad
Tema: Fútbol
Titular: Yates: Actualidad de la Fantasy Football - Semana 6
Tema: Fútbol
Titular: El entrenador confía en que la lesión no descarrilará a los Warriors
Tema:
Baloncesto

En el ejemplo anterior se muestra la utilidad del aprendizaje de pocas oportunidades. Sin los ejemplos, el modelo parece adivinar el comportamiento deseado, mientras que los ejemplos muestran limpiamente el modelo cómo operar. Esto también muestra la potencia del modelo, puede deducir la categoría de etiqueta que se desea, incluso sin una etiqueta de "baloncesto" en los ejemplos.

Pila

Las señales actúan como el "punto de partida" para la salida del modelo, lo que ayuda a dirigir el modelo hacia la salida deseada. A menudo es un prefijo en el que el modelo se puede compilar. En el ejemplo siguiente, se muestra la indicación que dirige la historia para incluir elementos clave. Las indicaciones a menudo se usan junto con instrucciones, pero no siempre. En los ejemplos siguientes, el modelo se usa para resumir un correo electrónico de anuncio largo. En un caso se usa una indicación para ayudar a centrar la salida del modelo y sugerir un formato de salida específico (puntos de viñetas) en el otro.

En el contexto de las instrucciones de la API de finalización de chat toman la forma del mensaje del sistema y algunos ejemplos de captura se indican proporcionando una serie de interacciones de usuario y asistente de ejemplo para ayudar a mejorar el modelo.

Número de indicaciones Prompt Completion
0 Las revisiones de rendimiento son un componente fundamental de nuestro enfoque de desarrollo y rendimiento en Contoso. […]
Resumir el mensaje de correo electrónico anterior:
El propósito de este correo electrónico es informar a los empleados de los cambios recientes en la experiencia de revisión de rendimiento, que forma parte del enfoque de desarrollo y rendimiento de Contoso. Los cambios incluyen una estructura mejorada, una experiencia de usuario actualizada en la herramienta y mensajes centrados. Además, ahora hay una sección opcional de inicios de conversación para que los empleados marquen los temas que les gustaría discutir con sus administradores.
1 Las revisiones de rendimiento son un componente fundamental de nuestro enfoque de desarrollo y rendimiento en Contoso. […]
Resumir el mensaje de correo electrónico anterior:
El punto clave del mensaje es
que Contoso está mejorando la experiencia de revisión de rendimiento haciendo que se centre más en las prioridades principales, las expectativas y el impacto. Además, están actualizando la experiencia del usuario en la herramienta con sugerencias, recursos e instrucciones. Por último, están agregando instrucciones sobre cómo activar las prioridades principales de toda la empresa.
2 Las revisiones de rendimiento son un componente fundamental de nuestro enfoque de desarrollo y rendimiento en Contoso. […]
Resumir el mensaje de correo electrónico anterior:
Puntos clave:
Contoso está introduciendo cambios en la experiencia de revisión de rendimiento, en función de los comentarios de los empleados.
• Los cambios incluyen un nuevo enfoque en las prioridades fundamentales, las expectativas y el impacto; una experiencia de usuario mejorada; y nueva orientación sobre las prioridades fundamentales de toda la empresa.
• Las revisiones de rendimiento son un momento para reflexionar sobre el rendimiento y el aprendizaje pasados, así como para planear prioridades futuras y oportunidades de crecimiento.
• Los empleados y gerentes deben escribir comentarios con antelación de la reunión de revisión de rendimiento.
• Debe haber al menos dos revisiones de rendimiento al año.
• La inversión de tiempo para cada revisión debe permanecer aproximadamente igual.

Contenido adicional

El contenido auxiliar es información que el modelo puede usar para influir en la salida de alguna manera. Difiere del contenido principal en que no es el destino principal de la tarea, pero normalmente se usa junto con el contenido principal. Entre los ejemplos comunes se incluyen información contextual, como la fecha actual, el nombre del usuario, las preferencias del usuario, etc. En el ejemplo siguiente se usa contenido auxiliar para ayudar a organizar un conjunto de talleres planeados para el usuario. Sin el apoyo (temas importantes), el modelo simplemente muestra los talleres (truncados para su presentación), cuando se informa de mis temas importantes, el modelo puede agrupar con precisión las reuniones.

Contenido adicional Prompt Completion
SIN Lista de talleres:
Descripción del título
Inicio del taller de planificación ¡Únete a nosotros para iniciar el taller! Escucha a nuestros líderes hablar sobre las prioridades y los aprendizajes de los grupos cruzados para el próximo año. La invitación a este evento ya se ha enviado a todos en [...]
Resumir los talleres anteriores, agrupados por tema:
Lista de talleres:
Inicio del taller de planeación
-Resumen del taller de planificación
- Reunión principal
- Perspectivas controladas por el cliente
-Impacto y áreas de enfoque clave
-Procedimientos recomendados
-Aceleración de la adopción de aplicaciones [...]
With Lista de talleres:
Descripción del título
Inicio del taller de planificación ¡Únete a nosotros para iniciar el taller! Escucha a nuestros líderes hablar sobre las prioridades y los aprendizajes de los grupos cruzados para el próximo año. La invitación a este evento ya se ha enviado a todos en [...]
Mis temas importantes: ingeniería de mensajes, búsqueda, modelos GPT
Resumir los talleres anteriores, agrupados por mis temas importantes:
1. Ingeniería de solicitudes:
- Nuevas sugerencias de ingeniería de solicitudes
- El arte de la ingeniería de las solicitudes
2. Búsqueda:
-Introducción a la búsqueda de vectores con incrustación
3. Modelos GPT:
- Introducción a GPT-4
- GPT-35-Turbo en profundidad.

Guía específica de escenario

Aunque los principios de la ingeniería rápida se pueden generalizar en muchos tipos de modelos diferentes, algunos de ellos requieren una estructura de solicitud especializada. En el caso de los modelos GPT de Azure OpenAI, hay actualmente dos API distintas en las que entra en juego la ingeniería rápida:

  • API de finalización de chat.
  • API de finalización.

Cada API requiere que los datos de entrada se formateen de forma diferente, lo que a su vez afecta al diseño general de la solicitud. La API Chat Completion admite los modelos GPT-35-Turbo y GPT-4. Estos modelos están diseñados para tomar datos con formato de entrada en una transcripción específica de tipo chat almacenada dentro de una matriz de diccionarios.

La API de finalización admite los modelos GPT-3 antiguos y tiene requisitos de entrada mucho más flexibles, donde toma una cadena de texto sin reglas de formato específicas.

Las técnicas de esta sección le enseñarán estrategias para aumentar la precisión y la base de las respuestas que genere con un modelo de lenguaje grande (LLM, por sus siglas en inglés). Sin embargo, es importante recordar que incluso cuando se usa la ingeniería rápida de forma eficaz, todavía es necesario validar las respuestas que generan los modelos. Solo porque un aviso cuidadosamente diseñado funciona bien para un contexto determinado no significa necesariamente que generalice de forma más amplia a ciertos casos de uso. Comprender las limitaciones de los modelos de lenguaje grande (LLM) es tan importante como comprender cómo aprovechar sus puntos fuertes.

En esta guía no se profundiza en la mecánica que subyace en la estructura de mensajes para Chat Completion. Si no está familiarizado con la interacción con los modelos de Chat Completion mediante programación, le recomendamos leer nuestra guía paso a paso sobre la API Chat Completion.

Nota:

Todos los ejemplos de esta sección de la guía se probaron en un modelo base GPT-4 en inglés. Si está leyendo una versión localizada de este artículo en otro idioma, estas respuestas representan una traducción localizada de los resultados en inglés. Para obtener más información sobre las posibles limitaciones en función del idioma que use para solicitar un modelo, consulte nuestra nota de transparencia de inteligencia artificial responsable.

Aprendizaje en pocos pasos

Una manera común de adaptar los modelos de lenguaje a nuevas tareas es usar el aprendizaje en pocos pasos. En el aprendizaje en pocos pasos, se proporciona un conjunto de ejemplos de entrenamiento como parte de la solicitud para ofrecer un contexto adicional al modelo.

Cuando se usa la API de finalizaciones de chat, una serie de mensajes entre el usuario y el asistente (escrito en el nuevo formato de solicitud), puede servir a modo de ejemplos para el aprendizaje en pocos pasos. Estos ejemplos se pueden usar para preparar el modelo para responder de una manera determinada, emular comportamientos concretos y inicializar respuestas a preguntas comunes.

Mensaje del sistema Ejemplos de aprendizaje en pocos pasos
El asistente es un bot de chat inteligente diseñado para ayudar a los usuarios a dar respuesta a sus preguntas relacionadas con los impuestos.
Instructions
- Responde solo a preguntas relacionadas con los impuestos.
- Si no estás seguro de una respuesta, puedes decir "No lo sé" o "No estoy seguro" y recomendar a los usuarios ir al sitio web de IRS para obtener más información.
Usuario: "¿Cuándo necesito presentar mis impuestos?".
Asistente: "En 2023, tendrá que presentar sus impuestos antes del 18 de abril. La fecha cae después de la fecha límite habitual, el 15 de abril, porque el 15 de abril este año cae en sábado. Para más información, consulte https://www.irs.gov/filing/individuals/when-to-file".

Usuario: "¿Cómo puedo comprobar el estado de mi devolución de impuestos?".
Asistente: "Puede comprobar el estado de su devolución de impuestos visitando https://www.irs.gov/refunds ".

En la tabla anterior se describe la estructura básica de la solicitud, pero para obtener una explicación detallada del formato de solicitud exacto, deberá consultar la guía de Chat Completion.

Escenarios que no son de chat

Aunque la API de finalización de chat está optimizada para trabajar con conversaciones multiturno, también se puede usar para escenarios que no son de chat. Por ejemplo, para un escenario de análisis de sentimiento, puede usar la solicitud siguiente:

Mensaje del sistema Usuario Asistente
Usted es un asistente diseñado para hacer un análisis de opinión a partir de datos de voz. Los usuarios pegarán una cadena de texto y responderá con una evaluación de la respuesta del hablante. Tasa en una escala de 1 a 10 (10 siendo el de mayor valor). Explica por qué lo has puntuado como tal. Hola. Gracias por llamar a la farmacia Contoso. ¿Con quien hablo? Entiendo su frustración, Mary. Hum. ¿Puede explicarme detalladamente lo que quiere? Vale. Ah. Encantado de comprobarlo por usted, un momento. Aquí veo que estaba tomando un genérico de... De Lipitor. Eso es. Vale. Hum. Entonces, veo que su médico le dejó de prescribir esos medicamentos en dos mil veintiuno en realidad. Vale. Ah, sí. Claro, lo compruebo. Hum. Porque a veces hay problemas en el sistema y no se reporta, así que deme un momento que mire aquí. Vale, veo que su medico le había prescrito estos medicamentos desde desde dos mil doce y en dos mil veintiuno. Vale. Hum. Sí. Según los últimos registros proporcionados por la consulta del médico, ahora lleva una medicación distinta. ¿Quiere que sigamos con ella y le hagamos la receta para que lo pueda recoger? Relleno los datos. En quinientos miligramos. Ah, de nada, Mary. ¿Necesita alguna otra cosa? Calificación de la opinión: 8
El orador de este texto parece ser amable, dispuesto a ayudar y paciente mientras atiende las preocupaciones del cliente. Se tarda en comprobar la información, proporcionar explicaciones claras y ofrecer asistencia. Sin embargo, la calificación no es 10 porque todavía hay un atisbo de incertidumbre en algunas partes de la conversación, lo que puede no transmitir plena confianza al cliente.

Empieza con instrucciones claras

La secuencia en la que la información aparece en la solicitud es importante. Esto se debe a que los modelos de estilo GPT se crean de una manera determinada que define cómo procesan la entrada de información. Nuestra investigación sugiere indicar al modelo la tarea que quiere que haga al principio del mensaje, antes de compartir información contextual adicional o ejemplos, puede ayudar a producir salidas de mayor calidad.

Nota

Aunque seguir esta técnica es algo que se sigue recomendando generalmente, a diferencia de lo que ocurría en las versiones anteriores del modelo (GPT-3 y anteriores), nuestras pruebas mostraron que la respuesta del modelo con los modelos ChatGPT y GPT-4 era la misma independientemente de si se utiliza la técnica o no. En el caso del ejemplo siguiente, vemos que al agregar la instrucción "Varios orígenes... erupción" al principio o al final del aviso no causó ningún cambio en la respuesta del modelo final.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Tu tarea es comprobar si la instrucción "varias fuentes mencionan una posibilidad de otra erupción grande" es compatible con una cita específica del siguiente conjunto de fragmentos de código.
---
FRAGMENTOS DE CÓDIGO
[1] 14 % de probabilidades de que se produzca un megaterremoto en Seattle, según los expertos
SEATTLE: Hay una probabilidad del 14 % de que el terremoto de Cascadia de magnitud 9 sacuda Seattle en los próximos 50 años, según estima el Servicio Geológico de Estados Unidos. "Desafortunadamente, no podemos...

[2] Expertos en terremotos han dado a conocer las últimas perspectivas del "Big One" que podría sacudir Seattle.
"Decimos que hay alrededor de un 14 % de probabilidad de que se produzca un terremoto de magnitud 9 aproximadamente en los próximos 50 años", dijo un geofísico en la Universidad de Washington...
---
¿La instrucción "Varias fuentes mencionan la posibilidad de otra gran erupción" está implícita o se indica en los fragmentos?
No, la instrucción no está implícita directamente ni está indicada en los fragmentos. Los fragmentos mencionan la posibilidad de un "megaterremoto" y un "terremoto de Cascadia de magnitud 9" que golpearía Seattle en los próximos 50 años, pero no mencionan la posibilidad de otra gran erupción.

Repetir instrucciones al final

Los modelos pueden ser susceptibles a sesgos de rectitud, lo que en este contexto significa que la información al final de la solicitud podría tener una influencia más significativa sobre la salida que la información del principio de la solicitud. Por lo tanto, vale la pena experimentar con la repetición de las instrucciones al final del aviso y evaluar el impacto en la respuesta generada.

Preparar la salida

Esto hace referencia a incluir algunas palabras o frases al final del mensaje para obtener una respuesta del modelo que siga la forma deseada. Por ejemplo, el uso de una indicación como “Here’s a bulleted list of key points:\n- ” puede ayudar a asegurar que la salida tiene el formato de una lista de puntos de viñetas.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Responde en tan pocas palabras como sea posible. John Smith está casado con Lucy Smith. Tienen cinco hijos y él trabaja como ingeniero de software en Microsoft. ¿Qué consultas de búsqueda debo hacer para verificarlo? ## Una posible consulta de búsqueda es: "John Smith marido de Lucy Smith con cinco niños ingeniero de software Microsoft"

En la solicitud anterior, el texto Una posible consulta de búsqueda es: prepara el modelo para generar una única salida. Sin esta indicación, el modelo genera varias consultas de búsqueda como salida.

Agregar una sintaxis clara

El uso de una sintaxis clara para el mensaje, incluidos los signos de puntuación, los encabezados y los marcadores de sección, ayuda a comunicar la intención y, a menudo, facilita el análisis de las salidas.

En el ejemplo siguiente, se han agregado separadores (--- en este caso) entre diferentes orígenes de información o pasos. Esto permite el uso de --- como condición de parada para la generación. Además, los encabezados de sección o variables especiales se presentan en mayúsculas para diferenciarlos.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Va a leer un párrafo y, a continuación, hará una consulta a un motor de búsqueda para comprobar la información. Explica también las consultas.
---
PÁRRAFO
John Smith está casado con Lucy Smith. Tienen cinco hijos y él trabaja como ingeniero de software en Microsoft. ¿Qué consultas de búsqueda debo hacer para verificarlo?
---
QUERIES
1. "John Smith Microsoft": para comprobar si John Smith está empleado realmente en Microsoft.
2. "John Smith Lucy Smith": para comprobar si John Smith está casado con Lucy Smith.
3. "John Smith hijos": para comprobar si John Smith tiene cinco hijos.

Si no está seguro de qué sintaxis usar, considere la posibilidad de usar Markdown o XML. Los modelos se han entrenado en una gran cantidad de contenido web en XML y Markdown, con los que puede proporcionar mejores resultados.

Dividir la tarea

Los modelos de lenguaje grandes (LLM) suelen funcionar mejor si la tarea se divide en pasos más pequeños. Por ejemplo, en la consulta de búsqueda mencionada anteriormente, la consulta puede reestructurarse de modo que el modelo reciba una primera instrucción para extraer hechos relevantes y, luego, otra para generar consultas de búsqueda que puedan utilizarse para comprobar esos hechos.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Va a leer un párrafo y, a continuación, hará una consulta a un motor de búsqueda para comprobar la información.
---
PÁRRAFO
John Smith está casado con Lucy Smith. Tienen cinco hijos y él trabaja como ingeniero de software en Microsoft. ¿Qué consultas de búsqueda debo hacer para verificarlo?
---
Ahora extraerá afirmaciones objetivas y realizará consultas para comprobarlas. Al emitir una consulta, use la función SEARCH("query")

AFIRMACIONES OBJETIVAS
1. John Smith está casado con Lucy Smith
2. Tienen cinco hijos
3. Trabaja como ingeniero de software en Microsoft

QUERIES
SEARCH("John Smith está casado con Lucy Smith")
SEARCH("Tamaño de familia de John Smith")
SEARCH("John Smith ingeniero de software en Microsoft")

Observe el uso de una sintaxis clara para diferenciar las secciones y preparar la salida. En este ejemplo sencillo, dividir la tarea de uno a dos pasos no es muy radical, pero al intentar hacerlo para un fragmento de texto más grande con muchas afirmaciones objetivas, dividir la tarea puede suponer una diferencia significativa.

Uso de prestaciones

A veces, podemos coger el modelo para usar una prestación en lugar de confiar en sus propios parámetros para obtener información y respuestas. Buscar, por ejemplo, puede ser una prestación para ayudar a mitigar las respuestas fabricadas y para obtener información actualizada.

Una manera sencilla de usar una prestación es detener la generación una vez que el modelo genera las llamadas a la prestación y, a continuación, pegar los resultados de nuevo en la solicitud. A continuación se muestra un ejemplo de lo que podría ser la llamada de seguimiento después de realizar las llamadas de BÚSQUEDA anteriores. Observe cómo pegamos los resultados de la búsqueda en la solicitud y reemplazamos las llamadas de BÚSQUEDA anteriores.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Va a leer un párrafo, extraerá afirmaciones objetivas y, después, usará los resultados de búsqueda para comprobarlas.
---
PÁRRAFO
John Smith está casado con Lucy Smith. Tienen cinco hijos y él trabaja como ingeniero de software en Microsoft. ¿Qué consultas de búsqueda debo hacer para verificarlo?
---
AFIRMACIONES OBJETIVAS
- John Smith está casado con Lucy Smith
- John y Lucy tienen cinco hijos
- John trabaja como ingeniero de software en Microsoft
---
Estas son varias consultas de búsqueda emitidas para investigar las afirmaciones anteriores:
CONSULTAS DE BÚSQUEDA
- John Smith está casado con Lucy Smith
- John Smith número de hijos
- John Smith ingeniero de software en Microsoft
---
Estos son fragmentos de los resultados de la búsqueda:
FRAGMENTOS
[1] … La boda de John Smith fue el 25 de septiembre de 2012...
[2] … John Smith asistió acompañado por su esposa Lucy a una fiesta
[3] John fue al partido de fútbol con sus dos hijas y sus tres hijos
[4] … Después de pasar 10 años en Microsoft, Smith fundó su propia startup, Tailspin Toys
[5] John M es el herrero del pueblo, y se casó con Fiona. Tienen una hija llamada Lucy
---
Dados los fragmentos, compruebe los hechos de cada una de las afirmaciones objetivas anteriores:
- John Smith está casado con Lucy Smith: confirmado. Los fragmentos [1] y [2] mencionan a la esposa de John Smith como Lucy.

- John y Lucy tienen cinco hijos: confirmado. El fragmento [3] menciona que John estaba acompañado por sus dos hijas y tres hijos.

- John trabaja como ingeniero de software en Microsoft: confirmado parcialmente. El fragmento [4] menciona que John pasó 10 años en Microsoft, pero no indica explícitamente que actualmente trabaje allí. Es posible que se necesiten más investigaciones para confirmar su situación laboral actual.

Cadena de pensamientos

Se trata de una variación en la técnica de división de la tarea. En lugar de dividir una tarea en pasos más pequeños, en este enfoque se indica a la respuesta del modelo que continúe paso a paso y presente todos los pasos implicados. Esto reduce la posibilidad de imprecisión de los resultados y facilita la evaluación de la respuesta del modelo.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. ¿Quién fue el atleta individual más representativo (con más medallas) en los Juegos Olímpicos celebrados en Sídney? Responde paso a paso, cita las fuentes y expón el razonamiento antes de compartir la respuesta final en el formato que se indica a continuación: La RESPUESTA es: <name> Paso 1: Determinar el año de los juegos olímpicos de Sydney. Los Juegos Olímpicos de Sídney fueron celebrados en el año 2000.

Paso 2: Encontrar una lista de atletas individuales que ganaron varias medallas en los Juegos Olímpicos de Sídney en el año 2000.

Según el sitio web oficial de los Juegos Olímpicos, hubo varios atletas individuales que ganaron varias medallas en los Juegos Olímpicos de Sídney en el año 2000. Algunos de los nombres importantes son:
• Ian Thorpe (Australia): 3 oros, 2 platas, 0 bronces
• Pieter van den Hoogenband (Países Bajos): 2 oros, 0 platas, 2 bronces
• Lenny Krayzelburg (EE. UU.): 3 oros, 0 platas, 0 bronces
• Inge de Bruijn (Países Bajos): 3 oros, 1 plata, 0 bronces

Paso 3: Determinar el atleta con más medallas. Después de revisar la lista de atletas individuales que ganaron varias medallas en los Juegos Olímpicos de Sídney en el año 2000, podemos ver que el atleta con más medallas es Ian Thorpe, de Australia, que ganó un total de 5 medallas (3 oros y 2 platas).

Por lo tanto, la RESPUESTA es: Ian Thorpe.

Especificación de la estructura de salida

El uso de la solicitud para especificar la estructura de la salida puede tener un impacto significativo en la naturaleza y la calidad de los resultados. A veces, las entradas del mensaje del sistema como "solo escriben hechos verdaderos" o "no inventar información" podrían no ser medidas adecuadas. En su lugar, pedir que la respuesta del modelo incluya también citas puede ayudar a reducir la prevalencia de respuestas incorrectas.

Si das instrucciones al modelo que cite la fuente cuando haga afirmaciones, es mucho más probable que esas afirmaciones estén fundamentadas. La solicitud de citas hace que el modelo deba realizar dos errores cada vez que genera una respuesta: el primer error es la respuesta fabricada y el segundo es la cita incorrecta. Tenga en cuenta que cuanto más cerca esté la cita del texto al que apoya, menor es la distancia por delante que el modelo necesita para anticipar la cita, lo que sugiere que las citas insertadas son mejores mitigaciones para la generación de contenido falso que las citas al final del contenido.

Del mismo modo, si pide al modelo que extraiga afirmaciones fácticas de un párrafo, puede extraer instrucciones compuestas como "X está haciendo Y Y Z" (que pueden ser más difícil de comprobar). Esto se puede evitar especificando una estructura de salida como (entidad1, relación, entidad2).

En los ejemplos siguientes se muestra el uso de citas y la dirección de la respuesta del modelo para ajustar una estructura definida.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Enumere los diferentes comportamientos expuestos por el agente de atención al cliente en la siguiente conversación.
---
Hola. Gracias por llamar a la farmacia Contoso. ¿Con quien hablo? Entiendo su frustración, Mary. Hum. ¿Puede explicarme detalladamente lo que quiere? Vale. Ah. Encantado de comprobarlo por usted, un momento. Aquí veo que estaba tomando un genérico de... De Lipitor. Eso es. Vale. Hum. Entonces, veo que su médico le dejó de prescribir esos medicamentos en dos mil veintiuno en realidad. Vale. Ah, sí. Claro, lo compruebo. Hum. Porque a veces hay problemas en el sistema y no se reporta, así que deme un momento que mire aquí. Vale, veo que su medico le había prescrito estos medicamentos desde desde dos mil doce y en dos mil veintiuno. Vale. Hum. Sí. Según los últimos registros proporcionados por la consulta del médico, ahora lleva una medicación distinta. ¿Quiere que sigamos con ella y le hagamos la receta para que lo pueda recoger? Relleno los datos. En quinientos miligramos. Ah, de nada, Mary. ¿Necesita alguna otra cosa?
---
¿Cómo fue la respuesta del agente de atención al cliente?
Clasifique y enumere sus distintos comportamientos y cite el motivo detrás de la clasificación, con el formato COMPORTAMIENTO("razón")
1. COMPORTAMIENTO de saludo educado("El agente inicia la conversación con un saludo educado y pide el nombre de quien ha hecho la llamada")
2. COMPORTAMIENTO empático("El agente reconoce la frustración de Mary e intenta comprender su preocupación")
3. COMPORTAMIENTO atento("El agente escucha el problema del cliente y pide más detalles")
4. COMPORTAMIENTO proactivo("El agente se ofrece a comprobar el problema del cliente")
5. COMPORTAMIENTO informativo("El agente proporciona la información pertinente sobre el historial de prescripción del cliente")
6. COMPORTAMIENTO exhaustivo("El agente comprueba si hay posibles errores en el sistema y proporciona una respuesta más completa")
7. COMPORTAMIENTO confirmativo("El agente confirma el medicamento actual con el cliente")
8. COMPORTAMIENTO orientado a una solución("El agente se ofrece a rellenar la nueva receta para el cliente")
9. COMPORTAMIENTO de cortesía("El agente da una respuesta cortés al agradecimiento del cliente y se ofrece a ayudarle en algo más si es necesario")
Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Agrupa los siguientes titulares de noticias en categorías de temas en función de los patrones que se ven en el texto. Mencione también el razonamiento detrás de cómo se definieron estas categorías.
Formato de salida:
{
"TEMA_NOMBRE": "",
"TITULARES": [],
"RAZONAMIENTO": ""
}

Titulares de noticias de entrada:
1. "De libros a presentaciones en 10 seg. con AR + ML"
2. "Demostración de 1993 de Yann LeCun con 32 años mostrando la primera red convolucional del mundo para el reconocimiento de texto"
3. "Modelo de movimientos de primer orden aplicado a la animación de pinturas"
4. "Robinhood y otros agentes literalmente bloquean la compra de $GME, $NOK, $BB, $AMC; permiten ventas"
5. "Las acciones de United Airlines caen más de un 5 % antes de la apertura del mercado"
Salida:

{
"INTELIGENCIA_ARTIFICIAL": {
"TITULARES": [
"De libros a presentaciones en 10 seg. con AR + ML",
"Demostración de 1993 de Yann LeCun con 32 años mostrando la primera red convolucional del mundo para el reconocimiento de texto",
"Modelo de movimientos de primer orden aplicado a la animación de pinturas"
],
"RAZONAMIENTO": "Estos titulares están relacionados con la inteligencia artificial, el aprendizaje automático y sus aplicaciones en varios campos".
},
"FINANCIAL_MARKETS": {
"TITULARES": [
"Robinhood y otros agentes literalmente bloquean la compra de $GME, $NOK, $BB, $AMC; permiten ventas",
"Las acciones de United Airlines caen más de un 5 % antes de la apertura del mercado",
"El Bitcoin estaba casi en los 20.000 $ un día como hoy hace un año"
],
"RAZONAMIENTO": "Estos titulares están relacionados con los mercados financieros, las acciones, las criptodivisas y las plataformas comerciales".
}
}

Parámetros Temperature y Top_p

Cambiar el parámetro Temperature cambia la salida del modelo. El parámetro Temperature se puede establecer entre 0 y 2. Un valor mayor, por ejemplo, 0,7 hace que la salida sea más aleatoria y genere más respuestas divergentes, mientras que un valor inferior, como 0,2, hace que la salida sea más focalizada y concreta. Se podría generar una historia ficticia con un valor mayor. Mientras que para generar un documento legal se recomienda usar un valor mucho menor. Top_probability es otro parámetro y es similar a Temperature en cuanto a que también controla la aleatoriedad de la respuesta del modelo, pero lo hace de otra manera. La recomendación general es modificar uno de estos dos parámetros cada vez, no ambos.

Proporcionar un contexto de referencia

Una de las formas más eficaces de proporcionar respuestas fiables es proporcionar al modelo datos de los que extraer sus respuestas (datos de base). Si su caso de uso se basa en información actualizada y fiable y no es puramente un escenario creativo, le recomendamos proporcionar datos de base. En general, cuanto más se acerque el material de origen a la forma final de la respuesta que se quiere, menos trabajo debe hacer el modelo, lo que significa que hay menos posibilidad de error. Este es un ejemplo en el que al sistema se le proporciona un blog reciente que describe el lanzamiento de GPT-4 en Azure OpenAI Service y se le pide que asigne un nombre a algunos de sus primeros clientes.

Mensaje del sistema Usuario Asistente
“Usted es un asistente de inteligencia artificial que ayuda a las personas a encontrar información. Responderá exclusivamente a partir del texto siguiente y lo hará en 100 palabras como máximo:
"En Microsoft, estamos detectando constantemente nuevas formas de dar rienda suelta a la creatividad, desbloquear la productividad y mejorar las habilidades para que más personas puedan beneficiarse del uso de la inteligencia artificial. Esto les permite a nuestros clientes...

… lo que reduce la probabilidad de que el modelo genere una respuesta perjudicial". 1

Responde en 100 palabras o menos. Use listas de viñetas siempre que sea posible.
¿Quiénes son algunos de los primeros clientes de los modelos GPT-4 de Azure OpenAI Service? Estos son algunos de los primeros clientes de los modelos GPT-4 de Azure OpenAI Service:
- Epic Healthcare: planean usar GPT-4 para ayudar a los médicos y enfermeras a dedicar menos tiempo a la entrada e investigación de datos.
- Coursera: usan Azure OpenAI Service con GPT-4 para crear una nueva experiencia de aprendizaje con tecnología de inteligencia artificial en su plataforma.
- Coca-Cola: usan Azure OpenAI para crear un centro de conocimiento y planean aprovechar las capacidades bidireccionales de GPT-4 para marketing, publicidad, relaciones públicas y relaciones con los clientes.
- Otras empresas de todos los tamaños usan Azure AI para mejorar las experiencias de los clientes, resumir contenido largo, ayudar a escribir software y reducir el riesgo mediante la predicción de los datos fiscales adecuados.

1 Texto del blog de inicio de GPT-4 de Azure OpenAI.

procedimientos recomendados

  • Sé específico. Deja lo menos posible a la interpretación. Restringe el espacio operativo.
  • Sé descriptivo. Usa analogías.
  • Esfuérzate más. A veces es posible que tenga que repetirse en el modelo. Proporciona instrucciones antes y después del contenido principal, usa una instrucción y una indicación, etc.
  • El orden importa. El orden en el que presente información al modelo podría afectar a la salida. Ya sea que coloques instrucciones antes de tu contenido ("resumir lo siguiente...") o después ("resumir lo anterior...") puede alterar el resultado. Incluso el orden de algunos ejemplos puede importar. Esto se conoce como sesgo de actualidad.
  • Dale al modelo una "salida". A veces, puede resultar útil proporcionar al modelo una ruta de acceso alternativa si no puede completar la tarea asignada. Por ejemplo, al formular una pregunta sobre un fragmento de texto, puede incluir algo como "responder con "no encontrado" si la respuesta no está presente". Esto puede ayudar al modelo a evitar generar respuestas falsas.

Ahorro de espacio

Aunque el tamaño de entrada aumenta con cada nueva generación de modelos GPT, seguirá habiendo escenarios que proporcionen más datos de los que el modelo puede controlar. Los modelos GPT dividen las palabras en "tokens". Si bien las palabras comunes de varias sílabas suelen ser un único token, las palabras menos comunes se dividen en sílabas. A veces, los tokens pueden ser intuitivos, como se muestra en el ejemplo siguiente, que muestra los límites de token para distintos formatos de fecha. En este caso, deletrear el mes completo es más eficiente en espacio que una fecha completamente numérica. La gama actual de compatibilidad con tokens va desde 2000 tokens con modelos GPT-3 anteriores hasta 32 768 tokens con la versión 32k del modelo GPT-4 más reciente.

Captura de pantalla de una cadena de texto con colores resaltados que delimitan los límites del token.

Dado este espacio limitado, es importante utilizarlo de la manera más eficiente posible.

  • Tablas: como se muestra en los ejemplos de la sección anterior, los modelos GPT pueden comprender datos con formato tabular con bastante facilidad. Esta puede ser una forma eficiente de espacio para incluir datos, en lugar de preceder cada campo con un nombre (como con JSON).
  • Espacio en blanco: los espacios en blanco consecutivos se tratan como tokens separados, lo que puede ser una manera fácil de desperdiciar espacio. Los espacios que preceden a una palabra, por otro lado, normalmente se tratan como parte del mismo token que la palabra. Observa cuidadosamente el uso de espacios en blanco y no uses puntuación cuando un espacio solo sea suficiente.