¿Es la Ingeniería de Prompts la carrera del futuro?

¿Salvará la IA tu puesto de trabajo convirtiéndose en un «prompt engineer«? Con el auge de las herramientas de IA generativa, de repente se aparece una una nueva carrera profesional, el Prompt Engineering.

El mercado laboral cambia y evoluciona constantemente, y uno de los últimos acontecimientos es una oferta de empleo viral para un puesto con un salario de 250.000 a 335.000 dólares en USA. Este anuncio ha captado la atención de muchos solicitantes de empleo, ya que la oportunidad de ganar un salario tan alto es rara y muy codiciada.

En un futuro próximo se buscará contratar a un nuevo tipo de trabajador intelectual (o potencialmente se verá esta habilidad tan a menudo como «competente en excel» en los currículos). Este talento prometedor conocido como «Prompt Engineers» y ya es hora de que todo el mundo empiece a debatir y a utilizar esta nueva y asombrosa herramienta.

Muchos se preguntan qué hace exactamente un Prompt Engineer y qué tipo de aptitudes y cualificaciones se requieren para el puesto.

Prompt Engineer

¿Qué es un prompt en el machine learning?

Un prompt es un fragmento de texto insertado en los ejemplos de entrada, de modo que la tarea original puede formularse como un problema (enmascarado) de modelado del lenguaje. Por ejemplo, digamos que queremos clasificar el sentimiento de la crítica de cine «No hay razón para verla», podemos añadir una indicación «Fue» a la frase, obteniendo «No hay razón para verla. Fue ____». Es natural esperar una mayor probabilidad de que el modelo lingüístico genere «terrible» que «genial».

Los modelos de IA generativa interactúan con el usuario principalmente a través de texto. Le dices al modelo lo que tiene que hacer a través de una interfaz textual y el modelo intenta realizar la tarea. Lo que se le dice al modelo, en sentido amplio, es la instrucción.

En el caso de los modelos de IA de generación de imágenes, como DALLE-2 o Stable Diffusion, la instrucción es principalmente una descripción de la imagen que se quiere generar.

En el caso de los grandes modelos lingüísticos (LLM) como GPT-3 o ChatGPT, el prompt puede contener cualquier cosa, desde una simple pregunta («¿Quién es el presidente de los EE.UU.?») hasta un problema complicado con todo tipo de datos insertados en el prompt (tenga en cuenta que incluso puede introducir un archivo CSV con datos sin procesar como parte de la entrada). También puede ser un enunciado vago como «Cuéntame un chiste. Hoy estoy de bajón».

En general, en los modelos generativos orientados a tareas, como Gato, la pregunta puede ser de muy alto nivel y definir una tarea para la que se necesita ayuda («Necesito organizar un viaje de una semana a Grecia»).

¿Qué es el prompt engineering?

Prompt engineering es el proceso de diseñar y elaborar el texto que se utiliza para estimular un modelo de aprendizaje automático. El objetivo de la ingeniería de instrucciones es crear un conjunto de entradas que produzcan los resultados deseados del modelo. Los objetivos específicos y los resultados deseados dependerán de la tarea para la que se utilice el modelo.

Por ejemplo, en tareas de procesamiento del lenguaje natural, como la traducción o el resumen de textos, el proceso de ingeniería de estímulos puede implicar la creación de un conjunto de pares de frases o pasajes de texto que entrenarán al modelo para traducir o resumir el texto con precisión.

En tareas más generales de aprendizaje automático, las indicaciones pueden ser imágenes, sonidos u otras formas de datos, y el objetivo del proceso de ingeniería sería crear conjuntos de datos que entrenarán al modelo para realizar la tarea deseada, como reconocer objetos en una imagen o transcribir voz a texto.

Es importante mencionar que crear una buena entrada para el modelo puede aumentar la calidad de la salida y aportar menos sesgos, por lo que la idea es crear un conjunto diverso de entradas que ayude al modelo a ser robusto ante diferentes entradas.

¿Qué hace un Prompt Engineer?

