- Un desarrollador aprendiendo IA
- Posts
- #2 Prompt engineering para desarrolladores
#2 Prompt engineering para desarrolladores
Todo lo que necesitas saber
Breve intro. Algunos ejemplos
El prompt engineering es una disciplina relativamente nueva enfocada en potenciar el uso de modelos de lenguaje basados en IA y permitir diseñar y optimizar esos prompts (frases que se utilizan de entrada a los modelos de lenguaje) para obtener resultados adecuados. Ayudan a comprender mejor las capacidades y limitaciones de los LLMs (*Large Language Models*) para mejorar su capacidad en una amplia gama de tareas comunes y complejas, como la respuesta a preguntas, el razonamiento aritmético, etc.
Por ejemplo, imaginemos que queremos que uno de los LLMs realice un escriba un poema sobre OpenAI.
Un posible prompt podría ser:
Write a poem about OpenAI.
Pero un prompt mucho mejor sería el siguiente:
Write a short inspiring poem about OpenAI, focusing on the recent DALL-E product launch (DALL-E is a text to image ML model) in the style of a {famous poet}
Todo estos tipos de prompts se pueden embeber en nuestras aplicaciones, así que es muy importante para los desarrolladores tener un conocimiento de cómo funcionan.
Incluso porque nos permiten que nuestras aplicaciones utilicen mucho esa información de manera mucho más efectiva, por ejemplo, formateando el resultado en json para poder ser reutilizado de una manera mejor como en el siguiente:
delimiter = "####"
system_message = f"""
You will be provided with customer service queries. \
The customer service query will be delimited with \{delimiter} characters.
Classify each query into a primary category \
and a secondary category.
Provide your output in json format with the \
keys: primary and secondary.
Hay múltiples recomendaciones y técnicas para hacer que los LLMs produzcan resultados de mejor calidad para nuestras aplicaciones, por lo que hoy os traemos dos cursos gratuitos, directos y sencillos, sobre introducción al prompt engineering para desarrolladores (link a la sección) y prompt engineering junto a la API de ChatGPT para utilizarlo en vuestro código (link a la sección).
Al final, para que veáis como se mueve el mundo alrededor de prompt engineering, unos enlaces a puestos de trabajo en este área y los salarios que se mueve
Curso corto (1-2h): ChatGPT Prompt Engineering for Developers
Un curso ofrecido por DeepLearning.ai con OpenAI. Dirigido por Andrew Ng, uno de los gurús del deep learning. Python, nivel básico. Aunque dice que es 1h aprox., diría que jugando con los ejemplos te puede llevar a 2h. Tiene subtítulos.
Isa Fulford y Andrew Ng en la presentación del curso
En ChatGPT Prompt Engineering for Developers muestran los detalles básicos del funcionamiento práctico de un LLM para crear aplicaciones. Con la API de OpenAI y el modelo GPT, se focalizan en explicar cómo funcionan los LLM a alto nivel, explican las mejores prácticas para la prompt engineering y la utilización de la API para una serie de tareas, que incluyen:
Resumir (por ejemplo, resumir las reseñas de los usuarios por razones de brevedad)
Inferir (p. ej., clasificación de opiniones, extracción de temas)
Transformación de texto (p. ej., traducción, corrección ortográfica y gramatical)
Expansión (por ejemplo, escribir automáticamente correos electrónicos)
Además, está muy enfocado a que entendamos dos principios clave para escribir prompts efectivos:
Principio 1: Escribir instrucciones sencillas y claras
Principio 2: Darle al modelo tiempo para pensar
Todos los conceptos se ilustran con numerosos ejemplos, con los que puede jugar directamente en un entorno de notebook Jupyter sin tener que instalar nada.
Curso corto (1-2h): Building Systems with the ChatGPT API
Un curso ofrecido por DeepLearning.ai con OpenAI. Dirigido por Andrew Ng, uno de los gurús del deep learning. Python, nivel básico. Aunque dice que es 1h aprox., diría que jugando con los ejemplos te puede llevar a 2h. Tiene subtítulos.
Isa Fulford y Andrew Ng en la presentación del curso
Building Systems With The ChatGPT API extiende los aprendizajes del curso anterior, orientado a la creación y automatización de flujos de trabajo complejos mediante llamadas en cadena a un modelo de lenguaje.
Durante la sesión, se focaliza en un sistema paso a paso que permite clarificar como funcionan algunos aspectos importantes:
Como los prompts pueden interactuar, la respuestas del modelo (llamadas completion) se utilizan en las entradas de los siguientes pasos.
Cómo se puede implementar tareas completas que requieren distintos flujos y la combinación dinámica en los prompts con más información mediate python.
De nuevo, está totalmente orientado a aplicar el conocimiento en escenarios prácticos, por ejemplo:
La clasificación de las consultas de los usuarios según la respuesta de un agente atención al cliente
La evaluación de las consultas de los usuarios comprobando criterios de calidad y seguridad en la respuesta (usando la Moderation API de OpenAI).
El procesamiento que necesite tareas de razonamiento en múltiples pasos (utilizando el mecanismo chain-of-though prompting).
Los ejemplos prácticos hacen que cada concepto sea fácil de entender. Los cuadernos Jupyter integrados le permiten experimentar sin problemas con el código y las indicaciones presentadas en el curso.
Puestos de trabajo en Prompt Engineering
Algunos ejemplos, existe demanda en todas las partes del mundo:
Prompt Engineer en Dameprompts, España
Prompt Engineer en ShyftLabs, Canada
Prompt Engineer en Ehrhardt, Germany
Otros recursos
Por último, los cursos dan un contexto amplio de cómo cualquier aplicación puede beneficiarse de los LLMs y del prompt engineering. Sin embargo, existen ejemplos de múltiples prompts, recomendaciones y buenas prácticas que permiten ir mucho más allá y sacar las mejores respuestas de los modelos.
Estos son algunas sugerencias para quien quiera leer un poco más:
Prompt engineering del OpenAI Help Center.
Aunque también hay muchas más información sobre otros temas, en el OpenAI Cookbook hay muchos ejemplos de prompt engineering
Prompting Engineering Guide, del grupo DAIR.AI enlazado con su Github con todos los ejemplos
En la red hay infinitos ejemplos de prompts para todas las posibles aplicaciones. Si tienes algo en mente, recomiendo echar un vistazo antes de nada
Espero que hayas disfrutado de este post. Recomienda la newsletter y subscríbete.
Nos vemos en el siguiente. #