pithh
← Volver a pithh

Todo prompt tiene dos versiones mejores

Una más ligera y otra más detallada. Así calculamos ambas.

La mayoría de los contadores de tokens se quedan en el número. pithh va más allá: en el momento en que ves el coste, también ves dos reescrituras de tu propio prompt: Lean, que dice lo mismo con menos tokens, y Extended, que invierte más tokens en una estructura que un modelo pueda aprovechar de verdad. Ambas son deterministas, sin muestreo ni prompts ocultos: Extended se ejecuta enteramente en tu navegador, y Lean ejecuta ahí dos de sus tres etapas, con la tercera puntuada por un pequeño modelo de lenguaje que alojamos nosotros mismos — nunca un servicio de reescritura de pago.

Esa restricción determinó todo el diseño: en lugar de pedirle a un modelo grande que reescriba tu prompt (algo que cuesta dinero y es una caja negra), construimos dos pipelines pequeños y deterministas basados directamente en investigación publicada sobre compresión de prompts e ingeniería de prompts. Aquí no hay nada secreto ni mágico: cada técnica está citada más abajo.

Motor Lean

Tres etapas, en orden

Cada etapa elimina un tipo distinto de exceso. Se ejecutan en secuencia, y cada una es conservadora por diseño: preferimos comprimir de menos que devolver una frase que ya no tenga sentido.

  1. Poda cooperativa. El Principio de Cooperación de Grice establece que un hablante no debería decir más de lo que exige el intercambio: la Máxima de Cantidad [1]. Los rellenos de cortesía y las atenuaciones ("si es posible", "me gustaría que", "por favor") aportan suavizado social, no instrucción: a un modelo no hace falta pedirle las cosas con amabilidad. Esta etapa elimina una lista seleccionada de ellos.
  2. Colapso de redundancia. Es habitual repetir la misma petición en dos frases para dar énfasis. Dividimos el prompt en frases y las comparamos con la misma señal que usa LexRank [2] para clasificar la importancia de las frases: la similitud del coseno entre vectores de frecuencia de términos. Cuando dos frases se solapan mucho, conservamos solo la más informativa.
  3. Poda por autoinformación. LLMLingua [3] y Selective Context [4] comprimen prompts ejecutando un pequeño modelo de lenguaje causal sobre el texto y descartando los tokens que resultan más predecibles: la menor autoinformación, en el sentido de la teoría de la información. Ejecutamos exactamente el modelo ligero que el propio paper de LLMLingua valida para esto — GPT2-small — en nuestro servidor, y puntuamos cada palabra según cuántos bits de autoinformación aporta dado lo que la precede. La salida de LLMLingua la lee otro modelo, así que puede podar de forma agresiva; la nuestra se te muestra a ti, así que la limitamos a aproximadamente el 12% de palabras con menor puntuación y nunca tocamos la primera ni la última palabra de una frase, manteniendo el resultado legible en vez de telegráfico.

El recuento de tokens que ves para la versión Lean no es una estimación del ahorro: es la misma llamada real al tokenizador que se usa para el prompt original, así que la diferencia se mide, no se calcula a ojo.

Motor Extended

Clasificar y luego aplicar el patrón adecuado

Un envoltorio genérico del tipo "actúa como un experto y piensa con cuidado" siempre ayuda un poco. Un envoltorio elegido en función de lo que tu prompt realmente pide ayuda mucho más. Por eso el motor Extended lee tu prompt, deduce su tipo de tarea a partir de patrones superficiales —código, escritura creativa, razonamiento/análisis o general— e inyecta solo los patrones que encajan, extraídos del Prompt Pattern Catalog [6]:

  • Un patrón de persona ajustado a la tarea (un ingeniero sénior para código, un experto del dominio para análisis, un escritor para trabajo creativo) en lugar de un rol único para todo.
  • Un patrón de formato de salida que indica al modelo cómo estructurar su respuesta para ese tipo de tarea.
  • Para los prompts que clasificamos como razonamiento o análisis, un disparador explícito de cadena de pensamiento —"piensa paso a paso antes de responder"—. Kojima et al. demostraron que esta única línea, añadida a un prompt zero-shot, mejora de forma medible la precisión del razonamiento sin necesidad de ejemplos resueltos [7], apoyándose en el hallazgo previo de Wei et al. de que detallar los pasos intermedios ayuda en general [8]. Solo la añadimos donde la tarea se beneficia de ella: un prompt de escritura creativa no la necesita.