Trabajando como Prompt Engineer, tendrás el poder de crear instrucciones que guíen a los grandes modelos lingüísticos (LLM) para generar comportamientos complejos y resultados precisos. Pero ten en cuenta que se trata de un territorio inexplorado, ya que el campo de la ingeniería de instrucciones es relativamente nuevo y no es fácil encontrar un candidato bien cualificado. Sin embargo, si estás preparado para el reto, puedes demostrar tus habilidades mostrando proyectos existentes que demuestren la ingeniería de prompts en modelos lingüísticos o modelos de generación de imágenes, o experimentando con LLM y demostrando tu capacidad para producir comportamientos complejos con instrucciones bien elaboradas.

Imagina que eres el maestro del lenguaje, el arquitecto de las instrucciones que guían a los modelos lingüísticos más avanzados, como GPT-3, DALL-E, Midjourney y ChatGPT, para generar resultados relevantes y precisos. Eso es exactamente lo que hace un Prompt Engineer.

Como Prompt Engineer, diseñarás y elaborarás instrucciones que proporcionen al modelo la información y el contexto necesarios para comprender la tarea en cuestión. Ya sea proporcionando recursos sobre un tema concreto, utilizando un lenguaje específico para guiar la salida del modelo o utilizando restricciones para dar forma al resultado, serás tú quien tome las decisiones. Pero no se trata sólo de dar órdenes, tendrás que conocer a fondo la tarea o aplicación, las capacidades y limitaciones del modelo y los posibles sesgos de los datos.

Tu objetivo final es diseñar indicaciones creativas y variadas que animen al modelo a generar resultados interesantes y variados, supervisar y mejorar continuamente las indicaciones, y colaborar con el equipo para lograr el mejor resultado posible. Para destacar en este papel, debes tener un buen conocimiento del aprendizaje automático, el procesamiento del lenguaje natural y las tecnologías relacionadas, así como conocimientos de programación.

¿Cuáles son las expectativas para alguien que desempeña el papel de Prompt Engineer?

Un Prompt Engineer es responsable de diseñar y elaborar prompts para grandes modelos lingüísticos. El papel de un Prompt Engineer incluye las siguientes expectativas:

  1. Comprensión de la tarea: El Prompt Engineer debe conocer bien la tarea o aplicación para la que se utilizará el modelo, y ser capaz de diseñar prompts que sean relevantes y adecuados para esa tarea.
  2. Conocimiento del modelo: El Prompt Engineer debe tener un buen conocimiento de las capacidades y limitaciones del modelo, y ser capaz de diseñar prompts que estén dentro de las capacidades del modelo.
  3. Creatividad: El Prompt Engineer debe ser capaz de diseñar estímulos creativos y variados que animen al modelo a generar resultados interesantes y variados.
  4. Claridad y concisión: El Prompt Engineer debe ser capaz de diseñar instrucciones claras y concisas, que faciliten al modelo la comprensión de la tarea y el seguimiento de la misma.
  5. Capacidad para probar y evaluar: El Prompt Engineer debe ser capaz de probar y evaluar los resultados del modelo, y utilizar esa información para mejorar las instrucciones y el rendimiento del modelo.
  6. Mejora continua: El Prompt Engineer debe supervisar y mejorar continuamente el rendimiento de los prompts y ajustarlos según sea necesario.
  7. Familiaridadcon el sesgo de los datos: El Prompt Engineer debe ser consciente de los posibles sesgos de los datos de entrenamiento y diseñar instrucciones que los minimicen.
  8. Colaboración: El Prompt Engineer debe ser capaz de trabajar en colaboración con otros miembros del equipo, como científicos de datos, ingenieros y gestores de productos.
  9. Habilidades técnicas: El Prompt Engineer debe tener un buen conocimiento del aprendizaje automático, el procesamiento del lenguaje natural y las tecnologías relacionadas, así como conocimientos de programación.
  10. Estar al día enel campo: El Prompt Engineer debe mantenerse al día de los últimos avances en el campo y ser capaz de aplicar esos conocimientos a su trabajo.

Requisitos previos para ser Prompt Engineer

El conocimiento de la arquitectura del LLM es un prerrequisito para los Prompt Engineers porque proporciona una comprensión básica de la estructura y función subyacentes del modelo de lenguaje, que es crucial para crear prompts eficaces.

