Llegamos a ustedes gracias a:



Reportajes y análisis

Cómo empezar con la prompt engineering

[28/09/2023] La inteligencia artificial generativa está en sus inicios, pero ya amenaza con trastocar trayectorias profesionales e industrias enteras. Si bien el arte de la inteligencia artificial y la generación de texto están recibiendo una atención generalizada considerable, los desarrolladores de software tienden a estar más interesados en modelos de lenguaje grandes (LLMs, por sus siglas en inglés) como ChatGPT y GitHub Copilot. Estas herramientas pueden ayudar a los desarrolladores a escribir código de manera más eficiente mediante consultas en lenguaje natural.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Si ha pasado, aunque sea unos minutos, jugando con versiones públicas de herramientas de inteligencia artificial generativa, estará familiarizado con el tipo de información que puede brindarles para producir resultados. Pero no todas las consultas son iguales. Aprender a crear indicaciones de inteligencia artificial para obtener los mejores resultados lo más rápido posible se está convirtiendo rápidamente en una habilidad comercializable, conocida como prompt engineering o ingeniería de peticiones.

¿Qué es prompt engineering?

La prompt engineering es "el arte y la ciencia de comunicar con precisión sus requerimientos a una herramienta de inteligencia artificial generativa, afirma Mike King, CMO de AIPRM, una herramienta de gestión de avisos y biblioteca de avisos impulsada por la comunidad. "Piense en ello como el traductor entre la intención humana y el resultado de la máquina. Y como cualquier traducción, requiere una comprensión profunda de ambos lados de la conversación.

"La prompt engineering requiere un gran dominio del lenguaje, buenas habilidades de pensamiento lateral y comprensión de la tecnología subyacente, añade Richard Batt, consultor de inteligencia artificial en el Reino Unido, que ofrece prompt engineering como uno de sus servicios. "Puede parecer muy simple cuando lo intenta por primera vez, pero obtener una respuesta de calidad constante para solicitudes complejas puede ser mucho más difícil de lo que parece.

Hablamos con profesionales de este campo de rápido crecimiento para conocer las oportunidades para aquellos interesados en la prompt engineering y cómo pueden aprender los trucos del oficio y demostrar su valía ante clientes y empleadores potenciales. Si bien una inmersión profunda en la prompt engineering está más allá del alcance de este artículo, concluiremos con un ejemplo que demuestra algo de lo que implica escribir consultas efectivas.

Cómo convertirse en un ingeniero de prompts

Joseph Reeve dirigió un equipo de personas que trabajaban en funciones que requieren prompt engineering en Amplitude, un proveedor de software de análisis de productos. También ha creado herramientas internas para facilitar el trabajo con LLMs. Eso lo convierte en un profesional experimentado en este espacio emergente. Como él señala, "lo mejor de los LLM es que básicamente no hay ningún obstáculo para comenzar -¡si es que sabe escribir!. Si desea evaluar los rápidos consejos de prompt engineering de alguien, es fácil probar sus consultas en el LLM de su elección. Del mismo modo, si usted ofrece servicios de prompt engineering, puede estar seguro de que sus empleadores o clientes utilizarán un LLM para verificar sus resultados.

Por lo tanto, la pregunta de cómo aprender sobre prompt engineering -y promocionarse como ingeniero prompt- no tiene una respuesta simple y establecida, al menos no todavía. "Definitivamente estamos en el período del 'viejo oeste', afirma King del AIPRM. "La prompt engineering significa muchas cosas para diferentes personas. Para algunos, es solo escribir indicaciones. Para otros, es ajustar y configurar los LLMs y escribir indicaciones. De hecho, no existen reglas formales, pero están surgiendo mejores prácticas como las mega indicaciones o mega prompts.

Si bien los cursos formales de prompt engineering están comenzando a surgir de proveedores como DeepLearning.ai, la mayoría de los desarrolladores adoptarán un enfoque dirigido autónomamente para aprender y mejorar habilidades de prompt engineering. Richárd Hruby, CTO de la nueva compañía de inteligencia artificial generativa, CYQIQ, presenta una estrategia tripartita para aprender sobre prompt engineering:

  1. Aprenda sobre arquitecturas modelo.
  2. Inténtelo, falle, aprenda y vuelve a intentarlo.
  3. Pase tiempo en Twitter, Reddit, Discord y otras redes sociales.

Tomémonos un minuto para considerar cada uno de estos puntos en detalle.

