Acerca de los modelos generativos

Los modelos de inteligencia artificial (IA) generativas, como la familia de modelos de Gemini, pueden crear contenido a partir de diferentes tipos de entradas de datos, como texto, imágenes y audio. En su nivel más básico, estos modelos funcionan como aplicaciones de autocompletado sofisticadas. Dado el texto de entrada ("Puedes llevar un caballo al agua"), un modelo generativo puede predecir que el texto de salida que 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 escritos creativos, como poesía, cuentos breves, metáforas y entradas de blog
  • Convierte datos estructurados en texto de formato libre
  • Extraer y resumir la información del texto de formato libre
  • Generar código
  • Cómo traducir entre idiomas

El uso de modelos generativos para compilar estas funciones no requiere experiencia en el aprendizaje automático (AA). No es necesario que recopiles un conjunto de datos grande ni entrenes un modelo. Para comenzar tu primer prototipo, solo debes describir lo que quieres que haga el modelo en algunas oraciones.

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

Aplicaciones de ejemplo

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

Genera un poema

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

Salida 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.

Salida del modelo:

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

Puedes hacer que los modelos generativos produzcan todo tipo de comportamientos útiles como este, con solo crear el texto de entrada correcto, también llamado instrucción. El arte y la ciencia de encontrar la redacción correcta para que los modelos generativos hagan lo que deseas se denomina diseño de instrucciones (también llamado "ingeniería de instrucciones" o simplemente "instrucción").

Introducción al diseño de instrucciones

En la sección anterior, se mostraron algunos ejemplos de consignas que contienen una instrucción, como “Escríbeme un poema”. Este tipo de instrucción puede funcionar bien para ciertos tipos de tareas. Sin embargo, para otras aplicaciones, otra técnica de creación de instrucciones llamada instrucción con ejemplos limitados podría funcionar mejor. Las indicaciones de pocas indicaciones aprovechan el hecho de que los modelos de lenguaje grandes son increíblemente buenos para reconocer y replicar patrones en los datos de texto. La idea es enviarle 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 la capital. Este es un mensaje de texto diseñado para hacer exactamente eso:

Italy : Rome
France : Paris
Germany :

En esta consigna, estableces un patrón: [country] : [capital]. Si envías esta instrucción a un modelo de lenguaje extenso, se autocompletará el patrón y se mostrará lo siguiente:

     Berlin
Turkey : Ankara
Greece : Athens

Esta respuesta del modelo puede parecer un poco extraña. El modelo no solo mostró la capital de Alemania (el último país de la instrucción escrita a mano), sino también una lista completa de pares adicionales de países y capitales. Esto se debe a que el modelo generativo “continúa el patrón”. Si lo único que intentas hacer es crear una función que indique la capital de un país de entrada ("Alemania: Berlí"), es probable que no te interese ningún texto que genere el modelo después de "Berlín". De hecho, como diseñadores de aplicaciones, es probable que desees truncar esos ejemplos innecesarios. Además, es probable que desees parametrizar la entrada, de modo que Alemania no sea una cadena fija, sino una variable que proporcione el usuario final:

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

Acabas de escribir una instrucción con ejemplos limitados para generar capitales de países.

Puedes realizar una gran cantidad de tareas siguiendo esta plantilla de instrucciones con ejemplos limitados. Esta es una instrucción de unas pocas líneas 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:

También puedes usar esta instrucción de "diccionario inverso". Dada una definición, muestra la palabra que se ajusta 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:

Es posible que hayas notado que el patrón exacto de estas indicaciones de pocas fotos varía ligeramente. Además de contener ejemplos, proporcionar instrucciones en las instrucciones es una estrategia adicional que debes tener en cuenta cuando escribas tus propias instrucciones, ya que ayuda a comunicar tu intención al modelo.

Sugerencias en comparación con el desarrollo de software tradicional

A diferencia del software tradicional que está diseñado según una especificación escrita con cuidado, el comportamiento de los modelos generativos es en gran medida opaco incluso para los entrenadores de modelos. Como resultado, a menudo no puedes predecir de antemano 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 sus datos de entrenamiento y, debido a que los modelos se ajustan continuamente en conjuntos de datos nuevos, a veces el modelo cambia lo suficiente como para cambiar, de forma involuntaria, 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 de modelo más comunes 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 aleatoriedad en la selección de tokens. La temperatura se usa para las muestras durante la generación de respuesta, que se genera 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 determinista, lo que significa que siempre se elige la respuesta de mayor probabilidad.

  3. topK: El parámetro topK cambia la forma en que el modelo selecciona tokens para la salida. 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 con la temperatura. Para cada paso de selección de tokens, se muestran los tokens de topK con las probabilidades más altas. Luego, los tokens se filtran según topP con el token final seleccionado mediante el muestreo de temperatura.

  4. topP: El parámetro topP cambia la forma en que el modelo selecciona tokens para la salida. Los tokens se seleccionan del más probable 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 topP es 0.5, el modelo elegirá A o B como el siguiente token usando 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. Intenta evitar usar una secuencia de caracteres que pueda aparecer en el contenido generado.

Tipos de instrucciones

Según el nivel de información contextual que contienen, las instrucciones se clasifican, en términos generales, en tres tipos.

Instrucciones sin ejemplos

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

Estos son algunos patrones de instrucciones sin ninguna imagen de entrenamiento que se usan con frecuencia:

  • Instruction-content
<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.
  • Contenido instructivo
<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 el texto sin ninguna instrucción. Por ejemplo, esta es una instrucción sin ejemplos en la que el objetivo del modelo es 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 creativos, como poemas, código, guiones, piezas musicales, correos electrónicos o cartas.

Instrucciones con un solo ejemplo

Estas instrucciones le proporcionan al modelo un solo ejemplo para replicar y continuar el patrón. Esto permite generar respuestas predecibles a partir del modelo.

Por ejemplo, puedes generar combinaciones de alimentos como las siguientes:

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

Instrucciones con ejemplos limitados

Estas instrucciones le proporcionan al modelo varios ejemplos para replicar. Usa instrucciones de pocas indicaciones para completar tareas complicadas, como sintetizar datos en función de 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 pregunta: ¿Hay aleatoriedad en las respuestas de los modelos generativos o son deterministas?

La respuesta breve es que sí a ambas. Cuando le das una instrucción a un modelo generativo, se genera una respuesta de texto en dos etapas. En la primera etapa, el modelo generativo procesa la instrucción de entrada y genera una distribución de probabilidad sobre los posibles tokens (palabras) que es probable que aparezcan a continuación. Por ejemplo, si le pides con el texto de entrada "El perro saltó sobre el ... ", el modelo generativo produzca un array de palabras probables a continuación:

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

Este proceso es determinístico; 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 a través de un muestreo aleatorio de la distribución que muestra el modelo. Este proceso sería estocástico (aleatorio). Controla el grado de aleatorización permitido en este proceso de decodificación configurando la temperatura. Una temperatura de 0 significa que solo se seleccionan los tokens más probables y no hay aleatoriedad. Por el contrario, una temperatura alta inyecta un alto grado de aleatoriedad en los tokens que selecciona el modelo, lo que genera respuestas más inesperadas y sorprendentes.

Lecturas adicionales

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