También es importanteaclarar los problemas ambiguos e identificar los principios básicos que pueden traducirse a través de los escenarios, porque permite al ingeniero definir claramente la tarea que tiene entre manos y desarrollar prompts que puedan adaptarse fácilmente a diferentes contextos.

Crear principios básicosque puedan traducirse a través de los escenarios es esencial para crear prompts consistentes y coherentes que puedan utilizarse en múltiples situaciones.

Las instrucciones bien elaboradas son la última pieza del rompecabezas, ya que son la herramienta que el ingeniero utiliza para comunicar la tarea al modelo lingüístico y guiar su resultado.

En conjunto, estas habilidades y conocimientos permiten al Prompt Engineer crear instrucciones eficaces y eficientes que pueden utilizarse para entrenar y mejorar el rendimiento del modelo lingüístico.

1. Gran conocimiento de la arquitectura del modelo lingüístico

GPT-3(Generative Pre-trained Transformer 3) es una arquitectura de red neuronal profunda basada en la arquitectura de transformador introducida en el artículo «Attention Is All You Need» La arquitectura está diseñada para manejar datos secuenciales como el texto, y se compone de un codificador y un decodificador.

El codificador toma el texto de entrada y lo convierte en una representación vectorial continua, también conocida como incrustación. El codificador está formado por varias capas de autoatención y capas totalmente conectadas. El mecanismo de autoatención se utiliza para calcular puntuaciones de atención para cada palabra del texto de entrada, que representan la importancia de cada palabra en relación con todas las demás. Esto permite al modelo comprender el contexto del texto de entrada y las relaciones entre las palabras.

A continuación, el descodificador genera el texto de salida, utilizando también múltiples capas de autoatención y capas totalmente conectadas. El descodificador toma como entrada la representación vectorial continua del codificador, así como la palabra generada anteriormente, y genera la siguiente palabra de la secuencia.

La arquitectura del transformador en GPT-3 se compone de varias capas, cada una de ellas formada por dos subcapas: un mecanismo de autoatención multicabezal y una red neuronal feedforward totalmente conectada. El mecanismo de autoatención multicabezal permite al modelo atender a distintas partes de la secuencia de entrada en distintas posiciones. La red neuronal directa se utiliza para procesar la información del mecanismo de autoatención.

GPT-3 tiene 175.000 millones de parámetros, lo que lo convierte en uno de los mayores modelos lingüísticos hasta la fecha. Se ha entrenado con una enorme cantidad de datos de texto, como libros, artículos y sitios web, y es capaz de generar texto similar al humano, responder a preguntas y realizar otras tareas lingüísticas. Sin embargo, es importante señalar que GPT-3 sigue necesitando muchos recursos informáticos para el entrenamiento y la inferencia, y sus datos de entrenamiento suelen estar sesgados.

¿Difieren las técnicas de incitación entre GPT-3, ChatGPT, DALL-E y Midjourney?

Las técnicas de prompt pueden variar entre los distintos modelos lingüísticos de gran tamaño, como GPT-3, DALL-E/Midjourney y ChatGPT.

GPT-3 utiliza una combinación de aprendizaje no supervisado y supervisado, donde se entrena con un gran corpus de datos de texto y se afina en tareas específicas. GPT-3 es capaz de generar texto similar al humano, responder a preguntas y realizar otras tareas lingüísticas, pero también se sabe que genera resultados sesgados o irrelevantes.

DALL-E y Midjourney son modelos que generan imágenes a partir de mensajes de texto. El entrenamiento de DALL-E/Midjourney se basa en un conjunto de datos de imágenes y sus leyendas asociadas, lo que les permite generar imágenes a partir de un texto. DALL-E/Midjourney son capaces de generar una amplia gama de imágenes, desde fotorrealistas hasta abstractas.

ChatGPT es un modelo de lenguaje conversacional entrenado con datos conversacionales y diseñado específicamente para generar texto similar al humano en un entorno de conversación. Se ha perfeccionado en tareas conversacionales como responder preguntas, completar textos y otras.

Las técnicas de prompt de estos modelos varían en función de la tarea específica para la que están diseñados, el tipo de datos con los que se entrenan y la arquitectura específica que emplean.

  • GPT-3 es excelente generando texto similar al humano y realizando tareas lingüísticas
  • DALL-E/Midjourney generan imágenes
  • ChatGPT está orientado a tareas conversacionales

