Aplicaciones de AA
Las aplicaciones de aprendizaje automático son una representación independiente de los casos de uso de aprendizaje automático en Data Science.
ML Applications es una nueva capacidad de Data Science que ofrece una plataforma MLOps sólida para la entrega de IA/AA. Estandariza el empaquetado y el despliegue de la funcionalidad de IA/AA, lo que le permite crear, desplegar y operar el aprendizaje automático como servicio. Con las aplicaciones de aprendizaje automático, puede aprovechar Data Science para implementar casos de uso de IA/AA y aprovisionarlos en producción para sus aplicaciones o clientes. Al acortar el ciclo de vida de desarrollo de meses a semanas, las aplicaciones de aprendizaje automático agilizan el tiempo de comercialización y reducen la complejidad operativa y el costo total de propiedad. Proporciona una plataforma integral para implementar, validar y promover soluciones de aprendizaje automático en todas las etapas, desde el desarrollo y el control de calidad hasta la preproducción y la producción.
Las aplicaciones de aprendizaje automático son ideales para proveedores de SaaS que necesitan aprovisionar y mantener la funcionalidad de aprendizaje automático en una flota de clientes a la vez que garantizan un aislamiento estricto de los datos y la carga de trabajo. Permite a los proveedores de SaaS ofrecer las mismas capacidades basadas en aprendizaje automático a muchos inquilinos sin comprometer la seguridad ni la eficiencia operativa. Tanto si se trata de incorporar información basada en IA, automatizar la toma de decisiones o permitir el análisis predictivo, las aplicaciones de aprendizaje automático garantizan que cada cliente de SaaS se beneficie de un despliegue de aprendizaje automático totalmente gestionado y aislado.
Además de SaaS, las aplicaciones de aprendizaje automático también son ideales para implementaciones multirregionales y organizaciones que buscan crear un mercado de aprendizaje automático en el que los proveedores puedan registrar, compartir y monetizar soluciones de IA/AA. Los clientes pueden instanciar e integrar sin problemas estas capacidades de aprendizaje automático en sus flujos de trabajo con un esfuerzo mínimo.

