NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
1.
2. Luis Beltrán
• Investigador/estudiante en Tomas Bata
University in Zlín, República Checa
• Docente en Tecnologico Nacional de
Mexico en Celaya, Mexico
• Microsoft MVP en IA y Tecnologías de
Desarrollador
luis@luisbeltran.mx
@darkicebeam
3. Agenda
• ¿Qué es Azure Search?
• Enriquecimiento de IA
• Descripción
• Pasos
• Demo
• Call to Action
5. Azure Cognitive Search
Search-as-a-service
• Gestión sencilla
• Búsquedas por keywords
• Analizadores de lenguaje
• Soporte a requerimientos
geoespaciales
• Sugerencias / Autocompletado
• Scoring personalizado
• Búsqueda de proximidad
• Sinónimos,
• etc.
6. Capacidades de los Servicios Cognitivos
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. Enriquecimiento de Inteligencia Artificial
• El enriquecimiento de IA 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 una tienda de conocimiento.
• La extracción y el enriquecimiento se implementan por medio de
habilidades cognitivas asociadas a un pipeline de indexación.
8. Desde un punto de vista general…
INGIERE
Datos en cualquier
formato y cualquier
almacenamiento de
Azure
ENRIQUECE EXPLORA
Anotaciones
Habilidades cognitivas
Búsqueda
9. Las habilidades cognitivas integradas en Search se dividen en dos categorías:
• Las habilidades de procesamiento del lenguaje natural, que 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, que 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. Arquitectura de Cognitive Search
Skillset:
Un pipeline extensible de
enriquecimiento
Indexación
para
búsqueda
Document Cracking
Documentos
Anotados
Datos del
Cliente
IEnricher
IEnricher
Habilidad Cognitiva
Índice de
Búsqueda
INGIERE ENRIQUECE EXPLORA
11. Las habilidades cognitivas en 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.
Los datos se obtienen de un Azure dataset y luego se envían a través de un pipeline
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.
12. Requerimientos de las Custom Skills
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"
}
},
…
]
}
13. 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 búsquedas
usando cualquier tipo de consultas admitido por Azure Cognitive Search.
14. 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. Comienza con un conjunto de datos pequeño y
representativo. Luego puedes aumentar gradualmente conforme la solución
madura.
15. Document cracking (descifrando 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
text
metadatos
imágenes
16. 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).
17.
18. Un skillset se basa en las habilidades cognitivas integradas o personalizadas
que se conectan. Puede ser tan sencillo o tan complejo como se desee, y
determina no solo el tipo de procesamiento, sino también el orden de las
operaciones.
El pipeline de enriquecimiento está especificado el skillset y las
asignaciones de campo definidas como parte de un indexador.
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.
19. 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í
20. 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
21. 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 guardan 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 knowledgeStore, se conservan los documentos enriquecidos.
22. 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.
23. • Los índices se generan a partir de un esquema 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.
24. 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.
25. 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.
Tutorial disponible:
https://bit.ly/LuisSearchTutorial
26.
27. ¿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 incluido en imágenes
o es un contenido que requiere 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 deseas integrar en el
pipeline. Modelos de clasificación que identifican características de varios
tipos de documentos se incluyen en esta categoría, pero se podría usar
cualquier paquete que agregue valor a tu contenido.
28. 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
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
29.
30. ¡Gracias por tu atención!
Luis Beltrán
about.me/luis-beltran