2. Aclarar los problemas ambiguos e identificar los principios básicos que pueden traducirse en distintos escenarios

He aquí algunas de las mejores prácticas para aclarar problemas ambiguos

  1. Define claramente el problema: Define claramente el problema y sus objetivos. Asegúrate de que todas las personas implicadas en el proceso de resolución de problemas comprenden el problema y lo que hay que conseguir.
  2. Divideel problema en partes más pequeñas: Divide el problema en partes más pequeñas y manejables. Esto facilitará la comprensión y la resolución del problema.
  3. Reúnetoda la información relevante: Reúne toda la información y los datos relevantes relacionados con el problema. Asegúrate de que todos los implicados en el proceso de resolución del problema tienen acceso a la misma información.
  4. Identifica a las partes interesadas clave: Identifica a las partes interesadas clave afectadas por el problema e involúcralas en el proceso de resolución del problema.
  5. Fomenta la creatividad y la diversidad de perspectivas: Fomenta la creatividad y la diversidad de perspectivas a la hora de resolver el problema. Las distintas perspectivas pueden ayudar a identificar nuevas soluciones y a superar obstáculos.
  6. Utiliza un método estructurado de resolución de problemas: Utiliza un método estructurado de resolución de problemas, como el método científico o el proceso DMAIC de Seis Sigma, para guiar el proceso de resolución de problemas.
  7. Evalúay adapta continuamente: Evalúa y adapta continuamente el proceso de resolución de problemas a medida que dispongas de nueva información o cambie la situación.

3. Crear principios básicos que puedan traducirse entre escenarios

Los principios básicos que pueden trasladarse a distintos escenarios son

  1. Comprender el problema: Comprender claramente el problema y sus objetivos
  2. Descomponerlo: Descomponer el problema en partes más pequeñas y manejables
  3. Reunir información: Reúne toda la información y los datos pertinentes relacionados con el problema
  4. Identifica a las partes interesadas: Identifica a las partes interesadas clave que se ven afectadas por el problema e involúcralas en el proceso de resolución del problema
  5. Fomentar la diversidad: Fomenta la creatividad y las diversas perspectivas a la hora de resolver el problema
  6. Utiliza un método estructurado: Utiliza un método estructurado de resolución de problemas para guiar el proceso
  7. Evaluar continuamente: Evalúa y adapta continuamente el proceso de resolución de problemas a medida que dispongas de nueva información o cambie la situación
  8. Comunícate eficazmente: Comunícate eficazmente con todas las partes interesadas y mantenlas informadas de los progresos y de los cambios realizados
  9. Mantén la sencillez: Haz que el proceso de resolución de problemas sea sencillo y evita utilizar jerga o un lenguaje demasiado complejo
  10. flexible: Sé flexible y abierto a nuevas ideas y enfoques, no tengas miedo de pivotar si una solución no funciona.

Siguiendo estos principios básicos, es posible aclarar los problemas ambiguos y llegar a soluciones precisas, eficaces y eficientes.

4. Sugerencias bien elaboradas

¿En qué consiste un prompt bien elaborado?

Una instrucción bien elaborada para un gran modelo lingüístico es clara, específica y bien definida. Debe proporcionar al modelo información y contexto suficientes para comprender la tarea y generar resultados relevantes y precisos.

Una indicación clara y concisa facilita al modelo la comprensión de la tarea y el seguimiento de la misma. Por ejemplo, una indicación como «Escribe una historia corta sobre un narval mágico» es clara y específica, y proporciona al modelo un objetivo claro por el que trabajar.

Una indicación bien definida también proporciona al modelo el contexto y la información suficientes para generar resultados precisos y relevantes. Por ejemplo, una pregunta como «Explica el argumento de Bostrom sobre la simulación en términos sencillos» proporciona al modelo el tema específico y el público objetivo, lo que le ayuda a generar una explicación fácil de entender para los no expertos.

Además, una gran instrucción también anima al modelo a ser creativo y generar resultados variados. Por ejemplo, una indicación como «Genera un poema sobre la IA comiendo Software» anima al modelo a idear diferentes estilos de poemas y diferentes formas de expresar el tema.

