¿Qué es un Prompt? Y ¿Cómo opera una Inteligencia artificial?


C-3po:¿Esta ahí señor?

Luke:¿C-3po?

C-3po:Tuvimos unos problemas...

Luke: ¡¿Quieres callarte y escuchar?! Desconecta los trituradores de basura de las celdas. ¿Me oyes? ¡Desconecta los trituradores de basura de las celdas!...

Luke, Leía y Han gritan de alegría

C-3po: Oh Escúchalos... Están muriendo.  ¡Que se condene mi cuerpo metálico!  No actué rápido. ¡Pobre Amo!

Luke: Lo lograste! Estamos bien! Lo lograste!

En este dialogo de la película original de Star Wars, ahora conocida como Episodio IV, imaginemos que Luke no dijera la instrucción correcta para que 3PO o R2 le entendieran, o que alguno de los droides no fuera lo suficientemente inteligente para obedecer de manera precisa la instrucción de su amo, seguramente nunca habríamos tenido esa gran cantidad de películas, series, cómics y juguetes de las ultimas décadas. Pero dejando de lado la ficción, y enfocándonos en la realidad de nuestro mundo actual, esa orden es precisamente lo que se le conoce como “prompt” y es muy importante que se diga de manera correcta.

De manera tradicional en los sistemas de computo, un "prompt" es una señal o indicación que se muestra en pantalla, para solicitar una entrada de información o acción por parte del usuario. Por lo general, se presenta en forma de texto o símbolos en una línea de comando o cuadro de diálogo que indica el tipo de entrada que se espera proporcione el usuario. En términos de Inteligencia Artificial o  IA, los prompt son texto o frases de distinto tamaño, lo suficientemente claros y precisos que se proporcionan a un sistema conocido como “modelo de lenguaje” o “sistema de inteligencia artificial”, para que genere una respuesta a partir de lo que “entendió” que le pedimos. Esto implica que la calidad y precisión del prompt puede afectar de manera importante lo que la IA entienda y por consecuencia que la respuesta generada sea realmente lo que estamos esperando. Por lo tanto, es importante que el prompt esté bien diseñado y sea relevante para la tarea que se desea realizar.

Construcción de “Prompts”

Considerando que hay tantas maneras de expresar una frase como personas en el planeta, y que esto también depende del idioma o contexto determinado, es justo decir que de la misma manera no hay una regla precisa para definir la estructura correcta en la construcción de un prompt, pues el diseño de la estructura a utilizar, también dependerá del modelo de IA que se desea usar y de la tarea que se busca completar. Sin embargo así como existen las reglas gramaticales en cada idioma, también podemos mencionar algunas reglas que pueden usarse para diseñar un prompt efectivo:

    1. Claridad y precisión: Cuando nos expresarnos evitamos divagar para ser más precisos en la idea que tratamos de comunicar. De la misma manera, para que el modelo de lenguaje de la IA logre entender mejor lo que queremos pedirle, es preciso ser conciso y de ser posible evitar el uso de expresiones demasiado rebuscadas para evitar confusiones.

    2. Contextualizar: Para que la información proporcionada en el Prompt resulte relevante, debe contar con el contexto suficiente de lo que, como y para que se quiere, de manera que la IA entienda lo mejor posible la tarea que se desea realizar.

    3. Especificación: El prompt debe ser específico para la tarea que se desea que ejecute la IA. En lugar de ser genérico, el prompt debe ser lo más directo, concreto y preciso posible, de forma que se  logren los resultados deseados y evitar los inesperados. Y para ello algunas herramientas incluyen abiertamente la opción para que el usuario especifique lo que no se debe  considerar como parte del resultado.

Por tanto no hay una regla concreta sobre la longitud o estructura del prompt, no hay una respuesta única. Todo dependerá de la IA que se utilice. Por tanto solo podemos mencionar que el prompt sea lo suficientemente largo para proporcionar el contexto necesario, pero no tan extenso que sea difícil de entender. Aunque una buena practica sería incluir palabras clave que la IA pueda identificar rápidamente.

