Acerca de los modelos generativos

Los modelos de inteligencia artificial (IA) generativos, como la familia de modelos Gemini, pueden crear contenido a partir de distintos tipos de entrada de datos, como texto, imágenes y audio. En su nivel más básico, estos modelos funcionan como aplicaciones sofisticadas de autocompletado. Dado el texto de entrada ("Puedes guiar a un caballo al agua"), un modelo generativo puede predecir que el texto de salida que, estadísticamente, es probable que siga ("pero no puedes hacer que beba"), según los patrones aprendidos de sus datos de entrenamiento. Puedes usar esta propiedad básica de los modelos generativos para varias aplicaciones:

  • Generar escrituras creativas, como poesía, cuentos, metáforas y entradas de blog
  • Cómo convertir datos estructurados en texto de formato libre
  • Extrae y resume información de texto de formato libre
  • Generar código
  • Traduce idiomas

El uso de modelos generativos para compilar estos atributos no requiere experiencia en aprendizaje automático (AA). No necesitas recopilar un conjunto de datos grande ni entrenar un modelo. Todo lo que se necesita para comenzar tu primer prototipo es describir lo que quieres que el modelo haga en unas pocas oraciones.

Los modelos generativos que solo controlan la entrada y salida de texto también se conocen como modelos grandes de lenguaje (LLM). La familia de modelos Gemini puede procesar más que datos de texto y, si bien pueden realizar las funciones de un LLM, son más conocidos como modelos generativos.

Aplicaciones de ejemplo

En los siguientes ejemplos, se muestran las entradas de texto típicas de un modelo generativo y las salidas de este.

Genera un poema

Entrada del usuario: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

Resultado del modelo:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

Genera una lista

Entrada del usuario: Generate a bulleted list of items I need to pack for a three-day camping trip.

Resultado del modelo:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

Puedes obtener modelos generativos para producir todo tipo de comportamientos útiles como este, con solo diseñar el texto de entrada correcto, también llamado instrucción. El arte y la ciencia de diseñar la redacción correcta para que los modelos generativos hagan lo que quieres se denomina diseño de instrucciones (también denominado “ingeniería de instrucciones” o simplemente “instrucciones”).

Diseño de instrucciones 101

En la sección anterior, se mostraron algunos ejemplos de instrucciones que contienen una instrucción, como "Escríbeme un poema". Este tipo de instrucciones puede funcionar bien para ciertos tipos de tareas. Sin embargo, para otras aplicaciones, puede funcionar mejor otra técnica de instrucciones, llamada instrucciones con ejemplos limitados. Las instrucciones con ejemplos limitados aprovechan el hecho de que los modelos grandes de lenguaje son increíblemente buenos para reconocer y replicar patrones en los datos de texto. La idea es enviar al modelo generativo un patrón de texto que aprenda a completar. Por ejemplo, supongamos que deseas compilar una aplicación que tome como entrada el nombre de un país y muestre su ciudad capital. Aquí hay una indicación de texto diseñada para hacer precisamente eso:

Italy : Rome
France : Paris
Germany :

En esta instrucción, establecerás un patrón: [country] : [capital]. Si envías esta instrucción a un modelo grande de lenguaje, autocompletará el patrón y mostrará algo como lo siguiente:

     Berlin
Turkey : Ankara
Greece : Athens

Esta respuesta del modelo puede parecer un poco extraña. El modelo mostró no solo la capital de Alemania (el último país en la instrucción escrita a mano), sino también una lista completa de pares de países y capitales adicionales. Eso es porque el modelo generativo "continúa el patrón". Si todo lo que intentas hacer es crear una función que te indique la capital de un país de entrada ("Alemania: Berlín"), es probable que no te interese mucho el texto que genera el modelo después de "Berlín". De hecho, como diseñadores de aplicaciones, es probable que quieras truncar esos ejemplos extraños. Además, es probable que quieras parametrizar la entrada para que Alemania no sea una string fija, sino una variable proporcionada por el usuario final:

Italy : Rome
France : Paris
<user input here> :

Acabas de redactar una instrucción con pocas ejemplos para generar capitales de países.

Puedes realizar una gran cantidad de tareas con esta plantilla de instrucción con ejemplos limitados. A continuación, se muestra un mensaje breve con un formato ligeramente diferente que convierte Python en JavaScript:

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:

O bien, responde la instrucción "Revertir diccionario". Dada una definición, muestra la palabra que corresponde a esa definición:

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:

Quizás hayas notado que el patrón exacto de estos mensajes varía un poco. Además de contener ejemplos, proporcionar instrucciones en tus instrucciones es una estrategia adicional que debes considerar cuando escribas tus propias instrucciones, ya que es útil comunicar tu intención al modelo.

Comparación entre las instrucciones y el desarrollo de software tradicional

A diferencia del software tradicional diseñado para una especificación escrita cuidadosamente, el comportamiento de los modelos generativos es en gran medida opaco, incluso para los entrenadores de modelos. Como resultado, a menudo no puedes predecir por adelantado qué tipos de estructuras de instrucciones funcionarán mejor para un modelo en particular. Además, el comportamiento de un modelo generativo está determinado en gran parte por los datos de entrenamiento y, dado que los modelos se ajustan continuamente en conjuntos de datos nuevos, a veces el modelo cambia lo suficiente como para cambiar de forma inadvertida qué estructuras de instrucciones funcionan mejor. ¿Qué significa esto para ti? Experimento Prueba diferentes formatos de instrucciones.

Parámetros del modelo

