Azure Architecture Ai ML
Azure Architecture Ai ML
Azure Architecture Ai ML
Algoritmo
Un algoritmo es una secuencia de cálculos y reglas que se usan para solucionar un
problema o para analizar un conjunto de datos. Es como un diagrama de flujo, con
instrucciones paso a paso con las preguntas que se van a plantear, pero escrito en
lenguaje matemático y código de programación. Un algoritmo puede describir cómo
determinar si una mascota es un gato, un perro, un pez, un pájaro o un reptil. Otro
algoritmo mucho más complicado puede describir cómo identificar un lenguaje escrito
o hablado, analizar sus palabras, traducirlas a un idioma diferente y, a continuación,
comprobar la traducción para ver si es correcta.
Machine Learning
El aprendizaje automático es una técnica de inteligencia artificial que usa algoritmos
matemáticos para crear modelos predictivos. Un algoritmo se utiliza para analizar los
campos de datos y para "aprender" de esos datos mediante patrones que se encuentran
dentro de él para generar modelos. Estos modelos se usan para realizar predicciones o
tomar decisiones fundamentadas sobre nuevos datos.
Aprendizaje profundo
El aprendizaje profundo es un tipo de aprendizaje automático que puede determinar por
sí mismo si sus predicciones con correctas. También usa algoritmos para analizar los
datos, pero lo hace a mayor escala que el aprendizaje automático.
El aprendizaje profundo usa redes neuronales artificiales, las cuales están compuestas
de varias capas de algoritmos. Cada capa examina los datos entrantes, realiza su propio
análisis especializado y genera una salida que otras capas pueden entender. Esta salida
se pasa a la siguiente capa, donde un algoritmo diferente realiza su propio análisis, etc.
Con muchas capas en cada red neuronal, y a veces mediante el uso de varias redes
neuronales, una máquina puede aprender mediante su propio procesamiento de datos.
Esto requiere muchos más datos y mucha más capacidad de proceso que el aprendizaje
automático.
Bots
Un bot es un programa de software automatizado diseñado para realizar una tarea
determinada. Imagínelo como un robot sin cuerpo. Los primeros bots eran
relativamente sencillos, realizaban tareas repetitivas y voluminosas con una lógica de
algoritmos relativamente sencilla. Un ejemplo sería el uso de los rastreadores web que
utilizan los motores de búsqueda para explorar y analizar automáticamente contenido
web.
Los bots se han vuelto mucho más sofisticados empleando inteligencia artificial y otras
tecnologías que imitan la actividad humana y la toma de decisiones, a menudo a la vez
que interactúan directamente con los usuarios a través de texto o incluso voz. Algunos
ejemplos son los bots que pueden realizar una reserva para una cena, bots de chat (o
inteligencia artificial conversacional) que ayudan con las interacciones del servicio de
atención al cliente y los bots sociales que publican noticias de última hora o datos
científicos en sitios de redes sociales.
Sistema autónomo
Los sistemas autónomos forman parte de una nueva clase en evolución que va más allá
de la automatización básica. En lugar de realizar una tarea específica repetidamente con
poca o ninguna variación (como hacen los bots), los sistemas autónomos aportan
inteligencia a las máquinas para que puedan adaptarse a entornos cambiantes para
lograr un objetivo deseado.
Blog de Microsoft AI
Puede crear y entrenar sus propios modelos, pero AI Builder también proporciona
modelos seleccionados de inteligencia artificial pregenerados que están listos para
usarse de inmediato. Por ejemplo, puede agregar un componente en Microsoft Power
Apps basado en un modelo pregenerado que reconozca la información de contacto de
las tarjetas de presentación.
Documentación de AI Builder
Lenguajes de código
Python es un lenguaje de programación con fines genéricos y de alto nivel. Tiene una
sintaxis sencilla y fácil de aprender que hace hincapié en la legibilidad. No hay ningún
paso de compilación. Python tiene una biblioteca estándar grande, pero también admite
la posibilidad de agregar módulos y paquetes. Esto fomenta la modularidad y permite
expandir las funcionalidades cuando es necesario. Hay un ecosistema grande y en
aumento de bibliotecas de inteligencia artificial y de aprendizaje automático para
Python, incluidas muchas que están disponibles en Azure.
Cursos
Ajuste de hiperparámetros
Selección de modelos
Puntuaciones
La puntuación también se denomina predicción y es el proceso de generar valores
basados en un modelo de Machine Learning entrenado a partir de algunos datos de
entrada nuevos. Los valores, o puntuaciones, que se crean pueden representar
predicciones de valores futuros, pero también pueden representar una categoría o un
resultado probables. El proceso de puntuación puede generar muchos tipos diferentes
de valores:
El nombre de una categoría o clúster con el que un nuevo elemento guarda más
similitud
Puntuación por lotes de los modelos de Machine Learning para Python en Azure
Tutorial: Uso del aprendizaje automático para crear predecir tarifas de taxi
Databricks Runtime para Machine Learning (Databricks Runtime ML) le permite iniciar
un clúster de Databricks con todas las bibliotecas necesarias para el entrenamiento
distribuido. Proporciona un entorno listo para usar para el aprendizaje automático y la
ciencia de datos. Además, contiene varias bibliotecas conocidas, como TensorFlow,
PyTorch, Keras y XGBoost. También admite el entrenamiento distribuido mediante
Horovod.
Puntuación por lotes de los modelos de Machine Learning para Spark en Azure
Databricks
Introducción al aprendizaje profundo en Azure Databricks
Testimonios de clientes
Los distintos sectores están aplicando inteligencia artificial de maneras innovadoras e
inspiradoras. A continuación se enumeran una serie de casos prácticos de clientes y
historias de éxito:
ASOS: Una tienda en línea resuelve los desafíos con Azure Machine Learning
Service
Zencity: El inicio controlado por datos utiliza financiación para ayudar a los
gobiernos locales a ofrecer una mejor calidad de vida para los residentes
Bosch utiliza la innovación de IoT para impulsar las mejoras en la seguridad del
tráfico ayudando a los controladores a evitar accidentes graves
AXA Global P&C: una empresa internacional de seguros recrea desastres naturales
complejos con la informática de alto rendimiento basada en la nube
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
En este artículo se describe cómo puede usar la inteligencia artificial de Microsoft para
mejorar la precisión del etiquetado del contenido del sitio web mediante la combinación
del aprendizaje profundo y el procesamiento de lenguaje natural (NLP) con datos sobre
términos de búsqueda específicos del sitio.
Architecture
Flujo de datos
1. Los datos se almacenan en varios formatos, dependiendo de su origen. Los datos
pueden almacenarse como archivos en Azure Data Lake Storage o en forma de
tabla en Azure Synapse o Azure SQL Database.
2. Azure Machine Learning (ML) puede conectarse y leer desde estos orígenes, para
ingerir los datos en la canalización de NLP para el preprocesamiento, el
entrenamiento del modelo y el postprocesamiento.
3. El preprocesamiento de NLP incluye varios pasos para consumir los datos, con el
propósito de generalizar el texto. Una vez que el texto está dividido en frases, las
técnicas de NLP, como la lematización o el stemming, permiten tokenizar el
lenguaje de forma general.
Componentes
Data Lake Storage para Análisis de datos grandes
Azure Machine Learning
Azure Cognitive Search
Azure Container Registry
Azure Kubernetes Service (AKS)
Detalles del escenario
Los sitios web sociales, los foros y otros servicios de preguntas y respuestas con mucha
actividad dependen en gran medida del etiquetado del contenido, que facilita una
correcta indexación y búsqueda por parte de los usuarios. Sin embargo, el etiquetado
del contenido a menudo se deja a elección de los usuarios. Como no tienen listas de
términos buscados con frecuencia o un conocimiento profundo de la estructura de un
sitio web, suelen etiquetar mal el contenido. El contenido etiquetado de forma errónea
es difícil o imposible de encontrar cuando se necesita más adelante.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Consulte la documentación del producto:
Recursos relacionados
Consulte los siguientes artículos de arquitectura relacionados:
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Esta arquitectura muestra cómo la minería del conocimiento puede ayudar a los
equipos de soporte al cliente a encontrar rápidamente respuestas a las consultas de los
clientes o evaluar la opinión de los clientes a gran escala.
Architecture
Hay tres pasos en la minería de conocimientos: ingesta, enriquecimiento y exploración.
Flujo de datos
Ingesta
Enriquecimiento
Explorar
Componentes
Las siguientes tecnologías claves se usan para implementar herramientas para la
revisión y la investigación de contenido técnico:
Azure Cognitive Search es una parte fundamental de las soluciones de minería del
conocimiento. Azure Cognitive Search crea un índice de búsqueda sobre el contenido
agregado y analizado.
Con las consultas que usan el índice de búsqueda, las empresas pueden detectar
tendencias sobre lo que opinan los clientes y usar esa información para mejorar los
productos y servicios.
Pasos siguientes
Cree una aptitud personalizada de Azure Cognitive Search.
Para más información sobre los componentes de esta solución, vea estos recursos:
Documentación de Azure Cognitive Search
Referencia de la API REST de Text Analytics: Azure Cognitive Services
¿Qué es Translator de Azure Cognitive Services?
Recursos relacionados
Azure Cognitive Search
\Análisis de texto
Procesamiento de lenguaje
natural personalizado a gran
escala
Azure Computer Vision Azure Data Lake Storage Azure Databricks HDInsight de Azure
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
Flujo de trabajo
1. Azure Event Hubs, Azure Data Factory, o ambos servicios, reciben documentos o
datos de texto no estructurados.
2. Event Hubs y Data Factory almacenan los datos en formato de archivo en Azure
Data Lake Storage. Se recomienda configurar una estructura de directorios que
cumpla los requisitos empresariales.
3. Azure Computer Vision API usa su funcionalidad de reconocimiento óptico de
caracteres (OCR) para consumir los datos. A continuación, la API escribe los datos
en la capa de bronce. Esta plataforma de consumo usa una arquitectura de lago de
datos.
4. En la capa de bronce, varias características de Spark NLP preprocesan el texto.
Entre los ejemplos se incluyen la división, la corrección ortográfica, la limpieza y la
comprensión gramatical. Se recomienda ejecutar la clasificación de documentos en
la capa de bronce y, después, escribir los resultados en la capa de plata.
5. En la capa de plata, las características avanzadas de Spark NLP realizan tareas de
análisis de documentos como el reconocimiento de entidades con nombre, el
resumen y la recuperación de la información. En algunas arquitecturas, el resultado
se escribe en la capa dorada.
6. En la capa dorada, Spark NLP ejecuta varios análisis visuales lingüísticos en los
datos de texto. Estos análisis proporcionan información sobre las dependencias del
idioma y ayudan con la visualización de etiquetas de NER.
7. Los usuarios realizan consultas en los datos de texto de la capa dorada como una
trama de datos y ven los resultados en Power BI o aplicaciones web.
Durante los pasos del procesamiento, Azure Databricks, Azure Synapse Analytics y Azure
HDInsight se usan con Spark NLP para proporcionar funcionalidad del procesamiento
de lenguaje natural.
Componentes
Data Lake Storage es un sistema de archivos compatible con Hadoop que tiene
un espacio de nombres jerárquico integrado y la escala y economía masivas de
Azure Blob Storage.
Azure Synapse Analytics es un servicio de análisis para sistemas de
almacenamiento de datos y de macrodatos.
Azure Databricks es un servicio de análisis para macrodatos que es fácil de usar,
facilita la colaboración y se basa en Apache Spark. Azure Databricks está diseñado
para la ciencia de datos y la ingeniería de datos.
Event Hubs ingiere los flujos de datos que generan las aplicaciones cliente. Event
Hubs almacena los datos de streaming y conserva la secuencia de los eventos
recibidos. Los consumidores pueden conectarse a los puntos de conexión del
centro para recuperar mensajes para su procesamiento. Event Hubs se integra con
Data Lake Storage, como se muestra en esta solución.
Azure HDInsight es un servicio de análisis, de código abierto, espectro completo y
administrado en la nube para empresas. Puede usar marcos de código abierto con
Azure HDInsight como Hadoop, Apache Spark, Apache Hive, LLAP, Apache Kafka,
Apache Storm y R.
Azure Data Factory mueve automáticamente datos entre cuentas de
almacenamiento de distintos niveles de seguridad para garantizar la separación de
tareas.
Computer Vision usa las API de reconocimiento de texto reconocer y extraer el
texto de las imágenes. Read API usa los modelos de reconocimiento más recientes
y está optimizado para documentos grandes y con mucho texto, e imágenes con
demasiado grano. OCR API no está optimizada para documentos grandes, pero
admite más idiomas que Read API. Esta solución usa OCR para generar datos con
el formato hOCR .
En el caso de las cargas de trabajo del NLP, la biblioteca de código abierto Spark NLP
sirve como marco eficaz para procesar una gran cantidad de texto. En este artículo se
presenta una solución para NLP personalizada a gran escala en Azure. La solución usa
características de Spark NLP para procesar y analizar texto. Para más información sobre
Spark NLP, consulte Funcionalidad y canalizaciones de Spark NLP en este mismo
artículo.
Extracción de entidades de nombre (NER): en Spark NLP, con unas pocas líneas
de código, puede entrenar un modelo de NER que use BERT y puede lograr una
precisión de última generación. NER es una subtarea de extracción de información.
NER localiza entidades con nombre en texto no estructurado y las clasifica en
categorías predefinidas, como nombres de persona, organizaciones, ubicaciones,
códigos médicos, expresiones temporales, cantidades, valores monetarios y
porcentajes. Spark NLP usa un modelo de NER de última generación con BERT. El
modelo está inspirado en un antiguo modelo de NER, LSTM-CNN bidireccional.
Ese modelo usa una nueva arquitectura de red neuronal que detecta
automáticamente características a nivel de palabra y de carácter. Para ello, el
modelo usa una arquitectura LSTM y CNN bidireccional híbrida, lo que elimina la
necesidad de la mayoría de la ingeniería de características.
Parte de la voz (POS): esta funcionalidad asigna una etiqueta gramatical a cada
token en el texto de entrada.
Además de un rendimiento excelente, Spark NLP también ofrece una precisión de última
generación en cada vez más tareas del lenguaje natural personalizado. El equipo de
Spark NLP lee periódicamente las publicaciones académicas relevantes más recientes y
genera los modelos más precisos.
Para establecer el orden de ejecución de una canalización de NLP, Spark NLP sigue el
mismo concepto de desarrollo que los modelos de aprendizaje automático tradicionales
de Spark ML. Sin embargo, Spark NLP aplica técnicas de procesamiento de lenguaje
natural. En el diagrama siguiente muestran los componentes principales de una
canalización de Spark NLP.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Componentes de Azure:
Datos en Azure Machine Learning
¿Qué es Azure HDInsight?
Data Lake Storage
Azure Synapse Analytics
Event Hubs
Azure HDInsight
Data Factory
API Computer Vision
Recursos relacionados
Tecnología de procesamiento de lenguaje natural
Enriquecimiento mediante inteligencia artificial con procesamiento de imágenes y
lenguaje natural en Azure Cognitive Search
Análisis de fuentes de noticias con análisis casi en tiempo real mediante el
procesamiento de imágenes y lenguaje natural
Sugerencia de etiquetas de contenido con NLP mediante aprendizaje profundo.
Clasificación de imágenes con
redes neuronales convolucionales
(CNN)
Azure Blob Storage Azure Container Registry Azure Data Science Virtual Machine
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
Flujo de datos
1. Las cargas de imágenes en Azure Blob Storage son ingeridas por Azure Machine
Learning.
2. Como la solución sigue un enfoque de aprendizaje supervisado y necesita el
etiquetado de los datos para entrenar el modelo, las imágenes ingeridas se
etiquetan en Machine Learning.
3. El modelo de CNN se entrena y valida en el cuaderno de Machine Learning. Existen
varios modelos de clasificación de imágenes preentrenados. Puede usarlos
mediante un enfoque de aprendizaje de transferencia. Para obtener información
sobre algunas variantes de CNN previamente entrenadas, consulte Avances en la
clasificación de imágenes mediante redes neuronales convolucionales . Puede
descargar estos modelos de clasificación de imágenes y personalizarlos con los
datos etiquetados.
4. Después del entrenamiento, el modelo se almacena en un registro de modelos en
Machine Learning.
5. El modelo se implementa a través de puntos de conexión administrados por lotes.
6. Los resultados del modelo se escriben en Azure Cosmos DB y se consumen a
través de la aplicación front-end.
Componentes
Blob Storage es un servicio que forma parte de Azure Storage . Blob Storage
ofrece almacenamiento optimizado de objetos en la nube para grandes cantidades
de datos no estructurados.
Machine Learning es un entorno basado en la nube que permite entrenar,
implementar, automatizar, administrar y realizar un seguimiento de los modelos de
aprendizaje automático. Puede utilizar los modelos para prever el
comportamiento, los resultados y las tendencias futuras.
Azure Cosmos DB es una base de datos de varios modelos distribuida
globalmente. Con Azure Cosmos DB, las soluciones pueden escalar de forma
elástica el rendimiento y el almacenamiento en cualquier número de regiones
geográficas.
Azure Container Registry construye, almacena y administra imágenes de
contenedores y puede almacenar modelos de aprendizaje automático en
contenedores.
Capas convolucionales
Agrupación de capas
Capas totalmente conectadas
La capa convolucional es la primera capa de una red convolucional. Esta capa puede
seguir a otra capa convolucional o capas de agrupación. En general, la capa totalmente
conectada es la capa final de la red.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribió el siguiente colaborador.
Autor principal:
Ashish Chauhan | Arquitecto de soluciones sénior
Pasos siguientes
Para saber más de Blob Storage, consulte Introducción a Azure Blob Storage.
Para más información sobre Container Registry, consulte Introducción a los
registros de contenedor en Azure.
Para más información sobre la administración de modelos (MLOps), consulte
MLOps: Administración de modelos, implementación, linaje y supervisión con
Azure Machine Learning.
Para examinar una implementación de esta idea de solución en GitHub, consulte
Synapse Machine Learning .
Para explorar un módulo de Microsoft Learn que incluye una sección sobre CNNs,
consulte Entrenar y evaluar modelos de aprendizaje profundo.
Recursos relacionados
Búsqueda visual en el comercio minorista con Azure Cosmos DB
Asistente de venta al por menor
con funcionalidades visuales
Azure App Service Bing Custom Search Bing Visual Search Servicio de Bot de Azure AI
Servicios de Azure AI
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Esta idea de solución usa los servicios de Azure con un asistente de bots para mejorar
las interacciones con los clientes y proporcionar sugerencias basadas en información
visual.
Architecture
Application 8 7
3
Mobile 1 2
4
Language
Azure App Service Azure Bot Service
Understanding
Web browser
5 6
User Input
Microsoft
Azure
Componentes
App Service proporciona un marco para compilar, implementar y escalar
aplicaciones web.
Bot Service proporciona un entorno de desarrollo integrado para la construcción
de bots.
Cognitive Services consta de servicios basados en la nube que proporcionan
funcionalidad de inteligencia artificial.
Azure Cognitive Service para lenguaje forma parte de Cognitive Services, que
ofrece muchos servicios de procesamiento de lenguaje natural.
Conversational Language Understanding es una característica de Cognitive
Services para lenguaje. Este servicio de API basado en la nube ofrece
funcionalidades de inteligencia de aprendizaje automático para crear aplicaciones
conversacionales. Puede utilizar el reconocimiento del lenguaje (LUIS) para
predecir el significado de una conversación y extraer información relevante y
detallada.
La API de Bing Visual Search devuelve datos relacionados con una imagen
determinada, como imágenes similares, orígenes de compras para comprar el
elemento en la imagen y páginas web que incluyen la imagen.
La API de Bing Custom Search proporciona una forma de crear experiencias de
búsqueda personalizadas y sin publicidad por temas.
Pasos siguientes
¿Qué es Azure Cognitive Services?
¿Qué es Language Understanding (LUIS)?
Documentación de Bing Search API
¿Qué es Bing Visual Search API?
¿Qué es Bing Custom Search API?
Información general de App Service
Documentación de Azure Bot Service
Introducción a Bot Framework Composer
Recursos relacionados
Asistente visual
Inteligencia artificial (IA): introducción a la arquitectura
Elección de una tecnología de Microsoft Azure Cognitive Services
Asistente visual
Azure App Service Servicio de Bot de Azure AI Servicios de Azure AI
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
Language
Azure Bot Service
Understanding
4 5 6
Bing Visual Search
Microsoft
Azure
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
1. Los usuarios interactúan con un bot a través de una aplicación móvil o una
aplicación web.
2. El bot usa Language Understanding Intelligence Service (LUIS), que está integrado
en la aplicación, para identificar la intención del usuario y el contexto
conversacional.
3. El bot pasa el contexto visual, como una imagen, a la API de Bing Visual Search.
4. El bot recupera información de Bing Entity Search API sobre personas, lugares,
ilustraciones, monumentos y objetos relacionados con la imagen.
5. El bot recupera información de códigos de barras.
6. Opcionalmente, el bot obtiene más información sobre códigos de barras o
consultas limitados al dominio del usuario mediante la API de Bing Custom Search.
7. El asistente visual presenta al usuario la información sobre productos relacionados,
destinos, celebridades, lugares, monumentos y obras de arte.
Componentes
Azure App Service : es un servicio basado en HTTP totalmente administrado para
hospedar aplicaciones web, API REST y back-ends para dispositivos móviles.
Azure Bot Service ofrece un entorno para desarrollar bots inteligentes y de nivel
empresarial que enriquecen las experiencias de los clientes. El entorno integrado
también proporciona una manera de mantener el control de los datos.
La API de Bing Custom Search proporciona una forma de crear experiencias de
búsqueda personalizadas con la potente clasificación y el índice de búsqueda a
escala global de Bing.
La API de Bing Entity Search ofrece funcionalidades de búsqueda que identifican
entidades relevantes, como personas conocidas, lugares, películas, programas de
televisión, videojuegos, libros y empresas.
La API de Bing Visual Search devuelve datos relacionados con una imagen
determinada, como imágenes similares, orígenes de compras para comprar el
elemento en la imagen y páginas web que incluyen la imagen.
La API de Bing Web Search proporciona resultados de búsqueda después de
emitir una sola llamada API. Los resultados compilan información relevante de
miles de millones de páginas web, imágenes, vídeos y noticias.
Azure Cognitive Service para lenguaje forma parte de Azure Cognitive
Services , que ofrece muchos servicios de procesamiento de lenguaje natural.
Conversational Language Understanding es una característica de Cognitive
Services para lenguaje. Este servicio de API basado en la nube ofrece
funcionalidades de inteligencia de aprendizaje automático para crear aplicaciones
conversacionales. Puede usar LUIS para predecir el significado de una conversación
y extraer información detallada pertinente.
Programación de citas.
Seguimiento de pedidos y entregas en aplicaciones de fabricación, automoción y
transporte.
Compras con código de barras en la venta directa.
Procesamiento de pagos en finanzas y venta directa.
Renovaciones de suscripciones en la venta directa.
La identificación de personas, lugares, objetos, arte y monumentos conocidos, en
las industrias de educación, medios de comunicación y entretenimiento.
Pasos siguientes
Para diseñar una aplicación que detecte el contexto que le importa, consulte Inicio
rápido: Creación de un proyecto de detección de objetos con la biblioteca cliente
de Custom Vision.
Para explorar las capacidades de búsqueda que proporciona Bing, consulte Familia
de API de búsqueda de Bing.
Para crear un bot que incorpore QnA Maker y Bot Service, consulte Creación de
soluciones de inteligencia artificial conversacional.
Para solidificar su comprensión de LUIS, Bot Service y la API de Bing Visual Search,
consulte Examen AI-900: Aspectos básicos de la inteligencia artificial de Microsoft
Azure.
Para más información sobre los componentes de esta solución, vea estos recursos:
Información general de App Service
Documentación de Azure Bot Service
¿Qué es Bing Custom Search?
¿Qué es Bing Entity Search API?
¿Qué es Bing Visual Search API?
¿Qué es Bing Web Search API?
¿Qué es Language Understanding (LUIS)?
Recursos relacionados
Inteligencia artificial (IA): introducción a la arquitectura
Clasificación de imágenes en Azure
Asistente de venta al por menor con funcionalidades visuales
Modelo del clasificador de visión
con Azure Custom Vision
Cognitive Service
Azure GitHub
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Esta arquitectura usa Custom Vision para clasificar las imágenes que ha tomado un dron
simulado. Proporciona una manera de combinar IA y el Internet de las cosas (IoT). Azure
Custom Vision también puede usarse para la detección de objetos.
Architecture
Flujo de trabajo
1. Use el entorno de representación 3D de AirSim para tomar imágenes tomadas con
el dron. Use las imágenes como conjunto de datos de entrenamiento.
2. Importe y etiquete el conjunto de datos en un proyecto de Custom Vision. La
instancia de Cognitive Services entrena y prueba el modelo.
3. Exporte el modelo en formato TensorFlow para que pueda usarlo localmente.
4. El modelo también se puede implementar en un contenedor o en dispositivos
móviles.
Componentes
TensorFlow
Search and Rescue Lab de Microsoft sugiere un caso de uso hipotético para Custom
Vision. En el laboratorio, se vuela una dron simulado de Microsoft AirSim en un entorno
representado en 3D. El dron simulado se usa para capturar imágenes sintéticas de los
animales de ese entorno. Después de crear un conjunto de datos de imágenes, se usa
para entrenar un modelo clasificador de Custom Vision. Para entrenar el modelo,
etiquete las imágenes con los nombres de los animales. Cuando vuele de nuevo el dron,
tome nuevas imágenes de los animales. Esta solución identifica el nombre del animal en
cada nueva imagen.
En una aplicación práctica del laboratorio, un dron real reemplaza al dron simulado de
Microsoft AirSim. Si se pierde una mascota, el propietario proporciona imágenes de la
mascota al entrenador del modelo de Custom Vision. Al igual que en la simulación, las
imágenes se usan para entrenar el modelo para que reconozca a la mascota. A
continuación, el piloto del dron busca un área donde la mascota perdida podría estar. A
medida que encuentra animales en su camino, la cámara del dron puede capturar
imágenes y determinar si alguno es la mascota perdida.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Más información sobre Microsoft AirSim .
Más información sobre Azure Custom Vision en Cognitive Service.
Más información sobre Azure Cognitive Services
Recursos relacionados
Consulte otros artículos del Centro de arquitectura de Azure:
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Esta idea de solución identifica el habla en archivos de vídeo estáticos para administrar
la voz como contenido estándar.
Architecture
Azure Encoder
(Standard or
Premium)
Source Azure Blob Streaming Multi-Protocol Azure CDN Azure Media player
Audio/Video files Storage endpoint Dynamic Packaging/
Multi-DRM
TTML, WebVTT
Keywords
Azure Media
Indexer/OCR Media Azure Search
processor
Web Apps
Microsoft
Azure
Componentes
Blob Storage es un servicio que forma parte de Azure Storage . Blob Storage
ofrece almacenamiento optimizado de objetos en la nube para grandes cantidades
de datos no estructurados.
Azure Media Services es una plataforma basada en la nube que puede utilizar
para transmitir vídeo, mejorar la accesibilidad y la distribución y analizar el
contenido de vídeo.
El streaming en vivo y a petición es una característica de Azure Media Services
que entrega contenido a varios dispositivos a escala.
La codificación de Azure proporciona una manera de convertir archivos que
contienen vídeo digital o audio de un formato estándar a otro.
Azure Media Player reproduce vídeos que tienen varios formatos.
Azure Content Delivery Network ofrece una solución global para la entrega
rápida de contenidos. Este servicio proporciona a los usuarios acceso rápido,
confiable y seguro al contenido web estático y dinámico de las aplicaciones.
Azure Cognitive Search es un servicio de búsqueda en la nube que proporciona
infraestructura, API y herramientas para la búsqueda. Puede usar Azure Cognitive
Search para compilar experiencias de búsqueda a partir de contenido privado
heterogéneo de aplicaciones web, móviles y empresariales.
App Service proporciona un marco para compilar, implementar y escalar
aplicaciones web. La característica Web Apps es un servicio para hospedar
aplicaciones web, API de REST y servidores back-end para dispositivos móviles.
Azure Media Indexer proporciona una manera de hacer que se pueda buscar
contenido de los archivos multimedia. También puede generar una transcripción
de texto completo para subtítulos y palabras clave.
Al usar esta solución, puede cargar vídeos estáticos en un sitio web de Azure. El Azure
Media Indexer usa Speech API para indexar la voz dentro de los vídeos y la almacena en
una base de datos de Azure. Puede buscar palabras o frases mediante la característica
Web Apps de Azure App Service. A continuación, puede recuperar una lista de
resultados. Al seleccionar un resultado, puede ver el lugar en el vídeo que menciona la
palabra o frase.
Pasos siguientes
Uso de Azure Blob Storage
Procedimientos para codificar un recurso mediante Media Encoder
Procedimientos para administrar puntos de conexión de streaming
Uso de Azure Content Delivery Network
Desarrollo de aplicaciones para reproductor de vídeo
Creación de un servicio de Azure Cognitive Search
Ejecución de aplicaciones web en la nube
Indexación de archivos de soporte físico
Recursos relacionados
Sistema multimedia en la nube de Gridwich
Medios digitales con streaming en vivo
Medios digitales con vídeo bajo demanda
Predicción del abandono de
clientes mediante el análisis en
tiempo real
Azure Machine Learning
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
2. Procesar datos en tiempo real con Azure Stream Analytics . Stream Analytics
puede generar datos procesados en Azure Synapse . Esto permite a los clientes
combinar los datos históricos y existentes para crear paneles e informes en
Power BI.
4. Use Azure Synapse para combinar datos de streaming con datos históricos para
informes o experimentación en Azure Machine Learning .
5. Use Azure Machine Learning para crear modelos que predigan la probabilidad
de abandono e identificar los patrones de datos para ofrecer información
inteligente.
6. Use Power BI para crear paneles e informes operativos sobre Azure Synapse. Los
modelos de Azure Machine Learning se pueden usar para mejorar aún más los
informes y ayudar a las empresas en los procesos de toma de decisiones.
Componentes
Azure Event Hubs es un servicio de ingesta de eventos que puede procesar
millones de eventos por segundo. Los datos enviados a un centro de eventos se
pueden transformar y almacenar con cualquier proveedor de análisis en tiempo
real.
Azure Stream Analytics es un motor de análisis en tiempo real diseñado para
analizar y procesar un gran volumen de datos de streaming rápido. Las relaciones
y los patrones identificados en los datos se pueden usar para desencadenar
acciones e iniciar flujos de trabajo, como la creación de alertas, la provisión de
información a una herramienta de generación de informes o el almacenamiento de
datos transformados para usarlos posteriormente.
Azure Blob Storage es un servicio en la nube para almacenar grandes cantidades
de datos no estructurados, como texto, datos binarios, audio y documentos de
forma más fácil y rentable. Azure Blob Storage permite a los científicos de datos
acceder rápidamente a los datos para la experimentación y la creación de modelos
de IA.
Azure Synapse Analytics es un almacén de datos rápido y confiable con análisis
ilimitados que combina la integración de datos, el almacenamiento de datos
empresariales y el análisis de macrodatos. Le ofrece la libertad de consultar datos
según sus términos, mediante recursos dedicados o sin servidor y suministrar
datos para necesidades inmediatas de BI y aprendizaje automático.
Azure Machine Learning se puede usar con cualquier aprendizaje automático
supervisado y no supervisado, tanto si prefiere escribir código Python o R. Puede
crear, entrenar y realizar un seguimiento de los modelos de aprendizaje
automático en un área de trabajo de Azure Machine Learning.
Power BI es un conjunto de herramientas que proporciona a las organizaciones
valiosas conclusiones. Power BI se conecta a varios orígenes de datos y simplifica la
preparación de datos y la creación de modelos desde orígenes dispares. Mejore la
colaboración en equipo en toda la organización de forma que se generen informes
y paneles analíticos que respalden las decisiones empresariales y publíquelos en
los dispositivos web y móviles para que los usuarios los puedan usar.
El objetivo de esta guía es demostrar las canalizaciones de datos predictivos para que
los minoristas puedan predecir el abandono de clientes. Los minoristas pueden utilizar
estas predicciones para evitar el abandono de clientes mediante el conocimiento del
dominio y las estrategias de marketing adecuadas para abordar a los clientes en riesgo.
En la guía también se muestra cómo se pueden volver a entrenar los modelos de
abandono de clientes para usar más datos a medida que estén disponibles.
Panel de soluciones
La siguiente instantánea muestra un panel de Power BI de ejemplo que proporciona
información detallada sobre las tasas de abandono previstas en la base de clientes.
Pasos siguientes
Información acerca de Azure Event Hubs
Bienvenido a Azure Stream Analytics
¿Qué es Azure Synapse Analytics?
Introducción a Azure Blob Storage
¿Qué es Azure Machine Learning?
¿Qué es Power BI?
Recursos relacionados
Guías de arquitectura:
Arquitecturas de referencia:
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
User activity Ingest Storage Analyze Visualize
1 3 4
Aggregated
Data 6
Azure Cosmos DB Intelligent Power BI
Azure Event Hubs
(SQL API) Recommendations
11
Products Function App 2
Offers 7
Raw Stream Data
Azure Stream Azure Data Lake
Analytics Storage
References
8 9
Product Views
Microsoft
Azure
Flujo de datos
1. Una aplicación de Azure Functions captura la actividad de usuario sin procesar
(como los clics en productos y ofertas) y las ofertas que se presentan a los usuarios
en el sitio web. La actividad se envía a Azure Event Hubs. En las áreas en las que la
actividad del usuario no está disponible, la actividad de usuario simulada se
almacena en Azure Cache for Redis.
2. Azure Stream Analytics analiza los datos para ofrecer un análisis casi en tiempo
real del flujo de entrada desde la instancia de Azure Event Hubs.
3. Los datos agregados se envían a Azure Cosmos DB for NoSQL.
4. Power BI se usa para buscar información sobre los datos agregados.
5. Los datos sin procesar se envían a Azure Data Lake Storage.
6. Intelligent Recommendations usa los datos sin procesar de Azure Data Lake
Storage y hace recomendaciones a Azure Personalizer.
7. El servicio Personalizer atiende a los principales productos y ofertas contextuales y
personalizados.
8. Los datos simulados de actividad de usuario se entregan al servicio Personalizer
para proporcionar productos y ofertas personalizados.
9. Los resultados se encuentran en la aplicación web a la que accede el usuario.
10. Los comentarios de los usuarios se capturan en función de la reacción del usuario
a las ofertas y productos mostrados. La puntuación de recompensa se proporciona
al servicio Personalizer para que mejore con el tiempo.
11. El reentrenamiento de Intelligent Recommendations puede dar lugar a mejores
recomendaciones. Este proceso también se puede realizar mediante datos
actualizados de Azure Data Lake Storage.
Componentes
Event Hubs es una plataforma de streaming totalmente administrada. En esta
solución, Event Hubs recoge datos de consumo en tiempo real.
Stream Analytics ofrece procesamiento de flujos sin servidor en tiempo real. Este
servicio proporciona una manera de ejecutar consultas en la nube y en dispositivos
perimetrales. En esta solución, Stream Analytics agrega los datos de streaming y
los pone a disposición para su visualización y actualización.
Azure Cosmos DB es una base de datos de varios modelos distribuida
globalmente. Con Azure Cosmos DB, las soluciones pueden escalar de forma
elástica el rendimiento y el almacenamiento en cualquier número de regiones
geográficas. Azure Cosmos DB for NoSQL almacena datos en formato de
documento y es una de varias API de base de datos que ofrece Azure Cosmos DB.
En la implementación de GitHub de esta solución, DocumentDB se usó para
almacenar la información de clientes, productos y ofertas, pero también se puede
usar Azure Cosmos DB for NoSQL. Para más información, consulte Estimados
clientes de DocumentDB, le damos la bienvenida a Azure Cosmos DB.
Storage es una solución de almacenamiento en la nube que incluye el
almacenamiento de objetos, archivos, discos, colas y tablas. Entre los servicios se
incluyen soluciones y herramientas de almacenamiento híbridas para transferir,
compartir y realizar copias de seguridad de los datos. Esta solución utiliza Storage
para gestionar las colas que simulan la interacción de los usuarios.
Functions es una plataforma de proceso sin servidor que se puede usar para
crear aplicaciones. Con Functions, puede usar desencadenadores y enlaces de
datos para integrar los servicios. Esta solución usa Functions para coordinar la
simulación de usuario. Functions también es el componente principal que genera
ofertas personalizadas.
Machine Learning es un entorno basado en la nube que permite entrenar,
implementar, automatizar, administrar y realizar un seguimiento de los modelos de
aprendizaje automático. Aquí, Machine Learning usa las preferencias y el historial
de productos de cada usuario para proporcionar la puntuación de afinidad de
usuario a producto.
Azure Cache for Redis proporciona un almacén de datos en memoria basado en
el software de Redis. Azure Cache for Redis proporciona funcionalidades de Redis
de código abierto como una oferta totalmente administrada. En esta solución,
Azure Cache for Redis proporciona afinidades de producto preprocesadas para los
clientes sin historial de usuarios disponible.
Power BI es un servicio de análisis empresarial que proporciona visualizaciones
interactivas y funcionalidades de inteligencia empresarial. Su interfaz intuitiva le
permite crear sus propios informes y cuadros de mando. Esta solución usa Power
BI para mostrar la actividad en tiempo real en el sistema. Por ejemplo, Power BI usa
los datos de Azure Cosmos DB for NoSQL para mostrar la respuesta del cliente a
varias ofertas.
Data Lake Storage es un repositorio de almacenamiento escalable que contiene
una gran cantidad de datos en su formato nativo y sin procesar.
Detalles de la solución
En el entorno tan conectado y competitivo de hoy en día, las empresas modernas ya no
pueden sobrevivir con contenido en línea genérico y estático. Además, las estrategias de
marketing que usan herramientas tradicionales pueden ser costosas y difíciles de
implementar. Como resultado, no producen la rentabilidad deseada de la inversión.
Estos sistemas a menudo no aprovechan al máximo los datos recogidos cuando crean
una experiencia más personalizada para los usuarios.
Azure Personalizer es un servicio que forma parte de Azure Cognitive Services. Se puede
usar para determinar qué producto sugerir a los compradores o para averiguar la
posición óptima de un anuncio. Personalizer actúa como clasificador adicional del
último paso. Después de que las recomendaciones se muestren al usuario, se supervisa
la reacción del usuario y se devuelve al servicio Personalizer como puntuación de
recompensa. Este proceso garantiza que el servicio aprenda de manera continua, y
mejora la capacidad de Personalizer de seleccionar los mejores artículos en función de la
información contextual recibida.
Integrador de sistemas
Puede ahorrar tiempo al implementar esta solución mediante la contratación de un
integrador de sistemas entrenado (SI). El SI puede ayudarle a desarrollar una prueba de
concepto y puede ayudar a implementar e integrar la solución.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Información detallada sobre los clasificadores que usa este modelo
MLOps: administración de modelos, implementación, linaje y supervisión con
Azure Machine Learning
Compilación de una API de recomendaciones en tiempo real en Azure
Certificación Microsoft: Certificación de Científico de Datos Asociado
Crear un modelo de clasificación con el diseñador de Azure Machine Learning, sin
necesidad de codificación
Uso del aprendizaje automático automatizado en Azure Machine Learning y
aprenda a crear un modelo de aprendizaje automático de arrastrar y colocar
Azure Event Hubs: una plataforma de streaming de macrodatos y un servicio de
ingesta de eventos
Bienvenido a Azure Stream Analytics
Bienvenido a Azure Cosmos DB
Introducción a Almacenamiento de Azure
Introducción a Azure Functions
¿Qué es Azure Machine Learning?
Acerca de Azure Cache for Redis
Creación de informes y paneles en Power BI: documentación
Introducción a Azure Data Lake Storage Gen2
Recursos relacionados
Inteligencia artificial (IA): introducción a la arquitectura
Documentación de Azure Machine Learning
Optimización del marketing con
Machine Learning
Servicios de Azure AI Azure Synapse Analytics Azure Machine Learning Azure Data Lake Power BI
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Los servicios de Azure pueden extraer información de las redes sociales que puede usar
en campañas de marketing de macrodatos.
Architecture
1 2 4 5
External data
(Text, posts) Azure Synapse Azure Data Lake
Analytics
3
Azure Machine Microsoft
Learning Power BI
Microsoft
Azure
Flujo de datos
1. Azure Synapse Analytics enriquece los datos de grupos de SQL dedicados con el
modelo registrado en Azure Machine Learning a través de un procedimiento
almacenado.
2. Azure Cognitive Services enriquece los datos mediante ejecución de análisis de
sentimiento, predicción del significado global, extracción de información relevante
y aplicación de otras características de inteligencia artificial. Machine Learning se
usa para desarrollar un modelo de aprendizaje automático y registrarlo en el
registro de Machine Learning.
3. Azure Data Lake Storage proporciona almacenamiento para los datos de
aprendizaje automático y una memoria caché para entrenar el modelo de
aprendizaje automático.
4. La característica Web Apps de Azure App Service se usa para crear e implementar
aplicaciones web escalables críticas para la empresa. Power BI proporciona un
panel interactivo con visualizaciones que utilizan los datos almacenados en Azure
Synapse Analytics para tomar decisiones sobre las predicciones.
Componentes
Azure Synapse Analytics es un servicio de análisis integrado que acelera el
tiempo necesario para extraer información de los almacenes de datosy sistemas de
macrodatos.
Data Lake Storage es un lago de datos seguro y que se pueden escalar de forma
masiva para cargas de trabajo de análisis de alto rendimiento.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Nicholas Moore | Arquitectura en la nube/Datos/Inteligencia artificial
Pasos siguientes
Obtenga más información con las siguientes rutas de aprendizaje:
Recursos relacionados
Reconocimiento facial y análisis de sentimiento
Predicción del abandono de clientes mediante el análisis en tiempo real
Creación de soluciones de
marketing personalizadas casi en
tiempo real
Azure Cosmos DB Azure Event Hubs Azure Functions Azure Machine Learning Azure Stream Analytics
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Esta arquitectura muestra cómo puede crear una solución que personalice las ofertas
con Azure Functions, Azure Machine Learning y Azure Stream Analytics.
Architecture
Cold start
Product Affinity
Cosmos DB Dashboard
(Azure Services)
Microsoft
Azure
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
Event Hubs ingiere datos sin procesar de secuencias de clics de Azure Functions
y los pasa a Stream Analytics.
Azure Stream Analytics agrega clics casi en tiempo real por producto, oferta y
usuario. Escribe en Azure Cosmos DB y también archiva los datos sin procesar de la
secuencia de clics en Azure Storage.
Azure Cosmos DB almacena datos agregados de clics por usuario y producto y
ofrece información del perfil de usuario.
Azure Storage almacena datos sin procesar de secuencias de clics archivados de
Stream Analytics.
Azure Functions toma la información de la secuencia de clic del usuario de sitios
web y lee el historial del usuario actual de Azure Cosmos DB. Estos datos se
ejecutan mediante el servicio web de Machine Learning o se usan junto con los
datos de inicio en frío de Azure Cache for Redis para obtener puntuaciones de
afinidad de productos. Las puntuaciones de afinidad de los productos se usan con
la lógica de oferta personalizada para determinar la oferta más pertinente que
presentar al usuario.
Azure Machine Learning le ayuda a diseñar, probar, poner en funcionamiento y
administrar soluciones de análisis predictivo en la nube.
Azure Cache for Redis almacena puntuaciones de afinidad de productos de
inicio en frío precalculadas para los usuarios sin historial.
Power BI permite la visualización de los datos de actividad del usuario y las
ofertas presentadas mediante la lectura de datos de Azure Cosmos DB.
Componentes
Event Hubs
Azure Stream Analytics
Azure Cosmos DB
Almacenamiento de Azure
Azure Functions
Azure Machine Learning
Azure Cache for Redis
Power BI
Los vendedores que usan sistemas inteligentes y analizan grandes cantidades de datos
pueden hacer ofertas muy pertinentes y personalizadas para cada usuario, con
soluciones que van al grano y consiguen atraer a los clientes. Por ejemplo, los minoristas
pueden realizar ofertas y proporcionar contenido basados en los intereses, preferencias
y afinidad de productos exclusivos de cada cliente, para presentar así sus productos a
las personas que más posibilidades tienen de comprarlos.
Esta arquitectura muestra cómo puede crear una solución que personalice las ofertas
con Azure Functions, Azure Machine Learning y Azure Stream Analytics.
Pasos siguientes
Consulte la documentación del producto:
En este artículo se describe cómo usar Azure OpenAI Service o Azure Cognitive Search
para buscar documentos en los datos de la empresa y recuperar resultados para
proporcionar una experiencia de preguntas y respuestas al estilo ChatGPT. En esta
solución se describen dos enfoques:
Enfoque de Azure Cognitive Search: Use Azure Cognitive Search para buscar y
recuperar datos de texto relevantes basados en una consulta del usuario. Este
servicio admite búsqueda de texto completo, búsqueda semántica, vector de
búsqueda y búsqueda híbrida.
7 Nota
1
Storage Function apps Azure Cache for Azure App 1
User
accounts Redis 2 Service 4
2 4
3
Vectorize Return top k Results passed
Translate Create
Extract text query matching content with prompt
(optional) embeddings
3
Flujo de datos
Los documentos que se van a ingerir pueden provenir de varios orígenes, como archivos
en un servidor FTP, datos adjuntos de correo electrónico o datos adjuntos de
aplicaciones web. Estos documentos se pueden ingerir en Azure Blob Storage a través
de servicios como Azure Logic Apps, Azure Functions o Azure Data Factory. Data Factory
es óptimo para transferir datos masivos.
Creación de inserción:
3. Si los documentos son archivos PDF o imágenes, una función de Azure puede
llamar al Documento de inteligencia de Azure AI para extraer el texto. Si el
documento es un archivo de Excel, CSV, Word o texto, el código de Python se
puede usar para extraer el texto.
Consulta y recuperación:
3. Una búsqueda de similitud vectorial que usa este vector de consulta en la base de
datos vectorial devuelve el contenido coincidente k superior. El contenido
coincidente que se va a recuperar se puede establecer según un umbral definido
por una medida de similitud, como la similitud coseno.
1 2 1
Storage Azure Cognitive Azure App User
accounts Search Service
3 4
AI enrichment skillsets
(optional) Create system prompt Call language model
2 3
7 Nota
Consulta y recuperación:
Azure OpenAI
Azure AI Azure AI language model
Translator Document
1 Intelligence 2
Consulta y recuperación:
Componentes
Azure OpenAI proporciona a la API de REST acceso a los modelos de lenguaje
de Azure OpenAI, como GPT-3, Codex y la serie de modelos de inserción para la
generación de contenido, el resumen, la búsqueda semántica y la conversión de
lenguaje natural a código. Puede acceder al servicio a través de las API de REST, el
SDK de Python o la interfaz basada en web en Azure OpenAI Studio .
El Documento de inteligencia de Azure AI es un servicio de Azure AI . Ofrece
funcionalidades de análisis de documentos para extraer texto impreso y
manuscrito, tablas y pares clave-valor. El Documento de inteligencia de Azure AI
proporciona modelos precompilados que pueden extraer datos de facturas,
documentos, recibos, tarjetas de identificación y tarjetas de presentación. También
lo puede usar para entrenar e implementar modelos personalizados mediante un
modelo de formulario de plantilla personalizada o un modelo de documento
neuronal personalizado.
Alternativas
En función de su escenario, puede agregar los siguientes flujos de trabajo.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
¿Qué es la inteligencia de documentos de Azure AI?
¿Qué es Azure OpenAI?
¿Qué es Azure Machine Learning?
Introducción a Blob Storage
¿Qué es Lenguaje de Azure AI?
Introducción a Azure Data Lake Storage Gen2
Biblioteca cliente de QnA Maker de Azure
Crear, entrenar y publicar la base de conocimiento de QnA Maker
¿Qué es la respuesta a preguntas?
Recursos relacionados
Resumen de documentos basados en consultas
Automatización de la identificación, clasificación y búsqueda de documentos
mediante Durable Functions
Indexación de contenido y metadatos de archivos mediante Azure Cognitive
Search
Enriquecimiento con IA con procesamiento de imágenes y texto
Inteligencia artificial en el
perímetro con Azure Stack Hub
Azure Container Registry Azure Kubernetes Service (AKS) Azure Machine Learning Azure Stack Hub
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
Flujo de datos
1. Los datos se procesan mediante Azure Data Factory y se colocarán en Azure Data
Lake.
2. Los datos de Azure Data Factory se colocan en Azure Data Lake Storage para el
entrenamiento.
3. Los científicos de datos entrenan un modelo con Azure Machine Learning. El
modelo se incluye en contenedores y se coloca en una instancia de Azure
Container Registry.
4. El modelo se implementa en un clúster de Kubernetes en Azure Stack Hub.
5. La aplicación web local se puede usar para puntuar los datos proporcionados por
el usuario final, para puntuar con el modelo implementado en el clúster de
Kubernetes.
6. Los usuarios finales proporcionan datos que se puntúan con respecto al modelo.
7. Tanto la información detallada como las anomalías de la puntuación se ponen en
una cola.
8. Se desencadena una aplicación de funciones una vez que la información de
puntuación se coloca en la cola.
9. Una función envía los datos compatibles y las anomalías a Azure Storage.
10. Las conclusiones pertinentes globales y compatibles están disponibles para su
consumo en Power BI y en una aplicación global.
11. Bucle de comentarios: el nuevo entrenamiento del modelo se puede desencadenar
según una programación. Los científicos de datos trabajan en la optimización. El
modelo mejorado se implementa y se incluye en un contenedor como una
actualización del registro de contenedor.
Componentes
Tecnologías clave que se usan para implementar esta arquitectura:
Pasos siguientes
¿Quiere saber más? Consulte el módulo Introducción a Azure Stack.
Consiga la acreditación de Microsoft Certified para Azure Stack Hub con la
certificación Azure Stack Hub Operator Associate.
Instalación del motor de AKS en Linux para Azure Stack Hub
Instalación del motor de AKS en Windows para Azure Stack Hub
Implementación de modelos de ML en un dispositivo perimetral con Dispositivos
de Azure Stack Edge .
Innovación e implementación de contenedores de Azure Cognitive Services (voz,
lenguaje, decisión, visión) en Azure Stack Hub
Para más información sobre los servicios de Azure destacados, consulte los siguientes
artículos y ejemplos:
Recursos relacionados
Consulte las siguientes arquitecturas relacionadas:
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
En este artículo se describe una solución para usar inteligencia artificial perimetral
cuando se desconecta de Internet. La solución usa Azure Stack Hub para mover modelos
de IA al perímetro.
Apache®, Apache Hadoop , Apache Spark , Apache HBase y Apache Storm son
marcas comerciales registradas o marcas comerciales de Apache Software Foundation en
Estados Unidos u otros países. El uso de estas marcas no implica la aprobación de Apache
Software Foundation.
Architecture
Flujo de datos
1. Los científicos de datos usan Azure Machine Learning y un clúster de Azure
HDInsight para entrenar un modelo de aprendizaje automático. El modelo se
incluye en contenedores y se coloca en una instancia de Azure Container Registry.
2. El modelo se ha implementado en un clúster de Azure Kubernetes Service (AKS) en
Azure Stack Hub.
3. Los usuarios finales proporcionan datos que se puntúan con respecto al modelo.
4. Tanto la información detallada como las anomalías de la puntuación se colocan en
el almacenamiento para que se puedan cargar posteriormente.
5. La información compatible y pertinente globalmente está disponible en una
aplicación global.
6. Los científicos de datos usan la puntuación del perímetro para mejorar el modelo.
Componentes
Machine Learning es un entorno basado en la nube que permite compilar,
implementar y administrar los modelos de aprendizaje automático. Con estos
modelos, puede predecir el comportamiento futuro, los resultados y las
tendencias.
HDInsight es un servicio de análisis, de código abierto, espectro completo y
administrado en la nube para empresas. Puede usar marcos de código abierto con
HDInsight, como Hadoop, Spark, HBase y Storm.
Container Registry es un servicio que crea un registro administrado de imágenes
de contenedor. Puede usar Container Registry para compilar, almacenar y
administrar las imágenes. También puede usarlo para almacenar modelos de
Machine Learning en contenedores.
AKS es un servicio de Kubernetes totalmente administrado, de alta
disponibilidad y seguro. AKS facilita la implementación y la administración de
aplicaciones contenedorizadas.
Azure Virtual Machines es una oferta de infraestructura como servicio (IaaS).
Puede usar Virtual Machines para implementar recursos de computación a petición
y escalables, como máquinas virtuales de Windows y Linux.
Azure Storage ofrece almacenamiento en la nube escalable, seguro y de alta
disponibilidad para todos los datos, aplicaciones y cargas de trabajo.
Azure Stack Hub es una extensión de Azure que ofrece una manera de ejecutar
aplicaciones en un entorno local y proporcionar servicios de Azure en su centro de
datos.
Esta solución es para un escenario de Azure Stack Hub sin conexión. Debido a
problemas de latencia o de conectividad intermitentes o regulaciones, es posible que no
siempre esté conectado a Azure. En escenarios sin conexión, puede procesar los datos
localmente y agregarlos más adelante en Azure para su posterior análisis. Para obtener
la versión conectada de este escenario, consulte Inteligencia artificial en el perímetro.
Pasos siguientes
Para más información acerca de las soluciones de Azure Stack, consulte los siguientes
recursos:
Recursos relacionados
Para soluciones relacionadas, consulte los artículos siguientes:
Inteligencia artificial en el perímetro con Azure Stack Hub
Detección de afluencia de clientes basada en IA
Implementación de procesos de inteligencia artificial y aprendizaje automático en
el entorno local y en el perímetro
Implementación del proceso perimetral multiacceso público de Azure
Elección de una opción de la plataforma Kubernetes sin sistema operativo en el
perímetro
Ingesta de vídeo y detección de
objetos en el borde y en la nube
Azure Stack Edge Azure Kubernetes Service (AKS) Azure SQL Edge Azure Container Registry
En este artículo se describe cómo usar un robot móvil con una cámara de streaming en
vivo para implementar varios casos de uso. La solución implementa un sistema que se
ejecuta localmente en Azure Stack Edge para ingerir y procesar la transmisión de vídeo y
los servicios de Azure AI que realizan la detección de objetos.
Architecture
Anomaly
Ingestion and processing Object detection Visualization
detection
Key frames 6 8
1
2
Azure AI
Video ingest Anomaly Browser
services
and process detection
container container
3
5
7
Container Key Vault Azure Arc Azure Azure Kubernetes Azure Stack Edge
Azure Registry Monitor Service
Flujo de trabajo
En este flujo de trabajo se describe cómo procesa el sistema los datos entrantes:
1. Una cámara que se instala en el robot transmite vídeo en tiempo real mediante el
protocolo de streaming en tiempo real (RTSP).
Componentes
Azure Stack Edge se usa para hospedar servicios de Azure en ejecución en el
entorno local, cerca de la ubicación donde se produce la detección de anomalías,
lo que reduce la latencia.
Azure Kubernetes Service en Azure Stack Edge se usa para ejecutar un clúster de
Kubernetes de contenedores que contienen la lógica del sistema en Azure Stack
Edge de forma sencilla y administrada.
Azure Arc controla el clúster de Kubernetes que se ejecuta en el dispositivo
perimetral.
Azure SQL Edge se usa para almacenar datos en el borde, cerca del servicio que
los consume y procesa.
La arquitectura usa Stack Edge para asegurarse de que los procesos que hacen un uso
más intensivo de recursos se realicen en el entorno local, cerca del origen del vídeo. Este
diseño mejora significativamente el tiempo de respuesta del sistema, que es importante
cuando una respuesta inmediata a una anomalía es crítica.
Dado que las partes del sistema se implementan como contenedores independientes en
un clúster de Kubernetes, solo puede escalar los subsistemas necesarios según la
demanda. Por ejemplo, si aumenta el número de cámaras de la fuente de vídeo, puede
escalar el contenedor responsable de la ingesta y el procesamiento de vídeo para
controlar la demanda, pero mantener el resto del clúster en el nivel original.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework,
que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de
una carga de trabajo. Para más información, consulte Marco de buena arquitectura de
Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Una de las mayores ventajas de usar Azure Stack Edge es que obtiene componentes
totalmente administrados en el hardware local. Todos los componentes de Azure
totalmente administrados son resistentes automáticamente en un nivel regional.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las
eficiencias operativas. Para más información, vea Información general del pilar de
optimización de costos.
Si quiere ver un ejemplo de precios para este escenario, use la Calculadora de precios
de Azure . Los componentes más caros del escenario son Azure Stack Edge y Azure
Kubernetes Service. Estos servicios proporcionan capacidad para escalar el sistema con
el objetivo de abordar el aumento de la demanda en el futuro.
El costo de usar los servicios de Azure AI para la detección de objetos varía en función
del tiempo que se ejecute el sistema. El ejemplo de precios anterior se basa en un
sistema que genera una imagen por segundo y funciona durante 8 horas al día. Un FPS
es suficiente para este escenario. Sin embargo, si el sistema necesita ejecutarse durante
períodos de tiempo más largos, el costo de usar los servicios de Azure AI es mayor:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Mick Alberts | Escritor técnico
Frédéric Le Coquil | Ingeniero principal de software
Pasos siguientes
Documentación del producto:
Detección de objetos
Uso responsable de la IA
¿Qué es Azure Stack Edge Pro 2?
Azure Kubernetes Service
Introducción a Azure Arc
Recursos relacionados
Clasificación de imágenes en Azure
Enriquecimiento mediante
inteligencia artificial con
procesamiento de imágenes y
texto
Azure App Service Azure Blob Storage Azure AI Search Azure Functions
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
En este artículo se presenta una solución que enriquece los documentos de texto e
imagen mediante el procesamiento de imágenes, el procesamiento del lenguaje natural
y las aptitudes personalizadas para capturar datos específicos del dominio. Azure
Cognitive Search con enriquecimiento con IA puede ayudar a identificar y explorar
contenido relevante a escala. Esta solución usa el enriquecimiento con IA para extraer el
significado del complejo conjunto de datos sin estructurar original de los informes sobre
el asesinato de JFK (archivos de JFK).
Architecture
Blob Storage Cognitive Search Built-in skills 3
Text Computer
Translator
Analytics Vision
Ingestion Enrich Index Query
Documents
Custom skills
4
1 2 5 7
Document Enriched Search Web
cracking documents index application
Projections 8
6
Microsoft
Azure
Blob Storage Table Storage
Knowledge store
Flujo de datos
El diagrama anterior muestra el proceso de pasar el conjunto de datos de los archivos
de JFK sin estructura a través de la canalización de aptitudes de Azure Cognitive Search
para generar datos estructurados e indexables:
Componentes
Azure Cognitive Search funciona con otros componentes de Azure para proporcionar
esta solución.
La OCR API heredada no está optimizada para documentos grandes, pero admite más
idiomas. Los resultados del OCR pueden variar en función de la calidad de la imagen y
de la digitalización. La idea de la solución actual usa el reconocimiento óptico de
caracteres para generar datos con el formato hOCR .
Azure Storage
Azure Blob Storage es un almacenamiento de objetos basado en REST para datos a
los que se puede acceder desde cualquier lugar del mundo a través de HTTPS. Blob
Storage se puede usar para exponer datos públicamente al mundo, o bien para
almacenar los datos de aplicaciones de manera privada. Blob Storage es ideal para
grandes cantidades de datos sin estructura, como texto o gráficos.
Azure Functions
Azure Functions es un servicio de proceso sin servidor que permite ejecutar pequeñas
partes de código desencadenado por eventos sin tener que aprovisionar ni administrar
explícitamente la infraestructura. Esta solución usa un método de Azure Functions para
aplicar la lista de criptónimos de la CIA a los informes sobre el asesinato de JFK como
una aptitud personalizada.
En esta solución, las aptitudes de Azure Cognitive Search se dividen en las siguientes
categorías:
Autor principal:
Pasos siguientes
Más información sobre esta solución:
Recursos relacionados
Consulte las arquitecturas e instrucciones relacionadas:
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
En este artículo se presenta una solución para la inferencia en tiempo real en Azure
Kubernetes Service (AKS).
Architecture
App developer
Machine Learning
model in containers
Kubeflow
3
Azure Container
Data scientist 2
Registry Parameter GPU-enabled
Worker nodes
server nodes Virtual Machines
Azure Blob
storage
Microsoft
Azure
Flujo de datos
1. Un modelo de aprendizaje automático se empaqueta en un contenedor y se
publica en Azure Container Registry.
2. Azure Blob Storage aloja los conjuntos de datos de entrenamiento y el modelo
entrenado.
3. Kubeflow se usa para implementar trabajos de entrenamiento en AKS, incluidos los
servidores de parámetros y los nodos de trabajo.
4. Kubeflow se usa para hacer que un modelo de producción esté disponible. Este
paso promueve un entorno coherente entre pruebas, control y producción.
5. AKS admite máquinas virtuales habilitadas para GPU.
6. Los desarrolladores crean funciones para consultar el modelo que se ejecuta en un
clúster AKS.
Componentes
Blob Storage es un servicio que forma parte de Azure Storage . Blob Storage
ofrece almacenamiento optimizado de objetos en la nube para grandes cantidades
de datos no estructurados.
Container Registry construye, almacena y administra imágenes de contenedores
y puede almacenar modelos de aprendizaje automático en contenedores.
AKS es un servicio de Kubernetes totalmente administrado, de alta
disponibilidad y seguro. AKS facilita la implementación y la administración de
aplicaciones contenedorizadas.
Machine Learning es un entorno basado en la nube que permite entrenar,
implementar, automatizar, administrar y realizar un seguimiento de los modelos de
aprendizaje automático. Puede utilizar los modelos para prever el
comportamiento, los resultados y las tendencias futuras.
Esta solución utiliza Kubeflow para gestionar la implementación en AKS. Los modelos
de aprendizaje automático se ejecutan en clústeres de AKS respaldados por máquinas
virtuales habilitadas para GPU.
Pasos siguientes
¿Qué es Azure Machine Learning?
Azure Kubernetes Service (AKS)
Implementación de un modelo en un clúster de Azure Kubernetes Service
Kubeflow en Azure
¿Qué es Azure Blob Storage?
Introducción a los registros de contenedor en Azure
Recursos relacionados
Inteligencia artificial (IA): introducción a la arquitectura
Orquestación de MLOps mediante
Azure Databricks
Azure Databricks
Ideas de solución
Este artículo es una idea de solución. Si le gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comuníquelo a través
de los Comentarios de GitHub .
Architecture
Flujo de trabajo
Esta solución proporciona un proceso de MLOps sólido que usa Azure Databricks. Todos
los elementos de la arquitectura son conectables, por lo que puede integrar otros
servicios de Azure y de terceros en toda la arquitectura según sea necesario. Esta
arquitectura y descripción se adaptan del libro electrónico El gran libro de MLOps .
Este libro electrónico explora la arquitectura que se describe aquí con más detalle.
Control de código fuente: este repositorio de código del proyecto organiza los
cuadernos, los módulos y las canalizaciones. Los científicos de datos crean ramas
de desarrollo para probar las actualizaciones y los nuevos modelos. El código se
desarrolla en cuadernos o en IDE, respaldados por Git, con la integración de
repositorios de Databricks para sincronizar con las áreas de trabajo de Azure
Databricks. El control de código fuente promueve las canalizaciones de aprendizaje
automático del desarrollo, a través del ensayo (para pruebas) hasta la producción
(para la implementación).
Desarrollo
1. Análisis de datos exploratorios (EDA): los científicos de datos exploran los datos
en un proceso interactivo e iterativo. Es posible que este trabajo ad hoc no se
implemente en ensayo o producción. Las herramientas pueden incluir Databricks
SQL, dbutils.data.summarize y AutoML.
Ensayo
Producción
Los ingenieros de aprendizaje automático administran el entorno de producción, donde
las canalizaciones de aprendizaje automático sirven directamente a las aplicaciones
finales. Las canalizaciones clave en la producción actualizan las tablas de características,
entrenan e implementan nuevos modelos, ejecutan inferencia o servicio y supervisan el
rendimiento del modelo.
Puntuación por lotes o streaming: para latencias de minutos o más, los lotes
y el streaming son las opciones más rentables. La canalización de puntuación
lee los datos más recientes del almacén de características, carga la versión del
modelo de producción más reciente del Registro de modelos y lleva a cabo la
inferencia en un trabajo de Databricks. Puede publicar predicciones en tablas
de almacén de lago, una conexión de Java Database Connectivity (JDBC),
archivos planos, colas de mensajes u otros sistemas de bajada.
Servicio en línea (API de REST): para casos de uso de baja latencia, el servicio
en línea suele ser necesario. MLflow puede implementar modelos en MLflow
Model Serving en Azure Databricks, sistemas de servicios de proveedores de
nube y otros sistemas. En todos los casos, el sistema de servicio se inicializa
con el modelo de producción más reciente del Registro de modelos. Para
cada solicitud, captura características de un almacén de características en
línea y hace predicciones.
11. Supervisión: los flujos de trabajo continuos o periódicos supervisan los datos de
entrada y las predicciones de modelos para el desfase, el rendimiento y otras
métricas. Delta Live Tables puede simplificar la automatización de las
canalizaciones de supervisión y almacenar las métricas en tablas del almacén de
lago. Databricks SQL, Power BI y otras herramientas pueden leer desde estas tablas
para crear paneles y alertas.
Componentes
Almacén de lago de datos . Una arquitectura de almacén de lago unifica los
mejores elementos de los lagos de datos y los almacenes de datos, lo que
proporciona administración de datos y rendimiento que normalmente se
encuentra en almacenes de datos con los almacenes de objetos flexibles y de bajo
costo que ofrecen los lagos de datos.
Delta Lake es la opción recomendada para un formato de datos de código
abierto para un almacén de lago. Azure Databricks almacena datos en Data Lake
Storage y proporciona un motor de consultas de alto rendimiento.
MLflow es un proyecto de código abierto para administrar el ciclo de vida de
aprendizaje automático de un extremo a otro. Estos son sus componentes
principales:
Seguimiento: le permite hacer un seguimiento de los experimentos para
registrar y comparar parámetros, métricas y artefactos de modelos.
Registro automático de Databricks: amplía el registro automático de
MLflow para hacer un seguimiento de los experimentos de aprendizaje
automático y registrar automáticamente los parámetros de modelos, las
métricas, los archivos y la información de linaje.
Modelo de MLflow: le permite almacenar e implementar modelos desde
cualquier biblioteca de aprendizaje automático en varias plataformas de
inferencia y servicio de modelos.
Registro de modelos: proporciona un almacén de modelos centralizado para
administrar las transiciones de fase de ciclo de vida del modelo de desarrollo a
producción.
Servicio de modelos: le permite hospedar modelos de MLflow como puntos de
conexión de REST.
Azure Databricks . Azure Databricks proporciona un servicio de MLflow
administrado con características de seguridad empresariales, alta disponibilidad e
integraciones con otras características de área de trabajo de Azure Databricks.
Databricks Runtime para aprendizaje automático: automatiza la creación de un
clúster optimizado para aprendizaje automático, que preinstala bibliotecas de
aprendizaje automático populares como TensorFlow, PyTorch y XGBoost,
además de herramientas de Azure Databricks para aprendizaje automático,
como los clientes de AutoML y el almacén de características.
Almacén de características: es un repositorio centralizado de características.
Permite el uso compartido y la detección de características, y ayuda a evitar la
asimetría de datos entre el entrenamiento y la inferencia de modelos.
Databricks SQL. Databricks SQL proporciona una experiencia sencilla para
consultas SQL en datos de almacén de lago y para visualizaciones, paneles y
alertas.
Repositorios de Databricks: proporciona integración con el proveedor de Git en
el área de trabajo de Azure Databricks, lo que simplifica el desarrollo
colaborativo de cuadernos o código y la integración de IDE.
Flujos de trabajo y trabajos: proporcionan un método para ejecutar código no
interactivo en un clúster de Azure Databricks. Para el aprendizaje automático,
los trabajos proporcionan automatización para la preparación de datos, la
caracterización, el entrenamiento, la inferencia y la supervisión.
Alternativas
Puede adaptar esta solución a la infraestructura de Azure. Las personalizaciones
comunes incluyen los siguientes aspectos:
La arquitectura se aplica a todos los tipos de sectores y casos de uso empresariales. Los
clientes de Azure Databricks que usan esta arquitectura y otras similares incluyen
organizaciones pequeñas y grandes en sectores como estos:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otro colaborador:
Pasos siguientes
El gran libro de MLOps
Necesidad de plataformas de ML centradas en datos (introducción a MLOps)
Inicio rápido integrado en el producto de aprendizaje automático de Databricks
Tutoriales de 10 minutos: Introducción al aprendizaje automático en Azure
Databricks
Documentación de Databricks Machine Learning
Recursos y página del producto de Databricks Machine Learning
MLOps en Databricks: guía paso a paso
Automatización del ciclo de vida de ML con Databricks Machine Learning
MLOps en Azure Databricks con MLflow
Ingeniería de aprendizaje automático para el mundo real
Automatización de la canalización de aprendizaje automático
Databricks Academy
Proyecto de GitHub de Databricks Academy (formación gratuita)
Glosario de MLOps
Tres principios para seleccionar plataformas de aprendizaje automático
¿Qué es un almacén de lago?
Página principal de Delta Lake
Ingesta de datos en Azure Databricks Lakehouse
Clústeres
Bibliotecas
Documentación de MLflow
Guía de Azure Databricks MLflow
Uso compartido de modelos en áreas de trabajo
Cuadernos
Instrucciones y herramientas para desarrolladores
Implementación de modelos de MLflow en puntos de conexión en línea en Azure
Machine Learning
Implementación en Azure Kubernetes Service (AKS)
Recursos relacionados
Marco de MLOps para escalar el ciclo de vida de aprendizaje automático con Azure
Machine Learning
MLOps v2
Modelo de madurez de MLOps
Implementación de procesos de
inteligencia artificial y aprendizaje
automático en el entorno local y
en el perímetro
Azure Container Registry Azure IoT Edge Azure Machine Learning Azure Stack Edge
Esta arquitectura de referencia muestra cómo usar Azure Stack Edge para ampliar la
inferencia rápida de aprendizaje automático desde la nube hasta escenarios locales o
perimetrales. Azure Stack Hub ofrece funcionalidades de Azure, como proceso,
almacenamiento, redes y aprendizaje automático con aceleración por hardware, a
cualquier ubicación perimetral.
Architecture
On-premises Azure
Training data
Azure Blob
storage
Azure IoT
Hub
Azure Stack
Edge
Model
Azure Machine
Learning
Genrated
model
Azure
Container
Registry
Sampled data Stored model
Flujo de trabajo
La arquitectura consta de los siguientes pasos:
Componentes
Azure Machine Learning
Azure Container Registry
Azure Stack Edge
Azure IoT Hub
Azure Blob Storage
Recomendaciones
Cada módulo de IoT Edge es un contenedor de Docker que cumple una tarea específica
en un flujo de trabajo de ingesta, transformación y transferencia. Por ejemplo, un
módulo de IoT Edge puede recopilar datos de un recurso compartido local de Azure
Stack Edge y transformar los datos en un formato listo para el aprendizaje automático. A
continuación, el módulo transfiere los datos transformados a un recurso compartido en
la nube de Azure Stack Edge. Puede agregar módulos personalizados o integrados al
dispositivo de IoT Edge o desarrollar módulos de IoT Edge personalizados.
7 Nota
7 Nota
Además, Azure Stack Edge sigue transfiriendo datos a Machine Learning para volver a
entrenar y mejorar de manera continua mediante una canalización de aprendizaje
automático que está asociada con el modelo que ya se ejecuta con los datos
almacenados localmente.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Disponibilidad
Considere la posibilidad de colocar el recurso de Azure Stack Edge en la misma
región de Azure que los otros servicios de Azure que accederán a él. Para
optimizar el rendimiento de la carga, considere la posibilidad de colocar la cuenta
de Azure Blob Storage en la región en la que el dispositivo tiene la mejor conexión
de red.
Considere la posibilidad de usar Azure ExpressRoute para una conexión estable y
redundante entre el dispositivo y Azure.
Facilidad de uso
Los administradores pueden comprobar que el origen de datos del
almacenamiento local se haya transferido al recurso de Azure Stack Edge
correctamente. Para ello, pueden montar el recurso compartido de archivos del
Bloque de mensajes del servidor (SMB) o Network File System (NFS) o conectarse a
la cuenta de Blob Storage asociada mediante el Explorador de Azure Storage .
Use conjuntos de datos de Machine Learning para hacer referencia a los datos en
Blob Storage mientras se entrena el modelo. Hacer referencia al almacenamiento
elimina la necesidad de insertar secretos, rutas de acceso de datos o cadenas de
conexión en los scripts de entrenamiento.
En el área de trabajo de Machine Learning, registre y haga un seguimiento de los
modelos de ML para hacer un seguimiento de las diferencias entre los modelos en
distintos momentos. También puede reflejar de forma similar los metadatos de
seguimiento y control de versiones en las etiquetas que se usan para las imágenes
de contenedor de Docker que se implementan en Container Registry.
DevOps
Revise el enfoque de administración del ciclo de vida de MLOps para Machine
Learning. Por ejemplo, use GitHub o Azure Pipelines para crear un proceso de
integración continua que entrene y vuelva a entrenar automáticamente un modelo.
El entrenamiento se puede desencadenar cuando los nuevos datos rellenan el
conjunto de datos o se hace un cambio en los scripts de entrenamiento.
El área de trabajo de Azure Machine Learning registrará y administrará
automáticamente las imágenes de contenedor de Docker para los modelos de
Machine Learning y los módulos de IoT Edge.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Pasos siguientes
Documentación del producto
Recursos relacionados
Creación de un bot conversacional de nivel empresarial
Clasificación de imágenes en Azure
Aprendizaje automático de varios
modelos a escala en Azure con
Spark
Azure Data Factory Azure Data Lake Azure Databricks Azure Machine Learning Azure Synapse Analytics
En este artículo se describe una arquitectura para muchos modelos que usa Apache
Spark en Azure Databricks o Azure Synapse Analytics. Spark es una herramienta eficaz
para las transformaciones de datos grandes y complejas que requieren algunas
soluciones.
7 Nota
Use las versiones 3.0 y posteriores de Spark para aplicaciones de muchos modelos.
La funcionalidad de transformación de datos y la compatibilidad con Python y
Pandas es mucho mejor que en versiones anteriores.
Architecture
Flujo de datos
1. Ingesta de datos: Azure Data Factory extrae datos de una base de datos de origen
y los copia en Azure Data Lake Storage.
2. Canalización de entrenamiento de modelos:
a. Preparación de datos: la canalización de entrenamiento extrae los datos de
Data Lake Storage y usa Spark para agruparlo en conjuntos de datos y entrenar
los modelos.
b. Entrenamiento de modelos: la canalización entrena modelos para todos los
conjuntos de datos que se crearon durante la preparación de los datos. Usa la
API de función de Pandas para entrenar varios modelos simultáneamente.
Después de haber entrenado un modelo, la canalización lo registra en Machine
Learning junto con las métricas de prueba.
3. Canalización de promoción de modelos:
a. Evaluar modelos: la canalización de promoción evalúa los modelos entrenados
antes de transferirlos a producción. Una canalización de DevOps aplica la lógica
de negocios para determinar si un modelo cumple los criterios de
implementación. Por ejemplo, podría comprobar que la precisión de los datos
de prueba es superior al 80 %.
b. Registro de modelos: la canalización de promoción registra los modelos aptos
para el área de trabajo de Machine Learning de producción.
4. Canalización de puntuación por lotes del modelo:
a. Preparación de datos: la canalización de puntuación por lotes extrae los datos
de Data Lake Storage y usa Spark para agruparlos en conjuntos de datos y
entrenar los modelos.
b. Puntuación de modelos: la canalización usa la API de función de Pandas para
puntuar varios conjuntos de datos simultáneamente. Busca las etiquetas del
modelo para identificar el modelo adecuado para cada conjunto de datos en
Machine Learning. Después, descarga el modelo y lo usa para puntuar el
conjunto de datos. Usa el conector de Spark con Synapse SQL para conservar
los resultados.
5. Puntuación en tiempo real: Azure Kubernetes Service (AKS) puede puntuar en
tiempo real si es necesario. Debido al elevado número de modelos, se deben
cargar a petición, no están precargados.
6. Resultados:
a. Predicciones: la canalización de puntuación por lotes guarda las predicciones
en Synapse SQL.
b. Métricas: Power BI se conecta a las predicciones del modelo para recuperar y
agregar resultados para presentar.
Componentes
Azure Machine Learning es un servicio de ML empresarial para compilar e
implementar modelos rápidamente. Proporciona a los usuarios de todos los
niveles de aptitud un diseñador con poco código, ML automatizado (AutoML) y un
entorno de cuadernos de Jupyter hospedado que admite diversos IDE.
Azure Synapse Analytics es un servicio de análisis que unifica integración de
datos, almacenamiento de datos empresariales y análisis de macrodatos.
Synapse SQL es un sistema de consultas distribuidas para T-SQL que habilita
escenarios de almacenamiento y virtualización de datos, además de ampliar T-SQL
para responder a escenarios de streaming y ML. Ofrece modelos de recursos sin
servidor y dedicados.
Azure Data Lake Storage es un servicio de almacenamiento seguro y que se
puede escalar de forma masiva para cargas de trabajo de análisis de alto
rendimiento.
Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado para
la implementación y la administración de aplicaciones contenedorizadas. AKS
simplifica la implementación de un clúster de AKS administrado en Azure, al
descargar la sobrecarga operativa en Azure.
Azure DevOps es un conjunto de servicios para desarrolladores que permiten
administrar todo el ciclo de vida de las aplicaciones y la infraestructura. DevOps
facilita el seguimiento del trabajo, el control de código fuente, la compilación y
CI/CD, la administración de paquetes y las soluciones de pruebas.
Microsoft Power BI es una colección de servicios de software, aplicaciones y
conectores que funcionan conjuntamente para convertir los orígenes de datos no
relacionados en información coherente, interactiva y visualmente atractiva.
Alternativas
Puede usar Spark en Azure Synapse en lugar de Spark en Azure Databricks con
fines de entrenamiento y puntuación de modelos.
Los datos de origen pueden proceder de cualquier base de datos.
Puede usar un punto de conexión en línea administrado o AKS para implementar
la inferencia en tiempo real.
Una solución de muchos modelos requiere un conjunto de datos diferente para cada
modelo durante el proceso de entrenamiento y puntuación. Por ejemplo, si la tarea
consiste en predecir las ventas de cada artículo y almacén, cada conjunto de datos se
corresponderá con una combinación única de artículo y almacén.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Para entender mejor el costo de ejecutar este escenario en Azure, use la calculadora de
precios . Las suposiciones iniciales son las siguientes:
Para ver cómo difieren los precios en su caso de uso, cambie las variables para que
coincidan con los requisitos de carga de servicio y tamaño de datos previstos. Para
tamaños de datos de entrenamiento más grandes o pequeños, aumente o reduzca el
tamaño del clúster Azure Databricks. Para administrar más usuarios simultáneamente
durante el servicio de modelos, aumente el tamaño del clúster de AKS.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué son los destinos de proceso en Azure Machine Learning?
Machine Learning habilitado para Azure Arc
Acelerador de soluciones Many Models
Clase ParallelRunStep
API de función de Pandas
Conexión a los servicios de almacenamiento en Azure
¿Qué es Azure Synapse Analytics?
Implementación de un modelo en un clúster de Azure Kubernetes Service
Recursos relacionados
Diseño de arquitectura de análisis
Elección de un almacén de datos analíticos en Azure
Elección de una tecnología de análisis de datos en Azure
Aprendizaje automático de varios modelos a escala con Azure Machine Learning
Puntuación por lotes de modelos de Spark en Azure Databricks
Aprendizaje automático de varios
modelos a escala con Azure
Machine Learning
Azure Data Factory Azure Data Lake Azure Databricks Azure Machine Learning Azure Synapse Analytics
En este artículo se describe una arquitectura para varios modelos que usan clústeres de
Machine Learning y de proceso. Proporciona una gran versatilidad para las situaciones
que requieren una configuración compleja.
Architecture
Flujo de trabajo
1. Ingesta de datos: Azure Data Factory extrae datos de una base de datos de origen
y los copia en Azure Data Lake Storage. A continuación, los almacena en un
almacén de datos de Machine Learning como un conjunto de datos tabulares.
2. Canalización de entrenamiento de modelos:
a. Preparación de datos: la canalización de entrenamiento extrae los datos del
almacén de datos y los transforma aún más, según sea necesario. También
agrupa los datos en conjuntos de datos para entrenar los modelos.
b. Entrenamiento de modelos: la canalización entrena modelos para todos los
conjuntos de datos que se crearon durante la preparación de los datos. Utiliza la
clase ParallelRunStep para entrenar varios modelos en paralelo. Después de
haber entrenado un modelo, la canalización lo registra en Machine Learning
junto con las métricas de prueba.
3. Canalización de promoción de modelos:
a. Evaluar modelos: la canalización de promoción evalúa los modelos entrenados
antes de transferirlos a producción. Una canalización de DevOps aplica la lógica
de negocios para determinar si un modelo cumple los criterios de
implementación. Por ejemplo, podría comprobar que la precisión de los datos
de prueba es superior al 80 %.
b. Registro de modelos: la canalización de promoción registra los modelos aptos
para el área de trabajo de Machine Learning de producción.
4. Canalización de puntuación por lotes del modelo:
a. Preparación de datos: la canalización de puntuación por lotes extrae datos del
almacén de datos y transforma cada archivo según sea necesario. También
agrupa los datos en conjuntos de datos para la puntuación.
b. Puntuación de modelos: la canalización usa la clase ParallelRunStep para
puntuar varios conjuntos de datos a la vez. Identifica el modelo adecuado para
cada conjunto de datos en Machine Learning buscando las etiquetas del
modelo. Después descarga el modelo y lo usa para puntuar el conjunto de
datos. Utiliza la clase DataTransferStep para volver a escribir los resultados en
Azure Data Lake y, a continuación, pasa las predicciones de Azure Data Lake a
Synapse SQL para el servicio.
5. Puntuación en tiempo real: Azure Kubernetes Service (AKS) puede puntuar en
tiempo real si es necesario. Debido al elevado número de modelos, se deben
cargar a petición, no están precargados.
6. Resultados:
a. Predicciones: la canalización de puntuación por lotes guarda las predicciones
en Synapse SQL.
b. Métricas: Power BI se conecta a las predicciones del modelo para recuperar y
agregar resultados para presentar.
Componentes
Azure Machine Learning es un servicio de ML empresarial para compilar e
implementar modelos rápidamente. Proporciona a los usuarios de todos los
niveles de aptitud con un diseñador de código bajo, ML automatizado (AutoML) y
un entorno de Jupyter Notebook hospedado que admite diversos IDE.
Azure Databricks es una herramienta de ingeniería de datos basada en la nube
que se basa en Apache Spark. Puede procesar y transformar grandes cantidades de
datos y explorarlos mediante modelos de ML. Puede escribir trabajos en R, Python,
Java, Scala y Spark SQL.
Azure Synapse Analytics es un servicio de análisis que unifica integración de
datos, almacenamiento de datos empresariales y análisis de macrodatos.
Synapse SQL es un sistema de consultas distribuidas para T-SQL que habilita
escenarios de almacenamiento y virtualización de datos, además de ampliar T-SQL
para responder a escenarios de streaming y ML. Ofrece modelos de recursos sin
servidor y dedicados.
Azure Data Lake Storage es un servicio de almacenamiento seguro y que se
puede escalar de forma masiva para cargas de trabajo de análisis de alto
rendimiento.
Azure Kubernetes Service (AKS) es un servicio de Kubernetes administrado para
la implementación y la administración de aplicaciones contenedorizadas. AKS
simplifica la implementación de un clúster de AKS administrado en Azure, al
descargar la sobrecarga operativa en Azure.
Azure DevOps es un conjunto de servicios para desarrolladores que permiten
administrar todo el ciclo de vida de las aplicaciones y la infraestructura. DevOps
facilita el seguimiento del trabajo, el control de código fuente, la compilación y
CI/CD, la administración de paquetes y las soluciones de pruebas.
Microsoft Power BI es una colección de servicios de software, aplicaciones y
conectores que funcionan conjuntamente para convertir los orígenes de datos no
relacionados en información coherente, interactiva y visualmente atractiva.
Alternativas
Los datos de origen pueden proceder de cualquier base de datos.
Puede usar un punto de conexión en línea administrado o AKS para implementar
la inferencia en tiempo real.
Una solución de muchos modelos requiere un conjunto de datos diferente para cada
modelo durante el proceso de entrenamiento y puntuación. Por ejemplo, si la tarea
consiste en predecir las ventas de cada artículo y almacén, cada conjunto de datos se
corresponderá con una combinación única de artículo y almacén.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Para entender mejor el costo de ejecutar este escenario en Azure, use la calculadora de
precios . Las suposiciones iniciales son las siguientes:
Para ver cómo difieren los precios en su caso de uso, cambie las variables para que
coincidan con los requisitos de carga de servicio y tamaño de datos previstos. Para
tamaños de datos de entrenamiento más grandes o pequeños, aumente o reduzca el
tamaño del clúster Azure Databricks. Para administrar más usuarios simultáneamente
durante el servicio de modelos, aumente el tamaño del clúster de AKS.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Machine Learning habilitado para Azure Arc
Acelerador de soluciones Many Models
Clase ParallelRunStep
Clase DataTransferStep
Conexión a los servicios de almacenamiento en Azure
¿Qué es Azure Synapse Analytics?
Implementación de un modelo en un clúster de Azure Kubernetes Service
Recursos relacionados
Diseño de arquitectura de análisis
Elección de un almacén de datos analíticos en Azure
Elección de una tecnología de análisis de datos en Azure
Aprendizaje automático de varios modelos a escala en Azure con Spark
Arquitectura de Azure Machine
Learning
Azure Machine Learning Azure Synapse Analytics Azure Container Registry Azure Monitor Power BI
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Esta arquitectura le muestra los componentes que se usan para compilar, implementar y
administrar modelos de alta calidad con Azure Machine Learning, un servicio para el
ciclo de vida de ML completo.
Architecture
Logs, files and media
(unstructured)
Azure Data Azure Synapse
Power BI
Lake Storage Analytics
Ingest and store Analyze Visualize
1 2 8
Build
and 3
Business / custom apps
train
(structured)
Retrain Authenticate
4
Deploy 5
7 Nota
Flujo de datos
1. Reúna todos los datos estructurados, no estructurados y semiestructurados
(registros, archivos y elementos multimedia) en Azure Data Lake Storage Gen2.
2. Use Apache Spark en Azure Synapse Analytics para limpiar, transformar y analizar
conjuntos de datos.
3. Construya y entrene modelos de Machine Learning con Azure Machine Learning.
4. Controle el acceso y la autenticación de los datos y el área de trabajo de ML con
Microsoft Entra ID y Azure Key Vault. Gestione contenedores con Azure Container
Registry.
5. Implemente el modelo de aprendizaje automático en un contenedor mediante
Azure Kubernetes Services, protegiendo y administrando la implementación con
redes virtuales de Azure y Azure Load Balancer.
6. Con las métricas de registro y la supervisión de Azure Monitor, evalúe el
rendimiento del modelo.
7. Vuelva a entrenar modelos según sea necesario en Azure Machine Learning.
8. Visualice salidas de datos con Power BI.
Componentes
Azure Machine Learning es un servicio de aprendizaje automático (ML) de nivel
empresarial para el ciclo de vida de ML completo.
Azure Synapse Analytics es un servicio unificado donde puede ingerir, explorar,
preparar, transformar, administrar y servir datos para necesidades inmediatas de BI
y aprendizaje automático.
Azure Data Lake Storage Gen2 es un lago de datos seguro y que se puede
escalar de forma masiva para cargas de trabajo de análisis de alto rendimiento.
Azure Container Registry es un registro de imágenes de Docker y Open
Container Initiative (OCI), con compatibilidad con todos los artefactos de OCI.
Compile, almacene, proteja, analice, replique y administre artefactos e imágenes de
contenedor con una instancia totalmente administrada y con replicación
geográfica de distribución de OCI.
Azure Kubernetes Service Azure Kubernetes Service (AKS) ofrece Kubernetes sin
servidor, una experiencia integrada de integración continua y entrega continua
(CI/CD) y una seguridad y gobernanza de nivel empresarial. Implemente y
administre aplicaciones en contenedores más fácilmente con un servicio
Kubernetes totalmente administrado.
Azure Monitor le permite recopilar y analizar los datos de telemetría de sus
entornos de Azure y locales, y actúa sobre dichos datos. Azure Monitor ayuda a
maximizar el rendimiento y la disponibilidad de las aplicaciones y a identificar de
forma proactiva los problemas en cuestión de segundos.
Azure Key Vault protege las claves criptográficas y otros secretos que usan los
servicios y las aplicaciones en la nube.
Azure Load Balancer equilibra la carga del tráfico de red privada y de Internet
con alto rendimiento y baja latencia. Load Balancer funciona en máquinas virtuales,
conjuntos de escalado de máquinas virtuales y direcciones IP.
Power BI es un conjunto de herramientas de análisis empresarial que
proporciona información detallada acerca de toda la organización. Conéctese a
cientos de orígenes de datos, simplifique la preparación de los datos y realice
análisis no planeados. Cree informes atractivos y publíquelos en la organización
para que se usen en la web y en los dispositivos móviles.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Consulte la documentación de los servicios clave de esta solución:
Recursos relacionados
Consulte las instrucciones relacionadas con el Centro de arquitectura de Azure:
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Obtenga información sobre la forma en que Project Bonsai crea e implementa sistemas
autónomos con la enseñanza automática, el aprendizaje de refuerzo profundo y las
simulaciones.
Architecture
Project Bonsai acelera la creación de automatización con tecnología de inteligencia
artificial. El desarrollo y la implementación constan de tres fases: creación,
entrenamiento e implementación.
Descargue un archivo Visio de esta arquitectura.
Flujo de datos
1. La fase de creación consiste en escribir el programa de enseñanza automática y
conectarse a un simulador de entrenamiento específico del dominio. Los
simuladores generan suficientes datos de entrenamiento para los experimentos y
las prácticas de la máquina.
Componentes
El Proyecto Bonsai simplifica la enseñanza automática con el DRL para entrenar e
implementar sistemas autónomos inteligentes.
Esta arquitectura usa el nivel básico de Container Registry para almacenar cerebros
exportados y simuladores cargados.
Esta arquitectura utiliza Storage para almacenar los simuladores cargados como
archivos ZIP.
Detalles del escenario
La inteligencia artificial (IA) y el aprendizaje automático ofrecen oportunidades y
desafíos únicos para la automatización de sistemas industriales complejos. La enseñanza
automática es un nuevo paradigma para la creación de sistemas de aprendizaje
automático, que aleja el foco de los algoritmos y lo pone en la generación e
implementación correctas de modelos.
Control de movimiento
Calibración de la máquina
Edificios inteligentes
Robótica industrial
control de procesos
Inkling
Inkling es un lenguaje de programación declarativo de tipos estáticos para el
entrenamiento de la IA en Bonsai. Inkling permite abstraerse de los algoritmos de IA
dinámicos que requieren experiencia en aprendizaje automático, lo que hace posible
que más desarrolladores programen en IA. Un archivo de Inkling define los conceptos
necesarios para enseñar a la IA y el plan de estudios, o métodos, para enseñar los
conceptos.
Para obtener más información sobre Inkling, consulte la referencia del lenguaje de
programación Inkling.
Motor de entrenamiento
Ejemplo de Cartpole
Bonsai incluye dos muestras de enseñanza de máquinas, Cartpole y Moab .
La muestra Cartpole tiene un poste unido a un carro por una articulación no activada. El
carro se mueve a lo largo de una pista sin fricción recta y el poste se mueve hacia
delante y hacia atrás, dependiendo de los movimientos del carro. La información del
sensor disponible incluye la posición y la velocidad del carro y el ángulo y la velocidad
angular del poste. Las acciones admitidas del agente son empujar el carro a la izquierda
o a la derecha.
El poste se inicia en posición vertical, y el objetivo es mantenerlo vertical mientras se
mueve el carro. Se genera una recompensa por cada intervalo de tiempo que el poste
permanece en posición vertical. Un episodio de entrenamiento termina cuando el poste
está a más de 15 grados de la vertical, o cuando el carro se mueve más de un número
predefinido de unidades desde el centro de la pista.
Simuladores
Las simulaciones modelan un sistema en una representación virtual de su entorno físico
previsto. Las simulaciones son un enfoque alternativo para crear políticas de aprendizaje
de forma manual o para recopilar grandes cantidades de datos de entrenamiento del
mundo real. Las simulaciones permiten el entrenamiento en entornos peligrosos, o en
condiciones difíciles de reproducir en el mundo real.
Las simulaciones están disponibles en una amplia gama de industrias y sistemas, como
ingeniería mecánica y eléctrica, vehículos autónomos, seguridad y redes, transporte y
logística, y robótica.
AirSim
Microsoft AirSim (simulación de informática y robótica aérea) es una plataforma de
simulación robótica de código abierto diseñada para entrenar sistemas autónomos.
AirSim ofrece una herramienta de simulación realista para que los diseñadores y
desarrolladores generen las grandes cantidades de datos que necesitan para el
entrenamiento y la depuración de los modelos.
AirSim puede capturar datos de vehículos terrestres, robótica con ruedas, drones aéreos
e incluso dispositivos IoT estáticos, y hacerlo sin costosas operaciones de campo.
AirSim funciona como complemento para el editor Unreal Engine de Epic Games, y
brinda control para la creación de entornos y la simulación de eventos reales difíciles de
reproducir, para capturar datos significativos. AirSim aprovecha la representación del
motor de juegos actual, la física y el cálculo de percepciones para crear una simulación
precisa del mundo real.
Este realismo, basado en datos reales generados de manera eficaz, permite el estudio y
la ejecución de misiones complejas que requieren mucho tiempo o son peligrosas en el
mundo real. Por ejemplo, AirSim proporciona entornos realistas, dinámica de vehículos y
detección multimodal para investigadores que construyen vehículos autónomos. Las
colisiones en un simulador no cuestan prácticamente nada, pero proporcionan
información útil para mejorar el diseño del sistema.
Puede usar una plantilla de Azure Resource Manager (ARM) para crear
automáticamente un entorno de desarrollo, y codificar y depurar una aplicación de
Python conectada a AirSim en Visual Studio Code. Para obtener más información,
consulte Entorno de desarrollo de AirSim en Azure .
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Recursos relacionados
Uso de la experiencia en la materia en la enseñanza automática y el aprendizaje de
refuerzo
Bloques de creación para entornos de simulación de conducción autónoma
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Ciencia de datos y aprendizaje
automático con Azure Databricks
Azure Databricks Azure Data Lake Storage Azure Kubernetes Service (AKS) Azure Machine Learning
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
Process Serve
4
Azure Databricks Azure Machine Azure
Learning web Kubernetes
services Service (AKS)
1 2 3
Azure Data
Lake Storage
Store
Microsoft
Azure
Flujo de datos
Almacenamiento
Data Lake Storage almacena los datos en formato Delta Lake. Delta Lake constituye la
capa mantenida del lago de datos. Una arquitectura de medallas organiza los datos en
tres capas:
Proceso
El código de varios lenguajes, marcos y bibliotecas prepara, refina y limpia los
datos sin procesar (1). Entre las posibilidades de codificación se incluyen Python, R,
SQL, Spark, Pandas y Koalas.
Azure Databricks ejecuta las cargas de trabajo de ciencia de datos. Esta plataforma
también compila y entrena modelos de aprendizaje automático (2).
Azure Databricks usa bibliotecas optimizadas preinstaladas. Algunos ejemplos son
scikit-learn, TensorFlow, PyTorch y XGBoost.
Servicio
Componentes
Azure Databricks es una plataforma de análisis de datos. Sus clústeres de Spark
totalmente administrados ejecutan cargas de trabajo de ciencia de datos.
Azure Databricks también usa bibliotecas optimizadas preinstaladas para compilar
y entrenar modelos de aprendizaje automático. La integración de MLflow con
Azure Databricks proporciona una opción para realizar el seguimiento de los
experimentos, almacenar modelos en repositorios y poner los modelos a
disposición de otros servicios. Azure Databricks ofrece escalabilidad:
Los clústeres de proceso de nodo único controlan conjuntos de datos pequeños
y ejecuciones de un solo modelo.
Para conjuntos de datos grandes, hay disponibles clústeres de proceso de varios
nodos o clústeres de unidad de procesamiento de gráficos (GPU). Estos
clústeres usan bibliotecas y marcos como HorovodRunner e Hyperopt para
ejecuciones de modelos paralelos.
Data Lake Storage es un lago de datos seguro y escalable para cargas de trabajo
de análisis de alto rendimiento. Este servicio puede administrar varios petabytes de
información, al mismo tiempo que mantiene un rendimiento de cientos de
gigabits. Los datos pueden tener estas características:
Ser estructurados, semiestructurados o no estructurados.
Proceder de varios orígenes heterogéneos, como registros, archivos y
elementos multimedia.
Ser estáticos, de lotes o de streaming.
MLflow es una plataforma de código abierto para el ciclo de vida del aprendizaje
automático. Los componentes de MLflow supervisan los modelos de aprendizaje
automático durante el entrenamiento y la ejecución. La información almacenada
incluye código, datos, información de configuración y resultados. MLflow también
almacena modelos y los carga en producción. Dado que MLflow usa marcos
abiertos, varios servicios, aplicaciones, marcos y herramientas pueden consumir los
modelos.
Seguimiento de experimentos.
Reproducción de resultados.
Implementación de modelos en de aprendizaje automático en producción.
Colaborativa: los equipos de ciencia de datos y MLOps trabajan juntos con esta
solución. Estos equipos usan el seguimiento de MLflow para registrar y consultar
experimentos. Los equipos también implementan modelos en el registro de
modelos de MLflow central. A continuación, los ingenieros de datos usan los
modelos implementados en procesos de ingesta de datos y de extracción,
transformación y carga (ETL), así como en canalizaciones de streaming.
Pasos siguientes
AGL Energy crea una plataforma estandarizada para miles de modelos paralelos.
La plataforma proporciona procesos de entrenamiento, implementación y
administración del ciclo de vida rápidos y rentables para los modelos.
Open Grid Europa (OGE) usa modelos de inteligencia artificial para supervisar las
canalizaciones de gas. OGE usa Azure Databricks y MLflow para desarrollar los
modelos.
Scandinavian Airlines (SAS) usa Azure Databricks durante una fase de
investigación colaborativa. La compañía también usa Machine Learning para
desarrollar modelos predictivos. Al identificar patrones en los datos de la empresa,
los modelos mejoran las operaciones diarias.
Recursos relacionados
Elección de un almacén de datos analíticos en Azure
Puntuación por lotes de modelos de Spark en Azure Databricks
Procesamiento de flujos de datos con Azure Databricks
Canalizaciones de ingesta, ETL y procesamiento de flujos con Azure Databricks
Arquitectura de análisis moderno con Azure Databricks
Automatización de la
identificación, clasificación y
búsqueda de documentos
mediante Durable Functions
Azure Functions Azure App Service Servicios de Azure AI Azure Cognitive Search
En este artículo, se describe una arquitectura para procesar archivos de documentos que
contienen varios documentos de varios tipos. Se utiliza la extensión Durable Functions
de Azure Functions para implementar las canalizaciones que procesan los archivos.
Architecture
Flujo de trabajo
1. El usuario proporciona un archivo de documentos y la aplicación web lo carga. El
archivo contiene varios documentos de varios tipos. Por ejemplo, puede ser un
archivo PDF o un archivo TIFF de varias páginas.
a. El archivo de documentos se almacena en Azure Blob Storage.
b. La aplicación web agrega un mensaje de comando a una cola de
almacenamiento para iniciar el procesamiento de la canalización.
7 Nota
Componentes
Durable Functions es una extensión de Azure Functions que hace posible escribir
funciones con estado en un entorno de proceso sin servidor. En esta aplicación, se
usa para administrar la ingesta de documentos y la orquestación de flujos de
trabajo. Permite definir flujos de trabajo con estado escribiendo funciones de
orquestador que se adhieren al modelo de programación de Azure Functions. En
segundo plano, la extensión administra el estado, los puntos de comprobación y
los reinicios, lo que le permite centrarse en la lógica de negocios.
Azure Cosmos DB es una base de datos multimodelo y de distribución global
que hace posible que las soluciones escalen el rendimiento y la capacidad de
almacenamiento en un número indefinido de regiones geográficas. Los Acuerdos
de Nivel de Servicio (SLA) integrales garantizan el rendimiento, la latencia, la
disponibilidad y la coherencia.
Azure Storage es un conjunto de servicios en la nube seguros y escalables de
forma masiva para datos, aplicaciones y cargas de trabajo. Incluye Blob Storage ,
Azure Files , Azure Table Storage y Azure Queue Storage .
Azure App Service proporciona un marco para compilar, implementar y escalar
aplicaciones web. La característica Web Apps es un servicio basado en HTTP para
hospedar aplicaciones web, API de REST y servidores back-end para dispositivos
móviles. Con Web Apps, puede desarrollar en .NET, .NET Core, Java, Ruby, Node.js,
PHP o Python. Las aplicaciones se ejecutan y escalan fácilmente en los entornos
Windows y Linux.
Azure Cognitive Services proporciona algoritmos inteligentes para ver, oír,
hablar, reconocer e interpretar las necesidades de los usuarios mediante métodos
de comunicación naturales.
Azure Cognitive Search proporciona una experiencia de búsqueda enriquecida a
partir de contenido privado y heterogéneo de aplicaciones web, móviles y
empresariales.
AKS es un servicio de Kubernetes totalmente administrado, de alta
disponibilidad y seguro. AKS facilita la implementación y la administración de
aplicaciones contenedorizadas.
Alternativas
El modelo de lectura (OCR) de Form Recognizer es una alternativa a la lectura de
Computer Vision.
Esta solución almacena los metadatos en Azure Cosmos DB para facilitar la
distribución global. Azure SQL Database es otra opción para el almacenamiento
persistente de los metadatos y la información de los documentos.
Puede usar otras plataformas de mensajería, incluido Azure Service Bus , para
desencadenar instancias de Durable Functions.
Para ver un acelerador de soluciones que ayude a agrupar en clústeres y separar
los datos en plantillas, consulte Azure/form-recognizer-accelerator (github.com) .
Dadas estas restricciones, las organizaciones se han visto obligadas a crear sus propias
soluciones de análisis de documentos que pueden incluir tecnología personalizada y
procesos manuales. Una solución puede incluir la intervención humana para dividir los
tipos de documentos individuales en sus propios archivos y agregar calificadores de
clasificaciones a cada documento.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Una carga de trabajo de confianza es aquella que es resistente y a la vez está disponible.
La resistencia es la capacidad de un sistema de recuperarse de los errores y seguir
funcionando. El objetivo de la resistencia es devolver la aplicación a un estado
plenamente operativo después de un error. La disponibilidad mide si los usuarios
pueden acceder a la carga de trabajo cuando lo necesiten.
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las
eficiencias operativas. Para más información, vea Información general del pilar de
optimización de costos.
Los costos más significativos de esta arquitectura pueden provenir del almacenamiento
de archivos de imagen en la cuenta de almacenamiento, el procesamiento de imágenes
de Cognitive Services y los requisitos de capacidad de índices en el servicio Azure
Cognitive Search.
Los períodos en los que esta solución procesa grandes volúmenes pueden exponer
cuellos de botella de rendimiento. Asegúrese de comprender y planear las opciones de
escalado de Azure Functions, el escalado automático de Cognitive Services y la creación
de particiones de Azure Cosmos DB para garantizar una eficiencia del rendimiento
adecuada para la solución.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Artículos de información general:
Recursos relacionados
Modelos de procesamiento de documentos personalizados en Azure
Automatización del procesamiento de documentos mediante Azure Form
Recognizer
Clasificación de imágenes en Azure
Automatización del
procesamiento de documentos
mediante Azure Form Recognizer
Azure Cognitive Search Servicios de Azure AI Azure Cosmos DB Inteligencia de documentos de Azure
En este artículo se describe una solución escalable y segura para compilar una
canalización de procesamiento de documentos automatizada. La solución usa Azure
Form Recognizer para la extracción estructurada de datos. Los modelos de
procesamiento de lenguaje natural (NLP) y los modelos personalizados enriquecen los
datos.
Architecture
Other sources of data Extraction Enrichment Analytics and visualizations
Data to be Azure
processed Trigger Cognitive
4 Service for
Attachments 1 Language
(email or social media apps) Azure Blob Storage
Real-time scoring
Back-end
application 2 Power BI
FTP servers
6
Azure Kubernetes
Azure Functions Service (AKS)
5
Azure Web Azure Form
Application Recognizer Other
Firewall 3 Batch scoring Azure Machine Learning applications
1
2
Azure Cosmos
DB Azure Cognitive Search
1 3
File ingestion Browser Azure Back-end
Application application
Gateway
Microsoft
Azure
Flujo de datos
En las secciones siguientes se describen las distintas fases del proceso de extracción de
datos.
Diseño
Factura
Recibo
Documento de identificación
Tarjeta de presentación
Documento general, que se encuentra en versión preliminar
Enriquecimiento de datos
La canalización que se usa para el enriquecimiento de datos depende del caso de uso.
Análisis y visualizaciones
1. Las aplicaciones usan OCR sin procesar, datos estructurados de puntos de
conexión de Form Recognizer y los datos enriquecidos de NLP:
Componentes
App Service es una oferta de plataforma como servicio (PaaS) de Azure. Puede
usar App Service para hospedar aplicaciones web que se pueden reducir o escalar
horizontalmente de forma manual o automática. El servicio admite varios lenguajes
y marcos, como ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP y Python.
Azure Functions es una plataforma de proceso sin servidor que se puede usar
para compilar aplicaciones. Con Functions, puede usar desencadenadores y
enlaces para reaccionar ante los cambios en servicios de Azure como Blob Storage
y Azure Cosmos DB. Functions puede ejecutar tareas programadas y procesar
datos en tiempo real y colas de mensajería.
Blob Storage es un servicio que forma parte de Azure Storage. Blob Storage
ofrece almacenamiento optimizado de objetos en la nube para grandes cantidades
de datos no estructurados.
Azure Data Lake Storage es un lago de datos seguro y escalable para cargas de
trabajo de análisis de alto rendimiento. Los datos provienen normalmente de
varios orígenes heterogéneos y pueden ser estructurados, semiestructurados o no
estructurados. Azure Data Lake Storage Gen2 combina las capacidades de Azure
Data Lake Storage Gen1 con Blob Storage. Como solución de próxima generación,
Data Lake Storage Gen2 proporciona semántica de sistema de archivos, seguridad
de nivel de archivo y escalado. Además, ofrece las funcionalidades de
almacenamiento por niveles, alta disponibilidad y recuperación ante desastres de
Blob Storage.
Azure Cognitive Service para lenguaje ofrece muchos servicios NLP que se
pueden usar para comprender y analizar texto. Algunos de estos servicios son
personalizables, como NER personalizado, clasificación de texto personalizado,
reconocimiento del lenguaje conversacional y respuesta a preguntas.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Disponibilidad
La disponibilidad de la arquitectura depende de los servicios de Azure que conformen la
solución:
Azure Cognitive Service para lenguaje forma parte de Azure Cognitive Services.
Para conocer la garantía de disponibilidad de estos servicios, vea SLA para Azure
Cognitive Services .
Escalabilidad
App Service puede escalar horizontalmente y reducir horizontalmente de forma
automática a medida que varía la carga de la aplicación. Para obtener más
información, vea Creación de una configuración de escalabilidad automática para
recursos de Azure basada en los datos de rendimiento o en una programación.
Blob Storage y Azure Cosmos DB cifran los datos en reposo. Puede proteger estos
servicios mediante puntos de conexión de servicio o puntos de conexión privados.
Puede configurar Form Recognizer y Azure Cognitive Service para lenguaje para el
acceso desde redes virtuales específicas o desde puntos de conexión privados.
Estos servicios cifran los datos en reposo. Es posible usar claves de suscripción,
tokens o Microsoft Entra ID para autenticar solicitudes en estos servicios. Para
obtener más información, vea Autenticación de solicitudes en Azure Cognitive
Services.
Puede hacer que Form Recognizer sea resistente. Las posibilidades incluyen
diseñarlo para conmutar por error en otra región y dividir la carga de trabajo en
dos o más regiones. Para obtener más información, vea Copia de seguridad y
recuperación de los modelos de Form Recognizer.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué es Azure Form Recognizer?
[Póngase en marcha: Document Intelligence Studio][Póngase en marcha:
Document Intelligence Studio]
Uso de los SDK o de la API de REST de Form Recognizer
¿Qué es Azure Cognitive Service for Language?
¿Qué es Azure Machine Learning?
Introducción a Azure Functions
Configuración de Azure Functions con una red virtual
¿Qué es Azure Application Gateway?
¿Qué es el firewall de aplicaciones web de Azure en Azure Application Gateway?
Tutorial: Acceso a SQL Server local desde una VNet administrada por Data Factory
mediante un punto de conexión privado
Documentación de Azure Storage
Recursos relacionados
Extracción de texto de objetos mediante Power Automate y AI Builder
[Minería de conocimiento en la administración de procesos empresariales] [Minería
de conocimiento en la administración de procesos empresariales]
[Minería de conocimiento en la administración de contratos] [Minería de
conocimiento en la administración de contratos]
Minería de conocimientos para la investigación de contenido
Automatizar el procesamiento de
formularios PDF
Inteligencia de documentos de Azure Servicios de Azure AI Azure Logic Apps Azure Functions
En este artículo se describe una arquitectura de Azure que puede usar para reemplazar
métodos de procesamiento de formularios costosos e inflexibles con procesamiento
automatizado de PDF flexible y rentable.
Architecture
Flujo de trabajo
1. Una cuenta de correo electrónico designada de Outlook recibe archivos PDF como
datos adjuntos. La llegada de un correo electrónico desencadena una aplicación
lógica para procesar el correo electrónico. La aplicación lógica se compila
mediante las funcionalidades de Azure Logic Apps.
2. La aplicación lógica carga los archivos PDF en un contenedor en Azure Data Lake
Storage.
3. También puede cargar manualmente o mediante programación archivos PDF en el
mismo contenedor PDF.
4. La llegada de un archivo PDF en el contenedor PDF desencadena otra aplicación
lógica para procesar los formularios PDF que se encuentran en el archivo
mencionado.
5. La aplicación lógica envía la ubicación del archivo PDF a una aplicación de
funciones para su procesamiento. La aplicación de funciones se compila mediante
las funcionalidades de Azure Functions.
6. La aplicación de funciones recibe la ubicación del archivo y lleva a cabo estas
acciones:
a. Divide el archivo en páginas únicas en caso de que el archivo tenga varias. Cada
página contiene un formulario independiente. Los archivos divididos se guardan
en un segundo contenedor en Data Lake Storage.
b. Usa HTTPS POST, una API de REST de Azure, para enviar la ubicación del archivo
PDF de página única a Azure Form Recognizer para su procesamiento. Cuando
Form Recognizer completa su procesamiento, devuelve una respuesta a la
aplicación de funciones, que coloca la información en una estructura de datos.
c. Crea un archivo de datos JSON que contiene los datos de respuesta y almacena
el archivo en un tercer contenedor en Data Lake Storage.
7. La aplicación lógica de procesamiento de formularios recibe los datos de respuesta
procesados.
8. La aplicación lógica de procesamiento de formularios envía los datos procesados a
Azure Cosmos DB, que los guarda en una base de datos y en colecciones.
9. Power BI obtiene los datos de Azure Cosmos DB y proporciona información y
paneles.
10. Puede implementar un procesamiento adicional según sea necesario en los datos
de Azure Cosmos DB.
Componentes
Azure Applied AI Services es una categoría de productos de Azure AI que usa
Azure Cognitive Services, inteligencia artificial específica de tareas y lógica de
negocios para proporcionar servicios de inteligencia artificial inmediata para
procesos empresariales comunes. Uno de estos productos es Form Recognizer ,
que usa modelos de Machine Learning para extraer pares clave-valor, texto y
tablas de documentos.
Azure Logic Apps es un servicio en la nube sin servidor que permite crear y
ejecutar flujos de trabajo automatizados que integren aplicaciones, datos, servicios
y sistemas.
Azure Functions es una solución sin servidor que le permite escribir menos
código, mantener menos infraestructura y ahorrar costos.
Azure Data Lake Storage es una base para crear lagos de datos empresariales en
Azure.
Azure Cosmos DB es una base de datos NoSQL y relacional totalmente
administrada para el desarrollo de aplicaciones modernas.
Power BI es una colección de servicios de software, aplicaciones y conectores
que funcionan conjuntamente para que pueda convertir los orígenes de datos no
relacionados en información coherente, interactiva y visualmente atractiva.
Alternativas
Puede usar Azure SQL Database en vez de Azure Cosmos DB para almacenar los
datos procesados de los formularios.
Puede usar Azure Data Explorer para visualizar los datos de formularios
procesados que se almacenan en Data Lake Storage.
En este artículo se describe una arquitectura que puede usar para reemplazar el
procesamiento manual de formularios PDF o sistemas heredados costosos que
automatizan el procesamiento de formularios PDF. Form Recognizer procesa los
formularios PDF, Logic Apps proporciona el flujo de trabajo y Functions provee las
funcionalidades de procesamiento de datos.
Facturas
Registros de pago
Registros de seguridad
Registros de incidentes
Registros de cumplimiento
Pedidos de compra
Formularios de autorización de pago
Formularios de comprobación de estado
Formularios de encuestas
Consideraciones
Estas consideraciones constituyen los pilares del Marco de buena arquitectura de Azure,
un conjunto de principios rectores que puede usar para mejorar la calidad de una carga
de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft
Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Esta arquitectura está pensada como una arquitectura de inicio que puede implementar
rápidamente y crear prototipos para ofrecer una solución empresarial. Si el prototipo es
un éxito, puede ampliar y mejorar la arquitectura para cumplir los requisitos adicionales
(si es necesario).
Para conocer las garantías de disponibilidad de los servicios de Azure que usa esta
solución, consulte Acuerdo de Nivel de Servicio para Online Services .
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Los scripts de implementación de PowerShell y Bicep usan Azure Key Vault para
almacenar información confidencial y que no se muestre en las pantallas de
terminal ni se almacene en los registros de implementación.
Las identidades administradas proporcionan una identidad administrada
automáticamente en Microsoft Entra ID para que las aplicaciones la utilicen al
conectarse a los recursos que admiten la autenticación de Microsoft Entra. La
aplicación de funciones usa identidades administradas para que el código no
dependa de entidades de seguridad individuales y no contenga información de
identidad confidencial.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Puede hospedar Azure Logic Apps y Azure Functions en una infraestructura sin
servidor. Para más información, consulte Introducción a Azure sin servidor:
creación de soluciones y aplicaciones basadas en la nube con Azure Logic Apps y
Azure Functions.
Puede configurar Azure Cosmos DB para escalar automáticamente su rendimiento.
Para más información, consulte Aprovisionamiento del rendimiento de la
escalabilidad automática en una base de datos o un contenedor de Azure
Cosmos DB: API para NoSQL.
El acelerador recibe los formularios PDF, extrae los campos de datos y guarda los datos
en Azure Cosmos DB. Power BI visualiza los datos. El diseño usa una metodología
modular controlada por metadatos. No hay campos de formulario codificados de forma
rígida. Puede procesar cualquier formulario PDF.
Puede usar el acelerador tal cual, sin modificaciones de código, para procesar y
visualizar formularios PDF de página única, como formularios de seguridad, facturas,
registros de incidentes y muchos otros. Para usarlo, solo tiene que recopilar formularios
PDF de muestra, entrenar un nuevo modelo para aprender el diseño de los formularios y
conectarlo a la solución. También debe rediseñar el informe de Power BI para los
conjuntos de datos de modo que proporcione la información que desee.
Repositorio de implementación
El repositorio de GitHub para el acelerador de soluciones es:
https://github.com/microsoft/Azure-PDF-Form-Processing-Automation-Solution-
Accelerator
https://github.com/microsoft/Azure-PDF-Form-Processing-Automation-Solution-
Accelerator/tree/main/Deployment
Para obtener información sobre los servicios que se usan en el acelerador, consulte los
artículos de información general y referencia que aparecen en:
Consideraciones de la implementación
Para procesar un nuevo tipo de formulario PDF, use archivos PDF de muestra para crear
un nuevo modelo de Machine Learning. Cuando el modelo esté listo, conecte el
identificador a la solución.
Este nombre de contenedor se puede configurar en los scripts de implementación que
obtiene del repositorio de GitHub.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Nalini Chandhi | Especialista técnico principal
Steve DeMarco | Arquitecto de soluciones en la nube sénior
Travis Hilbert | Especialista técnico Global Black Belt
DB Lee | Especialista técnico sénior
Malory Rose | Especialista técnico Global Black Belt
Oscar Shimabukuro | Arquitecto de soluciones en la nube sénior
Echo Wang | Director de administración de programas
Pasos siguientes
Vídeo: Acelerador de soluciones de automatización del procesamiento de
formularios PDF de Azure .
Acelerador de soluciones de automatización del procesamiento de formularios
PDF de Azure
Acelerador de soluciones de automatización del procesamiento de facturas de
Azure
Acelerador de automatización de procesos empresariales
Tutorial: Creación de flujos de trabajo para procesar correos electrónicos mediante
Azure Logic Apps, Azure Functions y Azure Storage
Recursos relacionados
Modelos de procesamiento de documentos personalizados en Azure
Indexación de contenido y metadatos de archivos mediante Azure Cognitive
Search
Automatización de la identificación, clasificación y búsqueda de documentos
mediante Durable Functions
Automatización del procesamiento de documentos mediante Azure Form
Recognizer
Modelos de procesamiento de
documentos personalizados en
Azure
Inteligencia de documentos de Azure Servicios de Azure AI Azure Logic Apps
En este artículo se describen las soluciones de Azure para crear, entrenar, implementar y
usar modelos de procesamiento de documentos personalizados. Estos servicios de
Azure también ofrecen funcionalidades de interfaz de usuario (UI) para realizar etiquetas
o etiquetados para el procesamiento de texto.
Architecture
Data ingestion Labeling, tagging,
Source Data store Deployment
and orchestration and training
Built-in
deployment
1 2 3
4
Language Cognitive Service for Language
FTP server Data Factory Studio (custom model parameters)
Data Lake
Storage
Machine Learning Kubernetes Batch/online
Web Apps Function Apps managed
Studio Services
endpoints
Microsoft
Azure
Flujo de datos
1. Orquestadores como Azure Logic Apps, Azure Data Factory o Azure Functions
ingerir mensajes y datos adjuntos de servidores de correo electrónico y archivos de
servidores de FTP o aplicaciones web.
2. Los orquestadores envían datos ingeridos a Azure Blob Storage o Data Lake
Storage, organizando los datos entre almacenes de datos en función de
características como extensiones de archivo o clientes.
Componentes
Logic Apps forma parte de Azure Integration Services . Logic Apps crea flujos
de trabajo automatizados que integran aplicaciones, datos, servicios y sistemas.
Con conectores administrados para servicios como Azure Storage y Office 365,
puede desencadenar flujos de trabajo cuando se recibe un archivo en la cuenta de
almacenamiento o el correo electrónico.
Form Recognizer Studio proporciona una interfaz de usuario para explorar Form
Recognizer características y modelos, así como para compilar, etiquetar, entrenar e
implementar modelos personalizados.
Language Studio proporciona una interfaz de usuario para explorar y analizar las
características de Azure Cognitive Service para lenguaje. Language Studio también
proporciona opciones para compilar, etiquetar, entrenar e implementar modelos
personalizados.
Alternativas
Puede agregar más flujos de trabajo a este escenario en función de casos de uso
específicos.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Disponibilidad
Resistencia
Controle los modos de error de servicios individuales, como Azure Functions y
Azure Storage, para garantizar la resistencia de los servicios de proceso y los
almacenes de datos en este escenario. Para obtener más información, vea Lista de
comprobación de resistencia para servicios de Azure específicos.
Para el Form Recognizer, haga una copia de seguridad y recupere sus modelos de
Form Recognizer.
Para NER personalizado en Cognitive Services para lenguaje, realice una copia de
seguridad y recupere los modelos NER personalizados.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Azure Functions puede acceder a los recursos de una red virtual a través de la
integración de la red virtual.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
El costo total de implementar esta solución depende de los precios de los servicios que
elija.
Los planes de precios de Logic Apps dependen de los recursos que cree y use. Los
artículos siguientes pueden ayudarle a elegir el plan adecuado para casos de uso
específicos:
Costos que suelen generarse con Azure Logic Apps
Comparación de las opciones de un solo inquilino, multiinquilino y entorno del
servicio de integración para Azure Logic Apps
Modelos de medición de uso, facturación y precios para Azure Logic Apps
Para más información sobre los precios de componentes específicos, consulte los
siguientes recursos:
Escalabilidad
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribió el siguiente colaborador.
Autor principal:
Pasos siguientes
Introducción: Form Recognizer Studio
Uso de los SDK o de la API de REST de Form Recognizer
Inicio rápido: Introducción a Language Studio
¿Qué es el reconocimiento óptico de caracteres (OCR)?
Configuración de Azure Functions con una red virtual
Recursos relacionados
Extracción de texto de objetos mediante Power Automate y AI Builder
Sugerencia de etiquetas de contenido con NLP mediante aprendizaje profundo.
Minería de conocimientos para la investigación de contenido
Automatización del procesamiento de documentos mediante Azure Form
Recognizer
Indexación de contenido y
metadatos de archivos mediante
Azure Cognitive Search
Azure AI Search Azure Blob Storage Azure Table Storage
En este artículo se muestra cómo crear un servicio de búsqueda que permita a los
usuarios buscar documentos basados en el contenido del documento, además de los
metadatos asociados a los archivos.
En este artículo se usa una carga de trabajo de ejemplo para demostrar cómo crear un
único índice de búsqueda basado en archivos de Azure Blob Storage. Los metadatos del
archivo se almacenan en Azure Table Storage.
Architecture
Descargue un archivo de PowerPoint de esta arquitectura.
Flujo de datos
1. Los archivos se almacenan en Blob Storage, posiblemente junto con una cantidad
limitada de metadatos (por ejemplo, el autor del documento).
2. Los metadatos adicionales se almacenan en Table Storage, lo que puede almacenar
significativamente más información para cada documento.
3. Un indexador lee el contenido de cada archivo, junto con los metadatos de blob, y
almacena los datos en el índice de búsqueda.
4. Otro indexador lee los metadatos adicionales de la tabla y los almacena en el
mismo índice de búsqueda.
5. Se envía una consulta de búsqueda al servicio de búsqueda. La consulta devuelve
documentos coincidentes, en función del contenido del documento y de los
metadatos del documento.
Componentes
Blob Storage proporciona almacenamiento en la nube rentable para los datos de
archivos, incluidos los datos en formatos como PDF, HTML y CSV, y en archivos de
Microsoft Office.
Table Storage proporciona almacenamiento para datos estructurados no
relacionales. En este escenario, se usa para almacenar los metadatos de cada
documento.
Azure Cognitive Search es un servicio de búsqueda totalmente administrado que
proporciona infraestructura, API y herramientas para crear una experiencia de
búsqueda enriquecida.
Alternativas
En este escenario se usan indexadores en Azure Cognitive Search para detectar
automáticamente contenido nuevo en orígenes de datos admitidos, como blob y table
storage y, a continuación, agregarlo al índice de búsqueda. Como alternativa, puede
usar las API proporcionadas por Azure Cognitive Search para insertar datos en el índice
de búsqueda. Sin embargo, si lo hace, debe escribir código para insertar los datos en el
índice de búsqueda y también para analizar y extraer texto de los documentos binarios
que desea buscar. El indexador de Blob Storage admite muchos formatos de
documento, lo que simplifica significativamente el proceso de extracción e indexación
de texto.
Además, si usa indexadores, opcionalmente puede enriquecer los datos como parte de
una canalización de indexación. Por ejemplo, puede usar Azure Cognitive Services para
realizar el reconocimiento óptico de caracteres (OCR) o el análisis visual de las imágenes
en documentos, detectar el idioma de los documentos o traducir documentos. También
puede definir sus propias aptitudes personalizadas para enriquecer los datos de
maneras relevantes para su escenario empresarial.
Esta arquitectura usa Blob y Table Storage porque son rentables y eficientes. Este diseño
también habilita el almacenamiento combinado de los documentos y metadatos en una
sola cuenta de almacenamiento. Entre los orígenes de datos admitidos alternativos para
los propios documentos se incluyen Azure Data Lake Storage y Azure Files. Los
metadatos del documento se pueden almacenar en cualquier otro origen de datos
compatible que contenga datos estructurados, como Azure SQL Database y Azure
Cosmos DB.
Dado que los archivos que se buscan en este escenario son documentos binarios, puede
almacenarlos en Blob Storage. Si lo hace, puede usar el indexador de Blob Storage
integrado en Azure Cognitive Search para extraer automáticamente texto de los
archivos y agregar su contenido al índice de búsqueda.
7 Nota
parte de la asignación de campos. Sin embargo, mantener la dirección URL sin codificar
en una columna independiente aclara a qué blob hace referencia y le permite elegir
cualquier partición y claves de fila sin afectar al indexador de búsqueda.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework,
que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de
una carga de trabajo. Para más información, consulte Marco de buena arquitectura de
Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que tu aplicación puede cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Azure Cognitive Search proporciona un Acuerdo de Nivel de Servicio elevado para las
lecturas (consultas) si tiene al menos dos réplicas. Proporciona un Acuerdo de Nivel de
Servicio elevado para las actualizaciones (actualizando los índices de búsqueda) si tiene
al menos tres réplicas. Por lo tanto, debe aprovisionar al menos dos réplicas si desea
que los clientes puedan realizar búsquedas de forma confiable, y tres si los cambios en
el índice también se consideran operaciones de alta disponibilidad.
Azure Storage siempre almacena varias copias de los datos para ayudar a protegerlos
frente a eventos planeados y no planeados. Azure Storage proporciona opciones de
redundancia adicionales para replicar datos entre regiones. Estas medidas de seguridad
se aplican a los datos de Blob y Table Storage.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Azure Cognitive Search proporciona controles de seguridad sólidos que le ayudan a
implementar la seguridad de red, la autenticación y la autorización, la residencia y la
protección de datos, y los controles administrativos que le ayudan a mantener la
seguridad, la privacidad y el cumplimiento.
Siempre que sea posible, use la autenticación de Microsoft Entra para proporcionar
acceso al propio servicio de búsqueda y conecte el servicio de búsqueda a otros
recursos de Azure (como Blob y Table Storage en este escenario) mediante una
identidad administrada.
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las
eficiencias operativas. Para más información, vea Información general del pilar de
optimización de costos.
Para obtener información sobre los costos de ejecutar este escenario, consulte esta
estimación preconfigurada en la calculadora de precios de Azure . Todos los servicios
descritos aquí se configuran en esta estimación. La estimación es para una carga de
trabajo que tiene un tamaño total de documento de 20 GB en Blob Storage y 1 GB de
metadatos en Table Storage. Se usan dos unidades de búsqueda para satisfacer el
Acuerdo de Nivel de Servicio con fines de lectura, como se describe en la sección
confiabilidad de este artículo. Para ver cómo cambiarían los precios en su caso concreto,
cambie las variables pertinentes para que coincidan con el uso esperado.
Si revisa la estimación, puede ver que el costo del almacenamiento de blobs y tablas es
relativamente bajo. La mayoría del costo se incurre en Azure Cognitive Search, ya que
realiza la indexación real y el proceso para ejecutar consultas de búsqueda.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otro colaborador:
Pasos siguientes
Introducción a Azure Cognitive Search
Aumentar la relevancia mediante la búsqueda semántica en Azure Cognitive
Search
Filtros de seguridad para restringir los resultados en Azure Cognitive Search
Tutorial: Indexación de varios orígenes de datos mediante el SDK de .NET
Recursos relacionados
Elección de un almacén de datos de búsqueda en Azure
Motor de búsqueda inteligente de productos para comercio electrónico
Analice contenido de vídeo con
Computer Vision y Azure Machine
Learning
Azure Machine Learning Servicios de Azure AI Azure Logic Apps Azure Synapse Analytics
En este artículo se describe una arquitectura que puede usar para reemplazar el análisis
manual de imágenes de vídeo por un proceso de aprendizaje automático automatizado
y, con frecuencia, más preciso.
Los logotipos de FFmpeg y Jupyter Notebook son marcas comerciales de sus respectivas
empresas. El uso de estas marcas no implica ninguna aprobación.
Architecture
Flujo de trabajo
1. Una colección de imágenes de vídeo, en formato MP4, se carga en Azure Blob
Storage. Idealmente, los vídeos entran en un contenedor "sin procesar".
2. Una canalización configurada previamente en Azure Machine Learning reconoce
que los archivos de vídeo se cargan en el contenedor e inicia un clúster de
inferencia para empezar a separar las imágenes de vídeo en fotogramas.
3. FFmpeg, una herramienta de código abierto, desglosa el vídeo y extrae
fotogramas. Puede configurar cuántos fotogramas por segundo se extraen, la
calidad de la extracción y el formato del archivo de imagen. El formato puede ser
JPG o PNG.
4. El clúster de inferencia envía las imágenes a Azure Data Lake Storage.
5. Una aplicación lógica configurada previamente que supervisa Data Lake Storage
detecta que se cargan nuevas imágenes. Inicia un flujo de trabajo.
6. La aplicación lógica llama a un modelo de Custom Vision previamente entrenado
para identificar objetos, características o cualidades en las imágenes. Como
alternativa o de forma adicional, llama a un modelo de Computer Vision
(reconocimiento óptico de caracteres) para identificar información textual en las
imágenes.
7. Los resultados se reciben en formato JSON. La aplicación lógica analiza los
resultados y crea pares clave-valor. Puede almacenar los resultados en grupos de
SQL dedicados de Azure aprovisionados por Azure Synapse Analytics.
8. Power BI proporciona visualización de datos.
Componentes
Azure Blob Storage proporciona almacenamiento de objetos para cargas de
trabajo nativas de nube y almacenes de aprendizaje automático. En esta
arquitectura, almacena los archivos de vídeo cargados.
Azure Machine Learning es un servicio de aprendizaje automático de nivel
empresarial para el ciclo de vida de aprendizaje automático de un extremo a otro.
Azure Data Lake Storage proporciona almacenamiento en la nube escalable de
forma masiva, de seguridad mejorada y rentable para cargas de trabajo de análisis
de alto rendimiento.
Computer Vision forma parte de Azure Cognitive Services . Se usa para
recuperar información sobre cada imagen.
Custom Vision le permite personalizar e insertar análisis de imágenes de última
generación de Vision para dominios específicos.
Azure Logic Apps automatiza los flujos de trabajo mediante la conexión de
aplicaciones y datos entre entornos. Proporciona una manera de acceder a los
datos y procesarlos en tiempo real.
Azure Synapse Analytics es un servicio de análisis ilimitado que combina la
integración de datos, el almacenamiento de datos empresariales y el análisis de
macrodatos.
Un grupo de SQL dedicado (anteriormente SQL DW) representa una colección de
recursos de análisis que se aprovisionan al usar Azure Synapse SQL.
Power BI es una colección de servicios de software, aplicaciones y conectores
que funcionan conjuntamente para proporcionar visualizaciones de los datos.
Alternativas
Azure Video Indexer es un servicio de análisis de vídeo que usa inteligencia
artificial para extraer información procesable de vídeos almacenados. Puede usarlo
sin tener experiencia en el aprendizaje automático.
Azure Data Factory es un servicio de integración de datos sin servidor
totalmente administrado que le ayuda a construir procesos ETL y ELT.
Azure Functions es una plataforma como servicio (PaaS) sin servidor que ejecuta
un código de una sola tarea, sin necesidad de una nueva infraestructura.
Azure Cosmos DB es una base de datos NoSQL totalmente administrada para el
desarrollo de aplicaciones modernas.
Una grabación de vídeo se puede separar en fotogramas individuales para que varias
tecnologías puedan analizar las imágenes. Una de estas tecnologías es Computer Vision:
la capacidad de un equipo de identificar objetos y entidades en una imagen.
Agricultura. Supervise y analice los cultivos y las condiciones del suelo a lo largo
del tiempo. Mediante el uso de drones o vistas de acceso desordenado, los
agricultores pueden grabar imágenes de vídeo para su análisis.
Consideraciones
Estas consideraciones constituyen los pilares del Marco de buena arquitectura de Azure,
un conjunto de principios rectores que puede usar para mejorar la calidad de una carga
de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft
Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Una carga de trabajo de confianza es aquella que es resistente y a la vez está disponible.
La resistencia es la capacidad de un sistema de recuperarse de los errores y seguir
funcionando. El objetivo de la resistencia es devolver la aplicación a un estado
plenamente operativo después de un error. La disponibilidad mide si los usuarios
pueden acceder a la carga de trabajo cuando lo necesiten.
Para conocer las garantías de disponibilidad de los servicios de Azure de la solución,
observe estos recursos:
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Administración de identidades
Protección de la infraestructura
Seguridad de las aplicaciones
Cifrado y soberanía de datos
Recursos de seguridad
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las
eficiencias operativas. Para más información, vea Información general del pilar de
optimización de costos.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una
aplicación y la mantienen en ejecución en producción. Para más información, consulte
Introducción al pilar de excelencia operativa.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Pasos siguientes
Introducción a Almacenamiento de Azure
¿Qué es Azure Machine Learning?
¿Qué es Azure Cognitive Services?
¿Qué es Azure Logic Apps?
¿Qué es Azure Synapse Analytics?
¿Qué son los análisis integrados de Power BI?
Acelerador de procesos empresariales
Recursos relacionados
Clasificación de imágenes con redes neuronales convolucionales (CNN)
Clasificación de imágenes en Azure
Marco de MLOps para escalar el ciclo de vida de aprendizaje automático
Clasificación de imágenes en
Azure
Azure Blob Storage Azure Computer Vision Azure Cosmos DB Azure Event Grid Azure Functions
Mediante los servicios de Azure, como Computer Vision API y Azure Functions, las
empresas pueden eliminar la necesidad de administrar servidores individuales, al tiempo
que reducen los costos y utilizan los conocimientos que Microsoft ya ha desarrollado
con el procesamiento de imágenes con Cognitive Services. En concreto, este es un
escenario de ejemplo de procesamiento de imágenes. Si tiene distintas necesidades de
inteligencia artificial, tenga en cuenta el conjunto completo de Cognitive Services.
Architecture
Flujo de trabajo
Este escenario trata los componentes de back-end de una aplicación web o móvil. Los
datos fluyen por el escenario de la siguiente manera:
Componentes
Computer Vision API es parte del conjunto de productos Cognitive Services y se
usa para recuperar información acerca de cada imagen.
Azure Functions proporciona la API de back-end para la aplicación web. Esta
plataforma también proporciona procesamiento de eventos para imágenes
cargadas.
Azure Event Grid desencadena un evento cuando se carga una nueva imagen en
Blob Storage. A continuación, la imagen se procesa con Azure Functions.
Azure Blob Storage almacena todos los archivos de imagen que se cargan en la
aplicación web, así como también los archivos estáticos que consume la aplicación
web.
Azure Cosmos DB almacena los metadatos de cada imagen que se haya
cargado, incluidos los resultados del procesamiento de la API de Computer Vision.
Alternativas
Custom Vision Service . Computer Vision API devuelve un conjunto de categorías
basadas en la taxonomía. Si necesita procesar la información que Computer Vision
API no devuelve, considere la posibilidad de usar Custom Vision Service, que
permite crear clasificadores de imágenes personalizados.
Cognitive Search (anteriormente Azure Search). Si su caso de usuario implica
consultar los metadatos para buscar las imágenes que cumplen determinados
criterios, considere la posibilidad de usar Cognitive Search. Actualmente en versión
preliminar, Cognitive Search se integra sin problemas en este flujo de trabajo.
Logic Apps . Si no necesita reaccionar en tiempo real a los archivos agregados a
un blob, puede considerar el uso de Logic Apps. Una aplicación lógica que puede
comprobar si se ha agregado un archivo podría iniciarse con el desencadenador
de periodicidad o el desencadenador de ventana deslizante.
Detalles del escenario
Este escenario es pertinente para las empresas que necesitan procesar imágenes.
Algunas aplicaciones posibles son clasificar las imágenes de un sitio web de moda,
analizar texto e imágenes para reclamaciones de seguros o reconocer los datos de
telemetría de capturas de pantalla de juegos. Tradicionalmente, las empresas
necesitaban convertirse en expertos en modelos de aprendizaje automático, entrenar los
modelos y, por último, ejecutar las imágenes en su proceso personalizado para extraer
los datos de las imágenes.
Clasificar las imágenes en un sitio web de moda. Los vendedores pueden usar la
clasificación de imágenes mientras cargan imágenes de productos en la plataforma
para la venta. Pueden automatizar el consiguiente etiquetado manual implicado.
Los clientes también pueden buscar en la impresión visual de los productos.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Escalabilidad
La mayoría de los componentes usados en este escenario de ejemplo son servicios
administrados que escalan automáticamente. Hay un par de excepciones destacables:
Azure Functions tiene un límite máximo de 200 instancias. Si necesita escalar más allá de
este límite, considere la posibilidad de usar varias regiones o planes de aplicación.
Las bases de datos NoSQL suelen renunciar a la coherencia (en el sentido del teorema
CAP) frente a la disponibilidad, escalabilidad y creación de particiones. En este escenario
de ejemplo, se usa un modelo de datos de pares clave-valor y la coherencia de la
transacción rara vez es necesaria porque, por definición, la mayoría de las operaciones
son atómicas. Para más información sobre cómo elegir el almacén de datos correcto,
consulte el Centro de arquitectura de Azure. Si su implementación requiere una
coherencia alta, puede elegir el nivel de coherencia en Azure Cosmos DB.
Para obtener instrucciones generales sobre cómo diseñar soluciones escalables, consulte
la lista de comprobación de eficiencia del rendimiento en el Centro de arquitectura de
Azure.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Managed Service Identities para recursos de Azure (MSI) se utiliza para proporcionar a
otros recursos internos acceso a su cuenta y, a continuación, se asigna a Azure
Functions. Permita el acceso solo a los recursos necesarios en esas identidades para
evitar exponer nada que no sea necesario a las funciones (y, potencialmente, a sus
clientes).
Para instrucciones generales de diseño de soluciones seguras, consulte Documentación
de Azure Security Center.
Resistencia
En este escenario, todos los componentes son administrados, por lo que, en un nivel
regional, son resistentes de forma automática.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Para explorar el costo de ejecutar este escenario, todos los servicios están
preconfigurados en la calculadora de costos. Para ver cómo cambiarían los precios en su
caso concreto, cambie las variables pertinentes para que coincidan con el tráfico
esperado.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Documentación del producto
Recursos relacionados
Enriquecimiento mediante inteligencia artificial con procesamiento de imágenes y
lenguaje natural en Azure Cognitive Search
Uso de una canalización de
transcripción de voz en texto para
analizar conversaciones grabadas
Voz de Azure AI Lenguaje de Azure AI Servicios de Azure AI Azure Synapse Analytics Azure Logic Apps
Architecture
La arquitectura consta de dos canalizaciones: una canalización de transcripción para
convertir el audio en texto y una canalización de enriquecimiento y visualización.
Canalización de transcripción
Flujo de datos
Flujo de datos
Alternativas
Estos son algunos enfoques alternativos para esta arquitectura de solución:
Puede usar los servicios y la canalización que se describen aquí para procesar el texto
transcrito para reconocer y quitar la información confidencial, realizar análisis de
sentimiento y mucho más. Puede escalar los servicios y la canalización para dar cabida a
cualquier volumen de datos grabados.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework,
que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de
una carga de trabajo. Para más información, consulte Marco de buena arquitectura de
Microsoft Azure.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Todos los servicios de Azure descritos en esta arquitectura proporcionan una opción
para la facturación de pago por uso, por lo que los costos de la solución se escalan
linealmente.
Azure Synapse proporciona una opción para los grupos de SQL sin servidor, por lo que
el recurso de proceso de la carga de trabajo de almacenamiento de datos se puede
activar a petición. Si no usa Azure Synapse para atender otros casos de uso del flujo
descendente, considere la posibilidad de usar las opciones sin servidor para reducir los
costos.
Para conocer los precios de los servicios sugeridos aquí, consulte esta estimación de la
Calculadora de precios de Azure .
La API de Voz por lotes está diseñada para un gran volumen, pero otras API de
Cognitive Services podrían tener límites de solicitudes para cada nivel de suscripción.
Considere la posibilidad de incluir en contenedores estas API para evitar la limitación del
procesamiento de grandes volúmenes. Los contenedores proporcionan flexibilidad de
implementación, ya sea en la nube o en el entorno local. También puede mitigar los
efectos secundarios de los lanzamientos de nueva versión mediante el uso de
contenedores. Para más información, consulte Compatibilidad con contenedores en
Azure Cognitive Services.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Otro colaborador:
Pasos siguientes
Inicio rápido: Reconocimiento y conversión de voz en texto
Inicio rápido: Creación de un flujo de trabajo de integración con Azure Logic Apps
multiinquilino en Azure Portal
Inicio rápido: Introducción a Language Studio
Cognitive Services en Azure Synapse Analytics
¿Qué es Speech Service?
¿Qué es Azure Logic Apps?
¿Qué es Azure Cognitive Service for Language?
¿Qué es Azure Synapse Analytics?
Extracción de información del texto con el servicio Language
Modelado, consulta y exploración de datos en Azure Synapse
Recursos relacionados
Tecnología de procesamiento de lenguaje natural
Optimización del marketing con Machine Learning
Análisis de macrodatos con seguridad de nivel empresarial mediante Azure
Synapse
Extraer y analizar datos del centro
de llamadas
Azure Blob Storage Voz de Azure AI Servicios de Azure AI Power BI
Architecture
Detailed call
history, summaries,
reasons for calling
Flujo de datos
1. Una llamada telefónica entre un agente y un cliente se registra y almacena en
Azure Blob Storage. Los archivos de audio se cargan en una cuenta de Azure
Storage a través de un método compatible, como la herramienta basada en la
interfaz de usuario, el Explorador de Azure Storage o un SDK de Storage o una API.
2. Voz de Azure AI se usa para transcribir archivos de audio en modo por lotes de
forma asincrónica con la diarización de altavoz habilitada. Los resultados de la
transcripción se conservan en Blob Storage.
3. Lenguaje de Azure AI se usa para detectar y redactar datos personales en la
transcripción.
5. Power BI o una aplicación web personalizada hospedada por App Service se usa
para visualizar la salida. Ambas opciones proporcionan información casi en tiempo
real. Puede almacenar esta salida en un CRM, por lo que los agentes tienen
información contextual sobre por qué se llamó al cliente y pueden resolver
rápidamente posibles problemas. Este proceso está totalmente automatizado, lo
que ahorra tiempo y esfuerzo a los agentes.
Componentes
Blob Storage es la solución de almacenamiento de objetos para archivos sin
procesar en este escenario. Blob Storage admite bibliotecas para lenguajes como
.NET, Node.js y Python. Las aplicaciones pueden acceder a archivos en Blob
Storage a través de HTTP o HTTPS. Blob Storage tiene niveles de acceso frecuente,
esporádico y de archivo para almacenar grandes cantidades de datos, lo que
optimiza los costes.
Language Studio proporciona una interfaz de usuario para explorar y analizar las
características de los servicios de IA para lenguaje. Language Studio proporciona
opciones para compilar, etiquetar, entrenar e implementar modelos
personalizados.
Alternativas
En función de su escenario, puede agregar los siguientes flujos de trabajo.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
El coste total de esta solución depende del nivel de precios de sus servicios. Los factores
que pueden afectar al precio de cada componente son:
La API de voz por lotes está diseñada para grandes volúmenes, pero otras API de
servicios de IA pueden tener límites de solicitudes, dependiendo del nivel de
suscripción. Considerar la posibilidad de incluir en contenedores las API de servicios de
IA para evitar ralentizar el procesamiento de gran volumen. Los contenedores
proporcionan flexibilidad de implementación en la nube y en el entorno local. Mitigar
los efectos secundarios de los lanzamientos de nueva versión mediante el uso de
contenedores. Para obtener más información, consulte Compatibilidad con
contenedores en servicios de IA.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
¿Qué es Voz de Azure AI?
¿Qué es Azure OpenAI?
¿Qué es Azure Machine Learning?
Introducción a Blob Storage
¿Qué es Lenguaje de Azure AI?
Introducción a Azure Data Lake Storage Gen2
¿Qué es Power BI?
Cliente de ingesta con servicios de IA
Análisis y transcripción posterior a la llamadas
Recursos relacionados
Uso de una canalización de transcripción de voz en texto para analizar
conversaciones grabadas
Implementación de una solución personalizada de conversión de voz en texto
Crear modelos acústicos y de lenguaje personalizado
Implementación de una solución personalizada de conversión de voz en texto
Determinación del valor de
tiempo de permanencia del
cliente y del porcentaje de
abandono de estos con los
servicios de Azure AI
Azure Data Lake Storage Azure Databricks Azure Machine Learning Azure Analysis Services
En este escenario se muestra una solución para crear modelos predictivos del valor de
tiempo de permanencia de los clientes y de la tasa de abandono de estos mediante
las tecnologías de Azure AI.
Architecture
Azure Data Factory Azure Databricks Azure Machine Learning Azure Analysis Services
Event Grid Subscriptions MLflow MLflow BI Platforms
Azure Kubernetes Service
Model training
Machine Serving phase
learning registry
Azure
intelligent
analytics and
AI platforms
Power BI
Feature engineering dashboard
Data Factory Machine
learning
deployment
layer
Data processing
Dashboard
Azure storage
technologies
Azure Data Lake Storage Azure SQL Database Azure Analysis Services
Microsoft
Azure
2. Procesamiento de datos: use Azure Databricks para seleccionar y limpiar los datos
sin procesar de Data Lake Storage. Almacene los datos en el nivel Plata de Azure
Data Lake Storage.
Componentes
Azure Analysis Services proporciona modelos de datos de nivel empresarial en la
nube.
MLflow es una plataforma de código abierto para administrar todo el ciclo de vida
del aprendizaje automático.
Alternativas
Data Factory orquesta los flujos de trabajo para la canalización de datos. Si desea
cargar datos solo una vez o a petición, use herramientas como la copia masiva de
SQL Server y AzCopy para copiar datos en Azure Blob Storage . Posteriormente,
puede cargar los datos directamente en Azure Synapse Analytics con PolyBase.
Esta solución muestra cómo interconectar las siguientes tecnologías de Azure AI:
Use Azure Data Lake y Azure Databricks para implementar los procedimientos
recomendados de las operaciones de datos.
Use Azure Databricks para realizar análisis exploratorios de datos.
Use MLflow para realizar un seguimiento de los experimentos de aprendizaje
automático.
Realice la puntuación por lotes de los modelos de Machine Learning en Azure
Databricks.
Use Azure Machine Learning para modelar el registro y la implementación.
Use cuadernos de Azure Data Factory y Azure Databricks para orquestar la
canalización de MLOps.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Disponibilidad
Los componentes de Azure ofrecen disponibilidad mediante la redundancia y de la
forma especificada en los Acuerdos de Nivel de Servicio (SLA):
Escalabilidad
En este escenario se usa Azure Data Lake Storage para almacenar datos para modelos y
predicciones de Machine Learning. Azure Storage es escalable. Puede almacenar y
atender muchos exabytes de datos. Esta cantidad de almacenamiento está disponible
con un rendimiento que se mide en gigabits por segundo (Gbps). El procesamiento se
ejecuta en latencias por solicitud casi constantes. Las latencias se miden en los niveles
de servicio, cuenta y archivo.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Proteja los recursos mediante controles en el tráfico de red que se origina en Azure,
entre los recursos locales y los hospedados en Azure, y el tráfico hacia y desde Azure.
Por ejemplo, el entorno de ejecución de integración autohospedado de Azure traslada
de forma segura los datos del almacenamiento de datos local a Azure.
Use Azure Key Vault y el secreto con ámbito de Databricks para acceder a los datos de
Azure Data Lake Storage.
Los servicios de Azure se implementan en una red virtual segura o se accede a ellos
mediante la característica Azure Private Link. Si es necesario, la seguridad en el nivel de
fila proporciona acceso granular a usuarios individuales de Azure Analysis Services o
SQL Database.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Azure Databricks es una oferta premium de Apache Spark con un costo asociado.
Puede optar por planes de tarifa estándar y premium de Databricks. En este ejemplo el
plan de tarifa estándar es suficiente. Si la aplicación requiere el escalado automático de
clústeres para controlar cargas de trabajo más grandes o paneles interactivos de
Databricks, es posible que necesite el nivel Premium.
Los costos relacionados con este caso de uso dependen de los precios estándar de los
siguientes servicios para su uso:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Azure Machine Learning
Introducción a Azure Data Lake Storage Gen2
Azure Databricks
Azure Data Factory
Recursos relacionados
Inteligencia artificial
MLOps para modelos de Python con Azure Machine Learning
Predicción del abandono de clientes mediante el análisis en tiempo real
Predicción de la duración de la estancia y el flujo de pacientes
Puntuación por lotes para
modelos de aprendizaje profundo
con canalizaciones de Azure
Machine Learning
Azure Logic Apps Azure Machine Learning Control de acceso basado en rol de Azure Azure Storage
Architecture
Flujo de trabajo
Esta arquitectura consta de los siguientes componentes.
Proceso
Azure Machine Learning usa canalizaciones para crear secuencias de cálculo
reproducibles y fáciles de administrar. También ofrece un destino de proceso
administrado (en el cual se puede ejecutar un cálculo de la canalización) llamado Azure
Machine Learning Compute para el entrenamiento, la implementación y la puntuación
de modelos de aprendizaje automático.
Storage
Azure Blob Storage almacena todas las imágenes (imágenes de entrada, de estilo y de
salida). Azure Machine Learning se integra con Blob Storage de forma que los usuarios
no tienen que mover manualmente los datos entre las plataformas de proceso y Blob
Storage. Blob Storage también resulta rentable por el rendimiento que requiere esta
carga de trabajo.
Desencadenador
Azure Logic Apps desencadena el flujo de trabajo. Si la aplicación lógica detecta que se
ha agregado un blob al contenedor, desencadena la canalización de Azure Machine
Learning. Logic Apps es una buena elección para esta arquitectura de referencia, ya que
detecta fácilmente los cambios en Blob Storage y proporciona un proceso sencillo para
cambiar el desencadenador.
Componentes
Azure Machine Learning
Azure Blob Storage
Azure Logic Apps
Detalles de la solución
Esta arquitectura de referencia está diseñada para cargas de trabajo que se
desencadenan por la presencia de nuevo contenido multimedia en Azure Storage.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Las GPU no están habilitadas de forma predeterminada en todas las regiones. Asegúrese
de seleccionar una región que tenga GPU habilitadas. Además, las suscripciones tienen
una cuota predeterminada de cero núcleos para máquinas virtuales optimizadas para
GPU. Puede aumentar esta cuota si abre una solicitud de soporte técnico. Asegúrese de
que la suscripción tiene una cuota suficiente para ejecutar la carga de trabajo.
Al ejecutar un proceso de transferencia de estilo como un trabajo por lotes, los trabajos
que se ejecutan principalmente en GPU tienen que ejecutarse en paralelo en todas las
máquinas virtuales. Se admiten dos enfoques: puede crear un clúster más grande con
máquinas virtuales que tienen una sola GPU o crear un clúster más pequeño mediante
máquinas virtuales con muchas GPU.
Para esta carga de trabajo, estas dos opciones presentan un rendimiento comparable. El
uso de menos máquinas virtuales con más GPU por máquina virtual puede ayudar a
reducir el movimiento de datos. Sin embargo, el volumen de datos por trabajo para esta
carga de trabajo no es muy grande, por lo que no observará demasiadas limitaciones de
Blob Storage.
Paso MPI
Al crear la canalización en Azure Machine Learning, uno de los pasos utilizados para
realizar el cálculo en paralelo es el paso MPI (interfaz de procesamiento de mensajes). El
paso MPI le ayuda a dividir los datos uniformemente entre los nodos disponibles. El
paso MPI no se ejecutará hasta que todos los nodos solicitados estén preparados. Si se
produce un error en uno de los nodos o se produce un adelanto del proceso (en caso
de que se trate de una máquina virtual de baja prioridad), se tendrá que ejecutar de
nuevo el paso MPI.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Esta sección contiene puntos a tener en cuenta para crear soluciones seguras.
Para escenarios con información más confidencial, asegúrese de que todas las claves de
almacenamiento están protegidas, ya que estas claves conceden acceso total a todos los
datos de entrada y salida de la carga de trabajo.
Use el control de acceso basado en rol de Azure (RBAC de Azure) para limitar el
acceso de los usuarios solo a los recursos que necesiten.
Aprovisione dos cuentas de almacenamiento independientes. Almacene los datos
de entrada y salida en la primera cuenta. Los usuarios externos pueden acceder a
esta cuenta. Almacene los scripts ejecutables y los archivos de registro de salida en
la otra cuenta. Los usuarios externos no deben tener acceso a esta cuenta. Esta
separación garantiza que los usuarios externos no puedan modificar los archivos
ejecutables (para insertar código malintencionado) ni acceder a los archivos de
registro, que podrían contener información confidencial.
Los usuarios malintencionados pueden realizar ataques de denegación de servicio
distribuido en la cola de trabajos o insertar mensajes dudosos con formato
incorrecto en esta cola, lo que provocaría el bloqueo del sistema o errores al quitar
los errores de la cola.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Con el fin de comprobar el estado general del clúster, vaya al servicio Machine Learning
en Azure Portal para inspeccionar el estado de los nodos del clúster. Si un nodo está
inactivo o un trabajo presenta algún error, los registros de errores se guardan en Blob
Storage y también se puede acceder a ellos en Azure Portal.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Puntuación por lotes de modelos de Spark en Azure Databricks
Puntuación por lotes de modelos de Python en Azure
Puntuación por lotes con modelos de R para la previsión de ventas
Recursos relacionados
Arquitectura de la inteligencia artificial
¿Qué es Azure Machine Learning?
Canalizaciones de Azure Machine Learning
Puntuación por lotes de modelos
de Python en Azure
Azure Container Registry Azure Event Hubs Azure Machine Learning Azure SQL Database
Esta guía de arquitectura muestra cómo crear una solución escalable para los modelos
de puntuación por lotes mediante Azure Machine Learning. La solución se puede usar
como plantilla y se puede generalizar para diferentes problemas.
Architecture
Flujo de trabajo
Esta guía de arquitectura es aplicable tanto para el streaming como para los datos
estáticos, siempre que el proceso de ingesta se adapte al tipo de datos. Los siguientes
pasos y componentes describen la ingesta de estos dos tipos de datos.
Streaming de datos:
1. Los datos de streaming se originan en sensores de IoT, donde los nuevos eventos
se transmiten a intervalos frecuentes.
2. Los eventos de streaming entrantes se ponen en cola mediante Azure Event Hubs
y, a continuación, se procesan previamente mediante Azure Stream Analytics.
Datos estáticos:
Componentes
Azure Event Hubs
Azure Stream Analytics
Azure SQL Database
Azure Synapse Analytics
Almacén de Azure Data Lake
Azure Data Factory
Azure Machine Learning
Puntos de conexión de Azure Machine Learning
Microsoft Power BI en Azure
Azure Web Apps
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Rendimiento
En los modelos de Python estándar, se suele aceptar que las CPU son suficientes para
controlar la carga de trabajo. Esta arquitectura utiliza varias CPU. Sin embargo, para
cargas de trabajo de aprendizaje profundo, por lo general las GPU superan a las CPU en
una cantidad considerable (normalmente se necesita un clúster considerable de CPU
para obtener un rendimiento comparable).
Administración
Supervisión de trabajos. Es importante supervisar el progreso de los trabajos en
ejecución. Sin embargo, puede resultar complicado supervisar un clúster de nodos
activos. Para inspeccionar el estado de los nodos del clúster, use Azure Portal
para administrar el área de trabajo de Machine Learning. Si un nodo está inactivo o
un trabajo presenta algún error, los registros de errores se guardan en Blob
Storage y también se puede acceder a ellos en la sección Canalizaciones. Para que
la supervisión sea más exhaustiva, conecte los registros a Application Insights o
ejecute procesos independientes para sondear el estado del clúster y sus trabajos.
Registro. Machine Learning registra todos los procesos stdout/stderr en la cuenta
de Azure Storage asociada. Para ver con facilidad los archivos de registro, use una
herramienta de exploración de almacenamiento como Explorador de Azure
Storage .
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Los componentes más caros que se usan en esta guía de arquitectura son los recursos
de proceso. El tamaño del clúster de proceso se escala y se reduce verticalmente en
función de los trabajos que haya en la cola. Habilite el escalado automático mediante
programación con el SDK de Python modificando la configuración de aprovisionamiento
del proceso. O use la CLI de Azure para establecer los parámetros de escalado
automático del clúster.
Es posible que el escalado no sea apropiado para los trabajos por lotes que se realizan
muy próximos entre sí. Debido a que el tiempo que tarda un clúster en agilizarse y
ralentizarse también genera costos, si una carga de trabajo por lotes empieza solo unos
minutos después de que el trabajo anterior termine, puede resultar más rentable
mantener el clúster en ejecución entre los trabajos. Esta estrategia depende de si los
procesos de puntuación están programados para ejecutarse con mucha frecuencia (por
ejemplo, cada hora), o con poca (por ejemplo, una vez al mes).
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Documentación del producto:
Recursos relacionados
Inteligencia artificial (IA): introducción a la arquitectura
Puntuación por lotes para modelos de aprendizaje profundo con canalizaciones de
Azure Machine Learning
Puntuación por lotes de modelos de Spark en Azure Databricks
MLOps para modelos de Python con Azure Machine Learning
Puntuación por lotes con modelos
de R para la previsión de ventas
Azure Batch Azure Blob Storage Azure Container Instances Azure Logic Apps Azure Machine Learning
Esta arquitectura de referencia muestra cómo realizar la puntuación por lotes con
modelos de R mediante Azure Batch. Azure Batch funciona bien con cargas de trabajo
intrínsecamente paralelas e incluye la programación de trabajos y la administración de
procesos. La inferencia por lotes (puntuación) se usa ampliamente para segmentar
clientes, pronosticar ventas, predecir comportamientos de los clientes, predecir el
mantenimiento o mejorar la ciberseguridad.
Flujo de trabajo
Esta arquitectura consta de los siguientes componentes.
Azure Container Instances ofrece proceso sin servidor a petición. En este caso, se
implementa una instancia de contenedor según una programación para desencadenar
los trabajos de Batch que generan las previsiones. Los trabajos de Batch se
desencadenan desde un script de R mediante el paquete doAzureParallel . La instancia
de contenedor se cierra automáticamente una vez finalizados los trabajos.
Componentes
Azure Batch
Azure Blob Storage
Azure Container Instances
Azure Logic Apps
Detalles de la solución
Aunque el escenario siguiente se basa en la previsión de ventas de tiendas minoristas,
su arquitectura se puede generalizar para cualquier escenario que requiera la
generación de predicciones a mayor escala mediante modelos de R. Hay disponible una
implementación de referencia de esta arquitectura en GitHub .
Rendimiento
Implementación en contenedores
Cada nodo del clúster de Batch ejecuta el contenedor de trabajo, que ejecuta el script
de puntuación.
Cuando haya datos de puntuación por lotes con modelos de R, tenga en cuenta cómo
paralelizar la carga de trabajo. Los datos de entrada se deben particionar para que la
operación de puntuación se pueda distribuir en los nodos del clúster. Pruebe diferentes
enfoques para detectar la mejor opción para distribuir la carga de trabajo. En cada caso,
tenga en cuenta lo siguiente:
En el escenario que se usa en este ejemplo, los objetos de modelo son grandes y solo se
tarda unos segundos en generar una previsión para cada producto. Por esta razón,
puede agrupar los productos y ejecutar un solo trabajo de Batch por nodo. Un bucle
dentro de cada trabajo genera previsiones para los productos de forma secuencial. Este
método es la forma más eficaz de paralelizar esta carga de trabajo concreta. Evita la
sobrecarga que supone iniciar muchos trabajos de Batch más pequeños y cargar
repetidamente los modelos de R.
Para depurar rápidamente trabajos por lotes durante el desarrollo, vea los registros en la
sesión de R local. Para más información, consulte Configuración y envío de ejecuciones
de entrenamiento.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Los recursos de proceso que se usan en esta arquitectura de referencia son los
componentes más caros. En este escenario, se crea un clúster de tamaño fijo cada vez
que se desencadena el trabajo y se cierra después de que el trabajo se haya
completado. Solo se generan costos mientras los nodos del clúster se inician, se
ejecutan o se cierran. Este enfoque es adecuado para un escenario en el que los
recursos de proceso necesarios para generar las previsiones permanecen relativamente
constantes de un trabajo a otro.
En algunos escenarios, el tiempo de un trabajo a otro puede ser demasiado corto para
apagar e iniciar el clúster. En estos casos, mantenga el clúster en ejecución entre
trabajos si es necesario.
Azure Batch y doAzureParallel admiten el uso de máquinas virtuales de prioridad baja.
Estas máquinas virtuales tienen un gran descuento, pero corren el riesgo de ser
utilizadas por otras cargas de trabajo de mayor prioridad. Por lo tanto, no se
recomienda el uso de máquinas virtuales de prioridad baja para cargas de trabajo de
producción críticas. No obstante, estas pueden resultar útiles para cargas de trabajo
experimentales o de desarrollo.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué es Azure Machine Learning?
Canalizaciones de Azure Machine Learning
Recursos relacionados
Arquitectura de la inteligencia artificial
Puntuación por lotes de modelos de Spark en Azure Databricks
Puntuación por lotes de modelos de Python en Azure
Puntuación de Batch para modelos de aprendizaje profundo
Puntuación por lotes de modelos
de Spark en Azure Databricks
Microsoft Entra ID Azure Databricks Azure Data Factory Azure Blob Storage
Esta arquitectura de referencia muestra cómo crear una solución escalable para la
puntuación por lotes en un modelo de clasificación de Apache Spark en una
programación con Azure Databricks. Azure Databricks es una plataforma de análisis
basada en Apache Spark y optimizada para Azure. Azure Databricks ofrece tres entornos
para desarrollar aplicaciones que consumen muchos datos: Databricks SQL, Databricks
Data Science & Engineering y Databricks Machine Learning. Databricks Machine
Learning es un entorno integral de aprendizaje automático integrado que incorpora
servicios administrados para el seguimiento de experimentos, entrenamiento de
modelos, desarrollo y administración de características, y servicio de características y
modelos. Puede usar esta arquitectura de referencia como una plantilla que a su vez se
puede usar en otros escenarios. Hay disponible una implementación de referencia de
esta arquitectura en GitHub .
Architecture
Azure Databricks
Databricks store
Scoring data
Batch jobs scheduler
Results data
Microsoft
Azure
Flujo de trabajo
La arquitectura define un flujo de datos que encontrará al completo en Azure Databricks
y que está basado en un conjunto de cuadernos ejecutados de forma secuencial. Este
consta de los siguientes componentes:
Detalles de la solución
El escenario se crea como un flujo de canalización. Cada cuaderno está optimizado para
realizar una configuración por lotes en cada una de estas operaciones: ingestión,
ingeniería de características, compilación de modelos y puntuación de modelos. El
cuaderno de ingeniería de características está diseñado para crear un conjunto de datos
general para cualquiera de las operaciones de entrenamiento, calibración, prueba o
puntuación. En este escenario, usaremos una estrategia de división temporal para estas
operaciones, por lo que los parámetros del cuaderno se usan para configurar el filtrado
del rango de fechas.
1a_raw-data_exploring.ipynb
2a_feature_exploration.ipynb
2b_model_testing.ipynb
3b_model_scoring_evaluation.ipynb
Los cuadernos se proporcionan en GitHub para realizar cada una de estas tareas.
Recomendaciones
Databricks está configurado para que pueda cargar e implementar los modelos
entrenados y así poder hacer predicciones con datos nuevos. Databricks también
proporciona otras ventajas:
Para interactuar con el servicio de Azure Databricks, use la interfaz del área de trabajo
de Databricks en un navegador web o en la interfaz de la línea de comandos (CLI).
Puede obtener acceso a la CLI de Databricks desde cualquier plataforma que admita
Python (versiones 2.7.9 a 3.6).
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Rendimiento
Un clúster de Azure Databricks habilita el escalado automático de manera
predeterminada para que, durante el tiempo de ejecución, Databricks reasigne
dinámicamente los roles de trabajo para que tengan en cuenta las características de su
trabajo. Ciertas partes de la canalización pueden ser más exigentes en el cálculo que
otras. Databricks agrega roles de trabajo adicionales durante estas fases del trabajo (y
los elimina cuando ya no son necesarios). El escalado automático hace que sea más fácil
lograr un uso del clúster elevado, ya que no es necesario aprovisionar ese clúster para
que coincida con una carga de trabajo.
Storage
En esta implementación de referencia, los datos se guardan directamente en el
almacenamiento de Databricks para facilitarle las cosas. Sin embargo, en una
configuración de producción, puede almacenar los datos en un almacenamiento de
datos en la nube como Azure Blob Storage . Databricks también es compatible con
Azure Data Lake Store , Azure Synapse Analytics , Azure Cosmos DB , Apache
Kafka y Apache Hadoop .
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
En general, use la calculadora de precios de Azure para calcular los costos. Otras
consideraciones se describen en la sección Costo de Marco de buena arquitectura de
Microsoft Azure.
Azure Databricks es una oferta premium de Spark con un costo asociado. Además,
puede optar por planes de tarifa estándar y premium de Databricks.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Ciencia de datos con Azure Databricks
Implementación de canalizaciones de inferencia por lotes con Azure Machine
Learning
Tutorial: Creación de una canalización de Azure Machine Learning para la
puntuación por lotes
Recursos relacionados
Compilación de una API de recomendaciones en tiempo real en Azure
Puntuación por lotes para modelos de aprendizaje profundo con canalizaciones de
Azure Machine Learning
Puntuación por lotes de modelos de Python en Azure
Creación de un bot
conversacional de nivel
empresarial
Servicio de Bot de Azure AI Servicios de Azure AI
Architecture
Security and governance
Azure AD Key Vault
Identity and Keys and secrets
access control
2 3
Authenticate,
Token, keys
authorize Data ETL Raw data
Bot logic and UX Bot cognition and intelligence Azure Functions
1 Request Bot Service 4 Queries LUIS Web App Custom serverless
Input channels, Custom model for compute Structured
Intents and entities Data Data
authentication unstructured Q&A CRM, SQL, etc.
Data Factory
Bot Logic QnA Maker Scheduled ETL
User 7 Response 5 Results Azure Search
pipelines
Custom bot code Knowledge base Search index
(FAQs)
Unstructured
Logic Apps
Improved bot intelligence FAQs, PDFs,
Data connectors DOCs, etc.
6
End-to-end testing, Quality assurance and enhancements
Conversations,
new features
feedback, logs Enhanced data collection
Azure DevOps, VS Code
Flujo de trabajo
En la arquitectura que se muestra a continuación se emplean los siguientes servicios de
Azure. Puede que su propio bot no use todos estos servicios o que se incorporen
servicios adicionales.
Ingesta de datos
El bot se basará en datos sin procesar que se deben ingerir y preparar. Considere
cualquiera de las siguientes opciones para organizar este proceso:
Registro y supervisión
Application Insights . Use Application Insights para registrar las métricas de
aplicación del bot con fines de análisis, supervisión y diagnóstico.
Azure Blob Storage . El almacenamiento de blobs está optimizado para almacenar
grandes cantidades de datos no estructurados.
Azure Cosmos DB . Azure Cosmos DB es ideal para almacenar datos de registro
semiestructurados, como las conversaciones.
Power BI . Use Power BI para crear paneles de supervisión para el bot.
Seguridad y gobernanza
Microsoft Entra ID. Los usuarios se autentican mediante un proveedor de
identidades como Microsoft Entra ID. Bot Service controla el flujo de autenticación
y la administración de tokens de OAuth. Consulte Incorporación de autenticación
al bot mediante Azure Bot Service.
Azure Key Vault . Almacene las credenciales y otros secretos con Key Vault.
Componentes
Bot Framework Service
Azure App Service
Azure Cognitive Services
Azure Search
Azure Data Factory
Azure Logic Apps
Funciones de Azure
Application Insights es una característica de Azure Monitor
Azure Blob Storage
Azure Cosmos DB
Microsoft Entra ID
Azure Key Vault
Recomendaciones
En líneas generales, un bot conversacional se puede dividir en la funcionalidad del bot
(el "cerebro") y un conjunto de requisitos adyacentes (el "cuerpo"). El cerebro incluye los
componentes dependientes del dominio, como la lógica del bot y las funcionalidades de
ML. Otros componentes son independientes del dominio y abordan los requisitos no
funcionales como CI/CD, control de calidad y seguridad.
Antes de entrar en los detalles de esta arquitectura, comencemos con el flujo de datos
que recorre cada subcomponente del diseño. El flujo de datos incluye flujos de datos
iniciados por el sistema e iniciados por el usuario.
Flujo de mensajes de usuario
Autenticación. Para comenzar, los usuarios se autentican mediante cualquier
mecanismo proporcionado por su canal de comunicación con el bot. Bot Framework
admite muchos canales de comunicación, como Cortana, Microsoft Teams, Facebook
Messenger, Kik y Slack. Para ver una lista de canales, consulte Conexión de un bot a
canales. Cuando se crea un bot con Azure Bot Service, el canal Chat en web se configura
automáticamente. Este canal permite a los usuarios interactuar con el bot directamente
en una página web. También puede conectar el bot a una aplicación personalizada
mediante el canal Direct Line. La identidad del usuario se usa para proporcionar control
de acceso basado en rol, así como para servir contenido personalizado.
Mensaje de usuario. Una vez autenticado, el usuario envía un mensaje al bot. El bot lee
el mensaje y lo enruta a un servicio de comprensión de lenguaje natural, como LUIS. En
este paso se obtienen las intenciones (lo que el usuario quiere hacer) y las entidades
(las cosas que le interesan al usuario). Luego, el bot crea una consulta que pasa a un
servicio que proporciona información, como Azure Search para la recuperación de
documentos, QnA Maker para preguntas frecuentes, o a una base de conocimiento
personalizada. El bot usa estos resultados para construir una respuesta. Para
proporcionar el mejor resultado a una consulta determinada, el bot puede realizar varias
llamadas de un lado para otro a estos servicios remotos.
Registro. Cuando se recibe una solicitud de usuario o se envía una respuesta, se deben
registrar todas las acciones de la conversación en un almacén de registro, junto con las
métricas de rendimiento y los errores generales de servicios externos. Estos registros
serán útiles más adelante a la hora de diagnosticar problemas y mejorar el sistema.
A continuación, los datos del almacén intermedio se indexan en Azure Search para la
recuperación de documentos, se cargan en QnA Maker para crear pares de preguntas y
respuestas o se cargan en una aplicación web personalizada para el procesamiento de
texto no estructurado. Los datos también se usan para entrenar un modelo de LUIS para
la extracción de intenciones y entidades.
Compilación de un bot
Antes de escribir una sola línea de código, es importante escribir una especificación
funcional para que el equipo de desarrollo tenga una idea clara de lo que se espera que
haga el bot. La especificación debe incluir una lista razonablemente completa de
entradas de usuario y las respuestas del bot esperadas en diversos dominios de
conocimiento. Este documento dinámico será una valiosa guía para desarrollar y probar
el bot.
Ingerir datos
A continuación, identifique los orígenes de datos que permitirán al bot interactuar de
forma inteligente con los usuarios. Como se ha mencionado anteriormente, estos
orígenes de datos podrían contener conjuntos de datos estructurados,
semiestructurados o no estructurados. Al principio, un buen enfoque es hacer una copia
única de los datos en un almacén central, como Azure Cosmos DB o Azure Storage. A
medida que avance, deberá crear una canalización de ingesta de datos automatizada
para mantener estos datos actualizados. Las opciones de una canalización de ingesta
automatizada incluyen Data Factory, Functions y Logic Apps. En función de los
almacenes de datos y los esquemas, puede usar una combinación de estos enfoques.
En los comienzos, es razonable usar Azure Portal para crear manualmente recursos de
Azure. Más tarde, debe centrarse más en automatizar la implementación de estos
recursos.
Para comenzar, puede crear su bot en línea mediante Azure Bot Service; para ello,
seleccione entre las plantillas de C# y Node.js disponibles. Sin embargo, a medida que el
bot se haga más sofisticado, deberá crear el bot localmente y, luego, implementarlo en
la web. Elija un IDE, como Visual Studio o Visual Studio Code, y un lenguaje de
programación. Hay disponibles SDK para los siguientes lenguajes:
C#
JavaScript
Java (versión preliminar)
Python (versión preliminar)
Como punto de partida, puede descargar el código fuente del bot que creó con Azure
Bot Service. También puede encontrar ejemplo de código , desde bots de eco sencillos
a bots más sofisticados que se integran con diversos servicios de inteligencia artificial.
Incorporación de inteligencia al bot
En el caso de un bot sencillo con una lista de comandos bien definida, podría usar un
enfoque basado en reglas para analizar la entrada del usuario mediante regex. La
ventaja de este enfoque es que es determinista y comprensible. Sin embargo, cuando el
bot necesite comprender las intenciones y entidades de un mensaje en un lenguaje más
natural, hay servicios de inteligencia artificial que pueden ayudar.
Azure Search puede funcionar en combinación con LUIS. Con Search, se crean
índices que permiten búsqueda sobre todos los datos apropiados. El bot consulta
estos índices para encontrar las entidades extraídas por LUIS. Azure Search
también admite sinónimos, que pueden ampliar la red de asignaciones de palabras
correctas.
QnA Maker es otro servicio que está diseñado para devolver respuestas a
preguntas dadas. Normalmente se entrena sobre datos semiestructurados, como
preguntas frecuentes.
El bot puede usar otros servicios de inteligencia artificial para enriquecer todavía más la
experiencia del usuario. El conjunto de aplicaciones de Cognitive Services de servicios de
inteligencia artificial pregenerados (que incluye LUIS y QnA Maker) dispone de
servicios de visión, voz, lenguaje, búsqueda y ubicación. Puede agregar rápidamente
funcionalidades, como traducción de idiomas, corrector ortográfico, análisis de
opiniones, OCR, reconocimiento de ubicación y moderación de contenido. Estos
servicios pueden estar conectados en el bot como módulos de middleware para
interactuar de forma más natural e inteligente con el usuario.
7 Nota
Para iniciar el desarrollo en estas áreas, examine las utilidades de Botbuilder para
JavaScript . Este repositorio contiene código de utilidad de ejemplo para los bots
creados con Microsoft Bot Framework v4 que se ejecutan en Node.js. Incluye los
siguientes paquetes:
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Disponibilidad
Al implementar nuevas características o corregir errores en el bot, es mejor usar varios
entornos de implementación, como ensayo y producción. El uso de ranuras de
implementación de Azure DevOps le permite hacer esto sin tiempo de inactividad.
Puede probar las actualizaciones más recientes en el entorno de ensayo antes de
pasarlas al entorno de producción. En términos de control de carga, App Service está
diseñado para escalarse vertical u horizontalmente de forma manual o automática.
Como el bot se hospeda en la infraestructura del centro de datos global de Microsoft, el
Acuerdo de Nivel de Servicio de App Service promete alta disponibilidad.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Al igual que con cualquier otra aplicación, el bot puede diseñarse para gestionar datos
confidenciales. Por lo tanto, restrinja quién puede iniciar sesión y usar el bot. También,
limite a qué datos se puede tener acceso, según la identidad o el rol del usuario. Use
Microsoft Entra ID para el control de identidad y acceso y Key Vault para administrar
claves y secretos.
DevOps
Supervisión e informes
Una vez que su bot se ejecuta en producción, necesitará un equipo de DevOps para
mantenerlo así. Supervise continuamente el sistema para asegurarse de que el bot
funciona a pleno rendimiento. Use los registros que se enviaron a Application Insights o
Azure Cosmos DB para crear paneles de supervisión, mediante Application Insights,
Power BI o un panel de aplicación web personalizado. Envíe alertas al equipo de DevOps
si se producen errores críticos o el rendimiento cae por debajo de un umbral aceptable.
Puede implementar la lógica del bot directamente desde el IDE o desde una línea de
comandos, como la CLI de Azure. A medida que crezca su bot, sin embargo, es mejor
usar un proceso de implementación continua mediante una solución de CI/CD como
Azure DevOps, como se describe en el artículo Configurar la implementación continua.
Esta es una buena manera de eliminar la fricción en la prueba de nuevas características y
corregir el bot en un entorno cercano al de producción. También es una buena idea
tener varios entornos de implementación, al menos normalmente ensayo y producción.
Azure DevOps admite este enfoque.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Puede usar la calculadora de precios de Azure para calcular los costos. Estas son
algunas otras consideraciones.
Aplicación de bot
En esta arquitectura, el principal generador de costos es la instancia de Azure App
Service donde se hospeda la lógica de aplicación de bot. Elija el nivel del plan de App
Service que mejor se adapte a sus necesidades. Estas son algunas recomendaciones:
Use los niveles Gratis y Compartido (versión preliminar) para realizar pruebas, ya
que los recursos compartidos no se pueden escalar horizontalmente.
Ejecute la carga de trabajo de producción en los niveles Básico, Estándar y
Premium, ya que la aplicación se ejecuta en instancias de máquina virtual
dedicadas y tiene recursos asignados que se pueden escalar horizontalmente. Los
planes de App Service se facturan por segundo.
Se le cobra por las instancias del plan de App Service, aunque la aplicación esté
detenida. Elimine los planes que no pretenda usar a largo plazo, como las
implementaciones de pruebas.
Vea ¿Cuánto cuesta mi plan de App Service? para obtener más información.
Ingesta de datos
Azure Data Factory
Para obtener un ejemplo, vea Azure Data Factory: ejemplo de análisis de costos.
Azure Functions
Logic Apps
Para calcular los precios de Logic Apps se usa el modelo de pago por uso. Logic Apps
tiene un modelo de precios de pago por uso. Cada vez que se ejecuta una aplicación
lógica se miden los desencadenadores, las acciones y las ejecuciones de conectores.
Todas las acciones, tanto las correctas como las incorrectas, entre las que se incluyen los
desencadenadores, se consideran ejecuciones.
Por ejemplo, su aplicación lógica procesa 1000 mensajes al día desde Azure Service Bus.
Un flujo de trabajo de cinco acciones costará menos de 6 USD. Para obtener más
información, consulte Precios de Logic Apps .
Para obtener otras consideraciones sobre el costo, vea la sección Costo de Marco de
buena arquitectura de Microsoft Azure.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Revise la plantilla Asistente virtual para empezar a crear rápidamente bots de
conversación.
Architecture
Esta arquitectura de referencia sirve para entrenar e implementar una API del servicio de
recomendaciones en tiempo real que pueda proporcionar las recomendaciones de las
diez mejores películas para un usuario.
Flujo de datos
1. Seguimiento de los comportamientos de los usuarios. Por ejemplo, un servicio de
back-end podría crear un registro cada vez que un usuario evalúa una película o
hace clic en un artículo acerca de un producto o una noticia.
2. Cargue los datos en Azure Databricks desde un origen de datos disponible.
3. Prepare los datos y divídalos en conjuntos de entrenamiento y de pruebas para
entrenar el modelo (en esta guía se describen las opciones para dividir los
datos).
4. Ajuste el modelo de filtrado en colaboración de Spark a los datos.
5. Evalúe la calidad del modelo mediante métricas de clasificación. (En esta guía se
proporcionan detalles sobre las métricas que puede usar para evaluar los
recomendadores).
6. Calcule previamente las diez principales recomendaciones por usuario y
almacénelas como una memoria caché en Azure Cosmos DB.
7. Implemente un servicio de API en AKS mediante las API de Machine Learning para
incluir la API en un contenedor e implementarla.
8. Cuando el servicio de back-end recibe una solicitud de un usuario, llame a la API
de recomendaciones hospedada en AKS para obtener las diez principales
recomendaciones y mostrárselas al usuario.
Componentes
Azure Databricks . Databricks es un entorno de desarrollo que se usa para
preparar los datos de entrada y entrenar el modelo de recomendación en un
clúster de Spark. Azure Databricks también proporciona un área de trabajo
interactiva para ejecutar cuadernos y colaborar en ellos en todas las tareas de
procesamiento de datos o aprendizaje automático.
Azure Kubernetes Service (AKS). AKS se usa para implementar y hacer operativa
una API de servicio de un modelo de Machine Learning en un clúster de
Kubernetes. AKS hospeda el modelo en contenedores, lo que proporciona una
escalabilidad que cumple los requisitos de rendimiento, la administración de
identidades y accesos, y la supervisión del registro y mantenimiento.
Azure Cosmos DB . Azure Cosmos DB es un servicio de base de datos distribuida
globalmente que se utiliza para almacenar las diez películas recomendadas a cada
usuario. Azure Cosmos DB es ideal para este escenario, ya que proporciona baja
latencia (10 ms en el percentil 99) para leer los principales elementos
recomendados para un usuario dado.
Aprendizaje automático . Este servicio se utiliza para realizar un seguimiento y
administrar modelos de Machine Learning y, después, empaquetar e implementar
dichos modelos en un entorno de AKS escalable.
Microsoft Recommenders . Este repositorio de código abierto contiene código y
ejemplos de la utilidad que ayudan a los usuarios empezar a compilar, evaluar y
poner en marcha un sistema de recomendaciones.
Esta solución está optimizada para el sector minorista y los sectores de multimedia y
entretenimiento.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Escalabilidad
Si no planea usar Spark o tiene una carga de trabajo más pequeña que no necesita la
distribución, considere la posibilidad de usar Data Science Virtual Machine (DSVM) en
lugar de Azure Databricks. DSVM es una máquina virtual de Azure con marcos y
herramientas de aprendizaje profundo para el aprendizaje automático y la ciencia de
datos. Igual que sucede con Azure Databricks, cualquier modelo que se crea en una
instancia de DSVM puedan usarse como un servicio en AKS mediante Machine Learning.
Escale el clúster de AKS para satisfacer sus necesidades de rendimiento. Procure escalar
verticalmente el número de pods para utilizar plenamente el clúster y escalar la nodos
del clúster para satisfacer la demanda del servicio. También puede configurar el escalado
automático en un clúster de AKS. Para más información, consulte el documento
Implementación de un modelo en el clúster de Azure Kubernetes Service.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
Compilación de una API de recomendaciones en tiempo real
¿Qué es Azure Databricks?
Azure Kubernetes Service
Bienvenido a Azure Cosmos DB
¿Qué es Azure Machine Learning?
Recursos relacionados
Puntuación por lotes de modelos de Spark en Azure Databricks
Creación de un sistema de recomendaciones basado en contenido
Asistente de venta al por menor con funcionalidades visuales
Creación de soluciones de marketing personalizadas casi en tiempo real
Ofertas personalizadas
Compilación e implementación de
una solución de análisis de redes
sociales
Servicios de Azure AI Azure Synapse Analytics Azure Machine Learning Azure Data Lake
Power BI Embedded
Para satisfacer mejor las necesidades de los clientes, las organizaciones deben extraer
información de las redes sociales sobre sus clientes. En este artículo se presenta una
solución para analizar noticias y datos de redes sociales. La solución extiende el
Acelerador de soluciones de análisis de redes sociales de Azure , que proporciona a los
desarrolladores los recursos necesarios para compilar e implementar una plataforma de
supervisión de redes sociales en Azure en pocas horas. Esa plataforma recopila datos de
redes sociales y sitios web y presenta los datos en un formato que admite el proceso de
toma de decisiones empresariales.
Architecture
2. Los grupos de Apache Spark en Azure Synapse Analytics se usan para procesar y
enriquecer los datos.
5. Un grupo de SQL sin servidor en Azure Synapse Analytics hace que los datos
enriquecidos estén disponibles para Power BI.
8. Como alternativa a los pasos del 5 al 7, los datos enriquecidos se usan para
entrenar un modelo de Machine Learning personalizado en Azure Machine
Learning.
Componentes
Azure Synapse Analytics es un servicio de análisis integrado que acelera el
tiempo necesario para extraer información de los almacenes de datosy sistemas de
macrodatos.
Data Lake es un lago de datos escalable de forma masiva para cargas de trabajo
de análisis de alto rendimiento.
Alternativas
Para simplificar esta solución, elimine Machine Learning y los modelos de Machine
Learning personalizados, como se muestra en el diagrama siguiente. Para más
información, consulte Implementación de este escenario más adelante en este artículo.
El marketing es una parte integral de cada organización. Como resultado, puede usar
esta solución de análisis de redes sociales para estos casos de uso en varios sectores:
Minoristas
Finance
Fabricación
Atención sanitaria
Gobierno
Sector energético
Telecomunicaciones
Automoción
Sin ánimo de lucro
Juegos
Ocio y elementos multimedia
Viajes, incluida la hospitalidad y los restaurantes
Instalaciones, incluida la propiedad
Deportes
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Use Azure Monitor y Application Insights para supervisar el estado de los recursos
de Azure.
Azure Synapse Analytics
App Service
Para más información sobre la resistencia en Azure, consulte Diseño de
aplicaciones confiables de Azure.
Acuerdo de Nivel de Servicio para Azure Synapse Analytics
Acuerdo de Nivel de Servicio para cuentas de almacenamiento
Acuerdo de Nivel de Servicio para Azure Maps
Acuerdo de Nivel de Servicio para Azure Cognitive Services
Acuerdo de Nivel de Servicio para Azure Machine Learning
Acuerdo de Nivel de Servicio para App Service
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Para estimar el costo de esta solución, use la Calculadora de precios de Azure .
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una
aplicación y la mantienen en ejecución en producción. Para más información, consulte
Introducción al pilar de excelencia operativa.
Requisitos previos
Para usar el acelerador de soluciones, necesita acceso a una suscripción de
Azure .
Un conocimiento básico de Azure Synapse Analytics, Azure Cognitive Services,
Azure Maps y Power BI es útil, pero no es necesario.
Se requiere una cuenta de API de noticias.
Se requiere una cuenta de desarrollador de Twitter con privilegios de acceso
elevados para las características de la API de Twitter.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribió el siguiente colaborador.
Autor principal:
Pasos siguientes
¿Qué es Azure Synapse Analytics?
Documentación de Azure Machine Learning
¿Qué es Azure Cognitive Services?
Documentación de Azure Cognitive Service para lenguaje
¿Qué es Translator de Azure Cognitive Services?
¿Qué es Azure Maps?
¿Qué es Power BI?
Tutorial: Análisis de sentimiento con Cognitive Services en Azure Synapse Analytics
Tutorial: Text Analytics con Cognitive Services en Azure Synapse Analytics
Recursos relacionados
Diseño de arquitectura de la inteligencia artificial (IA)
Elección de una tecnología de servicios cognitivos de Microsoft
Optimización del marketing con Machine Learning
Análisis de datos espaciales con Azure Synapse Analytics
Implementación del registro y la
supervisión de modelos de Azure
OpenAI
Servicios de Azure AI Azure API Management Azure Monitor Microsoft Entra ID
Architecture
Flujo de trabajo
1. Las aplicaciones cliente acceden a los puntos de conexión de Azure OpenAI para
realizar la generación de texto (finalizaciones) y el entrenamiento del modelo
(ajuste preciso).
Componentes
Application Gateway . Equilibrador de carga de aplicaciones para ayudar a
garantizar que todos los usuarios de las API de Azure OpenAI obtengan la
respuesta más rápida y el rendimiento más alto para las finalizaciones del modelo.
API Management . Plataforma de API Management para acceder a puntos de
conexión de Azure OpenAI de back-end. Proporciona supervisión y registro que no
está disponible de forma nativa en Azure OpenAI.
Azure Virtual Network . Infraestructura de red privada en la nube. Proporciona
aislamiento de red para que todo el tráfico de red de los modelos se enrute de
forma privada a Azure OpenAI.
Azure OpenAI . Servicio que hospeda modelos y proporciona salidas de
finalización de modelos generativas.
Supervisión . Observabilidad de un extremo a otro para aplicaciones. Proporciona
acceso a los registros de aplicación a través de Lenguaje de consulta Kusto.
También habilita los informes del panel y las funcionalidades de supervisión y
alertas.
Azure Key Vault Almacenamiento de seguridad mejorada para claves y secretos
que usan las aplicaciones.
Azure Storage . Almacenamiento de aplicaciones en la nube. Proporciona a Azure
OpenAI accesibilidad a los artefactos de entrenamiento del modelo.
Microsoft Entra ID . Administrador de identidades de seguridad mejorada.
Permite la autenticación y autorización de usuario a la aplicación y a los servicios
de plataforma que admiten la aplicación. También proporciona directiva de grupo
para asegurarse de que el principio de privilegios mínimos se aplica a todos los
usuarios.
Alternativas
Azure OpenAI proporciona registro y supervisión nativos. Puede usar esta funcionalidad
nativa para realizar un seguimiento de la telemetría del servicio, pero el registro
predeterminado de Cognitive Services no realiza un seguimiento ni registra entradas y
salidas del servicio, como avisos, tokens y modelos. Estas métricas son especialmente
importantes para el cumplimiento y para asegurarse de que el servicio funciona según
lo previsto. Además, mediante el seguimiento de las interacciones con los modelos de
lenguaje grande implementados en Azure OpenAI, puede analizar cómo usa su
organización el servicio para identificar los patrones de costo y uso que pueden ayudar
a informar sobre el escalado y la asignación de recursos.
ノ Expand table
Recuento de solicitudes x x
Latencia x x
Uso de tokens x x
(entrada/salida)
Operaciones de x x
implementación
ApiManagementGatewayLogs
| where OperationId == 'completions_create'
| extend modelkey = substring(parse_json(BackendResponseBody)['model'], 0,
indexof(parse_json(BackendResponseBody)['model'], '-', 0, -1, 2))
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])
['prompt_tokens']
| extend completiontokens = parse_json(parse_json(BackendResponseBody)
['usage'])['completion_tokens']
| extend totaltokens = parse_json(parse_json(BackendResponseBody)['usage'])
['total_tokens']
| extend ip = CallerIpAddress
| summarize
sum(todecimal(prompttokens)),
sum(todecimal(completiontokens)),
sum(todecimal(totaltokens)),
avg(todecimal(totaltokens))
by ip, model
Salida:
ApiManagementGatewayLogs
| where OperationId == 'completions_create'
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])
['prompt_tokens']
| extend prompttext = substring(parse_json(parse_json(BackendResponseBody)
['choices'])[0], 0, 100)
Salida:
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework,
que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de
una carga de trabajo. Para más información, consulte Marco de buena arquitectura de
Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que tu aplicación puede cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Este escenario garantiza la alta disponibilidad de los modelos de lenguaje grandes para
los usuarios empresariales. Azure Application Gateway proporciona un mecanismo
eficaz de entrega de aplicaciones de nivel 7 para garantizar un acceso rápido y
coherente a las aplicaciones. Puede usar API Management para configurar, administrar y
supervisar el acceso a los modelos. La alta disponibilidad inherente de servicios de
plataforma como Storage, Key Vault y Virtual Network garantiza una alta confiabilidad
para la aplicación. Por último, varias instancias de Azure OpenAI garantizan la resistencia
del servicio en caso de errores en el nivel de aplicación. Estos componentes de
arquitectura pueden ayudarle a garantizar la confiabilidad de la aplicación a escala
empresarial.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las
eficiencias operativas. Para más información, vea Información general del pilar de
optimización de costos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Otros colaboradores:
Pasos siguientes
Formulario de solicitud de Azure OpenAI
Procedimientos recomendados para la ingeniería de solicitudes con OpenAI API
Azure OpenAI: documentación, inicios rápidos y referencia de API
Azure-Samples/openai-python-enterprise-logging (GitHub)
Configuración de redes virtuales de Azure Cognitive Services
Recursos relacionados
Protección de las API con Azure Application Gateway y Azure API Management
Resumen de documentos basados en consultas
Diseño de arquitectura de IA
Entorno de investigación seguro
para datos regulados
Azure Data Science Virtual Machine Azure Machine Learning Azure Data Factory
Architecture
Approver
Network
6 security
group
Logic app
4 3
Researcher
7 Approved Data science virtual Azure Virtual
data Desktop
machine
2 Managed
Data Factory identity
Blob Storage 5 Virtual Virtual
(private) network network
gateway gateway
8 Azure Machine
Learning compute
User-defined routing
Virtual network
1 table
Firewall
Data owner Blob Storage policy
(public) Key Vault Azure Firewall
Virtual network
Resource group Resource group
Flujo de datos
1. Los propietarios de datos cargan los conjuntos de datos en una cuenta pública de
almacenamiento de blobs. Los datos se cifran mediante claves administradas por
Microsoft.
2. Azure Data Factory usa un desencadenador que comienza a copiar el conjunto de
datos cargado en una ubicación específica (ruta de acceso de importación) de otra
cuenta de almacenamiento con controles de seguridad. Solo se puede acceder a la
cuenta de almacenamiento mediante un punto de conexión privado. Además, una
entidad de servicio tiene acceso a ella con permisos limitados. Data Factory elimina
la copia original, lo que hace que el conjunto de datos sea inmutable.
5. El entorno seguro tiene un proceso de Azure Machine Learning que puede acceder
al conjunto de datos mediante un punto de conexión privado para los usuarios
para las funcionalidades de AML, como entrenar, implementar, automatizar y
administrar los modelos de aprendizaje automático. En este momento, se crean
modelos que cumplen las directrices normativas. Se elimina la información
personal de todos los datos del modelo para que sean anónimos.
La aplicación inicia un proceso de aprobación que solicita una revisión de los datos
que se ponen en cola para exportarse. Los revisores manuales garantizan que no
se exporten datos confidenciales. Después del proceso de revisión, los datos se
aprueban o se deniegan.
7 Nota
Componentes
Esta arquitectura se compone de varios servicios de Azure que escalan los recursos
según sea necesario. Aquí se describen los servicios y sus roles. Para obtener vínculos a
la documentación del producto para comenzar a trabajar con estos servicios, consulte
Pasos siguientes.
Estos son los componentes principales que trasladan los datos de investigación y los
procesan.
Proceso de Azure Machine Learning: clúster de nodos que se usa para entrenar y
probar modelos de aprendizaje automático y de IA. El proceso se asigna a petición
en función de una opción de escalado automático.
Azure Virtual Desktop se usa como un jumpbox para obtener acceso a los
recursos del entorno seguro con aplicaciones de streaming y un escritorio
completo, según sea necesario. También se puede usar Azure Bastion . Pero
conviene tener claras las diferencias de control de seguridad entre las dos
opciones. Virtual Desktop tiene algunas ventajas:
Capacidad de transmitir una aplicación como VSCode para ejecutar cuadernos
en los recursos de proceso de aprendizaje automático.
Capacidad de limitar las operaciones de copiar, pegar y las capturas de pantalla.
Compatibilidad con la autenticación de Microsoft Entra en DSVM.
Componentes de la gobernanza
Alternativas
La solución usa Data Factory para trasladas los datos a la cuenta de
almacenamiento pública en un contenedor independiente, para permitir que los
investigadores externos tengan acceso a sus modelos y datos exportados. Como
alternativa, se puede aprovisionar otra cuenta de almacenamiento en un entorno
de seguridad inferior.
Esta solución usa Azure Virtual Desktop como un jumpbox para obtener acceso a
los recursos del entorno seguro con aplicaciones de streaming y un escritorio
completo. También se puede usar Azure Bastion. Sin embargo, Virtual Desktop
tiene algunas ventajas, que incluyen la capacidad de transmitir una aplicación,
limitar las capturas de pantalla y copiar y pegar, y admitir la autenticación de AAC.
También puede considerar la posibilidad de configurar VPN de punto a sitio para el
entrenamiento sin conexión localmente. Esto también ayudará a ahorrar costos al
tener varias máquinas virtuales para estaciones de trabajo.
Para proteger los datos en reposo, esta solución cifra todas las instancias de Azure
Storage con claves administradas por Microsoft mediante una criptografía segura.
O bien se pueden usar claves administradas por el cliente. Las claves se deben
almacenar en un almacén de claves administrado.
Si sigue las instrucciones, puede mantener el control total de los datos de investigación,
separar las tareas y cumplir los estándares estrictos de cumplimiento normativo.
Además, puede facilitar la colaboración entre los roles típicos implicados en una carga
de trabajo orientada a la investigación, los propietarios de datos, los investigadores y los
aprobadores.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Los recursos de Azure usados para almacenar, probar y entrenar conjuntos de datos de
investigación se aprovisionan en un entorno seguro. Ese entorno es una instancia de
Azure Virtual Network (VNet) que tiene reglas de grupos de seguridad de red (NSG)
para restringir el acceso, principalmente:
Además, se acepta el acceso desde la red virtual con Azure Virtual Desktop (AVD)
en puertos limitados a los mecanismos de acceso aprobados, y se deniega el resto
del tráfico. En comparación con este entorno, la otra red virtual (con AVD) es
relativamente abierta.
El entorno seguro tiene un proceso de Azure Machine Learning que puede acceder al
conjunto de datos mediante un punto de conexión privado. Además, Azure Firewall
puede usar para controlar el acceso saliente desde el proceso de Azure Machine
Learning. Para obtener información sobre cómo configurar Azure Firewall para controlar
el acceso a un proceso de Azure Machine Learning, que reside en un área de trabajo de
aprendizaje automático, consulte Configuración del tráfico de red entrante y saliente.
Para obtener información sobre una de las formas de proteger un entorno de Azure
Machine Learning, consulte la entrada de blog Entorno de Secure Azure Machine
Learning Service (AMLS) .
Administración de identidades
Data Factory usa una identidad administrada para acceder a los datos desde el
almacenamiento de blobs. Las DSVM también usan una identidad administrada para las
tareas de corrección.
Para proteger los datos en reposo, todas las instancias de Azure Storage se cifran con
claves administradas por Microsoft mediante una criptografía segura.
O bien se pueden usar claves administradas por el cliente. Las claves se deben
almacenar en un almacén de claves administrado. En esta arquitectura, Azure Key Vault
se implementa en el entorno seguro para almacenar secretos como claves de cifrado y
certificados. Los recursos de la red virtual segura acceden a Key Vault mediante un
punto de conexión privado.
Consideraciones de gobernanza
Habilite Azure Policy para aplicar estándares y proporcionar una corrección
automatizada para que los recursos cumplan las directivas específicas. Las directivas se
pueden aplicar a una suscripción de proyecto o a un nivel de grupo de administración
como una única directiva o como parte de una iniciativa normativa.
Es posible que la imagen de base necesite actualizaciones, tales como más archivos
binarios. Esos archivos binarios deben cargarse en el almacenamiento de blobs público
y fluir por el entorno seguro, del mismo modo que los propietarios de datos cargan los
conjuntos de datos.
Otras consideraciones
La mayoría de las soluciones de investigación son cargas de trabajo temporales y no es
necesario que estén disponibles durante períodos prolongados. Esta arquitectura está
diseñada como una implementación de una sola región con zonas de disponibilidad. Si
los requisitos empresariales exigen mayor disponibilidad, replique esta arquitectura en
varias regiones. Necesitará otros componentes, como el equilibrador de carga global y
el distribuidor, para enrutar el tráfico a todas esas regiones. Como parte de la estrategia
de recuperación, se recomienda capturar y crear una copia de la imagen de base
personalizada con Azure Image Builder.
El tamaño y el tipo de las instancias de Data Science VM deben ser adecuados para el
estilo de trabajo que se realice. Esta arquitectura está diseñada para admitir un único
proyecto de investigación y la escalabilidad se logra mediante el ajuste del tamaño y el
tipo de las VM y de las opciones adoptadas para los recursos de proceso disponibles
para AML.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Microsoft Data Science Virtual Machine (DSVM)
¿Qué es Azure Machine Learning?
Proceso de Azure Machine Learning
Introducción a Azure Blob Storage
Introducción al servicio Azure Data Factory
Azure Virtual Desktop
Microsoft Defender for Cloud
Microsoft Sentinel
Azure Monitor
Azure Policy
Configuración de invitado de Azure Policy
Recursos relacionados
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Arquitectura de Azure Machine Learning
Escalado de iniciativas de IA y aprendizaje automático en sectores regulados
Aprendizaje automático de varios modelos a escala con Azure Machine Learning
Comparación de productos y
tecnologías de aprendizaje automático
de Microsoft
Artículo • 13/09/2023
microservicios para
Apache Spark
Elemento Descripción
Elemento Descripción
Idiomas admitidos Distintas opciones dependen del servicio. Los estándar son C#, Java,
JavaScript y Python.
Elemento Descripción
Use la máquina virtual de ciencia de datos cuando necesite ejecutar u hospedar trabajos
en un único nodo. O bien si necesita escalar de forma remota el procesamiento en un
único equipo.
Elemento Descripción
Si ejecuta una máquina virtual incurrirá en gastos de Azure, por lo que solo
deberá ejecutarla en caso de necesidad.
Azure Databricks
Azure Databricks es una plataforma de análisis basada en Apache Spark optimizada para
la plataforma de servicios en la nube de Microsoft Azure. Databricks está integrado con
Azure para proporcionar una configuración con un solo clic, flujos de trabajo
optimizados y un área de trabajo interactiva que permite la colaboración entre
científicos de datos, ingenieros de datos y analistas empresariales. Use código de
Python, Scala, R y SQL en cuadernos web para consultar, visualizar y modelar datos.
Elemento Descripción
ML.NET
ML.NET es un marco de aprendizaje automático de código abierto y multiplataforma.
Con ML.NET, puede crear soluciones de aprendizaje automático personalizadas e
integrarlas en sus aplicaciones .NET. ML.NET ofrece diferentes niveles de
interoperabilidad con marcos populares, como TensorFlow y ONNX, para el
entrenamiento y la puntuación de modelos de aprendizaje automático y aprendizaje
profundo. Para las tareas con uso intensivo de recursos, como el entrenamiento de
modelos de clasificación de imágenes, puede aprovechar Azure para entrenar los
modelos en la nube.
Elemento Descripción
Elemento Descripción
MMLSpark
Microsoft ML for Apache Spark (MMLSpark) es una biblioteca de código abierto que
amplía el marco de computación distribuida Apache Spark . MMLSpark agrega muchas
herramientas de ciencia de datos y aprendizaje profundo al ecosistema de Spark,
incluida la perfecta integración de canalizaciones de Spark Machine Learning con
Microsoft Cognitive Toolkit (CNTK), LightGBM , LIME (interpretabilidad de modelos)
y OpenCV . Puede usar estas herramientas para crear modelos predictivos eficaces en
cualquier clúster de Spark, como Azure Databricks o Cosmic Spark.
Elemento Descripción
Idiomas admitidos Scala 2.11, Java, Python 3.5 y versiones posteriores, R (beta)
Tolerancia a errores
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Para más información sobre todos los productos de desarrollo de inteligencia
artificial (IA) disponibles en Microsoft, consulte el artículo sobre la plataforma de
inteligencia artificial de Microsoft .
Para la formación sobre el desarrollo de soluciones de inteligencia artificial y
aprendizaje automático con Microsoft, consulte la formación de Microsoft Learn.
Recursos relacionados
Elección de una tecnología de servicios cognitivos de Microsoft
Diseño de arquitectura de la inteligencia artificial (IA)
Funcionamiento de Azure Machine Learning: recursos
Resumen de documentos basados en
consultas
Artículo • 13/09/2023
Architecture
En el diagrama siguiente se muestra cómo una consulta de usuario captura los datos
pertinentes. El generador de resumen usa GPT-3 para generar un resumen del texto del
documento más relevante. En esta arquitectura, el punto de conexión GPT-3 se usa para
resumir el texto.
Flujo de trabajo
Este flujo de trabajo se produce casi en tiempo real.
Algunas ventajas de usar un servicio de resumen para cualquier caso de uso son:
Aprendizaje en contexto
El servicio OpenAI de Azure usa un modelo de finalización generativa. El modelo usa
instrucciones de lenguaje natural para identificar la tarea solicitada y la aptitud
requerida, un proceso conocido como ingeniería de solicitud. Al usar este enfoque, la
primera parte de la solicitud incluye instrucciones de lenguaje natural o ejemplos de la
tarea que se quiere llevar a cabo. El modelo termina la terea prediciendo el texto
siguiente más probable. Esta técnica se conoce como aprendizaje en contexto.
Ingeniería rápida
La ingeniería rápida es una materia de procesamiento de lenguaje natural que implica la
detección de entradas que producen salidas deseables o útiles. Cuando un usuario hace
una solicitud al sistema, la forma en que se expresa el contenido puede cambiar
drásticamente la salida. El diseño de la solicitud es el proceso más significativo para
garantizar que el modelo GPT-3 proporciona una respuesta adaptada al contexto y a lo
que se quiere.
Diseño de la solicitud
Los modelos GPT-3 pueden realizar varias tareas, por lo que debe ser explícito en los
objetivos del diseño. Los modelos calculan la salida deseada en función de la solicitud
proporcionada.
Por ejemplo, si entra las palabras "dame una lista de razas de gatos", el modelo no
asumirá automáticamente que le pide una lista de razas de gatos. Podría estar
pidiéndole al modelo que continuara una conversación en la que las primeras palabras
fueran "Dame una lista de razas de gatos" y las siguientes "y te diré cuáles me gustan".
Si el modelo solo asumiera que quiere una lista de gatos, no sería tan bueno en la
creación de contenidos, en la clasificación o en otras tareas.
Como se describe en Aprenda a generar o manipular texto, hay tres directrices básicas
para crear solicitudes:
Alternativas
El reconocimiento del lenguaje conversacional de Azure es una alternativa al generador
de resumen que se usa aquí. El propósito principal de la comprensión del lenguaje
conversacional es crear modelos que predigan la intención general de una expresión
entrante, extraigan información valiosa de ella y generen una respuesta que se alinee
con el tema. Resulta útil en las aplicaciones de bot de chat cuando puede hacer
referencia a un knowledge base existente para encontrar la sugerencia que mejor se
corresponda con la expresión entrante. No ayuda mucho cuando el texto de entrada no
requiere una respuesta. La intención de esta arquitectura es generar un breve resumen
de los contenidos textuales largos. La esencia del contenido se describe de forma
concisa y se representa toda la información importante.
Escenarios de ejemplo
Dataset
El primer conjunto de datos es el conjunto de datos BillSum para resumir las facturas
estatales del Congreso de Estados Unidos y California. En este ejemplo solo se usan las
leyes del Congreso. Los datos se dividen en 18.949 facturas que se usarán para el
entrenamiento y 3.269 facturas que se usarán para las pruebas. BillSum se centra en la
legislación de longitud media que tiene entre 5.000 y 20.000 caracteres. Está limpiado y
preprocesado.
Para obtener más información sobre el conjunto de datos y las instrucciones para su
descarga, vea FiscalNote /BillSum .
Esquema BillSum
Zero-shot
El objetivo aquí es enseñar el modelo GPT-3 para aprender la entrada de estilo de
conversación. El punto de conexión de finalizaciones se usa para crear una API de Azure
OpenAI y una solicitud que genera el mejor resumen posible de la factura. Es
importante crear cuidadosamente las solicitudes para que se extraiga información
relevante. Para extraer resúmenes generales de una factura determinada, se usa el
siguiente formato.
Python
API_KEY = # SET YOUR OWN API KEY HERE
RESOURCE_ENDPOINT = " -- # SET A LINK TO YOUR RESOURCE ENDPOINT -- "
openai.api_type = "azure"
openai.api_key = API_KEY
openai.api_base = RESOURCE_ENDPOINT
openai.api_version = "2022-12-01-preview"
prompt_i = 'Summarize the legislative bill given the title and the
text.\n\nTitle:\n'+" ".join([normalize_text(bill_title_1)])+ '\n\nText:\n'+
" ".join([normalize_text(bill_text_1)])+'\n\nSummary:\n'
response = openai.Completion.create(
engine=TEXT_DAVINCI_001
prompt=prompt_i,
temperature=0.4,
max_tokens=500,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
stop=['\n\n###\n\n'], # The ending token used during inference. Once it
reaches this token, GPT-3 knows the completion is over.
best_of=1
)
= 1
Texto original:SAMPLE_BILL_1 .
Resumen del modelo zero-shot: La Ley nacional de incentivos fiscales para la educación
científica para empresas de 2007 crearía un nuevo crédito fiscal para empresas que
hagan contribuciones a la ciencia, la tecnología, la ingeniería y la educación matemática
(STEM) en el nivel de escuela primaria y secundaria. El crédito sería igual al 100 por
ciento de las contribuciones STEM calificadas del contribuyente para el año sujeto
pasivo. Las contribuciones de STEM calificadas incluyen contribuciones a la escuela
STEM, gastos de externificación de maestros DE STEM y gastos de formación de
profesores de STEM.
Python
return proc_df
df_staged_full_train = stage_examples(df_prompt_completion_train)
df_staged_full_val = stage_examples(df_prompt_completion_val)
Ahora que los datos están almacenados provisionalmente para el ajuste preciso en el
formato adecuado, puede empezar a ejecutar los comandos de ajuste.
A continuación, puede usar la CLI de OpenAI para ayudar con algunos de los pasos de
preparación de datos. La herramienta OpenAI valida los datos, proporciona sugerencias
y vuelve a formatear los datos.
Python
Python
payload = {
"model": "curie",
"training_file": " -- INSERT TRAINING FILE ID -- ",
"validation_file": "-- INSERT VALIDATION FILE ID --",
"hyperparams": {
"n_epochs": 1,
"batch_size": 200,
"learning_rate_multiplier": 0.1,
"prompt_loss_weight": 0.0001
}
}
Python
data = r.json()
print('Endpoint Called: {endpoint}'.format(endpoint = url))
print('Status Code: {status}'.format(status= r.status_code))
print('Fine tuning ID: {id}'.format(id=fine_tune_id))
print('Status: {status}'.format(status = data['status']))
print('Response Information \n\n {text}'.format(text=r.text))
Texto original:SAMPLE_BILL_1 .
Resumen del modelo con ajuste preciso: Este proyecto de ley proporciona un crédito
fiscal para las contribuciones a las escuelas primarias y secundarias que benefician a la
ciencia, la tecnología, la ingeniería y la educación matemática. El crédito es igual al 100%
de las contribuciones STEM calificadas realizadas por los contribuyentes durante el año
sujeto pasivo. Las contribuciones de STEM calificadas incluyen: (1) contribuciones a la
escuela STEM, (2) gastos de externificación de maestros DE STEM y (3) gastos de
formación de profesores de STEM. El presupuesto también ofrece un crédito fiscal para
las contribuciones a las escuelas primarias y secundarias que benefician a la ciencia, la
tecnología, la ingeniería o la educación matemática. El crédito es igual al 100% de las
contribuciones del servicio STEM calificadas realizadas por los contribuyentes durante el
año sujeto pasivo. Las contribuciones calificadas a los servicios STEM incluyen: (1)
contribuciones de servicio STEM pagadas o incurridas durante el año sujeto pasivo para
los servicios prestados en el Estados Unidos o en una base militar fuera de la Estados
Unidos; y (2) propiedad de inventario STEM aportada durante el año sujeto pasivo que
utiliza una organización educativa ubicada en el Estados Unidos o en una base militar
fuera del Estados Unidos para proporcionar educación en los grados K-12 en ciencia,
tecnología, ingeniería o matemáticas.
Para obtener los resultados de resumir algunas facturas más mediante los enfoques
zero-shot y ajuste preciso, consulte Resultados del conjunto de datos BillSum .
7 Nota
pages : la página del informe que contiene información clave que se va a resumir
(indizada 1).
completion : el resumen de la verdad fundamentada del informe.
comments : cualquier información adicional necesaria.
Python
openai.api_type = "azure"
openai.api_key = API_KEY
openai.api_base = RESOURCE_ENDPOINT
openai.api_version = "2022-12-01-preview"
name = os.path.abspath(os.path.join(os.getcwd(), '---INSERT PATH OF LOCALLY
DOWNLOADED RATHBONES_2020_PRELIM_RESULTS---')).replace('\\', '/')
pages_to_summarize = [0]
# Using pdfminer.six to extract the text
# !pip install pdfminer.six
from pdfminer.high_level import extract_text
t = extract_text(name
, page_numbers=pages_to_summarize
)
print("Text extracted from " + name)
t
Enfoque zero-shot
Después de extraer el texto, puede usar varias solicitudes para ver cómo influyen en la
calidad del resumen:
Python
#Using the text from the Rathbone's report, you can try different prompts to
see how they affect the summary
response = openai.Completion.create(
engine="davinci-instruct",
prompt=prompt_i,
temperature=0,
max_tokens=2048-int(len(prompt_i.split())*1.5),
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
print(response.choices[0].text)
>>>
- Funds under management and administration (FUMA) reached £54.7 billion at
31 December 2020, up 8.5% from £50.4 billion at 31 December 2019
- Operating income totalled £366.1 million, 5.2% ahead of the prior year
(2019: £348.1 million)
- Underlying1 profit before tax totalled £92.5 million, an increase of 4.3%
(2019: £88.7 million); underlying operating margin of 25.3% (2019: 25.5%)
# Different prompt
response = openai.Completion.create(
engine="davinci-instruct",
prompt=prompt_i,
temperature=0,
max_tokens=2048-int(len(prompt_i.split())*1.5),
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
print(response.choices[0].text)
>>>
- Funds under management and administration (FUMA) grew by 8.5% to reach
£54.7 billion at 31 December 2020
- Underlying profit before tax increased by 4.3% to £92.5 million,
delivering an underlying operating margin of 25.3%
- The board is announcing a final 2020 dividend of 47 pence per share, which
brings the total dividend to 72 pence per share, an increase of 2.9% over
2019
Desafíos
Python
# Body of function
text = extract_text(name
, page_numbers=pages_to_summarize
)
r = splitter(200, text)
tok_l = int(2000/len(r))
tok_l_w = num2words(tok_l)
res_lis = []
# Stage 1: Summaries
for i in range(len(r)):
prompt_i = f'Extract and summarize the key financial numbers and
percentages mentioned in the Text in less than {tok_l_w}
words.\n\nText:\n'+normalize_text(r[i])+'\n\nSummary in one paragraph:'
response = openai.Completion.create(
engine=TEXT_DAVINCI_001,
prompt=prompt_i,
temperature=0,
max_tokens=tok_l,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
t = trim_incomplete(response.choices[0].text)
res_lis.append(t)
response = openai.Completion.create(
engine=TEXT_DAVINCI_001,
prompt=prompt_i,
temperature=0,
max_tokens=200,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
print(trim_incomplete(response.choices[0].text))
La solicitud de entrada incluye el texto original del informe financiero de Rathbone para
un año específico.
El modelo zero-shot funciona bien para resumir documentos estándar. Si los datos son
específicos del sector o específicos del tema, contiene jerga específica del sector o
requiere conocimientos específicos del sector, el ajuste preciso funciona mejor. Por
ejemplo, este enfoque funciona bien para revistas médicas, formularios legales y
estados financieros. Puede usar el enfoquefew-shot en lugar de zero-shot para
proporcionar al modelo ejemplos de cómo formular un resumen, por lo que puede
aprender a imitar el resumen proporcionado. Para el enfoque zero-shot, esta solución
no vuelve a entrenar el modelo. El conocimiento del modelo se basa en el
entrenamiento GPT-3. GPT-3 está entrenado con casi todos los datos disponibles de
Internet. Funciona bien para las tareas que no requieren conocimientos específicos.
Para obtener los resultados del uso del resumen de resumen de resúmenes sobre
algunos informes del conjunto de datos financiero, consulte Resultados para resumen
de resúmenes .
Recomendaciones
Hay muchas maneras de abordar el resumen mediante GPT-3, incluyendo el zero-shot,
el few-shot y el ajuste preciso. Los enfoques generan resúmenes de calidad variable.
Puede explorar qué enfoque genera los mejores resultados para su caso de uso previsto.
En función de las observaciones sobre las pruebas presentadas en este artículo, estas
son algunas recomendaciones:
Este es un ejemplo:
Python
Este es un ejemplo:
Python
import torchmetrics
from torchmetrics.text.bert import BERTScore
preds = "You should have ice cream in the summer"
target = "Ice creams are great when the weather is hot"
bertscore = BERTScore()
score = bertscore(preds, target)
print(score)
Python
La primera frase, "el gato está en el porche junto al árbol", se conoce como candidato.
La segunda frase se conoce como referencia. El comando usa BERTScore para comparar
las oraciones y generar una matriz.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Pasos siguientes
Azure OpenAI: documentación, inicios rápidos y referencia de API
¿Cuáles son las intenciones en LUIS?
Reconocimiento del lenguaje conversacional
Jupyter Notebook con detalles técnicos y ejecución de este caso de uso
Recursos relacionados
Diseño de arquitectura de IA
Elección de una tecnología de servicios cognitivos de Microsoft
Tecnología de procesamiento de lenguaje natural
Compilación de canalizaciones del
modelo de lenguaje con memoria
Bing Web Search Azure Cache for Redis Azure Pipelines
7 Nota
Architecture
Componentes
Azure OpenAI Service proporciona acceso mediante la API de REST a los eficaces
modelos de lenguaje de OpenAI, incluidas las series de modelos de inserciones,
GPT-3, GPT-3.5 y GPT-4. Puede adaptar con facilidad estos modelos a la tarea
específica, como la generación de contenido, el resumen, la búsqueda semántica,
la conversión de texto a vectores de inserción semánticamente eficaces y la
traducción de lenguaje natural a código.
Autor principal:
Otro colaborador:
Pasos siguientes
Acelerador de procesos empresariales de Azure
Azure OpenAI
PyR de inserciones de Azure OpenAI
ChatGPT
Búsqueda empresarial con arquitectura de OpenAI
IA generativa para desarrolladores: Exploración de nuevas herramientas y API en
Azure OpenAI Service
LangChain
Memoria con modelos de lenguaje
Inicio rápido: Introducción a la generación de texto mediante Azure OpenAI
Service
Redis en Azure OpenAI
Revolucionar los datos empresariales con ChatGPT: aplicaciones de nueva
generación con Azure OpenAI y Azure Cognitive Search
Kernel semántico
Bases de datos vectoriales con Azure OpenAI
Recursos relacionados
Diseño de arquitectura de IA
Tipos de servicios de API de lenguaje
Implementación de conversión de
voz en texto personalizada
Servicios de Azure AI Voz de Azure AI Azure Machine Learning
En esta guía de dos partes se describen varios enfoques para implementar eficazmente
aplicaciones compatibles con voz de alta calidad. Se centra en ampliar y personalizar el
modelo de línea base de la funcionalidad de conversión de voz en texto que
proporciona el servicio de voz de Azure Cognitive Services.
Tenga en cuenta, sin embargo, que es posible que el modelo de línea base no sea
suficiente si el audio contiene ruido ambiental o incluye una gran cantidad de jerga
específica del sector y del dominio. En estos casos, la creación de un modelo de voz
personalizado tiene sentido. Para ello, puede realizar el entrenamiento con datos
adicionales asociados al dominio específico.
Según el tamaño del dominio personalizado, también puede tener sentido entrenar
varios modelos y compartimentar un modelo para una aplicación individual. Por
ejemplo, los analistas olímpicos informan sobre varios deportes, cada uno con su propia
jerga. Dado que el vocabulario de cada evento deportivo difiere significativamente de
otros, la creación de un modelo personalizado específico de un deporte aumenta la
precisión al limitar los datos de expresión relativos a ese deporte en particular. Como
resultado, el modelo puede aprender de un conjunto preciso y específico de datos.
Por lo tanto, hay tres enfoques para implementar la conversión de voz en texto de
Azure:
Posibles casos de uso
Estos son algunos escenarios genéricos y casos de uso en los que resulta útil la
conversión de voz en texto personalizada:
Consideraciones de diseño
En esta sección se describen algunas consideraciones de diseño para crear una
aplicación basada en voz.
El modelo personalizado final puede incluir conjuntos de datos que usan una
combinación de las tres personalizaciones descritas en esta sección.
Entrene con datos específicos que se centren en áreas problemáticas. Este enfoque
funciona bien cuando no hay muchos datos de entrenamiento, por ejemplo, si se
usan nuevos términos de jerga durante los eventos de esquí alpino y deben
incluirse en el modelo. Este tipo de entrenamiento usa el siguiente enfoque:
Use Speech Studio para generar una transcripción y compararla con
transcripciones generadas por humanos.
Identifique áreas problemáticas de patrones sobre lo que dicen los
comentadores. Identifique:
Contextos en los que se aplican la palabra o expresión problemáticas.
Diferentes inflexiones y pronunciaciones de la palabra o expresión.
Cualquier aplicación específica de la palabra o expresión por parte del
comentador.
Tenga en cuenta la diferencia entre texto léxico y texto para mostrar. Speech
Studio genera WER basado en texto léxico. Sin embargo, lo que ve el usuario es el
texto para mostrar con signos de puntuación, mayúsculas y palabras numéricas
representadas como números. A continuación se muestra un ejemplo de una
comparación del texto léxico y el texto para mostrar.
El modelo personalizado tiene una tasa WER baja, pero eso no significa que la tasa
de errores percibida por el usuario (errores en el texto para mostrar) sea baja. Este
problema se produce principalmente en la entrada alfanumérica porque diferentes
aplicaciones pueden tener formas alternativas de representar la entrada. No debe
confiar solo en WER. También debe revisar el resultado final del reconocimiento.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Pasos siguientes
¿Qué es Habla personalizada?
¿Qué es el texto a voz?
Entrenamiento de un modelo de Habla personalizada
Implementación de una solución personalizada de conversión de voz en texto
Recursos relacionados
Diseño de arquitectura de la inteligencia artificial (IA)
Uso de una canalización de transcripción de voz en texto para analizar
conversaciones grabadas
Control de dispositivos IoT con una aplicación de asistente para voz
Implementación de una solución
personalizada de conversión de
voz en texto
Servicios de Azure AI Voz de Azure AI Azure Machine Learning
Ideas de solución
Este artículo es una idea de solución. Si te gustaría que ampliemos este artículo con
más información, como posibles casos de uso, servicios alternativos,
consideraciones de implementación o una guía de precios, comunícalo a través de
los Comentarios de GitHub .
Architecture
Descargue un archivo Visio de esta arquitectura.
Flujo de trabajo
1. Recopile transcripciones existentes que se usarán para entrenar un modelo de voz
personalizado.
2. Si las transcripciones están en formato WebVTT o SRT, limpie los archivos para que
incluyan solo las partes de texto de las transcripciones.
3. Normalice el texto quitando cualquier puntuación, separando palabras repetidas y
deletreando cualquier valor numérico grande. Puede combinar varias
transcripciones limpiadas en una para crear un conjunto de datos. Del mismo
modo, cree un conjunto de datos para realizar pruebas.
4. Una vez que los conjuntos de datos estén listos, cárguelos mediante Speech
Studio. Como alternativa, si el conjunto de datos está en un almacén de blobs,
puede usar la API de conversión de voz en texto de Azure y la CLI de Voz. En la API
y la CLI, puede pasar el URI del conjunto de datos a una entrada para crear un
conjunto de datos para el entrenamiento y las pruebas del modelo.
5. En Speech Studio o mediante la API o la CLI, use el nuevo conjunto de datos para
entrenar un modelo de voz personalizado.
6. Evalúe el modelo recién entrenado en el conjunto de datos de prueba.
7. Si el rendimiento del modelo personalizado cumple las expectativas de calidad,
publíquelo para su uso en la transcripción de voz. De lo contrario, use Speech
Studio para revisar la tasa de errores de palabras (WER) y detalles de errores
específicos y determinar qué datos adicionales se necesitan para el entrenamiento.
8. Use las API y la CLI para ayudar a operacionalizar el proceso de creación,
evaluación e implementación del modelo.
Componentes
Azure Machine Learning es un servicio de nivel empresarial para el ciclo de vida
de aprendizaje automático completo.
Azure Cognitive Services es un conjunto de API, SDK y servicios que le pueden
ayudar a hacer que sus aplicaciones sean más inteligentes, atractivas y detectables.
Speech Studio es un conjunto de herramientas basadas en interfaz de usuario
para compilar e integrar características del servicio Voz de Cognitive Services en
las aplicaciones. Aquí es una alternativa para el entrenamiento de conjunto de
datos. También se usa para revisar los resultados del entrenamiento.
La API REST de conversión de voz en texto es una API que puede usar para
cargar sus propios datos, probar y entrenar un modelo personalizado, comparar
la precisión entre los modelos e implementar un modelo en un punto de
conexión personalizado. También puede usarla para operacionalizar la creación,
evaluación e implementación del modelo.
La CLI del servicio de Voz es una herramienta de la línea de comandos para usar
el servicio de Voz sin necesidad de escribir código. Proporciona otra alternativa
para crear y entrenar conjuntos de datos y para operacionalizar los procesos.
1. Use Speech Studio, el SDK de Voz de Azure, la CLI de Voz o la API REST para
generar transcripciones para oraciones y expresiones habladas.
2. Compare la transcripción generada con la transcripción generada por el usuario.
3. Si ciertas palabras específicas del dominio se transcriben incorrectamente,
considere la posibilidad de crear un modelo de voz personalizado para ese
dominio específico.
4. Revise varias opciones para crear modelos personalizados. Decida si uno o varios
modelos personalizados funcionarán mejor.
5. Recopile los datos de entrenamiento y pruebas.
6. Asegúrese de que los datos están en un formato aceptable.
7. Entrene, pruebe y evalúe e implemente el modelo.
8. Use el modelo personalizado para la transcripción.
9. Operacionalice el proceso de creación, evaluación e implementación del modelo.
1. Use Speech Studio, el SDK de Voz de Azure, la CLI de Voz o la API REST para
generar transcripciones para oraciones y expresiones habladas
Azure Speech proporciona un SDK, una interfaz de la CLI y una API REST para generar
transcripciones a partir de archivos de audio o directamente desde la entrada del
micrófono. Si el contenido está en un archivo de audio, debe tener un formato
compatible. En este escenario, Contoso tiene grabaciones de eventos anteriores (audio y
vídeo) en archivos .avi. Contoso puede usar herramientas como FFmpeg para extraer
audio de los archivos de vídeo y guardarlo en un formato compatible con el SDK de Voz
de Azure, como .wav.
En el código siguiente, el códec de audio PCM estándar, pcm_s16le , se usa para extraer
audio en un solo canal (mono) que tiene una frecuencia de muestreo de 8 KHz.
Para obtener información sobre el uso de Speech Studio para crear y evaluar un
conjunto de datos, consulte Conjuntos de datos de entrenamiento y pruebas.
Para obtener más información sobre WER, consulte Evaluación de la tasa de errores de
palabras.
Observe las tasas de inserción y eliminación, que indican que el archivo de audio está
relativamente limpio y tiene poco ruido de fondo.
3. Si ciertas palabras específicas del dominio se transcriben incorrectamente,
considere la posibilidad de crear un modelo de voz personalizado para ese dominio
específico
El modelo 1 no reconoce palabras específicas del dominio como los nombres de los
atletas "Katia Seizinger" y "Goggia". Sin embargo, cuando el modelo personalizado se
entrena con datos que incluyen los nombres de los atletas y otras palabras y frases
específicas del dominio, es capaz de aprender y reconocerlos.
4. Revise varias opciones para crear modelos personalizados. Decida si uno o varios
modelos personalizados funcionarán mejor
Las nuevas grabaciones de eventos se usan para probar y evaluar aún más el modelo
entrenado. Puede que sean necesarias un par de iteraciones de pruebas y evaluación
para ajustar un modelo. Por último, cuando el modelo genera transcripciones que tienen
tasas de error aceptables, se implementa (publica) para que se consuma desde el SDK.
C#
se implementa en el paso 7.
subscriptionKey y region son la clave de suscripción y la región de Azure
Cognitive Services. Para obtener estos valores desde Azure Portal , vaya al grupo
de recursos donde se creó el recurso de Cognitive Services y examine sus claves.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Pasos siguientes
¿Qué es Habla personalizada?
¿Qué es el texto a voz?
Entrenamiento de un modelo de Habla personalizada
Implementación de conversión de voz en texto personalizada
Azure/custom-speech-stt en GitHub
Recursos relacionados
Diseño de arquitectura de la inteligencia artificial (IA)
Uso de una canalización de transcripción de voz en texto para analizar
conversaciones grabadas
Control de dispositivos IoT con una aplicación de asistente para voz
Implementación de conversión de voz en texto personalizada
Resumen de conversación
Servicios de Azure AI
La mayoría de las empresas proporcionan soporte de servicio al cliente para ayudar a los
clientes con las consultas de productos, la solución de problemas y el mantenimiento o
actualización de características o del propio producto. Para proporcionar una resolución
satisfactoria, los especialistas de atención al cliente deben responder rápidamente y con
información precisa. OpenAI puede ayudar a las organizaciones con soporte técnico al
cliente de varias maneras.
En esta guía se describe cómo generar los resúmenes de las interacciones entre el
agente y el cliente mediante el modelo GPT-3 de Azure OpenAI. Contiene una
arquitectura de ejemplo de un extremo a otro que ilustra los componentes clave
implicados en la obtención de un resumen de una entrada de texto. La generación de la
entrada de texto está fuera del ámbito de esta guía. El objetivo de esta guía es describir
el proceso de implementación del resumen de un conjunto de conversaciones de
ejemplo entre el agente y el cliente y analizar los resultados de varios enfoques para la
creación del resumen.
Escenarios de conversación
Bots de chat de autoservicio (totalmente automatizados). En este escenario, los
clientes pueden interactuar con un bot de chat con tecnología de GPT-3 y
entrenado con datos específicos del sector. El bot de chat puede comprender las
preguntas de los clientes y responder adecuadamente en función de las respuestas
aprendidas de una knowledge base.
Bot de chat con intervención del agente (semiautomatizado). Las preguntas
planteadas por los clientes a veces son complejas y requieren de intervención
humana. En tales casos, GPT-3 puede proporcionar un resumen de la conversación
entre el bot de chat y el cliente, y ayudar al agente con búsquedas rápidas de
información adicional de una gran knowledge base.
Resumen de transcripciones (totalmente automatizadas o semiautomatizadas). En
la mayoría de los centros de atención al cliente, los agentes son necesarios para
resumir las conversaciones y mantener el registro, hacer seguimientos futuros,
llevar a cabo entrenamiento y realizar otros procesos internos. GPT-3 puede
proporcionar resúmenes automatizados o semiautomatizados que capturan los
detalles destacados de las conversaciones para su uso posterior.
Esta guía se centra en el proceso de resumen de transcripciones mediante Azure OpenAI
GPT-3.
Architecture
Una arquitectura típica para un generador de resumen de conversación tiene tres fases
principales: preprocesamiento, resumen y posprocesamiento. Si la entrada contiene una
conversación verbal o cualquier forma de voz, la voz debe transcribirse a texto. Para más
información, consulte Servicio de conversión de voz en texto de Azure .
Flujo de trabajo
1. Recopile los datos de entrada: introduzca los datos de entrada pertinentes en la
canalización. Si el origen es un archivo de audio, debe convertirlo en texto
mediante un servicio de TTS como texto a voz de Azure.
2. Preprocese los datos: quite la información confidencial y cualquier conversación
que no sea importante de los datos.
3. Incorpore los datos al generador de resúmenes: pase los datos en una solicitud a
través de las API de Azure OpenAI. Los modelos de aprendizaje en contexto
incluyen zero-shot, few-shot o el modelo personalizado.
4. Genere el resumen: el modelo generará un resumen de la conversación.
5. Procesamiento posterior a los datos: aplique un filtro de palabras soeces y varias
comprobaciones de validación al resumen. Agregue los datos confidenciales que
se quitaron durante el paso previo al proceso en el resumen.
6. Evalúe los resultados: revise y evalúe los resultados. Este paso puede ayudarle a
identificar las áreas en las que el modelo debe mejorarse y a encontrar errores.
En las secciones siguientes se proporcionan más detalles sobre las tres fases principales.
Procesamiento previo
El objetivo del preprocesamiento es asegurarse de que los datos proporcionados al
servicio de generación de resumen sean relevantes y no incluyan información
confidencial.
Estos son algunos pasos de preprocesamiento que pueden ayudar a condicionar los
datos sin procesar. Es posible que tenga que aplicar uno o varios pasos, según el caso
de uso.
Generador de resúmenes
El punto de conexión de la API de finalización de texto de OpenAI se denomina punto
de conexión de finalizaciones. Para iniciar el proceso de finalización de texto, se requiere
una solicitud. La ingeniería de solicitud es un proceso que se usa en modelos de
lenguaje grandes. La primera parte de la solicitud incluye instrucciones de lenguaje
natural o ejemplos de la tarea específica solicitada (en este escenario, la creación del
resumen). Las solicitudes permiten a los desarrolladores proporcionar contexto a la API,
lo que puede ayudar a generar finalizaciones de texto más relevantes y precisas. El
modelo termina la tarea prediciendo el texto siguiente más probable. Esta técnica se
conoce como aprendizaje en contexto.
7 Nota
Hay tres enfoques principales para entrenar a los modelos para el aprendizaje en
contexto: zero-shot, few-shot y ajuste preciso. Estos enfoques varían en función de la
cantidad de datos específicos de la tarea que se proporcionan al modelo.
Con este enfoque, no se pueden actualizar los pesos del modelo entrenado
previamente.
Para obtener más información, consulte Los modelos de lenguaje son aprendices
de few-shot .
Posprocesamiento
Se recomienda comprobar la validez de los resultados obtenidos de GPT-3. Implemente
comprobaciones de validez mediante un enfoque mediante programación o
clasificadores, según el caso de uso. Estas son algunas comprobaciones críticas:
Por último, vuelva a introducir cualquier información vital que se haya quitado
previamente del resumen, como la información confidencial.
Consideraciones
Es importante ajustar los modelos base con un conjunto de datos de entrenamiento
específico del sector y cambiar el tamaño de los conjuntos de datos disponibles. Los
modelos con ajuste preciso funcionan mejor cuando los datos de entrenamiento
incluyen al menos 1000 puntos de datos y los datos ciertos (resúmenes generados por
el usuario) que se usan para entrenar los modelos son de alta calidad.
Prompt Completion
Agente: Correcto.
Cliente: Perfecto.
Salida ideal. El objetivo es crear resúmenes que sigan este formato: "El cliente dijo x. El
agente respondió y". Otro objetivo es capturar características destacadas del cuadro de
diálogo, como la queja del cliente, la resolución sugerida y las acciones de seguimiento.
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento (o el mejor precio con descuento
disponible) para seguir jugando el juego una vez que salga del catálogo.
Resumen cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Zero-shot
El enfoque de zero-shot es útil cuando no tiene suficientes datos de entrenamiento
etiquetados. En este caso, no hay suficientes resúmenes ciertos. Es importante diseñar
las solicitudes cuidadosamente para extraer la información relevante. El siguiente
formato se usa para extraer resúmenes generales de los chats entre el agente y el
cliente:
Python
rouge = Rouge()
# Run zero-shot prediction for all engines of interest
deploymentNames = ["curie-instruct","davinci-instruct"] # also known as
text-davinci/text-instruct
for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?
api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling…" + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the
dataset
)
scores = rouge.get_scores(normalize_text(response_i[‘choices’][ 0]
['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i[‘choices’][0][‘text’]) for i in
response_list]
test[deployment + "_zeroshotsummary"] = summary_list
test[deployment + "_zeroshotroguescore"] = rouge_list
Resultados y observaciones
La salida del modelo zero-shot se genera directamente desde el modelo base. En este
caso, tanto Curie como Davinci resumen el cuadro de diálogo bastante bien. La única
diferencia notable es que el modelo Curie proporciona un poco menos de detalle. Curie
inicia el resumen con "el cliente pregunta al agente sobre Xbox Game Pass". La frase
correspondiente en Davinci es "el cliente preguntó por cuánto tiempo podía acceder a
los juegos después de salgan del catálogo de Xbox Game Pass".
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento
disponible, para seguir jugando el juego una vez que sale del catálogo.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Resultado de Davinci
El cliente preguntó por cuánto tiempo podía acceder a los juegos después de que salen
del catálogo de Xbox Game Pass. El agente le dijo que necesitaría comprar una copia
digital del juego desde la aplicación Xbox para Windows o la Microsoft Store para poder
continuar jugando. El agente también recordó al cliente que se le notificaría antes de
que un juego salga del catálogo de Xbox Game Pass. Como miembro, el cliente podrá
comprar cualquier juego en el catálogo con un máximo de 20 % de descuento o el
mejor precio con descuento disponible.
Resultado de Curie
El cliente pregunta al agente sobre Xbox Game Pass. El agente indica al cliente que una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El agente también le recuerda al cliente que Xbox notificará a los
miembros antes de que un juego salga del catálogo de Xbox Game Pass.
Few-shot
Cuando se usa el enfoque few-shot, el modelo se proporciona con un pequeño número
de ejemplos.
summaries:"
Python
train_small = train[]
train_small_json = train_small.to_dict(orient='records')
compiled_train_prompt = build_prompt_fewshot(prefix,context_primer,
train_small_json, suffix)
Resultados y observaciones
Con el enfoque de few-shot, los resúmenes continúan capturando características
destacadas de la conversación. El resumen de Davinci es más compacto y más cercano a
ser cierto. Curie fabrica algunos detalles triviales.
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento
disponible, para seguir jugando el juego una vez que sale del catálogo.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Resultado de Davinci
El cliente quería saber por cuánto tiempo podía acceder a los juegos después de que
salen de Game Pass. El agente informa que una vez que un juego sale del catálogo de
Xbox Game Pass, el cliente tendría que comprar una copia digital u obtener otra forma
de derecho para continuar jugando el juego.
Resultado de Curie
El cliente tiene una pregunta sobre el Game Pass. El cliente está bien. El agente necesita
ayuda con el Xbox Game Pass. El cliente pregunta por cuánto tiempo puede acceder a
los juegos después de que salen del catálogo de Game Pass. El agente informa que, una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El cliente está encantado de escuchar esto y agradece al agente.
Ajuste preciso
El ajuste preciso es el proceso de adaptar los modelos para obtener un resultado
deseado específico a partir de sus propios conjuntos de datos.
Resultados y observaciones
Las pruebas sugieren que un modelo Curie de ajuste preciso conduce a resultados que
son comparables a los de un modelo de few-shot de Davinci. Ambos resúmenes
capturan la pregunta del cliente y la respuesta del agente sin capturar los detalles sobre
los descuentos y sin agregar contenido. Ambos resúmenes son similares al cierto.
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento
disponible, para seguir jugando el juego una vez que sale del catálogo.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Resultado de Curie
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que
salen de Game Pass. El agente explica que, una vez que un juego sale del catálogo de
Xbox Game Pass, el cliente debe comprar una copia digital desde la aplicación Xbox
para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de
derecho para poder continuar jugando el juego.
Conclusiones
Por lo general, el modelo Davinci requiere menos instrucciones para realizar las tareas
que otros modelos, como Curie. Davinci es más adecuado para resumir texto que
requiera una comprensión del contexto o del lenguaje específico. Dado que Davinci es
el modelo más complejo, su latencia es mayor que la de otros modelos. Curie es más
rápido que Davinci y es capaz de resumir conversaciones.
Estas pruebas sugieren que puede generar mejores resúmenes al proporcionar más
instrucciones al modelo a través de los métodos few-shot o de ajuste preciso. Los
modelos de ajuste preciso son mejores para adaptarse a la estructura y el contexto
aprendidos a partir de un conjunto de datos de entrenamiento. Esta funcionalidad es
especialmente útil cuando los resúmenes son específicos del dominio (por ejemplo,
generar resúmenes a partir de las notas de un médico o de la atención al cliente con
una receta en línea). Si usa el ajuste preciso, tiene más control sobre los tipos de
resúmenes que ve.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
El cliente preguntó por cuánto tiempo podía acceder a los juegos después de que salen
del catálogo de Xbox Game Pass. El agente le dijo que necesitaría comprar una copia
digital del juego desde la aplicación Xbox para Windows o la Microsoft Store para poder
continuar jugando. El agente también recordó al cliente que se le notificaría antes de
que un juego salga del catálogo de Xbox Game Pass. Como miembro, el cliente podrá
comprar cualquier juego en el catálogo con hasta 20 % de descuento o el mejor precio
con descuento disponible.
El cliente pregunta al agente sobre Xbox Game Pass. El agente indica al cliente que una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El agente también le recuerda al cliente que Xbox notificará a los
miembros antes de que un juego salga del catálogo de Xbox Game Pass.
El cliente tiene una pregunta sobre el Game Pass. El cliente está bien. El agente necesita
ayuda con el Xbox Game Pass. El cliente pregunta por cuánto tiempo puede acceder a
los juegos después de que salen del catálogo de Game Pass. El agente informa que, una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El cliente está encantado de escuchar esto y agradece al agente.
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que
salen de Game Pass. El agente explica que, una vez que un juego sale del catálogo de
Xbox Game Pass, el cliente debe comprar una copia digital desde la aplicación Xbox
para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de
derecho para poder continuar jugando el juego.
Este es un ejemplo:
Python
Este es un ejemplo:
Python
import torchmetrics
from torchmetrics.text.bert import BERTScore
preds = "You should have ice cream in the summer"
target = "Ice creams are great when the weather is hot"
bertscore = BERTScore()
score = bertscore(preds, target)
print(score)
Python
La primera frase, "El gato está en el porche junto al árbol", se conoce como candidato.
La segunda frase se conoce como referencia. El comando usa BERTScore para comparar
las oraciones y generar una matriz.
Uso responsable
GPT puede producir excelentes resultados, pero debe comprobar la salida en busca de
sesgos sociales, éticos y legales, y también resultados dañinos. Al ajustar los modelos,
debe quitar los puntos de datos que pueda ser perjudicial que aprenda el modelo.
Puede formar equipos de alerta para identificar las salidas dañinas del modelo. Puede
implementar este proceso manualmente y respaldarlo mediante métodos
semiautomatizados. Puede generar casos de prueba mediante modelos de lenguaje y, a
continuación, usar un clasificador para detectar comportamientos dañinos en los casos
de prueba. Por último, debe realizar una comprobación manual de los resúmenes
generados para asegurarse de que estén listos para usarse.
Para obtener más información, vea Equipos de alerta para modelos de lenguaje con
modelos de lenguaje .
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otro colaborador:
Pasos siguientes
Más información sobre Azure OpenAI
Artículo de referencia de ROUGE
Módulo de entrenamiento: Introducción a Azure OpenAI Service
Ruta de aprendizaje: Desarrollo de soluciones de IA con Azure OpenAI
Recursos relacionados
Resumen de documentos basados en consultas
Elección de una tecnología de servicios cognitivos de Microsoft
Tecnología de procesamiento de lenguaje natural
Operaciones de aprendizaje automático
(MLOps) v2
Artículo • 13/09/2023
Las arquitecturas son el producto del proyecto MLOps v2. Incorporan los
procedimientos recomendados que los arquitectos de soluciones han detectado
durante la creación de varias soluciones de aprendizaje automático. El resultado se
puede implementar, es repetible y fácil de mantener, como se describe aquí.
Architecture
El patrón arquitectónico de MLOps v2 se compone de cuatro elementos modulares
principales que representan estas fases del ciclo de vida de MLOps:
Patrimonio de datos
Administración y configuración
Desarrollo de modelos (bucle interno)
Implementación de modelos (bucle externo)
Estos elementos, las relaciones entre ellos y los roles a los que normalmente se asocian
son comunes para todas las arquitecturas de escenarios de MLOps v2. Puede haber
variaciones en los detalles de cada uno, en función del escenario.
Arquitecturas actuales
Las arquitecturas que se tratan actualmente en MLOps v2 y que se describen en este
artículo son las siguientes:
2. Administración y configuración
Entre los roles asociados a esta fase se incluyen científicos de datos e ingenieros
de aprendizaje automático.
Los roles asociados a esta fase suelen ser ingenieros de aprendizaje automático.
7. Implementación en producción
8. Supervisión
En función de los criterios para los aspectos de modelo y datos relacionados, como
los umbrales de métricas o las programaciones, los desencadenadores
automatizados y las notificaciones pueden implementar las acciones adecuadas
que se deben realizar. Esto puede programar de manera periódica el
reentrenamiento automatizado del modelo sobre los datos de producción más
recientes y un bucle invertido en el almacenamiento provisional y las pruebas para
la evaluación de preproducción. O bien, se puede deber a desencadenadores en
problemas del modelo o los datos que necesitan un bucle invertido en la fase de
desarrollo del modelo en la que los científicos de datos pueden investigar y
desarrollar potencialmente un modelo nuevo.
1. Patrimonio de datos
2. Administración y configuración
7. Implementación en producción
8. Supervisión
1. Patrimonio de datos
7. Implementación en producción
8. Supervisión
Componentes
Machine Learning : un servicio en la nube para entrenar, puntuar, implementar y
administrar modelos de Machine Learning a gran escala.
Azure Pipelines : este sistema de compilación y prueba se basa en Azure DevOps
y se usa para las canalizaciones de compilación y versión. Azure Pipelines divide
estas canalizaciones en pasos lógicos denominados tareas.
GitHub : una plataforma de hospedaje de código para el control de versiones, la
colaboración y los flujos de trabajo de CI/CD.
Azure Arc : una plataforma para administrar recursos locales y de Azure mediante
Azure Resource Manager. Los recursos pueden incluir máquinas virtuales, clústeres
de Kubernetes y bases de datos.
Kubernetes : un sistema de código abierto para automatizar la implementación,
el escalado y la administración de aplicaciones en contenedores.
Azure Data Lake : un sistema de archivos compatible con Hadoop. Tiene un
espacio de nombres jerárquico integrado y la escala y economía masivas de Blob
Storage.
Azure Synapse Analytics : servicio de análisis ilimitado que combina la
integración de datos, el almacenamiento de datos empresariales y el análisis de
macrodatos.
Azure Event Hubs . Un servicio que ingiere flujos de datos generados por las
aplicaciones cliente. Después, ingiere y almacena los datos de streaming, al tiempo
que conservan la secuencia de los eventos recibidos. Los consumidores pueden
conectarse a los puntos de conexión del centro para recuperar mensajes para su
procesamiento. Aquí se saca provecho de la integración con Data Lake Storage.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
¿Qué es Azure Pipelines?
Introducción a Azure Arc
¿Qué es Azure Machine Learning?
Datos en Azure Machine Learning
Acelerador de soluciones de Azure MLOps (v2)
Operaciones de aprendizaje automático de un extremo a otro (MLOps) con Azure
Machine Learning
Introducción a Azure Data Lake Storage Gen2
Documentación de Azure DevOps
Documentación de GitHub
Documentación de Azure Synapse Analytics
Documentación de Azure Event Hubs
Recursos relacionados
Elección de una tecnología de servicios cognitivos de Microsoft
Tecnología de procesamiento de lenguaje natural
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Funcionamiento de Azure Machine Learning: recursos (v2)
¿Qué son las canalizaciones de Azure Machine Learning?
Marco de las operaciones de Machine Learning (MLOps) para escalar el ciclo de
vida de aprendizaje automático con Azure Machine Learning
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
MLOps para modelos de Python
con Azure Machine Learning
Azure Blob Storage Azure Container Registry Azure DevOps Azure Machine Learning Azure Pipelines
Architecture
Azure Machine Learning es un servicio en la nube que se usa para entrenar, puntuar,
implementar y administrar modelos de aprendizaje automático a gran escala. Esta
arquitectura usa el SDK de Python de Azure Machine Learning para crear un área de
trabajo, los recursos de proceso, la canalización de aprendizaje automático y la imagen
de puntuación. El área de trabajo de Azure Machine Learning proporcionan el espacio
necesario para experimentar, entrenar e implementar los modelos de aprendiaje
automático.
Azure Blob Storage . Los contenedores de blobs se utilizan para almacenar los registros
del servicio de puntuación. En este caso, se recopilan tanto los datos de entrada como la
predicción del modelo. Después de cierta transformación, estos registros se pueden
usar para el reentrenamiento de modelos.
Azure Kubernetes Service . Una vez que la imagen del servicio web de puntuación se
prueba exhaustivamente en el entorno de control de calidad, se implementa en el
entorno de producción en un clúster de Kubernetes administrado.
Azure Application Insights . Este servicio de supervisión se usa para detectar anomalías
en el rendimiento.
Canalización de MLOps
Esta solución muestra una automatización completa, de varias fases, de un proyecto de
inteligencia artificial, mediante herramientas con las que los ingenieros de software ya
están familiarizados. El problema del aprendizaje automático es simple, centrarse en la
canalización de DevOps. La solución usa el conjunto de datos sobre diabetes de scikit-
learn y crea un modelo de regresión lineal de cresta para predecir la probabilidad de
diabetes.
Canalización de compilación
La canalización de CI se desencadena cada vez que se sincroniza el código. Publica una
canalización de Azure Machine Learning actualizada después de compilar el código y
ejecutar un conjunto de pruebas. La canalización de compilación consta de las
siguientes tareas:
Calidad del código. Estas pruebas garantizan que el código se ajusta a los
estándares del equipo.
Prueba unitaria. Estás pruebas garantizan que el código funciona, tiene una
cobertura de código adecuada y es estable.
Prueba de datos. Estás pruebas verifican que los ejemplos de datos se ajustan al
esquema y a la distribución esperados. Personalice esta prueba para otros casos de
uso y ejecútela como una canalización de validez de los datos independiente que
se desencadena cuando llegan datos nuevos. Por ejemplo, mueva la tarea de
prueba de los datos a una canalización de ingesta de datos para poder probarla
antes.
7 Nota
Cree el área de trabajo que hospeda todos los recursos relacionados con Azure
Machine Learning.
Cree los recursos de proceso que ejecutan el trabajo de entrenamiento.
Cree la canalización de aprendizaje automático con el script de entrenamiento
actualizado.
Publique la canalización de aprendizaje automático como si fuera un punto de
conexión de REST para organizar el flujo de trabajo de entrenamiento. En la
siguiente sección se describe este paso.
Canalización de reentrenamiento
La canalización de aprendizaje automático organiza el proceso de reentrenamiento del
modelo de una forma asincrónica. El reentrenamiento se puede desencadenar según
una programación o cuando haya nuevos datos disponibles mediante la llamada al
punto de conexión REST de la canalización publicada del paso anterior.
Canalización de versión
Esta canalización muestra cómo operacionalizar la imagen de puntuación y
promocionarla de forma segura en diferentes entornos. Esta canalización se subdivide
en dos entornos, control de calidad y producción:
Prueba de servicio web. Una sencilla prueba de la API garantiza que la imagen se
ha implementado correctamente.
Entorno de producción
Prueba de servicio web. Una sencilla prueba de la API garantiza que la imagen se
ha implementado correctamente.
Consideraciones
Estas consideraciones implementan los pilares del marco de buena arquitectura de
Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad
de una carga de trabajo. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Escalabilidad
Las canalizaciones de compilación de Azure DevOps se pueden escalar para cualquier
aplicación, sea cual sea su tamaño. Las canalizaciones de compilación tienen un tiempo
de expiración máximo que varía en función del agente en que se ejecutan. Las
compilaciones se pueden ejecutar de forma indefinida en agentes autohospedados
(agentes privados). En el caso de los agentes hospedados en Microsoft para un proyecto
público, las compilaciones se pueden ejecutar durante seis horas. En el caso de los
proyectos privados, el límite es 30 minutos.
YAML
jobs:
- job: <job_name>
timeoutInMinutes: 0
Administración
Trabajo de supervisión de reentrenamiento. Las canalizaciones de aprendizaje
automático organizan el reentrenamiento en un clúster de máquinas y
proporcionan una forma sencilla de supervisarlas. Use la interfaz de usuario de
Azure Machine Learning y mire en la sección de canalizaciones de los registros.
Como alternativa, estos registros también se escriben en un blob y se pueden leer
desde allí, así como usar herramientas como Azure Storage Explorer .
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
Azure DevOps es gratis para proyectos de código abierto y proyectos pequeños, con
un máximo de cinco usuarios. Para equipos mayores, compre un plan basado en el
número de usuarios.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Quiere saber más? Consulte la ruta de aprendizaje relacionada Iniciar el ciclo de
vida del aprendizaje automático con MLOps.
Protección de soluciones de
MLOps con seguridad de red de
Azure
Azure DevOps Azure DNS Azure Machine Learning Azure Private Link Azure Virtual Network
Por último, este artículo describe los costos de usar los servicios de seguridad de red.
Architecture
Azure Blob Azure Machine Azure Container Azure Key
Storage Learning workspace Registry Vault User
Azure VPN
Gateway
Self-hosted
Compute Compute Azure Pipelines
agent
instance cluster
Virtual network
peering
BASTION VNET
10.2.0.0/16
Azure Kubernetes cluster
AML VNET
10.1.0.0/16
Resource group
Microsoft
Azure
Flujo de datos
El diagrama de arquitectura muestra una solución de MLOps de muestra.
La red virtual llamada AML VNET ayuda a proteger área de trabajo de Azure
Machine Learning y sus recursos asociados.
En este escenario de ejemplo también se usan los siguientes servicios para ayudar a
proteger la solución de MLOps:
Al implementar una solución de MLOps, es posible que desee ayudar a proteger estos
recursos:
Canalizaciones de DevOps
Datos de entrenamiento de aprendizaje automático
Canalizaciones de Machine Learning
Modelos de Machine Learning
Autenticación y autorización
Use entidades de servicio o identidades administradas en lugar de la
autenticación interactiva.
Use el control de acceso basado en roles para definir el ámbito del acceso de un
usuario a los recursos.
Cifrado de datos
Cifre los datos de entrenamiento en tránsito y en reposo mediante claves de
acceso administradas por la plataforma o administradas por el cliente.
Directiva y supervisión
Use Azure Policy y Microsoft Defender for Cloud para aplicar directivas.
Use Azure Monitor para recopilar y agregar datos (como métricas y registros)
de varios orígenes en una plataforma de datos común para el análisis, la
visualización y las alertas.
El área de trabajo de Azure Machine Learning es el recurso de nivel superior para Azure
Machine Learning y el componente principal de una solución de MLOps. El área de
trabajo proporciona un lugar centralizado para trabajar con todos los artefactos que
cree al usar Azure Machine Learning.
Al crear una nueva área de trabajo, se crean automáticamente los recursos siguientes de
Azure que el área de trabajo utiliza:
Las soluciones de MLOps para estos escenarios y otros pueden usar áreas de trabajo de
Azure Machine Learning, Azure Blob Storage, Azure Kubernetes Service, Container
Registry y otros servicios de Azure.
Puede usar todo o parte de este ejemplo para cualquier escenario similar que tenga un
entorno de MLOps que se implemente en Azure y use las funcionalidades de seguridad
de Azure para ayudara a proteger los recursos pertinentes. El cliente original de esta
solución está en el sector de las telecomunicaciones.
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework,
que es un conjunto de principios rectores que mejoran la calidad de una carga de
trabajo cuando se aplica. Para más información, consulte Marco de buena arquitectura
de Microsoft Azure.
Seguridad
La seguridad proporciona más garantías contra ataques deliberados y el abuso de datos
y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
La configuración de Virtual Network es gratuita, pero hay cargos por los demás servicios
que pueda requerir su escenario, como los vínculos privados, las zonas DNS y el
emparejamiento de red virtual. En la tabla siguiente se describen los cargos por esos
servicios y otros que podrían ser necesarios.
Private Link Pague solo por horas de recursos de punto de conexión privado
y los datos que se procesan a través del punto de conexión
privado.
transferencia de datos.
Excelencia operativa
La excelencia operativa abarca los procesos de las operaciones que implementan una
aplicación y la mantienen en ejecución en producción. Para más información, consulte
Introducción al pilar de excelencia operativa.
Virtual Network
El primer paso para ayudar a proteger el entorno de MLOps es ayudar a proteger el área
de trabajo de Azure Machine Learning y sus recursos asociados. Un método eficaz de
protección consiste en utilizar Virtual Network. Virtual Network es el bloque de creación
básico de una red privada en Azure. Virtual Network permite que muchos tipos de
recursos de Azure se comuniquen entre sí, con Internet y con redes del entorno local de
forma más segura.
Colocar el área de trabajo de Azure Machine Learning y sus recursos asociados en una
red virtual garantiza que los componentes se puedan comunicar entre sí sin exponerlos
a la red pública de Internet. Al hacerlo, se reduce su superficie expuesta a ataques y se
ayuda a evitar la filtración de datos.
Terraform
resource "azurerm_machine_learning_compute_cluster" "compute_cluster" {
name = "my_compute_cluster"
location = "eastasia"
vm_priority = "LowPriority"
vm_size = "Standard_NC6s_v3"
machine_learning_workspace_id =
azurerm_machine_learning_workspace.my_workspace.id
subnet_resource_id = azurerm_subnet.compute_subnet.id
ssh_public_access_enabled = false
scale_settings {
min_node_count = 0
max_node_count = 3
scale_down_nodes_after_idle_duration = "PT30S"
}
identity {
type = "SystemAssigned"
}
}
En este escenario de ejemplo, hay cuatro puntos de conexión privados que están
vinculados a opciones de PaaS de Azure y que se administran mediante una subred de
la red virtual AML VNET, como se muestra en el diagrama de arquitectura. Por lo tanto,
estos servicios solo son accesibles para los recursos de la misma red virtual, la red virtual
de AML. Estos servicios son:
Terraform
resource "azurerm_machine_learning_workspace" "aml_ws" {
name = "my_aml_workspace"
friendly_name = "my_aml_workspace"
location = "eastasia"
resource_group_name = "my_resource_group"
application_insights_id = azurerm_application_insights.my_ai.id
key_vault_id = azurerm_key_vault.my_kv.id
storage_account_id = azurerm_storage_account.my_sa.id
container_registry_id = azurerm_container_registry.my_acr_aml.id
identity {
type = "SystemAssigned"
}
}
resource "azurerm_private_dns_zone_virtual_network_link"
"ws_zone_notebooks_link" {
name = "ws_zone_link_notebooks"
resource_group_name = "my_resource_group"
private_dns_zone_name = azurerm_private_dns_zone.ws_zone_notebooks.name
virtual_network_id = azurerm_virtual_network.aml_vnet.id
}
private_service_connection {
name = "my_aml_ws_psc"
private_connection_resource_id =
azurerm_machine_learning_workspace.aml_ws.id
subresource_names = ["amlworkspace"]
is_manual_connection = false
}
private_dns_zone_group {
name = "private-dns-zone-group-ws"
private_dns_zone_ids = [azurerm_private_dns_zone.ws_zone_api.id,
azurerm_private_dns_zone.ws_zone_notebooks.id]
}
Terraform
Esta solución de ejemplo usa puntos de conexión privados para el área de trabajo de
Azure Machine Learning y para sus recursos asociados, como Azure Storage, Azure Key
Vault o Container Registry. Por lo tanto, debe definir la configuración de DNS para
resolver las direcciones IP de los puntos de conexión privados del nombre de dominio
completo (FQDN) de la cadena de conexión.
Puede vincular una zona DNS privada a una red virtual para resolver dominios
específicos.
privatelink.api.azureml.ms
privatelink.notebooks.azure.net
Terraform
7 Nota
Terraform
resource "azurerm_linux_virtual_machine" "agent" {
...
}
settings = <<SETTINGS
{
"script":
"${base64encode(templatefile("../scripts/terraform/agent_init.sh", {
AGENT_USERNAME = "${var.AGENT_USERNAME}",
ADO_PAT = "${var.ADO_PAT}",
ADO_ORG_SERVICE_URL = "${var.ADO_ORG_SERVICE_URL}",
AGENT_POOL = "${var.AGENT_POOL}"
}))}"
}
SETTINGS
}
Bash
#!/bin/sh
# Install other required libraries
...
# Unattended installation
sudo runuser -l ${AGENT_USERNAME} -c '/myagent/config.sh --unattended --url
${ADO_ORG_SERVICE_URL} --auth pat --token ${ADO_PAT} --pool ${AGENT_POOL}'
cd /myagent
#Configure as a service
sudo ./svc.sh install ${AGENT_USERNAME}
#Start service
sudo ./svc.sh start
Terraform
private_service_connection {
name = "acr_psc"
private_connection_resource_id = azurerm_container_registry.acr.id
subresource_names = ["registry"]
is_manual_connection = false
}
private_dns_zone_group {
name = "private-dns-zone-group-app-acr"
private_dns_zone_ids = [azurerm_private_dns_zone.acr_zone.id]
}
}
Este escenario de ejemplo también garantiza que el registro de contenedor tenga un rol
de colaborador para la identidad administrada asignada por el sistema del área de
trabajo de Azure Machine Learning.
Tenga en cuenta también que, para el clúster o la instancia de proceso, ahora es posible
quitar la dirección IP pública, lo que ayuda a proporcionar una mejor protección para los
recursos de proceso de la solución de MLOps. Para más información, consulte No hay
ninguna dirección IP pública para las instancias de proceso.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Otros colaboradores:
Pasos siguientes
Terraform en la documentación de Azure
Ejemplo de Terraform de Azure Machine Learning
Acelerador de soluciones de Azure MLOps (v2)
Precios de Azure Virtual Network
Precios de Azure DevOps
Recursos relacionados
Marco de las operaciones de Machine Learning (MLOps) para escalar el ciclo de
vida de aprendizaje automático con Azure Machine Learning
Protección de un área de trabajo de Azure Machine Learning con redes virtuales
Agentes de Azure Pipelines
Modelo de madurez de operaciones
de Machine Learning
Azure Machine Learning
El propósito de este modelo de madurez es ayudar a aclarar las prácticas y los principios de
las operaciones de Machine Learning (MLOps). El modelo de madurez muestra la mejora
continua en la creación y el funcionamiento de un entorno de aplicación de Machine
Learning de nivel de producción. Puede usarlo como una métrica para establecer los
requisitos progresivos necesarios para medir la madurez de un entorno de producción de
aprendizaje automático y sus procesos asociados.
Modelo de madurez
El modelo de madurez de MLOps ayuda a aclarar las prácticas y los principios de las
operaciones de desarrollo (DevOps) necesarios para ejecutar un entorno de MLOps correcto.
Está diseñado para identificar brechas en el intento de implementación de un entorno de
este tipo por parte de una organización existente. También es una manera de mostrar cómo
aumentar la capacidad de MLOps en incrementos en lugar de abrumarle con los requisitos
de un entorno totalmente maduro. Úselo como una guía para:
Al igual que con la mayoría de los modelos de madurez, el modelo de madurez de MLOps
realiza la evaluación cualitativa de personas o cultura, procesos o estructuras y objetos o
tecnología. A medida que el nivel de madurez aumenta, crece la probabilidad de que
incidentes o errores den lugar a mejoras en la calidad de los procesos de desarrollo y
producción.
entrenamiento del
modelo
Las tablas siguientes identifican las características detalladas de ese nivel de madurez del
proceso. El modelo continuará evolucionando. Esta versión se actualizó por última vez en
junio de 2020.
Pasos siguientes
Ruta de aprendizaje: Introducción a las operaciones de aprendizaje automático (MLOps)
Módulo de entrenamiento: Inicio del ciclo de vida de aprendizaje automático con
MLOps
MLOps: Administración, implementación y supervisión de modelos con
Azure Machine Learning.
¿Qué son las canalizaciones de Azure Machine Learning?
Recursos relacionados
Marco de las operaciones de Machine Learning (MLOps) para escalar el ciclo de vida de
aprendizaje automático con Azure Machine Learning
Orquestación de MLOps mediante Azure Databricks
Protección de soluciones de MLOps con seguridad de red de Azure
MLOps para modelos de Python con Azure Machine Learning
Marco de las operaciones de
Machine Learning (MLOps) para
escalar el ciclo de vida de
aprendizaje automático con Azure
Machine Learning
Azure Data Factory Azure Machine Learning
Este proyecto cliente ayudó a una empresa alimentaria Fortune 500 a mejorar su previsión
de la demanda. La empresa envía productos directamente a varios puntos de venta al por
menor. La mejora les ayudó a optimizar las existencias de sus productos en diferentes
almacenes de varias regiones de EE. UU. Para lograrlo, el equipo de ingeniería de software
comercial (CSE) de Microsoft trabajó con los científicos de datos del cliente en un estudio
piloto para desarrollar modelos de Machine Learning personalizados para las regiones
seleccionadas. Los modelos tienen en cuenta:
Una parte importante del proyecto era descubrir cómo escalar verticalmente el flujo de
trabajo de ciencia de datos del estudio piloto a un nivel de producción. Este flujo de trabajo
de nivel de producción requería al equipo de CSE:
El flujo de trabajo de ciencia de datos típico de hoy en día se aproxima más a un entorno
de laboratorio único que a un flujo de trabajo de producción. Un entorno para los
científicos de datos debe ser adecuado para que puedan:
Preparar los datos.
Experimentar con diferentes modelos.
Ajustar los hiperparámetros.
Crear un ciclo de compilación, prueba, evaluación y perfeccionamiento.
La mayoría de las herramientas que se usan para estas tareas tienen fines específicos y no
son adecuadas para la automatización. En una operación de aprendizaje automático de
nivel de producción, se debe tener más en cuenta la administración del ciclo de vida de las
aplicaciones y DevOps.
Comprender las prácticas de MLOps ayuda a las organizaciones a garantizar que los
modelos de Machine Learning generados por el sistema son modelos con calidad de
producción que mejoran el rendimiento empresarial. Al implementar MLOps, la
organización ya no tiene que centrarse tanto tiempo en los mínimos detalles relacionados
con la infraestructura y el trabajo de ingeniería necesarios para desarrollar y ejecutar
modelos de Machine Learning para las operaciones de nivel de producción. La
implementación de MLOps también ayuda a las comunidades de ciencia de datos e
ingeniería de software a aprender a trabajar juntos para ofrecer un sistema listo para
producción.
El equipo de CSE usaba este proyecto para abordar las necesidades de la comunidad de
aprendizaje automático mediante la gestión de problemas como el desarrollo de un
modelo de madurez de MLOps. Estos esfuerzos estaban dirigidos a mejorar la adopción de
MLOps al comprender los desafíos típicos de los actores clave en el proceso de MLOps.
Escenario de involucración
El cliente entrega los productos directamente a tiendas menoristas siguiendo una
programación regular. Cada tienda minorista varía en los patrones de uso de los productos,
de modo que el inventario debe variar en cada entrega semanal. Maximizar las ventas y
minimizar las devoluciones de productos y las oportunidades de venta perdidas son los
objetivos de las metodologías de previsión de la demanda que el cliente emplea. Este
proyecto se centra en el uso del aprendizaje automático para mejorar las previsiones.
En la fase 1 del estudio piloto se determinó que un modelo dedicado a las tiendas
minoristas de una región podía usar el historial de ventas local, los datos demográficos
locales, el tiempo y los eventos especiales para optimizar la previsión de los comercios de la
región. Cuatro modelos de previsión de aprendizaje automático de conjunto sirvieron a las
tiendas de una sola región. Los modelos procesaron los datos en lotes semanales. Además,
el equipo desarrolló dos modelos de base de referencia con datos históricos para la
comparación.
norte de por un
Texas) modelo de
regresión
lineal
LASSO
(Least
Absolute
Shrinkage
and
Selection
Operator) y
una red
neuronal
con
inserciones
de
categorías.
Productos Tanto la
de alta baja como
rotación la alta
rotación
tienen un
conjunto
formado
por un
modelo de
regresión
lineal
LASSO y
una red
neuronal
con
inserciones
de
categorías.
Un N/D Media
modelo histórica
de
conjunto
Productos Tanto la
de alta baja como
rotación la alta
rotación
tienen un
conjunto
formado
por un
modelo de
regresión
lineal
LASSO y
una red
neuronal
con
inserciones
de
categorías.
Un N/D Media
modelo histórica
de
conjunto
Igual que
el caso
anterior
para las
otras
13 regiones
geográficas
Entorno Región del Formato Modelos Subdivisión Descripción
mercado del modelo del modelo
Igual que
el anterior
para el
entorno de
producción
El proceso de MLOps proporcionó un marco para el sistema de escalado vertical que dirigió
todo el ciclo de vida de los modelos de Machine Learning. El marco incluye desarrollo,
pruebas, implementación, operación y supervisión. Satisface las necesidades de un proceso
clásico de CI/CD. Sin embargo, debido a su inmadurez relativa en comparación con
DevOps, resultó evidente que había brechas en la guía de MLOps existente. El equipo del
proyecto trabajó para reparar algunas de esas brechas. Querían proporcionar un modelo de
proceso funcional que garantizara la viabilidad de la solución de aprendizaje automático
escalada.
El proceso de MLOps que se desarrolló a partir de este proyecto realizó un importante paso
real para trasladar MLOps a un nivel mayor de madurez y viabilidad. El nuevo proceso es
aplicable directamente a otros proyectos de aprendizaje automático. El equipo de CSE usó
lo que aprendió para crear un borrador de un modelo de madurez de MLOps que
cualquiera pueda aplicar a otros proyectos de aprendizaje automático.
Escenario técnico
MLOps, también conocido como DevOps para el aprendizaje automático, es un término
general que abarca filosofías, procedimiento y tecnologías relacionadas con la
implementación de ciclos de vida de aprendizaje automático en un entorno de producción.
Sigue siendo un concepto relativamente nuevo. Ha habido muchos intentos de definir
MLOps y muchas personas han cuestionado si MLOps puede subsumir todo, desde cómo
los científicos de datos preparan los datos a la manera en que, en última instancia,
entregan, supervisan y evalúan los resultados del aprendizaje automático. Mientras que
DevOps ha tenido años para desarrollar un conjunto de prácticas fundamentales, MLOps es
un enfoque muy nuevo. A medida que evoluciona, detectamos los desafíos de reunir dos
disciplinas que suelen funcionar con diferentes conjuntos de aptitudes y prioridades:
ingeniería de software/operaciones y ciencia de datos.
7 Nota
Entrenamiento del modelo cada vez que cambia el código o los datos, o el modelo
queda obsoleto.
Requisitos de MLOps
El equipo tenía que cumplir varios requisitos clave para escalar verticalmente la solución
desde la fase 1 del estudio piloto, en la que solo se desarrollaron algunos modelos para
una sola región de ventas. En la fase 2 se implementaron modelos de aprendizaje
automático personalizados para varias regiones. La implementación incluyó:
Procesamiento por lotes semanal para tiendas grandes y pequeñas en cada región
para volver a entrenar los modelos con nuevos conjuntos de datos.
Un modelo único que representaba cada región para tiendas grandes y pequeñas
basado en el historial de las tiendas, los datos demográficos y otras variables clave. El
modelo tenía que procesar todo el conjunto de datos para minimizar el riesgo de
error de procesamiento.
La capacidad de escalado vertical inicial para admitir 14 regiones de ventas con planes
de escalado vertical adicional.
Planes de modelos adicionales para la previsión a largo plazo para regiones y otros
clústeres de tiendas.
Aquí, la implementación del modelo puede representar cualquier uso operativo del modelo
de Machine Learning validado. En comparación con DevOps, MLOps presenta el desafío
adicional de cómo integrar este ciclo de vida de aprendizaje automático en el proceso
típico de CI/CD.
Este ciclo de vida de ciencia de datos no sigue el típico ciclo de vida de desarrollo de
software. Incluye el uso de Azure Machine Learning para entrenar y puntuar los modelos,
por lo que estos pasos tenían que incluirse en la automatización de CI/CD.
Los científicos de datos entrenan modelos de Machine Learning cuando el equipo publica
código nuevo y cuando hay nuevos datos disponibles. El entrenamiento suele realiza con
frecuencia semanal. Por lo tanto, cada ejecución de procesamiento implica una gran
cantidad de datos. Dado que el equipo recopila datos de muchos orígenes en formatos
diferentes, requiere acondicionamiento para configurarlos en un formato consumible de
modo que los científicos de datos puedan procesarlos. El acondicionamiento de los datos
requiere un esfuerzo manual considerable y el equipo de CSE lo identificó como candidato
principal para la automatización.
El modelo piloto sirvió de base para la solución escalada vertical, pero el equipo de CSE
sabía que el modelo necesitaba refinamiento continuo para mejorar su rendimiento.
Solución de MLOps
A medida que los conceptos de MLOps maduran, los equipos suelen detectar desafíos para
reunir las materias de ciencia de datos y DevOps. La razón es que los principales
participantes de las disciplinas, ingenieros de software y científicos de datos, funcionan con
diferentes conjuntos de aptitudes y prioridades.
Pero hay similitudes de partida. MLOps, al igual que DevOps, es un proceso de desarrollo
implementado por una cadena de herramientas. La cadena de herramientas de MLOps
incluye elementos tales como:
Control de versiones
Análisis de código
Automatización de compilaciones
Integración continua
Marcos de pruebas y automatización
Directivas de cumplimiento integradas en canalizaciones de CI/CD
Automatización de la implementación
Supervisión
Recuperación ante desastres y alta disponibilidad
Administración de paquetes y contenedores
Desafíos de MLOps
Nivel Descripción
0 Sin operaciones
2 Entrenamiento automatizado
Para la versión actual del modelo de madurez de MLOps, consulte el artículo Modelo de
madurez de MLOps.
Acondicionamiento de datos
Entrenamiento del modelo
Pruebas y evaluación de modelos
Definición y canalización de compilación
Canalización de versión
Implementación
Puntuaciones
La fase del experimento es exclusiva del ciclo de vida de la ciencia de datos, que refleja
cómo los científicos han realizado tradicionalmente su trabajo. Difiere de la forma en que
los desarrolladores de código realizan el suyo. En el siguiente diagrama se muestra este
ciclo de vida más detalladamente.
El equipo de CSE refinó el proceso de MLOps para adaptarlo a las necesidades específicas
del cliente. Lo más notable fue la necesidad de procesamiento por lotes en lugar del
procesamiento en tiempo real. A medida que el equipo desarrolló el sistema de escalado
vertical, identificó y resolvió algunas deficiencias. Las más importantes derivaron en el
desarrollo de un puente entre Azure Data Factory y Azure Machine Learning que el equipo
implementó como un conector integrado en Azure Data Factory. Crearon este conjunto de
componentes para facilitar el desencadenamiento y la supervisión de estado necesarios
para que la automatización del proceso funcionara.
Canalización de CD de puntuación
La canalización de CD de puntuación es aplicable para el escenario de inferencia de lotes,
donde el mismo orquestador de modelos que se usa para la validación del modelo
desencadena la canalización de puntuación publicada.
El equipo tenía que abordar tres conclusiones clave de los estudios de roles y funciones:
Arquitectura lógica
Los datos proceden de numerosos orígenes en distintos formatos, por lo que están
acondicionados para su inserción en el lago de datos. El acondicionamiento se realiza
mediante microservicios que funcionan como Azure Functions. Los clientes personalizan los
microservicios para que se ajusten a los orígenes de datos y los transforman a un formato
CSV normalizado que las canalizaciones de entrenamiento y puntuación consumen.
Desencadena una instancia de Azure Functions para iniciar la ingesta de datos y una
ejecución de la canalización de Azure Machine Learning.
Inicia una instancia de Durable Functions para sondear la canalización de Azure
Machine Learning para su finalización.
Los paneles personalizados de Power BI muestran los resultados. Otros paneles de Azure,
conectados a SQL Azure, Azure Monitor y Application Insights a través del SDK de Python
para OpenCensus, realizan un seguimiento de los recursos de Azure. Estos paneles
proporcionan información sobre el estado del sistema de aprendizaje automático. También
proporcionan los datos que el cliente usa para la previsión de pedidos de productos.
Orquestación de modelos
La orquestación de modelos sigue estos pasos:
1. Cuando se envía una solicitud de incorporación de cambios, DevOps desencadena
una canalización de validación de código.
2. La canalización ejecuta pruebas unitarias, de calidad del código y de validación del
modelo.
3. Cuando se combinan en la rama principal, se ejecutan las mismas pruebas de
validación del código y DevOps empaqueta los artefactos.
4. La recopilación de artefactos por parte de DevOps desencadena Azure Machine
Learning para lo siguiente:
a. Validación de datos.
b. Validación del entrenamiento.
c. Validación de la puntuación.
5. Una vez completada la validación, se ejecuta la canalización de puntuación final.
6. El cambio de datos y el envío de una nueva solicitud de incorporación de cambios
desencadena de nuevo la canalización de validación, seguida de la canalización de
puntuación final.
Habilitación de la experimentación
Como se mencionó, el ciclo de vida de aprendizaje automático de la ciencia de datos
tradicional no es compatible con el proceso de MLOps sin modificaciones. Utiliza diferentes
tipos de herramientas manuales y experimentación, validación, empaquetado y entrega de
modelos que no se pueden escalar fácilmente para un proceso de CI/CD efectivo. MLOps
exige un alto nivel de automatización de procesos. Tanto si se desarrolla un nuevo modelo
de Machine Learning como si se modifica uno anterior, es necesario automatizar el ciclo de
vida del modelo de Machine Learning. En el proyecto de la fase 2, el equipo usó Azure
DevOps para orquestar y volver a publicar las canalizaciones de Azure Machine Learning
para tareas de entrenamiento. La rama principal de larga duración hace pruebas básicas de
los modelos y versiones estables insertadas mediante la rama de versión de larga duración.
El control de código fuente se convierte en una parte importante de este proceso. Git es el
sistema de control de versiones que se usa para realizar el seguimiento del código del
modelo y el cuaderno. También admite la automatización de procesos. El flujo de trabajo
básico implementado para el control de código fuente aplica los principios siguientes:
En el proyecto, los científicos de datos acondicionaron los siguientes datos para la entrada
en el modelo:
Aunque no la implementó, el equipo exploró una opción para hacer avanzar el proceso
hasta el punto en que pudiera tener muchos modelos en tiempo real ejecutándose en
producción para atender una solicitud determinada. Esta opción puede dar cabida al uso de
modelos de conjunto en pruebas A/B y experimentos intercalados.
Interfaces de usuario final
El equipo desarrolló interfaces de usuario final para las operaciones de observabilidad,
supervisión e instrumentación. Como hemos mencionado, los paneles muestran los datos
del modelo de Machine Learning. Estos paneles muestran los datos siguientes en un
formato sencillo:
La aplicación rellena los paneles según la naturaleza de los datos y el modo en que los
procesa y analiza. Por tanto, el equipo debe concebir el diseño exacto de los paneles para
cada caso de uso. A continuación se muestran dos paneles de ejemplo:
Los paneles se diseñaron para proporcionar información fácil de usar para el usuario final
de las predicciones del modelo de Machine Learning.
7 Nota
Los modelos obsoletos son ejecuciones de puntuación en las que los científicos de
datos entrenaron el modelo usado para puntuar más de 60 días desde el momento en
que tuvo lugar la puntuación. La página Puntuación del panel ML Monitor (Monitor
de Machine Learning) muestra esta métrica de mantenimiento.
Componentes
Azure Machine Learning
Proceso de Azure Machine Learning
Canalizaciones de Azure Machine Learning
Registro de modelos de Azure Machine Learning
Azure Blob Storage
Almacén de Azure Data Lake
Azure Pipelines
Azure Data Factory
Azure Functions para Python
Azure Monitor
Registros
Application Insights
Azure SQL Database
Paneles de Azure
Power BI
Consideraciones
Aquí encontrará una lista de las consideraciones que se deben explorar. Se basan en las
lecciones que el equipo de CSE aprendió durante el proyecto.
Consideraciones de proceso
Los clientes deben considerar la posibilidad de usar contenedores para estandarizar
sus entornos de proceso. Casi todos los destinos de proceso de Azure Machine
Learning admiten el uso de Docker . Tener un contenedor que controle las
dependencias reduce considerablemente la fricción, especialmente si el equipo usa
muchos destinos de proceso.
Pasos siguientes
Más información acerca de MLOps
MLOps en Azure
Visualizaciones de Azure Monitor
Ciclo de vida de Machine Learning
Extensión de Azure DevOps Machine Learning
CLI de Azure Machine Learning
Desencadenar aplicaciones, procesos o flujos de trabajo de CI/CD basados en eventos
de Azure Machine Learning
Configuración del entrenamiento y la implementación de modelos con Azure DevOps
Configuración de MLOps con Azure Machine Learning y Databricks
Recursos relacionados
Modelo de madurez de MLOps
Orquestación de MLOps en Azure Databricks mediante Databricks Notebook
MLOps para modelos de Python con Azure Machine Learning
Ciencia de datos y aprendizaje automático con Azure Databricks
Inteligencia artificial ciudadana con Power Platform
Implementación de procesos de inteligencia artificial y aprendizaje automático en el
entorno local y en el perímetro
¿Qué es el Proceso de ciencia de
datos en equipo (TDSP)?
Azure Machine Learning
Aunque esté usando otro ciclo de vida de ciencia de datos, como CRISP-DM , KDD o
el proceso personalizado de su organización, puede usar también el TDSP basado en
tareas en el contexto de esos ciclos de vida de desarrollo. En un nivel alto, estas distintas
metodologías tienen mucho en común.
Este ciclo de vida se ha diseñado para proyectos de ciencia de datos que se enviarán
como parte de aplicaciones inteligentes. Estas aplicaciones implementan modelos de
aprendizaje o inteligencia artificial de máquina para realizar un análisis predictivo. Los
proyectos de ciencia de datos exploratorios o proyectos de análisis improvisados
también se pueden beneficiar del uso de este proceso. Pero, en estos casos, puede que
algunos de los pasos descritos no sean necesarios.
El ciclo de vida describe las fases principales por las que pasan normalmente los
proyectos, a menudo de forma iterativa:
Esta es una representación visual del ciclo de vida del proceso de ciencia de datos en
equipo.
En el tema Team Data Science Process lifecycle (Ciclo de vida del proceso de ciencia de
datos en equipo) se describen los objetivos, las tareas y los artefactos de
documentación de cada fase del ciclo de vida de TDSP. Estas tareas y artefactos están
asociados con roles de proyecto:
Arquitecto de soluciones
Jefe de proyecto
Ingeniero de datos
Científico de datos
Desarrollador de aplicaciones
Responsable de proyecto
En el siguiente diagrama se proporciona una vista de cuadrícula de las tareas (en azul) y
los artefactos (en verde) asociados con cada fase del ciclo de vida (eje horizontal) de
estos roles (eje vertical).
Pasos siguientes
En el artículo Roles y tareas del proceso de ciencia de datos en equipo se subrayan los
roles y sus tareas asociadas en un equipo de ciencia de datos que se estandariza en este
proceso.
El ciclo de vida del proceso de ciencia
de datos en equipo
Artículo • 11/07/2023
Este ciclo de vida está diseñado para los proyectos de ciencia de datos que se enviarán
como parte de aplicaciones inteligentes. Estas aplicaciones implementan modelos de
aprendizaje o inteligencia artificial de máquina para realizar un análisis predictivo. Los
proyectos de ciencia de datos exploratorios y los proyectos de análisis improvisados
también se pueden beneficiar del uso de este proceso. Pero para esos proyectos,
algunos de los pasos descritos a continuación pueden no ser necesarios.
Pasos siguientes
Para obtener ejemplos de cómo ejecutar pasos en TDSP que usan Azure Machine
Learning, consulte Uso del Proceso de ciencia de los datos en equipo con Azure
Machine Learning.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Recursos relacionados
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Aprendizaje automático a escala
Fase de descripción de negocio del ciclo
de vida del Proceso de ciencia de datos
en equipo
Artículo • 11/07/2023
En este artículo se describen los objetivos, las tareas y los resultados asociados a la fase
de descripción del negocio del Proceso de ciencia de datos en equipo (TDSP). Este
proceso proporciona un ciclo de vida recomendado que puede usar para estructurar los
proyectos de ciencia de datos. El ciclo de vida describe las fases principales por las que
pasan normalmente los proyectos, a menudo de forma iterativa:
Modo de hacerlo
En esta fase se abordan dos tareas principales:
Definición de objetivos: trabaje con el cliente y con otras partes interesadas para
comprender e identificar los problemas de la empresa. Formule preguntas que
definan los objetivos empresariales y a las que puedan aplicarse las técnicas de
ciencia de datos.
Identifique los orígenes de datos: busque los datos pertinentes que lo ayuden a
responder a las preguntas que definen los objetivos del proyecto.
Definición de objetivos
1. Un objetivo fundamental de este paso consiste en identificar las principales
variables empresariales que el análisis deberá predecir. Estas variables se
denominan objetivos del modelo y las métricas asociadas a ellas se utilizan para
determinar el éxito del proyecto. Dos ejemplos de estos destinos son la previsión
de ventas o la probabilidad de que un pedido sea fraudulento.
2. Para definir los objetivos del proyecto, plantee y ajuste preguntas "certeras" que
sean pertinentes, específicas y sin ambigüedad alguna. La ciencia de datos es un
proceso que utiliza nombres y números para responder a estas preguntas. La
ciencia de datos o el aprendizaje automático suelen utilizarse para responder a
cinco tipos de preguntas:
4. Defina las métricas del éxito. Por ejemplo, podría desear una predicción sobre la
renovación de los clientes. Necesita una tasa de precisión de "x%" al final de este
proyecto de tres meses. Con estos datos, puede ofrecer promociones al cliente
para mejorar la fidelización. Las métricas deben cumplir los requisitos SMART:
Specific (específicas)
Measurable (mensurables)
Achievable (alcanzables)
Relevant (pertinentes)
Time-bound (con un límite de tiempo)
Por ejemplo, puede descubrir que los sistemas existentes tienen que recopilar y registrar
tipos de datos adicionales para solucionar el problema y alcanzar los objetivos del
proyecto. En esta situación, puede ser conveniente buscar orígenes de datos externos o
actualizar los sistemas para recopilar datos nuevos.
Artifacts
Estos son los resultados de esta fase:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son los vínculos a cada uno de los pasos del ciclo de vida del Proceso de ciencia
de datos en equipo:
En este artículo se describen los objetivos, las tareas y los resultados asociados a la fase
de adquisición y comprensión de los datos del Proceso de ciencia de datos en equipo
(TDSP). Este proceso proporciona un ciclo de vida recomendado que puede usar para
estructurar los proyectos de ciencia de datos. El ciclo de vida describe las fases
principales por las que pasan normalmente los proyectos, a menudo de forma iterativa:
Modo de hacerlo
En esta fase se abordan tres tareas principales:
Una vez que esté satisfecho con la calidad de los datos limpios, el siguiente paso es
comprender mejor los patrones que son inherentes a los datos. Este análisis de datos
ayuda a elegir y desarrollar un modelo de predicción adecuado para el destino. Busque
pruebas que describan la conexión de los datos con el destino. A continuación,
determine si hay suficientes datos para avanzar con los siguientes pasos de modelado.
Como hemos indicado, normalmente, se trata de un proceso iterativo. Es posible que
deba buscar otros orígenes de datos con información más precisa o pertinente con el
fin de alimentar el conjunto de datos inicialmente identificado en la fase anterior.
Basada en lotes
Streaming o en tiempo real
Híbrido
Artefactos
Estos son los resultados de esta fase:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son los vínculos a cada uno de los pasos del ciclo de vida del Proceso de ciencia
de datos en equipo:
En este artículo se describen los objetivos, las tareas y los resultados asociados a la fase
de modelado del Proceso de ciencia de datos en equipo (TDSP). Este proceso
proporciona un ciclo de vida recomendado que puede usar para estructurar los
proyectos de ciencia de datos. El ciclo de vida describe las fases principales por las que
pasan normalmente los proyectos, a menudo de forma iterativa:
Objetivos
Determinar las características óptimas de los datos para el modelo de aprendizaje
automático.
Crear un modelo de aprendizaje automático informativo que predice el objetivo
con la máxima precisión.
Crear un modelo de aprendizaje automático que es adecuado para entornos de
producción.
Modo de hacerlo
En esta fase se abordan tres tareas principales:
Ingeniería de características
El diseño de características consiste en incluir, agregar y transformar variables sin
procesar para crear las características que se utilizan en el análisis. Si desea conocer con
detalle los factores en que se basa un modelo, debe entender cómo se relacionan entre
sí las características y cómo deben utilizarlas los algoritmos de aprendizaje automático.
7 Nota
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son los vínculos a cada uno de los pasos del ciclo de vida del Proceso de ciencia
de datos en equipo:
En este artículo se describen los objetivos, las tareas y los resultados asociados a la
implementación del Proceso de ciencia de datos en equipo (TDSP). Este proceso
proporciona un ciclo de vida recomendado que puede usar para estructurar los
proyectos de ciencia de datos. El ciclo de vida describe las fases principales por las que
pasan normalmente los proyectos, a menudo de forma iterativa:
Modo de hacerlo
La tarea principal que se aborda en esta fase es la siguiente:
Uso de modelos
Cuando ya disponga de un conjunto de modelos que funcionan bien, los puede hacer
operativos para que los consuman otras aplicaciones. Dependiendo de los requisitos
empresariales, se realizan predicciones en tiempo real o por lotes. Para implementar
modelos, los expone con una interfaz de API abierta. La interfaz permite que el modelo
se utilice fácilmente por diferentes aplicaciones, como las siguientes:
Artifacts
Un panel de estado que muestra el estado del sistema y métricas clave.
Un informe de modelado final con detalles de implementación.
Un documento de arquitectura de la solución final.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son los vínculos a cada uno de los pasos del ciclo de vida del Proceso de ciencia
de datos en equipo:
Para Azure, se recomienda aplicar TDSP mediante Azure Machine Learning: para obtener
información general de Azure Machine Learning, consulte ¿Qué es Azure Machine
Learning?.
Fase de aceptación del cliente del ciclo
de vida del proceso de ciencia de datos
en equipos
Artículo • 11/07/2023
En este artículo se describen los objetivos, las tareas y los resultados asociados a la fase
de aceptación del cliente del Proceso de ciencia de datos en equipo (TDSP). Este
proceso proporciona un ciclo de vida recomendado que puede usar para estructurar los
proyectos de ciencia de datos. El ciclo de vida describe las fases principales por las que
pasan normalmente los proyectos, a menudo de forma iterativa:
Modo de hacerlo
En esta fase se abordan dos tareas principales:
Artifacts
El artefacto principal que se genera en esta fase final es el informe de salida del
proyecto para el cliente. Este informe técnico contiene todos los detalles del proyecto
que son útiles para obtener información acerca de cómo hacer funcionar el sistema.
TDSP proporciona una plantilla de informe de salida . Puede usar la plantilla tal cual o
puede personalizarla para las necesidades específicas del cliente.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son los vínculos a cada uno de los pasos del ciclo de vida del Proceso de ciencia
de datos en equipo:
Para Azure, se recomienda aplicar TDSP mediante Azure Machine Learning: para obtener
información general de Azure Machine Learning, consulte ¿Qué es Azure Machine
Learning?.
Roles y tareas del proceso de ciencia de
datos en equipo
Artículo • 11/07/2023
Los tutoriales usan Azure DevOps porque así es cómo se implementa TDSP en
Microsoft. Azure DevOps facilita la colaboración mediante la integración de la seguridad
basada en roles, el seguimiento y la administración de elementos de trabajo, así como el
hospedaje de código, el uso compartido y el control de código fuente. En los tutoriales
también se utiliza Data Science Virtual Machine (DSVM) de Azure como escritorio de
análisis, que tiene varias herramientas de ciencia de datos populares configuradas
previamente e integradas con software de Microsoft y servicios de Azure.
Puede usar los tutoriales para implementar TDSP con otras herramientas y entornos de
hospedaje de código, planeamiento de Agile y desarrollo, pero es posible que algunas
características no estén disponibles.
7 Nota
Para obtener instrucciones detalladas del flujo de trabajo de ejecución del proyecto,
consulte Desarrollo de Agile de proyectos de ciencia de datos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Explore descripciones más detalladas de los roles y tareas que el Proceso de ciencia de
datos en equipo define:
Recursos relacionados
Tareas del administrador de grupo de control de proceso de ciencia de datos en
equipo
Tareas del responsable de equipo en el equipo de proceso de ciencia de datos en
equipo
Tareas para el líder del proyecto en el proceso de ciencia de datos en equipo
Tareas para un colaborador individual en el proceso de ciencia de datos en
equipos
Tareas del administrador de grupo de
control de proceso de ciencia de datos
en equipo
Artículo • 11/07/2023
En este artículo se describen las tareas que completa un administrador de grupo para
una organización de ciencia de datos. El administrador de grupo administra la unidad de
ciencia de datos completa en una empresa. Una unidad de ciencia de datos puede tener
varios equipos, cada uno de ellos trabajando en muchos proyectos de ciencia de datos
en segmentos verticales de negocio distintos. El objetivo del administrador de grupo es
establecer un entorno de colaboración en grupo que normalice el proceso de ciencia de
datos en equipo (TDSP). Para ver un esquema de todos los roles del personal y las tareas
asociadas de las que se ocupa un equipo de ciencia de datos que sigue este proceso
como estándar, consulte Roles y tareas del proceso de ciencia de datos en equipo.
7 Nota
Si no tiene una cuenta Microsoft, haga clic en Registrarse ahora para crear una
cuenta Microsoft y, después, inicie sesión con esa cuenta. Si su organización tiene
una suscripción de Visual Studio, inicie sesión con las credenciales de dicha
suscripción.
Cada uno de los dos repositorios de grupo contiene ahora todos los archivos, excepto
los del directorio .git, del repositorio correspondiente del equipo TDSP de Microsoft.
Conexión HTTPS:
Bash
git clone
https://DataScienceUnit@dev.azure.com/DataScienceUnit/GroupCommon/_git/
GroupUtilities
Conexión SSH:
Bash
git clone
git@ssh.dev.azure.com:v3/DataScienceUnit/GroupCommon/GroupUtilities
Después de realizar los cambios que desee en el clon local del repositorio, puede
insertar los cambios en los repositorios del grupo común compartido.
Bash
git add .
git commit -m "push from local"
git push
7 Nota
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son vínculos a descripciones detalladas de los roles y tareas del proceso de ciencia
de datos en equipo:
En este artículo se describen las tareas que completa un responsable de equipo para su
equipo de ciencia de datos. El objetivo del responsable de equipo es establecer el
entorno de colaboración de equipo que se estandariza en el proceso de ciencia de
datos en equipo (TDSP). Este proceso está diseñado para ayudar a mejorar la
colaboración y el aprendizaje en equipo.
7 Nota
Requisitos previos
En este tutorial se da por supuesto que los siguientes recursos y permisos están
configurados por el administrador de grupo:
Los nombres especificados para los directorios y repositorios de este tutorial asumen
que su objetivo es establecer un proyecto independiente para su propio equipo dentro
de un grupo de ciencia de datos mayor. Sin embargo, todo el grupo puede elegir
trabajar en un único proyecto creado por el administrador del grupo o el administrador
de la organización. A continuación, todos los equipos de ciencia de datos crean
repositorios en este único proyecto. Este escenario podría ser válido en estos casos:
Si los equipos optan por tener los repositorios específicos del equipo en un único
proyecto de grupo, los responsables de equipo deben crear los repositorios con
nombres como <TeamName>Template y <TeamName>Utilities. Por ejemplo:
TeamATemplate y TeamAUtilities.
En cualquier caso, los responsables de equipo deben permitir que los miembros del
equipo sepan qué repositorios de plantillas y utilidades tienen que configurar y clonar.
Los responsables de proyecto deben seguir las tareas del responsable de equipo en un
equipo de ciencia de datos para crear repositorios de proyectos, bien dentro de
proyectos independientes o en un único proyecto.
Cada uno de los dos repositorios de equipo ahora contiene los archivos del repositorio
común de grupo correspondiente.
Para trabajar con repositorios en el equipo local o DSVM, primero copie o clone los
repositorios en el equipo local y, después, confirme e inserte los cambios en los
repositorios compartidos del equipo.
6. En Git Bash, ejecute el comando git clone <clone URL> , donde <clone URL> es la
dirección URL que ha copiado del cuadro de diálogo Clonar.
Por ejemplo, use uno de los siguientes comandos para clonar el repositorio
TeamUtilities en el directorio MyTeam en el equipo local.
Conexión HTTPS:
Bash
git clone
https://DataScienceUnit@dev.azure.com/DataScienceUnit/MyTeam/_git/TeamU
tilities
Conexión SSH:
Bash
Después de realizar los cambios que desee en el clon local del repositorio, confirme e
inserte los cambios en los repositorios del equipo compartido.
Ejecute los siguientes comandos de Git Bash desde el directorio local
GitRepos\MyTeam\TeamTemplate o GitRepos\MyTeam\TeamUtilities.
Bash
git add .
git commit -m "push from local"
git push
7 Nota
Para obtener información sobre cómo compartir otros recursos con su equipo, como
clústeres de Azure HDInsight Spark, consulte Plataformas y herramientas. En este tema
se proporcionan instrucciones desde una perspectiva de ciencia de datos sobre la
selección de recursos que son adecuados para sus necesidades, junto con vínculos a
páginas de productos y otros tutoriales interesantes y útiles.
7 Nota
Para evitar la transmisión de datos entre centros de datos, lo que podría ser lento y
costoso, asegúrese de que el grupo de recursos, la cuenta de almacenamiento y la
DSVM de Azure estén hospedados en la misma región de Azure.
PowerShell
wget "https://raw.githubusercontent.com/Azure/Azure-
MachineLearning-DataScience/master/Misc/TDSP/CreateFileShare.ps1"
-outfile "CreateFileShare.ps1"
.\CreateFileShare.ps1
shell
wget "https://raw.githubusercontent.com/Azure/Azure-
MachineLearning-DataScience/master/Misc/TDSP/CreateFileShare.sh"
bash CreateFileShare.sh
PowerShell
wget "https://raw.githubusercontent.com/Azure/Azure-
MachineLearning-DataScience/master/Misc/TDSP/AttachFileShare.ps1"
-outfile "AttachFileShare.ps1"
.\AttachFileShare.ps1
shell
wget "https://raw.githubusercontent.com/Azure/Azure-
MachineLearning-DataScience/master/Misc/TDSP/AttachFileShare.sh"
bash AttachFileShare.sh
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
En este artículo se describen las tareas que un responsable de proyecto debe realizar
para configurar un repositorio para su equipo de proyecto en el proceso de ciencia de
datos en equipo (TDSP). El proceso de ciencia de datos en equipo es una plataforma
desarrollada por Microsoft que proporciona una secuencia estructurada de actividades
para ejecutar de forma eficaz soluciones de análisis predictivos y basadas en la nube.
Este proceso está diseñado para ayudar a mejorar la colaboración y el aprendizaje en
equipo. Para ver un esquema de los roles del personal y las tareas asociadas de las que
se ocupa un equipo de ciencia de datos que sigue este proceso como estándar, consulte
Roles y tareas del proceso de ciencia de datos en equipo.
Esta tutorial abarca lo siguiente: Paso 1: Creación de un repositorio del proyecto, y Paso
2: Inicialización del repositorio de proyectos desde el repositorio ProjectTemplate del
equipo.
Para el Paso 3: Creación del elemento de trabajo Feature para el proyecto, y el Paso 4:
Incorporación de casos a las fases del proyecto, consulte Desarrollo de Agile de
proyectos de ciencia de datos.
Para el Paso 6: Configuración del control de seguridad del repositorio del proyecto,
consulte Adición de miembros de equipo y configuración de permisos.
7 Nota
En este artículo se utiliza Azure Repos para configurar un proyecto de TDSP, ya que
se explica cómo implementar TDSP en Microsoft. Si el equipo usa otras plataformas
de hospedaje de código, las tareas del responsable de proyecto son las mismas,
pero la manera de realizarlas puede ser diferente.
Requisitos previos
En este tutorial se da por supuesto que el administrador del grupo y el responsable de
equipo han configurado los siguientes recursos y permisos:
Suscripción a Azure.
Git instalado en la máquina. Si usa una DSVM, GIT está preinstalado. En caso
contrario, consulte el apéndice de plataformas y herramientas.
Si desea usar la DSVM, la DSVM de Windows o Linux creada y configurada en
Azure. Para más información e instrucciones, consulte la documentación de Data
Science Virtual Machine.
Para una DSVM de Windows, debe tener Git Credential Manager (GCM)
instalado en la máquina. En el archivo README.md, desplácese a la sección
Descargar e instalar y haga clic en el instalador más reciente. Descargue el
instalador .exe desde la página del instalador y ejecútelo.
En el caso de una DSVM de Linux, se configura una clave pública SSH en la DSVM
y se agrega en Azure DevOps. Para más información e instrucciones, consulte la
sección acerca de cómo crear una clave pública SSH en el apéndice de
plataformas y herramientas.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Estos son vínculos a descripciones detalladas de los roles y tareas definidas por el
proceso de ciencia de datos en equipo:
En este tema se describen las tareas que realiza un colaborador individual para
configurar un proyecto en el proceso de ciencia de datos en equipo (TDSP). El objetivo
es trabajar en un entorno de colaboración en equipo que se estandariza en el proceso
de ciencia de datos en equipo (TDSP). Este proceso está diseñado para ayudar a mejorar
la colaboración y el aprendizaje en equipo. En Roles y tareas del proceso de ciencia de
datos en equipo dispone de un esquema de los roles profesionales y las tareas
asociadas de las que se ocupa un equipo de ciencia de datos que sigue el TDSP como
estándar.
En el diagrama siguiente se muestran las tareas que los colaboradores individuales del
proyecto (científicos de datos) realizan para configurar su entorno de equipo. Para
obtener instrucciones sobre cómo ejecutar un proyecto de ciencia de datos en el
proceso de ciencia de datos en equipo, consulte Ejecución de proyectos de ciencia de
datos.
7 Nota
En este artículo se utiliza Azure Repos y una instancia de Data Science Virtual
Machine (DSVM) para configurar un entorno de TDSP, ya que se explica cómo
implementar TDSP en Microsoft. Si el equipo usa otras plataformas de desarrollo u
hospedaje de código, las tareas del colaborador individual serán las mismas, pero
la manera de realizarlas puede ser diferente.
Requisitos previos
En este tutorial se da por supuesto que los siguientes recursos y permisos están
configurados por el administrador de grupo, el responsable de equipo y el responsable
de proyecto:
Suscripción a Azure.
Git instalado en la máquina. Si usa una DSVM, GIT está preinstalado. En caso
contrario, consulte el apéndice de plataformas y herramientas.
Si desea usar la DSVM, la DSVM de Windows o Linux creada y configurada en
Azure. Para más información e instrucciones, consulte la documentación de Data
Science Virtual Machine.
Para una DSVM de Windows, debe tener Git Credential Manager (GCM)
instalado en la máquina. En el archivo README.md, desplácese a la sección
Descargar e instalar y haga clic en el instalador más reciente. Descargue el
instalador .exe desde la página del instalador y ejecútelo.
En el caso de una DSVM de Linux, se configura una clave pública SSH en la DSVM
y se agrega en Azure DevOps. Para más información e instrucciones, consulte la
sección acerca de cómo crear una clave pública SSH en el apéndice de
plataformas y herramientas.
La información de Azure Files Storage para cualquier almacenamiento de archivos
de Azure que necesite montar en la DSVM.
Clonación de repositorios
Para trabajar con repositorios de forma local e insertar los cambios en los repositorios
compartidos de proyecto y de equipo, primero debe copiar o clonar los repositorios en
la máquina local.
7. En Git Bash, ejecute el comando git clone <clone URL> para cada repositorio que
quiera clonar.
Por ejemplo, el siguiente comando clona el repositorio TeamUtilities en el
directorio MyTeam en la máquina local.
Conexión HTTPS:
Bash
git clone
https://DataScienceUnit@dev.azure.com/DataScienceUnit/MyTeam/_git/TeamU
tilities
Conexión SSH:
Bash
8. Confirme que puede ver las carpetas de los repositorios clonados en el directorio
del proyecto local.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Caso de usuario: los casos de usuario son elementos de trabajo necesarios para
completar íntegramente una característica. Los siguientes son algunos ejemplos de
casos de usuario:
Obtener datos
Exploración de datos
Generación de características
Creación de modelos
Modelos operativos
Reciclaje de modelos
Tarea: las tareas son elementos de trabajo asignables que deben realizarse para
completar un caso de usuario específico. Por ejemplo, las tareas del caso de
usuario Obtener datos podrían ser:
Obtener credenciales de SQL Server
Carga de datos en Azure Synapse Analytics
Error: los errores son problemas en el código existente o en los documentos que
se deben corregir para completar una tarea. Si los errores se deben a que faltan
elementos de trabajo, pueden escalarse para convertirlos en casos de usuario o
tareas.
Los científicos de datos pueden sentirse más cómodos si usan una plantilla de Agile que
reemplace las características, casos de usuario y tareas por fases y subfases del ciclo de
vida de TDSP. Para crear una plantilla derivada de Agile que se alinee específicamente
con las fases del ciclo de vida del proceso de ciencia de datos en equipo, consulte Uso
de una plantilla de trabajo de TDSP de Agile.
7 Nota
Planeamiento de sprints
Muchos científicos de datos interactúan con varios proyectos, que pueden tardar meses
en completarse y progresan a distinto ritmo. El planeamiento de sprint es útil para la
priorización del proyecto y el planeamiento y asignación de recursos. En Azure Boards,
puede crear, administrar y realizar el seguimiento fácilmente de los elementos de
trabajo de sus proyectos, y llevar a cabo el planeamiento de sprints para garantizar que
los proyectos avanzan de la forma prevista.
También puede vincular el caso de usuario a una rama del repositorio de código
de Azure Repos del proyecto seleccionando Agregar vínculo en la sección
Desarrollo. Seleccione el repositorio y la rama a la que desea vincular el elemento
de trabajo y, a continuación, seleccione Aceptar.
3. Cuando haya terminado de editar el caso de usuario, seleccione Guardar y cerrar.
Para agregar una tarea a un caso de usuario, seleccione + junto al elemento de caso de
usuario y seleccione Tarea. Rellene el título y otra información de la tarea.
Una vez creadas las características, los casos de usuario y las tareas, puede verlo todo en
las vistas Trabajos pendientes o Paneles para realizar el seguimiento de su estado.
Uso de una plantilla de trabajo de TDSP de
Agile
Los científicos de datos pueden sentirse más cómodos si usan una plantilla de Agile que
reemplace las características, casos de usuario y tareas por fases y subfases del ciclo de
vida de TDSP. En Azure Boards, puede crear una plantilla derivada de Agile que use
fases del ciclo de vida de TDSP para crear y realizar el seguimiento de los elementos de
trabajo. Los pasos siguientes describen cómo configurar una plantilla de proceso de
Agile específica de ciencia de datos y cómo crear elementos de trabajo de ciencia de
datos basados en la plantilla.
Después de completar los pasos, los niveles de trabajo pendiente deberían tener el
aspecto siguiente:
Creación de elemento de trabajo de proceso de ciencia
de datos de Agile
Puede usar la plantilla de proceso de ciencia de datos para crear proyectos de TDSP y
realizar el seguimiento de los elementos de trabajo que corresponden a fases del ciclo
de vida de TDSP.
5. Para que los proyectos de TDSP sean visibles, seleccione el icono de Definir la
configuración del equipo. En la pantalla Configuración, active la casilla Proyectos
de TDSP y, a continuación, seleccione Guardar y cerrar.
6. Para crear un proyecto de TDSP específico de ciencia de datos, seleccione
Proyectos de TDSP en la barra superior y, a continuación, seleccione Nuevo
elemento de trabajo.
10. Siga seleccionando + junto a los elementos de trabajo para agregar nuevas fases,
subfases y tareas de TDSP.
A continuación se muestra un ejemplo del aspecto que deberían tener los elementos de
trabajo del proyecto de ciencia de datos en la vista Trabajos pendientes:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Proceso de Agile
Recursos relacionados
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Aprendizaje automático a escala
Codificación colaborativa con GIT
Artículo • 11/07/2023
En este artículo se describe cómo usar Git como el marco de desarrollo de código de
colaboración para los proyectos de ciencia de datos. En el artículo se describe cómo
vincular código de Azure Repos a elementos de trabajo de Agile Development en Azure
Boards, cómo realizar revisiones de código y cómo crear y combinar solicitudes de
incorporación de cambios.
Para conectar un elemento de trabajo a una nueva rama, seleccione el botón de puntos
suspensivos ( ... ) de Acciones junto al elemento de trabajo y, en el menú contextual,
desplácese a y seleccione Nueva rama.
Bash
Si no especifica un valor para <base branch name> (nombre de rama de base), la nueva
rama se basa en main .
Bash
Bash
git status
git add .
git commit -m "added an R script file"
git push origin script
Creación de una solicitud de incorporación de
cambios
Después de una o varias confirmaciones y envíos de cambios, cuando esté listo para
combinar la rama de trabajo actual en su rama de base, puede crear y enviar una
solicitud de incorporación de cambios en Azure Repos.
Revisión y combinación
Una vez que se crea la solicitud de incorporación de cambios, los revisores reciben una
notificación por correo electrónico para revisar dicha solicitud. Los revisores prueban si
los cambios funcionan y comprueban los cambios con el solicitante si es posible. Los
revisores pueden realizar comentarios, solicitar cambios y aprobar o rechazar la solicitud
de incorporación de cambios en función de su evaluación.
Una vez que los revisores aprueban los cambios, usted u otra persona con permisos de
combinación pueden combinar la rama de trabajo en su rama de base. Seleccione
Completado y, a continuación, seleccione Completar combinación en el cuadro de
diálogo Completar solicitud de incorporación de cambios. Puede optar por eliminar la
rama de trabajo una vez combinada.
Confirme que la solicitud está marcada como COMPLETADO.
Bash
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
En el artículo Ejecución de las tareas de ciencia de datos se muestra cómo usar las
utilidades para completar varias tareas comunes de ciencia de datos, como la
exploración interactiva de los datos, el análisis de los datos, la creación de informes y la
creación de modelos.
Recursos relacionados
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Aprendizaje automático a escala
Ejecutar tareas de ciencia de datos:
exploración, modelado e
implementación
Artículo • 11/07/2023
1. Exploración
Un científico de datos puede realizar la exploración y los informes de diversas formas:
mediante bibliotecas y paquetes disponibles para Python (matplotlib por ejemplo) o con
R (ggplot o lattice por ejemplo). Los científicos de datos pueden personalizar dicho
código para satisfacer las necesidades de exploración de datos para escenarios
específicos. Las necesidades de lidiar con datos estructurados son distintas que en el
caso de los datos no estructurados, como texto o imágenes.
2. Modelado
Hay diversos kits de herramientas y paquetes para entrenar modelos en diversos
idiomas. Los científicos de datos no deben tener reparos en usar aquellos con los cuales
se sientan cómodos, siempre que se cumplan las consideraciones de rendimiento
relacionadas con la precisión y la latencia para los escenarios de producción y los casos
de uso empresariales pertinentes.
Administración de modelos
Tras la creación de varios modelos, suele ser necesario tener un sistema para registrar y
administrar los modelos. Normalmente, necesita una combinación de scripts o API y una
base de datos back-end o un sistema de control de versiones. Azure Machine Learning
proporciona la implementación de modelos ONNX o la implementación de modelos ML
Flow.
3. Implementación
La implementación de producción permite que un modelo desempeñe un rol activo en
una empresa. Las predicciones a partir de un modelo implementado pueden usarse en
las decisiones empresariales.
Plataformas de producción
Hay varios enfoques y plataformas para poner los modelos en producción. Se
recomienda implementar en Azure Machine Learning.
7 Nota
Pruebas A/B
Cuando hay varios modelos en producción, puede resultar útil realizar pruebas A/B
para comparar el rendimiento de los modelos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
En Track progress of data science projects (Realizar un seguimiento del progreso de los
proyectos de ciencia de datos) se muestra cómo puede un científico de datos realizar un
seguimiento del progreso de un proyecto de ciencia de datos.
El modelo de operación y CI/CD muestra cómo se puede realizar CI/CD con modelos
desarrollados.
Prueba de código de ciencia de datos
con Azure DevOps
Artículo • 11/07/2023
Pasos detallados
Siga estos pasos para configurar y ejecutar pruebas de código y una compilación
automatizada mediante un agente de compilación y Azure DevOps:
Cree un archivo de Python llamado test1.py. En este archivo, cree una clase que
incluya todas las pruebas que desea hacer. En el siguiente ejemplo se muestran
seis pruebas preparadas:
1. Esas pruebas se pueden detectar automáticamente si coloca codetest.testCase
después del nombre de la clase. Abra el Explorador de pruebas en el panel
derecho y seleccione Ejecutar todo. Todas las pruebas se ejecutarán
secuencialmente y le indicarán si la prueba es correcta o no.
Ahora, cada vez que se inserte una nueva confirmación en el repositorio de código, se
iniciará automáticamente el proceso de compilación. Puede definir cualquier rama. El
proceso ejecuta el archivo test1.py en la máquina del agente para asegurarse de que
todos los elementos definidos en el código se ejecutan correctamente.
Si las alertas están configuradas correctamente, se le notificará por correo electrónico
cuando finalice la compilación. También puede comprobar el estado de compilación en
Azure DevOps. Si se produce un error, puede comprobar los detalles de la compilación y
averiguar qué parte se interrumpe.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Consulte el repositorio de predicción de ingresos UCI para ejemplos concretos
de pruebas unitarias para escenarios de ciencia de datos.
Siga el esquema y los ejemplos anteriores del escenario de predicción de ingresos
UCI en sus propios proyectos de ciencia de datos.
Referencias
Proceso de ciencia de datos en equipo (TDSP)
Herramientas de pruebas de Visual Studio
Recursos de pruebas de Azure DevOps
Máquinas virtuales de ciencia de datos
Seguimiento del progreso de los
proyectos de ciencia de datos
Artículo • 13/09/2023
Para obtener instrucciones sobre cómo crear y personalizar los paneles y widgets en
Azure DevOps, consulte los siguientes inicios rápidos:
Panel de ejemplo
Este es un panel de ejemplo sencillo que hace el seguimiento de las actividades de
sprint de un proyecto de ciencia de datos ágil, así como también la cantidad de
confirmaciones en los repositorios asociados.
El icono de cuenta atrás muestra el número de días que quedan en el sprint actual.
Los elementos de trabajo para el proyecto de TDSP del cliente muestran los
resultados de una consulta de todos los elementos de trabajo y su estado.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Creación de canalizaciones de
CI/CD para aplicaciones de
inteligencia artificial con Azure
Pipelines, Docker y Kubernetes
Azure Azure Pipelines Azure Machine Learning Azure Kubernetes Service (AKS)
7 Nota
Para usar el código fuente y el tutorial, necesita los siguientes requisitos previos:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Proceso de ciencia de datos en equipo (TDSP)
Azure Machine Learning (AML)
Azure DevOps
Azure Kubernetes Services (AKS)
Recursos relacionados
¿Qué son las canalizaciones de Azure Machine Learning?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Operaciones de aprendizaje automático (MLOps) v2
Proceso de ciencia de datos en equipo
para científicos de datos
Artículo • 11/07/2023
Este artículo proporciona una guía a un conjunto de objetivos que se usan normalmente
para implementar soluciones de ciencia de datos completas con tecnologías de Azure.
Se cubrirán los siguientes aspectos:
Ruta de aprendizaje
Puede usar los elementos de la tabla siguiente para que le guíen en su aprendizaje. Lea
la columna Descripción para seguir la ruta, haga clic en los vínculos de Tema para ver las
referencias de estudio y compruebe sus conocimientos con la columna Comprobación
de conocimientos.
conseguir más
información.
ciencia de datos en
equipo. Tenga en cuenta
el proceso de DevOps
mientras se trabaja en
este proceso. En este
artículo, aprenderá a
considerar los requisitos
de su organización y a
crear un mapa de flujo de
datos mediante su
aplicación para definir la
solución con el Proceso
de ciencia de datos en
equipo.
Realización de ¡Enhorabuena! Ha
esta ruta de completado esta ruta de
aprendizaje aprendizaje.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Recursos relacionados
Ejecutar tareas de ciencia de datos: exploración, modelado e implementación
Configuración de entornos de ciencia de datos para utilizarse en el proceso de
ciencia de datos en equipos
Plataformas y herramientas para proyectos de ciencia de datos
Ciencia de datos y aprendizaje automático con Azure Databricks
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Proceso de ciencia de datos en equipo para
Developer Operations
Artículo • 22/06/2023
En este artículo se exploran las funciones de Developer Operations (DevOps) que son específicas
de la implementación de una solución de análisis avanzado y Cognitive Services. Estos materiales
de entrenamiento implementan el Proceso de ciencia de datos en equipos (TDSP) junto con
software y kits de herramientas de Microsoft y de código abierto, que resultan útiles para
imaginar, ejecutar y entregar soluciones de ciencia de datos. Hace referencia a los temas que
abordan la cadena de herramientas de DevOps que es específico para los proyectos y soluciones
de IA y de ciencia de datos.
Ruta de aprendizaje
En la tabla siguiente se proporciona una guía basada en niveles para completar los objetivos de
DevOps de implementación de soluciones de ciencia de datos en Azure.
Descripción del El ciclo de vida En este tutorial Ciencia de datos Intermedio Conocimientos
análisis del proceso de técnico se generales sobre
avanzado ciencia de describe el tecnología,
datos en proceso de familiaridad con
equipo ciencia de datos las soluciones de
en equipo datos, familiaridad
con la
implementación de
soluciones y
proyectos de TI
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.
Autor principal:
Pasos siguientes
Proceso de ciencia de datos en equipo para científicos de datos. Este artículo proporciona las
instrucciones para implementar soluciones de ciencia de datos con Azure.
Recursos relacionados
Ejecutar tareas de ciencia de datos: exploración, modelado e implementación
Configuración de entornos de ciencia de datos para utilizarse en el proceso de ciencia de
datos en equipos
Plataformas y herramientas para proyectos de ciencia de datos
Ciencia de datos y aprendizaje automático con Azure Databricks
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Configuración de entornos de ciencia de
datos para utilizarse en el proceso de
ciencia de datos en equipos
Artículo • 11/07/2023
Vea Inicio rápido: Creación de los recursos de área de trabajo necesarios para
empezar a trabajar con Azure Machine Learning.
Microsoft Data Science Virtual Machine (DSVM) también está disponible como una
imagen de máquina virtual (VM) de Azure. Esta máquina virtual se preinstala y configura
con varias herramientas populares que se usan habitualmente para el análisis de datos y
el aprendizaje automático. DSVM está disponible en Windows y Linux. Para más
información, consulte Introducción a Data Science Virtual Machine basada en la nube
para Linux y Windows.
Aprenda a crear:
Windows DSVM
Ubuntu DSVM
CentOS DSVM
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
El principal recurso de Azure recomendado para TDSP es Azure Machine Learning. Los
ejemplos del Centro de arquitectura de Azure a veces muestran el uso de Azure
Machine Learning con otros recursos de Azure. Los otros recursos de análisis a
disposición de los equipos de ciencia de datos que siguen el proceso de ciencia de
datos en equipo incluyen:
Actualmente, la máquina virtual de ciencia de datos está disponible con los sistemas
operativos Windows y CentOS Linux. Elija el tamaño de la máquina virtual de ciencia de
datos (número de núcleos de CPU y cantidad de memoria) en función de los proyectos
de ciencia de datos que se vayan a ejecutar en ella.
Para más información sobre la edición de Windows de DSVM, consulte Microsoft Data
Science Virtual Machine en Azure Marketplace. Para la edición Linux de la máquina
virtual de ciencia de datos, consulte Linux Data Science Virtual Machine .
Para aprender a ejecutar de forma eficaz algunas de las tareas comunes de ciencia de
datos en DSVM, consulte Diez cosas que puede hacer en Windows Data Science Virtual
Machine.
Para obtener más información sobre Azure Synapse Analytics, consulte el sitio web de
Azure Synapse Analytics . Para obtener información sobre cómo crear soluciones
completas de análisis avanzado con Azure Synapse Analytics, consulte Proceso de
ciencia de datos en equipo en acción: uso de Azure Synapse Analytics.
Para más información sobre Azure Data Lake, consulte la entrada de blob Introducing
Azure Data Lake (Introducción a Azure Data Lake). Para obtener información sobre
cómo crear una solución de ciencia de datos completa y escalable con Azure Data Lake,
consulte Ciencia de datos escalables con Azure Data Lake: tutorial completo
Hive le permite proyectar la estructura del proyecto en datos que en gran medida no
están estructurados. Después de definir la estructura, puede usar Hive para consultar
esos datos en un clúster Hadoop sin tener que usar, incluso sin conocer, Java o
MapReduce. HiveQL (el lenguaje de consultas de Hive) permite escribir consultas con
instrucciones similares a T-SQL.
Para los científicos de datos, Hive puede ejecutar funciones de Python definidas por el
usuario en consultas de Hive para procesar registros. Esta capacidad amplía
considerablemente la funcionalidad de consultas de Hive en el análisis de datos.
Específicamente, permite a los científicos de datos realizar ingeniería de características
escalables en los lenguajes con los que están más familiarizados, como Python y HiveQA
de tipo SQL.
Para más información sobre los clústeres de Azure HDInsight Hive, consulte Uso de Hive
y HiveQL con Hadoop en HDInsight. Para aprender a crear una solución de ciencia de
datos completa y escalable en clústeres de Hive de Azure HDInsight, consulte el artículo
sobre el proceso de ciencia de datos en equipo en acción: uso de clústeres de Hadoop
de HDInsight.
Especialmente útil para los proyectos de ciencia de datos es la capacidad para crear un
almacén de archivos de Azure como el lugar para compartir datos del proyecto con los
miembros del equipo de proyecto. Cada uno de ellos tiene acceso entonces a la misma
copia de los datos en el almacenamiento de archivos de Azure. También puede utilizar
este almacenamiento de archivos para compartir conjuntos de características generados
durante la ejecución del proyecto. Si el proyecto es una interacción con los clientes,
estos pueden crear un almacenamiento de archivos de Azure en su propia suscripción
de Azure para compartir los datos de proyecto y las características con el usuario. De
esta manera, el cliente tiene control total sobre los recursos de datos del proyecto. Para
más información sobre Azure File Storage, consulte Introducción a Azure File Storage en
Windows o Uso de Azure File Storage con Linux.
R Services (En base de datos) admite el lenguaje R de código abierto con un completo
conjunto de tecnologías y herramientas de SQL Server. Ofrece un rendimiento superior,
seguridad, confiabilidad y facilidad de uso. Puede implementar soluciones en R con
herramientas conocidas y convenientes. Las aplicaciones de producción pueden llamar
al entorno en tiempo de ejecución de R y recuperar las predicciones y los objetos
visuales mediante Transact-SQL. También puede usar las bibliotecas de ScaleR para
mejorar la escalabilidad y el rendimiento de las soluciones de R. Para más información,
consulte SQL Server R Services.
PowerShell
PowerShell
ssh-keygen
cat .ssh/id_rsa.pub
2. Copie la clave ssh completa, incluido ssh-rsa.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Descripción de la ciencia de datos para el aprendizaje automático
Aprendizaje automático a escala
Introducción a Azure Machine Learning
Ingeniería y ciencia de datos de Databricks
Recursos relacionados
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Roles y tareas del proceso de ciencia de datos en equipo
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Identificación de escenarios y
planeamiento del procesamiento
analítico avanzado de datos
Artículo • 11/07/2023
¿Qué recursos son necesarios para crear un entorno que pueda realizar el
procesamiento de análisis avanzado en un conjunto de datos? En este artículo se
sugiere una serie de preguntas que le pueden ayudar a identificar las tareas y los
recursos pertinentes para su escenario.
Para aprender sobre el orden de los pasos de alto nivel para el análisis predictivo,
consulte ¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?. Cada paso requiere
recursos específicos para las tareas pertinentes para su escenario concreto.
logística de datos
características de datos
calidad del conjunto de datos
herramientas y lenguajes preferidos
Es posible que tenga que mover los datos varias veces durante el proceso de análisis. Un
escenario común es mover datos locales a algún tipo de almacenamiento en Azure y, a
continuación, en Azure Machine Learning.
Para más información, consulte Movimiento de datos desde una base de datos de
SQL Server hasta SQL Azure con Azure Data Factory.
Entre las técnicas útiles para la inspección de datos podemos citar el cálculo de
estadísticas descriptivas y los trazados de visualizaciones. Para obtener más información
sobre cómo explorar un conjunto de datos en diversos entornos de Azure, consulte
Exploración de datos en el proceso de ciencia de datos en equipos.
Microsoft Azure PowerShell: un lenguaje de script que se usa para administrar los
recursos de Azure en un lenguaje de script
RStudio
Herramientas de Python para Visual Studio
Microsoft Power BI
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué es el proceso de ciencia de datos en equipos (TDSP)?
Recursos relacionados
Ejecutar tareas de ciencia de datos: exploración, modelado e implementación
Configuración de entornos de ciencia de datos para utilizarse en el proceso de
ciencia de datos en equipos
Plataformas y herramientas para proyectos de ciencia de datos
Ciencia de datos y aprendizaje automático con Azure Databricks
Carga de datos en entornos de
almacenamiento para el análisis
Artículo • 11/07/2023
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
7 Nota
Para ver una introducción completa a Azure Blob Storage, consulte Aspectos
básicos de Azure Blob y Azure Blob Service.
Crear y programar una canalización que descarga los datos desde Azure Blob
Storage
Pasarla a un servicio web Azure Machine Learning publicado
Recibir los resultados de análisis predictivo
Cargar los resultados al almacenamiento
Consulte Creación de canalizaciones predictivas mediante Factoría de datos de Azure y
Azure Machine Learningpara obtener más información.
Prerrequisitos
En este artículo se presupone que tiene una suscripción de Azure, una cuenta de
almacenamiento y la clave de almacenamiento correspondiente para dicha cuenta.
Antes de cargar o descargar datos, debe conocer su nombre de cuenta de Azure
Storage y la clave de cuenta.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Introducción a Azure Blob Storage
Copia y desplazamiento de blobs de una cuenta de almacenamiento o contenedor
a otro
¿Qué es el proceso de ciencia de datos en equipos (TDSP)?
Recursos relacionados
Exploración de los datos en Azure Blob Storage
Proceso de datos de Azure Blob Storage con análisis avanzado
Configuración de entornos de ciencia de datos para utilizarse en el proceso de
ciencia de datos en equipos
Carga de datos en entornos de almacenamiento para el análisis
Mover datos hacia y desde Azure Blob
Storage con el Explorador de Azure
Storage
Artículo • 11/07/2023
Este menú vincula a tecnologías que puede usar para mover datos hacia Azure Blob
Storage y desde este:
7 Nota
Si está usando la máquina virtual que se configuró con los scripts ofrecidos por
Máquinas virtuales de ciencia de datos en Azure,el Explorador de Azure Storage
ya está instalado en la máquina virtual.
7 Nota
Para ver una introducción completa a Azure Blob Storage, consulte Aspectos
básicos de Azure Blob y API REST de Azure Blob Service.
Prerequisites
En este documento se supone que tiene una suscripción de Azure y una cuenta de
almacenamiento y la clave de almacenamiento correspondiente para dicha cuenta.
Antes de cargar o descargar datos, debe conocer su nombre de cuenta de Azure
Storage y la clave de cuenta.
3. Para que aparezca el Asistente para conectar a Azure Storage, seleccione el icono
de Conectar a Azure Storage.
4. Escriba la clave de acceso de la cuenta de Azure Storage en el Asistente para
conectar a Azure Storage y luego haga clic en Siguiente.
8. Haga clic en ... a la derecha del cuadro Archivos, seleccione uno o varios archivos
para cargarlos desde el sistema de archivos y haga clic en Cargar para empezar a
cargarlos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Introducción a Azure Blob Storage
Carga, descarga y administración de datos con Explorador de Azure Storage
¿Qué es el proceso de ciencia de datos en equipos (TDSP)?
Recursos relacionados
Exploración de los datos en Azure Blob Storage
Proceso de datos de Azure Blob Storage con análisis avanzado
Configuración de entornos de ciencia de datos para utilizarse en el proceso de
ciencia de datos en equipos
Carga de datos en entornos de almacenamiento para el análisis
Movimiento de datos desde o hacia
Azure Blob Storage con conectores SSIS
Artículo • 11/07/2023
El Azure Feature Pack para Integration Services (SSIS) ofrece componentes para
conectarse a Azure, transferir datos entre Azure y orígenes de datos locales y procesar
datos almacenados en Azure.
Este menú vincula a tecnologías que puede usar para mover datos hacia Azure Blob
Storage y desde este:
Una vez que los clientes han movido los datos locales a la nube, pueden acceder a sus
datos desde cualquier servicio de Azure para aprovechar al máximo el conjunto de
tecnologías de Azure. Posteriormente, los datos se pueden usar, por ejemplo, en Azure
Machine Learning o en un clúster de HDInsight.
Los ejemplos de uso de estos recursos de Azure se encuentran en los tutoriales de SQL y
HDInsight.
Si desea ver un análisis de los escenarios canónicos que usan SSIS para satisfacer las
necesidades de negocio comunes en escenarios de integración de datos híbridos, visite
el blog Doing more with SQL Server Integration Services Feature Pack for Azure
(Aprovechar más el Feature Pack de SQL Server Integration Services para Azure).
7 Nota
Para ver una introducción completa a Azure Blob Storage, consulte Aspectos
básicos de Azure Blob y API REST de Azure Blob Service.
Requisitos previos
Para realizar las tareas que se describen en este artículo, debe tener configurada una
suscripción a Azure y una cuenta de Azure Storage. El nombre y la clave de la cuenta de
Azure Storage se necesitan para cargar o descargar datos.
SQL Server 2014 o 2016 Standard (o superior): la instalación incluye SQL Server
Integration Services.
Feature Pack de Microsoft SQL Server 2014 o 2016 Integration Services para
Azure: se pueden descargar, respectivamente, en las páginas SQL Server 2014
Integration Services y SQL Server 2016 Integration Services .
7 Nota
SSIS se instala con SQL Server, pero no está incluido en la versión Express. Para
obtener información sobre qué aplicaciones se incluyen en las distintas versiones
de SQL Server, consulte la documentación técnica de SQL Server.
Si desea obtener información sobre cómo trabajar con SISS para compilar paquetes de
extracción, transformación y carga (ETL) sencillos, consulte Tutorial de SSIS: Creación de
un paquete ETL sencillo.
Campo Descripción
7 Nota
Para ejecutar un script de Hive en un clúster de HDInsight de Azure con SSIS, use
Tarea de Hive para HDInsight de Azure.
Para ejecutar un script de Pig en un clúster de HDInsight de Azure con SSIS, use
Tarea de Pig para HDInsight de Azure.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Introducción a Azure Blob Storage
Copia y desplazamiento de blobs de una cuenta de almacenamiento o contenedor
a otro
Ejecución de paquetes SSIS existentes en la canalización de Azure Data Factory o
Azure Synapse
¿Qué es el proceso de ciencia de datos en equipos (TDSP)?
Recursos relacionados
Exploración de los datos en Azure Blob Storage
Proceso de datos de Azure Blob Storage con análisis avanzado
Mover datos hacia y desde Azure Blob Storage con el Explorador de Azure Storage
Carga de datos en entornos de almacenamiento para el análisis
Mover datos a un servidor SQL Server
en una máquina virtual de Azure
Artículo • 11/07/2023
En este artículo se describen las opciones para mover datos desde archivos planos
(formatos CSV o TSV) o desde un servidor SQL Server local hasta un servidor SQL Server
en una máquina virtual de Azure. Estas tareas para mover datos a la nube forman parte
del proceso de ciencia de datos en equipos.
Para ver un tema que describa las opciones para mover datos a una base de datos de
Azure SQL para Machine Learning, vea Mover datos a una base de datos de Azure SQL
para Azure Machine Learning.
En la tabla siguiente se resumen las opciones para mover datos a un servidor SQL Server
en una máquina virtual de Azure.
SQL Server 1. Asistente para implementación de una base de datos de SQL Server en una
local máquina virtual de Microsoft Azure
2. Exportación a un archivo plano
3. SQL Database Migration Wizard
4. Copia de seguridad y restauración de una base de datos
En este documento se da por supuesto que los comandos SQL se ejecutan desde
SQL Server Management Studio o el Explorador de bases de datos de Visual Studio.
Sugerencia
Como alternativa, puede usar Azure Data Factory para crear y programar una
canalización de datos se moverá a una máquina virtual de SQL Server en Azure.
Para obtener más información, consulte Copia de datos con Azure Data Factory
(actividad de copia)
Requisitos previos
En este tutorial se asume que dispone de:
Una suscripción de Azure. Si no tiene una suscripción, puede registrarse para
obtener una evaluación gratuita .
Una cuenta de almacenamiento de Azure. En este tutorial, usará una cuenta de
almacenamiento de Azure para almacenar los datos. Si no dispone de una cuenta
de almacenamiento de Azure, vea el artículo Creación de una cuenta de
almacenamiento . Tras crear la cuenta de almacenamiento, tendrá que obtener la
clave de cuenta que se usa para tener acceso al almacenamiento. Vea
Administración de las claves de acceso de la cuenta de almacenamiento.
Servidor SQL Server aprovisionado en una máquina virtual de Azure. Para
obtener instrucciones, consulte Configurar una máquina virtual de Azure para SQL
Server como servidor de IPython Notebook para realizar análisis avanzados.
Azure PowerShell instalado y configurado de forma local. Para obtener
instrucciones, consulte Instalación y configuración de Azure PowerShell.
7 Nota
¿Dónde deberían estar mis datos para BCP? Aunque no es necesario, tener
archivos que contienen datos de origen que se encuentran en la misma máquina
que el SQL Server de destino permite transferencias más rápidas (velocidad de red
frente a velocidad de E/S de disco local). Puede mover los archivos planos que
contienen los datos en la máquina en la que está instalado SQL Server mediante las
diversas herramientas de copia de archivos como AZCopy, el Explorador de Azure
Storage o copiar y pegar de Windows mediante el Protocolo de escritorio
remoto (RDP).
1. Asegúrese de que la base de datos y las tablas se crean en la base de datos de SQL
Server de destino. Este es un ejemplo de cómo realizar esa tarea con los comandos
Create Database y Create Table :
SQL
2. Genere el archivo de formato que describe el esquema de la tabla. Para ello, debe
usar el siguiente comando en la línea de comandos de la máquina donde está
instalado bcp.
servername\sqlinstance -T -t \t -r \n
3. Inserte los datos en la base de datos mediante el comando bcp, que debería
funcionar desde la línea de comandos cuando SQL Server está instalado en la
misma máquina:
7 Nota
Ingesta de macrodatos: para optimizar la carga de datos para conjuntos de datos
grandes y muy grandes, puede crear particiones de sus tablas de bases de datos
lógicas y físicas con varios grupos de archivos y tablas de particiones. Para obtener
más información acerca de cómo crear y cargar datos en las tablas de partición,
consulte Tablas de particiones de SQL de carga paralela.
PowerShell
$NO_OF_PARALLEL_JOBS=2
#Trusted connection w.o username password (if you are using windows auth
and are signed in with that credentials)
#bcp database..tablename in datafile_path.csv -o
path_to_outputfile.$partitionnumber.txt -h "TABLOCK" -F 2 -f
format_file_path.xml -T -b block_size_to_move_in_single_attempt -t "," -r
\n
}
1. Analice sus datos y establezca las opciones personalizadas antes de importar para
asegurarse de que la base de datos de SQL Server asume el mismo formato para
todos los campos especiales, como las fechas. Este es un ejemplo de cómo
establecer el formato de fecha como año-mes-día (si los datos contienen la fecha
en formato año-mes-día):
SQL
SQL
Para obtener más información acerca de las herramientas de datos de SQL Server,
consulte Herramientas de datos de Microsoft SQL Server
Para obtener más información acerca del Asistente para importación y exportación,
consulte Asistente para importación y exportación de SQL Server
Mover datos desde un servidor SQL Server
local a un servidor SQL Server en una máquina
virtual de Azure
También puede usar las siguientes estrategias de migración:
Autor principal:
Pasos siguientes
Migración de una Base de datos SQL Server a SQL Server en una máquina virtual
de Azure
Información general sobre SQL Server en Azure Virtual Machines
Recursos relacionados
Traslado de datos a una base de datos de Azure SQL para Azure Machine Learning
Migración de datos de una base de datos de SQL Server a SQL Database con Azure
Data Factory
Proceso de datos en una máquina virtual de SQL Server en Azure
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Traslado de datos a Azure SQL Database
para Azure Machine Learning
Artículo • 11/07/2023
En este artículo se describen las opciones para mover datos de archivos planos
(formatos CSV o TSV) o de datos almacenados en un servidor con SQL Server a Azure
SQL Database. Estas tareas para mover datos a la nube forman parte del proceso de
ciencia de datos en equipos.
Para obtener un tema en el que se describen las opciones para migrar datos de
SQL Server a opciones de Azure SQL, consulte Migración a Azure SQL.
En la tabla siguiente se resumen las opciones para mover datos a una base de datos de
Azure SQL.
Requisitos previos
El procedimiento aquí descrito requiere disponer de:
Puede adaptar los procedimientos que se describen aquí para un conjunto de datos
propios o seguir los pasos descritos para el uso del conjunto de datos de taxis de Nueva
York. Para cargar el conjunto de datos de taxis de Nueva York en la base de datos de
SQL Server, siga el procedimiento descrito en Importación masiva de datos en una base
de datos de SQL Server.
Considere la posibilidad de usar ADF cuando los datos deban migrarse continuamente
con orígenes híbridos locales y en la nube. ADF también resulta útil si los datos
necesitan transformaciones o si requiere una nueva lógica de negocios durante la
migración. La ADF permite la programación y supervisión de trabajos mediante scripts
JSON sencillos que administran el movimiento de datos de forma periódica. La ADF
también tiene otras capacidades como la compatibilidad con operaciones complejas.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Mark Tabladillo | Arquitecto sénior de soluciones en la nube
En este artículo se presentan consultas genéricas de Hive que crean tablas de Hive y
cargan datos desde Azure Blob Storage. También se ofrecen algunas instrucciones
acerca de las particiones de tablas de subárbol y de cómo utilizar el formato ORC para
mejorar el rendimiento de las consultas.
Requisitos previos
En este artículo se supone que ha:
Se supone que los datos de las tablas de Hive están en un formato tabular sin
comprimir y que se han cargado los datos en el contenedor predeterminado (o en otro
adicional) de la cuenta de almacenamiento que usa el clúster Hadoop.
Si desea practicar con el grupo NYC Taxi Trip Data, necesita hacer lo siguiente:
Las consultas de Hive son similares a SQL. Los usuarios familiarizados con SQL pueden
encontrar la hoja de referencia rápida Hive para usuarios de SQL de gran utilidad.
Al enviar una consulta de subárbol, también puede controlar el destino del resultado de
las consultas de subárbol, ya sea en la pantalla o en un archivo local del nodo principal
o en un blob de Azure.
Inicie sesión en el nodo principal del clúster de Hadoop, abra la línea de comandos de
Hadoop en el escritorio del nodo principal y escriba el comando cd %hive_home%\bin .
Directamente
Con archivos .hql
Con la consola de comandos de Hive
Consola
Consola
Genere los resultados de consulta de subárbol en un archivo local. Para generar los
resultados de consultas de Hive en un directorio local del nodo principal, los usuarios
tienen que enviar la consulta de Hive de la línea de comandos de Hadoop de la
siguiente manera:
Consola
Consola
HiveQL
Estas son las descripciones de los campos que los usuarios necesitan para conectar y
otras configuraciones:
HiveQL
LOAD DATA INPATH '<path to blob data>' INTO TABLE <database name>.<table
name>;
7 Nota
Los datos blob que se van a cargar en la tabla de subárbol tienen que estar en
el contenedor adicional o predeterminado de la cuenta de almacenamiento
para el clúster de Hadoop. De lo contrario, la consulta LOAD DATA genera un
error indicando que no puede obtener acceso a los datos.
HiveQL
HiveQL
select
field1, field2, ..., fieldN
from <database name>.<partitioned table name>
where <partitionfieldname>=<partitionfieldvalue> and ...;
Cree una tabla externa STORED AS TEXTFILE y cargue datos del almacenamiento de
blobs en la tabla.
HiveQL
LOAD DATA INPATH '<path to the source file>' INTO TABLE <database name>.
<table name>;
Cree una tabla interna con el mismo esquema que la tabla externa del paso 1, con el
mismo delimitador de campo, y almacene los datos de subárbol en el formato ORC.
HiveQL
Seleccionar datos desde la tabla externa del paso 1 e insertarlos en la tabla de ORC
HiveQL
7 Nota
HiveQL
HiveQL
Después de seguir este procedimiento, debe tener una tabla con datos en el formato
ORC lista para su uso.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
En este artículo se describe cómo se pueden compilar tablas con particiones para la
importación paralela en bloque de datos en una base de datos de SQL Server. Para
cargar o transferir macrodatos a SQL Database, es posible mejorar la importación de
datos a la base de datos SQL y las consultas posteriores mediante tablas y vistas con
particiones.
Agregue grupos de archivos de base de datos a la base de datos que contiene los
archivos físicos con particiones.
Agregue uno o varios archivos (según sea necesario) a cada grupo de archivos de
base de datos.
7 Nota
En el ejemplo siguiente se crea una nueva base de datos con tres grupos de archivos
distintos de los grupos principal y de registro, que contiene un archivo físico en cada
uno. Los archivos de base de datos se crean en la carpeta de datos de SQL Server
predeterminada, como está configurado en la instancia de SQL Server. Para obtener más
información acerca de las ubicaciones de archivo predeterminadas, consulte
Ubicaciones de archivos para las instancias predeterminadas y con nombre de SQL
Server.
SQL
EXECUTE ('
CREATE DATABASE <database_name>
ON PRIMARY
( NAME = ''Primary'', FILENAME = ''' + @data_path +
'<primary_file_name>.mdf'', SIZE = 4096KB , FILEGROWTH = 1024KB ),
FILEGROUP [filegroup_1]
( NAME = ''FileGroup1'', FILENAME = ''' + @data_path +
'<file_name_1>.ndf'' , SIZE = 4096KB , FILEGROWTH = 1024KB ),
FILEGROUP [filegroup_2]
( NAME = ''FileGroup2'', FILENAME = ''' + @data_path +
'<file_name_2>.ndf'' , SIZE = 4096KB , FILEGROWTH = 1024KB ),
FILEGROUP [filegroup_3]
( NAME = ''FileGroup3'', FILENAME = ''' + @data_path +
'<file_name_3>.ndf'' , SIZE = 102400KB , FILEGROWTH = 10240KB )
LOG ON
( NAME = ''LogFileGroup'', FILENAME = ''' + @data_path +
'<log_file_name>.ldf'' , SIZE = 1024KB , FILEGROWTH = 10%)
')
SQL
SQL
Para comprobar los intervalos en vigor en cada partición según el esquema de función,
ejecute la consulta siguiente:
SQL
SQL
Para obtener más información, consulte Crear tablas e índices con particiones.
Importación masiva de datos para cada tabla
de partición individual
Puede usar BCP, BULK INSERT u otros métodos, como Microsoft Data Migration .
En el ejemplo que se incluye, se usa el método BCP.
SQL
PowerShell
# Set database name, input data directory, and output log directory
# This example loads comma-separated input data files
# The example assumes the partitioned data files are named as
<base_file_name>_<partition_number>.csv
# Assumes the input data files include a header line. Loading starts at line
number 2.
$dbname = "<database_name>"
$indir = "<path_to_data_files>"
$logdir = "<path_to_log_directory>"
# Set number of partitions per table - Should match the number of input data
files per table
$numofparts = <number_of_partitions>
# Set table name to be loaded, basename of input data files, input format
file, and number of partitions
$tbname = "<table_name>"
$basename = "<base_input_data_filename_no_extension>"
$fmtfile = "<full_path_to_format_file>"
Get-Job
# Optional - Wait till all jobs complete and report date and time
date
While (Get-Job -State "Running") { Start-Sleep 10 }
date
SQL
-- or,
7 Nota
Puede crear los índices antes de importar los datos de forma masiva. La
creación de índices antes de la importación masiva ralentiza la carga de datos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
En este artículo se muestra cómo migrar datos de una base de datos de SQL Server local
a Azure SQL Database a través de Azure Blob Storage mediante Azure Data Factory
(ADF): este método es un enfoque heredado admitido que tiene las ventajas de una
copia de almacenamiento provisional replicada; sin embargo, se recomienda que
consulte nuestra página sobre migración de datos para conocer las opciones más
recientes .
Para ver una tabla que resuma varias opciones para mover datos a una base de datos de
Azure SQL, vea Traslado de datos a una base de datos de Azure SQL para Azure
Machine Learning.
Escenario
Configuramos una canalización ADF que se compone de dos actividades de migración
de datos. Juntas migran datos a diario entre una base de datos de SQL Server y Azure
SQL Database. Las dos actividades son:
Copia de datos de una base de datos de SQL Server a una cuenta de Azure Blob
Storage.
Copia de datos de la cuenta de Azure Blob Storage a Azure SQL Database.
7 Nota
Los pasos que se muestra a continuación se han adaptado del tutorial más
detallado que ofrece el equipo ADF: Copia de datos de una base de datos de
SQL Server a Azure Blob Storage: cuando es conveniente, se proporcionan
referencias a las secciones correspondientes de ese tema.
Requisitos previos
En este tutorial se asume que dispone de:
7 Nota
7 Nota
Las definiciones basadas en JSON de las tablas usan los siguientes nombres:
7 Nota
Estos procedimientos usan Azure PowerShell para definir y crear las actividades de
ADF. Sin embargo, estas tareas también se pueden realizar en Azure Portal. Para
más información, consulte Creación de conjuntos de datos.
JSON
{
"name": "OnPremSQLTable",
"properties":
{
"location":
{
"type": "OnPremisesSqlServerTableLocation",
"tableName": "nyctaxi_data",
"linkedServiceName": "adfonpremsql"
},
"availability":
{
"frequency": "Day",
"interval": 1,
"waitOnExternal":
{
"retryInterval": "00:01:00",
"retryTimeout": "00:10:00",
"maximumRetry": 3
}
}
}
}
Azure PowerShell
Tabla Blob
La definición de la tabla para la ubicación del blob de salida se encuentra en la siguiente
ubicación (este esquema asigna los datos ingeridos de una ubicación local a un blob de
Azure):
JSON
{
"name": "OutputBlobTable",
"properties":
{
"location":
{
"type": "AzureBlobLocation",
"folderPath": "containername",
"format":
{
"type": "TextFormat",
"columnDelimiter": "\t"
},
"linkedServiceName": "adfds"
},
"availability":
{
"frequency": "Day",
"interval": 1
}
}
}
Azure PowerShell
New-AzureDataFactoryTable -ResourceGroupName adfdsprg -DataFactoryName
adfdsp -File C:\temp\bloboutputtabledef.json
JSON
{
"name": "OutputSQLAzureTable",
"properties":
{
"structure":
[
{ "name": "column1", "type": "String"},
{ "name": "column2", "type": "String"}
],
"location":
{
"type": "AzureSqlTableLocation",
"tableName": "your_db_name",
"linkedServiceName": "adfdssqlazure_linked_servicename"
},
"availability":
{
"frequency": "Day",
"interval": 1
}
}
}
Azure PowerShell
7 Nota
JSON
{
"name": "AMLDSProcessPipeline",
"properties":
{
"description" : "This pipeline has two activities: the first one
copies data from SQL Server to Azure Blob, and the second one copies from
Azure Blob to Azure Database Table",
"activities":
[
{
"name": "CopyFromSQLtoBlob",
"description": "Copy data from SQL Server to blob",
"type": "CopyActivity",
"inputs": [ {"name": "OnPremSQLTable"} ],
"outputs": [ {"name": "OutputBlobTable"} ],
"transformation":
{
"source":
{
"type": "SqlSource",
"sqlReaderQuery": "select * from nyctaxi_data"
},
"sink":
{
"type": "BlobSink"
}
},
"Policy":
{
"concurrency": 3,
"executionPriorityOrder": "NewestFirst",
"style": "StartOfInterval",
"retry": 0,
"timeout": "01:00:00"
}
},
{
"name": "CopyFromBlobtoSQLAzure",
"description": "Push data to Sql Azure",
"type": "CopyActivity",
"inputs": [ {"name": "OutputBlobTable"} ],
"outputs": [ {"name": "OutputSQLAzureTable"} ],
"transformation":
{
"source":
{
"type": "BlobSource"
},
"sink":
{
"type": "SqlSink",
"WriteBatchTimeout": "00:5:00",
}
},
"Policy":
{
"concurrency": 3,
"executionPriorityOrder": "NewestFirst",
"style": "StartOfInterval",
"retry": 2,
"timeout": "02:00:00"
}
}
]
}
}
Azure PowerShell
Inicio de la canalización
La canalización ya se puede ejecutar mediante el comando siguiente:
Azure PowerShell
Los valores de los parámetros startdate y enddate deben reemplazarse por las fechas
reales entre las que desea que se ejecute la canalización.
Una vez que se ejecuta la canalización, debe poder ver los datos que aparecen en el
contenedor seleccionado para el blob, en este caso, un archivo por día.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Los datos de calidad son un requisito previo para los modelos predictivos de calidad.
Para evitar la "entrada y salida de elementos no utilizados" y mejorar la calidad de los
datos y, por tanto, el rendimiento del modelo, es fundamental llevar a cabo una pantalla
de mantenimiento de datos para detectar problemas de datos al principio y decidir
acerca de los pasos de limpieza y preprocesamiento de datos correspondientes.
El número de registros.
El número de atributos (o características).
Los tipos de datos de atributo (nominales, ordinales o continuos).
El número de valores que faltan.
Datos con formato correcto.
Si los datos se encuentran en TSV o CSV, comprueba que los separadores de
columnas y los separadores de líneas siempre separen correctamente líneas y
columnas.
Si los datos están en formato HTML o XML, compruebe si los datos tienen el
formato correcto basándose en sus estándares respectivos.
El análisis también puede ser necesario para extraer información estructurada
de datos semiestructurados o no estructurados.
Registros de datos incoherentes. Compruebe el intervalo de valores permitidos,
por ejemplo. Por ejemplo, si los datos contienen GPA (promedio de calificaciones)
de estudiantes, compruebe si el GPA está en el intervalo designado, por ejemplo,
0~4.
Cuando encuentre problemas con los datos, serán necesarios los pasos de
procesamiento que implican a menudo limpieza de los valores que faltan,
normalización de datos, discretización, proceso para quitar o reemplazar caracteres
incrustados que puedan afectar a la alineación de datos y tipos de datos mixtos en
campos comunes, entre otros.
Azure Machine Learning consume datos tabulares con formato correcto. Si los datos
ya están en formato tabular, el preprocesamiento de los datos se puede realizar
directamente con Azure Machine Learning Studio (clásico) en Machine Learning. Si los
datos no están en formato tabular, por ejemplo, XML, se puede requerir el análisis para
convertir los datos en formato tabular.
¿Cuáles son algunas de las tareas principales de
preprocesamiento de datos?
Limpieza de datos: rellene los valores que faltan, detecte y quite los valores
atípicos y los datos con ruido.
Transformación de datos: normalice datos para reducir el ruido y las dimensiones.
Reducción de datos: atributos o registros de datos de ejemplo para un control de
datos más sencillo.
Discretización de datos: convierta atributos continuos en atributos de categorías
para facilitar su uso con determinados métodos de aprendizaje automático.
Limpieza de texto: quite caracteres incrustados que puedan ocasionar errores en
la alineación de los datos, por ejemplo, pestañas incrustadas en un archivo de
datos separado por tabulaciones o nuevas líneas incrustadas que pueden dividirse
en registros.
exploración de los datos ofrece una vista anticipada de los datos. Una serie de
problemas de datos puede ser descubrieron durante este paso y los métodos
correspondientes pueden aplicarse para solucionar estos problemas. Es importante
formular preguntas como ¿cuál es la causa del problema y cómo se ha podido producir
el problema? Este proceso también le ayuda a decidir acerca de los pasos de
procesamiento de datos que deben llevarse a cabo para resolverlos. La identificación de
los casos de uso finales y los roles también se puede usar para priorizar el esfuerzo de
procesamiento de datos.
Referencias
_Minería de datos: conceptos y técnicas, Tercera edición, Morgan Kaufmann, 2011,
Jiawei Han, Micheline Kamber y Jian Pei
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Preprocesamiento de grandes conjuntos de datos con Azure Machine Learning
Azure Machine Learning Studio
¿Qué es Azure Machine Learning?
Recursos relacionados
Exploración de datos en el proceso de ciencia de datos en equipos
Muestreo de datos en contenedores de blob de Azure, SQL Server y tablas de Hive
Proceso de datos de Azure Blob Storage con análisis avanzado
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Exploración de datos en el proceso de
ciencia de datos en equipos
Artículo • 11/07/2023
Explore los datos del contenedor de blobs de Azure con el paquete Pandas de
Python.
Explore los datos de SQL Server mediante SQL y un lenguaje de programación
como Python.
Explore los datos de las tablas de Hive mediante consultas de Hive.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Requisitos previos
En este artículo se supone que ha:
1. Descargue los datos del blob de Azure con el siguiente código de ejemplo Python
mediante Blob service. Reemplace la variable en el código siguiente por sus valores
específicos:
Python
STORAGEACCOUNTURL= <storage_account_url>
STORAGEACCOUNTKEY= <storage_account_key>
LOCALFILENAME= <local_file_name>
CONTAINERNAME= <container_name>
BLOBNAME= <blob_name>
Python
Si necesita información más general sobre la lectura de una instancia de Azure Storage
Blob, consulte nuestra documentación Biblioteca cliente de Azure Storage Blob para
Python.
Python
2. Inspeccionar las primeras o las últimas filas del conjunto de datos, como se indica
a continuación:
Python
dataframe_blobdata.head(10)
dataframe_blobdata.tail(10)
3. Comprobar el tipo de datos como el que se importó cada columna mediante el
siguiente código de ejemplo:
Python
Python
dataframe_blobdata.describe()
Python
dataframe_blobdata['<column_name>'].value_counts()
6. Contar los valores que faltan frente al número real de entradas de cada columna,
mediante el siguiente código de ejemplo:
Python
7. Si hay valores que faltan para una columna determinada en los datos, puede
quitarlos como se indica:
Python
dataframe_blobdata_noNA = dataframe_blobdata.dropna()
dataframe_blobdata_noNA.shape
Otra forma de reemplazar los valores que faltan es a través de la función de modo:
Python
dataframe_blobdata_mode = dataframe_blobdata.fillna(
{'<column_name>': dataframe_blobdata['<column_name>'].mode()[0]})
Python
dataframe_blobdata['<column_name>'].value_counts().plot(kind='bar')
np.log(dataframe_blobdata['<column_name>']+1).hist(bins=50)
Python
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Los artículos siguientes describen cómo realizar un muestreo de los datos que se
almacenan en una de las siguientes ubicaciones de Azure:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
En este artículo se trata el muestreo de datos almacenados en Azure Blob Storage; para
ello, se descargan mediante programación y luego se realiza un muestreo de los
mismos con procedimientos escritos en Python.
¿Por qué realizar un muestreo de los datos? Si el conjunto de datos que pretende
analizar es grande, es recomendable reducirlo a un tamaño más pequeño, pero
representativo, que sea más manejable. El muestreo facilita el reconocimiento y la
exploración de los datos, así como el diseño de características. Su rol en el proceso de
análisis de Cortana es permitir la rápida creación de prototipos de las funciones de
procesamiento de datos y de los modelos de aprendizaje automático.
Python
STORAGEACCOUNTNAME= <storage_account_name>
STORAGEACCOUNTKEY= <storage_account_key>
LOCALFILENAME= <local_file_name>
CONTAINERNAME= <container_name>
BLOBNAME= <blob_name>
2. Leer los datos en una trama de datos de Pandas desde el archivo descargado
anteriormente.
Python
import pandas as pd
Python
# A 1 percent sample
sample_ratio = 0.01
sample_size = np.round(dataframe_blobdata.shape[0] * sample_ratio)
sample_rows = np.random.choice(dataframe_blobdata.index.values,
sample_size)
dataframe_blobdata_sample = dataframe_blobdata.ix[sample_rows]
Ahora se puede trabajar con el marco de datos anterior, con el ejemplo del uno por
ciento, para la generación y exploración de características más a fondo.
Python
dataframe.to_csv(os.path.join(os.getcwd(),LOCALFILENAME), sep='\t',
encoding='utf-8', index=False)
Python
STORAGEACCOUNTNAME= <storage_account_name>
LOCALFILENAME= <local_file_name>
STORAGEACCOUNTKEY= <storage_account_key>
CONTAINERNAME= <container_name>
BLOBNAME= <blob_name>
output_blob_service=BlobService(account_name=STORAGEACCOUNTNAME,account
_key=STORAGEACCOUNTKEY)
localfileprocessed = os.path.join(os.getcwd(),LOCALFILENAME) #assuming
file is in current working directory
try:
#perform upload
output_blob_service.put_block_blob_from_path(CONTAINERNAME,BLOBNAME,loc
alfileprocessed)
except:
print ("Something went wrong with uploading to the blob:"+
BLOBNAME)
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
En este artículo se trata cómo realizar una muestra de datos almacenados en SQL Server
en Azure con SQL o con el lenguaje de programación Python. También se muestra cómo
mover los datos de muestra a Azure Machine Learning guardándolos en un archivo,
cargándolos en un blob de Azure y leyéndolos en Azure Machine Learning Studio.
El muestreo de Python usa la biblioteca ODBC pyodbc para conectarse a SQL Server
en Azure y la biblioteca Pandas para realizar el muestreo.
7 Nota
En el código SQL de ejemplo en este documento se supone que los datos están en
un servidor SQL Server en Azure. Si no es así, consulte el artículo Mover datos a un
servidor SQL Server en una máquina virtual de Azure para obtener instrucciones
sobre cómo mover los datos a SQL Server en Azure.
¿Por qué realizar un muestreo de los datos? Si el conjunto de datos que pretende
analizar es grande, es recomendable reducirlo a un tamaño más pequeño, pero
representativo, que sea más manejable. El muestreo facilita el reconocimiento y la
exploración de los datos, así como el diseño de características. Su rol en el proceso de
ciencia de datos en equipos (TDSP) es permitir la rápida creación de prototipos de las
funciones de procesamiento de datos y de los modelos de aprendizaje automático.
Uso de SQL
En esta sección se describen varios métodos con SQL para realizar un muestreo
aleatorio simple con los datos de la base de datos. Elija un método basado en el tamaño
de los datos y su distribución.
Los dos elementos siguientes muestran cómo utilizar newid en SQL Server para realizar
el muestreo. El método que elija depende de lo aleatoria que desee que sea la muestra
(se supone que pk_id en el código de ejemplo siguiente es una clave principal generada
automáticamente).
SQL
Tablesample se puede usar igualmente para el muestreo de datos. Esta opción podría
ser un enfoque preferible si el tamaño de los datos es grande (suponiendo que los
datos de las distintas páginas no están correlacionados) y para que la consulta se
complete en un tiempo razonable.
SQL
SELECT *
FROM <table_name>
TABLESAMPLE (10 PERCENT)
7 Nota
Python
Python
import pandas as pd
# Query database and load the returned results in pandas data frame
data_frame = pd.read_sql('''select column1, column2... from <table_name>
tablesample (0.1 percent)''', conn)
Ahora puede trabajar con los datos de muestreo en la trama de datos de Pandas.
Python
dataframe.to_csv(os.path.join(os.getcwd(),LOCALFILENAME), sep='\t',
encoding='utf-8', index=False)
Python
output_blob_service=BlobService(account_name=STORAGEACCOUNTNAME,account
_key=STORAGEACCOUNTKEY)
localfileprocessed = os.path.join(os.getcwd(),LOCALFILENAME) #assuming
file is in current working directory
try:
#perform upload
output_blob_service.put_block_blob_from_path(CONTAINERNAME,BLOBNAME,loc
alfileprocessed)
except:
print ("Something went wrong with uploading blob:"+BLOBNAME)
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Este tema proporciona instrucciones sobre cómo realizar las siguientes acciones:
Requisitos previos
La biblioteca de cliente de Python se ha probado en los siguientes entornos:
Solicitudes
Python-dateutil
Pandas
Consola
Consola
Si tiene git instalado en su equipo, puede usar pip para instalar directamente desde el
repositorio de git:
Consola
Desde la interfaz web de Azure Machine Learning Studio (clásico), puede generar
fragmentos de código que incluyen toda la información necesaria para descargar y
deserializar conjuntos de datos como objetos pandas DataFrame en la máquina local.
Si su rol no está establecido como Propietario, puede solicitar que se le vuelva a invitar
como propietario o pedir al propietario del área de trabajo que le proporcione el
fragmento de código.
El acceso a los conjuntos de datos intermedios es posible siempre que el formato de los
datos sea compatible con la biblioteca de cliente de Python.
PlainText
GenericCSV
GenericTSV
GenericCSVNoHeader
GenericTSVNoHeader
Los pasos siguientes muestran un ejemplo que crea un experimento, lo ejecuta y tiene
acceso al conjunto de datos intermedio.
4. Inserte un módulo Convertir en CSV y conecte su entrada a una de las salidas del
módulo División.
10. Puede visualizar los datos con matplotlib. Esto se muestra en un histograma de la
columna de tiempo:
Use la biblioteca de cliente de Python de
Machine Learning para obtener acceso, leer,
crear y administrar conjuntos de datos.
Área de trabajo
El área de trabajo es el punto de entrada para la biblioteca de cliente de Python.
Proporcione la clase Workspace junto con su identificador de área de trabajo y token de
autorización para crear una instancia:
Python
ws = Workspace(workspace_id='4c29e1adeba2e5a7cbeb0e4f4adfb4df',
authorization_token='f4f3ade2c6aefdb1afb043cd8bcf3daf')
Python
for ds in ws.datasets:
print(ds.name)
Python
for ds in ws.user_datasets:
print(ds.name)
Python
for ds in ws.example_datasets:
print(ds.name)
Puede tener acceso a un conjunto de datos por nombre (que distingue mayúsculas de
minúsculas):
Python
Python
ds = ws.datasets[0]
Metadatos
Los conjuntos de datos tienen metadatos, además de contenido. (Los conjuntos de
datos intermedios son una excepción a esta regla y no tienen metadatos).
print(ds.name)
print(ds.description)
print(ds.family_id)
print(ds.data_type_id)
print(ds.id)
print(ds.created_date)
print(ds.size)
Vea la clase SourceDataset para obtener más información sobre los metadatos
disponibles.
Leer contenido
Los fragmentos de código que proporciona Machine Learning Studio (clásico) descargan
y deserializan automáticamente el conjunto de datos a un objeto DataFrame de Pandas.
Esto se hace en el método to_dataframe :
Python
frame = ds.to_dataframe()
Si prefiere descargar los datos sin procesar y realizar la deserialización usted mismo,
tiene esa opción. En este momento, esta es la única opción para formatos como 'ARFF',
que la biblioteca de cliente de Python no puede deserializar.
Python
text_data = ds.read_as_text()
Python
binary_data = ds.read_as_binary()
Python
Python
dataset = ws.datasets.add_from_dataframe(
dataframe=frame,
data_type_id=DataTypeIds.GenericCSV,
name='my new dataset',
description='my description'
)
Python
dataset = ws.datasets.add_from_raw_data(
raw_data=raw_data,
data_type_id=DataTypeIds.GenericCSV,
name='my new dataset',
description='my description'
)
PlainText
GenericCSV
GenericTSV
GenericCSVNoHeader
GenericTSVNoHeader
Para actualizar un conjunto de datos existente, primero debe obtener una referencia al
conjunto de datos existente:
Python
dataset = ws.datasets['existing dataset']
print(dataset.data_type_id) # 'GenericCSV'
print(dataset.name) # 'existing dataset'
print(dataset.description) # 'data up to jan 2015'
Python
dataset.update_from_dataframe(frame2)
print(dataset.data_type_id) # 'GenericCSV'
print(dataset.name) # 'existing dataset'
print(dataset.description) # 'data up to jan 2015'
Python
dataset.update_from_dataframe(
dataframe=frame2,
data_type_id=DataTypeIds.GenericTSV,
)
print(dataset.data_type_id) # 'GenericTSV'
print(dataset.name) # 'existing dataset'
print(dataset.description) # 'data up to jan 2015'
Python
dataset.update_from_dataframe(
dataframe=frame2,
description='data up to feb 2015',
)
print(dataset.data_type_id) # 'GenericCSV'
print(dataset.name) # 'existing dataset'
print(dataset.description) # 'data up to feb 2015'
Python
dataset.update_from_dataframe(
dataframe=frame2,
name='existing dataset v2',
description='data up to feb 2015',
)
print(dataset.data_type_id) # 'GenericCSV'
print(dataset.name) # 'existing dataset v2'
print(dataset.description) # 'data up to feb 2015'
dataframe .
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Exploración y análisis de datos con Python
Biblioteca cliente del paquete de Azure ML para Python: versión 1.2.0
Recopilación y manipulación de datos
Recursos relacionados
Exploración de datos en el proceso de ciencia de datos en equipos
Muestreo de datos en contenedores de blob de Azure, SQL Server y tablas de Hive
Creación de características para datos de SQL Server con SQL y Python
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Ciencia de datos escalables con Azure
Data Lake
Artículo • 30/05/2023
Este tutorial muestra cómo utilizar Azure Data Lake para realizar tareas de exploración
de datos y clasificación binaria en una muestra del conjunto de datos de viajes y tarifas
de taxi de Nueva York. En el ejemplo se muestran procedimientos para predecir si se
paga o no una propina por una tarifa. Le guía a través de los pasos del proceso de
ciencia de datos en equipo, de un extremo a otro, desde la adquisición de datos hasta el
entrenamiento de modelos. A continuación, se muestra cómo implementar un servicio
web que publica el modelo.
Tecnologías
Estas tecnologías se utilizan en este tutorial.
Data Lake Analytics también es un elemento clave de Cortana Analytics Suite. Funciona
con Azure Synapse Analytics, Power BI y Data Factory. Esta combinación proporciona
una plataforma completa de análisis avanzado y macrodatos en la nube.
Este tutorial comienza con la descripción de la instalación de los requisitos previos y los
recursos necesarios para completar las tareas del proceso de ciencia de datos. A
continuación, se describen los pasos de procesamiento de datos mediante U-SQL y se
concluye con una demostración de cómo usar Python y Hive con Azure Machine
Learning Studio (clásico) para compilar e implementar los modelos predictivos.
Python
Este tutorial también contiene una sección que muestra cómo compilar e implementar
un modelo predictivo con el Estudio de Azure Machine Learning mediante Python.
Proporciona un Jupyter Notebook con los scripts de Python para los pasos de este
proceso. El cuaderno de Jupyter Notebook incluye código para varios pasos de
ingeniería de características adicionales y construcción de modelos, como la clasificación
multiclase y los modelos de regresión, además del modelo de clasificación binaria
descrito aquí. La tarea de la regresión consiste en predecir el importe de la propina en
función de otras características de la propina.
Scripts
En este tutorial solo se describen los principales pasos. Tanto el script U-SQL como
Jupyter Notebook se pueden descargar de GitHub .
Requisitos previos
Antes de empezar estos temas, debe tener lo siguiente:
7 Nota
En lugar de Visual Studio, también puede usar Azure Portal para enviar las
consultas de Azure Data Lake. Se proporcionan instrucciones sobre cómo hacerlo
con Visual Studio y en el portal, en la sección titulada Procesamiento de datos con
U-SQL.
Esta sección proporciona instrucciones sobre cómo crear cada uno de estos recursos. Si
opta por usar tablas de Hive con Azure Machine Learning, en lugar de Python, para
generar un modelo, también necesita aprovisionar un clúster de HDInsight (Hadoop).
Este procedimiento alternativo se describe en la sección de la opción 2.
7 Nota
Se puede crear Azure Data Lake Store por separado o cuando se crea Azure Data
Lake Analytics como almacenamiento predeterminado. Se hace referencia a las
instrucciones para crear cada uno de estos recursos por separado, pero no es
preciso crear la cuenta de almacenamiento de Data Lake de forma independiente.
Creación de una instancia de Azure Data Lake Storage
Cree un ADLS desde Azure Portal . Para más información, consulte Creación de un
clúster de HDInsight con Data Lake Store mediante Azure Portal. Asegúrese de
configurar la identidad de AAD del clúster en la hoja Origen de datos de la hoja
Configuración opcional descrita allí.
medallion,hack_license,vendor_id,rate_code,store_and_fwd_flag,pickup_datetime,dropo
ff_datetime,passenger_count,trip_time_in_secs,trip_distance,pickup_longitude,pickup
_latitude,dropoff_longitude,dropoff_latitude
89D227B655E5C82AECF13C3F540D4CF4,BA96DE419E711691B9445D6A6307C170,CMT,1,N,2013-01-
01 15:11:48,2013-01-01
15:18:10,4,382,1.00,-73.978165,40.757977,-73.989838,40.751171
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,1,N,2013-01-
06 00:18:35,2013-01-06 00:22:54,1,259,1.50,-74.006683,40.731781,-73.994499,40.75066
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,1,N,2013-01-
05 18:49:41,2013-01-05 18:54:23,1,282,1.10,-74.004707,40.73777,-74.009834,40.726002
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013-01-
07 23:54:15,2013-01-07 23:58:20,2,244,.70,-73.974602,40.759945,-73.984734,40.759388
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013-01-
07 23:25:03,2013-01-07 23:34:24,1,560,2.10,-73.97625,40.748528,-74.002586,40.747868
El archivo CSV 'trip_fare' contiene información detallada de la tarifa que se paga en cada
carrera, como el tipo de pago, el importe de la tarifa, los suplementos e impuestos, las
propinas y peajes, y el importe total pagado. Estos son algunos registros de ejemplo:
15:11:48,CSH,6.5,0,0.5,0,0,7
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,2013-01-06
00:18:35,CSH,6,0.5,0.5,0,0,7
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,2013-01-05
18:49:41,CSH,5.5,1,0.5,0,0,7
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,2013-01-07
23:54:15,CSH,5,0.5,0.5,0,0,6
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,2013-01-07
23:25:03,CSH,9.5,0.5,0.5,0,0,10.5
La clave única para unir trip_data y trip_fare se compone de los siguientes tres campos:
medallion, hack_license y pickup_datetime. Se puede acceder a los archivos CSV sin
formato desde un blob de Azure Storage. El script U-SQL para esta combinación está en
la sección Combinación de las tablas de carreras y tarifas .
Para ejecutar U-SQL, abra Visual Studio, haga clic en Archivo --> Nuevo --> Proyecto,
elija Proyecto U-SQL, asígnele un nombre y guárdelo en una carpeta.
7 Nota
Se puede usar el Portal de Azure para ejecutar U-SQL en lugar de Visual Studio.
Puede ir hasta al recurso de Azure Data Lake Analytics en el portal y enviar
consultas directamente, como se muestra en la ilustración siguiente:
SQL
Dado que hay encabezados en la primera fila, es preciso quitar los encabezados y
cambiar los tipos de columna por los apropiados. Puede guardar los datos procesados
en Azure Data Lake Storage
medianteswebhdfs://data_lake_storage_name.azuredatalakestorage.net/folder_name/f
ile_name_ o en la cuenta de Azure Blob Storage mediante
wasb://container_name@blob_storage_account_name.blob.core.windows.net/blob_na
me.
SQL
Del mismo modo se puede leer en los conjuntos de datos de tarifas. Haga clic con el
botón derecho en Azure Data Lake Storage; puede elegir ver los datos en Azure Portal -
-> Explorador de datos o en Explorador de archivos dentro de Visual Studio.
Comprobaciones de la calidad de los datos
Después de que se hayan leído las tablas de carreras y tarifas, las comprobaciones de la
calidad de los datos pueden realizarse de la manera siguiente. Los archivos CSV
resultantes pueden ser la salida de Blob Storage de Azure o de Azure Data Lake Storage.
SQL
@ex_1 =
SELECT
pickup_month,
COUNT(medallion) AS cnt_medallion,
COUNT(DISTINCT(medallion)) AS unique_medallion
FROM @trip2
GROUP BY pickup_month;
OUTPUT @ex_1
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_1.csv"
USING Outputters.Csv();
SQL
SQL
///find those invalid records in terms of pickup_longitude
@ex_3 =
SELECT COUNT(medallion) AS cnt_invalid_pickup_longitude
FROM @trip
WHERE
pickup_longitude <- 90 OR pickup_longitude > 90;
OUTPUT @ex_3
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_3.csv"
USING Outputters.Csv();
SQL
@trip_summary6 =
SELECT
vendor_id,
SUM(missing_medallion) AS medallion_empty,
COUNT(medallion) AS medallion_total,
COUNT(DISTINCT(medallion)) AS medallion_total_unique
FROM @res
GROUP BY vendor_id;
OUTPUT @trip_summary6
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_16.csv"
USING Outputters.Csv();
Exploración de datos
Podemos realizar una exploración de datos con los siguientes scripts para
comprenderlos mejor.
SQL
@ex_4 =
SELECT tipped,
COUNT(*) AS tip_freq
FROM @tip_or_not
GROUP BY tipped;
OUTPUT @ex_4
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_4.csv"
USING Outputters.Csv();
SQL
SQL
SQL
SQL
@model_data_full =
SELECT t.*,
f.payment_type, f.fare_amount, f.surcharge, f.mta_tax, f.tolls_amount,
f.total_amount, f.tip_amount,
(f.tip_amount > 0 ? 1: 0) AS tipped,
(f.tip_amount >20? 4: (f.tip_amount >10? 3:(f.tip_amount >5 ? 2:
(f.tip_amount > 0 ? 1: 0)))) AS tip_class
FROM @trip AS t JOIN @fare AS f
ON (t.medallion == f.medallion AND t.hack_license == f.hack_license AND
t.pickup_datetime == f.pickup_datetime)
WHERE (pickup_longitude != 0 AND dropoff_longitude != 0 );
SQL
// contingency table
@trip_summary8 =
SELECT passenger_count,
COUNT(*) AS cnt,
AVG(tip_amount) AS avg_tip_amount,
VAR(tip_amount) AS var_tip_amount,
SUM(tipped) AS cnt_tipped,
(float)SUM(tipped)/COUNT(*) AS pct_tipped
FROM @model_data_full
GROUP BY passenger_count;
OUTPUT @trip_summary8
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_17.csv"
USING Outputters.Csv();
Muestreo de datos
En primer lugar, se selecciona aleatoriamente un 0,1 % de los datos de la tabla
combinada:
SQL
@model_data_random_sample_1_1000 =
SELECT *
FROM @addrownumberres_randomsample
WHERE rownum % 1000 == 0;
OUTPUT @model_data_random_sample_1_1000
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_7_random_1_1000.csv"
USING Outputters.Csv();
SQL
@model_data_stratified_sample_1_1000 =
SELECT *
FROM @addrownumberres_stratifiedsample
WHERE rownum % 1000 == 0;
//// output to blob
OUTPUT @model_data_stratified_sample_1_1000
TO
"wasb://container_name@blob_storage_account_name.blob.core.windows.net/demo_
ex_9_stratified_1_1000.csv"
USING Outputters.Csv();
////output data to ADL
OUTPUT @model_data_stratified_sample_1_1000
TO
"swebhdfs://data_lake_storage_name.azuredatalakestore.net/nyctaxi_folder/dem
o_ex_9_stratified_1_1000.csv"
USING Outputters.Csv();
En la primera opción, usar los datos muestreados que se han escrito en un blob de
Azure (en el paso anterior, Muestreo de datos ) y usar Python para generar e
implementar modelos desde Azure Machine Learning.
En la segunda opción, consultar los datos en Azure Data Lake directamente
mediante una consulta de Hive. Para esta opción es necesario que cree un clúster
de HDInsight o use uno existente en el que las tablas de Hive apunten a los datos
de los taxis de Nueva York en el almacenamiento de Azure Data Lake. Ambas
opciones se describen en las siguientes secciones.
Python
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import matplotlib.pyplot as plt
from time import time
import pyodbc
import os
from azure.storage.blob import BlobService
import tables
import time
import zipfile
import random
import sklearn
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import train_test_split
from sklearn import metrics
from __future__ import division
from sklearn import linear_model
from azureml import services
text
CONTAINERNAME = 'test1'
STORAGEACCOUNTNAME = 'XXXXXXXXX'
STORAGEACCOUNTKEY = 'YYYYYYYYYYYYYYYYYYYYYYYYYYYY'
BLOBNAME = 'demo_ex_9_stratified_1_1000_copy.csv'
blob_service =
BlobService(account_name=STORAGEACCOUNTNAME,account_key=STORAGEACCOUNTK
EY)
text
t1 = time.time()
data =
blob_service.get_blob_to_text(CONTAINERNAME,BLOBNAME).split("\n")
t2 = time.time()
print(("It takes %s seconds to read in "+BLOBNAME) % (t2 - t1))
text
colnames =
['medallion','hack_license','vendor_id','rate_code','store_and_fwd_flag
','pickup_datetime','dropoff_datetime',
'passenger_count','trip_time_in_secs','trip_distance','pickup_longitude
','pickup_latitude','dropoff_longitude','dropoff_latitude',
'payment_type', 'fare_amount', 'surcharge', 'mta_tax', 'tolls_amount',
'total_amount', 'tip_amount', 'tipped', 'tip_class', 'rownum']
df1 = pd.DataFrame([sub.split(",") for sub in data], columns =
colnames)
text
cols_2_float =
['trip_time_in_secs','pickup_longitude','pickup_latitude','dropoff_long
itude','dropoff_latitude',
'fare_amount',
'surcharge','mta_tax','tolls_amount','total_amount','tip_amount',
'passenger_count','trip_distance'
,'tipped','tip_class','rownum']
for col in cols_2_float:
df1[col] = df1[col].astype(float)
Python
df1_payment_type_dummy = pd.get_dummies(df1['payment_type'],
prefix='payment_type_dummy')
df1_vendor_id_dummy = pd.get_dummies(df1['vendor_id'],
prefix='vendor_id_dummy')
Python
X = data.iloc[:,1:]
Y = data.tipped
Python
model = LogisticRegression()
logit_fit = model.fit(X_train, Y_train)
print ('Coefficients: \n', logit_fit.coef_)
Y_train_pred = logit_fit.predict(X_train)
Python
Y_test_pred = logit_fit.predict(X_test)
Python
#AUC
print metrics.auc(fpr_train,tpr_train)
print metrics.auc(fpr_test,tpr_test)
#Confusion Matrix
print metrics.confusion_matrix(Y_train,Y_train_pred)
print metrics.confusion_matrix(Y_test,Y_test_pred)
Generación de API de servicio web y su consumo en
Python
Querrá poner en operación el modelo de aprendizaje automático una vez que se haya
compilado. Aquí se usa el modelo de logística binaria como ejemplo. Asegúrese de que
la versión de scikit-learn en su máquina local es la 0.15.1 (Azure Machine Learning
Studio ya tiene al menos esta versión).
Resultados
workspaceid = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
auth_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
@services.publish(workspaceid, auth_token)
@services.types(trip_distance = float, passenger_count = float,
payment_type_dummy_CRD = float, payment_type_dummy_CSH=float,
payment_type_dummy_DIS = float, payment_type_dummy_NOC = float,
payment_type_dummy_UNK = float, vendor_id_dummy_CMT = float,
vendor_id_dummy_VTS = float)
@services.returns(int) #0, or 1
def predictNYCTAXI(trip_distance, passenger_count,
payment_type_dummy_CRD, payment_type_dummy_CSH,payment_type_dummy_DIS,
payment_type_dummy_NOC, payment_type_dummy_UNK, vendor_id_dummy_CMT,
vendor_id_dummy_VTS ):
inputArray = [trip_distance, passenger_count,
payment_type_dummy_CRD, payment_type_dummy_CSH, payment_type_dummy_DIS,
payment_type_dummy_NOC, payment_type_dummy_UNK, vendor_id_dummy_CMT,
vendor_id_dummy_VTS]
return logit_fit.predict(inputArray)
Python
url = predictNYCTAXI.service.url
api_key = predictNYCTAXI.service.api_key
print url
print api_key
@services.service(url, api_key)
@services.types(trip_distance = float, passenger_count = float,
payment_type_dummy_CRD = float,
payment_type_dummy_CSH=float,payment_type_dummy_DIS = float,
payment_type_dummy_NOC = float, payment_type_dummy_UNK = float,
vendor_id_dummy_CMT = float, vendor_id_dummy_VTS = float)
@services.returns(float)
def NYCTAXIPredictor(trip_distance, passenger_count,
payment_type_dummy_CRD, payment_type_dummy_CSH,payment_type_dummy_DIS,
payment_type_dummy_NOC, payment_type_dummy_UNK, vendor_id_dummy_CMT,
vendor_id_dummy_VTS ):
pass
Llame a una API de servicio web. Después del paso anterior, normalmente tendrá
que esperar entre 5 y 10 segundos.
Python
NYCTAXIPredictor(1,2,1,0,0,0,0,0,1)
Opción 2: Crear e implementar modelos
directamente en Azure Machine Learning
Azure Machine Learning Studio (clásico) puede leer datos directamente desde Azure
Data Lake Storage y después usarse para crear e implementar modelos. Este enfoque
usa una tabla de Hive que apunta a Azure Data Lake Storage. Se debe aprovisionar un
clúster de Azure HDInsight independiente para la tabla de Hive.
Luego, haga clic en Panel junto al botón Configuración y emergerá una ventana. Haga
clic en Vista de Hive en la esquina superior derecha de la página y verá el Editor de
consultas.
Para crear una tabla, pegue los siguientes scripts de Hive. La ubicación del origen de
datos está en la referencia de Azure Data Lake Storage de esta forma:
adl://data_lake_store_name.azuredatalakestore.net:443/folder_name/file_name.
HiveQL
1. Proporcione los datos a Azure Machine Learning Studio (clásico) con el módulo
Importar datos, disponible en la sección Entrada y salida de datos. Para obtener
más información, consulte la página de referencia sobre el módulo Importar datos
.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Proceso de ciencia de datos en equipos en acción: uso de Azure Synapse Analytics
Información general sobre el proceso de ciencia de datos con Spark en HDInsight
de Azure
Recursos relacionados
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Aprendizaje automático a escala
Proceso de datos en una máquina
virtual de SQL Server en Azure
Artículo • 30/05/2023
En este documento se aborda cómo explorar datos y generar características para los
datos almacenados en una VM de SQL Server en Azure. Este objetivo puede alcanzarse
mediante la administración de datos usando SQL o mediante un lenguaje de
programación, como Python.
7 Nota
En las instrucciones SQL de ejemplo de este documento se supone que los datos
están en SQL Server. Si no lo están, consulte el mapa de proceso de ciencia de
datos en la nube para obtener información sobre cómo mover los datos a SQL
Server.
Uso de SQL
En esta sección, se describen las siguientes tareas de tratamiento de datos mediante
SQL:
1. Exploración de datos
2. Generación de características
Exploración de datos
A continuación se muestran algunos scripts de SQL de ejemplo que se pueden usar para
explorar los almacenes de datos en SQL Server.
7 Nota
Para obtener un ejemplo práctico, puede usar el conjunto de datos NYC Taxi
dataset y consultar el IPNB denominado NYC Data wrangling using IPython
Notebook and SQL Server (Tratamiento de datos de la ciudad de Nueva York
mediante IPython Notebook y SQL Server), que ofrece un tutorial completo.
<column_b>
Generación de características
En esta sección, se describen formas de generar características mediante SQL:
7 Nota
SQL
SQL
Aquí se incluye un breve manual sobre los datos de ubicación de latitud y longitud
(extraído de stackoverflow How to measure the accuracy of latitude and longitude?
(¿Cómo medir la precisión de la latitud y la longitud?)). Es útil comprender esta guía
antes de incluir la ubicación como una o más características:
SQL
select
<location_columnname>
,round(<location_columnname>,0) as l1
,l2=case when LEN (PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1)) >= 1 then
substring(PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1),1,1) else '0' end
,l3=case when LEN (PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1)) >= 2 then
substring(PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1),2,1) else '0' end
,l4=case when LEN (PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1)) >= 3 then
substring(PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1),3,1) else '0' end
,l5=case when LEN (PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1)) >= 4 then
substring(PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1),4,1) else '0' end
,l6=case when LEN (PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1)) >= 5 then
substring(PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1),5,1) else '0' end
,l7=case when LEN (PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1)) >= 6 then
substring(PARSENAME(round(ABS(<location_columnname>) -
FLOOR(ABS(<location_columnname>)),6),1),6,1) else '0' end
from <tablename>
Estas características basadas en ubicación se pueden usar aún más para generar
características de recuento adicionales, tal y como se describió anteriormente.
Sugerencia
Puede insertar mediante programación los registros con el lenguaje que prefiera. Es
posible que deba insertar los datos en fragmentos para mejorar el rendimiento de
escritura (para obtener un ejemplo de cómo obtener esto mediante pyodbc,
consulte A HelloWorld sample to access SQLServer with python (Un ejemplo
Hola a todos para acceder a SQLServer con python)). Otra alternativa consiste en
insertar datos en la base de datos mediante la utilidad BCP.
El formato de cadena de conexión siguiente puede usarse para conectarse a una base
de datos de SQL Server desde Python mediante pyodbc (reemplace servername,
dbname, username y password con sus valores específicos):
Python
Python
# Query database and load the returned results in pandas data frame
data_frame = pd.read_sql('''select <columnname1>, <columnname2>... from
<tablename>''', conn)
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Azure Machine Learning tiene una gran biblioteca de algoritmos de las familias de
clasificación, sistemas de recomendación, agrupación en clústeres, detección de
anomalías, regresión y análisis de texto. Cada uno de ellos está diseñado para resolver
un tipo de problema de aprendizaje automático diferente.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
En este conjunto de temas se muestra cómo utilizar Spark en HDInsight para completar
tareas comunes de ciencia de datos como la ingesta de datos, el diseño de
características, el modelado y la evaluación de modelos. Los datos que se utilizan son un
ejemplo del conjunto de datos de carreras y tarifas de taxi de la ciudad de Nueva York
en 2013 Los modelos creados incluyen regresión logística y lineal, bosques aleatorios y
árboles impulsados por gradiente: En los temas también se muestra cómo almacenar
estos modelos en el Azure Blob Storage (WASB) y cómo puntuar y evaluar su
rendimiento predictivo. En los temas más avanzados se describe cómo se pueden
entrenar los modelos mediante validación cruzada y barrido de hiperparámetros. En
este tema introductorio también se hace referencia al tema en el que se describe cómo
configurar un clúster de Spark que se necesita para completar los pasos de los tutoriales
proporcionados.
Spark y MLlib
Spark es una plataforma de procesamiento paralelo de código abierto que admite el
procesamiento en memoria para mejorar el rendimiento de las aplicaciones de análisis
de macrodatos. El motor de procesamiento Spark se ha creado para ofrecer velocidad,
facilidad de uso y análisis sofisticados. Las capacidades de cálculo distribuido en
memoria de Spark lo convierten en una buena opción para algoritmos iterativos en los
cálculos de gráficos y aprendizaje automático. MLlib es la biblioteca de aprendizaje
automático escalable de Spark que ofrece funcionalidades de modelado algorítmico en
este entorno distribuido.
HDInsight Spark
Spark en HDInsight es la oferta de Spark de código abierto hospedada por Azure.
También incluye compatibilidad con cuadernos de PySpark para Jupyter en el clúster de
Spark, que pueden ejecutar consultas interactivas de Spark SQL para transformar, filtrar
y visualizar los datos almacenados en blobs de Azure (WASB). PySpark es la API de
Python para Spark. Los fragmentos de código que proporcionan las soluciones y
muestran los trazados relevantes para visualizar los datos aquí se ejecutan en cuadernos
de Jupyter instalados en los clústeres de Spark. En estos temas, los pasos de modelado
también contienen código que muestra cómo entrenar, evaluar, guardar y usar cada
tipo de modelo.
pySpark-machine-learning-data-science-spark-data-exploration-modeling.ipynb :
ofrece información sobre cómo realizar el modelado, la puntuación y la
exploración de datos con diversos algoritmos.
pySpark-machine-learning-data-science-spark-advanced-data-exploration-
modeling.ipynb : incluye temas del cuaderno n.º 1 y el desarrollo de modelos
mediante el ajuste de hiperparámetros y la validación cruzada.
pySpark-machine-learning-data-science-spark-model-consumption.ipynb :
muestra cómo poner en funcionamiento un modelo guardado con Python en
clústeres de HDInsight.
Spark2.0-pySpark3-machine-learning-data-science-spark-advanced-data-
exploration-modeling.ipynb : En este archivo se ofrece información sobre cómo
realizar el modelado, la puntuación y la exploración de datos en clústeres de Spark
2.0 con el conjunto de datos de carreras y tarifas de taxi de Nueva York que se
describe aquí. Este cuaderno puede ser un buen punto de partida para explorar
rápidamente el código proporcionado para Spark 2.0. Para obtener un análisis más
pormenorizado de los datos del cuaderno sobre taxis en Nueva York, vea el
siguiente cuaderno de esta lista. En las notas que encontrará después de esta lista
se establece una comparación de estos cuadernos.
Spark2.0-pySpark3_NYC_Taxi_Tip_Regression.ipynb : En este archivo se muestra
cómo realizar la limpieza y transformación de datos (operaciones de dataframe y
Spark SQL), la exploración, el modelado y la puntuación con el conjunto de datos
de carreras y tarifas de taxi de Nueva York descrito aquí.
Spark2.0-pySpark3_Airline_Departure_Delay_Classification.ipynb : En este archivo
se muestra cómo realizar la limpieza y transformación de datos (operaciones de
dataframe y Spark SQL), la exploración, el modelado y la puntuación con el
conocido conjunto de datos de salidas puntuales de líneas aéreas de 2011 y 2012.
Se ha integrado el conjunto de datos de las líneas aéreas con los datos
climatológicos del aeropuerto (por ejemplo, velocidad del viento, temperatura,
altitud, etc.), antes de realizar el modelado, con el fin de poder incluir estas
características climatológicas en el modelo.
7 Nota
El conjunto de datos de las líneas aéreas se agregó a los cuadernos de Spark 2.0
para ilustrar mejor el uso de algoritmos de clasificación. Consulte los siguientes
vínculos para obtener información sobre el conjunto de datos de salidas puntuales
de las líneas aéreas y sobre el de datos climatológicos:
7 Nota
Los cuadernos de Spark 2.0 sobre los conjuntos de datos de los taxis de Nueva York
y de retrasos en los vuelos pueden tardar 10 minutos o más en ejecutarse
(dependiendo del tamaño del clúster de HDI). El primer cuaderno de la lista
anterior muestra muchos aspectos de la exploración de datos, la visualización y el
entrenamiento del modelo de ML en un cuaderno que tarda menos tiempo en
ejecutarse con conjuntos de datos de NYC de bajo muestreo, al que se han unido
previamente los archivos de taxi y tarifas: Spark2.0-pySpark3-machine-learning-
data-science-spark-advanced-data-exploration-modeling.ipynb . Este cuaderno
tarda menos tiempo en finalizar (2-3 minutos) y puede ser un buen punto de
partida para explorar rápidamente el código proporcionado para Spark 2.0.
Prerrequisitos
Los procedimientos siguientes están relacionados con Spark 1.6. En la versión Spark 2.0,
use los cuadernos descritos anteriormente, con sus correspondientes vínculos.
1. Debe tener una suscripción de Azure. Si aún no tiene una, consulte Get Azure free
trial (Obtener una evaluación gratuita de Azure).
2. Para completar este tutorial se necesita un clúster de Spark 1.6. Para crear uno,
consulte las instrucciones proporcionadas en Introducción: creación de clústeres
de Apache Spark en HDInsight para Linux y ejecución de consultas interactivas
mediante Spark SQL (versión preliminar). En el menú Seleccionar tipo de clúster se
especifica el tipo de clúster y la versión.
7 Nota
Si quiere leer un tema que muestre cómo utilizar Scala en lugar de Python para
completar las tareas de un proceso de ciencia de datos de un extremo a otro,
consulte Ciencia de datos mediante Scala con Spark de Azure.
2 Advertencia
1. Los archivos CSV 'trip_data' contienen información detallada de las carreras, como
el número de pasajeros, los puntos de recogida y destino, la duración de las
carreras y la longitud del recorrido. Estos son algunos registros de ejemplo:
medallion,hack_license,vendor_id,rate_code,store_and_fwd_flag,pickup_datetime,
dropoff_datetime,passenger_count,trip_time_in_secs,trip_distance,pickup_longit
ude,pickup_latitude,dropoff_longitude,dropoff_latitude
89D227B655E5C82AECF13C3F540D4CF4,BA96DE419E711691B9445D6A6307C170,CMT,1,N,2013
-01-01 15:11:48,2013-01-01
15:18:10,4,382,1.00,-73.978165,40.757977,-73.989838,40.751171
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,1,N,2013
-01-06 00:18:35,2013-01-06
00:22:54,1,259,1.50,-74.006683,40.731781,-73.994499,40.75066
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,1,N,2013
-01-05 18:49:41,2013-01-05
18:54:23,1,282,1.10,-74.004707,40.73777,-74.009834,40.726002
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013
-01-07 23:54:15,2013-01-07
23:58:20,2,244,.70,-73.974602,40.759945,-73.984734,40.759388
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013
-01-07 23:25:03,2013-01-07
23:34:24,1,560,2.10,-73.97625,40.748528,-74.002586,40.747868
89D227B655E5C82AECF13C3F540D4CF4,BA96DE419E711691B9445D6A6307C170,CMT,2013-01-
01 15:11:48,CSH,6.5,0,0.5,0,0,7
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,2013-01-
06 00:18:35,CSH,6,0.5,0.5,0,0,7
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,2013-01-
05 18:49:41,CSH,5.5,1,0.5,0,0,7
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,2013-01-
07 23:54:15,CSH,5,0.5,0.5,0,0,6
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,2013-01-
07 23:25:03,CSH,9.5,0.5,0.5,0,0,10.5
Hemos tomado una muestra del 0,1 % de estos archivos y unido los archivos CSV
trip_data y trip_fare en un único conjunto de datos que se usará como conjunto de
datos de entrada en este tutorial. La clave única para unir trip_data y trip_fare se
compone de los campos: medallion, hack_licence y pickup_datetime. Cada registro del
conjunto de datos contiene los siguientes atributos que representan una carrera de taxi
de Nueva York:
surcharge Suplemento
tip_class Clase de propina (0: 0 USD, 1: 0-5 USD, 2: 6-10 USD, 3: 11-20 USD, 4:
>20 USD)
Ejecución del código desde un Notebook de
Jupyter en el clúster de Spark
Puede iniciar Jupyter Notebook desde el portal de Azure. Busque el clúster de Spark en
el panel y haga clic en él para entrar en la página de administración del clúster. Para
abrir el cuaderno asociado al clúster de Spark, haga clic en Paneles de clúster: >Jupyter
Notebook.
Sugerencia
Puede hacer clic con el botón derecho en los vínculos del explorador y seleccionar
Copiar vínculo para obtener la dirección URL del contenido sin procesar de GitHub.
Puede pegar esta dirección URL en el cuadro de diálogo del explorador de carga de
archivos de Jupyter.
Ahora puede:
Sugerencia
Autor principal:
Pasos siguientes
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Aprendizaje automático a escala
Ciencia de datos mediante Scala y Spark
en Azure
Artículo • 11/07/2023
Este artículo muestra cómo utilizar Scala para tareas de aprendizaje automático
supervisado con los paquetes MLlib escalable y ML de Spark en un clúster de Spark en
HDInsight de Azure. Además, se explican cuáles son las tareas que constituyen el
proceso de ciencia de datos: exploración e ingesta de datos, visualización, ingeniería de
características, modelado y consumo de modelos. Los modelos en el artículo incluyen
regresión logística y lineal, bosques aleatorios y árboles incrementados de degradado
(GBTs), además de dos tareas habituales de aprendizaje automático supervisado:
Problema de regresión: predicción de propinas (en dólares) por una carrera de taxi
Clasificación binaria: predicción de si se dará propina o no (1/0) en una carrera de
taxi
Scala es un lenguaje basado en la Máquina virtual Java que integra los conceptos del
lenguaje funcional y la programación orientada a objetos. Se trata de un lenguaje
escalable apropiado para efectuar el procesamiento distribuido en la nube y que se
ejecuta en los clústeres de Spark de Azure.
Los pasos de instalación y el código de este artículo están diseñados para Spark 1.6 con
HDInsight de Azure 3.4. Sin embargo, este código y el de Jupyter Notebook de Scala
son genéricos y deberían funcionar en cualquier clúster de Spark. Los pasos de
configuración y administración del clúster pueden ser ligeramente diferentes de los que
se muestran aquí si no está usando Spark en HDInsight.
7 Nota
Si quiere leer un tema que muestre cómo utilizar Python en lugar de Scala para
completar las tareas de un proceso de ciencia de datos de un extremo a otro,
consulte Información general sobre la ciencia de los datos con Spark en
HDInsight de Azure.
Requisitos previos
Debe tener una suscripción de Azure. Si aún no tiene una, consiga una evaluación
gratuita de Azure .
Necesita un clúster de Spark 1.6 con HDInsight de Azure 3.4 para completar los
procedimientos siguientes. Para crear un clúster, consulte las instrucciones
proporcionadas en Introducción: creación de clústeres Apache Spark en HDInsight
para Linux y ejecución de consultas interactivas mediante Spark SQL. Establezca el
tipo de clúster y la versión en el menú Seleccionar tipo de clúster .
2 Advertencia
Para ver una descripción de los datos de taxis de Nueva York y las instrucciones para
ejecutar código desde un cuaderno de Jupyter Notebook en el clúster de Spark,
consulte las secciones apropiadas de Información general sobre la ciencia de los datos
con Spark en HDInsight de Azure.
Exploration-Modeling-and-Scoring-using-Scala.ipynb
Los kernels de Spark que se proporcionan con cuadernos de Jupyter Notebook tienen
contextos preestablecidos. No es necesario establecer explícitamente los contextos de
Spark o Hive antes de empezar a trabajar con la aplicación que se esté desarrollando.
Los contextos preestablecidos son:
sc para SparkContext
Para más información sobre los kernels de cuadernos de Jupyter Notebook y las
"instrucciones mágicas" predefinidas que llama con %% (por ejemplo, %%local ), vea
Kernels disponibles para cuadernos de Jupyter con clústeres de Apache Spark en
HDInsight Linux.
Importación de bibliotecas
Importe las bibliotecas de Spark, MLlib y otras que necesite con el siguiente código.
Scala
# SPECIFY SQLCONTEXT
val sqlContext = new SQLContext(sc)
Ingesta de datos
El primer paso en el proceso de ciencia de datos es introducir los datos que desea
analizar. Se traen los datos de orígenes o sistemas externos en los que residan a su
entorno de exploración y modelado de datos. En este artículo, los datos introducidos
representan conjuntamente un 0,1 % del archivo de carreras y tarifas de taxi
(almacenado como un archivo .tsv). El entorno de exploración y modelado de datos es
Spark. Esta sección contiene el código para completar una serie de tareas:
# CREATE AN INITIAL DATA FRAME AND DROP COLUMNS, AND THEN CREATE A CLEANED
DATA FRAME BY FILTERING FOR UNWANTED VALUES OR OUTLIERS
val taxi_train_df = sqlContext.createDataFrame(taxi_temp, taxi_schema)
val taxi_df_train_cleaned =
(taxi_train_df.drop(taxi_train_df.col("medallion"))
.drop(taxi_train_df.col("hack_license")).drop(taxi_train_df.col("store_and_f
wd_flag"))
.drop(taxi_train_df.col("pickup_datetime")).drop(taxi_train_df.col("dropoff_
datetime"))
.drop(taxi_train_df.col("pickup_longitude")).drop(taxi_train_df.col("pickup_
latitude"))
.drop(taxi_train_df.col("dropoff_longitude")).drop(taxi_train_df.col("dropof
f_latitude"))
.drop(taxi_train_df.col("surcharge")).drop(taxi_train_df.col("mta_tax"))
.drop(taxi_train_df.col("direct_distance")).drop(taxi_train_df.col("tolls_am
ount"))
.drop(taxi_train_df.col("total_amount")).drop(taxi_train_df.col("tip_class")
)
.filter("passenger_count > 0 and passenger_count < 8 AND
payment_type in ('CSH', 'CRD') AND tip_amount >= 0 AND tip_amount < 30 AND
fare_amount >= 1 AND fare_amount < 150 AND trip_distance > 0 AND
trip_distance < 100 AND trip_time_in_secs > 30 AND trip_time_in_secs <
7200"));
Salida:
Scala
Salida:
Scala
En el código siguiente, la instrucción mágica %%local crea una trama de datos local,
sqlResults. Puede utilizar sqlResults para el trazado mediante matplotlib.
Sugerencia
Trazado de datos
Se pueden trazar datos con código Python cuando la trama de datos esté en el contexto
local como trama de datos de Pandas.
Scala
Tabla
Gráfico circular
Línea
Área
Barras
Scala
# RUN THE CODE LOCALLY ON THE JUPYTER SERVER AND IMPORT LIBRARIES
%%local
import matplotlib.pyplot as plt
%matplotlib inline
# PLOT TIP BY PAYMENT TYPE AND PASSENGER COUNT
ax1 = sqlResults[['tip_amount']].plot(kind='hist', bins=25,
facecolor='lightblue')
ax1.set_title('Tip amount distribution')
ax1.set_xlabel('Tip Amount ($)')
ax1.set_ylabel('Counts')
plt.suptitle('')
plt.show()
Salida:
Creación y transformación de características, y
preparación de datos para su entrada en
funciones de modelado
Para utilizar las funciones de modelado de árbol en SparkML y MLlib, el destino y las
características se deben preparar mediante diferentes técnicas, como discretización,
indexación, codificación "one-hot" y vectorización. Estos son los procedimientos que
seguir en esta sección:
Scala
# CACHE THE DATA FRAME IN MEMORY AND MATERIALIZE THE DATA FRAME IN MEMORY
taxi_df_train_with_newFeatures.cache()
taxi_df_train_with_newFeatures.count()
Aquí solo transformamos cuatro variables para mostrar los ejemplos, que son cadenas
de caracteres. También se pueden indexar otras variables como variables categóricas
(por ejemplo, el día de la semana) que se representan mediante valores numéricos.
categóricas:
Scala
Salida:
Se agrega un número aleatorio (entre 0 y 1) a cada fila (en una columna llamada "rand")
que puede utilizarse para seleccionar subconjuntos de validación cruzada durante el
entrenamiento.
Scala
# SPLIT THE SAMPLED DATA FRAME INTO TRAIN AND TEST, WITH A RANDOM COLUMN
ADDED FOR DOING CROSS-VALIDATION (SHOWN LATER)
# INCLUDE A RANDOM COLUMN FOR CREATING CROSS-VALIDATION FOLDS
val splits = encodedFinalSampled.randomSplit(Array(trainingFraction,
testingFraction), seed = seed)
val trainData = splits(0)
val testData = splits(1)
Salida:
# CREATE INDEXED DATA FRAMES THAT YOU CAN USE TO TRAIN BY USING SPARK ML
FUNCTIONS
val indexedTRAINbinaryDF = indexedTRAINbinary.toDF()
val indexedTESTbinaryDF = indexedTESTbinary.toDF()
val indexedTRAINregDF = indexedTRAINreg.toDF()
val indexedTESTregDF = indexedTESTreg.toDF()
# CREATE ONE-HOT ENCODED (VECTORIZED) DATA FRAMES THAT YOU CAN USE TO TRAIN
BY USING SPARK ML FUNCTIONS
val assemblerOneHot = new VectorAssembler().setInputCols(Array("paymentVec",
"vendorVec", "rateVec", "TrafficTimeBinsVec", "pickup_hour", "weekday",
"passenger_count", "trip_time_in_secs", "trip_distance",
"fare_amount")).setOutputCol("features")
val OneHotTRAIN = assemblerOneHot.transform(trainData)
val OneHotTEST = assemblerOneHot.transform(testData)
Salida:
Scala
# CATEGORIZE FEATURES AND BINARIZE THE TARGET FOR THE BINARY CLASSIFICATION
PROBLEM
# TRAIN DATA
val indexer = new
VectorIndexer().setInputCol("features").setOutputCol("featuresCat").setMaxCa
tegories(32)
val indexerModel = indexer.fit(indexedTRAINbinaryDF)
val indexedTrainwithCatFeat = indexerModel.transform(indexedTRAINbinaryDF)
val binarizer: Binarizer = new
Binarizer().setInputCol("label").setOutputCol("labelBin").setThreshold(0.5)
val indexedTRAINwithCatFeatBinTarget =
binarizer.transform(indexedTrainwithCatFeat)
# TEST DATA
val indexerModel = indexer.fit(indexedTESTbinaryDF)
val indexedTrainwithCatFeat = indexerModel.transform(indexedTESTbinaryDF)
val binarizer: Binarizer = new
Binarizer().setInputCol("label").setOutputCol("labelBin").setThreshold(0.5)
val indexedTESTwithCatFeatBinTarget =
binarizer.transform(indexedTrainwithCatFeat)
# TRAIN DATA
val indexer = new
VectorIndexer().setInputCol("features").setOutputCol("featuresCat").setMaxCa
tegories(32)
val indexerModel = indexer.fit(indexedTRAINregDF)
val indexedTRAINwithCatFeat = indexerModel.transform(indexedTRAINregDF)
# TEST DATA
val indexerModel = indexer.fit(indexedTESTbinaryDF)
val indexedTESTwithCatFeat = indexerModel.transform(indexedTESTregDF)
Scala
# LOAD THE SAVED MODEL AND SCORE THE TEST DATA SET
val savedModel =
org.apache.spark.ml.classification.LogisticRegressionModel.load(filename)
println(s"Coefficients: ${savedModel.coefficients} Intercept:
${savedModel.intercept}")
Salida:
Use Python en las tramas de datos locales de Pandas para trazar la curva de ROC.
Scala
# RUN THE CODE LOCALLY ON THE JUPYTER SERVER AND IMPORT LIBRARIES
%%local
%matplotlib inline
from sklearn.metrics import roc_curve,auc
Salida:
Creación de un modelo de clasificación de bosque
aleatorio
Ahora, cree un modelo de clasificación de bosque aleatorio mediante la función
RandomForestClassifier() del aprendizaje automático de Spark y evalúe el modelo con
Scala
Salida:
Scala
# EVALUATE THE MODEL ON TEST INSTANCES AND THE COMPUTE TEST ERROR
val labelAndPreds = indexedTESTbinary.map { point =>
val prediction = gbtModel.predict(point.features)
(point.label, prediction)
}
val testErr = labelAndPreds.filter(r => r._1 != r._2).count.toDouble /
indexedTRAINbinary.count()
//println("Learned classification GBT model:\n" + gbtModel.toDebugString)
println("Test Error = " + testErr)
# USE BINARY AND MULTICLASS METRICS TO EVALUATE THE MODEL ON THE TEST DATA
val metrics = new MulticlassMetrics(labelAndPreds)
println(s"Precision: ${metrics.precision}")
println(s"Recall: ${metrics.recall}")
println(s"F1 Score: ${metrics.fMeasure}")
Salida:
# SUMMARIZE THE MODEL OVER THE TRAINING SET AND PRINT METRICS
val trainingSummary = lrModel.summary
println(s"numIterations: ${trainingSummary.totalIterations}")
println(s"objectiveHistory: ${trainingSummary.objectiveHistory.toList}")
trainingSummary.residuals.show()
println(s"RMSE: ${trainingSummary.rootMeanSquaredError}")
println(s"r2: ${trainingSummary.r2}")
Salida:
Scala
# LOAD A SAVED LINEAR REGRESSION MODEL FROM BLOB STORAGE AND SCORE A TEST
DATA SET
# RECORD THE START TIME
val starttime = Calendar.getInstance().getTime()
Salida:
A continuación, consulta los resultados de pruebas como una trama de datos y usa
AutoVizWidget y matplotlib para visualizarlos.
SQL
7 Nota
Scala
# RUN THE CODE LOCALLY ON THE JUPYTER SERVER AND IMPORT LIBRARIES
%%local
sqlResults
%matplotlib inline
import numpy as np
Salida:
Creación de un modelo de regresión GBT
Cree un modelo de clasificación de bosque aleatorio mediante la función
GBTRegressor() del aprendizaje automático de Spark y evalúe el modelo con los datos
de prueba.
Los árboles de potenciación del gradiente (GBT) son conjuntos de árboles de decisión.
Los GBT entrenan árboles de decisión de forma iterativa para minimizar una función de
pérdida y se pueden usar para la clasificación y regresión. Permiten controlar
características categóricas, no requieren ajustar la escala de las características y pueden
capturar errores de alineación e interacciones de las características. También se pueden
usar en una configuración de clasificación multiclase.
Scala
# MAKE PREDICTIONS
val predictions = gbtModel.transform(indexedTESTwithCatFeat)
Salida:
Scala
# RUN THE TRAIN VALIDATION SPLIT AND CHOOSE THE BEST SET OF PARAMETERS
val model = trainValidationSplit.fit(OneHotTRAINLabeled)
# MAKE PREDICTIONS ON THE TEST DATA BY USING THE MODEL WITH THE COMBINATION
OF PARAMETERS THAT PERFORMS THE BEST
val testResults = model.transform(OneHotTESTLabeled).select("label",
"prediction")
Salida:
# CREATE DATA FRAMES WITH PROPERLY LABELED COLUMNS TO USE WITH THE TRAIN AND
TEST SPLIT
val indexedTRAINwithCatFeatBinTargetRF =
indexedTRAINwithCatFeatBinTarget.select("labelBin","featuresCat").withColumn
Renamed(existingName="labelBin",newName="label").withColumnRenamed(existingN
ame="featuresCat",newName="features")
val indexedTESTwithCatFeatBinTargetRF =
indexedTESTwithCatFeatBinTarget.select("labelBin","featuresCat").withColumnR
enamed(existingName="labelBin",newName="label").withColumnRenamed(existingNa
me="featuresCat",newName="features")
indexedTRAINwithCatFeatBinTargetRF.cache()
indexedTESTwithCatFeatBinTargetRF.cache()
# RUN THE TRAIN VALIDATION SPLIT AND CHOOSE THE BEST SET OF PARAMETERS
val model = CrossValidator.fit(indexedTRAINwithCatFeatBinTargetRF)
# MAKE PREDICTIONS ON THE TEST DATA BY USING THE MODEL WITH THE COMBINATION
OF PARAMETERS THAT PERFORMS THE BEST
val testResults =
model.transform(indexedTESTwithCatFeatBinTargetRF).select("label",
"prediction")
Salida:
Scala
val nFolds = 3
val numModels = paramGrid.size
val numParamsinGrid = 2
var maxDepth = -1
var numTrees = -1
var param = ""
var paramval = -1
var validateLB = -1.0
var validateUB = -1.0
val h = 1.0 / nFolds;
val RMSE = Array.fill(numModels)(0.0)
# CREATE K-FOLDS
val splits = MLUtils.kFold(indexedTRAINbinary, numFolds = nFolds, seed=1234)
# LOOP THROUGH K-FOLDS AND THE PARAMETER GRID TO GET AND IDENTIFY THE BEST
PARAMETER SET BY LEVEL OF ACCURACY
for (i <- 0 to (nFolds-1)) {
validateLB = i * h
validateUB = (i + 1) * h
val validationCV = trainData.filter($"rand" >= validateLB && $"rand" <
validateUB)
val trainCV = trainData.filter($"rand" < validateLB || $"rand" >=
validateUB)
val validationLabPt = validationCV.rdd.map(r =>
LabeledPoint(r.getDouble(targetIndRegression(0).toInt),
Vectors.dense(featuresIndIndex.map(r.getDouble(_)).toArray)));
val trainCVLabPt = trainCV.rdd.map(r =>
LabeledPoint(r.getDouble(targetIndRegression(0).toInt),
Vectors.dense(featuresIndIndex.map(r.getDouble(_)).toArray)));
validationLabPt.cache()
trainCVLabPt.cache()
featureSubsetStrategy="auto",impurity="variance", maxBins=32)
val labelAndPreds = validationLabPt.map { point =>
val prediction =
rfModel.predict(point.features)
( prediction, point.label
)
}
val validMetrics = new RegressionMetrics(labelAndPreds)
val rmse = validMetrics.rootMeanSquaredError
RMSE(nParamSets) += rmse
}
validationLabPt.unpersist();
trainCVLabPt.unpersist();
}
val minRMSEindex = RMSE.indexOf(RMSE.min)
featureSubsetStrategy="auto",impurity="variance", maxBins=32)
# PREDICT ON THE TRAINING SET WITH THE BEST MODEL AND THEN EVALUATE
val labelAndPreds = indexedTESTreg.map { point =>
val prediction =
best_rfModel.predict(point.features)
( prediction, point.label )
}
Salida:
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Aprendizaje automático a escala
Ingeniería de características en
aprendizaje automático
Artículo • 11/07/2023
7 Nota
) Importante
Aunque muchos de los campos de datos sin procesar se pueden usar directamente para
entrenar un modelo, a menudo es necesario crear características adicionales (de
ingeniería) para un conjunto de datos de entrenamiento mejorado.
Aparte del conjunto de funciones A, que ya existe en los datos sin procesar originales,
los otros tres conjuntos de funciones se crean mediante el proceso de diseño de
funciones. El conjunto de funciones B captura la demanda de bicicletas reciente. El
conjunto de características C captura la demanda de bicicletas en una hora específica. El
conjunto de características D captura la demanda de bicicletas en una hora específica y
un día de la semana específico. Los conjuntos de datos de entrenamiento incluyen el
conjunto de características A, A+B, A+B+C y A+B+C+D, respectivamente.
Las características A+B+C muestran los mejores resultados. La tasa de errores disminuye
cuando se incluyen conjuntos de datos adicionales en los datos de entrenamiento. Esto
verifica la presunción con respecto a que los conjuntos de características B y C
proporcionan información pertinente adicional para la tarea de regresión. Sin embargo,
agregar la característica D no parece proporcionar reducción adicional ninguna en lo
que respecta a la tasa de errores.
Hash de características
Para llevar a cabo esta tarea, se aplica una técnica llamada hash de características que
permite convertir eficazmente las características arbitrarias de texto en índices. En lugar
de asociar cada característica de texto (palabras/frases) a un índice determinado, este
método aplica una función de hash a las características y el uso de sus valores de hash
como índices directamente.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
Para crear características para los datos en entornos específicos, consulte los artículos
siguientes:
Recursos relacionados
Selección de características en el proceso de ciencia de datos en equipos
Fase de modelado del ciclo de vida del proceso de ciencia de datos en equipos
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Implementación de modelos de ML en
producción para desempeñar un papel
activo en la toma de decisiones
empresariales
Artículo • 13/09/2023
Plataformas de producción
Hay varios enfoques y plataformas para poner los modelos en producción. Estas son
algunas opciones:
7 Nota
7 Nota
Pruebas A/B
Si hay varios modelos en producción, se pueden usar pruebas A/B para comparar su
rendimiento.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Pasos siguientes
¿Qué es el Proceso de ciencia de datos en equipo (TDSP)?
Comparación de productos y tecnologías de aprendizaje automático de Microsoft
Compilación e implementación de un
modelo con Azure Synapse Analytics
Artículo • 30/05/2023
medallion,hack_license,vendor_id,rate_code,store_and_fwd_flag,pickup_datetime,dropoff_
datetime,passenger_count,trip_time_in_secs,trip_distance,pickup_longitude,pickup_latit
ude,dropoff_longitude,dropoff_latitude
89D227B655E5C82AECF13C3F540D4CF4,BA96DE419E711691B9445D6A6307C170,CMT,1,N,2013-01-01
15:11:48,2013-01-01 15:18:10,4,382,1.00,-73.978165,40.757977,-73.989838,40.751171
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,1,N,2013-01-06
00:18:35,2013-01-06 00:22:54,1,259,1.50,-74.006683,40.731781,-73.994499,40.75066
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,1,N,2013-01-05
18:49:41,2013-01-05 18:54:23,1,282,1.10,-74.004707,40.73777,-74.009834,40.726002
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013-01-07
23:54:15,2013-01-07 23:58:20,2,244,.70,-73.974602,40.759945,-73.984734,40.759388
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,1,N,2013-01-07
23:25:03,2013-01-07 23:34:24,1,560,2.10,-73.97625,40.748528,-74.002586,40.747868
89D227B655E5C82AECF13C3F540D4CF4,BA96DE419E711691B9445D6A6307C170,CMT,2013-01-01
15:11:48,CSH,6.5,0,0.5,0,0,7
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,2013-01-06
00:18:35,CSH,6,0.5,0.5,0,0,7
0BD7C8F5BA12B88E0B67BED28BEA73D8,9FD8F69F0804BDB5549F40E9DA1BE472,CMT,2013-01-05
18:49:41,CSH,5.5,1,0.5,0,0,7
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,2013-01-07
23:54:15,CSH,5,0.5,0.5,0,0,6
DFD2202EE08F7A8DC9A57B02ACB81FE2,51EE87E3205C985EF8431D850C786310,CMT,2013-01-07
23:25:03,CSH,9.5,0.5,0.5,0,0,10.5
La clave única para unir trip_data y trip_fare se compone de los tres campos siguientes:
medallion,
hack_license y
pickup_datetime.
1. Clasificación binaria: permite predecir si se pagó o no una propina tras una carrera; es
decir, un valor de tip_amount mayor que 0 USD es un ejemplo positivo, mientras que
un valor de tip_amount de 0 USD es un ejemplo negativo.
2. Clasificación multiclase: permite predecir el intervalo de la propina de la carrera.
Dividimos el valor de tip_amount en cinco ubicaciones o clases:
Class 0 : tip_amount = $0
3. Tarea de regresión: Permite predecir el importe de la propina pagada por una carrera.
Cuando aprovisione su propia instancia de Azure Blob Storage, elija una ubicación
geográfica para esta en la región centro-sur de EE.UU. , o lo más cerca posible de esta
región, ya que es donde se almacenan los datos de NYC Taxi. Los datos se copian con
AzCopy desde el contenedor de Almacenamiento de blobs público a un contenedor
de su propia cuenta de almacenamiento. Cuanto más se acerque el Almacenamiento
de blobs de Azure a la región centro-sur de EE. UU., más rápida se completará esta
tarea (paso 4).
Para crear una cuenta propia de Azure Storage, siga los pasos descritos en Acerca de
las cuentas de Azure Storage. Asegúrese de hacer anotaciones en los valores de las
credenciales de la cuenta de almacenamiento siguientes, que necesitará más adelante
en este tutorial.
Nombre de cuenta de almacenamiento
Clave de cuenta de almacenamiento
Nombre de contenedor (en donde los datos se van a almacenar en el
Almacenamiento de blobs de Azure)
Instale Visual Studio y SQL Server Data Tools. Para obtener instrucciones, vea Introducción
a Visual Studio 2019 para Azure Synapse Analytics.
Conéctese a Azure Synapse Analytics con Visual Studio. Para obtener instrucciones,
consulte los pasos 1 y 2 en Conexión a SQL Analytics en Azure Synapse Analytics.
7 Nota
Ejecute la siguiente consulta SQL en la base de datos que creó en Azure Synapse
Analytics (en lugar de la consulta proporcionada en el paso 3 del tema sobre la
conexión) para crear una clave maestra.
SQL
BEGIN TRY
--Try to create the master key
CREATE MASTER KEY
END TRY
BEGIN CATCH
--If the master key exists, do nothing
END CATCH;
Cree un área de trabajo de Azure Machine Learning en su suscripción de Azure. Para ver
instrucciones, consulte Creación de un área de trabajo de Azure Machine Learning.
7 Nota
Es posible que necesite ejecutar como administrador el siguiente script de PowerShell
si su directorio DestDir necesita privilegios de administrador para crearlo o escribir en
él.
Azure PowerShell
$source = "https://raw.githubusercontent.com/Azure/Azure-MachineLearning-
DataScience/master/Misc/SQLDW/Download_Scripts_SQLDW_Walkthrough.ps1"
$ps1_dest = "$pwd\Download_Scripts_SQLDW_Walkthrough.ps1"
$wc = New-Object System.Net.WebClient
$wc.DownloadFile($source, $ps1_dest)
.\Download_Scripts_SQLDW_Walkthrough.ps1 –DestDir 'C:\tempSQLDW'
Azure PowerShell
./SQLDW_Data_Import.ps1
Cuando se ejecuta el script de PowerShell por primera vez, se le pedirá que introduzca
información desde Azure Synapse Analytics y la cuenta de Almacenamiento de blobs de
Azure. Cuando este script de PowerShell termine de ejecutarse por primera vez, las
credenciales indicadas se habrán escrito en un archivo de configuración SQLDW.conf del
directorio de trabajo actual. La ejecución futura de este archivo de script de PowerShell
puede leer todos los parámetros necesarios de este archivo de configuración. Si necesita
cambiar algunos parámetros, puede elegir escribir los parámetros en la pantalla después
del aviso mediante la eliminación de este archivo de configuración y de escribir los valores
de parámetros cuando se le solicite o cambiar los valores de parámetros mediante la
edición del archivo SQLDW.conf en el directorio -DestDir .
7 Nota
Para evitar conflictos de nombres de esquema con los que ya existen en Azure Synapse
Analytics, al leer los parámetros directamente desde el archivo SQLDW.conf, se agrega
un número aleatorio de tres dígitos al nombre del esquema desde el archivo
SQLDW.conf como el nombre de esquema predeterminado para cada ejecución. El
script de PowerShell puede pedirle un nombre de esquema: se puede especificar el
nombre a discreción del usuario.
Azure PowerShell
$AzCopy_path = SearchAzCopy
if ($AzCopy_path -eq $null){
Write-Host "AzCopy.exe is not found in C:\Program Files*. Now,
start installing AzCopy..." -ForegroundColor "Yellow"
InstallAzCopy
$AzCopy_path = SearchAzCopy
}
$env_path = $env:Path
for ($i=0; $i -lt $AzCopy_path.count; $i++){
if ($AzCopy_path.count -eq 1){
$AzCopy_path_i = $AzCopy_path
} else {
$AzCopy_path_i = $AzCopy_path[$i]
}
if ($env_path -notlike '*' +$AzCopy_path_i+'*'){
Write-Host $AzCopy_path_i 'not in system path, add it...'
[Environment]::SetEnvironmentVariable("Path",
"$AzCopy_path_i;$env_path", "Machine")
$env:Path =
[System.Environment]::GetEnvironmentVariable("Path","Machine")
$env_path = $env:Path
}
Azure PowerShell
Creación de un esquema
SQL
SQL
SQL
SQL
CREATE EXTERNAL FILE FORMAT {csv_file_format}
WITH
(
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS
(
FIELD_TERMINATOR ='','',
USE_TYPE_DEFAULT = TRUE
)
)
;
Cree tablas externas de tarifas y propinas para el conjunto de datos de NYC Taxi en
el Almacenamiento de blobs de Azure.
SQL
SQL
SQL
7 Nota
Tendrá que decidir qué hacer si tiene archivos de origen y de destino duplicados.
7 Nota
Si los archivos .csv que se van a copiar desde el almacenamiento de blobs público a la
cuenta de almacenamiento de blobs privada ya existen en la cuenta de
almacenamiento de blobs privada, AzCopy le preguntará si desea sobrescribirlos. Si no
desea sobrescribirlos, escriba n cuando se le solicite. Si desea sobrescribir todos ellos,
escriba a cuando se le solicite. También puede escribir y para sobrescribir los archivos
.csv individualmente.
Puede usar sus propios datos. Si los datos están en la máquina local en la aplicación de la
vida real, todavía puede usar AzCopy para cargar los datos locales a su área privada de
Azure Blob Storage. Solo tiene que cambiar la ubicación de origen, $Source =
"http://getgoing.blob.core.windows.net/public/nyctaxidataset" , en el comando de
AzCopy del archivo de scripts de PowerShell por un directorio local que contiene los datos.
Sugerencia
Este script de Powershell también conecta la información de Azure Synapse Analytics en los
archivos de ejemplo de exploración de datos SQLDW_Explorations.sql,
SQLDW_Explorations.ipynb y SQLDW_Explorations_Scripts.py para que estos tres archivos
están listos para ser probados de inmediato cuando finalice el script de PowerShell.
Conéctese con Azure Synapse Analytics utilizando Visual Studio con el nombre de inicio de
sesión de Azure Synapse Analytics y la contraseña y abra el Explorador de objetos SQL para
confirmar que la base de datos y las tablas se han importado. Recupere el archivo
SQLDW_Explorations.sql.
7 Nota
SQL
SQL
SQL
Salida: la consulta debe devolver una tabla con filas en las que se especifiquen las 13 369
licencias (taxis) y el número de carreras completadas en 2013. La última columna contiene
el recuento del número de carreras realizadas.
SQL
Salida: la consulta debe devolver una tabla con 13 369 filas en las que se especifiquen los
13 369 identificadores de vehículo/conductor que han realizado más de 100 carreras en
2013. La última columna contiene el recuento del número de carreras realizadas.
SQL
Salida: la consulta devuelve 837 467 carreras con campos de latitud o longitud no válidos.
SQL
Salida: La consulta debe devolver las siguientes frecuencias de propinas para el año 2013:
90 447 622 con propina y 82 264 709 sin propina.
SQL
Salida:
tip_class tip_freq
1 82 230 915
2 6 198 803
3 1 932 223
0 82 264 625
4 85 765
SQL
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS (SELECT * FROM sys.objects WHERE type IN ('FN', 'IF') AND name =
'fnCalculateDistance')
DROP FUNCTION fnCalculateDistance
GO
RETURNS float
AS
BEGIN
DECLARE @distance decimal(28, 10)
-- Convert to radians
SET @Lat1 = @Lat1 / 57.2958
SET @Long1 = @Long1 / 57.2958
SET @Lat2 = @Lat2 / 57.2958
SET @Long2 = @Long2 / 57.2958
-- Calculate distance
SET @distance = (SIN(@Lat1) * SIN(@Lat2)) + (COS(@Lat1) * COS(@Lat2) *
COS(@Long2 - @Long1))
--Convert to miles
IF @distance <> 0
BEGIN
SET @distance = 3958.75 * ATAN(SQRT(1 - POWER(@distance, 2)) /
@distance);
END
RETURN @distance
END
GO
SQL
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF EXISTS (SELECT * FROM sys.objects WHERE type IN ('FN', 'IF') AND name =
'fnCalculateDistance')
DROP FUNCTION fnCalculateDistance
GO
RETURNS float
AS
BEGIN
DECLARE @distance decimal(28, 10)
-- Convert to radians
SET @Lat1 = @Lat1 / 57.2958
SET @Long1 = @Long1 / 57.2958
SET @Lat2 = @Lat2 / 57.2958
SET @Long2 = @Long2 / 57.2958
-- Calculate distance
SET @distance = (SIN(@Lat1) * SIN(@Lat2)) + (COS(@Lat1) * COS(@Lat2) *
COS(@Long2 - @Long1))
--Convert to miles
IF @distance <> 0
BEGIN
SET @distance = 3958.75 * ATAN(SQRT(1 - POWER(@distance, 2)) /
@distance);
END
RETURN @distance
END
GO
Este es un ejemplo para llamar a esta función para generar características en la consulta
SQL:
SQL
SQL
Cuando esté listo para continuar con Azure Machine Learning, puede:
1. Guardar la consulta SQL final para extraer y muestrear los datos, y copiar y pegar la
consulta directamente en un cuaderno en Azure Machine Learning, o
2. Conservar los datos muestreados y de ingeniería que planea usar para la generación
de modelos en una nueva tabla de Azure Synapse Analytics y acceder a esa tabla
mediante un almacén de datos en Azure Machine Learning.
Exploración de datos e ingeniería de
características en el cuaderno
En esta sección, se llevará a cabo la exploración de datos y la generación de características
con consultas Python y SQL en la instancia de Azure Synapse Analytics creada
anteriormente. Se han descargado un cuaderno de ejemplo denominado
SQLDW_Explorations.ipynb y un archivo de script de Python
SQLDW_Explorations_Scripts.py en el directorio local. También están disponibles en
GitHub . Estos dos archivos son idénticos en los scripts de Python. El archivo de script de
Python se proporciona en caso de que quiera usar Python sin un cuaderno. Estos dos
archivos de Python de muestra están diseñados en Python 2.7.
Pandas
numpy
matplotlib
pyodbc
PyTables
Leer una pequeña muestra de los datos en una trama de datos en memoria.
Realizar algunas visualizaciones y exploraciones con los datos de muestreo.
Experimentar con el diseño de características con los datos de muestreo.
Para el diseño de características, la exploración y la manipulación de datos más
grandes, usar Python para emitir consultas SQL directamente en Azure Synapse
Analytics.
Decidir el tamaño de muestra que se usará para la creación del modelo de Azure
Machine Learning.
SQL
SERVER_NAME=<server name>
DATABASE_NAME=<database name>
USERID=<user name>
PASSWORD=<password>
DB_DRIVER = <database driver>
SQL
CONNECTION_STRING = 'DRIVER=
{'+DRIVER+'};SERVER='+SERVER_NAME+';DATABASE='+DATABASE_NAME+';UID='+USERID+';P
WD='+PASSWORD
conn = pyodbc.connect(CONNECTION_STRING)
nrows = pd.read_sql('''
SELECT SUM(rows) FROM sys.partitions
WHERE object_id = OBJECT_ID('<schemaname>.<nyctaxi_trip>')
''', conn)
ncols = pd.read_sql('''
SELECT COUNT(*) FROM information_schema.columns
WHERE table_name = ('<nyctaxi_trip>') AND table_schema = ('<schemaname>')
''', conn)
nrows = pd.read_sql('''
SELECT SUM(rows) FROM sys.partitions
WHERE object_id = OBJECT_ID('<schemaname>.<nyctaxi_fare>')
''', conn)
ncols = pd.read_sql('''
SELECT COUNT(*) FROM information_schema.columns
WHERE table_name = ('<nyctaxi_fare>') AND table_schema = ('<schemaname>')
''', conn)
t0 = time.time()
query = '''
SELECT TOP 10000 t.*, f.payment_type, f.fare_amount, f.surcharge,
f.mta_tax,
f.tolls_amount, f.total_amount, f.tip_amount
FROM <schemaname>.<nyctaxi_trip> t, <schemaname>.<nyctaxi_fare> f
WHERE datepart("mi",t.pickup_datetime) = 1
AND t.medallion = f.medallion
AND t.hack_license = f.hack_license
AND t.pickup_datetime = f.pickup_datetime
'''
t1 = time.time()
print 'Time to read the sample table is %f seconds' % (t1-t0)
Estadísticas descriptivas
Ya puede explorar los datos de muestreo. Comenzamos echando un vistazo a algunas
estadísticas descriptivas del campo trip_distance (o de cualquier otro que elija).
SQL
df1['trip_distance'].describe()
SQL
df1.boxplot(column='trip_distance',return_type='dict')
SQL
fig = plt.figure()
ax1 = fig.add_subplot(1,2,1)
ax2 = fig.add_subplot(1,2,2)
df1['trip_distance'].plot(ax=ax1,kind='kde', style='b-')
df1['trip_distance'].hist(ax=ax2, bins=100, color='k')
SQL
SQL
pd.Series(trip_dist_bin_id).value_counts().plot(kind='bar')
y
SQL
pd.Series(trip_dist_bin_id).value_counts().plot(kind='line')
SQL
plt.scatter(df1['trip_time_in_secs'], df1['trip_distance'])
También podemos comprobar la relación entre rate_code y trip_distance.
SQL
plt.scatter(df1['passenger_count'], df1['trip_distance'])
SQL
SQL
query = '''
SELECT tipped, count(*) AS tip_freq
FROM <schemaname>.<nyctaxi_sample>
GROUP BY tipped
'''
pd.read_sql(query, conn)
SQL
query = '''
SELECT tip_class, count(*) AS tip_freq
FROM <schemaname>.<nyctaxi_sample>
GROUP BY tip_class
'''
SQL
tip_class_dist['tip_freq'].plot(kind='bar')
Exploración: distribución diaria de carreras
SQL
query = '''
SELECT CONVERT(date, dropoff_datetime) AS date, COUNT(*) AS c
FROM <schemaname>.<nyctaxi_sample>
GROUP BY CONVERT(date, dropoff_datetime)
'''
pd.read_sql(query,conn)
SQL
query = '''
SELECT medallion,count(*) AS c
FROM <schemaname>.<nyctaxi_sample>
GROUP BY medallion
'''
pd.read_sql(query,conn)
SQL
SQL
SQL
SQL
SQL
1. Para empezar a usar Azure Machine Learning, consulte ¿Qué es Azure Machine
Learning?
2. Inicie sesión en Azure Portal .
3. La página principal de Machine Learning ofrece una gran cantidad de información, así
como vídeos, tutoriales, vínculos a referencias de módulos y otros recursos. Para
obtener más información sobre Azure Machine Learning, visite el Centro de
documentación de Azure Machine Learning.
En este ejercicio, ya se han explorado y diseñado los datos en Azure Synapse Analytics, y
también se ha decidido el tamaño del ejemplo para la ingesta en Azure Machine Learning.
Este es el procedimiento para crear uno o varios de los modelos de predicción:
1. Llevar los datos a Azure Machine Learning. Para obtener más información, consulte
Opciones de ingesta de datos para flujos de trabajo de Azure Machine Learning.
2. Conectar con Synapse Analytics. Para obtener más información, consulte Vinculación
de las áreas de trabajo de Azure Synapse Analytics y Azure Machine Learning, y
asociación de grupos de Azure Spark.
) Importante
Resumen
A modo de recapitulación, en este tutorial paso a paso se ha creado un entorno de ciencia
de datos de Azure, se ha trabajado con un conjunto de datos público grande de principio a
fin, llevándolo a través del proceso de ciencia de datos en equipos, desde la adquisición de
los datos al entrenamiento del modelo, para finalizar con la implementación de un servicio
web de Azure Machine Learning.
Información de licencia
Microsoft comparte este tutorial de ejemplo y sus scripts y cuadernos adjuntos bajo la
licencia MIT. Vea el archivo LICENSE.txt que se encuentra en el directorio del código de
ejemplo en GitHub para obtener más detalles.
Referencias
Estadísticas e investigación de la Comisión de taxis y limusinas de la Ciudad de Nueva
York
Búsqueda y consulta de una
knowledge base empresarial
mediante Azure OpenAI o Azure
Cognitive Search
Azure Blob Storage Azure Cache for Redis Azure Cognitive Search Servicios de Azure AI
En este artículo se describe cómo usar Azure OpenAI Service o Azure Cognitive Search
para buscar documentos en los datos de la empresa y recuperar resultados para
proporcionar una experiencia de preguntas y respuestas al estilo ChatGPT. En esta
solución se describen dos enfoques:
Enfoque de Azure Cognitive Search: Use Azure Cognitive Search para buscar y
recuperar datos de texto relevantes basados en una consulta del usuario. Este
servicio admite búsqueda de texto completo, búsqueda semántica, vector de
búsqueda y búsqueda híbrida.
7 Nota
1
Storage Function apps Azure Cache for Azure App 1
User
accounts Redis 2 Service 4
2 4
3
Vectorize Return top k Results passed
Translate Create
Extract text query matching content with prompt
(optional) embeddings
3
Flujo de datos
Los documentos que se van a ingerir pueden provenir de varios orígenes, como archivos
en un servidor FTP, datos adjuntos de correo electrónico o datos adjuntos de
aplicaciones web. Estos documentos se pueden ingerir en Azure Blob Storage a través
de servicios como Azure Logic Apps, Azure Functions o Azure Data Factory. Data Factory
es óptimo para transferir datos masivos.
Creación de inserción:
3. Si los documentos son archivos PDF o imágenes, una función de Azure puede
llamar al Documento de inteligencia de Azure AI para extraer el texto. Si el
documento es un archivo de Excel, CSV, Word o texto, el código de Python se
puede usar para extraer el texto.
Consulta y recuperación:
3. Una búsqueda de similitud vectorial que usa este vector de consulta en la base de
datos vectorial devuelve el contenido coincidente k superior. El contenido
coincidente que se va a recuperar se puede establecer según un umbral definido
por una medida de similitud, como la similitud coseno.
1 2 1
Storage Azure Cognitive Azure App User
accounts Search Service
3 4
AI enrichment skillsets
(optional) Create system prompt Call language model
2 3
7 Nota
Consulta y recuperación:
Azure OpenAI
Azure AI Azure AI language model
Translator Document
1 Intelligence 2
Consulta y recuperación:
Componentes
Azure OpenAI proporciona a la API de REST acceso a los modelos de lenguaje
de Azure OpenAI, como GPT-3, Codex y la serie de modelos de inserción para la
generación de contenido, el resumen, la búsqueda semántica y la conversión de
lenguaje natural a código. Puede acceder al servicio a través de las API de REST, el
SDK de Python o la interfaz basada en web en Azure OpenAI Studio .
El Documento de inteligencia de Azure AI es un servicio de Azure AI . Ofrece
funcionalidades de análisis de documentos para extraer texto impreso y
manuscrito, tablas y pares clave-valor. El Documento de inteligencia de Azure AI
proporciona modelos precompilados que pueden extraer datos de facturas,
documentos, recibos, tarjetas de identificación y tarjetas de presentación. También
lo puede usar para entrenar e implementar modelos personalizados mediante un
modelo de formulario de plantilla personalizada o un modelo de documento
neuronal personalizado.
Alternativas
En función de su escenario, puede agregar los siguientes flujos de trabajo.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
¿Qué es la inteligencia de documentos de Azure AI?
¿Qué es Azure OpenAI?
¿Qué es Azure Machine Learning?
Introducción a Blob Storage
¿Qué es Lenguaje de Azure AI?
Introducción a Azure Data Lake Storage Gen2
Biblioteca cliente de QnA Maker de Azure
Crear, entrenar y publicar la base de conocimiento de QnA Maker
¿Qué es la respuesta a preguntas?
Recursos relacionados
Resumen de documentos basados en consultas
Automatización de la identificación, clasificación y búsqueda de documentos
mediante Durable Functions
Indexación de contenido y metadatos de archivos mediante Azure Cognitive
Search
Enriquecimiento con IA con procesamiento de imágenes y texto
Extraer y analizar datos del centro
de llamadas
Azure Blob Storage Voz de Azure AI Servicios de Azure AI Power BI
Architecture
Detailed call
history, summaries,
reasons for calling
Flujo de datos
1. Una llamada telefónica entre un agente y un cliente se registra y almacena en
Azure Blob Storage. Los archivos de audio se cargan en una cuenta de Azure
Storage a través de un método compatible, como la herramienta basada en la
interfaz de usuario, el Explorador de Azure Storage o un SDK de Storage o una API.
2. Voz de Azure AI se usa para transcribir archivos de audio en modo por lotes de
forma asincrónica con la diarización de altavoz habilitada. Los resultados de la
transcripción se conservan en Blob Storage.
3. Lenguaje de Azure AI se usa para detectar y redactar datos personales en la
transcripción.
5. Power BI o una aplicación web personalizada hospedada por App Service se usa
para visualizar la salida. Ambas opciones proporcionan información casi en tiempo
real. Puede almacenar esta salida en un CRM, por lo que los agentes tienen
información contextual sobre por qué se llamó al cliente y pueden resolver
rápidamente posibles problemas. Este proceso está totalmente automatizado, lo
que ahorra tiempo y esfuerzo a los agentes.
Componentes
Blob Storage es la solución de almacenamiento de objetos para archivos sin
procesar en este escenario. Blob Storage admite bibliotecas para lenguajes como
.NET, Node.js y Python. Las aplicaciones pueden acceder a archivos en Blob
Storage a través de HTTP o HTTPS. Blob Storage tiene niveles de acceso frecuente,
esporádico y de archivo para almacenar grandes cantidades de datos, lo que
optimiza los costes.
Language Studio proporciona una interfaz de usuario para explorar y analizar las
características de los servicios de IA para lenguaje. Language Studio proporciona
opciones para compilar, etiquetar, entrenar e implementar modelos
personalizados.
Alternativas
En función de su escenario, puede agregar los siguientes flujos de trabajo.
Confiabilidad
La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de buscar formas de reducir los gastos innecesarios y
mejorar las eficiencias operativas. Para más información, vea Información general del
pilar de optimización de costos.
El coste total de esta solución depende del nivel de precios de sus servicios. Los factores
que pueden afectar al precio de cada componente son:
La API de voz por lotes está diseñada para grandes volúmenes, pero otras API de
servicios de IA pueden tener límites de solicitudes, dependiendo del nivel de
suscripción. Considerar la posibilidad de incluir en contenedores las API de servicios de
IA para evitar ralentizar el procesamiento de gran volumen. Los contenedores
proporcionan flexibilidad de implementación en la nube y en el entorno local. Mitigar
los efectos secundarios de los lanzamientos de nueva versión mediante el uso de
contenedores. Para obtener más información, consulte Compatibilidad con
contenedores en servicios de IA.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Pasos siguientes
¿Qué es Voz de Azure AI?
¿Qué es Azure OpenAI?
¿Qué es Azure Machine Learning?
Introducción a Blob Storage
¿Qué es Lenguaje de Azure AI?
Introducción a Azure Data Lake Storage Gen2
¿Qué es Power BI?
Cliente de ingesta con servicios de IA
Análisis y transcripción posterior a la llamadas
Recursos relacionados
Uso de una canalización de transcripción de voz en texto para analizar
conversaciones grabadas
Implementación de una solución personalizada de conversión de voz en texto
Crear modelos acústicos y de lenguaje personalizado
Implementación de una solución personalizada de conversión de voz en texto
Implementación del registro y la
supervisión de modelos de Azure
OpenAI
Servicios de Azure AI Azure API Management Azure Monitor Microsoft Entra ID
Architecture
Flujo de trabajo
1. Las aplicaciones cliente acceden a los puntos de conexión de Azure OpenAI para
realizar la generación de texto (finalizaciones) y el entrenamiento del modelo
(ajuste preciso).
Componentes
Application Gateway . Equilibrador de carga de aplicaciones para ayudar a
garantizar que todos los usuarios de las API de Azure OpenAI obtengan la
respuesta más rápida y el rendimiento más alto para las finalizaciones del modelo.
API Management . Plataforma de API Management para acceder a puntos de
conexión de Azure OpenAI de back-end. Proporciona supervisión y registro que no
está disponible de forma nativa en Azure OpenAI.
Azure Virtual Network . Infraestructura de red privada en la nube. Proporciona
aislamiento de red para que todo el tráfico de red de los modelos se enrute de
forma privada a Azure OpenAI.
Azure OpenAI . Servicio que hospeda modelos y proporciona salidas de
finalización de modelos generativas.
Supervisión . Observabilidad de un extremo a otro para aplicaciones. Proporciona
acceso a los registros de aplicación a través de Lenguaje de consulta Kusto.
También habilita los informes del panel y las funcionalidades de supervisión y
alertas.
Azure Key Vault Almacenamiento de seguridad mejorada para claves y secretos
que usan las aplicaciones.
Azure Storage . Almacenamiento de aplicaciones en la nube. Proporciona a Azure
OpenAI accesibilidad a los artefactos de entrenamiento del modelo.
Microsoft Entra ID . Administrador de identidades de seguridad mejorada.
Permite la autenticación y autorización de usuario a la aplicación y a los servicios
de plataforma que admiten la aplicación. También proporciona directiva de grupo
para asegurarse de que el principio de privilegios mínimos se aplica a todos los
usuarios.
Alternativas
Azure OpenAI proporciona registro y supervisión nativos. Puede usar esta funcionalidad
nativa para realizar un seguimiento de la telemetría del servicio, pero el registro
predeterminado de Cognitive Services no realiza un seguimiento ni registra entradas y
salidas del servicio, como avisos, tokens y modelos. Estas métricas son especialmente
importantes para el cumplimiento y para asegurarse de que el servicio funciona según
lo previsto. Además, mediante el seguimiento de las interacciones con los modelos de
lenguaje grande implementados en Azure OpenAI, puede analizar cómo usa su
organización el servicio para identificar los patrones de costo y uso que pueden ayudar
a informar sobre el escalado y la asignación de recursos.
ノ Expand table
Recuento de solicitudes x x
Latencia x x
Uso de tokens x x
(entrada/salida)
Operaciones de x x
implementación
ApiManagementGatewayLogs
| where OperationId == 'completions_create'
| extend modelkey = substring(parse_json(BackendResponseBody)['model'], 0,
indexof(parse_json(BackendResponseBody)['model'], '-', 0, -1, 2))
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])
['prompt_tokens']
| extend completiontokens = parse_json(parse_json(BackendResponseBody)
['usage'])['completion_tokens']
| extend totaltokens = parse_json(parse_json(BackendResponseBody)['usage'])
['total_tokens']
| extend ip = CallerIpAddress
| summarize
sum(todecimal(prompttokens)),
sum(todecimal(completiontokens)),
sum(todecimal(totaltokens)),
avg(todecimal(totaltokens))
by ip, model
Salida:
ApiManagementGatewayLogs
| where OperationId == 'completions_create'
| extend model = tostring(parse_json(BackendResponseBody)['model'])
| extend prompttokens = parse_json(parse_json(BackendResponseBody)['usage'])
['prompt_tokens']
| extend prompttext = substring(parse_json(parse_json(BackendResponseBody)
['choices'])[0], 0, 100)
Salida:
Consideraciones
Estas consideraciones implementan los pilares del Azure Well-Architected Framework,
que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de
una carga de trabajo. Para más información, consulte Marco de buena arquitectura de
Microsoft Azure.
Confiabilidad
La confiabilidad garantiza que tu aplicación puede cumplir los compromisos contraídos
con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.
Este escenario garantiza la alta disponibilidad de los modelos de lenguaje grandes para
los usuarios empresariales. Azure Application Gateway proporciona un mecanismo
eficaz de entrega de aplicaciones de nivel 7 para garantizar un acceso rápido y
coherente a las aplicaciones. Puede usar API Management para configurar, administrar y
supervisar el acceso a los modelos. La alta disponibilidad inherente de servicios de
plataforma como Storage, Key Vault y Virtual Network garantiza una alta confiabilidad
para la aplicación. Por último, varias instancias de Azure OpenAI garantizan la resistencia
del servicio en caso de errores en el nivel de aplicación. Estos componentes de
arquitectura pueden ayudarle a garantizar la confiabilidad de la aplicación a escala
empresarial.
Seguridad
La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y
sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.
Optimización de costos
La optimización de costos trata de reducir los gastos innecesarios y mejorar las
eficiencias operativas. Para más información, vea Información general del pilar de
optimización de costos.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Otros colaboradores:
Pasos siguientes
Formulario de solicitud de Azure OpenAI
Procedimientos recomendados para la ingeniería de solicitudes con OpenAI API
Azure OpenAI: documentación, inicios rápidos y referencia de API
Azure-Samples/openai-python-enterprise-logging (GitHub)
Configuración de redes virtuales de Azure Cognitive Services
Recursos relacionados
Protección de las API con Azure Application Gateway y Azure API Management
Resumen de documentos basados en consultas
Diseño de arquitectura de IA
Compilación de canalizaciones del
modelo de lenguaje con memoria
Bing Web Search Azure Cache for Redis Azure Pipelines
7 Nota
Architecture
Componentes
Azure OpenAI Service proporciona acceso mediante la API de REST a los eficaces
modelos de lenguaje de OpenAI, incluidas las series de modelos de inserciones,
GPT-3, GPT-3.5 y GPT-4. Puede adaptar con facilidad estos modelos a la tarea
específica, como la generación de contenido, el resumen, la búsqueda semántica,
la conversión de texto a vectores de inserción semánticamente eficaces y la
traducción de lenguaje natural a código.
Autor principal:
Otro colaborador:
Pasos siguientes
Acelerador de procesos empresariales de Azure
Azure OpenAI
PyR de inserciones de Azure OpenAI
ChatGPT
Búsqueda empresarial con arquitectura de OpenAI
IA generativa para desarrolladores: Exploración de nuevas herramientas y API en
Azure OpenAI Service
LangChain
Memoria con modelos de lenguaje
Inicio rápido: Introducción a la generación de texto mediante Azure OpenAI
Service
Redis en Azure OpenAI
Revolucionar los datos empresariales con ChatGPT: aplicaciones de nueva
generación con Azure OpenAI y Azure Cognitive Search
Kernel semántico
Bases de datos vectoriales con Azure OpenAI
Recursos relacionados
Diseño de arquitectura de IA
Tipos de servicios de API de lenguaje
Resumen de documentos basados en
consultas
Artículo • 13/09/2023
Architecture
En el diagrama siguiente se muestra cómo una consulta de usuario captura los datos
pertinentes. El generador de resumen usa GPT-3 para generar un resumen del texto del
documento más relevante. En esta arquitectura, el punto de conexión GPT-3 se usa para
resumir el texto.
Flujo de trabajo
Este flujo de trabajo se produce casi en tiempo real.
Algunas ventajas de usar un servicio de resumen para cualquier caso de uso son:
Aprendizaje en contexto
El servicio OpenAI de Azure usa un modelo de finalización generativa. El modelo usa
instrucciones de lenguaje natural para identificar la tarea solicitada y la aptitud
requerida, un proceso conocido como ingeniería de solicitud. Al usar este enfoque, la
primera parte de la solicitud incluye instrucciones de lenguaje natural o ejemplos de la
tarea que se quiere llevar a cabo. El modelo termina la terea prediciendo el texto
siguiente más probable. Esta técnica se conoce como aprendizaje en contexto.
Ingeniería rápida
La ingeniería rápida es una materia de procesamiento de lenguaje natural que implica la
detección de entradas que producen salidas deseables o útiles. Cuando un usuario hace
una solicitud al sistema, la forma en que se expresa el contenido puede cambiar
drásticamente la salida. El diseño de la solicitud es el proceso más significativo para
garantizar que el modelo GPT-3 proporciona una respuesta adaptada al contexto y a lo
que se quiere.
Diseño de la solicitud
Los modelos GPT-3 pueden realizar varias tareas, por lo que debe ser explícito en los
objetivos del diseño. Los modelos calculan la salida deseada en función de la solicitud
proporcionada.
Por ejemplo, si entra las palabras "dame una lista de razas de gatos", el modelo no
asumirá automáticamente que le pide una lista de razas de gatos. Podría estar
pidiéndole al modelo que continuara una conversación en la que las primeras palabras
fueran "Dame una lista de razas de gatos" y las siguientes "y te diré cuáles me gustan".
Si el modelo solo asumiera que quiere una lista de gatos, no sería tan bueno en la
creación de contenidos, en la clasificación o en otras tareas.
Como se describe en Aprenda a generar o manipular texto, hay tres directrices básicas
para crear solicitudes:
Alternativas
El reconocimiento del lenguaje conversacional de Azure es una alternativa al generador
de resumen que se usa aquí. El propósito principal de la comprensión del lenguaje
conversacional es crear modelos que predigan la intención general de una expresión
entrante, extraigan información valiosa de ella y generen una respuesta que se alinee
con el tema. Resulta útil en las aplicaciones de bot de chat cuando puede hacer
referencia a un knowledge base existente para encontrar la sugerencia que mejor se
corresponda con la expresión entrante. No ayuda mucho cuando el texto de entrada no
requiere una respuesta. La intención de esta arquitectura es generar un breve resumen
de los contenidos textuales largos. La esencia del contenido se describe de forma
concisa y se representa toda la información importante.
Escenarios de ejemplo
Dataset
El primer conjunto de datos es el conjunto de datos BillSum para resumir las facturas
estatales del Congreso de Estados Unidos y California. En este ejemplo solo se usan las
leyes del Congreso. Los datos se dividen en 18.949 facturas que se usarán para el
entrenamiento y 3.269 facturas que se usarán para las pruebas. BillSum se centra en la
legislación de longitud media que tiene entre 5.000 y 20.000 caracteres. Está limpiado y
preprocesado.
Para obtener más información sobre el conjunto de datos y las instrucciones para su
descarga, vea FiscalNote /BillSum .
Esquema BillSum
Zero-shot
El objetivo aquí es enseñar el modelo GPT-3 para aprender la entrada de estilo de
conversación. El punto de conexión de finalizaciones se usa para crear una API de Azure
OpenAI y una solicitud que genera el mejor resumen posible de la factura. Es
importante crear cuidadosamente las solicitudes para que se extraiga información
relevante. Para extraer resúmenes generales de una factura determinada, se usa el
siguiente formato.
Python
API_KEY = # SET YOUR OWN API KEY HERE
RESOURCE_ENDPOINT = " -- # SET A LINK TO YOUR RESOURCE ENDPOINT -- "
openai.api_type = "azure"
openai.api_key = API_KEY
openai.api_base = RESOURCE_ENDPOINT
openai.api_version = "2022-12-01-preview"
prompt_i = 'Summarize the legislative bill given the title and the
text.\n\nTitle:\n'+" ".join([normalize_text(bill_title_1)])+ '\n\nText:\n'+
" ".join([normalize_text(bill_text_1)])+'\n\nSummary:\n'
response = openai.Completion.create(
engine=TEXT_DAVINCI_001
prompt=prompt_i,
temperature=0.4,
max_tokens=500,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
stop=['\n\n###\n\n'], # The ending token used during inference. Once it
reaches this token, GPT-3 knows the completion is over.
best_of=1
)
= 1
Texto original:SAMPLE_BILL_1 .
Resumen del modelo zero-shot: La Ley nacional de incentivos fiscales para la educación
científica para empresas de 2007 crearía un nuevo crédito fiscal para empresas que
hagan contribuciones a la ciencia, la tecnología, la ingeniería y la educación matemática
(STEM) en el nivel de escuela primaria y secundaria. El crédito sería igual al 100 por
ciento de las contribuciones STEM calificadas del contribuyente para el año sujeto
pasivo. Las contribuciones de STEM calificadas incluyen contribuciones a la escuela
STEM, gastos de externificación de maestros DE STEM y gastos de formación de
profesores de STEM.
Python
return proc_df
df_staged_full_train = stage_examples(df_prompt_completion_train)
df_staged_full_val = stage_examples(df_prompt_completion_val)
Ahora que los datos están almacenados provisionalmente para el ajuste preciso en el
formato adecuado, puede empezar a ejecutar los comandos de ajuste.
A continuación, puede usar la CLI de OpenAI para ayudar con algunos de los pasos de
preparación de datos. La herramienta OpenAI valida los datos, proporciona sugerencias
y vuelve a formatear los datos.
Python
Python
payload = {
"model": "curie",
"training_file": " -- INSERT TRAINING FILE ID -- ",
"validation_file": "-- INSERT VALIDATION FILE ID --",
"hyperparams": {
"n_epochs": 1,
"batch_size": 200,
"learning_rate_multiplier": 0.1,
"prompt_loss_weight": 0.0001
}
}
Python
data = r.json()
print('Endpoint Called: {endpoint}'.format(endpoint = url))
print('Status Code: {status}'.format(status= r.status_code))
print('Fine tuning ID: {id}'.format(id=fine_tune_id))
print('Status: {status}'.format(status = data['status']))
print('Response Information \n\n {text}'.format(text=r.text))
Texto original:SAMPLE_BILL_1 .
Resumen del modelo con ajuste preciso: Este proyecto de ley proporciona un crédito
fiscal para las contribuciones a las escuelas primarias y secundarias que benefician a la
ciencia, la tecnología, la ingeniería y la educación matemática. El crédito es igual al 100%
de las contribuciones STEM calificadas realizadas por los contribuyentes durante el año
sujeto pasivo. Las contribuciones de STEM calificadas incluyen: (1) contribuciones a la
escuela STEM, (2) gastos de externificación de maestros DE STEM y (3) gastos de
formación de profesores de STEM. El presupuesto también ofrece un crédito fiscal para
las contribuciones a las escuelas primarias y secundarias que benefician a la ciencia, la
tecnología, la ingeniería o la educación matemática. El crédito es igual al 100% de las
contribuciones del servicio STEM calificadas realizadas por los contribuyentes durante el
año sujeto pasivo. Las contribuciones calificadas a los servicios STEM incluyen: (1)
contribuciones de servicio STEM pagadas o incurridas durante el año sujeto pasivo para
los servicios prestados en el Estados Unidos o en una base militar fuera de la Estados
Unidos; y (2) propiedad de inventario STEM aportada durante el año sujeto pasivo que
utiliza una organización educativa ubicada en el Estados Unidos o en una base militar
fuera del Estados Unidos para proporcionar educación en los grados K-12 en ciencia,
tecnología, ingeniería o matemáticas.
Para obtener los resultados de resumir algunas facturas más mediante los enfoques
zero-shot y ajuste preciso, consulte Resultados del conjunto de datos BillSum .
7 Nota
pages : la página del informe que contiene información clave que se va a resumir
(indizada 1).
completion : el resumen de la verdad fundamentada del informe.
comments : cualquier información adicional necesaria.
Python
openai.api_type = "azure"
openai.api_key = API_KEY
openai.api_base = RESOURCE_ENDPOINT
openai.api_version = "2022-12-01-preview"
name = os.path.abspath(os.path.join(os.getcwd(), '---INSERT PATH OF LOCALLY
DOWNLOADED RATHBONES_2020_PRELIM_RESULTS---')).replace('\\', '/')
pages_to_summarize = [0]
# Using pdfminer.six to extract the text
# !pip install pdfminer.six
from pdfminer.high_level import extract_text
t = extract_text(name
, page_numbers=pages_to_summarize
)
print("Text extracted from " + name)
t
Enfoque zero-shot
Después de extraer el texto, puede usar varias solicitudes para ver cómo influyen en la
calidad del resumen:
Python
#Using the text from the Rathbone's report, you can try different prompts to
see how they affect the summary
response = openai.Completion.create(
engine="davinci-instruct",
prompt=prompt_i,
temperature=0,
max_tokens=2048-int(len(prompt_i.split())*1.5),
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
print(response.choices[0].text)
>>>
- Funds under management and administration (FUMA) reached £54.7 billion at
31 December 2020, up 8.5% from £50.4 billion at 31 December 2019
- Operating income totalled £366.1 million, 5.2% ahead of the prior year
(2019: £348.1 million)
- Underlying1 profit before tax totalled £92.5 million, an increase of 4.3%
(2019: £88.7 million); underlying operating margin of 25.3% (2019: 25.5%)
# Different prompt
response = openai.Completion.create(
engine="davinci-instruct",
prompt=prompt_i,
temperature=0,
max_tokens=2048-int(len(prompt_i.split())*1.5),
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
print(response.choices[0].text)
>>>
- Funds under management and administration (FUMA) grew by 8.5% to reach
£54.7 billion at 31 December 2020
- Underlying profit before tax increased by 4.3% to £92.5 million,
delivering an underlying operating margin of 25.3%
- The board is announcing a final 2020 dividend of 47 pence per share, which
brings the total dividend to 72 pence per share, an increase of 2.9% over
2019
Desafíos
Python
# Body of function
text = extract_text(name
, page_numbers=pages_to_summarize
)
r = splitter(200, text)
tok_l = int(2000/len(r))
tok_l_w = num2words(tok_l)
res_lis = []
# Stage 1: Summaries
for i in range(len(r)):
prompt_i = f'Extract and summarize the key financial numbers and
percentages mentioned in the Text in less than {tok_l_w}
words.\n\nText:\n'+normalize_text(r[i])+'\n\nSummary in one paragraph:'
response = openai.Completion.create(
engine=TEXT_DAVINCI_001,
prompt=prompt_i,
temperature=0,
max_tokens=tok_l,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
t = trim_incomplete(response.choices[0].text)
res_lis.append(t)
response = openai.Completion.create(
engine=TEXT_DAVINCI_001,
prompt=prompt_i,
temperature=0,
max_tokens=200,
top_p=1.0,
frequency_penalty=0.5,
presence_penalty=0.5,
best_of=1
)
print(trim_incomplete(response.choices[0].text))
La solicitud de entrada incluye el texto original del informe financiero de Rathbone para
un año específico.
El modelo zero-shot funciona bien para resumir documentos estándar. Si los datos son
específicos del sector o específicos del tema, contiene jerga específica del sector o
requiere conocimientos específicos del sector, el ajuste preciso funciona mejor. Por
ejemplo, este enfoque funciona bien para revistas médicas, formularios legales y
estados financieros. Puede usar el enfoquefew-shot en lugar de zero-shot para
proporcionar al modelo ejemplos de cómo formular un resumen, por lo que puede
aprender a imitar el resumen proporcionado. Para el enfoque zero-shot, esta solución
no vuelve a entrenar el modelo. El conocimiento del modelo se basa en el
entrenamiento GPT-3. GPT-3 está entrenado con casi todos los datos disponibles de
Internet. Funciona bien para las tareas que no requieren conocimientos específicos.
Para obtener los resultados del uso del resumen de resumen de resúmenes sobre
algunos informes del conjunto de datos financiero, consulte Resultados para resumen
de resúmenes .
Recomendaciones
Hay muchas maneras de abordar el resumen mediante GPT-3, incluyendo el zero-shot,
el few-shot y el ajuste preciso. Los enfoques generan resúmenes de calidad variable.
Puede explorar qué enfoque genera los mejores resultados para su caso de uso previsto.
En función de las observaciones sobre las pruebas presentadas en este artículo, estas
son algunas recomendaciones:
Este es un ejemplo:
Python
Este es un ejemplo:
Python
import torchmetrics
from torchmetrics.text.bert import BERTScore
preds = "You should have ice cream in the summer"
target = "Ice creams are great when the weather is hot"
bertscore = BERTScore()
score = bertscore(preds, target)
print(score)
Python
La primera frase, "el gato está en el porche junto al árbol", se conoce como candidato.
La segunda frase se conoce como referencia. El comando usa BERTScore para comparar
las oraciones y generar una matriz.
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otros colaboradores:
Pasos siguientes
Azure OpenAI: documentación, inicios rápidos y referencia de API
¿Cuáles son las intenciones en LUIS?
Reconocimiento del lenguaje conversacional
Jupyter Notebook con detalles técnicos y ejecución de este caso de uso
Recursos relacionados
Diseño de arquitectura de IA
Elección de una tecnología de servicios cognitivos de Microsoft
Tecnología de procesamiento de lenguaje natural
Resumen de conversación
Servicios de Azure AI
La mayoría de las empresas proporcionan soporte de servicio al cliente para ayudar a los
clientes con las consultas de productos, la solución de problemas y el mantenimiento o
actualización de características o del propio producto. Para proporcionar una resolución
satisfactoria, los especialistas de atención al cliente deben responder rápidamente y con
información precisa. OpenAI puede ayudar a las organizaciones con soporte técnico al
cliente de varias maneras.
En esta guía se describe cómo generar los resúmenes de las interacciones entre el
agente y el cliente mediante el modelo GPT-3 de Azure OpenAI. Contiene una
arquitectura de ejemplo de un extremo a otro que ilustra los componentes clave
implicados en la obtención de un resumen de una entrada de texto. La generación de la
entrada de texto está fuera del ámbito de esta guía. El objetivo de esta guía es describir
el proceso de implementación del resumen de un conjunto de conversaciones de
ejemplo entre el agente y el cliente y analizar los resultados de varios enfoques para la
creación del resumen.
Escenarios de conversación
Bots de chat de autoservicio (totalmente automatizados). En este escenario, los
clientes pueden interactuar con un bot de chat con tecnología de GPT-3 y
entrenado con datos específicos del sector. El bot de chat puede comprender las
preguntas de los clientes y responder adecuadamente en función de las respuestas
aprendidas de una knowledge base.
Bot de chat con intervención del agente (semiautomatizado). Las preguntas
planteadas por los clientes a veces son complejas y requieren de intervención
humana. En tales casos, GPT-3 puede proporcionar un resumen de la conversación
entre el bot de chat y el cliente, y ayudar al agente con búsquedas rápidas de
información adicional de una gran knowledge base.
Resumen de transcripciones (totalmente automatizadas o semiautomatizadas). En
la mayoría de los centros de atención al cliente, los agentes son necesarios para
resumir las conversaciones y mantener el registro, hacer seguimientos futuros,
llevar a cabo entrenamiento y realizar otros procesos internos. GPT-3 puede
proporcionar resúmenes automatizados o semiautomatizados que capturan los
detalles destacados de las conversaciones para su uso posterior.
Esta guía se centra en el proceso de resumen de transcripciones mediante Azure OpenAI
GPT-3.
Architecture
Una arquitectura típica para un generador de resumen de conversación tiene tres fases
principales: preprocesamiento, resumen y posprocesamiento. Si la entrada contiene una
conversación verbal o cualquier forma de voz, la voz debe transcribirse a texto. Para más
información, consulte Servicio de conversión de voz en texto de Azure .
Flujo de trabajo
1. Recopile los datos de entrada: introduzca los datos de entrada pertinentes en la
canalización. Si el origen es un archivo de audio, debe convertirlo en texto
mediante un servicio de TTS como texto a voz de Azure.
2. Preprocese los datos: quite la información confidencial y cualquier conversación
que no sea importante de los datos.
3. Incorpore los datos al generador de resúmenes: pase los datos en una solicitud a
través de las API de Azure OpenAI. Los modelos de aprendizaje en contexto
incluyen zero-shot, few-shot o el modelo personalizado.
4. Genere el resumen: el modelo generará un resumen de la conversación.
5. Procesamiento posterior a los datos: aplique un filtro de palabras soeces y varias
comprobaciones de validación al resumen. Agregue los datos confidenciales que
se quitaron durante el paso previo al proceso en el resumen.
6. Evalúe los resultados: revise y evalúe los resultados. Este paso puede ayudarle a
identificar las áreas en las que el modelo debe mejorarse y a encontrar errores.
En las secciones siguientes se proporcionan más detalles sobre las tres fases principales.
Procesamiento previo
El objetivo del preprocesamiento es asegurarse de que los datos proporcionados al
servicio de generación de resumen sean relevantes y no incluyan información
confidencial.
Estos son algunos pasos de preprocesamiento que pueden ayudar a condicionar los
datos sin procesar. Es posible que tenga que aplicar uno o varios pasos, según el caso
de uso.
Generador de resúmenes
El punto de conexión de la API de finalización de texto de OpenAI se denomina punto
de conexión de finalizaciones. Para iniciar el proceso de finalización de texto, se requiere
una solicitud. La ingeniería de solicitud es un proceso que se usa en modelos de
lenguaje grandes. La primera parte de la solicitud incluye instrucciones de lenguaje
natural o ejemplos de la tarea específica solicitada (en este escenario, la creación del
resumen). Las solicitudes permiten a los desarrolladores proporcionar contexto a la API,
lo que puede ayudar a generar finalizaciones de texto más relevantes y precisas. El
modelo termina la tarea prediciendo el texto siguiente más probable. Esta técnica se
conoce como aprendizaje en contexto.
7 Nota
Hay tres enfoques principales para entrenar a los modelos para el aprendizaje en
contexto: zero-shot, few-shot y ajuste preciso. Estos enfoques varían en función de la
cantidad de datos específicos de la tarea que se proporcionan al modelo.
Con este enfoque, no se pueden actualizar los pesos del modelo entrenado
previamente.
Para obtener más información, consulte Los modelos de lenguaje son aprendices
de few-shot .
Posprocesamiento
Se recomienda comprobar la validez de los resultados obtenidos de GPT-3. Implemente
comprobaciones de validez mediante un enfoque mediante programación o
clasificadores, según el caso de uso. Estas son algunas comprobaciones críticas:
Por último, vuelva a introducir cualquier información vital que se haya quitado
previamente del resumen, como la información confidencial.
Consideraciones
Es importante ajustar los modelos base con un conjunto de datos de entrenamiento
específico del sector y cambiar el tamaño de los conjuntos de datos disponibles. Los
modelos con ajuste preciso funcionan mejor cuando los datos de entrenamiento
incluyen al menos 1000 puntos de datos y los datos ciertos (resúmenes generados por
el usuario) que se usan para entrenar los modelos son de alta calidad.
Prompt Completion
Agente: Correcto.
Cliente: Perfecto.
Salida ideal. El objetivo es crear resúmenes que sigan este formato: "El cliente dijo x. El
agente respondió y". Otro objetivo es capturar características destacadas del cuadro de
diálogo, como la queja del cliente, la resolución sugerida y las acciones de seguimiento.
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento (o el mejor precio con descuento
disponible) para seguir jugando el juego una vez que salga del catálogo.
Resumen cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Zero-shot
El enfoque de zero-shot es útil cuando no tiene suficientes datos de entrenamiento
etiquetados. En este caso, no hay suficientes resúmenes ciertos. Es importante diseñar
las solicitudes cuidadosamente para extraer la información relevante. El siguiente
formato se usa para extraer resúmenes generales de los chats entre el agente y el
cliente:
Python
rouge = Rouge()
# Run zero-shot prediction for all engines of interest
deploymentNames = ["curie-instruct","davinci-instruct"] # also known as
text-davinci/text-instruct
for deployment in deploymentNames:
url = openai.api_base + "openai/deployments/" + deployment + "/completions?
api-version=2022-12-01-preivew"
response_list = []
rouge_list = []
print("calling…" + deployment)
for i in range(len(test)):
response_i = openai.Completion.create(
engine = deployment,
prompt = build_prompt(prefix, [test['prompt'][i]], suffix),
temperature = 0.0,
max_tokens = 400,
top_p = 1.0,
frequence_penalty = 0.5,
persence_penalty = 0.0,
stop=["end"] # We recommend that you adjust the stop sequence based on the
dataset
)
scores = rouge.get_scores(normalize_text(response_i[‘choices’][ 0]
['text']),test['completion'][i])
rouge_list += [scores[0]['rouge-1']['f']],
response_list += [response_i]
summary_list = [normalize_text(i[‘choices’][0][‘text’]) for i in
response_list]
test[deployment + "_zeroshotsummary"] = summary_list
test[deployment + "_zeroshotroguescore"] = rouge_list
Resultados y observaciones
La salida del modelo zero-shot se genera directamente desde el modelo base. En este
caso, tanto Curie como Davinci resumen el cuadro de diálogo bastante bien. La única
diferencia notable es que el modelo Curie proporciona un poco menos de detalle. Curie
inicia el resumen con "el cliente pregunta al agente sobre Xbox Game Pass". La frase
correspondiente en Davinci es "el cliente preguntó por cuánto tiempo podía acceder a
los juegos después de salgan del catálogo de Xbox Game Pass".
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento
disponible, para seguir jugando el juego una vez que sale del catálogo.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Resultado de Davinci
El cliente preguntó por cuánto tiempo podía acceder a los juegos después de que salen
del catálogo de Xbox Game Pass. El agente le dijo que necesitaría comprar una copia
digital del juego desde la aplicación Xbox para Windows o la Microsoft Store para poder
continuar jugando. El agente también recordó al cliente que se le notificaría antes de
que un juego salga del catálogo de Xbox Game Pass. Como miembro, el cliente podrá
comprar cualquier juego en el catálogo con un máximo de 20 % de descuento o el
mejor precio con descuento disponible.
Resultado de Curie
El cliente pregunta al agente sobre Xbox Game Pass. El agente indica al cliente que una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El agente también le recuerda al cliente que Xbox notificará a los
miembros antes de que un juego salga del catálogo de Xbox Game Pass.
Few-shot
Cuando se usa el enfoque few-shot, el modelo se proporciona con un pequeño número
de ejemplos.
summaries:"
Python
train_small = train[]
train_small_json = train_small.to_dict(orient='records')
compiled_train_prompt = build_prompt_fewshot(prefix,context_primer,
train_small_json, suffix)
Resultados y observaciones
Con el enfoque de few-shot, los resúmenes continúan capturando características
destacadas de la conversación. El resumen de Davinci es más compacto y más cercano a
ser cierto. Curie fabrica algunos detalles triviales.
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento
disponible, para seguir jugando el juego una vez que sale del catálogo.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Resultado de Davinci
El cliente quería saber por cuánto tiempo podía acceder a los juegos después de que
salen de Game Pass. El agente informa que una vez que un juego sale del catálogo de
Xbox Game Pass, el cliente tendría que comprar una copia digital u obtener otra forma
de derecho para continuar jugando el juego.
Resultado de Curie
El cliente tiene una pregunta sobre el Game Pass. El cliente está bien. El agente necesita
ayuda con el Xbox Game Pass. El cliente pregunta por cuánto tiempo puede acceder a
los juegos después de que salen del catálogo de Game Pass. El agente informa que, una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El cliente está encantado de escuchar esto y agradece al agente.
Ajuste preciso
El ajuste preciso es el proceso de adaptar los modelos para obtener un resultado
deseado específico a partir de sus propios conjuntos de datos.
Resultados y observaciones
Las pruebas sugieren que un modelo Curie de ajuste preciso conduce a resultados que
son comparables a los de un modelo de few-shot de Davinci. Ambos resúmenes
capturan la pregunta del cliente y la respuesta del agente sin capturar los detalles sobre
los descuentos y sin agregar contenido. Ambos resúmenes son similares al cierto.
Diálogo
Cliente: Sí. Quería saber por cuánto tiempo puedo acceder a los juegos después de que
salgan de Game Pass.
Agente: Una vez que un juego sale del catálogo de Xbox Game Pass, tendrás que
comprar una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder seguir
jugando el juego. Recuerda que Xbox notifica a los miembros antes de que un juego
salga del catálogo de Xbox Game Pass. Y, como miembro, puedes comprar cualquier
juego en el catálogo con hasta un 20 % de descuento, o el mejor precio con descuento
disponible, para seguir jugando el juego una vez que sale del catálogo.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
Resultado de Curie
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que
salen de Game Pass. El agente explica que, una vez que un juego sale del catálogo de
Xbox Game Pass, el cliente debe comprar una copia digital desde la aplicación Xbox
para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de
derecho para poder continuar jugando el juego.
Conclusiones
Por lo general, el modelo Davinci requiere menos instrucciones para realizar las tareas
que otros modelos, como Curie. Davinci es más adecuado para resumir texto que
requiera una comprensión del contexto o del lenguaje específico. Dado que Davinci es
el modelo más complejo, su latencia es mayor que la de otros modelos. Curie es más
rápido que Davinci y es capaz de resumir conversaciones.
Estas pruebas sugieren que puede generar mejores resúmenes al proporcionar más
instrucciones al modelo a través de los métodos few-shot o de ajuste preciso. Los
modelos de ajuste preciso son mejores para adaptarse a la estructura y el contexto
aprendidos a partir de un conjunto de datos de entrenamiento. Esta funcionalidad es
especialmente útil cuando los resúmenes son específicos del dominio (por ejemplo,
generar resúmenes a partir de las notas de un médico o de la atención al cliente con
una receta en línea). Si usa el ajuste preciso, tiene más control sobre los tipos de
resúmenes que ve.
Cierto
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que se
hayan retirado de Game Pass. El agente informa al cliente que tendría que comprar el
juego para seguir teniendo acceso.
El cliente preguntó por cuánto tiempo podía acceder a los juegos después de que salen
del catálogo de Xbox Game Pass. El agente le dijo que necesitaría comprar una copia
digital del juego desde la aplicación Xbox para Windows o la Microsoft Store para poder
continuar jugando. El agente también recordó al cliente que se le notificaría antes de
que un juego salga del catálogo de Xbox Game Pass. Como miembro, el cliente podrá
comprar cualquier juego en el catálogo con hasta 20 % de descuento o el mejor precio
con descuento disponible.
El cliente pregunta al agente sobre Xbox Game Pass. El agente indica al cliente que una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El agente también le recuerda al cliente que Xbox notificará a los
miembros antes de que un juego salga del catálogo de Xbox Game Pass.
El cliente tiene una pregunta sobre el Game Pass. El cliente está bien. El agente necesita
ayuda con el Xbox Game Pass. El cliente pregunta por cuánto tiempo puede acceder a
los juegos después de que salen del catálogo de Game Pass. El agente informa que, una
vez que un juego sale del catálogo de Xbox Game Pass, el cliente tendrá que comprar
una copia digital desde la aplicación Xbox para Windows o la Microsoft Store,
reproducirlo desde un disco u obtener otra forma de derecho para poder continuar
jugando el juego. El cliente está encantado de escuchar esto y agradece al agente.
El cliente quiere saber por cuánto tiempo puede acceder a los juegos después de que
salen de Game Pass. El agente explica que, una vez que un juego sale del catálogo de
Xbox Game Pass, el cliente debe comprar una copia digital desde la aplicación Xbox
para Windows o la Microsoft Store, reproducirlo desde un disco u obtener otra forma de
derecho para poder continuar jugando el juego.
Este es un ejemplo:
Python
Este es un ejemplo:
Python
import torchmetrics
from torchmetrics.text.bert import BERTScore
preds = "You should have ice cream in the summer"
target = "Ice creams are great when the weather is hot"
bertscore = BERTScore()
score = bertscore(preds, target)
print(score)
Python
La primera frase, "El gato está en el porche junto al árbol", se conoce como candidato.
La segunda frase se conoce como referencia. El comando usa BERTScore para comparar
las oraciones y generar una matriz.
Uso responsable
GPT puede producir excelentes resultados, pero debe comprobar la salida en busca de
sesgos sociales, éticos y legales, y también resultados dañinos. Al ajustar los modelos,
debe quitar los puntos de datos que pueda ser perjudicial que aprenda el modelo.
Puede formar equipos de alerta para identificar las salidas dañinas del modelo. Puede
implementar este proceso manualmente y respaldarlo mediante métodos
semiautomatizados. Puede generar casos de prueba mediante modelos de lenguaje y, a
continuación, usar un clasificador para detectar comportamientos dañinos en los casos
de prueba. Por último, debe realizar una comprobación manual de los resúmenes
generados para asegurarse de que estén listos para usarse.
Para obtener más información, vea Equipos de alerta para modelos de lenguaje con
modelos de lenguaje .
Colaboradores
Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes
colaboradores.
Autor principal:
Otro colaborador:
Pasos siguientes
Más información sobre Azure OpenAI
Artículo de referencia de ROUGE
Módulo de entrenamiento: Introducción a Azure OpenAI Service
Ruta de aprendizaje: Desarrollo de soluciones de IA con Azure OpenAI
Recursos relacionados
Resumen de documentos basados en consultas
Elección de una tecnología de servicios cognitivos de Microsoft
Tecnología de procesamiento de lenguaje natural