— Escucha lo nuevo —
Aprende a sacar todo el poder de ChatGPT con los hiperparámetros y escribe como un profesional. Aquí te voy a decir qué son, para qué sirven y cómo usarlos en un prompt. Valores, sintaxis y casos de uso.
Este es el texto más revelador que vas a leer sobre ChatGPT. Así que guarda la página en tus favoritos
ChatGPT es una herramienta de lenguaje natural basada en inteligencia artificial que te permite interactuar con un modelo de lenguaje de última generación llamado GPT-3. GPT-3 es capaz de generar texto coherente y convincente en una variedad de temas y estilos de escritura.
A diferencia de las palabras mágicas que vimos para hacer un buen prompt, los hiperparámetros de ChatGPT son configuraciones qué le permiten al modelo de lenguaje ajustarse a una tarea específica.
Puedes ajustar los hiperparámetros para personalizar la salida de GPT-3 según tus necesidades, lo que puede afectar la calidad y la coherencia de la respuesta.
Los hiperparámetros más comunes incluyen la longitud máxima del texto generado, la temperatura de la generación que controla cuán creativa es la respuesta.
También el número de respuestas que se generan. Y el modelo que se utiliza para la generación.
Cada conjunto de hiperparámetros de ChatGPT puede dar lugar a diferentes resultados. Por ejemplo. Si estableces la longitud máxima en 100, GPT-3 generará un texto más corto que si estableces la longitud máxima en 1000. Del mismo modo, si aumentas la temperatura, la respuesta será más creativa y menos predecible.
En resumen, los hiperparámetros (o también llamados simplemente parámetros) son configuraciones que te permiten personalizar la salida de ChatGPT según tus necesidades.
Ajustar los hiperparámetros puede afectar la calidad y la coherencia de la respuesta, por lo que es importante entender cómo se usan. Con un poco de práctica, puedes generar texto impresionante y convincente con ChatGPT.
INDICE
Model
Este es quizá uno de los hiperparámetros más relevantes para un buen prompt en ChatGPT. El parámetro “model” se refiere al modelo de lenguaje subyacente que está siendo utilizado para generar texto. En GPT-3, hay varios modelos disponibles, cada uno con diferentes tamaños y capacidades.
El modelo que se selecciona afectará directamente la calidad y la naturaleza del texto que se genera. Por ejemplo, los modelos más grandes pueden generar textos más coherentes y precisos; pero también pueden ser más lentos y requerir más recursos computacionales.
Para seleccionar un modelo en GPT-3, se puede especificar el nombre del modelo en el prompt. Por ejemplo, para seleccionar el modelo “davinci”, se puede incluir la siguiente línea al inicio del prompt
model = "davinci"
Modelos disponibles en ChatGPT
Aquí te explico más sobre los diferentes modelos disponibles:
- davinci: Este es el modelo más potente y avanzado de OpenAI hasta la fecha. Utiliza 175 mil millones de parámetros y se entrena con una combinación de aprendizaje supervisado y no supervisado. Es capaz de realizar una amplia variedad de tareas de lenguaje natural, desde la generación de texto hasta la traducción automática, la respuesta a preguntas y el análisis de sentimientos. Es adecuado para casos de uso avanzados en los que se requiere la generación de texto de alta calidad, como la redacción de artículos, la creación de diálogos y la generación de contenido creativo.
- davinci-002: Este modelo es una versión más pequeña de Davinci, con 9 mil millones de parámetros en lugar de 175 mil millones. Aún es muy potente y se puede utilizar para tareas avanzadas de procesamiento del lenguaje natural, pero es más rápido y requiere menos recursos de hardware.
- curie: Este modelo tiene 6,7 mil millones de parámetros y es una buena opción para tareas de lenguaje natural menos exigentes, como la generación de resúmenes o la respuesta a preguntas simples. También es más rápido que Davinci y requiere menos recursos de hardware.
- babbage: Este modelo tiene 1,2 mil millones de parámetros y es adecuado para tareas de lenguaje natural básicas, como la traducción automática y la respuesta a preguntas simples. Es el modelo más rápido de OpenAI y es útil para casos de uso que requieren respuestas rápidas y eficientes.
- davinci-codex: Este modelo tiene 6 mil millones de parámetros y está específicamente diseñado para la codificación y la programación. Puede generar código en varios lenguajes de programación, completar fragmentos de código y proporcionar ayuda contextual para tareas de programación complejas.
Casos de uso de los modelos de ChatGPT
- Davinci: Redacción de artículos, generación de contenido creativo, creación de diálogos para chatbots avanzados, traducción automática de alta calidad, análisis de sentimientos avanzado.
- Davinci-002: Tareas similares a Davinci, pero en un entorno más limitado en cuanto a recursos.
- Curie: Generación de resúmenes, respuesta a preguntas simples, análisis de sentimientos básico, tareas de clasificación de texto.
- Babbage: Respuesta a preguntas simples en tiempo real, generación de respuestas cortas y eficientes.
- Davinci-codex: Tareas de programación y codificación, como la generación de código, la completación de fragmentos de código y la ayuda contextual para la resolución de problemas de programación.
Temperature
Este es el primero de los hiperparámetros relacionados con la creación de textos creativos en ChatGPT.
Se usa para controlar la “creatividad” y la variabilidad de las respuestas. Una temperatura baja producirá respuestas más conservadoras, mientras que una temperatura alta producirá respuestas más inusuales y sorprendentes.
Para ajustar la temperatura, puedes simplemente escribir “temperature=” seguido del valor de temperatura que deseas utilizar, antes de hacer la pregunta o la solicitud. Ejemplo:
temperature= 0.5
En qué país del mundo la gente vive más feliz
Algunos ejemplos de casos de uso para el parámetro temperature
son:
- Generación de texto creativo y diverso para fines artísticos o literarios: Se pueden utilizar valores altos de
temperature
, como 1.5 o incluso 2.0, para generar textos más novedosos e impredecibles. - Generación de texto para asistencia al cliente: Para este caso, se puede utilizar un valor de
temperature
más bajo, como 0.7 o 0.8, para generar respuestas más precisas y predecibles. - Generación de texto para fines educativos: Valores de
temperature
moderado, como 1.0, para generar respuestas que sean creativas pero aún así precisas y educativas.
Es importante tener en cuenta que el valor óptimo de temperature
dependerá del caso de uso específico y puede requerir algo de experimentación para encontrar el valor ideal.
Max_tokens
Ahora exploraremos el primero de los hiperparámetros de longitud para el campo de prompt en ChatGPT
Max_tokens
controla el número máximo de tokens (palabras o símbolos) que se generarán en una respuesta del modelo. Y se debe colocar antes de hacer la pregunta.
max_tokens= 100
¿Qué es la Eva mitocondrial?
Aquí hay algunos ejemplos de casos de uso y los valores comunes para max_tokens
:
- Chatbot: Para una respuesta de chatbot corta y rápida, un valor común para
max_tokens
sería 20-30. Esto limitaría la respuesta a unas pocas oraciones. - Generación de texto creativo: Para una respuesta más larga y detallada, un valor común para
max_tokens
sería 100-200. Esto permitiría que el modelo genere párrafos completos de texto creativo. - Resumen de texto: Para resumir un texto largo, un valor común para
max_tokens
sería el número de tokens equivalente a una longitud de resumen deseada, como 50 o 100.
Es importante tener en cuenta que el valor óptimo de max_tokens
dependerá de varios factores, como el tipo de modelo, el tipo de tarea y la complejidad del texto de entrada. Por lo tanto, es importante experimentar con diferentes valores para encontrar el que funcione mejor para su caso de uso específico.
Max_length
El hiperparámetro max_length
se utiliza para especificar la longitud máxima del texto generado por el modelo.
"El gato de mi vecino ha aprendido a hablar y me dijo que "
max_length= 50
Aquí hay algunos ejemplos de casos de uso y valores recomendados para el parámetro max_length
:
- Generación de texto corto: Si se está generando un texto corto, como un titular de noticias o un tweet, el valor recomendado para
max_length
sería de 50 a 100 caracteres.
"El otro día caí de la cama y mi perro me dijo"
max_length= 50
- Generación de párrafos completos: Si se desea generar un párrafo completo de un artículo o una descripción de un producto, el valor recomendado para
max_length
sería de alrededor de 300 a 500 caracteres.
"En un mundo post-apocalíptico, la humanidad se ve obligada a vivir "
max_length= 400
- Generación de textos largos: Si se desea generar textos más largos, como capítulos de un libro o artículos completos, el valor recomendado para
max_length
sería de 1000 a 2000 caracteres.
"En un reino lejano, una princesa lucha contra un dragón malvado "
max_length= 1500
Es importante tener en cuenta que el valor adecuado para max_length
dependerá en gran medida del modelo que se esté utilizando y del tipo de texto que se esté generando. Es posible que se necesite ajustar este parámetro para obtener los mejores resultados en cada caso específico.
Repetition_penalty
Ahora veremos la familia de hiperparámetros _penalty que ChatGPT usa para regular secuencias de texto.
El parámetro repetition_penalty
es un hiperparámetro utilizado en los modelos de lenguaje para penalizar la generación de secuencias repetitivas. Funciona aumentando el costo de generar una palabra que ya apareció en la secuencia generada previamente, lo que evita que el modelo repita patrones.
El valor predeterminado para repetition_penalty
es 1.0, lo que significa que no hay penalización por repetición. El rango de valores típicos es de 1.0 a 1.5, donde valores más altos indican una penalización más fuerte por la repetición.
Para solicitar el parámetro repetition_penalty
en un prompt de ChatGPT, se puede agregar la siguiente línea al inicio del prompt:
repetition_penalty: 1.2
Aquí te dejo algunos ejemplos de casos de uso y los valores recomendados para el parámetro repetition_penalty
“
- Generación de texto creativo: valores bajos como 1.2 o 1.3 pueden permitir cierta repetición para darle un toque artístico al texto.
- Corrección de texto: valores altos como 1.5 o 2 pueden ayudar a evitar la repetición de palabras o frases en el texto.
- Resumen de texto: valores medios como 1.2 o 1.3 pueden ser adecuados para evitar la repetición excesiva de palabras clave en el resumen.
- Chatbots: valores medios a bajos como 1.1 o 1.2 pueden ayudar a que las respuestas no sean demasiado repetitivas, pero aún así mantener cierta coherencia en la conversación.
Es importante tener en cuenta que estos son solo ejemplos y que los valores pueden variar según el caso de uso específico y las preferencias del usuario.
Presence_penalty
El hiperparámetro presence_penalty
es un valor que se utiliza para penalizar la generación de palabras o frases que ya han aparecido en la entrada o en el contexto anterior. Ayuda a evitar la repetición de información innecesaria y a fomentar la generación de contenido nuevo y diverso.
La variable para el parámetro presence_penalty
es un número flotante que indica la fuerza de la penalización. Un valor más alto penalizará más fuertemente las repeticiones. El rango de valores es de 0 a infinito.
La sintaxis para solicitar el parámetro presence_penalty
es la siguiente:
presence_penalty=<valor>
Donde <valor>
es un número decimal que indica el factor de penalización de presencia. El valor predeterminado es 0.0, lo que significa que no hay penalización de presencia.
Continuación se presentan algunos ejemplos de casos de uso y los valores indicados para el parámetro presence_penalty
:
- Generación de descripciones de productos: en este caso, se puede establecer un valor alto de
presence_penalty
para evitar que se repitan palabras clave del producto en la descripción generada, lo que ayudaría a generar descripciones más detalladas y variadas. - Generación de diálogos: aquí, un valor moderado de
presence_penalty
puede ayudar a evitar que un personaje repita constantemente las mismas frases o respuestas. - Generación de resúmenes de textos: en este caso, un valor bajo de
presence_penalty
puede ser útil para permitir que ciertas palabras clave aparezcan varias veces, lo que ayudaría a resumir mejor el contenido del texto.
Absence_penalty
Otro más de la familia de hiperparámetros _penalty de ChatGPT.Absence_penalty
se utiliza para penalizar la generación de ciertas palabras o frases en el texto generado. La idea es que el modelo evite generar palabras o frases específicas que no sean adecuadas para el contexto del texto.
La sintaxis para solicitar el parámetro absence_penalty
es la siguiente:
absence_penalty= valor
Donde valor
es un número entre 0 y 1 que indica la magnitud de la penalización a aplicar. Un valor de 0 significa que no hay penalización, mientras que un valor de 1 significa que se aplicará la penalización máxima.
Aquí hay algunos ejemplos de casos de uso y los valores recomendados para el parámetro absence_penalty
:
- Generación de noticias: Si se está generando noticias, se puede establecer un valor de 0.5 o 0.7 para penalizar la generación de noticias falsas o engañosas.
- Generación de respuestas de chatbot: Si se está generando respuestas para un chatbot, se puede establecer un valor de 0.3 para penalizar la generación de respuestas inapropiadas o insensibles.
- Generación de descripciones de productos: Si se está generando descripciones de productos, se puede establecer un valor de 0.4 para penalizar la generación de información incorrecta o engañosa.
Es importante tener en cuenta que el valor óptimo para el parámetro absence_penalty
dependerá del caso de uso específico y puede requerir ajustes mediante prueba y error.
Frequency_penalty
Este es el último de los hiperparámetros de la familia _penalty de ChatGPT que veremos en éste artículo. Frequency_penalty
se usa para penalizar la repetición excesiva de palabras en el texto generado. Con un valor de frequency_penalty
mayor que cero, se le indica al modelo que evite utilizar las mismas palabras repetidas varias veces consecutivas.
La sintaxis para solicitar el parámetro frequency_penalty en ChatGPT es:
frequency_penalty=0.5
A continuación algunos ejemplos de casos de uso y los valores indicados para el parámetro frequency_penalty
:
- Generación de descripciones de productos: Un valor de frequency_penalty de 0.2 o 0.3 puede ser apropiado para evitar la repetición excesiva de características del producto en la descripción generada.
- Generación de títulos de artículos: Un valor de frequency_penalty de 0.5 o más puede ser apropiado para evitar la repetición excesiva de palabras en el título generado.
- Generación de diálogos: Un valor de frequency_penalty de 0.5 o menos puede ser apropiado para evitar que un personaje repita continuamente las mismas frases o palabras.
Nucleus_sampling
Aquí tenemos uno más de los hiperparámetros de “creatividad” de ChatGPT. Este es un parámetro que controla la cantidad de probabilidad acumulada de las palabras más probables que se permiten en una distribución de probabilidad. Se utiliza para controlar la creatividad de las respuestas generadas por el modelo. Ejemplo:
nucleus_sampling=0.5
Esto le indicaría al modelo que solo debe considerar las palabras más probables que en conjunto acumulen el 50% de la probabilidad total.
Aquí hay algunos ejemplos de casos de uso y los valores recomendados para el parámetro nucleus_sampling
:
- Generación de respuestas cortas: para generar respuestas cortas, un valor de
0.5
puede ser suficiente para limitar el conjunto de posibilidades a las respuestas más probables. - Generación de texto creativo: para generar texto más creativo y sorprendente, un valor más bajo, como
0.1
, puede permitir más variaciones en el texto generado. - Generación de texto coherente: para generar texto coherente y bien estructurado, un valor más alto, como
0.9
, puede limitar las opciones a las secuencias más comunes y evitar la generación de texto incoherente.
También se puede usar con el parámetro top_p
, para establecer la probabilidad acumulada que se desea considerar.
Cuando se utiliza este parámetro, el modelo solo considerará las N palabras con mayor probabilidad de ocurrencia en lugar de considerar todas las posibles palabras
La sintaxis para solicitar este parámetro es la siguiente:
{nucleus_sampling: {"top_p": valor}}
Donde valor
es un número flotante que representa la probabilidad acumulada que se desea considerar. Por ejemplo, si se desea considerar las palabras con una probabilidad acumulada del 90%, se debería utilizar el siguiente comando:
{nucleus_sampling: {"top_p": 0.9}}
Es importante tener en cuenta que el uso de nucleus_sampling
puede generar respuestas más cortas y coherentes, pero también puede limitar la diversidad del texto generado en algunos casos. Por lo tanto, se recomienda experimentar con diferentes valores de top_p
para encontrar el equilibrio adecuado para cada caso de uso.
Best_of
El hiperparámetro best_of
se utiliza para especificar cuántas de las mejores respuestas generadas por el modelo deben ser devueltas como resultado. Por defecto, el valor es 1, lo que significa que solo se devuelve la mejor respuesta.
La sintaxis para solicitar este parámetro es la siguiente:
best_of=x
Donde X
es el número deseado de mejores respuestas a devolver.
Por ejemplo, si desea que se devuelvan las dos mejores respuestas, la sintaxis sería:
best_of=2
El parámetro best_of
funciona seleccionando las mejores respuestas generadas por el modelo y luego comparándolas para determinar cuál es la mejor respuesta de todas. Esto se hace para mejorar la calidad de la respuesta devuelta y para proporcionar una mayor variedad de respuestas para una misma solicitud.
Sentiment
Este es uno de los hiperparámetros más fácil de usar de ChatGPT y que tiene un efecto más notorio en la respuesta. El parámetro sentiment
es un parámetro de control que se puede usar en algunas implementaciones de ChatGPT para indicar el tono o la polaridad del texto que se está generando. Este parámetro puede tomar dos valores: positive
o negative
, que indican si el texto generado debe tener un tono positivo o negativo, respectivamente.
La sintaxis no tiene pierde:
sentiment=positive
Este parámetro puede ser útil en aplicaciones como la generación de contenido publicitario, en la que se desea que el texto generado tenga un tono positivo para persuadir a los consumidores, o en la generación de opiniones o reseñas de productos.
Para utilizar el parámetro “sentiment”, se puede incluir el valor “positive” o “negative” en el prompt junto con el texto que se desea generar. Por ejemplo:
Si se desea generar un texto publicitario positivo para un producto, el prompt podría incluir algo como
sentiment=positive
Escribe un texto publicitario para la comida chatarra y alimentos altos en azúcares y carbohidratos
N
El parámetro n en una solicitud de prompt para ChatGPT hace referencia al número de respuestas que se desea generar. En otras palabras, determina cuántas respuestas diferentes se quieren obtener del modelo a partir de un único prompt.
Es decir, un valor mayor de n
resultará en una mayor diversidad en la generación de texto, pero también puede generar respuestas menos coherentes. Aquí hay algunos ejemplos de casos de uso y valores indicados para el parámetro n
:
- Para generar múltiples respuestas a una pregunta:
n=2
on=3
para generar un par o trío de respuestas.n=5
on=10
para generar un conjunto más grande de respuestas.
- Para explorar diferentes formas de expresar una idea:
n=2
on=3
para generar alternativas al texto original.n=5
on=10
para generar un conjunto más grande de opciones.
- Para generar texto con diversidad controlada:
n=2
con un valor alto detemperature
para generar texto diverso pero coherente.n=10
con un valor bajo detemperature
para generar texto muy diverso pero menos coherente.
Es importante recordar que los valores de n
deben ser coherentes con la longitud máxima del texto generado (max_length
) y otros hiperparámetros usados para generar el texto.
Y aún hay más hiperparámetros de ChatGPT
Además de los hiperparámetros que ya mencioné, en ChatGPT hay otros que pueden ser relevantes dependiendo de la implementación específica de GPT-3 que esté siendo utilizada. Algunos de estos parámetros incluyen:
- Stop sequence: permite especificar una secuencia de caracteres que indican el final del texto generado.
- Max new tokens: controla el número máximo de nuevas palabras que pueden ser generadas en el texto.
- Unlikelihood penalty: penaliza la generación de ciertas palabras o frases que se consideran poco probables o no deseadas.
- Temperature decay: controla cómo la temperatura se reduce con cada iteración de generación de texto.
- Fine-tuning: un proceso en el que se entrena el modelo en un conjunto de datos específico para mejorar su capacidad para generar texto relacionado con ese conjunto de datos.
- Engine: se refiere al motor de inferencia que se utilizará para ejecutar el modelo de lenguaje.
Es importante tener en cuenta que estos hiperparámetros de ChatGPT pueden variar dependiendo de la implementación específica de ChatGPT.
Algunos de ellos pueden estar disponibles solo en versiones más avanzadas o personalizadas de la herramienta, como por ejemplo la API, y no se pueden modificar desde la pantalla de usuario de ChatGPT. Para esos casos necesitas herramientas de desarrollador.
Finalmente
Creo que este artículo quedó muy técnico, pero quería juntar toda la información que encontré.
Ahora bien, como me gusta hablar con la verdad, tu también lo puedes conseguir directamente de la fuente, pregúntale a ChatGPT:
Hola ChatGPT: Qué es, cómo funciona, cuáles son las variables, sintaxis y cómo se solicita el hiperparámetro temperature
Y después le preguntas:
Dame unos ejemplos de casos de uso y los valores indicados para el hiperparámetro temperature
Y allí lo tienes.
En otro artículo exploraremos más casos de uso con ejemplos. Suscríbete a el mail list o únete al canal de Telegram para que no te lo pierdas.