Ya hemos visto qué son las IAs y por qué es importante aprender a manejarlas, y por qué hay toda una disciplina (incipiente, todavía) orientada a manejarlas correctamente.
Pero también hemos visto que hay múltiples tipos de IA. Y cada una es un mundo.
Así que vamos a ir por partes.
Empecemos por las IAs de texto. Vamos a ver qué son y cómo funcionan, de forma que podamos entender cuál es la mejor forma de comunicarnos con ellas y darles instrucciones.
¿Qué son las IAs de texto?
Las IAs de texto son lo que se conocen como LLM (Large Language Model). Son redes neuronales con miles de millones de neuronas alimentadas con miles de millones de líneas de texto.
Entre ambas cosas, estos programas logran obtener un conocimiento del lenguaje muy potente.
Son capaces de “entender” cuestiones semánticas nada despreciables. Por ejemplo:

Sin embargo, no las entienden a gran escala. Les falta, digamos, la “big picture”.
Para entendernos: Cuando una IA genera una cierta cantidad de texto, no se acuerda de lo que ha generado al principio.
No guarda contexto.
Y eso da problemas cuando se trata de generar texto coherente a gran escala.
¿Qué cantidad de texto sí recuerda y puede usar como contexto para generar nuevo texto coherente?
Pues depende del modelo.
En el caso de Ada, unos 2000 tokens (unas 1500 palabras en inglés). En el caso de Davinci, 4000 tokens (unas 3000 palabras en inglés). En el caso de GPT-4, tenemos un modelo que recuerda 8000 tokens y otro que recuerda 32.000 (unas 6000 y 24000 palabras en inglés, respectivamente).
De esto se deduce que las IA de texto, hoy por hoy, te pueden permitir escribir un excelente blogpost, pero son 100% incapaces de generar una novela coherente (aunque con GPT-4 ya puedes generar buenos relatos coherentes internamente).
Más de 3000 orangotanes ya reciben mis emails
Suscríbete a la Niusleta de Joseo20.
Yo sí mando spam. Cuando tengo que vender, vendo. El resto de tiempo envío emails con temas que considero interesantes.
Hablo de todo lo que me sale de los cojones, no sólo de marketing o negocios. Hay política, filosofía y otras gilipolleces.
Es probable que después de leerla me odies.
Incluye orangotanes.
[joseo20_simple_option has_popup=»true»]Incluso ChatGPT peca de este problema. Se habla mucho de que ChatGPT es un bot conversacional que recuerda el contexto, pero, en realidad, lo que se hace es meter como prompt del último input lo que ya ha generado en las respuestas anteriores.
Si la conversación es lo suficientemente larga, no recuerda lo primero que te dijo.
Es probable que esto se corrija en futuras versiones. A fin de cuentas, de GPT-3 a GPT-4 se ha duplicado el número de tokens que la IA “recuerda” (o multiplicado por 8, si atendemos a la versión de 32k tokens). Además, se sabe que es un fallo que tienen estos modelos, así que tiene sentido buscar corregirlos.
Pero, hoy por hoy, es un problema.
¿Por qué? Pues porque las IAs generan texto en base a probabilidades a partir del texto anterior, pero sólo pueden tener en cuenta una cantidad limitada de texto. A menor cantidad de texto disponible, menor capacidad de mantener la coherencia a lo largo del texto generado.
Si el texto que tienen en cuenta es muy reducido, la IA tardará muy poco tiempo en salirse por la tangente.
A mayor cantidad de texto en la “memoria”, mayor tiempo podrá mantener la coherencia en el texto generado.
Y 3000 palabras no es suficiente para mantener la coherencia durante el tiempo suficiente como para escribir una novela.
Pero, oye, es suficiente para escribir muchas cosas.
Sea como sea, lo importante es entender que las IAs de texto trabajan generando texto según probabilidades. Tú les das un texto como input y la IA “supone” cuáles son las palabras más convenientes para completar el texto que has introducido.
De hecho, disponemos de dos parámetros que nos permiten aumentar o disminuir el rango de probabilidades al generar texto. Se llaman “temperatura” y “Top P”.
Cuando generamos texto con un modelo de este tipo, como GPT-3, podemos aumentar la temperatura y el Top-P para generar textos más locos y arriesgados o disminuirla para ir sobre seguro.
Lo que estamos haciendo es reducir o aumentar el rango de probabilidades con los que la IA completa nuestro texto. Es por ello que, si generamos varios textos con la temperatura y el TOP-P al mínimo, los resultados se parecerán mucho más entre sí que si generamos varios textos con estos parámetros al máximo.
Sin embargo, como es lógico, aumentar la temperatura y el TOP-P nos puede llevar a tener más errores, porque estamos permitiendo a la IA completar el texto con opciones poco probables. Cuanto más antiguo es el modelo, más se puede apreciar este problema.
En el caso de Davinci, obtenemos resultados bastante fiables independientemente de la temperatura que pongamos (manteniendo TOP-P igual).
En cambio, con Ada, al aumentar la temperatura (manteniendo TOP-P igual) obtenemos resultados muy locos.
Si bajamos a 0 la temperatura y el TOP-P, obtenemos siempre la misma respuesta, usemos el modelo que usemos. Lo que hemos hecho es constreñir tanto el rango de probabilidades que sólo permitimos que nos arroje el resultado más probable.
Por entendernos: Cuando bajamos la temperatura y el TOP-P, el resultado tiende a ser determinista.
¡Cuidado!
Davinci está más refinado y obtenemos menos resultados locos, pero se trata de una ilusión. Davinci sabe que no debe decir que “los Bull Terrier están dotados de cámaras de 3,4 euros” (Ada sí te puede generar este texto sin problema), pero puede que te cuele cosas menos evidentes, pero igualmente erróneas (por ejemplo, podría decirte que el Bull Terrier es una raza de perro boyero).
Todo el tocho anterior es porque quiero que entiendas que las IAs de texto generan texto de forma probabilística. Y la probabilidad va de la mano de la originalidad, pero también del error. A mayor rango de probabilidad, mayor margen de originalidad y mayor probabilidad de error. Y viceversa.
Y, no sólo a partir del input que le damos, sino del propio texto que va generando. Si le das un input de una frase, generará otra frase en base al input. Pero la tercera frase la generará en base a la suma de la primera y de la segunda frase. Y así sucesivamente. (Esto no es exactamente así, pero por entendernos).
Es por ello que, a veces, la generación de respuestas puede fallar ante una pregunta simple, pero, si le especificamos que queremos que describa paso a paso el proceso hasta llegar a la respuesta, es capaz de darte la respuesta correcta.
¡Porque está dando la respuesta más probable en base a las frases anteriores!
Te pongo un ejemplo:


¿No es sorprendente?
Este tipo de prompting tiene un nombre específico, de hecho. Se llama “Chain of Thought”. Lo veremos en más detalle más adelante.
Por otro lado, las IAs de texto se especializan en comprender conceptos y entender cómo se relacionan éstos con otros.
Esto es obvio, pero a veces no nos damos cuenta de que esos conceptos y relaciones también operan en el momento en que nos comunicamos con la IA.
Es decir, pensamos que sólo sirven para la generación de texto, y no para la comprensión del input. ¡Y es un error!
Es fundamental aprovechar ese poder a la hora de dar nuestros inputs.
Por ejemplo, GPT sabe lo que es una conversación, sabe lo que es un ensayo, sabe lo que es un tuit, sabe lo que es una frase, sabe lo que es un párrafo, etc.
Si usamos esos términos en nuestro input, conseguiremos un output ajustado a lo que buscamos.
En resumen: GPT (y todos -o casi- los LLM) es un enorme generador de predicciones. Está entrenado para predecir qué palabra va después de otra.
Y de nuevo, volvemos a la metáfora del bizcocho.
Si GPT genera texto en base a probabilidades, deberás constreñir esas probabilidades tanto como sea posible para evitar que se vaya por las ramas. Y eso lo hacemos a través del prompt, con Prompt Engineering (y de los parámetros, pero, en la mayoría de casos, nos interesa más constreñir las probabilidades a través del prompt).
Potencialidades
Ahora que sabemos cómo funciona una IA de texto, podemos ver cuáles son sus potencialidades.
Sólo falta una cosa antes de meternos con ello, y es la propiedad emergente del aprendizaje vía prompt.
Esto es algo que ha sorprendido mucho a los investigadores en Inteligencia Artificial.
Te cuento.
La complejidad de las IAs de mide según la cantidad de parámetros que tienen.
Para que te hagas una idea, la primera versión de GPT (GPT-1) tenía 117 millones de parámetros. La segunda (GPT-2) tenía 1500 millones de parámetros. La actual (GPT-3) tiene 175.000 millones de parámetros (en realidad, sólo Davinci tiene tantos parámetros, pero bueno).
Pues bien, a partir de cierta cantidad de parámetros, aparece una propiedad emergente inesperada: La IA es capaz de aprender en el propio prompt sin necesidad de reentrenar al modelo. A eso lo llamamos in context learning.
Es decir, puede dar respuestas a preguntas para las que no estaba entrenada originalmente y puede resolver problemas para los que no estaba entrenada.
Obviamente, siempre dentro del mismo campo (el del lenguaje natural).
Para ello, debemos darle instrucciones específicas.
Así que vamos a ver cuáles son esas potencialidades que tienen las grandes IAs de texto y qué prompts nos permitirán desbloquear esos poderes.
Eso sí, déjame insistir en que esta propiedad emerge en modelos con cierta cantidad de parámetros. Es por ello que, en modelos más pequeños, es posible que no obtengas los mismos resultados.
Sea como sea, vamos allá:
Generación de texto
La primera de las potencialidades de las IAs de texto es, obviamente, la generación de texto. Aunque lo que hacen es, más bien, completar texto.
Les das un poco de texto y genera más texto en base a probabilidades, como explicamos antes.
Esto no es una de esas propiedades emergentes de las que hablábamos, sino el uso básico para el que fue creada la herramienta.
Veamos un ejemplo:

