Enriquecimiento con IA en Azure Cognitive Search

El enriquecimiento con IA es la aplicación de modelos de aprendizaje automático sobre contenido que no se puede buscar por texto completo en su formato sin procesar. Mediante el enriquecimiento, el análisis y la inferencia se usan para crear contenido y estructura que permiten búsquedas en los que antes no existía ninguno.

Dado que Azure Cognitive Search es una solución de búsqueda de texto completo, el propósito del enriquecimiento con IA es mejorar la utilidad del contenido en escenarios relacionados con la búsqueda:

  • Traducción y detección de idioma para la búsqueda multilingüe
  • El reconocimiento de entidades extrae personas, lugares y otras entidades de fragmentos de texto grandes
  • La extracción de frases clave identifica cuáles son los términos importantes y, después, los indica.
  • El reconocimiento óptico de caracteres (OCR) reconoce texto impreso y manuscrito en archivos binarios
  • El análisis de imágenes describe el contenido de la imagen y genera las descripciones en forma de campos de texto en los que se pueden realizar búsquedas.

El enriquecimiento con IA es una extensión de una canalización de indexador. Una canalización de enriquecimiento tiene todos los componentes de una canalización de indexador (indexador, origen de datos, índice), además de un conjunto de aptitudes que especifica los pasos del enriquecimiento atómico.

En el diagrama siguiente se muestra la progresión del enriquecimiento con IA:

Diagrama de una canalización de enriquecimiento.

La importación es el primer paso. Aquí, el indexador se conecta a un origen de datos y extrae contenido (documentos) al servicio de búsqueda. Azure Blob Storage es el recurso más común que se usa en escenarios de enriquecimiento con IA, pero cualquier origen de datos compatible puede proporcionar contenido.

Enriquecer y crear índice cubre la mayoría de la canalización de enriquecimiento con IA:

  • El enriquecimiento se inicia cuando el indexador "descifra documentos" y extrae sus imágenes y texto. El tipo de procesamiento que se produce a continuación dependerá tanto de los datos como de las aptitudes que se hayan agregado a un conjunto de aptitudes. Si hay imágenes, se pueden reenviar a las aptitudes que realizan el procesamiento de imágenes. El contenido de texto se pone en cola para el procesamiento tanto de texto como de lenguaje natural. Internamente, las aptitudes crean un "documento enriquecido" que recopila las transformaciones a medida que se producen.

  • El contenido enriquecido se genera durante la ejecución del conjunto de aptitudes y es temporal a menos que lo guarde. Puede habilitar una caché de enriquecimiento para conservar documentos y salidas de aptitudes descifrados para su reutilización posterior durante futuras ejecuciones del conjunto de aptitudes.

  • Para obtener contenido en un índice de búsqueda, el indexador debe tener información de asignación para enviar contenido enriquecido al campo de destino. Las asignaciones de campos (explícitas o implícitas) establecen la ruta de acceso de datos de origen a un índice de búsqueda. Las asignaciones de campos de salida establecen la ruta de acceso de datos de los documentos enriquecidos a un índice.

  • La indexación es el proceso en el que se ingiere contenido sin procesar y enriquecido en las estructuras de datos físicas de un índice de búsqueda (sus archivos y carpetas). El análisis léxico y la tokenización se producen en este paso.

La exploración es el último paso. La salida siempre es un índice de búsqueda que se puede consultar desde una aplicación cliente. Opcionalmente, la salida puede ser un almacén de conocimiento que conste de blobs y tablas en Azure Storage a los que se accede a través de herramientas de exploración de datos o procesos de bajada. Si va a crear un almacén de conocimiento, las proyecciones determinan la ruta de acceso de datos para el contenido enriquecido. El mismo contenido enriquecido puede aparecer tanto en índices como en almacenes de conocimiento.

Cuándo usar el enriquecimiento con IA

El enriquecimiento es útil si su contenido sin procesar es texto no estructurado, contenido de imagen o contenido que requiere detección y traducción de idiomas. La aplicación de inteligencia artificial a través de las aptitudes integradas puede desbloquear este contenido para la búsqueda de texto completo y las aplicaciones de ciencia de datos.

También puede crear aptitudes personalizadas para proporcionar procesamiento externo. El código de terceros, interno o de código abierto se puede integrar en la canalización como una aptitud personalizada. Los modelos de clasificación que identifican las características destacadas de varios tipos de documento se encuentran en esta categoría, pero se puede usar cualquier paquete externo que agregue valor al contenido.

Casos de uso de las aptitudes integradas

Las aptitudes integradas se basan en Cognitive Services APIs: Computer Vision y Language Service. A menos que la entrada de contenido sea pequeña, espere adjuntar un recurso facturable de Cognitive Services para ejecutar cargas de trabajo más grandes.

Los conjuntos de aptitudes que se ensamblan mediante aptitudes integradas son apropiados para los siguientes escenarios de la aplicación:

Casos de uso de las aptitudes personalizadas

Las aptitudes personalizadas ejecutan el código externo que se proporcione. Las aptitudes personalizadas pueden admitir escenarios más complejos, como el reconocimiento de formularios o la detección de entidades personalizadas mediante un modelo que se proporciona y se encapsula en la interfaz web de aptitudes personalizadas. Entre los ejemplos de aptitudes personalizadas se incluyen:

Las aptitudes personalizadas no siempre son complejas. Por ejemplo, si tiene un paquete existente que proporciona la coincidencia de patrones o un modelo de clasificación de documentos, puede ajustarlo en una aptitud personalizada.

Almacenamiento de la salida

