Uno de los tutoriales más fáciles y comprensibles para crear aplicaciones RAG

构建RAG应用最简单易懂的教程之一
ChatGPT creó un momento importante que permitió a las empresas concebir nuevos escenarios de aplicación y aceleró la adopción de la IA por estas compañías. Una aplicación típica en el espacio empresarial es permitir a los usuarios hablar con chatbots y obtener respuestas a sus preguntas basadas en la base de conocimientos interna de la empresa. Sin embargo, ChatGPT u otros grandes modelos lingüísticos no están entrenados con estos datos internos y, por tanto, no pueden responder directamente a preguntas basadas en bases de conocimiento internas. Una solución intuitiva es proporcionar la base de conocimientos interna al modelo como contexto, es decir, como parte de la pregunta. Sin embargo, la mayoría de los grandes modelos lingüísticos de ficha El límite está en unos pocos miles, lo que dista mucho de ser suficiente para dar cabida a la enorme base de conocimientos de la mayoría de las organizaciones. Por tanto, no basta con utilizar grandes modelos lingüísticos estándar para resolver este problema. Sin embargo, los dos enfoques populares que se exponen a continuación pueden utilizarse por separado o combinados para abordar este problema.

Perfeccionamiento del modelo lingüístico de código abierto

Este enfoque consiste en afinar un gran modelo lingüístico de código abierto como Llama2 en el corpus del cliente. El modelo perfeccionado es capaz de asimilar y comprender los conocimientos específicos del dominio del cliente para responder a las preguntas pertinentes sin contexto adicional. Sin embargo, cabe señalar que muchos corpus de clientes tienen un tamaño limitado y a menudo contienen errores gramaticales. Esto puede suponer un reto a la hora de afinar modelos lingüísticos de gran tamaño. No obstante, se han observado resultados alentadores al utilizar el modelo lingüístico de gran tamaño ajustado en las técnicas de generación mejoradas por recuperación que se comentan a continuación.

Búsqueda Generación mejorada

La segunda forma de resolver este problema es recuperar la generación aumentada (RAG). Este enfoque fragmenta primero los datos y luego los almacena en una base de datos vectorial. Al responder a una pregunta, el sistema recupera los trozos de datos más relevantes en función de la consulta y los transmite al modelo de gran lenguaje para generar la respuesta. Actualmente son populares en Internet varias soluciones tecnológicas de código abierto que combinan grandes modelos lingüísticos, almacenamiento vectorial y marcos de orquestación. A continuación se muestra un esquema de una solución que utiliza la tecnología RAG.

构建RAG应用最简单易懂的教程之一

Sin embargo, construir una solución con este planteamiento plantea algunos problemas. El rendimiento de la solución depende de varios factores, como el tamaño de los trozos de texto, el grado de solapamiento entre los trozos, la técnica de incrustación, etc., y corresponde al usuario determinar los ajustes óptimos para cada uno de estos factores. A continuación se indican algunos de los factores clave que pueden afectar al rendimiento:

Tamaño del fragmento de documento

Como ya se ha mencionado, la longitud del contexto de un modelo lingüístico de gran tamaño es limitada, por lo que es necesario dividir el documento en trozos más pequeños. Sin embargo, el tamaño de los trozos es fundamental para el rendimiento de la solución. Los trozos demasiado pequeños no pueden responder a preguntas que exigen analizar información de varios pasajes, mientras que los trozos demasiado grandes ocupan rápidamente la longitud del contexto, lo que reduce el número de trozos que pueden procesarse. Además, el tamaño de los fragmentos, junto con la técnica de incrustación, determina la relevancia de los fragmentos recuperados para la pregunta.

Solapamiento entre trozos vecinos

La fragmentación requiere un solapamiento adecuado para garantizar que la información no quede cortada de forma rígida. Lo ideal sería garantizar que todo el contexto necesario para responder a una pregunta esté presente en su totalidad en al menos un trozo. Sin embargo, un solapamiento excesivo, aunque resuelve este problema, puede crear un nuevo reto: múltiples trozos solapados que contienen información similar, lo que da lugar a resultados de búsqueda llenos de contenido duplicado.

Tecnología incorporada

Las técnicas de incrustación son algoritmos que convierten trozos de texto en vectores que posteriormente se almacenan en un recuperador de documentos. La técnica utilizada para incrustar trozos y preguntas determina la relevancia de los trozos recuperados para la pregunta, lo que a su vez afecta a la calidad del contenido proporcionado al Big Language Model.

buscador de documentos

Un recuperador de documentos (también conocido como almacén de vectores) es una base de datos que permite almacenar vectores incrustados y recuperarlos rápidamente. Los algoritmos utilizados para emparejar a los vecinos más próximos en el recuperador (por ejemplo, producto punto, similitud coseno) determinan la relevancia de los trozos recuperados. Además, los recuperadores de documentos deben poder escalarse horizontalmente para soportar grandes bases de conocimiento.

modelo de macrolenguaje

La elección del modelo lingüístico de gran tamaño adecuado es un componente clave de la solución. La elección del mejor modelo depende de varios factores, entre ellos las características del conjunto de datos y los demás factores mencionados anteriormente. Para optimizar la solución, se recomienda probar distintos modelos de biglanguage y determinar cuál proporciona los mejores resultados. Mientras que a algunas organizaciones les complace adoptar este enfoque, otras pueden verse limitadas por no poder utilizar GPT4, Palm o Claude Abacus.AI ofrece una variedad de opciones de modelos de gran lenguaje, incluyendo GPT3.5, GPT4, Palm, Azure OpenAI, Claude, Llama2 y los modelos propios de Abacus.AI. Además, Abacus.AI tiene la capacidad de afinar el gran modelo lingüístico en los datos del usuario y utilizarlo para técnicas de generación mejoradas por recuperación, aprovechando así las ventajas de ambos.

Número de trozos

Algunas preguntas requieren información de distintas partes del documento o incluso de distintos documentos. Por ejemplo, para responder a una pregunta del tipo "Enumere algunas películas que contengan animales salvajes" se necesitan fragmentos o trozos de diferentes películas. A veces, los fragmentos más relevantes pueden no aparecer al principio de la búsqueda vectorial. En estos casos, es importante proporcionar varios fragmentos de datos al modelo de lenguaje amplio para su evaluación y la generación de respuestas.

Ajustar cada uno de estos parámetros requiere un esfuerzo considerable por parte del usuario e implica un tedioso proceso de evaluación manual.

Soluciones Abacus.AI

Para hacer frente a este problema, Abacus.AI ha adoptado un enfoque innovador para ofrecer a sus usuarios capacidades AutoML. Este enfoque itera automáticamente sobre varias combinaciones de parámetros, incluido el ajuste fino del gran modelo lingüístico, con el fin de encontrar la mejor combinación para un caso de uso concreto. Además de la documentación proporcionada por el usuario, se requiere un conjunto de datos de evaluación que contenga una serie de preguntas y sus correspondientes respuestas estándar escritas manualmente, que Abacus.AI utiliza para comparar las respuestas generadas por diferentes combinaciones de parámetros con el fin de determinar la configuración óptima.

构建RAG应用最简单易懂的教程之一

Abacus.AI genera las siguientes métricas de evaluación, y el usuario puede seleccionar sus métricas preferidas para determinar qué combinación funciona mejor.

Puntuación BLEU

La puntuación BLEU (Evaluación Bilingüe de Alternativas) es una métrica de evaluación automática de uso común que se utiliza principalmente para evaluar la calidad de las traducciones automáticas. Su objetivo es proporcionar una medida cuantitativa de la calidad de la traducción que esté altamente correlacionada con las puntuaciones humanas.

La puntuación BLEU obtiene una puntuación comparando una traducción candidata (la traducción generada por la máquina) con una o más traducciones de referencia (traducciones generadas por humanos) y calculando el grado de solapamiento de n-gramas entre las traducciones candidata y de referencia. En concreto, evalúa hasta qué punto los n-gramas (es decir, secuencias de n palabras) de las traducciones candidatas coinciden exactamente con los de las traducciones de referencia.

Puntuación METEOR

La puntuación METEOR (Metrics for Evaluating Explicitly Ordered Translations) es otra métrica de evaluación automática utilizada habitualmente para valorar la calidad de las traducciones automáticas. Está diseñada para compensar algunas de las deficiencias de otras métricas de evaluación como BLEU, en particular introduciendo la correspondencia explícita del orden de las palabras y teniendo en cuenta los sinónimos y la prosodia.

Puntuación del BERT

La puntuación BERT es una métrica de evaluación automatizada diseñada para evaluar la calidad de la generación de texto. La puntuación se obtiene calculando la similitud entre cada token de las frases candidatas y de referencia. A diferencia de la concordancia exacta, esta métrica utiliza la incrustación contextual para determinar la similitud de los tokens.

Puntuación de ROUGE

Las puntuaciones ROUGE (Recall-Oriented Alternatives for Summary Evaluation) son un conjunto de métricas de evaluación automatizada utilizadas habitualmente en el procesamiento del lenguaje natural y el resumen de textos. En un principio, estas métricas se diseñaron para evaluar la calidad de los sistemas de resumen de textos, pero ahora se utilizan ampliamente en otros ámbitos, como la traducción automática y la generación de textos.

La puntuación ROUGE mide la calidad del texto generado (por ejemplo, un resumen o una traducción) comparándolo con uno o varios textos de referencia (normalmente resúmenes o traducciones generados por humanos). Mide principalmente el n-grama (es decir, una secuencia de n palabras) y el grado de solapamiento de las secuencias de palabras entre el texto candidato y el texto de referencia.

构建RAG应用最简单易懂的教程之一

Cada una de estas puntuaciones oscila entre 0 y 1, y las puntuaciones más altas indican un mejor rendimiento del modelo. Con Abacus.AI, puedes probar múltiples modelos y métricas para encontrar rápidamente el que mejor funciona con tus datos y tu aplicación específica.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...