Conozca sus grandes modelos de lenguaje: Si bien algunos aspectos de cómo funcionan los LLM específicos son propietarios, gran parte de la teoría y la investigación están disponibles públicamente. Familiarizarse con lo que sucede tras bambalinas evitará que se sacuda demasiado. "Si bien las implementaciones específicas pueden diferir, todos los LLM se basan en los mismos conceptos y capas fundamentales, que incluyen tokenizadores, capas de incrustación y capas de transformadores, afirma Andrew Vasilyev, desarrollador senior de software que trabaja en prompts para un asistente de inteligencia artificial en ReSharper de JetBrains. "Comprender estos conceptos es crucial para reconocer las limitaciones de los LLMs y las tareas que pueden realizar de manera eficiente. Ver un LLM simplemente como una caja negra puede llevar a una sobreestimación de sus capacidades.

Randall Hunt, vicepresidente de Estrategia y Soluciones en la Nube de Caylent, ha estudiado por dentro y fuera la prompt engineering mediante la experimentación formal, e informal, como parte del uso de modelos de inteligencia artificial en su empresa. Él aconseja a los posibles ingenieros de prompts que se mantengan al día con el estado actual de la investigación sobre LLMs. Al igual que Vasilyev, enfatiza la tokenización como clave para comprender cómo funcionan los LLM. "Estos modelos intentan predecir el siguiente token, por lo que es importante darles contexto en forma de tokens con los que trabajar, y es un acto de equilibrio entre la duración del mensaje y el rendimiento del mensaje. Agrega que es importante comprender las limitaciones de los modelos, incluido "el tamaño del contexto, las limitaciones del idioma y las de la persona.

Siga iterando: Una de las partes más interesantes de trabajar con inteligencia artificial generativa es que obtiene comentarios instantáneos. Eso significa que vale la pena tomarse el tiempo para modificar y experimentar con sus indicaciones, que es un proceso que puede ayudarle a mejorar sus habilidades. "Elaborar un mensaje nunca es un proceso de un solo intento, afirma Hruby de CYQIQ. "Probar y perfeccionar el mensaje varias veces es siempre el camino por seguir. A menudo, usted es la primera persona que intenta el mensaje para su caso de uso, por lo que la única manera de aprender a escribir mejores mensajes es experimentando.

Encuentre su comunidad en línea: Ya sea que esté perfeccionando su arte de prompt engineering para aumentar su productividad en el trabajo o en casa en su tiempo libre, todas las personas con las que hablamos enfatizaron que no tiene que hacerlo solo. Las comunidades de entusiastas abundan en varios subreddits, Discords y, por supuesto, en las conversaciones de Twitter.

Mostrar sus habilidades en ingeniería de prompts

En el mundo aún emergente de la prompt engineering, las comunidades en línea pueden cumplir un doble propósito. Al compartir lo que ha aprendido, puede construir su reputación en la comunidad, lo que puede generar oportunidades profesionales o de contratación. Expandir eso a otras redes sociales puede ayudarle a obtener una buena reputación.

"No hay ningún secreto en la comercialización de las habilidades", afirma King del AIPRM. "Participe en el liderazgo intelectual a través de blogs y vlogs, especialmente con videos de formato corto, ya que tienen la mayor propensión a volverse virales. Manténgase activo en los diversos mercados de la economía de los trabajos por encargo, porque hay muchas personas que no tienen la paciencia para construir y desarrollar sus habilidades de prompt engineering.

Muchas de las personas con las que hablamos también enfatizaron que uno debe seguir el ejemplo: hacer que sus indicaciones y herramientas basadas en inteligencia artificial estén disponibles para que los clientes potenciales las vean y para que otros aprendan de ellas. Nagendra Kumar, cofundador y director de tecnología de Gleen, una empresa de software inteligente de cuentas por pagar, insta a quienes perfeccionan sus habilidades de prompt engineering a "construir productos de 'juguete' con experiencias de extremo a extremo. La mejor manera es crear algunas aplicaciones donde sus solicitudes están instaladas previamente y los usuarios pueden jugar con ellas.

Y, por supuesto, nunca está mal abrir el código fuente de su trabajo o contribuir a proyectos de código abierto. "Cree un repositorio de prompts impresionantes y envíelos periódicamente allí. Muestre ejemplos con los casos de uso, afirma Kumar. Los proyectos de código abierto también ofrecen la oportunidad de aprender sobre el funcionamiento interno de diferentes LLMs. "Hay muchas herramientas LLM de código abierto en GitHub a las que les encantaría recibir contribuciones, afirma Reeve de Amplitude. "Busque un proyecto que crea que podría ser interesante y comience a encontrar rápidamente debilidades y sugiera mejoras.

La prompt engineering está evolucionando rápidamente

