Creación de aplicaciones con LLM con respuestas 100 veces más rápidas y una reducción drástica de costos usando GPTCache
Este artículo se publicó originalmente en ODBMS y se republica aquí con permiso.
El mágico ChatGPT y otros modelos de lenguaje grandes (LLMs) han asombrado a casi todo el mundo con su capacidad para entender el lenguaje natural y responder preguntas complicadas. Como resultado, cada vez más desarrolladores están aprovechando los LLMs para crear aplicaciones inteligentes. Sin embargo, a medida que tu aplicación de LLM gana popularidad y experimenta un aumento repentino del tráfico, el coste de las llamadas a la API de LLM aumentará significativamente. La alta latencia de respuesta también será frustrante, particularmente durante las horas pico de los LLMs, lo que afecta directamente a la experiencia del usuario.
En esta publicación, presentaré una solución práctica para los desafíos que obstaculizan la eficiencia y la velocidad de las aplicaciones de LLM: GPTCache. Esta caché semántica de código abierto puede ayudarte a lograr velocidades de recuperación al menos 100 veces más rápidas y reducir a cero tus costes de uso de servicios de LLM cuando se acierta en la caché.
Desafíos clave al crear aplicaciones basadas en LLM
Antes de profundizar en GPTCache, primero analicemos dos desafíos clave al crear una aplicación inteligente basada en LLMs.
Costes en aumento con llamadas a la API innecesarias
Las aplicaciones pueden aprovechar las potentes capacidades de inferencia de los LLMs llamando a la API de los LLMs. Sin embargo, llamar a la API no es gratis. Si tu aplicación es de producción y tiene una gran base de usuarios, las llamadas frecuentes a la API pueden costarte una fortuna. Además, puedes terminar pagando por llamadas a la API innecesarias para preguntas semánticamente idénticas que el LLM ya ha respondido, desperdiciando tu dinero y recursos.
Bajo rendimiento y escalabilidad con alta latencia de respuesta
Los modelos de lenguaje grandes suelen gestionar cargas de trabajo asombrosas. Tomemos ChatGPT como ejemplo. En julio de 2023, tiene más de 100 millones de usuarios activos y recibió aproximadamente mil millones de visitas solo en junio. Debido a cargas de trabajo tan elevadas, los LLMs ralentizan sus respuestas, especialmente durante las horas pico, lo que provoca que las aplicaciones que dependen de ellos también se ralenticen.
Además, los servicios de LLM imponen límites de tasa, restringiendo el número de llamadas a la API que tus aplicaciones pueden realizar al servidor dentro de un período determinado. Alcanzar un límite de tasa significa que las solicitudes adicionales se bloquearán hasta que haya transcurrido cierto período, lo que provoca una interrupción del servicio. Este cuello de botella puede afectar directamente a la experiencia del usuario y limitar el número de solicitudes que tu aplicación puede gestionar.
¿Qué es GPTCache?
GPTCache es una caché semántica de código abierto diseñada para mejorar la eficiencia y la velocidad de las aplicaciones basadas en GPT mediante el almacenamiento y la recuperación de las respuestas generadas por modelos de lenguaje. GPTCache permite a los usuarios personalizar la caché según sus requisitos específicos, ofreciendo una variedad de opciones para incrustación, evaluación de similitud, ubicación de almacenamiento y políticas de desalojo. Además, GPTCache es compatible tanto con la interfaz de OpenAI ChatGPT como con la interfaz de Langchain, con planes de admitir más interfaces en los próximos meses.
¿Cómo funciona GPTCache?
En pocas palabras, GPTCache almacena las respuestas de los LLMs en la caché. Por lo tanto, cuando los usuarios realizan consultas similares a las que los LLMs han respondido previamente, GPTCache busca y devuelve los resultados a los usuarios sin necesidad de volver a llamar al LLM. A diferencia de los sistemas de caché tradicionales como Redis, GPTCache emplea almacenamiento en caché semántico, que almacena y recupera datos mediante embeddings. Utiliza algoritmos de embedding para transformar las consultas de los usuarios y las respuestas de los LLMs en embeddings y realiza búsquedas de similitud en estos embeddings usando un almacén vectorial como Milvus.
GPTCache consta de seis módulos principales: Adaptador de LLM, Preprocesador (Gestor de contexto), Generador de embeddings, Gestor de caché, Evaluador de similitud y Postprocesador.
Adaptador de LLM
El adaptador de LLM sirve como la interfaz de GPTCache para la interacción externa. Convierte las consultas en protocolos de caché, controla el flujo de trabajo de almacenamiento en caché y transforma los resultados de caché en respuestas de LLM. Con el adaptador de LLM, experimentar y probar varios modelos de lenguaje se vuelve más sencillo, ya que puedes alternar entre ellos sin reescribir tu código ni aprender una nueva API.
GPTCache ya es compatible con OpenAI ChatGPT API, LangChain API, MiniGPT4 API y Llamacpp API. Nuestra hoja de ruta incluye la incorporación de más API, como Hugging Face Hub, Bard y Anthropic.
Preprocesador
El Preprocesador gestiona, analiza y formatea las consultas enviadas a los LLM, incluyendo la eliminación de información redundante de las entradas, la compresión de información de entrada, el recorte de textos largos y la realización de otras tareas relacionadas.
Generador de embeddings
El Generador de embeddings convierte las consultas de los usuarios en vectores de embedding usando tus modelos de embedding preferidos. GPTCache admite modelos locales de HuggingFace y GitHub y servicios de embedding en la nube para generar embeddings. Estos incluyen OpenAI embedding API, ONNX con el modelo GPTCache/paraphrase-albert-onnx, Hugging Face embedding API, Cohere embedding API, fastText embedding API y SentenceTransformers embedding API, y modelos Timm para embeddings de imágenes.
Gestor de caché
El Gestor de caché es el módulo central de GPTCache. Almacena las solicitudes de los usuarios y las respuestas de los LLM y consta de tres componentes:
Un almacén vectorial para el almacenamiento de vectores de embedding y búsquedas de similitud
Un almacén de caché para almacenar solicitudes de usuarios y las respuestas de LLM correspondientes
Una política de expulsión para controlar la capacidad de la caché según la política de expulsión Least Recently Used (LRU) o First In, First Out (FIFO).
Actualmente, GPTCache es compatible con SQLite, PostgreSQL, MySQL, MariaDB, SQL Server y Oracle para el almacenamiento en caché, y Milvus, Zilliz Cloud y Weaviate para el almacenamiento y la recuperación vectorial. Los usuarios pueden elegir su almacén vectorial, almacén de caché y política de expulsión preferidos para satisfacer sus necesidades, equilibrando rendimiento, escalabilidad y costos.
Evaluador de similitud
El Evaluador de similitud determina si la respuesta almacenada en caché coincide con la consulta de entrada. GPTCache ofrece una interfaz estandarizada que combina múltiples estrategias de similitud, lo que permite a los usuarios personalizar las coincidencias de caché según sus necesidades y casos de uso específicos.
Postprocesador
El Postprocesador prepara la respuesta final para devolverla al usuario cuando se produce un acierto de caché. Si la respuesta no está en la caché, el Adaptador de LLM solicita respuestas al LLM y las escribe de vuelta en el Gestor de caché.
Beneficios de GPTCache
Reducción drástica de costos en llamadas a la API de LLM
Los LLM cobran por cada llamada a la API. GPTCache ayuda a los desarrolladores a almacenar en caché semánticamente las respuestas de LLM para preguntas similares y repetidas, reduciendo los costos de API a cero si se produce un acierto de caché. GPTCache reduce el número total de llamadas a la API, reduciendo drásticamente los costos. Es particularmente beneficioso para aplicaciones con tráfico extremadamente alto.
Respuestas 100 veces más rápidas
GPTCache puede reducir significativamente el tiempo de respuesta para aplicaciones de LLM. Durante las horas pico de ChatGPT, las respuestas pueden tardar hasta varios segundos. Sin embargo, con GPTCache, las aplicaciones pueden recuperar respuestas solicitadas previamente en menos de 100 milisegundos, lo que es al menos 100 veces más rápido.
Escalabilidad mejorada
Almacenar en caché las respuestas de LLM reduce la carga sobre el servicio de LLM, mejorando la escalabilidad de tu aplicación y evitando cuellos de botella mientras gestiona solicitudes crecientes.
Mejor disponibilidad
Los servicios de LLM a menudo establecen límites de tasa, restringiendo las veces que tu aplicación puede acceder al servidor dentro de un período específico. GPTCache reduce el número total de llamadas a la API y permite que tu aplicación escale rápidamente para gestionar un volumen creciente de consultas. Este enfoque garantiza un rendimiento consistente a medida que crece la base de usuarios de tu aplicación.
Para obtener más detalles sobre cómo puedes beneficiarte de GPTCache, consulta la página Qué es GPTCache.
OSS Chat, un chatbot de IA que utiliza GPTCache y la pila CVP
GPTCache es beneficioso para la Generación Aumentada por Recuperación (RAG), donde las aplicaciones implementan una pila CVP (ChatGPT/LLMs+base de datos vectorial+prompt como código) para obtener resultados más precisos. OSS Chat, un chatbot de IA que puede responder preguntas sobre proyectos de GitHub, es el mejor ejemplo para ilustrar cómo funcionan GPTCache y la pila CVP en el escenario RAG.
Arquitectura de OSS Chat
OSS Chat utiliza Towhee, un pipeline de aprendizaje automático, para transformar la información y las páginas de documentación relacionadas de proyectos de GitHub en embeddings. Luego almacena los embeddings en Zilliz Cloud, un servicio de base de datos vectorial totalmente gestionado. Cuando un usuario hace una pregunta a través de OSS Chat, Zilliz Cloud busca los k resultados principales más relevantes para esa consulta. Estos resultados se combinan luego con la pregunta original para crear un prompt con un contexto más amplio.
Antes de enviar el prompt a ChatGPT, Zilliz Cloud primero verifica GPTCache en busca de respuestas; si se acierta en la caché, GPTCache devuelve la respuesta directamente al usuario. Si no se acierta en la caché, GPTCache envía el prompt original a ChatGPT para obtener respuestas y lo almacena de nuevo en la caché para uso futuro. GPTCache permite que OSS Chat ofrezca una excelente experiencia de usuario con costos más bajos, menor latencia de respuesta y menos esfuerzos de desarrollo.
Resumen
Crear aplicaciones basadas en LLMs es una tendencia creciente que beneficia a todos en el ecosistema. Sin embargo, los desarrolladores de aplicaciones enfrentan dos desafíos clave: el alto costo de las llamadas a la API y la alta latencia de respuesta. GPTCache es una solución de código abierto perfecta que aborda estos desafíos y ofrece muchos más beneficios, incluida la reducción de la latencia de red, una mayor disponibilidad y una mejor escalabilidad.
Para un tutorial práctico sobre cómo empezar con GPTCache, consulta la documentación de GPTCache. Puedes hacer preguntas o compartir tus ideas durante nuestras Community Office Hours. También eres bienvenido a contribuir a GPTCache.
Sigue leyendo
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Zilliz Cloud Now Available in AWS Asia Pacific (Seoul)
Zilliz Cloud is now available in AWS Seoul — low-latency vector search, in-country data residency, and one-step migration for Korean AI teams. 31 regions across 5 clouds.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Enhance legal document analysis with Zilliz Cloud’s Semantic Search and RAG. Improve accuracy, efficiency, and scalability for contracts, case law, and compliance.