Cada instrucción que envías al modelo incluye valores de parámetros que controlan cómo el modelo genera una respuesta. El modelo puede generar resultados diferentes para los valores de parámetros diferentes. Los parámetros más comunes del modelo son los siguientes:

  1. Cantidad máxima de tokens de salida: Especifica la cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden a entre 60 y 80 palabras.

  2. Temperatura: La temperatura controla el grado de aleatorización en la selección de tokens. La temperatura se usa para el muestreo durante la generación de respuesta, que ocurre cuando se aplican topP y topK. Las temperaturas más bajas son buenas para las instrucciones que requieren una respuesta más determinística o menos abierta, mientras que las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0 es determinística, lo que significa que siempre se selecciona la respuesta de mayor probabilidad.

  3. topK: El parámetro topK cambia la manera en la que el modelo selecciona tokens para el resultado. Un topK de 1 significa que el token seleccionado es el más probable entre todos los tokens en el vocabulario del modelo (también llamado decodificación codiciosa), mientras que un topK de 3 significa que el siguiente token se selecciona de los 3 más probables usando la temperatura. Para cada paso de selección de tokens, se muestran los tokens topK con las probabilidades más altas. Los tokens se filtran aún más según topP con el token final seleccionado mediante el muestreo de temperatura.

  4. topP: El parámetro topP cambia la manera en la que el modelo selecciona tokens para el resultado. Los tokens se seleccionan del más al menos probable hasta que la suma de sus probabilidades sea igual al valor de topP. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor de topP es 0.5, el modelo seleccionará A o B como el siguiente token mediante la temperatura y excluirá a C como candidato. El valor predeterminado de topP es 0.95.

  5. stop_sequences: Establece una secuencia de detención para indicarle al modelo que deje de generar contenido. Una secuencia de detención puede ser cualquier secuencia de caracteres. Evita usar una secuencia de caracteres que puedan aparecer en el contenido generado.

Tipos de instrucciones

Según el nivel de información contextual que contienen, los mensajes se clasifican en tres tipos.

Mensajes sin ejemplos

Estas instrucciones no contienen ejemplos para que el modelo replique. En esencia, las instrucciones sin ejemplos muestran la capacidad del modelo para completar la instrucción sin ejemplos ni información adicionales. Significa que el modelo debe confiar en su conocimiento preexistente para generar una respuesta creíble.

Estos son algunos patrones de instrucciones sin ejemplos que se usan comúnmente:

  • Contenido de la instrucción
<Overall instruction>
<Content to operate on>

Por ejemplo,

Summarize the following into two sentences at the third-grade level:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.

Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.

Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!

Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.

Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
  • Instrucción-contenido-instrucción
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

Por ejemplo,

Here is some text I'd like you to summarize:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.

Summarize it in two sentences at the third-grade reading level.
  • Continuación. A veces, puedes hacer que el modelo continúe con texto sin instrucciones. Por ejemplo, esta es una instrucción sin ejemplos en la que el modelo está destinado a continuar con la entrada proporcionada:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Usa instrucciones sin ejemplos para generar formatos de texto creativo, como poemas, código, guiones, piezas musicales, correos electrónicos o letras.

Mensajes con un solo ejemplo

Estas indicaciones le proporcionan al modelo un único ejemplo para replicar y continuar el patrón. Esto permite la generación de respuestas predecibles desde el modelo.

Por ejemplo, puedes generar maridajes de alimentos como los siguientes:

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

Instrucciones con ejemplos limitados

Estas indicaciones le proporcionan al modelo varios ejemplos para replicar. Usa instrucciones con ejemplos limitados para completar tareas complicadas, como sintetizar datos según un patrón.

Un ejemplo de instrucción puede ser:

Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}

Funcionamiento interno de los modelos generativos

El objetivo de esta sección es responder la siguiente pregunta: ¿Hay aleatoriedad en las respuestas de los modelos generativos o son deterministas?

La respuesta corta: sí a ambas. Cuando solicitas un modelo generativo, una respuesta de texto se genera en dos etapas. En la primera etapa, el modelo generativo procesa la instrucción de entrada y genera una distribución de probabilidades sobre tokens posibles (palabras) que probablemente vendrán a continuación. Por ejemplo, si escribes con el texto de entrada “El perro saltó sobre ...”, el modelo generativo producirá un arreglo de palabras probables siguientes:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

Este proceso es determinista; un modelo generativo producirá esta misma distribución cada vez que se ingrese el mismo texto de instrucción.

En la segunda etapa, el modelo generativo convierte estas distribuciones en respuestas de texto reales a través de una de varias estrategias de decodificación. Una estrategia de decodificación simple podría seleccionar el token más probable en cada paso. Este proceso siempre sería determinista. Sin embargo, puedes optar por generar una respuesta mediante el muestreo aleatorio de la distribución que muestra el modelo. Este proceso sería estocástico (aleatorio). Establece la temperatura para controlar el grado de aleatoriedad permitido en este proceso de decodificación. Una temperatura de 0 significa que solo se seleccionan los tokens más probables, y no hay aleatorización. Por el contrario, una temperatura alta inyecta un alto grado de aleatorización en los tokens que selecciona el modelo, lo que genera respuestas del modelo más inesperadas y sorprendentes.

Lecturas adicionales

  • Ahora que tienes una comprensión más profunda de las instrucciones y los modelos generativos, intenta escribir tus propias instrucciones con Google AI Studio.
  • Consulta los lineamientos de instrucciones para obtener más información sobre las prácticas recomendadas para crear instrucciones.