Una cosa que casi todas las personas con las que hablamos enfatizaron sobre la prompt engineering es que la disciplina aún es embrionaria y evoluciona rápidamente. "Creo que cualquiera que afirme ser un experto en este campo debería aclarar su afirmación con algo como: 'este es un campo que evoluciona rápidamente y el consejo que tiene sentido hoy puede no ser el mismo que el que tenga sentido dentro de seis meses', afirma Hunt de Caylent. "Incluso me atrevería a decir que todavía no hay verdaderos expertos en este espacio. A medida que los modelos crecen en contexto, se reducen los costos por token y mejoran el rendimiento, la asesoría en prompt engineering tendrá que adaptarse.

Una gran razón para esos cambios es que los modelos subyacentes siguen cambiando, esto debido a las grandes empresas de inteligencia artificial y proyectos de código abierto que entrenan constantemente a los LLM con más datos y refinan sus capacidades. "A medida que los modelos de inteligencia artificial y sus arquitecturas evolucionan -OpenAI lanza una nueva versión de GPT-4 cada cuatro a seis semanas- también deberían hacerlo las técnicas para crear prompts, afirma Hruby de CYQIQ, quien reitera que las comunidades en línea son un gran lugar para compartir conocimientos y observaciones sobre los cambios.

"Cada vez que las herramientas de inteligencia artificial generativa se actualizan o cambian (y lo hacen con frecuencia), la forma en que interpretan y responden a los prompts puede cambiar, añade King de AIPRM. "Este fenómeno, que llamamos 'deriva de prompts', puede ser a la vez fascinante y frustrante. Es como tener un Lamborghini, y un día usted se sube a él y el volante tiene un retraso en la respuesta después de que está acostumbrado a dar vueltas a cien millas por hora.

La prompt engineering puede sonar un poco a optimización de motores de búsqueda, otra área en la que los profesionales a veces tienen que luchar para tener en cuenta los cambios abruptos e inesperados del creador de una tecnología subyacente, cuyos intereses no siempre coinciden con los suyos. Sin embargo, Hruby de CYQIQ prevé un futuro en el que la relación entre los ingenieros de prompts y las empresas de inteligencia artificial sea más colaborativa que la que existe entre los talleres de SEO y Google, sobre todo porque nadie en el espacio LLM ha logrado un dominio monopolístico -al menos no todavía. "Los proveedores de modelos (tal vez, en parte, como un impulso de sus inversionistas) compartirán cada vez mejores prácticas sobre cómo los desarrolladores pueden sacar lo mejor de sus modelos, afirma Hruby. "Hasta ahora, no hay mucha comunicación oficial, sino más bien charlas de la comunidad sobre qué indicaciones funcionan mejor para cada modelo y versión. Pero esperaría más transparencia por parte de los proveedores en el futuro.

¿Cómo será el trabajo de la prompt engineering profesional en el corto y mediano plazo? Reeve, de Amplitude, describe cómo se puede integrar el desarrollo de la prompt engineering en un flujo de trabajo general en empresas como la suya. "Resulta que una buena prompt engineering es muy colaborativa y combina el conocimiento de expertos en campos específicos, ingenieros de datos e ingenieros de software, sostiene Reeve.

Cómo escribir indicaciones de inteligencia artificial efectivas

La prompt engineering es un proceso, añade Reeve. "A medida que descubre los tipos de prompts que funcionan bien, deberá volver a mezclarlos, dividirlos y fusionarlos para obtener resultados perfectos en todo momento. Él divide el proceso en cuatro fases: creación de prototipos, producción, internacionalización y pulido y optimización.

La fase de creación de prototipos consiste en experimentar para descubrir los tipos de datos con los que querrá aumentar sus prompts y qué son capaces de relacionar los distintos LLM con la tarea específica que está tratando de resolver. Esta etapa requiere, principalmente, conocimiento del problema que está tratando de resolver (por ejemplo, gerentes de producto) y los datos que están disponibles en su sistema (por ejemplo, ingenieros de datos).

En la fase de producción, lo que usted intenta principalmente es dividir la tarea en la menor cantidad de mensajes que se puedan ejecutar de manera confiable y conectar los mensajes a datos reales en el código de su aplicación. Esta etapa requiere habilidades de ingeniería tradicionales, habilidades de ingeniería de datos y outputs de la fase de creación de prototipos.

Para muchos proyectos, el soporte lingüístico es importante. Es durante la fase de internacionalización cuando debería considerar modificar el mensaje para generar los lenguajes requeridos. Dependiendo del modelo, esto probablemente será trivial, pero vale la pena contar con hablantes nativos para verificar el resultado.