Los 10 mejores consejos para obtener comportamientos complejos a partir de una serie de indicaciones bien elaboradas

  1. Sé específico y claro: Proporciona al modelo un objetivo o una tarea clara y específica por la que trabajar. Esto facilitará que el modelo entienda lo que buscas y genere resultados más relevantes.
  2. Proporciona suficiente contexto: Asegúrate de proporcionar al modelo suficiente contexto e información para generar resultados precisos y relevantes. Por ejemplo, si le pides al modelo que genere un texto sobre un tema concreto, proporciónale información y recursos sobre ese tema.
  3. Utiliza varias indicaciones: Utiliza una serie de indicaciones bien elaboradas para guiar al modelo a través de una tarea compleja, en lugar de una sola indicación. Esto te permite dividir la tarea en pasos más pequeños y manejables.
  4. Fomenta la creatividad: Anima al modelo a ser creativo y a generar resultados variados. Por ejemplo, si le pides al modelo que genere un texto, no lo limites a un estilo o formato de escritura concreto.
  5. Utiliza restricciones: Utiliza restricciones para guiar la salida del modelo. Por ejemplo, puedes utilizar restricciones como la longitud, la gramática y el vocabulario para asegurarte de que el resultado es relevante y adecuado.
  6. Utiliza un conjunto de datos de entrenamiento diverso: Utiliza un conjunto de datos de entrenamiento diverso para ayudar al modelo a comprender diferentes perspectivas, culturas y estilos de escritura. Esto ayudará al modelo a generar resultados más variados y matizados.
  7. Pruebael modelo con distintas entradas: Prueba el modelo con diferentes entradas e indicaciones para ver cómo se comporta e identificar posibles problemas.
  8. Utiliza la evaluación humana: Utiliza la evaluación humana para determinar la calidad de los resultados del modelo e identificar áreas de mejora.
  9. Utiliza el aprendizaje activo: Utiliza el aprendizaje activo para ajustar el modelo y mejorar su rendimiento en una tarea concreta.
  10. Experimentacon diferentes arquitecturas: Experimenta con distintas arquitecturas e hiperparámetros para ver cómo afectan al rendimiento del modelo.

La eficacia de estos consejos depende de la tarea y del modelo, por lo que es importante experimentar y probar distintos enfoques.

¿Qué depara el futuro a los Ingenieros de Prompts?

Es difícil predecir con exactitud cómo evolucionará el mercado laboral en los próximos cinco años, pero es probable que el papel de un ingeniero de prompts siga teniendo demanda a medida que se generalice el uso de grandes modelos lingüísticos en diversos sectores. Con el creciente interés y desarrollo del procesamiento del lenguaje natural, el aprendizaje automático y la inteligencia artificial, hay una necesidad cada vez mayor de expertos capaces de diseñar y elaborar prompts que puedan aprovechar la potencia de estos modelos para resolver problemas del mundo real.

Los grandes modelos lingüísticos tienen una amplia gama de aplicaciones, desde la creación de contenidos al servicio al cliente, y se espera que esto siga creciendo. En consecuencia, seguirá habiendo necesidad de expertos que puedan diseñar y elaborar indicaciones adaptadas a la tarea o aplicación concretas. Además, a medida que los modelos se vuelvan más sofisticados, habrá una mayor necesidad de expertos que puedan afinarlos y mejorar su rendimiento.

Los ingenieros de instrucciones tendrán que mantenerse al día de los últimos avances en este campo y ser capaces de aplicar esos conocimientos a su trabajo. A medida que los modelos se desplieguen en más ámbitos, aumentará la necesidad de transparencia y responsabilidad, lo que hará aún más importante el papel del ingeniero rápido.

En conclusión, aunque es difícil predecir la forma exacta del mercado laboral dentro de cinco años, es probable que la función de ingeniero de prompts siga teniendo demanda a medida que se generalice el uso de grandes modelos lingüísticos.

Cómo convertirse en ingeniero de prompts