Por ejemplo, una aplicación de aprendizaje automático para un caso de uso de predicción de abandono de clientes podría consistir en:
- un pipeline con pasos de ingestión, transformación y formación que preparan datos de entrenamiento, entrenan un nuevo modelo y lo despliegan.
- Un cubo que se utiliza para almacenar datos ingeridos y transformados.
- Un disparador que actúa como punto de entrada y garantiza la ejecución segura de ejecuciones de pipeline en el contexto de un cliente SaaS específico.
- Un despliegue de modelo que atiende solicitudes de predicción procedentes de clientes.
Las aplicaciones de aprendizaje automático le permiten representar toda la implantación como código y almacenarla y versionarla en un repositorio de código fuente. La solución se empaqueta como un paquete de aplicación de aprendizaje automático que contiene principalmente metadatos. Los metadatos incluyen información de control de versiones, contrato de aprovisionamiento y declaraciones de dependencias de entorno, lo que hace que el paquete sea independiente de la región y del entorno. Una vez creado, el paquete se puede desplegar en cualquier entorno de destino sin modificaciones. Esto ayuda a estandarizar el empaquetado y la entrega de su funcionalidad de AA.
Cuando se despliega una aplicación de aprendizaje automático, se representa mediante los recursos de aplicación de aprendizaje automático e implantación de aplicaciones de aprendizaje automático. En esta etapa, se puede aprovisionar para su uso. Normalmente, una aplicación cliente (como una plataforma SaaS, un sistema empresarial o una herramienta de automatización de flujos de trabajo) solicita al servicio de aplicación de aprendizaje automático que aprovisione una nueva instancia de la aplicación de aprendizaje automático para un cliente o unidad operativa específicos. Solo en este punto está la solución completamente instanciada y lista para su uso.
En resumen, las aplicaciones de aprendizaje automático proporcionan una forma estandarizada de crear, empaquetar y ofrecer funcionalidades de aprendizaje automático a escala, lo que reduce la complejidad y acelera el tiempo de producción en varios escenarios, incluidos:
- Adopción de IA SaaS, donde las plataformas SaaS necesitan integrar capacidades de aprendizaje automático para miles de clientes al tiempo que garantizan la seguridad, la escalabilidad y la eficiencia operativa.
- Despliegues en varias regiones, en los que la funcionalidad de aprendizaje automático se debe aprovisionar de forma consistente en diferentes ubicaciones con una sobrecarga operativa mínima.
- Adopción de IA empresarial, en la que las organizaciones necesitan desplegar instancias aisladas de aprendizaje automático en equipos, unidades de negocio o subsidiarias, a la vez que mantienen la gobernanza y el cumplimiento.
- Los mercados de aprendizaje automático, donde los proveedores pueden empaquetar y distribuir soluciones de aprendizaje automático, lo que permite a los clientes descubrirlas, desplegarlas y utilizarlas fácilmente como servicio.
Más allá de SaaS, las aplicaciones de aprendizaje automático se pueden utilizar en otros escenarios. Son beneficiosos cuando existe la necesidad de aprovisionar una solución de aprendizaje automático muchas veces, como en diferentes ubicaciones geográficas. Además, las aplicaciones de aprendizaje automático se pueden utilizar para crear un mercado en el que los proveedores puedan registrar sus aplicaciones y ofrecerlas como un servicio a los clientes, que luego pueden instanciarlas y utilizarlas.
La propia capacidad de aplicaciones de aprendizaje automático es gratuita. Solo se le cobrará por la infraestructura subyacente (recursos informáticos, almacenamiento y redes) utilizada, sin ningún margen adicional.
Recursos de aplicaciones de AA
- Aplicación de AA
- Recurso que representa un caso de uso de aprendizaje automático y sirve como paraguas para implementaciones e instancias de aplicaciones de aprendizaje automático. Define y representa una solución de aprendizaje automático, lo que permite a los proveedores ofrecer funciones de aprendizaje automático a los consumidores.
- Implementación de aplicación de AA
- Recurso que representa una solución específica para el caso de uso de aprendizaje automático definido por una aplicación de aprendizaje automático. Contiene todos los detalles de implantación que permiten la instanciación de la solución para los consumidores. Una aplicación de aprendizaje automático solo puede tener una implantación.
- Versión de implementación de aplicación de AA
- Recurso de solo lectura que representa una instantánea de una implantación de aplicación de aprendizaje automático. La versión se crea automáticamente cuando una implantación de aplicación de aprendizaje automático alcanza un nuevo estado consistente.
- Instancia de aplicación de AA
- Recurso que representa una única instancia aislada de una aplicación de aprendizaje automático que permite a los consumidores configurar y utilizar la funcionalidad de aprendizaje automático proporcionada. Las instancias de aplicaciones de aprendizaje automático desempeñan un papel crucial a la hora de definir límites para el aislamiento de datos, cargas de trabajo y modelos. Este nivel de aislamiento es esencial para las organizaciones de SaaS, ya que significa que pueden garantizar la segregación y la seguridad de los recursos de sus clientes.
- Vista de instancia de aplicación de AA
- Recurso de solo lectura, que es una copia gestionada automáticamente de la instancia de aplicación de aprendizaje automático ampliada con detalles adicionales, como referencias a componentes de instancia. Permite a los proveedores realizar un seguimiento del consumo de sus aplicaciones de aprendizaje automático. Esto significa que los proveedores pueden observar los detalles de implantación de las instancias, supervisarlas y solucionarlas. Cuando los consumidores y los proveedores trabajan en distintos arrendamientos, las vistas de instancia de aplicación de aprendizaje automático son la única forma de que los proveedores recopilen información sobre el consumo de sus aplicaciones.
Los recursos de la aplicación ML son de solo lectura en la consola de OCI. Para la gestión y creación de los recursos, puede utilizar la CLI mlapp
que forma parte del proyecto de ejemplo de aplicación de aprendizaje automático, la CLI oci
o las API.
Conceptos de aplicación de AA
- Paquete de aplicación de AA
- Disparador de aplicación de AA
- Paquete de aplicación de AA
- Permite un empaquetado estandarizado de la funcionalidad de aprendizaje automático que es independiente del entorno y la región. Contiene detalles de implantación, como componentes, descriptores y esquema de configuración de Terraform, y es una solución portátil que se puede utilizar en cualquier arrendamiento, región o entorno. Las dependencias de infraestructura de la implantación contenida (por ejemplo, VCN y OCID de log) que son específicas de una región o entorno se proporcionan como argumentos de paquete durante el proceso de carga.
- Disparador de aplicación de AA
- Los disparadores permiten a los proveedores de aplicaciones de aprendizaje automático especificar el mecanismo de disparo para sus trabajos o pipelines de aprendizaje automático, lo que facilita la implantación de MLOps totalmente automatizado. Los disparadores son los puntos de entrada para las ejecuciones de los flujos de trabajo de AA. Se definen mediante archivos YAML en el paquete de aplicaciones de aprendizaje automático como componentes de instancia. Los disparadores se crean automáticamente cuando se crea una nueva instancia de aplicaciones de aprendizaje automático, pero solo cuando se crean todos los demás componentes de la instancia. Por lo tanto, cuando se crea un disparador, puede hacer referencia a otros componentes de instancia creados anteriormente.
Roles de aplicación de AA
- Proveedores
- Consumidores
- Proveedor
- Los proveedores son clientes de OCI que crean, despliegan y operan funciones de aprendizaje automático. Empaquetan y despliegan funciones de aprendizaje automático como aplicaciones e implementaciones de aprendizaje automático. Utilizan aplicaciones de aprendizaje automático para ofrecer servicios de predicción como servicio a los consumidores. Garantizan que los servicios de predicción prestados cumplan los acuerdos de nivel de servicio (SLA) acordados.
- Consumidor
- Los consumidores son clientes de OCI que crean instancias de aplicación de aprendizaje automático y utilizan los servicios de predicción que ofrecen estas instancias. Normalmente, los consumidores son aplicaciones SaaS como Fusion. Utilizan aplicaciones de aprendizaje automático para integrar la funcionalidad de aprendizaje automático y ofrecerla a sus clientes.
Gestión del ciclo de vida
Las aplicaciones de aprendizaje automático cubren todo el ciclo de vida de las soluciones de aprendizaje automático.
Esto comienza con las primeras etapas de diseño, donde los equipos pueden acordar contratos y pueden comenzar a trabajar de forma independiente. Incluye el despliegue de producción, la gestión de flotas y la implementación de nuevas versiones.
Crear
- Representación como código
- Toda la solución, incluidos todos sus componentes y flujos de trabajo, se representa como código. Esto promueve las mejores prácticas de desarrollo de software, como la coherencia y la reproducibilidad.
- Automatización
- Con las aplicaciones de aprendizaje automático, la automatización es sencilla. Puede centrarse en automatizar los flujos de trabajo de la solución mediante Data Science Scheduler, ML Pipelines y ML Application Triggers. La automatización de los flujos de aprovisionamiento y configuración se gestiona mediante el servicio de aplicación de aprendizaje automático.
- Embalaje estandarizado
- Las aplicaciones de aprendizaje automático proporcionan empaquetado independiente del entorno y de la región, incluidos metadatos para el control de versiones, las dependencias y las configuraciones de aprovisionamiento.
Desplegar
- Despliegue gestionado por servicios
- Puede desplegar y gestionar sus soluciones de aprendizaje automático como recursos de aplicaciones de aprendizaje automático. Al crear el recurso de implantación de aplicaciones de aprendizaje automático, puede desplegar la implantación empaquetada como un paquete de aplicaciones de aprendizaje automático. El servicio de aplicación de aprendizaje automático organiza el despliegue, validando la implantación y creando los recursos de OCI correspondientes.
- Entornos
- Las aplicaciones de aprendizaje automático permiten que los proveedores se desplieguen a través de varios entornos de ciclo de vida, como desarrollo, control de calidad y preproducción, lo que permite una implementación controlada de aplicaciones de aprendizaje automático en producción. En producción, algunas organizaciones ofrecen a los clientes varios entornos, como "temporal" y "producción". Con ML Apps, las nuevas versiones se pueden implementar, evaluar y probar en "staging" antes de promocionarse a "production". Esto proporciona a los clientes un gran control sobre la adopción de nuevas versiones, incluida la funcionalidad de aprendizaje automático.
- Despliegue entre regiones
- Implemente soluciones en varias regiones, incluidas las no comerciales, como las regiones gubernamentales.
Ejecución
- Entrega como servicio
- Los proveedores ofrecen servicios de predicción "como servicio" para gestionar todo el mantenimiento y las operaciones. Los clientes consumen los servicios de predicción sin ver los detalles de implantación.
- Supervisión y resolución de problemas
- Control simplificado, solución de problemas y análisis de la causa raíz con control de versiones detallado, trazabilidad y estadísticas contextuales.
- Capacidad de desarrollo
- Ayuda a ofrecer iteraciones, actualizaciones y parches rápidos sin tiempo de inactividad, lo que garantiza una mejora continua y la adaptación a las necesidades del cliente.
Funciones Clave
Algunas de las funciones clave de las aplicaciones de aprendizaje automático son:
- Entrega como servicio
- Las aplicaciones de aprendizaje automático permiten a los equipos crear y ofrecer servicios de predicción como SaaS (software como servicio). Esto significa que los proveedores pueden gestionar y desarrollar soluciones sin afectar a los clientes. Las aplicaciones de aprendizaje automático sirven como meta-servicio, facilitando la creación de nuevos servicios de predicción que se pueden consumir y escalar como ofertas SaaS.
- OCI nativo
- La perfecta integración con los recursos de OCI garantiza la coherencia y simplifica el despliegue en entornos y regiones.
- Embalaje estándar
- El empaquetado independiente del entorno y de la región estandariza la implementación, lo que facilita el despliegue global de aplicaciones de aprendizaje automático.
- Aislamiento de inquilinos
- Garantiza el aislamiento completo de datos y cargas de trabajo para cada cliente, mejorando la seguridad y el cumplimiento.
- Control de Versiones
- Admite implementaciones en evolución con procesos de versiones independientes, lo que permite actualizaciones y mejoras rápidas.
- Actualizaciones sin tiempo de inactividad
- Los cambios de versión de instancias automatizados garantizan un servicio continuo sin interrupciones.
- Aprovisionamiento entre arrendamientos
- Admite la observabilidad entre arrendamientos y el consumo del mercado, lo que amplía las posibilidades de despliegue.
- Supervisión de flota
- El control y los análisis entre regiones proporcionan estadísticas completas sobre el rendimiento y el uso de las aplicaciones de aprendizaje automático.
Las aplicaciones de aprendizaje automático presentan los siguientes recursos:
- Aplicación de AA
- Implementación de aplicación de AA
- Versión de implementación de aplicación de AA
- Instancia de aplicación de AA
- Vista de instancia de aplicación de AA
Valor agregado
Las aplicaciones de aprendizaje automático sirven como plataforma como servicio (PaaS), proporcionando a las organizaciones el marco básico y los servicios necesarios para crear, desplegar y gestionar funciones de aprendizaje automático a escala.
Esto dota a los equipos de una plataforma incorporada para modelar e implementar casos de uso de aprendizaje automático, lo que elimina la necesidad de desarrollar marcos y herramientas personalizados. Por lo tanto, los equipos pueden dedicar sus esfuerzos a crear soluciones de IA innovadoras, reduciendo así tanto el tiempo de comercialización como el costo total de propiedad de las funciones de aprendizaje automático.
ML Applications ofrece a las organizaciones API y abstracciones para supervisar todo el ciclo de vida de los casos de uso de ML. Las implantaciones se representan como código, se empaquetan en paquetes de aplicaciones de aprendizaje automático y se despliegan en recursos de implantación de aplicaciones de aprendizaje automático. Se realiza un seguimiento de las versiones históricas de las implantaciones como recursos de versión de implantación de aplicación de aprendizaje automático. ML Applications es el pegamento que establece la trazabilidad entre todos los componentes utilizados por las implementaciones, el control de versiones y la información del entorno, y los datos de consumo del cliente. A través de las aplicaciones de aprendizaje automático, las organizaciones obtienen información precisa sobre qué implementaciones de aprendizaje automático se despliegan en entornos y regiones, qué clientes utilizan aplicaciones específicas y el estado general de la flota de aprendizaje automático. Además, ML Applications ofrece capacidades de recuperación de instancias, lo que permite una fácil recuperación de errores de infraestructura y configuración.
Con límites bien definidos, las aplicaciones de aprendizaje automático ayudan a establecer contratos de aprovisionamiento y predicción, lo que permite a los equipos dividir y conquistar tareas de manera más eficiente. Por ejemplo, los equipos que trabajan en código de aplicación cliente (por ejemplo, una plataforma SaaS o un sistema empresarial) pueden colaborar sin problemas con los equipos de aprendizaje automático acordando contratos de predicción, lo que permite a ambos equipos trabajar de forma independiente. Del mismo modo, los equipos de aprendizaje automático pueden definir contratos de aprovisionamiento, lo que permite a los equipos manejar las tareas de aprovisionamiento y configuración de forma autónoma. Este desacoplamiento elimina las dependencias y acelera los plazos de entrega.
Las aplicaciones de aprendizaje automático optimizan la evolución de las soluciones de aprendizaje automático mediante la automatización del proceso de actualización de versiones. Las actualizaciones están orquestadas por completo por las aplicaciones de aprendizaje automático, lo que mitiga los errores y permite la ampliación de soluciones a muchas instancias (clientes). Los implementadores pueden promover y verificar los cambios en una cadena de entornos de ciclo de vida (por ejemplo, desarrollo, control de calidad, preproducción, producción), manteniendo el control sobre la publicación de cambios a los clientes.
El aislamiento de inquilinos se destaca como una ventaja clave de las aplicaciones de aprendizaje automático, lo que garantiza una separación completa de los datos y las cargas de trabajo para cada cliente, mejorando así la seguridad y el cumplimiento. A diferencia de los métodos tradicionales que dependen del aislamiento basado en procesos, las aplicaciones ML permiten a los clientes implementar restricciones basadas en privilegios, salvaguardando el aislamiento del inquilino incluso en caso de defectos.
Diseñadas teniendo en cuenta la escalabilidad, las aplicaciones de aprendizaje automático permiten a las grandes organizaciones, especialmente a las organizaciones SaaS, adoptar una plataforma estandarizada para el desarrollo de aprendizaje automático, lo que garantiza la coherencia entre muchos equipos. Se pueden desarrollar cientos de soluciones de aprendizaje automático sin que toda la iniciativa de aprendizaje automático caiga en el caos. Gracias a la automatización que abarca la implementación de pipelines de aprendizaje automático, el despliegue de modelos y el aprovisionamiento, las organizaciones de SaaS pueden industrializar el desarrollo de funciones de aprendizaje automático para SaaS y gestionar de manera eficiente millones de pipelines y modelos que se ejecutan de forma autónoma en producción.
Tiempo de comercialización
- Implementación estandarizada
- Elimina la necesidad de marcos personalizados, lo que permite a los equipos centrarse en los casos de uso empresariales.
- Automatización
- Mejora la velocidad y reduce las intervenciones manuales, cruciales para escalar las soluciones SaaS.
- Separación de preocupaciones
- Los límites, los contratos y las API claros permiten a los diferentes equipos trabajar de forma independiente, lo que agiliza el desarrollo y el despliegue.
Costos de desarrollo y explotación
- Reducción de los costos de desarrollo
- El uso de servicios predefinidos reduce la necesidad de trabajo básico.
- Capacidad de desarrollo
- Las iteraciones rápidas y las actualizaciones independientes sin tiempo de inactividad garantizan una mejora continua.
- Trazabilidad
- La información detallada sobre entornos, componentes y revisiones de código ayuda a comprender y gestionar las soluciones de aprendizaje automático.
- Aprovisionamiento y observabilidad automatizados
- Simplifica la gestión y el control de las soluciones de aprendizaje automático, lo que reduce la sobrecarga operativa.
- Gestión de conjuntos
- Gestione de forma eficaz despliegues de aprendizaje automático a gran escala con herramientas de análisis y supervisión integradas.
Seguridad y fiabilidad
- Aislamiento de datos y cargas de trabajo
- Garantiza que los datos y las cargas de trabajo de cada cliente estén aislados de forma segura.
- Fiabilidad
- Las actualizaciones automatizadas y la supervisión sólida eliminan errores y garantizan operaciones estables.
- Ningún problema de vecino ruidoso
- Garantiza que las cargas de trabajo no interfieran entre sí, manteniendo el rendimiento y la estabilidad.
Flujo de trabajo de creación y despliegue
El desarrollo de aplicaciones de aprendizaje automático se asemeja al desarrollo de software estándar.
Los ingenieros y científicos de datos gestionan su implantación en un repositorio de código fuente, utilizando la documentación y los repositorios de la aplicación de aprendizaje automático como orientación. Por lo general, comienzan clonando un proyecto de muestra proporcionado por el equipo de aplicaciones de aprendizaje automático, que promueve las mejores prácticas y ayuda a los equipos de SaaS a iniciar rápidamente el desarrollo, evitando una curva de aprendizaje pronunciada.
Al comenzar con un ejemplo completo y totalmente funcional, los equipos pueden crear, desplegar y aprovisionar rápidamente el ejemplo, familiarizándose rápidamente con las aplicaciones de aprendizaje automático. A continuación, pueden cambiar el código para agregar una lógica de negocio específica, como agregar un paso de preprocesamiento al pipeline de formación o un código de formación personalizado.
El desarrollo y las pruebas se pueden realizar localmente en sus computadoras, pero la configuración de la integración continua/entrega continua (CI/CD) es esencial para ciclos de versiones más rápidos, una colaboración mejorada y coherencia. Los equipos pueden utilizar ejemplos y herramientas proporcionados por el equipo de aplicaciones de aprendizaje automático para implantar pipelines de integración y despliegue continuos.
Los pipelines de integración y despliegue continuos despliegan la aplicación de aprendizaje automático en el entorno necesario (por ejemplo, Desarrollo) y realizan pruebas de integración para garantizar que la solución de aprendizaje automático sea correcta independientemente de la aplicación SaaS. Estas pruebas pueden desplegar la aplicación y su implantación, crear instancias de prueba, disparar el flujo de entrenamiento y probar el modelo desplegado. Las pruebas integrales garantizan una integración adecuada con la aplicación SaaS.
Cuando se despliega la aplicación de aprendizaje automático, se representa como un recurso de aplicación de aprendizaje automático junto con una implantación de aplicación de aprendizaje automático. El recurso Versión de Implantación de Aplicación de AA ayuda a realizar un seguimiento de la información sobre las diferentes versiones desplegadas. Por ejemplo, la versión 1.3 es la última versión desplegada, que actualiza la versión anterior 1.2.
Los pipelines de integración y despliegue continuos necesitan promocionar la solución mediante entornos de ciclo de vida hasta la producción. En producción, a menudo es necesario desplegar la aplicación de aprendizaje automático en varias regiones para alinearse con el despliegue de la aplicación cliente. Cuando los clientes tienen varios entornos de producción (por ejemplo, temporales y de producción), los pipelines de integración y despliegue continuos necesitan promocionar la aplicación de aprendizaje automático a través de todos estos entornos.
Puede utilizar pipelines de aprendizaje automático como componentes de aplicación en sus aplicaciones de aprendizaje automático para implantar un flujo de trabajo de varios pasos. Los pipelines de aprendizaje automático pueden orquestar pasos o trabajos arbitrarios que necesite implantar.
Operación de Despliegue
La operación de despliegue implica varios pasos clave para garantizar que las aplicaciones de aprendizaje automático se implanten y actualicen correctamente en todos los entornos.
En primer lugar, es necesario asegurarse de que existen los recursos de aplicación de aprendizaje automático e implantación de aplicación de aprendizaje automático. Si no, son creados. Si ya existen, se actualizan:
- Cree o actualice el recurso Aplicación ML. Esto representa todo el caso de uso de aprendizaje automático y todos los recursos e información relacionados.
- Cree o actualice el recurso Implantación de aplicación de aprendizaje automático. Esto existe en los recursos de la aplicación de aprendizaje automático y representa la implantación, lo que le permite gestionarla. Necesita la implantación de la aplicación de aprendizaje automático para desplegar el paquete de implantación.
- Cargue el paquete de aplicación ML. Este paquete contiene la implantación de la aplicación de aprendizaje automático junto con otros metadatos, empaquetados como un archivo zip con una estructura específica.
Cuando se carga un paquete en un recurso de implantación de aplicación de aprendizaje automático, el servicio de aplicación de aprendizaje automático lo valida y, a continuación, realiza el despliegue. Simplificándolo, los pasos clave durante el despliegue del paquete son:
- Se crean instancias de los componentes de la aplicación (componentes multiinquilino).
- Se actualizan todos los recursos de instancia de aplicación de aprendizaje automático existentes ya aprovisionados para los clientes SaaS. Los componentes de instancia de cada instancia se actualizan para que coincidan con las definiciones recién cargadas.
Flujo de aprovisionamiento
Para poder aprovisionar instancias de aplicación de aprendizaje automático, la aplicación de aprendizaje automático se debe desplegar y registrar en la aplicación cliente.
- 1. Comprobación de suscripción de cliente y aplicación de aprendizaje automático
- El flujo de aprovisionamiento se inicia cuando un cliente se suscribe a la aplicación cliente. La aplicación cliente comprueba si se ha aprovisionado alguna aplicación de aprendizaje automático para el cliente.
- 2. Solicitud de provisionamiento
- Si se necesitan aplicaciones de aprendizaje automático, la aplicación cliente se pone en contacto con el servicio de aplicación de aprendizaje automático y solicita aprovisionar una instancia, incluidos los detalles de configuración específicos del inquilino.
- 3. Creación y configuración de una instancia de aplicación de aprendizaje automático
- El servicio de aplicación de aprendizaje automático crea el recurso de instancia de aplicación de aprendizaje automático con la configuración específica. Este recurso lo gestiona la aplicación cliente, que puede activar, desactivar, volver a configurar o suprimir la instancia. Además, el servicio de aplicación de aprendizaje automático crea un recurso de vista de instancia de aplicación de aprendizaje automático para que los proveedores les informen sobre el consumo de la aplicación de aprendizaje automático y los componentes de la instancia. El servicio de aplicación de aprendizaje automático también crea todos los componentes de instancia definidos en la implantación, como disparadores, cubos, ejecuciones de pipeline, ejecuciones de trabajos y despliegues de modelos.

