Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
El rápido ritmo de innovación de la IA generativa promete cambiar nuestra forma de vivir y trabajar, pero cada vez es más difícil seguirle el ritmo. El número de artículos sobre IA publicados en arXiv crece exponencialmente, Stable Diffusion ha sido uno de los proyectos de código abierto de más rápido crecimiento de la historia, y el servidor Discord de la herramienta artística de IA Midjourney tiene decenas de millones de miembros, superando incluso a las mayores comunidades de jugadores. Lo que más cautivó la imaginación del público fue el lanzamiento de ChatGPT de OpenAI, que alcanzó los 100 millones de usuarios en dos meses, convirtiéndose en la aplicación de consumo de más rápido crecimiento de la historia. Aprender a trabajar con IA se ha convertido rápidamente en una de las habilidades más demandadas.
Cualquiera que utilice la IA profesionalmente aprende rápidamente que la calidad del resultado depende en gran medida de lo que proporciones como entrada. La disciplina de la ingeniería de prompts ha surgido como un conjunto de buenas prácticas para mejorar la fiabilidad, eficacia y precisión de los modelos de IA. "En diez años, la mitad de los empleos del mundo serán de ingeniería de prompts", afirma Robin Li, cofundador y director general del gigante tecnológico chino Baidu. Sin embargo, esperamos que la prontitud sea una habilidad requerida para muchos trabajos, similar al dominio de Microsoft Excel, más que un título de trabajo popular en sí mismo. Esta nueva ola de disrupción está cambiando todo lo que creíamos saber sobre los ordenadores. Estamos acostumbrados a escribir algoritmos que devuelven siempre el mismo resultado, pero no en el caso de la IA, donde las respuestas no son deterministas. El coste y la latencia vuelven a ser factores reales, después de décadas en las que la ley de Moore nos ha hecho confiar en la computación en tiempo real a un coste insignificante. El mayor obstáculo es la tendencia de estos modelos a inventar cosas con confianza, lo que se conoce como alucinación, que nos obliga a replantearnos la forma en que evaluamos la precisión de nuestro trabajo.
Llevamos trabajando con la IA generativa desde la beta de GPT-3 en 2020, y a medida que veíamos progresar los modelos, muchos de los primeros trucos y hacks de incitación dejaron de ser necesarios. Con el tiempo surgió un conjunto coherente de principios que seguían siendo útiles con los modelos más recientes, y que funcionaban tanto en la generación de texto como de imágenes. Hemos escrito este libro basándonos en estos principios atemporales, ayudándote a aprender habilidades transferibles que seguirán siendo útiles pase lo que pase con la IA en los próximos cinco años. La clave para trabajar con IA no es "averiguar cómo hackear el prompt añadiendo una palabra mágica al final que cambie todo lo demás", como afirma Sam Altman, cofundador de OpenAI, sino que lo que siempre importará es la "calidad de las ideas y la comprensión de lo que quieres". Aunque no sabemos si dentro de cinco años lo llamaremos "ingeniería de prompts", trabajar eficazmente con la IA generativa será cada vez más importante.
Requisitos de software para este libro
Todo el código de este libro está en Python y se ha diseñado para ejecutarse en un cuaderno Jupyter o en un cuaderno Google Colab. Los conceptos que se enseñan en el libro son transferibles a JavaScript o a cualquier otro lenguaje de codificación si se prefiere, aunque el enfoque principal de este libro son las técnicas de apuntado más que las habilidades de codificación tradicionales. Todo el código se puede encontrar en GitHub, y enlazaremos a los cuadernos pertinentes a lo largo del libro. Es muy recomendable que utilices el repositorio de GitHub y ejecutes los ejemplos proporcionados mientras lees el libro.
Para los ejemplos que no sean de bloc de notas, puedes ejecutar el script con el formato python content/chapter_x/script.py
en tu terminal, donde x
es el número de capítulo y script.py
es el nombre del script. En algunos casos, las claves API deben establecerse como variables de entorno, y lo aclararemos. Los paquetes utilizados se actualizan con frecuencia, así que instala nuestro requirements.txt en un entorno virtual antes de ejecutar los ejemplos de código.
El archivo requirements.txt se genera para Python 3.9. Si quieres utilizar una versión diferente de Python, puedes generar un nuevo requirements.txt a partir de este archivo requirements.in que se encuentra en el repositorio de GitHub, ejecutando estos comandos:
`pip install pip-tools` `pip-compile requirements.in`
Para usuarios de Mac:
-
Abre Terminal: Puedes encontrar la aplicación Terminal en tu carpeta Aplicaciones, en Utilidades, o utilizar Spotlight para buscarla.
-
Navega hasta la carpeta de tu proyecto: Utiliza el comando
cd
para cambiar el directorio a la carpeta de tu proyecto. Por ejemplo:cd path/to/your/project
. -
Crea el entorno virtual: Utiliza el siguiente comando para crear un entorno virtual llamado
venv
(puedes ponerle cualquier nombre):python3 -m venv venv
. -
Activa el entorno virtual: Antes de instalar los paquetes, tienes que activar el entorno virtual. Hazlo con el comando
source venv/bin/activate
. -
Instala paquetes: Ahora que tu entorno virtual está activo, puedes instalar paquetes utilizando
pip
. Para instalar paquetes desde el archivo requirements.txt, utilizapip install -r requirements.txt
. -
Desactiva el entorno virtual: Cuando hayas terminado, puedes desactivar el entorno virtual escribiendo
deactivate
.
Para usuarios de Windows:
-
Abre el Símbolo del sistema: Puedes buscar
cmd
en el menú Inicio. -
Navega hasta la carpeta de tu proyecto: Utiliza el comando
cd
para cambiar el directorio a la carpeta de tu proyecto. Por ejemplo:cd path\to\your\project
. -
Crea el entorno virtual: Utiliza el siguiente comando para crear un entorno virtual llamado
venv
:python -m venv venv
. -
Activa el entorno virtual: Para activar el entorno virtual en Windows, utiliza
.\venv\Scripts\activate
. -
Instala los paquetes: Con el entorno virtual activo, instala los paquetes necesarios:
pip install -r requirements.txt
. -
Desactiva el entorno virtual: Para salir del entorno virtual, simplemente escribe:
deactivate
.
Aquí tienes algunos consejos adicionales sobre la configuración:
-
Asegúrate siempre de que tu Python está actualizado para evitar problemas de compatibilidad.
-
Recuerda activar tu entorno virtual siempre que trabajes en el proyecto.
-
El archivo requirements.txt debe estar en el mismo directorio en el que creas tu entorno virtual, o debes especificar la ruta a él cuando utilices
pip install -r
.
Se presupone el acceso a una cuenta de desarrollador de OpenAI, ya que tu OPENAI_API_KEY
debe establecerse como variable de entorno en cualquier ejemplo que importe la biblioteca OpenAI, para la que utilizamos la versión 1.0. Puedes encontrar instrucciones rápidas para configurar tu entorno de desarrollo en la documentación de OpenAI en su sitio web.
También debes asegurarte de que la facturación está activada en tu cuenta de OpenAI y de que tienes un método de pago válido para ejecutar algunos de los códigos del libro. Los ejemplos del libro utilizan GPT-4 cuando no se indica, aunque cubrimos brevemente el modelo competidor Claude 3 de Anthropic, así como Llama 3 de código abierto de Meta y Google Gemini.
Para la generación de imágenes utilizamos Midjourney, para el que necesitas una cuenta de Discord para registrarte, aunque estos principios se aplican igualmente a DALL-E 3 (disponible con una suscripción ChatGPT Plus o a través de la API) o a Stable Diffusion (disponible como API o puede ejecutarse localmente en tu ordenador si tiene GPU). Los ejemplos de generación de imágenes de este libro utilizan Midjourney v6, Stable Diffusion v1.5 (ya que muchas extensiones siguen siendo sólo compatibles con esta versión) o Stable Diffusion XL, y especificamos las diferencias cuando esto es importante.
Proporcionamos ejemplos utilizando bibliotecas de código abierto siempre que es posible, aunque incluimos proveedores comerciales cuando procede; por ejemplo, el Capítulo 5 sobre bases de datos vectoriales muestra tanto FAISS (una biblioteca de código abierto) como Pinecone (un proveedor de pago). Los ejemplos mostrados en el libro deberían ser fácilmente modificables para modelos y proveedores alternativos, y las habilidades enseñadas son transferibles. El Capítulo 4 sobre generación avanzada de texto se centra en el marco LLM LangChain, y el Capítulo 9 sobre generación avanzada de imágenes se basa en la interfaz web de código abierto Stable Diffusion de AUTOMATIC1111.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
A lo largo del libro reforzamos lo que llamamos los Cinco Principios de la Estimulación, identificando qué principio es más aplicable al ejemplo en cuestión. Puedes consultar el Capítulo 1, que describe los principios en detalle.
Nombre principal
Esto explicará cómo se aplica el principio al ejemplo o sección de texto actual.
Utilizar ejemplos de código
Puedes descargarte material complementario (ejemplos de código, ejercicios, etc.) en https://oreil.ly/prompt-engineering-for-generative-ai.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Ingeniería de prompts para la IA Generativa " de James Phoenix y Mike Taylor (O'Reilly). Copyright 2024 Saxifrage, LLC y Just Understanding Data LTD, 978-1-098-15343-4".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita https://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-889-8969 (en Estados Unidos o Canadá)
- 707-827-7019 (internacional o local)
- 707-829-0104 (fax)
- support@oreilly.com
- https://www.oreilly.com/about/contact.html
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en https://oreil.ly/prompt-engineering-generativeAI.
Para noticias e información sobre nuestros libros y cursos, visita https://oreilly.com.
Encuéntranos en LinkedIn: https://linkedin.com/company/oreilly-media.
Míranos en YouTube: https://youtube.com/oreillymedia.
Agradecimientos
Nos gustaría dar las gracias a las siguientes personas por su contribución en la revisión técnica del libro y su paciencia en la corrección de un objetivo en rápido movimiento:
-
Mayo Oshin, antiguo colaborador de LangChain y fundador de SeinnAI Analytics
-
Ellis Crosby, fundador de Scarlett Panda y de la agencia de IA Incremen.to
-
Dave Pawson, autor de XSL-FO en O'Reilly
-
Mark Phoenix, ingeniero superior de software
-
Aditya Goel, consultor de GenAI
-
Sanyam Kumar, Director Asociado, Ciencia de Datos, Genmab
-
Lakshmanan Sethu, TAM, Gen AI Solutions, Google
-
Janit Anjaria, TLM de plantilla, Aurora Innovation Inc.
También agradecemos a nuestras familias su paciencia y comprensión, y queremos asegurarles que seguimos prefiriendo hablar con ellas por ChatGPT.
Get Ingeniería Prompt para la IA Generativa now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.