Cuando la IA recibe el prompt lo primero que hace es analizar la información y de acuerdo al entrenamiento que recibió lo compara con múltiples tokens que resulten similares a la instrucción que recibió, y por aproximaciones arma una respuesta adecuada a la solicitud. El proceso de entrenamiento implica enseñar al “modelo de lenguaje” o “algoritmo de procesamiento de lenguaje natural” (NPL por sus siglas en ingles), a lograr una mejor comprensión sobre las estructuras del lenguaje, y asi generar respuestas más precisas según los prompts de entrada. Esto normalmente se logra mediante ejemplos de entrada y salida e ir ajustando los parámetros del modelo poco a poco hasta que la respuesta sea lo más exacta posible a lo esperado.

Dentro del proceso de entrenamiento, hay otro aspecto que se denomina "dimensión”, el cual se refiere a los niveles de complejidad de los ejemplos utilizados. Por ejemplo, cuando se refiera a un entrenamiento de dimensión baja, significa que la IA solo podrá realizar tareas muy específicas y limitadas. Y por el contrario, en dimensiones altas no solo se refiere a ejemplos de tareas más complejas y sofisticadas, sino de múltiples tipos, dándole a la IA, la capacidad y habilidad de resolver problemas de distintos tipos en condiciones y contextos diversos. Por ello al hablar de dimensiones en el entrenamiento, en realidad se habla de diferentes niveles de complejidad en los que puede trabajar el NPL de la IA.

NLP o "Algoritmo de Procesamiento de Lenguaje Natural"

Un NLP se basa en un conjunto de reglas y algoritmos que permite a las máquinas “entender” y procesar el lenguaje humano o natural de manera similar a como lo hacemos los seres humanos. Los pasos de operación de un algoritmo NLP incluyen:

    • Tokenización: Este es el proceso de dividir el prompt en unidades más pequeñas llamadas tokens, como frases, palabras o incluso caracteres. Su propósito es ayudar a entender el texto y analizarlo correctamente.

    • Análisis morfológico: Después de formar los tokens, estos se etiquetan para clasificarlos por su forma, género, número, tiempo, modo, voz, etc.

    • Análisis sintáctico: Después de dividir y clasificar, corresponde analizar la estructura y relaciones entre los tokens para entender la gramática y la sintaxis del texto. Es decir, identificar la estructura de la oración, en que parte esta el sujeto, en cual el verbo, donde adverbios, etc. de manera que se le de estructura y sintaxis.

    • Análisis semántico: El siguiente paso es entender el significado del prompt, asignándole un contexto, connotaciones y asociaciones. Es decir, entender no solo la oración por si sola, sino incluso asignar relaciones implícitas y explicitas. Digamos por ejemplo que si para generar una imagen se menciona “Gente corriendo de la lluvia en la ciudad” se implica que debe haber al menos una calle, edificios, nubes, gente con paraguas, impermeables, ambiente claroscuro, etc. Aunque esto no se incluya de manera explicita en el prompt original.

    • Generación de lenguaje natural: es el proceso inverso de lo que hemos mencionado hasta ahora, en donde la IA debe generar una respuesta coherente y acorde a lo que se solicito, partiendo de unidades simples de información e irla uniendo y estructurando hasta formar una respuesta más completa y compleja que no sólo sea clara y correcta en términos de lenguaje, sino que además responda a la orden recibida en el prompt que inicio toda la interacción.

Entrenamiento de una dimensión Alta

