Almacenamiento en caché de consultas a LLM para mejorar el rendimiento y los costos
¿Qué es GPTCache? ¿Buscas mejorar el rendimiento de tu aplicación de modelo de lenguaje grande (LLM) mientras reduces gastos? No busques más allá de una caché semántica para almacenar respuestas de LLM. Almacenar en caché las respuestas de LLM puede reducir significativamente el tiempo que lleva recuperar datos, reducir los gastos de llamadas a la API y mejorar la escalabilidad. Además, al personalizar la caché y supervisar su rendimiento, puedes optimizarla para hacerla más eficiente. En este blog, presentaremos GPTCache, una caché semántica de código abierto para almacenar respuestas de LLM, y proporcionaremos consejos sobre cómo implementarla para obtener los mejores resultados. Sigue leyendo para obtener más información sobre cómo almacenar en caché las consultas de LLM puede ayudarte a lograr un mejor rendimiento y ahorro de costos.
¿Por qué usar una caché semántica para almacenar LLMs?
Crear una caché semántica para almacenar respuestas de LLM (Large Language Model) puede aportar varios beneficios, como:
- Rendimiento mejorado: Almacenar respuestas de LLM en una caché puede reducir significativamente el tiempo que lleva recuperar la respuesta, especialmente cuando se ha solicitado previamente y ya está presente en la caché. Almacenar respuestas en una caché puede mejorar el rendimiento general de tu aplicación.
- Gastos reducidos: La mayoría de los servicios de LLM cobran tarifas basadas en una combinación del número de solicitudes y el recuento de tokens. Almacenar en caché las respuestas de LLM puede reducir el número de llamadas a la API realizadas al servicio, lo que se traduce en ahorro de costos. El almacenamiento en caché es particularmente relevante cuando se trata de altos niveles de tráfico, donde los gastos de llamadas a la API pueden ser sustanciales.
- Mejor escalabilidad: Almacenar en caché las respuestas de LLM puede mejorar la escalabilidad de tu aplicación al reducir la carga en el servicio de LLM. El almacenamiento en caché ayuda a evitar cuellos de botella y garantiza que la aplicación pueda manejar un número creciente de solicitudes.
- Personalización: Una caché semántica se puede personalizar para almacenar respuestas según requisitos específicos, como el tipo de entrada, el formato de salida o la longitud de la respuesta. Esto puede ayudar a optimizar la caché y hacerla más eficiente.
- Reducción de la latencia de red: Una caché semántica ubicada más cerca del usuario, reduciendo el tiempo que lleva recuperar datos del servicio de LLM. Al reducir la latencia de red, puedes mejorar la experiencia general del usuario.
Crear una caché semántica para almacenar respuestas de LLM puede aportar varios beneficios, incluidos un rendimiento mejorado, gastos reducidos, mejor escalabilidad, personalización y menor latencia de red.
¿Qué es GPTCache?
Mientras creábamos la aplicación de demostración de ChatGPT, OSS Chat, vimos que comenzaba a degradarse en rendimiento y a aumentar las tarifas de servicio cuanto más la probábamos. Esto nos hizo darnos cuenta de que necesitábamos un mecanismo de almacenamiento en caché para ayudar a combatir la degradación del rendimiento y el aumento de costos. A medida que empezamos a construir esta capa de caché, nos dimos cuenta de que podría ser útil para la comunidad, así que decidimos publicar esto como código abierto como GPTCache.
GPTCache es una herramienta de código abierto diseñada para mejorar la eficiencia y la velocidad de las aplicaciones basadas en GPT mediante la implementación de una caché para almacenar las respuestas generadas por los modelos de lenguaje. GPTCache permite a los usuarios personalizar la caché según sus necesidades, incluidas opciones para funciones de embedding, funciones de evaluación de similitud, ubicación de almacenamiento y expulsión. Además, GPTCache actualmente admite la interfaz de OpenAI ChatGPT y la interfaz de LangChain.
Embeddings compatibles
GPTCache también proporciona una variedad de opciones para extraer embeddings de solicitudes para la búsqueda por similitud. Además, la herramienta ofrece una interfaz genérica que admite múltiples APIs de embedding, lo que permite a los usuarios elegir la que mejor se adapte a sus necesidades. La lista de APIs de embedding compatibles incluye:
- API de embedding de OpenAI
- ONNX con el modelo GPTCache/paraphrase-albert-onnx
- API de embedding de Hugging Face
- API de embedding de Cohere
- API de embedding de fastText
- API de embedding de SentenceTransformers
Estas opciones ofrecen a los usuarios una variedad de elecciones para las funciones de embedding, lo que puede afectar la precisión y la eficiencia de la funcionalidad de búsqueda por similitud en GPTCache. GPTCache tiene como objetivo proporcionar flexibilidad y atender a una gama más amplia de casos de uso mediante el soporte de múltiples API.
Almacenamiento de caché
GPTCache ofrece soporte para almacenar respuestas en caché en una variedad de sistemas de gestión de bases de datos. La herramienta admite múltiples bases de datos populares, entre ellas:
- SQLite
- PostgreSQL
- MySQL
- MariaDB
- SQL Server
- Oracle
El soporte de bases de datos populares significa que los usuarios pueden elegir la base de datos que mejor se adapte a sus necesidades, según el rendimiento, la escalabilidad y el costo. Además, GPTCache ofrece una interfaz universalmente accesible para ampliar el módulo, lo que permite a los usuarios añadir soporte para diferentes sistemas de bases de datos si es necesario.
Opciones de almacén vectorial
GPTCache admite un módulo de almacén vectorial, que ayuda a encontrar las K solicitudes más similares basándose en los embeddings extraídos de la solicitud de entrada. Esta funcionalidad puede ayudar a evaluar la similitud entre solicitudes. GPTCache proporciona una interfaz fácil de usar que admite varios almacenes vectoriales, incluidos Milvus, Zilliz Cloud y FAISS.
Estas opciones ofrecen a los usuarios una variedad de elecciones para almacenes vectoriales, lo que puede afectar la eficiencia y la precisión de la funcionalidad de búsqueda por similitud en GPTCache. GPTCache tiene como objetivo proporcionar flexibilidad y atender a una gama más amplia de casos de uso mediante el soporte de múltiples almacenes vectoriales. También planeamos admitir otras bases de datos vectoriales a corto plazo.
Gestión de políticas de expulsión
Cache Manager en GPTCache controla las operaciones de los módulos Cache Storage y Vector Store. Cuando la caché se llena, una política de reemplazo determina qué datos expulsar para hacer espacio para nuevos datos. GPTCache actualmente admite dos opciones básicas:
- Política de expulsión LRU (Least Recently Used)
- Política de expulsión FIFO (First In, First Out)
Ambas son políticas de expulsión estándar utilizadas en sistemas de caché.
Evaluador de similitud
El módulo Similarity Evaluator en GPTCache recopila datos de Cache Storage y Vector Store. Utiliza varias estrategias para determinar la similitud entre la solicitud de entrada y las solicitudes del Vector Store. La similitud determina si una solicitud coincide con la caché. GPTCache proporciona una interfaz estandarizada para integrar varias estrategias de similitud y una colección de implementaciones. Estas diferentes estrategias de similitud permiten a GPTCache proporcionar flexibilidad para determinar coincidencias de caché en función de otros casos de uso y necesidades.
En resumen
GPTCache es un proyecto destinado a optimizar el uso de modelos de lenguaje en aplicaciones basadas en GPT reduciendo la necesidad de generar respuestas repetidamente desde cero y, en su lugar, utilizando una respuesta en caché cuando corresponda. GPTCache es un proyecto de código abierto, así que échale un vistazo por tu cuenta. ¡Nos encantaría escuchar tus comentarios o incluso puedes ayudar a contribuir al proyecto!
Más información
Sigue leyendo

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

Migrating from S3 Vectors to Zilliz Cloud: Unlocking the Power of Tiered Storage
Learn how Zilliz Cloud bridges cost and performance with tiered storage and enterprise-grade features, and how to migrate data from AWS S3 Vectors to Zilliz Cloud.

What is the K-Nearest Neighbors (KNN) Algorithm in Machine Learning?
KNN is a supervised machine learning technique and algorithm for classification and regression. This post is the ultimate guide to KNN.



