Guía del Modelo de Generación de Texto de OpenAI
- 970Palabras
- 5Minutos
- 27 Jun, 2024
El modelo de generación de texto de OpenAI (comúnmente conocido como transformador preentrenado generativo o modelo de lenguaje grande) ha sido entrenado para comprender lenguaje natural, código e imágenes. Estos modelos generan texto basado en la entrada proporcionada. La entrada se denomina comúnmente “prompts” (indicaciones). Diseñar indicaciones es esencialmente cómo “programar” un modelo de lenguaje grande, generalmente proporcionando instrucciones.
Escenarios de Aplicación
Con el modelo de generación de texto de OpenAI, puede construir las siguientes aplicaciones:
- Redacción de documentos
- Escritura de código de computadora
- Responder preguntas sobre bases de conocimiento
- Análisis de texto
- Proveer interfaces de lenguaje natural para software
- Tutoría en diversas disciplinas
- Traducción de idiomas
- Simulación de personajes de juegos
Con el lanzamiento de gpt-4-turbo, ahora también es posible construir sistemas que procesen y comprendan imágenes.
Cómo Usar el Modelo
Para usar estos modelos a través de la API de OpenAI, necesita enviar una solicitud que incluya la entrada y la clave de API, y recibir una respuesta que contenga la salida del modelo. Los modelos más recientes como gpt-4o y gpt-4 se pueden acceder a través de la API de Chat Completions.
Modelos y API
Modelo | API |
---|---|
Nuevos Modelos (2023 y después) | gpt-4o, gpt-4, gpt-3.5-turbo https://api.openai.com/v1/chat/completions |
Modelos Tradicionales Actualizados (2023) | gpt-3.5-turbo-instruct, babbage-002, davinci-002 https://api.openai.com/v1/completions |
Puede experimentar con varios modelos en el playground de chat. Si no está seguro de qué modelo usar, puede usar gpt-3.5-turbo o gpt-4o.
API de Chat Completions
Los modelos de chat aceptan una serie de mensajes como entrada y devuelven mensajes generados por el modelo como salida. Aunque el formato de chat está diseñado para facilitar conversaciones de múltiples turnos, también es adecuado para tareas de un solo turno sin ninguna conversación.
Ejemplo de Llamada
1from openai import OpenAI2client = OpenAI()3
4response = client.chat.completions.create(5 model="gpt-3.5-turbo",6 messages=[7 {"role": "system", "content": "Eres un asistente útil."},8 {"role": "user", "content": "¿Quién ganó la Serie Mundial en 2020?"},9 {"role": "assistant", "content": "Los Dodgers de Los Ángeles ganaron la Serie Mundial en 2020."},10 {"role": "user", "content": "¿Dónde se jugó?"}11 ]12)
La entrada principal es el parámetro messages
. Los mensajes deben ser una matriz de objetos de mensaje, cada uno con un rol (“system”, “user” o “assistant”) y contenido. La conversación puede ser tan corta como un solo mensaje o involucrar múltiples turnos de ida y vuelta.
Modo JSON
Un uso común es instruir al modelo para que siempre devuelva un objeto JSON adecuado para su caso de uso, especificándolo en el mensaje del sistema. Puede habilitar el modo JSON configurando response_format
a { "type": "json_object" }
.
Ejemplo de Llamada
1from openai import OpenAI2client = OpenAI()3
4response = client.chat.completions.create(5 model="gpt-3.5-turbo-0125",6 response_format={ "type": "json_object" },7 messages=[8 {"role": "system", "content": "Eres un asistente útil diseñado para generar JSON."},9 {"role": "user", "content": "¿Quién ganó la Serie Mundial en 2020?"}10 ]11)12print(response.choices[0].message.content)
En este ejemplo, la respuesta contiene un objeto JSON como el siguiente:
1"content": "{\"winner\": \"Los Angeles Dodgers\"}"
Gestión de Tokens
Los modelos de lenguaje leen y escriben texto en bloques llamados tokens. En inglés, un token puede ser tan corto como un solo carácter o tan largo como una palabra (por ejemplo, “a” o “apple”). El número total de tokens en una llamada a la API afecta:
- El costo de la llamada a la API, ya que se paga por token
- El tiempo de la llamada a la API, ya que escribir más tokens toma más tiempo
- Si la llamada a la API tiene éxito, ya que el número total de tokens debe estar por debajo del límite máximo del modelo (para gpt-3.5-turbo es 4097 tokens)
Detalles de los Parámetros
Penalización de Frecuencia y Presencia
Los parámetros de penalización frequency
y presence
se pueden usar para reducir la probabilidad de muestrear secuencias de tokens repetidos. Los valores razonables de los coeficientes de penalización están alrededor de 0.1 a 1 si el objetivo es reducir ligeramente las repeticiones. Si el objetivo es suprimir fuertemente las repeticiones, el coeficiente se puede aumentar a 2, pero esto puede reducir significativamente la calidad de las muestras.
API de Completions
El endpoint completions
se actualizó por última vez en julio de 2023 y tiene una interfaz diferente al nuevo endpoint chat completions
. La entrada es una cadena de texto de formato libre llamada prompt (indicación).
Ejemplo de Llamada
1from openai import OpenAI2client = OpenAI()3
4response = client.completions.create(5 model="gpt-3.5-turbo-instruct",6 prompt="Escribe un eslogan para una heladería."7)
Chat Completions vs. Completions
El formato Chat Completions
se puede hacer similar al formato completions
construyendo una solicitud que use un solo mensaje de usuario. La diferencia radica en la disponibilidad del modelo subyacente. La API de chat completions
es la interfaz para los modelos más potentes (gpt-4o) y los más rentables (gpt-3.5-turbo).
¿Qué Modelo es Adecuado?
Generalmente recomendamos usar gpt-4o o gpt-3.5-turbo. Cuál usar depende de la complejidad de la tarea para la que está utilizando el modelo. gpt-4o se desempeña mejor en una amplia gama de evaluaciones, especialmente en seguir instrucciones complejas de manera precisa. En contraste, gpt-3.5-turbo es más probable que siga solo una parte de instrucciones complejas de múltiples partes. gpt-4o es menos propenso a inventar información, un comportamiento conocido como “alucinación”. gpt-4o también tiene una ventana de contexto más grande, con un máximo de 128,000 tokens, mientras que gpt-3.5-turbo tiene 4,096 tokens. Sin embargo, gpt-3.5-turbo tiene una latencia más baja en la devolución de salidas y un costo por token mucho menor.
Preguntas Frecuentes
¿Cómo Configurar el Parámetro de Temperatura?
Valores de temperatura más bajos (por ejemplo, 0.2) producirán salidas más consistentes, mientras que valores de temperatura más altos (por ejemplo, 1.0) generarán resultados más variados y creativos. Elija el valor de temperatura según su aplicación específica para equilibrar coherencia y creatividad. El rango de temperatura es de 0 a 2.
¿Se Pueden Afinar los Modelos Más Recientes?
Actualmente, es posible afinar gpt-3.5-turbo y los modelos base (babbage-002 y davinci-002).
¿Debería Usar ChatGPT o la API?
ChatGPT proporciona una interfaz de chat para el modelo y viene con una serie de características integradas como navegación integrada, ejecución de código, plugins, etc. En contraste, usar la API de OpenAI ofrece más flexibilidad, pero requiere escribir código o enviar solicitudes al modelo de manera programática.