Los algoritmos de NLP tienen una muy amplia serie de aplicaciones, como el procesamiento de texto, traducción automática, respuestas automáticas de chatbots, asistentes digitales, por mencionar algunos ejemplos. Por ello en su entrenamiento se usan grandes y variados conjuntos de datos para mejorar la capacidad de comprensión del lenguaje natural y generar mejores respuestas, considerando los siguientes pasos:

    • Recopilar y preparar datos: Cualquier proceso de entrenamiento IA, requiere de una gran cantidad de datos, por ello lo primero es recopilar y preparar los datos, es decir limpiarlos para que no contengan errores, duplicación, huecos o incluir información irrelevante para el modelo.

    • Selección del modelo: Lo siguiente por realizar es seleccionar el modelo más adecuado de aplicacion para los datos recopilados, de acuerdo a la tarea que se ejecutara, incluyendo ajustes en los parámetros de operación si fuera necesario.

    • Entrenar el modelo: Con los pasos anteriores completados, toca realizar el entrenamiento mediante la alimentación de los datos de prueba, e ir realizando ajustes para minimizar el error en cada uno de los resultados que se espera obtener en la ejecución de cada ejemplo operado.

    • Validación y ajuste: Después del entrenamiento, se evaluá el desempeño del NLP para determinar su grado de precisión, y generalización, sobre todo al realizar ejercicios que no se usaron en el entrenamiento.

    • Datos de prueba: Pruebas, pruebas, pruebas, todo el esuerzo anterior se resume en la palabra “Pruebas”, pues al final el NLP se debe probar con conjuntos de datos distintos a los del entrenamiento, para evaluar su capacidad de generalización y predicción, para que finalmente el NLP y la IA como tal,  se pueda implementar en ambientes productivos.

Conclusiones

La IA es una tecnología que pretende hacer que las maquinas reaccionen, interactúen y tomen decisiones en la resolución de problemas tan diversos, como si fueran uno mas de nosotros, los “humanos”. Para ello se les enseña mediante entrenamiento a realizar tareas y tomar decisiones, usando el procesamiento del lenguaje natural (NLP), que es el modelo o algoritmo que permite a las computadoras poder entender el lenguaje natural y generar respuestas correctas a los estímulos correctos. Para lograr este entrenamiento se debe disponer y preparar grandes volúmenes de datos en distintas dimensiones de complejidad que permitan hacer tan especifica o genérica la IA como se requiera según la tarea que se desea realizar (responder preguntas, traducir idiomas, generar texto, crear imágenes, etc.)

Sin lugar a dudas los modelos de IA. son tecnologías en constante evolución que llegaron para quedarse, ya que tienen el potencial de mejorar y transformar nuestra vida, y cuyo principal mecanismo de comunicación es esa orden llamada “Prompt” que que es el disparador de la petición de respuesta, de ahí la importancia de su diseño.

La construcción de prompts eficientes, es una habilidad fundamental para el procesamiento del lenguaje natural y la IA. De ahí que se requiera de distintas profesiones y especializaciones enfocadas en este ámbito, como la ingeniería y Ciencia de datos, la lingüística computacional, matemáticas aplicadas, etc.  resulten cruciales en el desarrollo de estos modelos tecnológicos. 

Para concluir quiero recordar esa icónica frase atribuida en las películas de terror al Dr. Victor Frankenstein, que jubiloso grita “¡Esta Vivo!”, cuando su criatura finalmente se levanta de la mesa de trabajo, donde la verdadera pregunta que debemos hacernos, no es si esta tecnología logrará "cobrar vida" o no, sino como haremos que su contacto con el mundo sea bueno, placentero y productivo y no sea recibida con miedo, antorchas y persecución, orillándola a destruir a su creador. Lo principal es que aprendamos a adaptarnos a los cambios que seguramente traera consigo, y asegurarnos de lograr una mutua colaboración, apoyo y mutuo aprendizaje, que nos lleve a nuestro siguiente paso evolutivo de manera exitosa.

Comentarios

Entradas más populares de este blog

¿Qué tan inteligente es realmente una Inteligencia Artificial?

Entre el Desarrollo y el Negocio. Un Producto tecnológico como negocio

Más allá de la programación… Un cuento de Desarrollo de Servicios

Web Semántica, Una línea de negocios

Humanos mejorados