Editar

Compartir a través de


Fase de inserción de generación de RAG

Servicios de Azure AI
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

En los pasos anteriores de la solución de generación de Retrieval-Augmented (RAG), dividió los documentos en fragmentos y enriqueció los fragmentos. En este paso, generará incrustaciones para esos fragmentos y los campos de metadatos en los que planea realizar búsquedas vectoriales.

Este artículo forma parte de una serie. Lea la introducción .

Una inserción es una representación matemática de un objeto, como texto. Cuando se entrena una red neuronal, se crean muchas representaciones de un objeto. Cada representación tiene conexiones a otros objetos de la red. Una inserción es importante porque captura el significado semántico del objeto.

La representación de un objeto tiene conexiones a representaciones de otros objetos, por lo que puede comparar objetos matemáticamente. En el ejemplo siguiente se muestra cómo las incrustaciones capturan el significado semántico y las relaciones entre sí:

embedding (king) - embedding (man) + embedding (woman) = embedding (queen)

Las incrustaciones se comparan entre sí mediante las nociones de similitud y distancia. En la cuadrícula siguiente se muestra una comparación de incrustaciones.

Diagrama que muestra una comparación de vectores.

En una solución RAG, a menudo inserta la consulta de usuario mediante el mismo modelo de inserción que los fragmentos. A continuación, busque los vectores pertinentes en la base de datos para devolver los fragmentos más semánticamente relevantes. El texto original de los fragmentos pertinentes se pasa al modelo de lenguaje como datos de base.

Nota

Los vectores representan el significado semántico del texto de una manera que permite la comparación matemática. Debe limpiar los fragmentos para que la proximidad matemática entre vectores refleje con precisión su relevancia semántica.

La importancia del modelo de inserción

El modelo de inserción que elija puede afectar significativamente a la relevancia de los resultados de búsqueda vectorial. Debe tener en cuenta el vocabulario del modelo de inserción. Cada modelo de inserción se entrena con un vocabulario específico. Por ejemplo, el tamaño del vocabulario del modelo bert de es de aproximadamente 30 000 palabras.

El vocabulario de un modelo de inserción es importante porque controla palabras que no están en su vocabulario de una manera única. Si una palabra no está en el vocabulario del modelo, todavía calcula un vector para él. Para ello, muchos modelos desglosan las palabras en subpalabras. Tratan las subáreas como tokens distintos, o agregan los vectores de las subpalabras para crear una sola inserción.

Por ejemplo, es posible que la palabra histamina no esté en el vocabulario de un modelo de inserción. La palabra histamina tiene un significado semántico como un químico que su cuerpo libera, lo que causa síntomas de alergia. El modelo de inserción no contiene histamina. Por lo tanto, puede separar la palabra en subwords que se encuentran en su vocabulario, como su, tay mina.

Diagrama que muestra la palabra histograma desglosada en las subpalabras siguientes: su, ta y mía.

Los significados semánticos de estas subpalabras están lejos del significado de histamina. Los valores vectoriales individuales o combinados de las subpalabras dan lugar a coincidencias de vectores más pobres en comparación con si histamina estaban en el vocabulario del modelo.

Elección de un modelo de inserción

Determine el modelo de inserción adecuado para su caso de uso. Considere la superposición entre el vocabulario del modelo de inserción y las palabras de los datos al elegir un modelo de inserción.

Diagrama que muestra el flujo de cómo elegir un modelo de inserción.

En primer lugar, determine si tiene contenido específico del dominio. Por ejemplo, ¿los documentos son específicos de un caso de uso, su organización o un sector? Una buena manera de determinar la especificidad del dominio es comprobar si puede encontrar las entidades y palabras clave en el contenido de Internet. Si es posible, es probable que un modelo de inserción general también pueda hacerlo.

Contenido general o no específico del dominio

Al elegir un modelo de inserción general, comience con el Tabla de clasificación de Face hugging. Obtenga up-toclasificación de modelos de inserción de fecha. Evalúe cómo funcionan los modelos con los datos y comience con los modelos de clasificación superior.

Contenido específico del dominio

En el caso del contenido específico del dominio, determine si puede usar un modelo específico del dominio. Por ejemplo, los datos podrían estar en el dominio biomédico, por lo que podría usar el modelo de bioGPT de . Este modelo de lenguaje está entrenado previamente en una gran colección de literatura biomédica. Puede usarlo para minería y generación de texto biomédico. Si hay modelos específicos del dominio disponibles, evalúe cómo funcionan estos modelos con los datos.

Si no tiene un modelo específico del dominio o el modelo específico del dominio no funciona bien, puede ajustar un modelo de inserción general con el vocabulario específico del dominio.

Importante

Para cualquier modelo que elija, debe comprobar que la licencia se adapte a sus necesidades y que el modelo proporcione la compatibilidad necesaria con el lenguaje.

Evaluación de modelos de inserción

Para evaluar un modelo de inserción, visualice las incrustaciones y evalúe la distancia entre los vectores de pregunta y fragmento.

Visualización de incrustaciones

Puede usar bibliotecas, como t-SNE, para trazar los vectores de los fragmentos y la pregunta en un grafo X-Y. A continuación, puede determinar la distancia entre los fragmentos entre sí y desde la pregunta. En el gráfico siguiente se muestran los vectores de fragmentos trazados. Las dos flechas cerca de otra representan dos vectores de fragmento. La otra flecha representa un vector de pregunta. Puede usar esta visualización para comprender hasta dónde se encuentra la pregunta de los fragmentos.

Gráfico que muestra una visualización de una inserción. La imagen muestra varios puntos azules que se trazan en una escala X-Y.

Dos flechas apuntan a puntos de trazado cerca de otro, y otra flecha muestra un punto de trazado lejos de los otros dos.

Calcular distancias de inserción

Puede usar un método mediante programación para evaluar cómo funciona el modelo de inserción con sus preguntas y fragmentos. Calcule la distancia entre los vectores de pregunta y los vectores de fragmento. Puedes usar la distancia euclidiana o la distancia de Manhattan.

Economía de inserción

Al elegir un modelo de inserción, debe navegar por un equilibrio entre el rendimiento y el costo. Los modelos de inserción de gran tamaño suelen tener un mejor rendimiento en los conjuntos de datos de pruebas comparativas. Sin embargo, el aumento del rendimiento agrega costos. Los vectores grandes requieren más espacio en una base de datos vectorial. También requieren más recursos computacionales y tiempo para comparar incrustaciones. Los modelos de inserción pequeños suelen tener un rendimiento inferior en las mismas pruebas comparativas. Requieren menos espacio en la base de datos de vectores y menos proceso y tiempo para comparar incrustaciones.

Al diseñar el sistema, debe tener en cuenta el costo de inserción en términos de requisitos de almacenamiento, proceso y rendimiento. Debe validar el rendimiento de los modelos a través de la experimentación. Los puntos de referencia disponibles públicamente son principalmente conjuntos de datos académicos y podrían no aplicarse directamente a los datos empresariales y los casos de uso. En función de los requisitos, puede favorecer el rendimiento por encima del costo o aceptar un equilibrio de rendimiento suficiente para reducir el costo.

Paso siguiente