de automatizar un número importante de tareas. Desde el lanzamiento de ChatGPT en 2022, hemos visto cada vez más productos de inteligencia artificial en el mercado que utilizan LLM. Sin embargo, todavía hay muchas mejoras que se deben realizar en la forma en que utilizamos los LLM. Mejorar su mensaje con un mejorador de mensajes LLM y utilizar tokens en caché son, por ejemplo, dos técnicas simples que puede utilizar para mejorar enormemente el rendimiento de su aplicación LLM.
En este artículo, analizaré varias técnicas específicas que puede aplicar a la forma en que crea y estructura sus mensajes, lo que reducirá la latencia y el costo, y también aumentará la calidad de sus respuestas. El objetivo es presentarle estas técnicas específicas, para que pueda implementarlas inmediatamente en su propia aplicación LLM.
Por qué deberías optimizar tu mensaje
En muchos casos, es posible que tenga un mensaje que funcione con un LLM determinado y produzca resultados adecuados. Sin embargo, en muchos casos, no ha dedicado mucho tiempo a optimizar el mensaje, lo que deja mucho potencial sobre la mesa.
Sostengo que utilizando las técnicas específicas que presentaré en este artículo, puedes mejorar fácilmente la calidad de tus respuestas y reducir costos sin mucho esfuerzo. El hecho de que un trabajo rápido y de LLM no significa que esté funcionando de manera óptima y, en muchos casos, puede ver grandes mejoras con muy poco esfuerzo.
Técnicas específicas para optimizar
En esta sección, cubriré las técnicas específicas que puede utilizar para optimizar sus indicaciones.
Mantenga siempre el contenido estático temprano
La primera técnica que cubriré es mantener siempre el contenido estático al principio del mensaje. Con contenido estático, me refiero al contenido que permanece igual cuando realizas múltiples llamadas a la API.
La razón por la que deberías mantener el contenido estático desde el principio es que todos los grandes proveedores de LLM, como Anthropic, Google y OpenAI, utilizan tokens almacenados en caché. Los tokens almacenados en caché son tokens que ya se han procesado en una solicitud de API anterior y que se pueden procesar de forma económica y rápida. Varía de un proveedor a otro, pero los tokens de entrada almacenados en caché suelen tener un precio de alrededor del 10% del de los tokens de entrada normales.
Los tokens almacenados en caché son tokens que ya se han procesado en una solicitud API anterior y que se pueden procesar de forma más económica y rápida que los tokens normales.
Eso significa que, si envía el mismo mensaje dos veces seguidas, los tokens de entrada del segundo mensaje solo costarán 1/10 de los tokens de entrada del primer mensaje. Esto funciona porque los proveedores de LLM almacenan en caché el procesamiento de estos tokens de entrada, lo que hace que el procesamiento de su nueva solicitud sea más económico y rápido.
En la práctica, el almacenamiento en caché de los tokens de entrada se realiza manteniendo las variables al final del mensaje.
Por ejemplo, si tiene un mensaje de sistema largo con una pregunta que varía de una solicitud a otra, debe hacer algo como esto:
mensaje = f””” {mensaje estático largo del sistema} {mensaje de usuario} “””
Por ejemplo:
Prompt = f””” Eres un experto en documentos… Siempre debes responder en este formato… Si un usuario pregunta sobre… debes responder… {pregunta del usuario} “””
Aquí tenemos primero el contenido estático del mensaje, antes de poner el contenido variable (la pregunta del usuario) al final.
En algunos escenarios, desea introducir el contenido del documento. Si está procesando muchos documentos diferentes, debe conservar el contenido del documento al final del mensaje:
# si se procesan diferentes documentos, mensaje = f””” {mensaje estático del sistema} {instrucción de mensaje variable 1} {contenido del documento} {instrucción de mensaje variable 2} {pregunta del usuario} “””
Sin embargo, supongamos que está procesando los mismos documentos varias veces. En ese caso, puede asegurarse de que los tokens del documento también se almacenen en caché asegurándose de que no se coloquen variables en el mensaje de antemano:
# si procesa los mismos documentos varias veces mensaje = f””” {mensaje estático del sistema} {contenido del documento} # mantenga esto antes de cualquier instrucción variable {instrucción de mensaje variable 1} {instrucción de mensaje variable 2} {pregunta del usuario} “””
Tenga en cuenta que los tokens almacenados en caché generalmente solo se activan si los primeros 1024 tokens son iguales en dos solicitudes. Por ejemplo, si el indicador estático del sistema en el ejemplo anterior tiene menos de 1024 tokens, no utilizará ningún token almacenado en caché.
# NO haga este mensaje = f””” {contenido variable} < --- esto elimina todo el uso de tokens almacenados en caché {mensaje estático del sistema} {contenido del documento} {instrucción de mensaje variable 1} {instrucción de mensaje variable 2} {pregunta del usuario} """
Sus mensajes siempre deben crearse primero con el contenido más estático (el contenido que varía menos de una solicitud a otra), el contenido más dinámico (el contenido que varía más de una solicitud a otra)
Si tiene un mensaje largo del sistema y del usuario sin ninguna variable, debe conservarlo primero y agregar las variables al final del mensaje. Si está recuperando texto de documentos, por ejemplo, y procesando el mismo documento dos veces, debe
Podría ser el contenido del documento, o si tiene un mensaje largo -> utilice el almacenamiento en caché
pregunta al final
Otra técnica que debe utilizar para mejorar el rendimiento del LLM es colocar siempre la pregunta del usuario al final del mensaje. Lo ideal es organizarlo de modo que el mensaje del sistema contenga todas las instrucciones generales y el mensaje del usuario simplemente consista únicamente en la pregunta del usuario, como se muestra a continuación:
system_prompt = “” user_prompt = f”{user_question}”
En los documentos de ingeniería de mensajes de Anthropic, el estado que incluye el mensaje de usuario al final puede mejorar el rendimiento hasta en un 30%, especialmente si utiliza contextos largos. Incluir la pregunta al final le deja más claro al modelo qué tarea está tratando de lograr y, en muchos casos, conducirá a mejores resultados.
Usando un optimizador rápido
Muchas veces, cuando los humanos escriben indicaciones, se vuelven confusas, inconsistentes, incluyen contenido redundante y carecen de estructura. Por lo tanto, siempre debe alimentar su mensaje a través de un optimizador de mensajes.
El optimizador de mensajes más simple que puede usar es pedirle a un LLM que mejore este mensaje {prompt}, y le proporcionará un mensaje más estructurado, con contenido menos redundante, etc.
Sin embargo, un enfoque aún mejor es utilizar un optimizador de mensajes específico, como el que puede encontrar en las consolas de OpenAI o Anthropic. Estos optimizadores son LLM creados y solicitados específicamente para optimizar sus indicaciones y, por lo general, producirán mejores resultados. Además, debes asegurarte de incluir:
Detalles sobre la tarea que está intentando realizar Ejemplos de tareas en las que el mensaje tuvo éxito, y la entrada y salida Ejemplo de tareas en las que el mensaje falló, con la entrada y salida
Proporcionar esta información adicional generalmente producirá resultados mucho mejores y terminará con un mensaje mucho mejor. En muchos casos, solo dedicará entre 10 y 15 minutos y terminará con un mensaje mucho más eficaz. Esto hace que el uso de un optimizador rápido sea uno de los enfoques de menor esfuerzo para mejorar el rendimiento de LLM.
LLM de referencia
El LLM que utilice también afectará significativamente el rendimiento de su aplicación LLM. Los diferentes LLM son buenos en diferentes tareas, por lo que debes probar los diferentes LLM en tu área de aplicación específica. Recomiendo al menos configurar el acceso a los proveedores de LLM más importantes, como Google Gemini, OpenAI y Anthropic. Configurar esto es bastante simple y cambiar su proveedor de LLM toma unos minutos si ya tiene las credenciales configuradas. Además, también puedes considerar probar LLM de código abierto, aunque generalmente requieren más esfuerzo.
Ahora necesita configurar un punto de referencia específico para la tarea que intenta realizar y ver qué LLM funciona mejor. Además, debe comprobar periódicamente el rendimiento del modelo, ya que los grandes proveedores de LLM actualizan ocasionalmente sus modelos, sin necesariamente lanzar una nueva versión. Por supuesto, también debería estar preparado para probar cualquier modelo nuevo que surja de los grandes proveedores de LLM.
Conclusión
En este artículo, he cubierto cuatro técnicas diferentes que puede utilizar para mejorar el rendimiento de su aplicación LLM. Hablé sobre el uso de tokens almacenados en caché, la pregunta al final del mensaje, el uso de optimizadores de mensajes y la creación de puntos de referencia LLM específicos. Todos estos son relativamente sencillos de configurar y realizar, y pueden generar un aumento significativo del rendimiento. Creo que existen muchas técnicas similares y simples, y siempre debes intentar estar atento a ellas. Estos temas generalmente se describen en diferentes publicaciones de blog, donde Anthropic es uno de los blogs que más me ha ayudado a mejorar el desempeño en LLM.
👉 Encuéntrame en las redes sociales:
📩 Suscríbete a mi newsletter
🧑💻 Ponte en contacto
🐦X/Twitter
✍️ Medio
También puedes leer algunos de mis otros artículos: