Diseño de arquitectura de la inteligencia artificial (IA)
La inteligencia artificial es la capacidad de un equipo para imitar el comportamiento de los seres humanos inteligentes. Mediante la inteligencia artificial, las máquinas pueden analizar imágenes, comprender la voz, interactuar de forma natural y hacer predicciones mediante datos.
Conceptos de inteligencia artificial
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.
Los modelos predictivos se validan en comparación con datos conocidos, se miden mediante las métricas de rendimiento seleccionadas para escenarios empresariales específicos y, posteriormente, se ajustan según sea necesario. Este proceso de aprendizaje y validación se denomina entrenamiento. Mediante el reentrenamiento periódico, los modelos de aprendizaje automático mejoran con el tiempo.
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.
Microsoft ofrece Azure Bot Service, un servicio administrado compilado expresamente para el desarrollo de bots empresariales.
Arquitectura de referencia de Azure: Bot de conversación de nivel empresarial
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.
Los edificios inteligentes usan sistemas autónomos para controlar automáticamente operaciones como la iluminación, la ventilación, el aire acondicionado y la seguridad. Un ejemplo más sofisticado sería un robot autodirigido que está explorando un pozo minero derrumbado para realizar un mapa detallado de su interior, determinar qué partes son estructuralmente sólidas, analizar el aire para ver si es respirable y detectar señales de mineros atrapados que necesitan rescate, sin necesidad de realizar una exploración humana en tiempo real.
Información general sobre Microsoft AI
Obtenga más información sobre Microsoft AI y manténgase al día con las noticias relacionadas:
Tipos arquitectónicos de alto nivel
Inteligencia artificial pregenerada
La inteligencia artificial pregenerada es exactamente eso: modelos, servicios y API de inteligencia artificial listos para usar. Estos le ayudarán a agregar inteligencia a las aplicaciones, los sitios web y los flujos sin tener que recopilar datos y, después, tener que compilar, entrenar y publicar sus propios modelos.
Un ejemplo de inteligencia artificial pregenerada podría ser un modelo previamente entrenado que se puede incorporar tal cual o que se usa para proporcionar una base de referencia para un entrenamiento adicional personalizado. Otro ejemplo sería un servicio de API basado en la nube al que se puede llamar para procesar el lenguaje natural de la manera que se desee.
Servicios de Azure AI
Cognitive Services proporciona a los desarrolladores la oportunidad de usar API precompiladas y kits de herramientas de integración para crear aplicaciones que pueden ver, oír, hablar, comprender e incluso empezar a razonar. El catálogo de servicios de Azure AI se puede dividir en cinco pilares principales: visión, voz, lenguaje, búsqueda web y decisión o recomendación.
Modelos de inteligencia artificial pregenerados de AI Builder
AI Builder es una nueva funcionalidad de Power Platform que proporciona una interfaz sencilla con operaciones del tipo señalar y hacer clic, que le permite agregar inteligencia artificial a sus aplicaciones aunque no tenga conocimientos de ciencia de datos o codificación. (Algunas características de AI Builder aún no se han publicado para disponibilidad general y permanecen en estado de versión preliminar. Para más información, consulte la página Disponibilidad de características por región).
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.
Inteligencia artificial personalizada
Aunque la inteligencia artificial pregenerada es útil (y cada vez más flexible), la mejor manera de obtener lo que necesita de la inteligencia artificial es probablemente crear su propio sistema. Obviamente, esto es un asunto muy profundo y complejo, pero echemos un vistazo a algunos conceptos básicos más allá de lo que acabamos de hablar.
Lenguajes de código
El concepto básico de la inteligencia artificial es el uso de algoritmos para analizar datos y generar modelos para describirlos (o puntuarlos) de forma que resulten útiles. Los desarrolladores y los científicos de datos (e, incluso, otros algoritmos) escriben los algoritmos mediante un código de programación. Dos de los lenguajes de programación más populares para el desarrollo de inteligencia artificial son Python y R actualmente.
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.
Introducción al aprendizaje automático con Python y Azure Notebooks
scikit-learn
. Una biblioteca de aprendizaje automático de código abierto para PythonPyTorch. Una biblioteca de Python de código abierto con un completo ecosistema que se puede usar para aprendizaje profundo, visión artificial, procesamiento de lenguaje natural, etc.
TensorFlow. Una biblioteca matemática simbólica de código abierto que también se usa para aplicaciones de aprendizaje automático y redes neuronales
Tutorial: Aplicación de modelos de aprendizaje automático en Azure Functions con Python y TensorFlow
R es un entorno y lenguaje para computación estadística y gráficos. Se puede usar para todo, desde la asignación de amplias tendencias de marketing y redes sociales en línea hasta el desarrollo de modelos financieros y climáticos.
Microsoft ha adoptado completamente el lenguaje de programación R y proporciona muchas opciones diferentes para que los desarrolladores de R ejecuten su código en Azure.
Cursos
El entrenamiento es fundamental para el aprendizaje automático. Es el proceso iterativo de "enseñar" a un algoritmo para que pueda crear modelos que se usen para analizar los datos y, a continuación, hacer predicciones precisas a partir de ellos. En la práctica, este proceso tiene tres fases generales: entrenamiento, validación y pruebas.
Durante la fase de entrenamiento, se etiqueta un conjunto de datos conocidos de calidad para que los campos individuales sean identificables. Los datos etiquetados alimentan a un algoritmo configurado para realizar una predicción determinada. Cuando finaliza, el algoritmo genera un modelo que describe los patrones encontrados como un conjunto de parámetros. Durante la validación, los datos nuevos se etiquetan y se usan para probar el modelo. El algoritmo se ajusta según sea necesario y, posiblemente, se realiza más entrenamiento. Por último, la fase de prueba utiliza datos reales sin etiquetas ni destinos preseleccionados. Suponiendo que los resultados del modelo son adecuados, se considera que están listos para su uso y se pueden implementar.
Ajuste de hiperparámetros
Los hiperparámetros son variables de datos que rigen el propio proceso de entrenamiento. Son variables de configuración que controlan cómo funciona el algoritmo. Por tanto, los hiperparámetros se establecen normalmente antes de que empiece el entrenamiento del modelo y no se modifican dentro del proceso de entrenamiento de la forma en la que lo hacen los parámetros. El ajuste de los hiperparámetros conlleva la ejecución de pruebas en la tarea de entrenamiento, la evaluación del grado de realización del trabajo y, posteriormente, el ajuste según sea necesario. Este proceso genera varios modelos, cada uno entrenado mediante distintas familias de hiperparámetros.
Selección de modelos
El proceso de entrenamiento y ajuste de hiperparámetros produce numerosos modelos candidatos. Pueden tener muchas variaciones diferentes, entre las que se incluyen el esfuerzo necesario para preparar los datos, la flexibilidad del modelo, la cantidad de tiempo de procesamiento y, por supuesto, el grado de precisión de los resultados. La elección del mejor modelo entrenado para sus necesidades y limitaciones se denomina selección de modelo, y tiene tanto que ver con la planeación previa antes del entrenamiento, como con la elección del modelo más adecuado.
Aprendizaje automático automatizado (AutoML)
El aprendizaje automático automatizado, también denominado AutoML, es el proceso de automatizar las tareas lentas y repetitivas del desarrollo de modelos de Machine Learning. Puede reducir significativamente el tiempo necesario para obtener modelos de aprendizaje automático listos para producción. El aprendizaje automático automatizado puede ayudar con la selección de modelos, el ajuste de hiperparámetros, el entrenamiento de modelos y otras tareas, sin necesidad de un amplio conocimiento sobre programación o dominios.
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:
Una lista de elementos recomendados y una puntuación de similitud
Valores numéricos, para modelos de serie temporal y modelos de regresión
Un valor de probabilidad, que indica la probabilidad de que una nueva entrada pertenezca a alguna categoría existente
El nombre de una categoría o clúster con el que un nuevo elemento guarda más similitud
Una clase o un resultado previsto, para los modelos de clasificación
La puntuación por lotes se produce cuando se recopilan datos durante un período de tiempo fijo y, a continuación, se procesan en un lote. Esto podría incluir la generación de informes empresariales o el análisis de la fidelidad de los clientes.
La puntuación en tiempo real consiste en otorgar una puntuación a un proceso en curso lo más rápido posible. El ejemplo clásico es la detección de fraudes de tarjetas de crédito, pero la puntuación en tiempo real también puede usarse en el reconocimiento de voz, los diagnósticos médicos, y el análisis de mercado y muchas otras aplicaciones.
Información general sobre inteligencia artificial personalizada en Azure
Microsoft AI en GitHub: ejemplos, arquitecturas de referencia y procedimientos recomendados
Cuadernos del SDK de Azure Machine Learning para Python. Un repositorio de GitHub de cuadernos de ejemplo que muestran el SDK de Azure Machine Learning para Python.
Entrenamiento de modelos de R mediante la CLI de Azure ML (v2)
Ofertas de la plataforma Azure AI
El siguiente es un desglose de las tecnologías, plataformas y servicios de Azure que puede usar para desarrollar soluciones de inteligencia artificial para sus necesidades.
Azure Machine Learning
Este es un servicio de aprendizaje automático de nivel empresarial para crear e implementar modelos con mayor rapidez. Azure Machine Learning ofrece interfaces web y SDK para que pueda entrenar e implementar rápidamente sus modelos y canalizaciones de aprendizaje automático a escala. Use estas funcionalidades con plataformas de Python de código abierto, como PyTorch, TensorFlow y scikit-learn.
¿Cuáles son los productos de aprendizaje automático de Microsoft?
¿Qué es Azure Machine Learning? Orientación general con vínculos a muchos recursos de aprendizaje, SDK, documentación, etc.
Arquitecturas de referencia de Machine Learning para Azure
Aprendizaje automático automatizado de Azure
Azure proporciona una amplia compatibilidad para el aprendizaje automático automatizado. Los desarrolladores pueden crear modelos mediante una interfaz de usuario sin código o a través de una experiencia de cuadernos de Code First.
Página principal del producto de aprendizaje automático automatizado de Azure
Infografía sobre el aprendizaje automático automatizado de Azure (PDF)
Automatización de las actividades de aprendizaje automático con la CLI de Azure Machine Learning
Servicios de Azure AI
Se trata de una familia completa de servicios de inteligencia artificial y API cognitivas que le ayudarán a crear aplicaciones inteligentes. Estos modelos de inteligencia artificial preentrenados específicos de dominio se pueden personalizar con los datos.
Azure Cognitive Search
Este es un servicio de búsqueda en la nube con tecnología de inteligencia artificial para el desarrollo de aplicaciones web y para dispositivos móviles. El servicio puede realizar búsquedas en la nube sobre contenido heterogéneo privado, con opciones de enriquecimiento con IA si el contenido no está estructurado o no se pueden realizar búsquedas debido a un formato que está sin procesar.
Azure Bot Service
Se trata de un entorno de desarrollo de bots diseñado específicamente con plantillas predefinidas para empezar a trabajar rápidamente.
Arquitectura de referencia de Azure: Bot de conversación de nivel empresarial
Apache Spark en Azure
Apache Spark es una plataforma de procesamiento paralelo que admite el procesamiento en memoria para mejorar el rendimiento de aplicaciones de análisis de macrodatos. Spark proporciona primitivas de computación de clúster en memoria. Un trabajo de Spark puede cargar y almacenar datos en la memoria caché, y repetir consultas sobre ellos, mucho más rápidamente que con las aplicaciones basadas en disco como Hadoop.
Apache Spark en Azure HDInsight es la implementación que hace Microsoft de Apache Spark en la nube. Los clústeres de Spark en HDInsight son compatibles con Azure Storage y Azure Data Lake Storage, por lo que puede usar los clústeres de HDInsight Spark para procesar los datos almacenados en Azure.
La Microsoft Machine Learning Library para Apache Spark es SynapseML (anteriormente denominada MMLSpark). Esta biblioteca de código abierto agrega muchas herramientas de ciencia de datos y aprendizaje profundo, funcionalidades de red y rendimiento de nivel de producción al ecosistema de Spark. Obtenga más información sobre las características y funcionalidades de SynapseML.
Introducción a Azure HDInsight. Información básica sobre características, arquitectura de clústeres y casos de uso, con vínculos a inicios rápidos y tutoriales.
Tutorial: Compilación de aplicaciones de aprendizaje automático de Apache Spark en Azure HDInsight
Repositorio de GitHub para SynapseML: Microsoft Machine Learning Library para Apache Spark
Creación de una canalización de aprendizaje automático de Apache Spark en HDInsight
Azure Databricks Runtime para Machine Learning
Azure Databricks es una plataforma de análisis basada en Apache Spark que ofrece una configuración con un clic, simplifica los flujos de trabajo y ofrece un espacio de trabajo interactivo para la colaboración entre científicos de datos, ingenieros y analistas empresariales.
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.
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
Volkswagen: Traducción automática de Volkswagen en 40 idiomas
Examinar más historias de clientes sobre inteligencia artificial
Pasos siguientes
Para más información sobre todos los productos de desarrollo de inteligencia artificial disponibles en Microsoft, consulte la página de la plataforma de IA de Microsoft.
Para saber cómo desarrollar soluciones de inteligencia artificial, consulte la página Microsoft AI School.
Microsoft AI en GitHub: Los ejemplos, arquitecturas de referencia y procedimientos recomendados organizan los repositorios basados en inteligencia artificial de código abierto de Microsoft y proporcionan tutoriales y materiales de aprendizaje.