El enriquecimiento de Inteligencia Artificial es una capacidad de indexación de Azure Cognitive Search que habilita la extracción de información en imágenes, archivos y otras fuentes de datos no estructurados.
Las tareas de extracción y enriquecimiento se implementan a través de habilidades cognitivas, tales como el procesamiento del lenguaje natural y el procesamiento de imágenes con varias posibilidades: reconocimiento de entidades, detección de lenguaje, detección de sentimientos, OCR, detección de rostros, etc.
En esta sesión se describirá el servicio Azure Cognitive Search y se construirá un pipeline de enriquecimiento capaz de extraer información de documentos PDF con el cual se generará un sitio web o una app móvil para realizar búsquedas de información.
2. #GlobalAzure
Luis Beltrán
• Investigador en Tomas Bata University en Zlín, República
Checa.
• Docente en Tecnológico Nacional de México en Celaya,
Mexico.
• Alto interés en Xamarin, Azure e Inteligencia Artificial
@darkicebeam
luis@luisbeltran.mx
3. #GlobalAzure
Agenda
• ¿Qué es Azure Search?
• Enriquecimiento de IA
• Descripción
• Pasos
• Demo
Descarga la presentación: https://bit.ly/LuisGlobalAzure04
6. #GlobalAzure
Capacidades de los Cognitive Services
Integra la Inteligencia Artificial en tus aplicaciones, sitios web y bots
Detección de objetos, escenas
y actividades.
Reconocimiento e
identificación facial
Reconocimiento de
celebridades y lugares
emblemáticos
Reconocimiento de la emoción
Reconocimiento de texto y
escritura a mano (OCR)
Extracción y análisis de
metadatos de video, audio y
fotogramas clave
Moderación de contenido
explícito u ofensivo
Reconocimiento de imagen
personalizado
Visión
Detección de idioma
Análisis de sentimiento de
texto
Extracción de frases clave
Reconocimiento de la entidad
Corrección ortográfica
Moderación de contenido de
texto explícito u ofensivo,
detección de PII (Personally
Identifiable Information)
Traducción de textos
Traducción de texto
personalizable
Comprensión del lenguaje
contextual
Lenguaje
Resultados de búsqueda web,
noticias, imágenes y videos sin
publicidad
Tendencias para video, noticias
Identificación de imágenes,
clasificación y extracción de
conocimiento.
Identificación de imágenes y
productos similares.
Reconocimiento y clasificación
de entidades nombradas
Adquisición de conocimiento
para entidades nombradas
Creación de motores de
búsqueda personalizados sin
publicidad
Sugerencias automáticas
Conocimiento
Transcripción de voz (voz a
texto)
Síntesis de voz (texto a voz)
Traducción de voz en tiempo
real
Identificación y verificación del
orador
Modelos de voz
personalizados para
transcripción y traducción
Voz personalizada
Voz
Extracción de Q&A a partir de
texto no estructurado
Creación de base de
conocimiento (KB) a partir de
colecciones de preguntas y
respuestas
Emparejamiento semántico
para bases de conocimiento
Aprendizaje de
personalización de contenido
personalizable
Búsqueda
7. #GlobalAzure
Enriquecimiento de IA
El enriquecimiento de AI es una capacidad de indexación de Azure
Cognitive Search utilizada para extraer texto de imágenes, blobs y otras
fuentes de datos no estructurados.
El enriquecimiento y la extracción hacen que el contenido sea más
“buscable” mediante un índice o tienda de conocimiento.
La extracción y el enriquecimiento se implementan por medio de
habilidades cognitivas asociadas a un pipeline de indexación.
8. #GlobalAzure
Desde un punto de vista general…
INGIERE
Datos en cualquier
formato y cualquier
almacenamiento de
Azure
ENRIQUECE EXPLORA
Anotaciones
Habilidades cognitivas
Búsqueda
9. #GlobalAzure
Las habilidades cognitivas integradas en Serch se dividen en dos categorías:
• Las habilidades de procesamiento del lenguaje natural incluyen detección
de lenguaje, extracción de frases clave, manipulación de texto, detección
de sentimientos, reconocimiento de entidades. El texto no estructurado es
mapeado a campos filtrables y de búsqueda en un índice.
• Las habilidades de procesamiento de imágenes incluyen OCR e
identificación de características visuales: detección facial, interpretación de
imágenes, reconocimiento de imágenes (personas famosas y puntos de
referencia) o atributos como la orientación de la imagen. Estas habilidades
crean representaciones de texto del contenido de la imagen, lo que
permite realizar búsquedas con las capacidades de consulta de Azure
Cognitive Search.
10. #GlobalAzure
Arquitectura de Cognitive Search
Skillset:
Un pipeline extensible
de enriquecimiento
Indexación
para
búsqueda
Document
Cracking
Documentos
Anotados
Datos del
Cliente
IEnricherIEnricherHabilidad
Cognitiva
Índice de
Búsqueda
INGIERE ENRIQUECE EXPLORA
11. #GlobalAzure
• Las habilidades cognitivas en Azure Cognitive Search se basan en
modelos de aprendizaje automático previamente capacitados en API
de servicios cognitivos: Computer Vision y Text Analytics.
• El procesamiento de imágenes y lenguaje natural se aplica durante la
fase de ingestión de datos, y los resultados se convierten en parte de
la composición de un documento en un índice de búsqueda en Azure
Cognitive Search.
12. #GlobalAzure
• Los datos se obtienen como un Azure dataset y luego se envían a
través de una canalización de indexación utilizando las habilidades
integradas que necesite.
• La arquitectura es extensible, por lo que si las habilidades integradas
no son suficientes, puede crear y adjuntar habilidades personalizadas
para integrar el procesamiento personalizado. Por ejemplo, un
módulo de entidad personalizado o un clasificador de documentos
dirigido a dominios específicos, tales como publicaciones científicas,
finanzas o medicina.
13. #GlobalAzure
¿Cuándo utilizar el enriquecimiento de IA?
Deberías considerar el uso de habilidades cognitivas integradas…
• si tu contenido sin procesar es texto no estructurado, viene incluido
en imágenes o es un contenido que necesita detección y traducción
de idioma. La aplicación de IA a través de las habilidades cognitivas
incorporadas puede desbloquear este contenido, aumentando su
valor y utilidad en sus aplicaciones de búsqueda y ciencia de datos.
• si tienes código open-source o de terceros que quisieras integrar en
el pipeline. Modelos de clasificación que identifican características
sobresalientes de varios tipos de documentos se incluyen en esta
categoría, pero se podría usar cualquier paquete que agregue valor
a tu contenido.
14. #GlobalAzure
Requerimientos de las habilidades
personalizadas
https
Habilidad de
traducción
personalizada
{
"values": [
{
"recordId": "7cad2",
"data":
{
"value1":
"I owe you 5 grand"
}
},
{
"recordId": "7cad3",
"data":
{
"value1":
"Just my 2 cents",
}
},
…
]
}
{
"values": [
{
"recordId": "7cad2",
"data":
{
"myOuput1":
"Te debo cinco mil"
}
},
{
"recordId": "7cad3",
"data":
{
"myOutput1":
"Solo mis 2 centavos"
}
},
…
]
}
15. #GlobalAzure
Pasos a seguir para construir un pipeline de
enriquecimiento
Un pipeline de enriquecimiento está basado en indexadores.
Los indexadores cargan un índice basado en asignaciones campo-a-campo
entre el índice y su fuente de datos para descifrar documentos (document
cracking).
Las habilidades, ahora adjuntadas a los indexadores, interceptan y
enriquecen los documentos de acuerdo con los conjuntos de habilidades
(skillsets) definidos.
Una vez indexado, puedes acceder al contenido a través de solicitudes de
búsqueda usando cualquier tipo de consultas admitido por Azure Cognitive
Search.
16. #GlobalAzure
Paso 1: Fase de conexión y “document cracking”
Al comienzo del pipeline, tienes contenido no estructurado de texto o sin texto
(imágenes, documentos escaneados…). Los datos deben existir en un servicio
de almacenamiento de datos de Azure al que pueda acceder el indexador. Los
indexadores pueden "descifrar" los documentos fuente para extraer su texto o
crear contenido de texto de fuentes que no son de texto durante la indexación.
La indexación toma tiempo, así que comienza con un conjunto de datos
pequeño y representativo. Luego puedes aumentar gradualmente conforme la
la solución madura.
17. #GlobalAzure
Document cracking (descifrar documentos)
• Diferentes tipos de data sources
• Blob Storage
• Azure SQL
• Cosmos DB
• Azure Tables
• MySQL
• Azure Files (preview privado)
• Formatos de archivo
soportados en blob storage:
rtf
json
html
doc
ppt
xls
pdf
xml
png
18. #GlobalAzure
Paso 2: Fase de cognitive skills y enriquecimiento
El enriquecimiento comienza con las habilidades cognitivas realizando
operaciones atómicas. Por ejemplo, una vez descifrado un PDF, puedes
aplicar reconocimiento de entidad, detección de idioma o extracción de
frases clave para producir nuevos campos en su índice que no están
disponibles de forma nativa en la fuente.
En conjunto, la colección de habilidades utilizadas en el pipeline se
denomina conjunto de habilidades (skillset).
20. #GlobalAzure
Un skillset se basa en habilidades cognitivas integradas, o habilidades
personalizadas que se conectan al skillset.
Un skillset puede ser tan sencillo o complejo como se desee, y determina no
solo el tipo de procesamiento, sino también el orden de las operaciones. Un
skillset más las asignaciones de campo definidas como parte de un indexador
especifican por completo el pipeline de enriquecimiento.
Internamente, el pipeline genera una colección de documentos
enriquecidos. Puedes decidir qué partes de los documentos enriquecidos
deben asignarse a campos indexables en el índice de búsqueda. Por ejemplo,
si se aplicaron las habilidades de extracción de frases clave y reconocimiento
de entidades, esos nuevos campos se convertirían en parte del documento
enriquecido y se pueden asignar a campos en su índice.
21. #GlobalAzure
Habilidades Cognitivas
Habilidades integradas
Extracción de entidad
de ubicación
Extracción de
entidad de personas
Reconocimiento
de celebridades
Detección de
propiedades
Análisis de
sentimientos
Detección de
idioma
Extracción de
etiquetas de imagen
Reconocimiento de
texto impreso
Extracción de
palabras clave
Extracción de
entidad de organización
Detección de
rostros
Utilidades de
texto
Azure
Databricks
Machine Learning
VMs
Azure Machine
Learning
Habilidades
personalizadas
Tu habilidad
personalizada
va aquí
22. #GlobalAzure
Ejemplo de un skillset
texto
imágenes OCR
(reconocimiento
de texto)
reconocimiento
de entidades
de organización
fusionar texto
reconocimiento
de entidades
de localización
23. #GlobalAzure
Añade un elemento knowledgeStore para guardar los pipelines
La api-version=2019-05-06-Preview del servicio REST de Search extiende las
habilidades con una definición de KnowledgeStore que proporciona una
conexión de almacenamiento de Azure y proyecciones que describen cómo
se almacenan los enriquecimientos.
Esto es complementario al índice.
En un pipeline estándar de IA, los documentos enriquecidos son transitorios,
se usan solo durante la indexación y luego se descartan.
Con el knowledge store, se conservan los documentos enriquecidos.
24. #GlobalAzure
Paso 3: Índice de búsqueda y acceso basado en consultas
Cuando finaliza el procesamiento, se genera un índice de búsqueda que
consta de documentos enriquecidos que soportan búsquedas full-text en
Azure Cognitive Search.
Al consultar el índice, los desarrolladores y los usuarios acceden al contenido
enriquecido generado por el pipeline.
El índice es como cualquier otro que pueda crear para Azure Cognitive Search:
puede ser complementado con analizadores personalizados, invocar
consultas de búsqueda difusas, agregar búsqueda filtrada o experimentar con
perfiles de puntuación para remodelar los resultados de búsqueda.
25. #GlobalAzure
Los índices se generan a partir de un esquema de índice que define los
campos, atributos y otras construcciones adjuntas a un índice
específico, tales como perfiles de puntuación y mapas de sinónimos.
Una vez que se define y llena un índice, puedes indexar de forma
incremental para recoger nuevos documentos y actualizaciones de los
originales.
Ciertas modificaciones requieren una reconstrucción completa. Se
sugiere usar un pequeño conjunto de datos hasta que el diseño del
esquema sea estable.
26. #GlobalAzure
Checklist: Un flujo de trabajo típico
1. Obtén una muestra representativa de tus datos almacenados en Azure. La indexación
toma tiempo, así que comienza con un conjunto de datos pequeño y representativo, y
luego aumenta gradualmente a medida que la solución madura.
2. Crea un data source object en Azure Cognitive Search para proporcionar una cadena de
conexión y así obtener los datos.
3. Crea un skillset con los pasos de enriquecimiento descritos.
4. Define el esquema del índice. La colección Fields incluye campos de los datos de origen.
También deberías eliminar campos adicionales para contener los valores generados para el
contenido creado durante el enriquecimiento.
5. Define el indexador que hace referencia a la fuente de datos, el skillset y el índice.
6. Dentro del indexador, agrega outputFieldMappings. Esta sección asigna la salida del
skillset (en el paso 3) a los campos de entrada en el esquema de índice (en el paso 4).
7. Envía la solicitud Create Indexer que acabas de crear (una petición POST con una
definición de indexador en el cuerpo de la solicitud) para expresar el indexador en Azure
Cognitive Search. Este paso es la ejecución del indexador, invocando el pipeline.
8. Realiza consultas para evaluar los resultados y modifica el código para actualizar los
skillsets, el esquema o la configuración del indexador.
9. Restablece el indexador antes de reconstruir el pipeline.
27. #GlobalAzure
Demo
• En esta demostración, combinarás servicios y datos en la nube de
Azure para crear un skillset.
• Una vez que todo esté en su lugar, ejecutarás el asistente de
importación de datos en el portal para unirlo todo.
• El resultado final es un índice de búsqueda poblado con datos
creados por el procesamiento de IA que puede consultar en el portal
mediante el Search Explorer.
• Esta demostración usa Azure Cognitive Search, Azure Blob Storage
y Azure Cognitive Services para la IA.
31. #GlobalAzure
Call to Action
Introducción al enriquecimiento con IA
https://docs.microsoft.com/es-mx/azure/search/cognitive-search-
concept-intro
Quickstart: Creación de un conjunto de aptitudes cognitivas
de Azure Cognitive Search en Azure Portal
https://docs.microsoft.com/es-mx/azure/search/cognitive-search-
quickstart-blob
32. #GlobalAzure
Call to Action
Tutorial: Uso de REST y AI para generar contenido en el que
se pueden realizar búsquedas desde blobs de Azure
https://docs.microsoft.com/es-mx/azure/search/cognitive-search-
tutorial-blob
Tutorial: Uso de C# y AI para generar contenido que permite
búsquedas desde blobs de Azure
https://docs.microsoft.com/es-mx/azure/search/cognitive-search-
tutorial-blob-dotnet
34. #GlobalAzure
¡Gracias por tu
atención!
Luis Beltrán
Tomás Bata University in Zlín
Tecnológico Nacional de México en Celaya
luis@luisbeltran.mx luisbeltran.mx @darkicebeam
GitHub:
https://github.com/icebeam7
LinkedIn:
https://linkedin.com/in/luisantoniobeltran
SlideShare:
https://slideshare.net/icebeam
YouTube:
https://youtube.com/user/darkicebeam
About Me:
https://about.me/luis-beltran