Almacén de conocimiento en Azure Cognitive Search

El almacén de conocimiento es un receptor de datos creado por una canalización de enriquecimiento con IA de Cognitive Search que almacena contenido enriquecido en tablas y contenedores de blobs en Azure Storage para el análisis independiente o el procesamiento de nivel inferior en escenarios que no son de búsqueda, como la minería de conocimiento.

Si ha usado aptitudes cognitivas en el pasado, ya sabe que los conjuntos de aptitudes mueven un documento a través de una secuencia de enriquecimientos que invocan transformaciones atómicas, como el reconocimiento de entidades o la traducción de texto. El resultado puede ser un índice de búsqueda o proyecciones en un almacén de conocimientos. Las dos salidas, el índice de búsqueda y el almacén de conocimiento son productos de la misma canalización mutuamente excluyentes. Aunque se obtienen de las mismas entradas, se genera una salida estructurada y almacenada que se emplea en aplicaciones diferentes.

Canalización con conjunto de aptitudes

Físicamente, un almacén de conocimiento es Azure Storage, ya sea Azure Table Storage, Azure Blob Storage o ambos. Cualquier herramienta o proceso que pueda conectarse a Azure Storage puede consumir el contenido de un almacén de conocimiento.

Visto a través Storage Browser, un almacén de conocimiento se parece a cualquier otra colección de tablas, objetos o archivos. En el ejemplo siguiente se muestra un almacén de conocimiento compuesto por tres tablas con campos que se arrastran desde el origen de datos o se crean mediante enriquecimientos (vea "sentiment score" y "translated_text").

Lectura y escritura de aptitudes desde el árbol de enriquecimiento

Ventajas de Knowledge Store

Las principales ventajas de un almacén de conocimiento son dos: el acceso flexible al contenido y la capacidad de dar forma a los datos.

A diferencia de un índice de búsqueda al que solo se puede acceder a través de consultas de Cognitive Search, cualquier herramienta, aplicación o proceso que admita conexiones a Azure Storage puede acceder a un almacén de conocimiento. Esta flexibilidad abre nuevos escenarios para consumir el contenido analizado y enriquecido generado por una canalización de enriquecimiento.

El mismo conjunto de aptitudes que enriquece los datos también se puede usar para dar forma a los datos. Algunas herramientas como Power BI funcionan mejor con tablas, mientras que una carga de trabajo de ciencia de datos podría requerir una estructura de datos compleja en un formato de blob. La adición de una aptitud de Conformador a un conjunto de aptitudes le proporciona control sobre la forma de los datos. A continuación, puede pasar estas formas a proyecciones, ya sean tablas o blobs, para crear estructuras de datos físicos que se alineen con el uso previsto de los datos.

En el vídeo siguiente se explican estas ventajas y mucho más.

Definición del almacén de conocimiento

Un almacén de conocimiento se define dentro de una definición de conjunto de aptitudes y consta de dos componentes:

  • Una cadena de conexión a Azure Storage.

  • Proyecciones que determinan si el almacén de conocimiento consta de tablas, objetos o archivos.

El elemento proyecciones es una matriz. Puede crear varios conjuntos de combinaciones de tabla-objeto-archivo dentro de un almacén de conocimiento.