Cuando se despliega un nuevo paquete de aplicación de aprendizaje automático después de la creación de instancias, el servicio de aplicación de aprendizaje automático garantiza que todas las instancias se actualicen con las definiciones de implantación más recientes.
Flujo de tiempo de ejecución
Cuando se aprovisiona la aplicación de aprendizaje automático para un cliente, toda la implantación se instancia por completo.
- Componentes multiinquilino
- Se ha creado una instancia única en una aplicación de aprendizaje automático, dando soporte a todos los clientes (por ejemplo, pipelines de aprendizaje automático). Estas se definen como componentes de aplicación.
- Componentes de inquilino único
- Instanciado para cada cliente, que se ejecuta solo en el contexto de un cliente concreto. Estas se definen como componentes de instancia.

Los pipelines o trabajos de la implantación se inician mediante disparadores. Los disparadores crean ejecuciones de pipeline y trabajos en el contexto de cada cliente, transfiriendo los parámetros adecuados (contexto) a las ejecuciones creadas. Además, los disparadores son esenciales para garantizar el aislamiento de los inquilinos. Garantizan que la entidad de recurso (identidad) de los recursos de instancia de aplicación de aprendizaje automático sea heredada por todas las cargas de trabajo que inician. Esto le permite crear políticas que establezcan un sandbox de seguridad para cada instancia aprovisionada.
Los pipelines permiten definir un juego de pasos y orquestarlos. Por ejemplo, un flujo típico puede implicar la ingestión de datos de la aplicación cliente, su transformación en un formato adecuado para el entrenamiento y, a continuación, el entrenamiento y despliegue de nuevos modelos.
El despliegue de modelo se utiliza como backend de predicción, pero la aplicación cliente no accede directamente a él. La aplicación cliente, que puede ser de un solo inquilino (aprovisionado para cada cliente) o multiinquilino (que presta servicio a muchos clientes), obtiene predicciones poniéndose en contacto con el enrutador de predicción de aplicación de aprendizaje automático. El enrutador de predicción encuentra el backend de predicción correcto en función de la instancia utilizada y el caso de uso de predicción implantado por la aplicación.
Ejemplo de riesgo fetal
Veamos los detalles de implantación de una aplicación de aprendizaje automático de ejemplo para comprender cómo implantar una.
Utilizamos una aplicación de predicción de riesgo fetal que aprovecha los datos de la cardiotocografía (CTG) para clasificar el estado de salud de un feto. Esta aplicación tiene como objetivo ayudar a los profesionales de la salud mediante la predicción de si la condición fetal es normal, arriesgada o anormal basada en los registros de exámenes CTG.
Detalles de Implantación
La implantación sigue el patrón de predicción en línea estándar y consta de un pipeline con pasos de ingestión, transformación y entrenamiento y despliegue de modelos.
-
Ingestión: este paso prepara el juego de datos raw y lo almacena en el cubo de instancia.
-
Transformación: la preparación de datos se realiza mediante la biblioteca ADS. Esto implica que:
- Upsampling: el juego de datos está sesgado hacia los casos normales, por lo que se realiza un upsampling para equilibrar las clases.
- Escala de funciones: las funciones se escalan mediante QuantileTransformer.
- A continuación, el juego de datos preparado se vuelve a almacenar en el cubo de instancia.
-
Formación y despliegue de modelos: el algoritmo XGBoost se utiliza para entrenar los modelos debido a su precisión superior en comparación con otros algoritmos (por ejemplo, Random Forest, KNN, SVM). La biblioteca ADS se utiliza para este proceso y el modelo entrenado se despliega en el despliegue del modelo de instancia.
La implementación consta de:
- Componentes de aplicación: el componente principal es el pipeline que organiza tres trabajos:
- Trabajo de ingesta
- Trabajo de transformación
- Trabajo de formación
- Componentes de instancia: aquí se definen cuatro componentes de instancia:
- Cubo de instancia
- Modelo por defecto
- Despliegue de modelo
- Disparador de pipeline
- descriptor.yaml: contiene los metadatos que describen la implementación (el paquete).
- Componentes de aplicación: el componente principal es el pipeline que organiza tres trabajos:
El código fuente está disponible en este proyecto.
descriptor.yaml
:descriptorSchemaVersion: 1.0
mlApplicationVersion: 1.0
implementationVersion: 1.2
# Package arguments allow you to resolve dependencies of your implementation that are environment-specific.
# Typically, OCIDs of infrastructure resources like subnets, data science projects, logs, etc., are passed as package arguments.
# For illustration purposes, only 2 package arguments are listed here.
packageArguments:
# The implementation needs a subnet, and it is environment-specific. It is provided as a package argument.
subnet_id:
type: ocid
mandatory: true
description: "Subnet OCID for ML Job"
# similarly for the ID of a data science project
data_science_project_id:
type: ocid
mandatory: true
description: "Project OCID for ML Job"
# Configuration schema allows you to define the schema for your instance configuration.
# It will be used during provisioning, and the initial configuration provided must conform to the schema.
configurationSchema:
# The implementation needs to know the name of the external bucket (not managed by ML Apps) where the raw dataset is available.
external_data_source:
type: string
mandatory: true
description: "External Data Source (OCI Object Storage Service URI in form of <a target="_blank" href="oci://">oci://</a><bucket_name>@<namespace>/<object_name>"
sampleValue: "<a target="_blank" href="oci://test_data_fetalrisk@mynamespace/test_data.csv">oci://test_data_fetalrisk@mynamespace/test_data.csv</a>"
# This application provides 1 prediction use case (1 prediction service).
onlinePredictionUseCases:
- name: "fetalrisk"
Todos los recursos de OCI utilizados en la implantación se definen mediante Terraform. Terraform permite especificar de forma declarativa los componentes necesarios para la implantación.
# For illustration purposes, only a partial definition is listed here.
resource oci_datascience_job ingestion_job {
compartment_id = var.app_impl.compartment_id
display_name = "Ingestion_ML_Job"
delete_related_job_runs = true
job_infrastructure_configuration_details {
block_storage_size_in_gbs = local.ingestion_job_block_storage_size
job_infrastructure_type = "STANDALONE"
shape_name = local.ingestion_job_shape_name
job_shape_config_details {
memory_in_gbs = 16
ocpus = 4
}
subnet_id = var.app_impl.package_arguments.subnet_id
}
job_artifact = "./src/01-ingestion_job.py"
}
resource "oci_objectstorage_bucket" "data_storage_bucket" {
compartment_id = var.compartment_ocid
namespace = var.bucket_namespace
name = "ml-app-fetal-risk-bucket-${var.instance_id}"
access_type = "NoPublicAccess"
}
Los componentes de instancia suelen hacer referencia a variables específicas de la instancia, como el ID de instancia. Puede confiar en variables implícitas definidas por el servicio de aplicación de aprendizaje automático. Cuando necesite, por ejemplo, el nombre de la aplicación, puede hacer referencia a ella con ${var.ml_app_name}
.
En conclusión, la implantación de aplicaciones de aprendizaje automático requiere unos pocos componentes clave: un descriptor de paquete y un par de definiciones de Terraform. Siguiendo la documentación proporcionada, puede obtener detalles sobre cómo crear sus propias aplicaciones de aprendizaje automático.