Las empresas y organizaciones necesitarán con toda seguridad crear y adoptar sistemas de IA en un futuro próximo para aumentar la eficiencia, reducir costes y mejorar los servicios. A medida que la IA se vuelva más sofisticada y se integre en diversos procesos y sistemas, es casi seguro que habrá demanda de ingenieros especializados que puedan interactuar de forma eficiente y eficaz con estos sistemas y mejorar el rendimiento de la producción en términos de precisión, relevancia, creatividad y originalidad del material generado. Una carrera como Ingeniero Prompt puede ofrecer perspectivas de progreso, innovación y contribución en el ámbito de la inteligencia artificial y la automatización.

Convertirse en un Ingeniero de Inteligencia Artificial implica una combinación de habilidades duras, como el conocimiento de algoritmos y la ingeniería de software, así como habilidades blandas, como la comunicación creativa y eficaz y la resolución de problemas.

Pasos para trabajar como Prompt Engineer

  1. Entender qué hace un Prompt Engineer – Un Prompt Engineer descubre tareas y documenta las mejores prácticas para una variedad de tareas relevantes para los clientes. Construyen una biblioteca de prompts y tutoriales de alta calidad para ayudar a los usuarios a buscar el que satisfaga sus necesidades.
  2. No se requiere ningún título universitario específico – No se requiere ningún título universitario específico para ser Prompt Engineer, lo que la convierte en una carrera nueva y accesible.
  3. Aprender el lenguaje de la IA – La ingeniería de instrucciones implica decirle a la IA lo que tiene que hacer utilizando un lenguaje específico que la IA entienda.
  4. Seguir los avances del sector: Mantenerse al día de las innovaciones en IA y diseño y buscar formas de aplicarlas al trabajo.
  5. Las preguntas de alta calidad conducen a respuestas de alta calidad – La primera regla de la «prompt engineering» es que las preguntas de alta calidad conducen a respuestas de alta calidad, y viceversa.
  6. Dar instrucciones a la IA o asignarle un papel – Una forma de alimentar a la IA con información es dándole instrucciones o diciéndole lo que tiene que hacer. Otra forma es asignar un papel a la IA antes de darle instrucciones.
  7. Utilizar el método de la Cadena de Pensamiento – El método de la Cadena de Pensamiento, o Cot prompting, anima a la IA a explicar su razonamiento.
  8. Practicar y experimentar con distintos métodos – Combinar distintos principios de incitación y experimentar con varios métodos puede conducir a los mejores resultados como ingeniero de prompts.
  9. Networking. Relacionarse con especialistas en IA, diseñadores y otros profesionales de TI para aprender más y conocer a posibles clientes y socios.

Reflexiones finales

La función del ingeniero de prompts es fundamental en la creación de sistemas lingüísticos y generativos de IA. Es el encargado de diseñar y gestionar los prompts que impulsan el rendimiento de la IA, y debe poseer una mezcla única de talento técnico y creativo para prosperar en este sector especializado.

Un ingeniero de prompts desempeñará un papel importante en los equipos de IA generativa, además de ser un asesor para los usuarios finales de los sistemas de IA generativa.

PREGUNTAS FRECUENTES

¿Qué es la prompt engineering en PNL?

En la prompt engineering, la PNL se utiliza para procesar y comprender las entradas de lenguaje natural de los usuarios, mientras que los algoritmos de ML se utilizan para entrenar a los chatbots y asistentes virtuales para que respondan de forma significativa a esas entradas.

¿Qué es la prompt engineering en la IA?

La prompt engineering es un concepto de la inteligencia artificial, en particular del procesamiento del lenguaje natural (PLN). En la ingeniería de instrucciones, la descripción de la tarea se incluye en la entrada, por ejemplo, como una pregunta, en lugar de estar implícita.

¿Qué es el prompt GPT 3?

Alimentas a GPT-3 con una petición -escrita en inglés sencillo, no en código- e imprime su predicción de las palabras que deberían escribirse después de esa petición. El prompt es literalmente sólo una petición escrita en lenguaje normal y natural, pidiéndole lo que quiere que haga.

¿Sustituirá la GPT-3 a los desarrolladores?

Conclusión. Como vimos en el artículo sobre si ChatGPT reemplazaría a los programadores, ChatGPT no va a sustituir a los programadores. Aunque pueda automatizar algunas tareas, hay muchas cosas que ChatGPT simplemente no puede hacer. Los programadores seguirán siendo necesarios para escribir código, depurar errores y gestionar proyectos de software.