Aprenda a generar o manipular texto mediante la API de finalizaciones heredadas
Azure OpenAI Service proporciona un punto de conexión de finalización que se puede usar para una amplia variedad de tareas. El punto de conexión proporciona una interfaz sencilla y eficaz de texto y salida de texto a cualquier modelo de Azure OpenAI. Para desencadenar la finalización, escriba un texto como mensaje. El modelo genera la finalización e intenta que coincida con el contexto o el patrón. Supongamos que proporciona el mensaje "Como dijo Descartes, pienso, luego", a la API. Para este mensaje, Azure OpenAI devuelve el punto de conexión de finalización "existo" con alta probabilidad.
Importante
A menos que tenga un caso de uso específico que requiera el punto de conexión de finalizaciones, se recomienda usar el punto de conexión de finalizaciones de chat que le permite aprovechar las ventajas de los modelos más recientes, como GPT-4o, GPT-4o mini y GPT-4 Turbo.
La mejor manera de empezar a explorar las finalizaciones es a través del área de juegos en Estudio de IA de Azure. Es un cuadro de texto sencillo en el que puede escribir un mensaje para generar una finalización. Puede empezar con un mensaje sencillo como este:
write a tagline for an ice cream shop
Después de escribir el mensaje, Azure OpenAI muestra la finalización:
we serve up smiles with every scoop!
Los resultados de finalización que ve pueden diferir entre ellos porque la API de OpenAI de Azure genera una salida nueva para cada interacción. Es posible que obtenga una finalización ligeramente diferente cada vez que llame a la API, incluso si el mensaje es el mismo. Puede controlar este comportamiento con la configuración de Temperature
.
Esta sencilla interfaz de entrada y salida de texto significa que puede "programar" el modelo de Azure OpenAI proporcionando instrucciones o solo algunos ejemplos de lo que le gustaría que hiciera. La efectividad de la salida depende, en general, de la complejidad de la tarea y de la calidad de sus indicaciones. Una regla general es pensar en cómo escribiría un problema para que lo resuelva un alumno preadolescente. Un mensaje bien escrito proporciona suficiente información para que el modelo sepa lo que desea y cómo debe responder.
Nota:
Los datos de entrenamiento del modelo pueden ser diferentes para cada tipo de modelo. Los datos de entrenamiento del modelo más recientes solo se extienden hasta septiembre de 2021. En función de la solicitud, es posible que el modelo no tenga conocimiento de los eventos actuales relacionados.
Diseño de solicitudes
Los modelos de Azure OpenAI Service pueden hacer de todo, desde generar historias originales hasta realizar complejos análisis de texto. Como pueden hacer tantas cosas, debe ser explícito a la hora de mostrar lo que se quiere. Mostrar, y no sólo decir, es a menudo el secreto de una buena indicación.
Los modelos intentan predecir lo que usted quiere del mensaje. Si escribe la solicitud "Dame una lista de razas de gatos", el modelo no asumirá automáticamente que le pide solo una lista. Podría iniciar una conversación en la que sus primeras palabras sean "Dame una lista de razas de gatos" seguidas de "y te diré cuáles me gustan". Si el modelo solo asumiera que quiere una lista de gatos, no sería tan bueno en la creación de contenidos, en la clasificación o en otras tareas.
Directrices para crear solicitudes eficaces
Hay tres directrices básicas para crear solicitudes útiles:
Mostrar y contar. Deje claro lo que quiere mediante instrucciones, ejemplos o una combinación de ambos. Si desea que el modelo clasifique una lista de elementos en orden alfabético o clasifique un párrafo por opinión, incluya estos detalles en el mensaje para mostrar el modelo.
Proporcionar datos de calidad. Si intenta crear un clasificador o hacer que el modelo siga un patrón, asegúrese de que haya suficientes ejemplos. Asegúrese de revisar los ejemplos. El modelo es lo suficientemente inteligente como para resolver errores ortográficos básicos y darle una respuesta significativa. Por el contrario, el modelo puede suponer que los errores son intencionales, lo que puede afectar a la respuesta.
Compruebe la configuración. La configuración de probabilidad, como
Temperature
yTop P
, controlan el grado de determinismo del modelo a la hora de generar una respuesta. Si solicita una respuesta en la que solo hay una respuesta correcta, debe especificar valores inferiores para esta configuración. Si busca una respuesta que no sea obvia, puede utilizar valores más altos. El error más común que realizan los usuarios con esta configuración es asumir que controlan la "inteligencia" o "creatividad" en la respuesta del modelo.
Solución de problemas de solicitudes
Si tiene problemas para que la API funcione según lo previsto, revise los siguientes puntos para la implementación:
- ¿Está claro cuál debe ser la generación prevista?
- ¿Hay suficientes ejemplos?
- ¿Ha comprobado sus ejemplos de errores? (La API no le indica directamente).
- ¿Usa la configuración de probabilidad de
Temperature
yTop P
correctamente?
Clasificación de texto
Para crear un clasificador de texto con la API proporcione una descripción de la tarea y dé algunos ejemplos. En esta demostración, muestra a la API cómo clasificar la opinión de los mensajes de texto. La opinión expresa la sensación o expresión general en el texto.
This is a text message sentiment classifier
Message: "I loved the new adventure movie!"
Sentiment: Positive
Message: "I hate it when my phone battery dies."
Sentiment: Negative
Message: "My day has been 👍"
Sentiment: Positive
Message: "This is the link to the article"
Sentiment: Neutral
Message: "This new music video is unreal"
Sentiment:
Directrices para diseñar clasificadores de texto
Esta demostración revela varias directrices para diseñar clasificadores:
Use lenguaje sin formato para describir las entradas y salidas. Use un idioma sin formato para la entrada "Mensaje" y el valor esperado que expresa "Opinión". Para conocer los procedimientos recomendados, comience con descripciones de lenguaje sin formato. A menudo puedes utilizar abreviaturas o teclas para indicar la entrada y la salida cuando crees tu solicitud, pero es mejor empezar siendo lo más descriptivo posible. Después, puede ir eliminando las palabras sobrantes, siempre que la respuesta a la pregunta sea coherente.
Mostrar a la API cómo responder a cualquier caso. La demostración proporciona varios resultados: "Positivo", "Negativo" y "Neutral". Apoyar un resultado neutro es importante porque hay muchos casos en los que incluso un humano puede tener dificultades para determinar si algo es positivo o negativo.
Use emojis y texto según la expresión común. La demostración muestra que el clasificador puede ser una combinación de texto y emojis 👍. La API lee emoji e incluso puede convertir expresiones hacia y desde ellos. Para obtener una mejor respuesta, use formas comunes de expresión para los ejemplos.
Use menos ejemplos para tareas conocidas. Este clasificador solo proporciona algunos ejemplos porque la API ya tiene una comprensión de la opinión y el concepto de un mensaje de texto. Si va a crear un clasificador para algo con lo que es posible que la API no esté familiarizado, es posible que sea necesario proporcionar más ejemplos.
Varios resultados de una sola llamada API
Ahora que comprende cómo crear un clasificador, vamos a ampliar la primera demostración para que sea más eficaz. Quiere poder usar el clasificador para obtener varios resultados de una sola llamada API.
This is a text message sentiment classifier
Message: "I loved the new adventure movie!"
Sentiment: Positive
Message: "I hate it when my phone battery dies"
Sentiment: Negative
Message: "My day has been 👍"
Sentiment: Positive
Message: "This is the link to the article"
Sentiment: Neutral
Message text
1. "I loved the new adventure movie!"
2. "I hate it when my phone battery dies"
3. "My day has been 👍"
4. "This is the link to the article"
5. "This new music video is unreal"
Message sentiment ratings:
1: Positive
2: Negative
3: Positive
4: Neutral
5: Positive
Message text
1. "He doesn't like homework"
2. "The taxi is late. She's angry 😠"
3. "I can't wait for the weekend!!!"
4. "My cat is adorable ❤️❤️"
5. "Let's try chocolate bananas"
Message sentiment ratings:
1.
En esta demostración se muestra a la API cómo clasificar mensajes de texto por opinión. Proporcione una lista numerada de mensajes y una lista de clasificaciones de opiniones con el mismo índice de número. La API usa la información de la primera demostración para aprender a clasificar opiniones para un único mensaje de texto. En la segunda demostración, el modelo aprende a aplicar la clasificación de opiniones a una lista de mensajes de texto. Este enfoque permite a la API clasificar cinco (e incluso más) mensajes de texto en una sola llamada API.
Importante
Al pedir a la API que cree listas o evalúe texto, es importante ayudarla a evitar el desfase. Estos son algunos aspectos a seguir:
- Preste especial atención a los valores para la configuración de probabilidad
Top P
oTemperature
. - Ejecute varias pruebas para asegurarse de que la configuración de probabilidad está calibrada correctamente.
- No use listas largas. Las listas largas pueden conducir al desfase.
Desencadenar ideas
Una de las tareas más potentes y a la vez más sencillas que puede realizar con la API es generar nuevas ideas o versiones de entrada. Supongamos que está escribiendo una novela misteriosa y necesita algunas ideas de historias. Puede dar a la API una lista de algunas ideas y ésta intentará añadir más ideas a su lista. La API puede crear planes de negocio, descripciones de caracteres, eslogans de marketing y mucho más, a partir de un pequeño puñado de ejemplos.
En la siguiente demostración usará la API para crear más ejemplos de cómo usar la realidad virtual en el aula:
Ideas involving education and virtual reality
1. Virtual Mars
Students get to explore Mars via virtual reality and go on missions to collect and catalog what they see.
2.
Esta demostración proporciona a la API una descripción básica de la lista junto con un elemento de lista. A continuación, use un mensaje incompleto de "2" para desencadenar una respuesta de la API. La API interpreta la entrada incompleta como una solicitud para generar elementos similares y agregarlos a la lista.
Directrices para desencadenar ideas
Aunque esta demostración usa un mensaje sencillo, resalta varias directrices para desencadenar nuevas ideas:
Explicar la intención de la lista. De forma similar a la demostración del clasificador de texto, empiece por indicar a la API sobre qué consiste la lista. Este enfoque ayuda a la API a centrarse en completar la lista en lugar de intentar determinar patrones mediante el análisis del texto.
Establezca el patrón para los elementos de la lista. Cuando se proporciona una descripción de una frase, la API intenta seguir ese patrón al generar nuevos elementos para la lista. Si desea una respuesta más detallada, debe establecer esa intención con una entrada de texto más detallada para la API.
Haga una solicitud a la API con una entrada incompleta para desencadenar nuevas ideas. Cuando la API encuentra texto que parece incompleto, como el texto del símbolo del sistema "2.", primero intenta determinar cualquier texto que pueda completar la entrada. Dado que la demostración tenía un título de lista y un ejemplo con el número "1." y el texto adjunto, la API interpretó el texto de solicitud incompleto "2." como una solicitud para continuar agregando elementos a la lista.
Técnicas avanzadas de generación. Puede mejorar la calidad de las respuestas haciendo una lista más larga y diversa en su pregunta. Un método consiste en empezar con un ejemplo, dejar que la API genere más ejemplos y, a continuación, seleccionar los que más le gusten y añadirlos a la lista. Unas cuantas variaciones más de alta calidad en sus ejemplos pueden mejorar drásticamente la calidad de las respuestas.
Realizar conversaciones
A partir del lanzamiento de GPT-35-Turbo y GPT-4, le recomendamos que cree generación conversacional y bots de chat mediante el uso de modelos que admitan el punto de conexión de finalización del chat. Los modelos de finalización de chat y punto de conexión requieren una estructura de entrada diferente a la del punto de conexión de finalización.
La API es hábil para mantener conversaciones con humanos e incluso consigo misma. Con unas pocas líneas de instrucciones, la API puede actuar como un bot de chat de atención al cliente que responde de forma inteligente a las preguntas sin ponerse nervioso o como un compañero de conversación sabelotodo que hace chistes y juegos de palabras. La clave está en decirle a la API cómo debe comportarse y luego darle algunos ejemplos.
En esta demostración, la API proporciona el rol de una inteligencia artificial que responde a preguntas:
The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.
Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?
Human:
Echemos un vistazo a una variación de un bot de chat denominado "Cramer", una asistente virtual divertida y útil. Para ayudar a la API a comprender el carácter del rol, se proporcionan algunos ejemplos de preguntas y respuestas. Solo hacen falta unas pocas respuestas sarcásticas y la API puede captar el patrón y proporcionar un sinfín de respuestas similares.
Cramer is a chatbot that reluctantly answers questions.
###
User: How many pounds are in a kilogram?
Cramer: This again? There are 2.2 pounds in a kilogram. Please make a note of this.
###
User: What does HTML stand for?
Cramer: Was Google too busy? Hypertext Markup Language. The T is for try to ask better questions in the future.
###
User: When did the first airplane fly?
Cramer: On December 17, 1903, Wilbur and Orville Wright made the first flights. I wish they'd come and take me away.
###
User: Who was the first man in space?
Cramer:
Directrices para diseñar conversaciones
Nuestras demostraciones muestran lo fácil que puede crear un bot de chat capaz de llevar a cabo una conversación. Aunque parece sencillo, este enfoque sigue varias directrices importantes:
Defina la intención de la conversación. Al igual que en las demás solicitudes, usted describe la intención de la interacción con la API. En este caso, "una conversación". Esta entrada prepara la API para procesar la entrada posterior según la intención inicial.
Indique a la API cómo comportarse. Un detalle clave en esta demostración son las instrucciones explícitas sobre cómo debe interactuar la API: "El asistente es útil, creativo, inteligente y muy amable". Sin las instrucciones explícitas, la API podría desviarse e imitar al ser humano con el que interactúa. Es posible que la API no sea amigable o muestre otro comportamiento no deseado.
Asigne a la API una identidad. Al principio, la API responde como una IA creada por OpenAI. Aunque la API no tiene identidad intrínseca, la descripción del personaje ayuda a la API a responder de una forma lo más cercana posible a la verdad. Puede utilizar las descripciones de identidad del personaje de otras formas para crear diferentes tipos de bots de chat. Si le dice a la API que responda como un investigador científico en biología, obtendrá comentarios inteligentes y reflexivos de la API similares a los que se esperarían de alguien con esa formación.
Transformar texto
La API es un modelo de lenguaje que está familiarizado con varias formas en las que las palabras y las identidades de personajes se pueden utilizar para expresar información. Los datos de conocimiento admiten la transformación de texto de lenguaje natural en código y la traducción entre otros idiomas e inglés. La API también es capaz de entender el contenido a un nivel que le permite resumirlo, convertirlo y expresarlo de diferentes maneras. Veamos algunos ejemplos.
Traducción de un idioma a otro
Esta demostración indica a la API cómo convertir frases de idioma inglés en francés:
English: I do not speak French.
French: Je ne parle pas français.
English: See you later!
French: À tout à l'heure!
English: Where is a good restaurant?
French: Où est un bon restaurant?
English: What rooms do you have available?
French: Quelles chambres avez-vous de disponible?
English:
Este ejemplo funciona porque la API ya domina la lengua francesa. No es necesario intentar enseñar el lenguaje a la API. Solo tiene que proporcionar ejemplos suficientes para ayudar a la API a comprender la solicitud para convertir de un idioma a otro.
Si quiere traducir de inglés a un idioma que la API no reconoce, debe proporcionar a la API más ejemplos y un modelo ajustado que pueda producir traducciones fluidas.
Conversión entre texto y emojis
Esta demostración convierte el nombre de una película de texto en caracteres emoji. Este ejemplo muestra la adaptabilidad de la API para recoger patrones y trabajar con otros caracteres.
Carpool Time: 👨👴👩🚗🕒
Robots in Cars: 🚗🤖
Super Femme: 👸🏻👸🏼👸🏽👸🏾👸🏿
Webs of the Spider: 🕸🕷🕸🕸🕷🕸
The Three Bears: 🐻🐼🐻
Mobster Family: 👨👩👧🕵🏻♂️👲💥
Arrows and Swords: 🏹🗡🗡🏹
Snowmobiles:
Resumen de texto
La API puede captar el contexto del texto y reformularlo de diferentes maneras. En esta demostración, la API toma un bloque de texto y crea una explicación comprensible para un niño de primaria. Este ejemplo ilustra que la API tiene un profundo conocimiento del lenguaje.
My ten-year-old asked me what this passage means:
"""
A neutron star is the collapsed core of a massive supergiant star, which had a total mass of between 10 and 25 solar masses, possibly more if the star was especially metal-rich.[1] Neutron stars are the smallest and densest stellar objects, excluding black holes and hypothetical white holes, quark stars, and strange stars.[2] Neutron stars have a radius on the order of 10 kilometres (6.2 mi) and a mass of about 1.4 solar masses.[3] They result from the supernova explosion of a massive star, combined with gravitational collapse, that compresses the core past white dwarf star density to that of atomic nuclei.
"""
I rephrased it for him, in plain language a ten-year-old can understand:
"""
Directrices para generar resúmenes de texto
El resumen de texto suele implicar proporcionar grandes cantidades de texto a la API. Para ayudar a evitar que la API se desfase después de procesar un bloque de texto grande, siga estas instrucciones:
Incluya el texto que se va a resumir entre comillas dobles triples. En este ejemplo, se escriben tres comillas dobles (""") en una línea independiente antes y después del bloque de texto que se va a resumir. Este estilo de formato define claramente el inicio y el final del bloque grande de texto que se va a procesar.
Explicar la intención de resumen y la audiencia de destino antes y después del resumen. Observe que este ejemplo difiere de los demás porque proporciona instrucciones a la API dos veces: antes y después del texto que se va a procesar. Las instrucciones redundantes ayudan a la API a centrarse en la tarea prevista y evitar el desfase.
Completar entradas de texto y código parciales
Si bien todas las indicaciones dan lugar a terminaciones, puede ser útil pensar en la terminación del texto como una tarea propia en los casos en que se desea que la API continúe donde se dejó.
En esta demostración, se proporciona un mensaje de texto a la API que parece estar incompleto. Detenga la entrada de texto en la palabra "y". La API interpreta el texto incompleto como un desencadenador para continuar el entrenamiento del pensamiento.
Vertical farming provides a novel solution for producing food locally, reducing transportation costs and
La siguiente demostración muestra cómo se puede utilizar la función de finalización para ayudar a escribir componentes de código en React
. Para empezar, envíe algún código a la API. Detenga la entrada de código con un paréntesis abierto (
. La API interpreta el código incompleto como desencadenador para completar la definición de la constante HeaderComponent
. La API puede completar esta definición de código porque tiene conocimientos de la biblioteca React
correspondiente.
import React from 'react';
const HeaderComponent = () => (
Directrices para generar finalizaciones
Estas son algunas directrices útiles para usar la API para generar finalizaciones de texto y código:
Reduzca la temperatura para mantener la API centrada. Establezca valores inferiores para la configuración de
Temperature
para indicar a la API que proporcione respuestas centradas en la intención descrita en el mensaje.Aumente la temperatura para permitir que la API tangencie. Establezca valores más altos para la configuración de
Temperature
para permitir que la API responda de una manera que sea tangencial a la intención descrita en el símbolo del sistema.Use los modelos GPT-35-Turbo y GPT-4 de Azure OpenAI. En el caso de las tareas que implican comprender o generar código, Microsoft recomienda usar los modelos
GPT-35-Turbo
yGPT-4
de Azure OpenAI. Estos modelos usan el nuevo formato de finalizaciones de chat.
Generar respuestas fácticas
La API ha aprendido conocimientos basados en los datos reales revisados durante su entrenamiento. Usa estos datos aprendidos para formar sus respuestas. Sin embargo, la API también tiene la capacidad de responder de una forma que parece verdadera, pero que en realidad es inventada.
Hay algunas formas de limitar la probabilidad de que la API se invente una respuesta en respuesta a su entrada. Puede definir la base para una respuesta verdadera y fáctica, por lo que la API redacta su respuesta a partir de los datos. También puede establecer un valor de probabilidad de Temperature
bajo y mostrar a la API cómo responder cuando los datos no están disponibles para una respuesta fáctica.
En la demostración siguiente se muestra cómo enseñar a la API a responder de forma más fáctica. Proporcione a la API ejemplos de preguntas y respuestas que comprende. También proporcione ejemplos de preguntas ("Q") que podría no reconocer y use un signo de interrogación para la salida de la respuesta ("A"). Este enfoque enseña a la API cómo responder a las preguntas que no puede responder de forma fáctica.
Como medida de seguridad, establezca la probabilidad de Temperature
en cero, para que sea más probable que la API responda con un signo de interrogación (?) si hay alguna duda sobre la respuesta verdadera y fáctica.
Q: Who is Batman?
A: Batman is a fictional comic book character.
Q: What is torsalplexity?
A: ?
Q: What is Devz9?
A: ?
Q: Who is George Lucas?
A: George Lucas is an American film director and producer famous for creating Star Wars.
Q: What is the capital of California?
A: Sacramento.
Q: What orbits the Earth?
A: The Moon.
Q: Who is Egad Debunk?
A: ?
Q: What is an atom?
A: An atom is a tiny particle that makes up everything.
Q: Who is Alvan Muntz?
A: ?
Q: What is Kozar-09?
A: ?
Q: How many moons does Mars have?
A: Two, Phobos and Deimos.
Q:
Directrices para generar respuestas fácticas
Vamos a revisar las directrices para ayudar a limitar la probabilidad de que la API invente una respuesta:
Proporcione una verdad básica para la API. Indique a la API qué usar como base para crear una respuesta verdadera y fáctica basada en su intención. Si proporciona a la API un cuerpo de texto que se usará para responder preguntas (como una entrada de Wikipedia), es menos probable que la API invente una respuesta.
Use una probabilidad baja. Establezca un valor de probabilidad de
Temperature
bajo para que la API permanezca centrada en su intención y no se desfase en la creación de una respuesta fabricada o confabulada.Muestre a la API cómo responder con "No sé". Puede escribir preguntas y respuestas de ejemplo que enseñen a la API a usar una respuesta específica para preguntas para las que no puede encontrar una respuesta fáctica. En el ejemplo, enseña a la API a responder con un signo de interrogación (?) cuando no encuentra los datos correspondientes. Este enfoque también ayuda a la API a aprender que responder con "No sé" es más "correcto" que crear una respuesta.
Trabajo con código
La serie de modelos Codex es una descendiente de la serie básica GPT-3 de OpenAI que se ha entrenado tanto en lenguaje natural como en miles de millones de líneas de código. Es más capaz en Python y competente en más de una docena de lenguajes incluyendo JavaScript, Go, Perl, PHP, Ruby, Swift, TypeScript, SQL, e incluso Shell.
Para obtener más información sobre la generación de finalizaciones de código, consulte Modelos de códice y Azure OpenAI Service.
Pasos siguientes
- Obtener información sobre cómo trabajar con los modelos GPT-35-Turbo y GPT-4.
- Obtener más información sobre los modelos de Azure OpenAI Service.