La parte difícil comienza en la fase de pulido y optimización. Pulir sus indicaciones para exprimir hasta la última ganancia marginal del LLM es actualmente una tarea infinita. Los modelos de OpenAI cambian constantemente, por lo que deberá volver periódicamente para asegurarse de que las indicaciones sigan funcionando bien; es posible que desee crear algunas pruebas unitarias para hacerlo más fácil. Esta fase implica modificar el texto y los datos pasados al mensaje y medir la calidad de los resultados a lo largo del tiempo. Requiere conocimiento específico del área problemática y, a veces, algo de ingeniería de software. Tanto el costo como la velocidad están directamente relacionados con la cantidad de tokens que entran y salen de un LLM, lo que significa que usted querrá que el mensaje de entrada (incluidos los datos) y el formato de salida sean lo más concisos posible. El costo también difiere entre los LLM, por lo que las decisiones tempranas pueden tener un gran impacto aquí.

Un ejemplo de prompt engineering

Si bien un curso completo sobre prompt engineering está más allá del alcance de este artículo, concluiremos con algunos consejos y un ejemplo de ingeniería de prompts de Nagendra Kumar de Gleen, que muestra el trabajo y el proceso de pensamiento necesarios para elaborar un prompt útil y eficiente.

Kumar ofreció los siguientes consejos para una excelente prompt engineering en el contexto del desarrollo de software:

  • Proporcione tareas concretas una a la vez: divida su mensaje en tareas discretas.
  • Agregue más contexto: antes de comenzar la pregunta real, agregue contexto en los detalles y especifique el papel que desempeñará la inteligencia artificial.
  • Proporcione el contenido con un separador claro: aclare las partes del mensaje. Por ejemplo, diga "mi código está en cursiva o "mi código está entre comillas.
  • No cambie el contexto: cíñase al contexto relacionado con su conversación. Si le pide a la inteligencia artificial que depure el código de interfaz de usuario, hable sobre el código de interfaz de usuario. Evite hablar de cualquier cosa que no esté relacionada con su contexto.

Ahora, veamos estos consejos en acción. Aquí está el ejemplo de Kumar.

Como desarrolladores front-end, contamos con varios componentes de React y CSS para crear una experiencia de interfaz de usuario increíble. A veces tenemos que cambiar el CSS, pero eso puede resultar complicado. A continuación, se muestra un ejemplo en el que utilizamos indicaciones del desarrollador para obtener resultados sorprendentes.

Problema: Dada una lista de logotipos de clientes, gírelos en forma circular en la parte frontal.

Prompt: Usted es un increíble ingeniero de front-end. Usted me ayudará a escribir código JavaScript y CSS para mis requerimientos siguiendo las pautas mencionadas.

Pautas:

  • Mi código está en React. Así que manténgase en el estándar de codificación React.
  • Cree una sección separada para CSS.
  • No complique el código. Hágalo fácil de entender.
  • Escriba código de React que responda al tamaño de pantalla de dispositivos móviles y desktops.
  • No asuma nada -haga preguntas de seguimiento si es necesario.

Requerimientos: Tengo un componente React que representa los logotipos de los clientes en la hoja. Quiero cambiar mi componente React de modo que la lista comience a girar de forma circular. Eche un vistazo a mi código escrito en la sección de cotizaciones y modifíquelo para que gire de forma circular.

```
  const HorizontalList = ({ items }) => {
  const style = {
    display: 'inline-block',
    margin: '0 10px'
  };
  return (
    <div>
      {items.map((item, index) => (
        <span key={index} style={style}>
          {item}
        </span>
      ))}
    </div>
  );
};
```

Con el espíritu de la prompt engineering, lo alentamos a ingresar esta sugerencia en su LLM de elección, verificar los resultados y luego ver si puede perfeccionarlos. ¡Buena suerte!

El futuro de la prompt engineering

Adónde irá la prompt engineering a partir de aquí es una incógnita. De hecho, se podría argumentar que el verdadero sueño de la inteligencia artificial generativa es que, en última instancia, no será necesario un conocimiento rápido y especializado de ingeniería. "Estamos recibiendo indicios de que OpenAI está intentando impulsar la tecnología en una dirección en la que las indicaciones requieren menos ingeniería, afirma King de AIPRM. "Creo que a largo plazo será mucho más fácil obtener lo que se desea de las herramientas de inteligencia artificial generativa, y más herramientas integrarán y abstraerán la funcionalidad, por lo que ya no será necesario que sea el trabajo de tiempo completo de alguien.

Dicho esto, las personas han estado soñando con interacciones, fáciles y sin fricciones, con las computadoras desde los primeros días de COBOL, y nunca funciona del todo. En los próximos años, aprender a hablar con la inteligencia artificial generativa probablemente será una nueva habilidad lucrativa para los desarrolladores de software.