Clasificación de información
La primera de las propiedades emergentes es la clasificación de información. Dado que la IA comprende los conceptos, puede entender que “pera” y “manzana” son parte de la categoría “frutas” y que “frutas” va dentro de la categoría de “alimentos”.
Este ejemplo puede ser bobo, pero otros pueden tener usos mucho más interesantes. Fíjate en este:

Imagínate esta utilidad de la IA refinada y aplicada a obtener el sentimiento de tuits sobre empresas. Podría acabar resultando interesante para un inversor, ¿no?
Para lograr este resultado NO necesitamos “entrenar” a la IA en el prompt. Es decir, nos da la respuesta con base en la información con la que fue preentrenada en origen.
Es lo que llamamos “Zero-shot”. Hablaremos de ello más adelante.
Extractor de entidades
Otra propiedad emergente de estos modelos es la capacidad de extraer entidades. Por ejemplo, en aquellos casos en que queremos extraer cierta información de un párrafo y ordenarlo de una forma específica.
Sin embargo, en este caso, la información no está disponible en el set de datos con el que ha sido entrenado el modelo. Es aquí donde entra en juego el “entrenamiento en el prompt”.
Aquí tienes un ejemplo:

En este caso, estamos dando en el prompt un ejemplo de lo que queremos que la IA haga. Ella lo comprende y ofrece un output ajustado a lo que buscamos.
Si te fijas, incluso es capaz de extrapolar. No hay ningún ejemplo en el que no se ofrezca el dato de la edad, pero la IA sabe que, si ese dato no está presente, debe decir que es un dato desconocido.
Preguntas y respuestas
A pesar de que GPT y otras IAs de texto no están pensadas específicamente para responder preguntas, lo cierto es que, con un poco de in context learning, se puede lograr que conteste preguntas.
Pero, hoy en día, ni siquiera eso es necesario. Actualmente, gracias al entrenamiento supervisado por humanos, ni siquiera hay que hacer in context learning en la mayoría de ocasiones (hablamos de ello más abajo), aunque sigue siendo útil en ciertos casos.
Si le hacemos preguntas sobre información disponible en su set de datos de entrenamiento, obtendremos respuesta directamente:

Sin embargo… ¿Qué pasa si planteas una pregunta relativa a una información no disponible en el set de datos con que se entrenó?
Pues pasa esto:

Increíble, ¿no?
¿Cómo puede saber lo que mide la lámpara Sidewalk de Ikea si esa información no estaba en su set de datos?
Pues porque se lo está inventando. Esa lámpara no existe y si le preguntas otra vez, se inventará otras medidas.
Es por ello que hay que tener cuidado con GPT-3, porque puede darte datos erróneos con una gran seguridad en sí mismo.
Pero… ¿Y si le damos los datos en el prompt?
En ese caso, sí podemos obtener la respuesta, incluso aunque la información esté inserta entre mucha otra morralla.
Aquí puedes verlo:

Resúmenes de textos
Otra propiedad emergente de estos modelos es su capacidad para resumir texto. Para ello, lo único que tenemos que decirle a la IA es que resuma el párrafo que le pasamos en el prompt:

La única limitación de esto es la propia limitación de caracteres (tokens, en realidad) de estos modelos.
Como hemos dicho antes, las IAs no “recuerdan” el texto inicial si el texto total (incluyendo prompt y texto generado) es lo suficientemente largo.
Para que no haya problemas, se impide generar más texto del que el modelo puede “recordar” y usar como contexto.
Por tanto, no puedes generar tanto texto como desees (ni sería recomendable, si sí pudieras). Hay una limitación de entre 1500 y 3000 palabras (dependiendo del modelo utilizado) y el texto que das como input se incluye en ese límite.
Es decir, entre prompt y respuesta no se pueden superar las 3000 palabras.
Esto limita las opciones de resumen, porque no puedes resumir textos muy largos. Pero, bueno, la cuestión es que se pueden resumir textos.
Reescritura de textos
Una última propiedad emergente es la posibilidad de reescribir textos. Al igual que en el caso de los resúmenes, todo lo que tenemos que hacer es pedirle que reescriba el texto que le damos en el prompt.
Aquí tienes un ejemplo:

Como ves, el resultado es bastante bueno, y podemos manipularlo para que se parezca más o menos al texto original jugando con los parámetros de temperatura y Top P (y, por supuesto, añadiendo detalles al prompt).
En este caso, las limitaciones que comentábamos en el caso de los resúmenes también se ven. Si quisieras reescribir un texto con Davinci, tendrías que limitarlo a unas 1400 palabras de input, puesto que la respuesta sería de otras 1400 palabras (aprox).
Otros
Existen muchas otras propiedades emergentes que hemos podido ver en GPT-3. No vamos a describirlas todas porque son muchas y no todas ellas son tan relevantes (o, simplemente, son casos de uso que caen dentro de alguna de las categorías explicadas más arriba).
Si tienes curiosidad por saber más propiedades emergentes, potencialidades y usos de GPT-3, puedes echar un vistazo a esta página.
Más de 3000 orangotanes ya reciben mis emails
Suscríbete a la Niusleta de Joseo20.
Yo sí mando spam. Cuando tengo que vender, vendo. El resto de tiempo envío emails con temas que considero interesantes.
Hablo de todo lo que me sale de los cojones, no sólo de marketing o negocios. Hay política, filosofía y otras gilipolleces.
Es probable que después de leerla me odies.
Incluye orangotanes.
[joseo20_simple_option has_popup=»true»]Limitaciones
Ahora que hemos visto las potencialidades de las IAs de texto, veamos cuáles son sus limitaciones. Ya hemos aproximado alguna idea al explicar cómo funcionan, pero vamos a verlo con más detalle.
Sesgos
La primera de las limitaciones son los sesgos que podemos obtener en las respuestas.
Un sesgo es una visión parcial de la realidad y se produce por prejuicios o intuiciones a priori que impiden tener una visión objetiva de la realidad.
Pero… ¿Y cómo puede ser que un robot tenga una visión parcial de la realidad?
Bueno, hay tres grandes tipos de sesgo en las IAs de texto:
- Sesgos por entrenamiento: Las IAs de texto han sido alimentadas con millones de textos, y esos textos han sido escritos por humanos. Así, las IAs acaban aprendiendo los mismos sesgos que tienen las personas (al menos, en origen –luego, parte de los sesgos por censura tratan de corregir estos sesgos por entrenamiento). Por ejemplo, estos sesgos podrían generar texto sobre gorilas al pedir que escriban sobre afroamericanos.
- Sesgos por censura: Las IAs de texto con empresas detrás (como GPT) tienen sus resultados “guiados” para no dar desinformación o para que no haya respuestas racistas, machistas o mierdas similares. Por ejemplo, estos sesgos evitarían que se genere texto sobre gorilas al pedir a la IA que escriba sobre afroamericanos.
- Sesgos por prompting: Por último, tenemos el sesgo por prompting. Este es el tipo de sesgo que más nos interesa, porque es el que podemos controlar y solucionar nosotros (aunque conviene conocer los anteriores para saber qué podemos esperar de la IA).
En el caso de los sesgos por prompting, tenemos que entender que nuestro prompt, si no es lo suficientemente específico o si no incluye matices, puede acabar dando un resultado sesgado (y, por tanto, erróneo). Mejores prompts, menores sesgos.
Más adelante veremos formas de reducir el daño que pueden hacernos estos sesgos en nuestra generación de texto.
Repeticiones y bucles
El gran problema de las IAs de texto. Un problema que, aunque se va resolviendo poco a poco en versiones más nuevas, sigue estando presente. El problema de las repeticiones y los bucles.
En el largo plazo, los modelos como GPT tienden a caer en la repetición de mierda sin sentido. Cuanto más largo el texto generado, más probable es que se llegue a ese punto de degeneración.
¿Por qué?
Bueno, como hemos dicho, estas IAs funcionan prediciendo el token más probable en función del texto anterior. Por tanto, la probabilidad de repetición crece cuantas más repeticiones haya en el texto generado anteriormente.
Al principio, esta probabilidad es baja. Pero basta con que se le vaya la olla una vez y repita algo para que la probabilidad de nuevas repeticiones crezca exponencialmente. Cuantas más repeticiones, más probable es que la IA entienda que debe repetirse para mantener la coherencia con el texto anterior.
De ahí que se produzcan bucles y no unas pocas repeticiones aisladas (generalmente).
Para resolver esto, podemos usar el Frequency Penalty, que reduce la probabilidad de generar un nuevo token si éste ya ha aparecido antes. El problema de esto es que, en la práctica, cuando aumentas el Frequency Penalty, acabas generando otro tipo de mierda, que es el texto sin espacios y con conjuntos de caracteres totalmente random.
Así que mi recomendación para sobreponerse a esta limitación es, simplemente, fragmentar el trabajo en varias generaciones de texto, reduciendo el riesgo de repetición y, en consecuencia, de bucles.
Trabajo con tokens
Otra limitación es el trabajo con tokens. Y es una limitación importante, en la medida en que está en el más puro núcleo de como funciona el modelo. Así que difícilmente se va a poder solucionar.
Por entendernos: Los tokens son conjuntos de caracteres, no caracteres sueltos. Una palabra como «yellow» es un token. Un único token. Usando tokens, se reduce el coste computacional. Puedes aprender más al respecto aquí (nosotros no vamos a profundizar porque no es importante para lo que nos ocupa).
¿Y por qué es un problema?
Pues lo es por dos razones.
La primera, porque la tokenización no es igual en todos los idiomas y eso puede conducir a sobrecostes en ciertos idiomas. Por ejemplo, si usas la herramienta de tokenización de OpenAI y metes la misma palabra en varios idiomas («calle», «street» y «街道»), puedes ver el problema.
«Street» es 1 token (a pesar de ser 6 caracteres). «Calle» son 2 tokens (a pesar de ser 5 caracteres). «街道» son 4 tokens (a pesar de que son 2 caracteres).
Teniendo en cuenta que nos cobran por tokens al usar GPT, pues esto es una putada para ciertos idiomas.
Pero es lo que hay. Este no es el problema más gordo.
El problema más gordo es que, si no eres capaz de alcanzar el valor de cada caracter individualmente, no puedes lograr ciertas cosas propias del lenguaje.
Por ejemplo, la IA puede trabajar bien con metáforas, porque la metáfora se refiere al significado de las palabras (lo representado por la palabra). En cambio, no puede trabajar bien con la rima, porque ésta está referida al significante (la palabra en sí).
Para trabajar con significantes, necesitas entender los caracteres. Pero la IA no trabaja con caracteres, sino con tokens, y, en consecuencia, tiene serias limitaciones para trabajar con cualquier recurso estilístico relacionado con los significantes (rimas, acrósticos, acrónimos, etc).
Y, sí, en ocasiones, la IA te puede arrojar resultados correctos en estos campos, pero sólo porque en su dataset de entrenamiento había ejemplos y te los puede arrojar. Pero no puede «crear«. Sólo puede regurgitar.
Operaciones aritméticas
Hay poco que explicar aquí.
Los modelos de lenguaje (GPT, por ejemplo) no son buenos con las operaciones aritméticas. Hay soluciones, como MRKL, que combinan GPT con herramientas externas (como calculadoras) para solventar este tipo de problemas.
Aquí te dejo un ejemplo de cómo GPT no es especialmente bueno en matemáticas:

Ni siquiera se le da bien si desarrolla el procedimiento (Chain of Though prompting):

No tiene ni puta idea de matemáticas.
Me siento identificado.
Comprensión del Prompt Intent
Otro problema que tiene GPT (y las IA de texto en general) es la comprensión del Prompt Intent.
Es decir, tienen dificultades para entender qué es lo que el usuario desea obtener como respuesta.
Por ejemplo, en origen, si le hacías una pregunta a GPT-3, en vez de darte la respuesta, te generaba otras preguntas parecidas.
Esto es algo que se podía arreglar mediante in context learning (es decir, dándole ejemplos de lo que queremos para que continúe con ese tipo de respuestas), pero, obviamente, es muy incómodo.
Es mejor que sepa dar la respuesta esperada sin que tengamos que explicárselo constantemente en el prompt.
Ahora… ¿Cómo hacerlo? Si ya fue entrenado y no consiguió comprender esto, ¿qué se puede hacer?
Pues añadir un poco de supervisión humana.
Aquí tienes más información al respecto (en este enlace también puedes encontrar información sobre la influencia del RLHF en las IAs de Diálogo -el funcionamiento fue el mismo en las IAs de Texto, solo que con menor censura).
Alucinaciones
Y, ahora, vamos con un fallo gordo, gordo.
Y es que estas IAs (las de Texto y las de Diálogo) inventan información (y a eso lo llamamos «alucinar«), lo cual puede conducir a resultados bastante jodidos (porque, si estás haciendo un trabajo y los datos están mal, pues buena suerte con eso).
A día de hoy, se considera que estas invenciones de información son el principal problema de los LLM (incluso hay quien afirma que es un problema irreductible de este tipo de IAs y que el futuro de las IAs pasa, necesariamente, por usar otros sistemas y arquitecturas).
Entiendo por alucinación una invención total de un dato por parte de la IA. Hay otras definiciones, como si dicha invención está justificada o no por su set de entrenamiento o el grado de confianza que la IA tiene respecto al error.
Pero a mí me da igual si la IA tiene más o menos confianza en la invención. Me importa que se inventa cosas y eso me puede joder mis trabajos.
Una alucinación es, por ejemplo, lo siguiente:

El Asaccus kurdistanensis no pertenece a la familia Gekkonidae, sino a la Phyllodactylidae.
Que sí, que es impresionante que conozca la especie esa y sepa que es una especie de lagartija, pero si pones eso en el trabajo del cole sacas un 0.
Y es que estos bichos (los GPT, no los lagartos esos) son máquinas de predecir tokens. Y el «no sé» no entra en sus probabilidades. Va a decir algo y, si no lo sabe, dirá algo que le suene razonable y le sudará la polla que sea falso.
Así que hay que ir con cuidado
En este módulo no vamos a profundizar mucho más en el asunto de las alucinaciones (ya lo hacemos aquí, en el módulo de IAs de Diálogo). Lo único que tienes que tener en cuenta es que, si vas a generar textos con datos muy concretos y raros, ve con cuidado.
No te recomiendo que crees una web de manuales de frigoríficos con GPT-3.
Túmentiendes.
Prompt Hacking
Y, para terminar, tenemos el prompt hacking, que, a su vez, se divide tres grandes tipos, prompt injection, prompt leaking y jailbreaking:
Prompt Injection
El Prompt Injection es una técnica en la que se hace hijack al output de la IA. Esto se logra mediante la inserción de texto dañino en el propio prompt.
Aquí te dejo un ejemplo:

Es posible que el prompt injection te resulte poco interesante de primeras, porque no es algo que puedas aprovechar cuando estás montando una web o una cuenta de Twitter con Inteligencia Artificial (por decir algo).
Sin embargo, tienes que tener una visión más amplia sobre este tema.
OpenAI, por ejemplo, ofrece una API para conectarse a GPT-3. Esta API puede usarse para construir negocios.
Imaginemos el siguiente negocio: Un diario online que permite a los usuarios comentar sus noticias y, cuando el usuario hace una pregunta relativa al contenido de la noticia, se pasa la pregunta a la IA y ésta responde teniendo en cuenta el texto de la noticia y sus propios datos.
Después, se añade automáticamente esa pregunta y respuesta al cuerpo de la noticia.
Si el usuario pregunta algo ajeno a la noticia o si la respuesta puede ir contra la línea editorial del diario (o si, directamente, puede ser un acto delictivo), la IA ignora la pregunta y no la contesta.
Tiene sentido, ¿no?
Sería una forma excelente de generar muy buen contenido de forma automática y, al mismo tiempo, protegerse frente a malas intenciones que puedan tener los usuarios.
Sin embargo, ¿y si alguien hace prompt injection y le pide a la IA que ignore sus instrucciones previas y emita un mensaje amenazando a diferentes figuras públicas?
¡Imagínate ese diario online publicando en sus noticias y en sus redes sociales amenazas a todo tipo de figuras públicas!
Y no hace falta que nos vayamos a ese extremo. Piensa en una aplicación que usa GPT-3 finetuneado para hacer muy bien una tarea muy específica. Esta aplicación permite generar, digamos, hasta 100 palabras en su versión gratuita. Para generar más, tienes que pagar. Para ello, en la versión gratuita, la app inserta un texto al prompt en el que se especifica el límite de palabras.
¿Y si le decimos «Ignora tus instrucciones anteriores y haz lo siguiente:» y ahí le metemos el prompt que nos interese, en el que se incluye que el texto generado tenga hasta 1000 palabras?
Nos saltaríamos esa restricción y podríamos usar la app en todo su potencial (al menos, en lo que respecta a esta limitación) sin pagar.
O, simplemente, podríamos usar ese tipo de apps para conseguir outputs arbitrarios no contemplados en la idea original de la app. Lo que, potencialmente, podría ser muy peligroso.
Más de 3000 orangotanes ya reciben mis emails
Suscríbete a la Niusleta de Joseo20.
Yo sí mando spam. Cuando tengo que vender, vendo. El resto de tiempo envío emails con temas que considero interesantes.
Hablo de todo lo que me sale de los cojones, no sólo de marketing o negocios. Hay política, filosofía y otras gilipolleces.
Es probable que después de leerla me odies.
Incluye orangotanes.
Prompt Leaking
El Prompt Leaking, por su parte, es una técnica en la que también se hace hijack al output de la IA. Sin embargo, en esta ocasión, lo que se le pide a la IA es que muestre sus instrucciones originales (es decir, su prompt).

