Búsqueda de índices para Azure Machine Learning (versión preliminar)
La herramienta de flujo de avisos Búsqueda de índices permite el uso de índices vectoriales comunes (como Búsqueda de Azure AI, FAISS y Pinecone) para la generación aumentada de recuperación (RAG) en el flujo de avisos. La herramienta detecta automáticamente los índices del área de trabajo y permite usar la selección del índice en el flujo.
Importante
La herramienta Búsqueda de índices se encuentra actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin contrato de nivel de servicio y no es aconsejable usarla para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
Compilación con la herramienta Búsqueda de índices
Cree o abra un flujo en Estudio de Azure Machine Learning. Para obtener más información, consulte Crear un flujo.
Seleccione + Más herramientas>Búsqueda de índices para agregar la herramienta Búsqueda de índices al flujo.
Escriba los valores de los parámetros de entrada de la herramienta Búsqueda de índices. La herramienta LLM puede generar el vector de entrada.
Agregue más herramientas al flujo según sea necesario o seleccione Ejecutar para ejecutar el flujo.
Para obtener más información sobre la salida devuelta, consulte salidas.
Entradas
Los siguientes parámetros de entrada están disponibles:
Nombre | Escribir | Descripción | Obligatorio |
---|---|---|---|
mlindex_content | string | Tipo de índice que se va a usar. La entrada depende del tipo de índice. Debajo de la tabla se muestra un ejemplo de JSON de índice de búsqueda de Azure Cog* | Sí |
Consultas | string, Union[string, List[String]] | Texto que se va a consultar. | Sí |
query_type | string | Tipo de consulta que se va a realizar. Las opciones incluyen palabra clave, semántica, híbrida, etc. | Sí |
top_k | integer | Recuento de entidades con puntuación superior que se van a devolver. El valor predeterminado es 3. | No |
*Ejemplo de JSON de ACS:
embeddings:
api_base: <api_base>
api_type: azure
api_version: 2023-07-01-preview
batch_size: '1'
connection:
id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<AOAI_connection>
connection_type: workspace_connection
deployment: <embedding_deployment>
dimension: <embedding_model_dimension>
kind: open_ai
model: <embedding_model>
schema_version: <version>
index:
api_version: 2023-07-01-Preview
connection:
id: /subscriptions/<subscription>/resourceGroups/<resource_group>/providers/Microsoft.MachineLearningServices/workspaces/<workspace> /connections/<cogsearch_connection>
connection_type: workspace_connection
endpoint: <cogsearch_endpoint>
engine: azure-sdk
field_mapping:
content: id
embedding: content_vector_open_ai
metadata: id
index: <index_name>
kind: acs
semantic_configuration_name: azureml-default
Salidas
La siguiente respuesta en formato JSON es un ejemplo devuelto por la herramienta que incluye las entidades con mayor puntuación. La entidad sigue un esquema genérico del resultado de búsqueda vectorial proporcionado por el SDK de promptflow-vectordb. Para la búsqueda de índices vectoriales, se rellenan los campos siguientes:
Nombre del campo | Tipo | Descripción |
---|---|---|
metadata | dict | Pares clave-valor personalizados proporcionados por el usuario al crear el índice |
page_content | string | Contenido del fragmento de vector que se usa en la búsqueda |
score | FLOAT | Depende del tipo de índice definido en el índice vectorial. Si el tipo de índice es Faiss, la puntuación es la distancia L2. Si el tipo de índice es Azure AI Search, la puntuación es la similitud coseno. |
[
{
"metadata":{
"answers":{},
"captions":{
"highlights":"sample_highlight1",
"text":"sample_text1"
},
"page_number":44,
"source":{
"filename":"sample_file1.pdf",
"mtime":1686329994,
"stats":{
"chars":4385,
"lines":41,
"tiktokens":891
},
"url":"sample_url1.pdf"
},
"stats":{
"chars":4385,"lines":41,"tiktokens":891
}
},
"page_content":"vector chunk",
"score":0.021349556744098663
},
{
"metadata":{
"answers":{},
"captions":{
"highlights":"sample_highlight2",
"text":"sample_text2"
},
"page_number":44,
"source":{
"filename":"sample_file2.pdf",
"mtime":1686329994,
"stats":{
"chars":4385,
"lines":41,
"tiktokens":891
},
"url":"sample_url2.pdf"
},
"stats":{
"chars":4385,"lines":41,"tiktokens":891
}
},
"page_content":"vector chunk",
"score":0.021349556744098663
},
]
Migración de herramientas heredadas a la herramienta de búsqueda de índices
La herramienta de búsqueda de índices busca reemplazar las tres herramientas de índice heredadas en desuso, la herramienta de búsqueda de índices vectoriales, la herramienta de búsqueda de base de datos vectoriales y la herramienta de búsqueda de índices de Faiss. Si tiene un flujo que contiene una de estas herramientas, siga los pasos que se indican a continuación para actualizar el flujo.
Actualización de las herramientas
Vaya al flujo. Para ello, seleccione la pestaña Flujo de avisos en Creación, seleccione la pestaña dinámica Flujos y después el nombre del flujo.
Una vez que esté dentro del flujo, seleccione el botón "+ Más herramientas" cerca de la parte superior del panel. Se debe abrir una lista desplegable y seleccionar Búsqueda de índices [versión preliminar] para agregar una instancia de la herramienta de búsqueda de índices.
Asigne un nombre al nuevo nodo y seleccione "Agregar".
En el nuevo nodo, seleccione el cuadro de texto "mlindex_content". Debe ser el primer cuadro de texto de la lista.
En el cajón Generar que aparece, siga las siguientes instrucciones para actualizar desde las tres herramientas heredadas:
- Si usa la herramienta heredada de búsqueda de índice de vectores, seleccione “Índice registrado" en la lista desplegable “index_type”. Seleccione el recurso de índice vectorial en la lista desplegable “mlindex_asset_id”.
- Si usa la herramienta de búsqueda de índices de Faiss heredada, seleccione “Faiss” en la lista desplegable “index_type” y especifique la misma ruta de acceso que en la herramienta heredada.
- Si usa la herramienta heredada de búsqueda de base de datos vectoriales, seleccione búsqueda de IA o Pinecone en función del tipo de base de datos en la lista desplegable “index_type” y rellene la información según sea necesario.
Después de rellenar la información necesaria, seleccione Guardar.
Al volver al nodo, debe haber información rellenada en el cuadro de texto “mlindex_content”. Seleccione el siguiente cuadro de texto "consultas" y después los términos de búsqueda que quiera consultar. Deberá seleccionar el mismo valor que la entrada del nodo "embed_the_question", normalmente "${inputs.question}" o "${modify_query_with_history.output}" (el primero si está en un flujo estándar y el segundo si está en un flujo de chat).
Seleccione un tipo de consulta haciendo clic en la lista desplegable situada junto a “query_type”. "Vector" generará resultados idénticos al flujo heredado, pero en función de la configuración del índice, es posible que haya disponibles otras opciones, como "Híbrido" y "Semántico".
Edite los componentes de bajada para consumir la salida del nodo recién agregado, en lugar de la salida del nodo de búsqueda de índices vectoriales heredado.
Elimine el nodo de búsqueda de índice de vectores y su nodo de inserción primario.