En este artículo revisaremos el concepto más importante de GPT-3, el prompt.
El prompt es una instrucción que se le da a GPT-3 para que genere texto de salida.
Por ejemplo, un usuario podría usar GPT-3 para generar generar una función en Javascript usando un prompt como: “You: Cómo obtener el largo de un string”. GPT-3 leerá el texto y generará una respuesta con la solución basado en ese texto.
¿Pero cómo entiende lo que estoy escribiendo?
Gracias a el PLN o Procesamiento del Lenguaje Natural, que es un campo de la Inteligencia Artificial que se centra en permitir que las computadoras entiendan el lenguaje humano y se comuniquen con él. Esta tecnología se usa para procesar texto, voz o incluso imágenes para obtener información significativa.
Esto significa que la computadora es capaz de comprender el contexto y la intención del usuario para generar una respuesta apropiada.
GPT-3: Generative Pre-trained Transformer 3
GPT-3 fue entrenado con cientos de miles de millones de palabras (incluso código) para poder comprender el texto y generar una salida acorde a él prompt de entrada.
Si quieres saber más sobre GPT, te dejo el paper oficial 👇
Ahora volvamos al prompt…
El prompt es una frase que se utiliza como entrada para generar un texto. Esta frase puede ser de 3 formas:
zero-shot prompts
Es el más simple de los tipos de prompts. Solo entrega la descripción de un texto corto para que GPT-3 pueda comenzar con la predicción del texto siguiente.
Ejemplo de un prompt zero-shot:
const zero_shot_text = 'Write a function in Javascript'; | |
async function main() { | |
const completion = await openai.createCompletion({ | |
model: "text-davinci-003", | |
prompt: zero_shot_text, | |
temperature: 0.3, | |
max_tokens: 100, | |
top_p: 1.0, | |
frequency_penalty: 0.5, | |
presence_penalty: 0.0, | |
stop: ["END", '.'], | |
}); | |
console.log(completion.data.choices[0].text) | |
} |
En este caso con un zero-shot “Write a function in Javascript” basta para obtener el resultado esperado, ya que es una solicitud corto y directo.
one-shot prompt
En este caso se entrega un ejemplo para que GPT-3 pueda usarlo para entender cual debe ser la mejor forma de completar lo solicitado.
En el caso le entregaremos una prompt emulando una conversación entre un bot y una persona:
const one_shot_text = 'Bot: Ask me any question. '+ | |
'Me: Can I ask you something about programming?. '+ | |
'Bot: Yes, of course. Tell me your question and I will answer it. '+ | |
'Me: My question about Javascript is: Write a JavaScript function to apply Bubble Sort algorithm.'+ | |
'Bot:'; | |
async function main() { | |
const completion = await openai.createCompletion({ | |
model: "text-davinci-003", | |
prompt: one_shot_text, | |
temperature: 0, | |
max_tokens: 250, | |
top_p: 1.0, | |
frequency_penalty: 0.5, | |
presence_penalty: 0.0, | |
stop: ["Bot:", 'Me:'], | |
}); | |
console.log(completion.data.choices[0].text) | |
} |
GPT-3 completa el texto desde “Bot:” que fue nuestra última palabra en el prompt, siguió la conversación como si fuera el Bot que le entraga la respuesta a la persona que preguntó.
few-shot prompt
Este es el más poderoso de los prompt. En este caso debes proveer un texto extenso de entre 10 a 100 tokens, entregar multiples ejemplos
Con few-shot prompt, GPT-3 incrementará la calidad de la completion ya que el prompt entrega mucha más información para que aprender.
Si ya jugaste en el playground o con ChatGPT te darás cuenta que mientras más escribas mejor serán las respuestas que entregue GPT-3 ya que tendrá más contexto.
const few_shot_text = `Bot: Ask me any question. | |
Me: Can I ask you something about programming?. | |
Bot: Yes, of course. Tell me your question and I will answer it | |
Me: My question about Javascript is: Write a JavaScript function to apply Bubble Sort algorithm. | |
Bot: | |
Here is a JavaScript function to apply Bubble Sort algorithm: | |
function bubbleSort(arr) { | |
let swapped; | |
do { | |
swapped = false; | |
for (let i = 0; i < arr.length; i++) { | |
if (arr[i] > arr[i + 1]) { | |
let temp = arr[i]; | |
arr[i] = arr[i + 1]; | |
arr[i + 1] = temp; | |
swapped = true; | |
} | |
} | |
} while (swapped); | |
return arr; | |
} | |
Me: Can you write the same function in Python? | |
Bot:`; | |
async function main() { | |
const completion = await openai.createCompletion({ | |
model: "text-davinci-003", | |
prompt: few_shot_text, | |
temperature: 0, | |
max_tokens: 250, | |
top_p: 1.0, | |
frequency_penalty: 0.5, | |
presence_penalty: 0.0, | |
stop: ["END"], | |
}); | |
console.log(completion.data.choices[0].text) | |
} |
Ya conoces el prompt… Ahora elige el modelo 🧐
Como existen diferentes tipos de prompts para que GPT-3 entienda el contexto de la conversación, también existen diferentes tipos de modelos con los que se procesará el texto de salida.
Puedes revisar los modelos en el siguiente artículo 👇
Modelos de GPT-3 y Codex
En este artículo revisaremos que es un modelo y cuales son los distintos tipos de modelos que OpenAI ofrece para ocupar…
medium.com
Puedes encontrar todos mis artículos ordenados por categorías aquí: rebrand.ly/davila7
Si tienes dudas, te dejo mi https://www.linkedin.com/in/daniel-avila-arias/
Top comments (0)