"knowledgeStore": {
   "storageConnectionString":"<YOUR-AZURE-STORAGE-ACCOUNT-CONNECTION-STRING>",
   "projections":[
      {
         "tables":[ ],
         "objects":[ ],
         "files":[ ]
      }
   }

El tipo de proyección que especifique en esta estructura determina el tipo de almacenamiento que usará el almacén de conocimiento.

  • tables proyecta el contenido enriquecido en Table Storage. Defina una proyección de tabla cuando necesite estructuras de informes tabulares para escribir entradas en herramientas analíticas o realizar exportaciones de tramas de datos en otros almacenes de datos. Puede especificar varios elementos tables en el mismo grupo de proyección para obtener un subconjunto o una sección transversal de documentos enriquecidos. Dentro del mismo grupo de proyección, las relaciones entre las tablas se conservan para que pueda trabajar con todas ellas.

    El contenido proyectado no se agrega ni se normaliza. En la captura de pantalla siguiente se muestra una tabla, ordenada por frase clave, con el documento primario indicado en la columna adyacente. A diferencia de la ingesta de datos durante la indexación, no hay ningún análisis lingüístico ni agregación de contenido. Las formas plurales y las diferencias en las mayúsculas y minúsculas se consideran instancias únicas.

    Captura de pantalla de frases y documentos clave en una tabla

  • objects proyecta el documento JSON en Blob Storage. La representación física de un elemento object es una estructura JSON jerárquica que representa un documento enriquecido.

  • files proyecta los archivos de imagen en Blob Storage. Un elemento file es una imagen extraída de un documento, que se transfiere sin cambios al almacenamiento de blobs. Aunque se denomina "archivos", se muestra en Blob Storage, no en el almacenamiento de archivos.

Crear un almacén de conocimientos

Para crear el almacén de conocimiento, use el portal o una API. Necesitará Azure Storage, un conjunto de aptitudes y un indexador. Dado que los indexadores requieren un índice de búsqueda, también deberá proporcionar una definición de índice.

Opte por el enfoque del portal para obtener la ruta más rápida hacia un almacén de conocimiento terminado. O bien, elija la API de REST para comprender mejor cómo se definen y se relacionan los objetos.

Cree su primer almacén de conocimiento en cuatro pasos mediante el asistente para importación de datos.

  1. Definición de un origen de datos

  2. Defina el conjunto de aptitudes y especifique un almacén de conocimiento.

  3. Defina un esquema de índice. El asistente lo necesita y puede inferir uno automáticamente.

  4. Ejecute el asistente. La extracción, el enriquecimiento y el almacenamiento se producen en este último paso.

El asistente automatiza las tareas que, de lo contrario, tendría que controlar manualmente. Específicamente, tanto el modelado como las proyecciones (definiciones de estructuras de datos físicas en Azure Storage) se crean automáticamente.

Conexión con aplicaciones

Una vez que el enriquecimiento existe en el almacenamiento, puede usarse cualquier herramienta o tecnología que se conecte a Azure Blob o Table Storage para explorar, analizar o consumir el contenido. La lista siguiente es un comienzo:

  • El Explorador de almacenamiento para ver la estructura y el contenido de los documentos enriquecidos. Considere esto como la herramienta de base de referencia para ver el contenido del almacén de conocimientos.

  • Power BI para crear informes y realizar análisis.

  • Azure Data Factory para manipulación adicional.

Ciclo de vida del contenido

Cada vez que se ejecutan el indexador y el conjunto de aptitudes, el almacén de conocimiento se actualiza si el conjunto de aptitudes o los datos de origen subyacentes han cambiado. Los cambios que recoge el indexador se propagan a través del proceso de enriquecimiento a las proyecciones del almacén de conocimiento, lo que garantiza que los datos proyectados son una representación actual del contenido en el origen de datos de origen.

Nota

Aunque puede editar los datos en las proyecciones, las modificaciones se sobrescribirán en la invocación de la canalización siguiente, suponiendo que se actualice el documento en los datos de origen.

Cambios en los datos de origen

En el caso de los orígenes de datos que admiten el seguimiento de cambios, un indexador procesará documentos nuevos y modificados, y omitirá los documentos existentes que ya se han procesado. La información de marca de tiempo varía según el origen de datos, pero en un contenedor de blobs, el indexador examina la fecha lastmodified para determinar qué blobs se deben ingerir.

Cambios en un conjunto de aptitudes

Si va a realizar cambios en un conjunto de aptitudes, debe habilitar el almacenamiento en caché de documentos enriquecidos para reutilizar los enriquecimientos existentes siempre que sea posible.

Sin el almacenamiento en caché incremental, el indexador siempre procesará los documentos por orden de límite máximo, sin retroceder. En el caso de los blobs, el indexador procesaría los blobs ordenados por lastModified, independientemente de los cambios en la configuración del indexador o en el conjunto de aptitudes. Si cambia un conjunto de aptitudes, los documentos procesados previamente no se actualizan para reflejar el nuevo conjunto de aptitudes. Los documentos procesados después del cambio del conjunto de aptitudes usarán el nuevo conjunto de aptitudes, lo que provocará que los documentos de índice sean una combinación de conjuntos de aptitudes antiguos y nuevos.

Con el almacenamiento en caché incremental y después de una actualización del conjunto de aptitudes, el indexador reutilizará los enriquecimientos que no se hayan visto afectados por el cambio del conjunto de aptitudes. Los enriquecimientos ascendentes se extraen de la memoria caché, al igual que los enriquecimientos independientes y aislados de la aptitud modificada.

Eliminaciones

Aunque un indexador crea y actualiza estructuras y contenido en Azure Storage, no los elimina. Las proyecciones siguen existiendo incluso cuando se elimina el indexador o el conjunto de aptitudes. Como propietario de la cuenta de almacenamiento, debe eliminar una proyección si ya no es necesaria.

Pasos siguientes

El almacén de conocimiento ofrece persistencia de documentos enriquecidos, lo cual resulta útil al diseñar un conjunto de aptitudes o durante la creación de nuevas estructuras y contenido para su consumo por parte de cualquier aplicación cliente capaz de acceder a una cuenta de Azure Storage.

El enfoque más sencillo para crear documentos enriquecidos es mediante el portal, pero también puede usar Postman y la API de REST, que resulta más útil si desea obtener conclusiones sobre cómo se crean objetos y se hace referencia a estos mediante programación.