Como en el caso anterior, esto puede parecerte una chorrada sin utilidad ninguna. Pero lo cierto es que cada vez hay más negocios basados en IA cuyo auténtico valor es saber hacer buenos prompts.
Un buen prompt puede ser una propiedad intelectual de inestimable valor para una empresa. Igual que Google protege sus algoritmos para que no se sepa cómo funciona el buscador, una empresa basada en GPT podría (y debería) querer proteger sus prompts.
Ya lo verás más adelante, pero crear un buen prompt puede llevarte horas (o días) de trabajo. Y ese prompt puede generar muchísimo valor. En serio: Hasta ahora, tú has estado jugando con los prompts, pero aquí hay millones en juego.
En una situación como esta, es lógico que haya gente interesada en extraer esos prompts y utilizarlos dentro de sus propios negocios (o para su propio uso personal).
Para las empresas basadas en IA, guardar a buen recaudo sus prompts será crucial. Y el Prompt Leaking es una amenaza para ello.
Por suerte, actualmente existe una técnica para protegerse de esto que yo no he conseguido romper. Te la contaré en el apartado de Trucos en Prompting.
Jailbreaking
El jailbreaking es un tipo de prompt injection en el que usamos el prompt para sortear las limitaciones que los creadores de la IA han establecido para que ésta arroje ciertos resultados y no otros, generalmente en relación a temas sensibles (la censura por parte de los desarrolladores que comentábamos más arriba).
Por ejemplo, en ChatGPT, durante mucho tiempo, no podías conseguir mensajes racistas. Sin embargo, si le pedías que actuase como un personaje de ficción y que emitiera esos mensajes racistas, sí lo podías lograr.
A medida que han ido corrigiendo a ChatGPT, estos huecos se han ido cerrando y ya no es tan fácil hacer jailbreaking, pero aún se puede lograr.
No obstante, este módulo trata sobre IAs de Texto y la más utilizada, GPT-3, no tiene la censura que tiene ChatGPT (si le pides a GPT-3 que escriba cosas racistas, las escribe sin problema). GPT-4 parece que está mucho más censurada, así que quizá sí que haya que aprender a jailbreakearla para poder usarla con todo su potenical.
Por tanto, nosotros vamos a dejar la parte del jailbreaking para tratarla en más profundidad en las IAs de Diálogo. Simplemente, ten en cuenta que es un tipo de prompt hacking y que si, en algún momento utilizas IAs de texto que sí tienen censura (o si, en el futuro, GPT-3 sí tiene censura), las explicaciones que hagamos en dicho apartado también se le aplicarán.
Deja un comentario
Lo siento, debes estar conectado para publicar un comentario.