El último paso es un formateo que depende del modelo: al cambiar el modelo en el selector, cambia también la propia estructura del envoltorio. Anthropic publica una guía explícita según la cual los modelos Claude responden mejor a prompts estructurados con etiquetas XML [9], así que la salida Extended para un modelo Claude se envuelve en <role>, <task>, <output_format>. La propia guía de prompting de OpenAI, en cambio, recomienda encabezados Markdown [10], así que el resto de los modelos reciben en su lugar # Role, # Task, # Output format. Cambia el modelo en el selector y la tarjeta Extended se regenera en el formato preferido de ese modelo: pruébalo.

Por qué esto, y no simplemente llamar a un LLM

La forma obvia de reescribir un prompt es pedirle a un modelo más grande que lo haga. No queríamos que pithh te costara dinero para ahorrarte dinero, ni que hubiera una caja negra entre tú y tus propias palabras. Cada etapa descrita arriba es una función sencilla que puedes leer, volver a ejecutar y de la que obtienes siempre el mismo resultado: sin aleatoriedad de muestreo, sin system prompt oculto, sin coste por solicitud. La contrapartida es honesta: un modelo de reescritura ajustado específicamente probablemente comprimiría más y expandiría con más inteligencia de lo que pueden unas reglas seleccionadas a mano. Lo que obtienes en cambio es un método que puedes auditar por completo, que se ejecuta en milisegundos y que nunca envía tu prompt a ningún sitio solo para reformatearlo.

Referencias

  1. H.P. Grice (1975). "Logic and Conversation." In Syntax and Semantics, Vol. 3: Speech Acts, Cole & Morgan (eds.).
  2. G. Erkan & D.R. Radev (2004). "LexRank: Graph-based Lexical Centrality as Salience in Text Summarization." Journal of Artificial Intelligence Research, 22, 457–479. Semantic Scholar
  3. H. Jiang, Q. Wu, C.-Y. Lin, Y. Yang, L. Qiu (2023). "LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models." EMNLP 2023. arXiv:2310.05736
  4. Y. Li, B. Dong, F. Guerin, C. Lin (2023). "Compressing Context to Enhance Inference Efficiency of Large Language Models." EMNLP 2023. arXiv:2310.06201
  5. Z. Pan et al. (2024). "LLMLingua-2: Data Distillation for Efficient and Faithful Task-Agnostic Prompt Compression." arXiv:2403.12968
  6. J. White, Q. Fu, S. Hays, M. Sandborn, C. Olea, H. Gilbert, A. Elnashar, J. Spencer-Smith, D.C. Schmidt (2023). "A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT." arXiv:2302.11382
  7. T. Kojima, S.S. Gu, M. Reid, Y. Matsuo, Y. Iwasawa (2022). "Large Language Models are Zero-Shot Reasoners." NeurIPS 2022. arXiv:2205.11916
  8. J. Wei, X. Wang, D. Schuurmans, M. Bosma, B. Ichter, F. Xia, E. Chi, Q. Le, D. Zhou (2022). "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models." NeurIPS 2022. arXiv:2201.11903
  9. Anthropic. "Use XML tags to structure your prompts," Claude Docs — prompt engineering guide. platform.claude.com
  10. OpenAI. "Prompt engineering," OpenAI API guide — Markdown structuring recommendation. developers.openai.com

Cada técnica anterior se cita por la idea concreta que inspiró, no como afirmación de que pithh reproduce el método completo del artículo; donde hemos simplificado algo (aplicar reglas en lugar de un modelo de lenguaje, similitud por pares en lugar de centralidad de grafo completa), se indica explícitamente más arriba.

pithh · Privacidad · Cookies