Introducción a Contextual Retrieval
- Para que un modelo de IA sea útil en un contexto específico, necesita conocimiento de base
- Un chatbot de soporte al cliente necesita conocimiento sobre un negocio específico, y un bot de análisis legal necesita un amplio conocimiento sobre casos anteriores
- Los desarrolladores suelen usar Retrieval-Augmented Generation (RAG) para mejorar el conocimiento de los modelos de IA
- Las soluciones RAG tradicionales a menudo eliminan el contexto al codificar la información, por lo que con frecuencia no logran recuperar información relevante
Método de Contextual Retrieval
- Contextual Retrieval es un método que mejora de forma significativa la etapa de recuperación de RAG
- Usa dos subtecnologías: Contextual Embeddings y Contextual BM25
- Reduce en 49% la cantidad de búsquedas fallidas y, al combinarse con reranking, puede reducirlas hasta en 67%
- Se puede implementar fácilmente una solución de Contextual Retrieval usando Claude
Simplemente usar prompts más largos
- Si la base de conocimiento tiene menos de 200,000 tokens, puede ser mejor proporcionar toda la base de conocimiento al modelo
- Al usar la función de prompt caching de Claude, este enfoque es más rápido y rentable
- A medida que la base de conocimiento crece, se necesita una solución más escalable
Conceptos básicos de RAG
- RAG se usa para manejar bases de conocimiento grandes
- La base de conocimiento se divide en pequeños fragmentos de texto, y se usa un modelo de embeddings para codificar su significado
- Se almacenan en una base de datos vectorial para recuperarlos según su similitud semántica
- BM25 es eficaz para encontrar coincidencias exactas de palabras o frases
Limitaciones del RAG tradicional
- En el proceso de dividir documentos en fragmentos pequeños, el contexto puede destruirse
- Por ejemplo, ante una pregunta sobre información financiera de una empresa específica, podría devolverse un fragmento sin suficiente contexto
Implementación de Contextual Retrieval
- Se agrega un contexto descriptivo a cada fragmento para generar índices de embeddings y de BM25
- Se usa Claude para generar un contexto conciso para cada fragmento
- Se puede reducir el costo usando prompt caching
Mejoras de rendimiento
- Contextual Embeddings reduce la tasa de fallos de recuperación en 35%
- Al combinar Contextual Embeddings y Contextual BM25, la tasa de fallos de recuperación se reduce en 49%
Consideraciones de implementación
- Hay que considerar cómo dividir los documentos en fragmentos, la elección del modelo de embeddings y los prompts de contextualización personalizados
- Incluir más fragmentos aumenta la probabilidad de contener información relevante
Mejora del rendimiento mediante reranking
- El reranking mejora la calidad de la respuesta al enviar al modelo solo los fragmentos más relevantes
- Contextual Embedding y Contextual BM25 con reranking reducen la tasa de fallos de recuperación en 67%
Conclusión
- Combinar Embeddings y BM25 permite obtener mejores resultados
- Los embeddings de Voyage y Gemini son los más eficaces
- Enviar al modelo los 20 fragmentos principales es lo más efectivo
- Agregar contexto mejora significativamente la precisión de recuperación
- El reranking mejora aún más el rendimiento
Resumen de GN⁺
- Contextual Retrieval es un método que puede mejorar en gran medida la precisión de recuperación de los modelos de IA
- Es especialmente útil al trabajar con bases de conocimiento grandes
- Se puede implementar de forma rentable usando la función de prompt caching de Claude
- Otros proyectos con funciones similares incluyen GPT-3 de OpenAI y BERT de Google
1 comentarios
Comentarios de Hacker News
Primer comentario
Segundo comentario
Tercer comentario
Cuarto comentario
Quinto comentario
Sexto comentario
Séptimo comentario
Octavo comentario
Noveno comentario
Décimo comentario