En Azure Cognitive Search, un indexador guarda el resultado que crea. En una sola ejecución de un indexador se pueden crear hasta tres estructuras de datos que contengan salida enriquecida e indexada.

Almacén de datos Requerido Ubicación Descripción
índice en el que se pueden realizar búsquedas Requerido Servicio de búsqueda Se usa para la búsqueda de texto completo y otros formularios de consulta. La especificación de un índice es un requisito del indexador. El contenido del índice se rellena a partir de salidas de la aptitud, además de los campos de origen que se asignan directamente a los campos del índice.
almacén de conocimiento Opcionales Azure Storage Se usa para aplicaciones de nivel inferior, como la minería de conocimiento o ciencia de datos. Los almacenes de conocimiento se definen dentro de conjuntos de aptitudes. Su definición determina si los documentos enriquecidos se proyectan como tablas u objetos (archivos o blobs) en Azure Storage.
caché de enriquecimiento Opcionales Azure Storage Se usa para almacenar en caché enriquecimientos, con el fin de reutilizarlos en ejecuciones posteriores del conjunto de aptitudes. La caché almacena contenido importado y sin procesar (documentos descifrados). También almacena los documentos enriquecidos creados durante la ejecución del conjunto de aptitudes. El almacenamiento en caché es especialmente útil si se usan el análisis de imágenes o el OCR, y se desea ahorrar el tiempo y los gastos derivados de tener que procesar de nuevo los archivos de imagen.

Los índices y los almacenes de conocimiento son totalmente independientes entre sí. Aunque debe adjuntar un índice para satisfacer los requisitos del indexador, si su único objetivo es un almacén de conocimiento, puede omitir el índice una vez rellenado. No obstante, procure no eliminarlo. Si desea volver a ejecutar el indexador y el conjunto de aptitudes, necesitará el índice para que se ejecute el indexador.

Exploración del contenido

Tras definir y cargar un índice de búsqueda o un almacén de conocimiento, puede explorar sus datos.

Realización de consultas en un índice de búsqueda

Ejecute consultas para acceder al contenido enriquecido generado por la canalización. El índice es similar a cualquier otro que pueda crear para Azure Cognitive Search: puede complementar análisis de texto con analizadores personalizados, invocar consultas de búsqueda aproximada, agregar filtros o experimentar con perfiles de puntuación para ajustar la pertinencia de la búsqueda.

Uso de herramientas de exploración de datos en un almacén de conocimiento

En Azure Storage, un almacén de conocimiento puede asumir las siguientes formas: un contenedor de blobs de un documento JSON, un contenedor de blobs de objetos de imagen o tablas en Table Storage. Puede usar Explorador de Storage, Power BI o cualquier aplicación que se conecte a Azure Storage para acceder al contenido.

  • Un contenedor de blobs captura documentos enriquecidos en su totalidad, lo que resulta útil si va a crear una fuente en otros procesos.

  • Una tabla es útil si necesita segmentos de documentos enriquecidos o si desea incluir o excluir partes específicas de la salida. Para el análisis en Power BI, las tablas son el origen de datos recomendado para la exploración y visualización de datos en Power BI.

Disponibilidad y precios

El enriquecimiento está disponible en las regiones que tienen Azure Cognitive Services. La disponibilidad del enriquecimiento se puede comprobar en la página Productos de Azure disponibles por región. El enriquecimiento está disponible en todas las regiones excepto:

  • Sudeste de Australia
  • Norte de China 2
  • Centro-oeste de Alemania

La facturación sigue un modelo de precios de pago por uso. Los costos del uso de aptitudes integradas se pasan cuando se especifica una clave de Cognitive Services de varias regiones en el conjunto de aptitudes. También hay costos asociados con la extracción de imágenes, según la medición de Cognitive Search. Sin embargo, la extracción de texto y las aptitudes de utilidad no son facturables. Para más información, consulte Modo de cobro por Azure Cognitive Search.

Lista de comprobación: Un flujo de trabajo típico

Una canalización de enriquecimiento consta de indexadores que tienen conjuntos de aptitudes. Después de la indexación, puede consultar un índice para validar los resultados.

Comience con un subconjunto de datos en un origen de datos admitido. El diseño del indexador y del conjunto de aptitudes es un proceso iterativo. El trabajo va más rápido con un pequeño conjunto de datos representativo.

  1. Cree un origen de datos que especifique una conexión con sus datos.

  2. Cree un conjunto de aptitudes. A menos que el proyecto sea pequeño, querrá asociar un recurso de Cognitive Services. Si va a crear un almacén de conocimiento, defínalo en el conjunto de aptitudes.

  3. Cree un esquema de índice que defina un índice de búsqueda.

  4. Cree un indexador y ejecútelo para reunir todos los componentes anteriores. Este paso recupera los datos, ejecuta el conjunto de aptitudes y carga el índice.

    Un indexador también es el lugar en el que se especifican las asignaciones de campos y las asignaciones de campos de salida que configuran la ruta de acceso de datos en un índice de búsqueda.

    Opcionalmente, habilite el almacenamiento en caché del enriquecimiento en la configuración del indexador. Este paso le permite volver a utilizar más adelante los enriquecimientos existentes.

  5. Ejecute consultas para evaluar los resultados o iniciar una sesión de depuración para trabajar con cualquier problema del conjunto de aptitudes.

Para repetir cualquiera de los pasos anteriores, restablezca el indexador antes de ejecutarlo. También puede eliminar y volver a crear los objetos en cada ejecución (recomendado si usa el nivel Gratis). Si ha habilitado el almacenamiento en caché, el indexador extraerá datos de la caché estos no se modifican en el origen y si las modificaciones en la canalización no invalidan la caché.

Pasos siguientes