Last updated on August 7, 2024
Otra estrategia es la de los few shot prompting, que consiste básicamente en mostrar al modelo algunos ejemplos (llamados shots) de lo que quieres que haga.
Consideremos el ejemplo anterior, en el que intentamos clasificar las opiniones de los clientes como positivas o negativas. Mostramos al modelo 3 ejemplos de retroalimentación positiva/negativa y, a continuación, le mostramos una nueva retroalimentación que aún no ha sido clasificada (¡No funciona!:
). El modelo ve que los 3 primeros ejemplos fueron clasificados como positivos
o negativos
, y utiliza esta información para clasificar el nuevo ejemplo como negativo
.
La forma en que estructuramos los ejemplos es muy importante. Como hemos estructurado estos 3 ejemplos como entrada: clasificación
, el modelo emite una sola palabra después de la última línea, en lugar de decir una frase completa como esta reseña es positiva
.
Un caso clave en el que se pueden utilizar algunas sugerencias es cuando se necesita que la salida esté estructurada de una forma específica que sea difícil de describir al modelo. Para entender esto, consideremos un ejemplo relevante: supongamos que necesita recopilar nombres y ocupaciones de ciudadanos conocidos en ciudades cercanas analizando artículos de periódicos locales. Le gustaría que el modelo leyera cada artículo y generara una lista de nombres y ocupaciones en formato Apellido, Nombre [OCUPACIÓN]
. Para conseguir que el modelo haga esto, puede mostrarle algunos ejemplos:
Al mostrar los ejemplos del modelo del formato de salida correcto, puede producir la salida correcta para nuevos artículos.
Aunque podría producir este mismo resultado usando un prompt, el few-shot prompt ayuda a que el resultado sea mucho más consistente.
La palabra "shot" es sinónimo de "ejemplo". Además del few-shot prompting, existen otros dos tipos de shot prompting. ¡No lo pienses tanto! La única diferencia entre esas variantes es cuantos ejemplos le muestras al modelo.
Variantes:
0-shot prompting es la forma mas básica de prompting. Este simplemente muestra al modelo un mensaje sin ejemplos y le pide que genere una respuesta. Como tal, todas las instrucciones y prompts de rol que has visto hasta ahora son 0-shot prompts. Un ejemplo adicional de un 0-shot prompt es:
Suma 2+2:
Este es 0-shot ya que no le hemos mostrado al modelo ningún ejemplo completo.
1-shot prompting es cuando le muestras al modelo un solo ejemplo. Por ejemplo, el análogo 1-shot del prompt 0-shot Suma 2+2:
es:
Suma 3+3: 6
Suma 2+2:
Hemos mostrado al modelo un solo ejemplo completo (Suma 3+3: 6
), así que este es un 1-shot prompt.
Few-shot prompting es cuando le muestras al modelo 2 o más ejemplos. Todos los prompts por encima de esta sección de variantes han sido few-shot prompts. El análogo few-shot de los dos prompts de arriba es:
Suma 3+3: 6
Suma 5+5: 10
Suma 2+2:
Este es el caso ya que hemos mostrado al modelo al menos 2 ejemplos completos (Suma 3+3: 6
y Suma 5+5: 10
). Por lo general, cuantos más ejemplos se muestren al modelo, mejor será el resultado, por lo que en la mayoría de los casos es preferible usar few-shot prompting a 0-shot y 1-shot prompting en la mayoría de los casos.
¡Few-shot prompting es una técnica poderosa para hacer que el modelo produzca resultados precisos y en el formato adecuado!