Configuración de proyecto de aplicación de aprendizaje automático

Después de crear la infraestructura para la aplicación de aprendizaje automático de ejemplo, puede utilizar el proyecto de aplicación de aprendizaje automático de ejemplo como plantilla para empezar a crear, desplegar y operar sus propias aplicaciones de aprendizaje automático.

Este proyecto incluye las mejores prácticas de desarrollo y proporciona la CLI mlapp, una herramienta que simplifica el desarrollo de aplicaciones de aprendizaje automático. Para crear una aplicación de aprendizaje automático, debe utilizar la CLI de mlapp, Terraform, el SDK de OCI o la CLI de OCI. No puede crear una aplicación de aprendizaje automático en la consola, pero puede ver las aplicaciones de aprendizaje automático y sus detalles allí.

Al iniciar el proyecto con el proyecto de aplicación de AA de ejemplo, puede avanzar la implantación de la aplicación de AA a producción. El proyecto se crea utilizando la experiencia adquirida al ayudar a las organizaciones a desplegar con éxito sus aplicaciones en producción.

El proyecto de aplicación de aprendizaje automático de ejemplo está disponible aquí: sample-project.

Clone este proyecto para utilizarlo como base para la implantación de la aplicación de AA.

El proyecto incluye documentación en los archivos README.md, donde puede encontrar información detallada sobre el proyecto y sus componentes.

Estructura de Proyecto

El proyecto consta de dos partes principales:

  • La carpeta de infraestructura automatiza la creación de recursos de los que depende la aplicación de aprendizaje automático de ejemplo.
  • La carpeta de la aplicación ML contiene la aplicación de aprendizaje automático de ejemplo, incluida su configuración, implantación y la CLI mlapp.

Configuración de recursos de requisitos previos

Antes de empezar a crear y desplegar la aplicación de aprendizaje automático, debe crear los recursos necesarios de los que depende la aplicación de aprendizaje automático de ejemplo (por ejemplo, logs, grupos de logs, un proyecto de Data Science y una subred). Este proceso se puede automatizar siguiendo estos pasos:

  1. Prepare la carpeta del entorno.
    Puede utilizar la carpeta de entorno dev por defecto (environments/dev) o utilizarla como plantilla para crear el entorno personalizado. Para crear un entorno personalizado:
    1. Realice una copia de la carpeta del entorno de desarrollo (environments/dev).
    2. Cambie el nombre de la carpeta copiada para que coincida con el nombre del entorno.
  2. Configure el entorno.
    1. Vaya a la carpeta del entorno (por ejemplo, environments/dev).
    2. Edite el archivo input_variables.tfvars para configurar los valores del entorno.
  3. Ejecute Terraform para crear recursos.
    1. Inicialice Terraform en la carpeta del entorno:
      terraform init
    2. Aplique la configuración para crear los recursos:
      terraform apply -var- file input_variables.tfvars
    3. Si es necesario, destruya los recursos creados:
      terraform destroy -var- file input_variables.tfvars
    Nota

    No reutilice recursos en diferentes entornos, ya que podría romper el aislamiento del entorno. Por ejemplo, compartir un recurso entre entornos de desarrollo y de control de calidad puede causar problemas en el desarrollo que pueden hacer que el entorno de control de calidad no se pueda utilizar, lo que retrasa el despliegue en producción.

Configuración del Entorno de Aplicación de AA

  1. Prepare la carpeta del entorno.
    Puede utilizar la carpeta de entorno dev por defecto (environments/dev) o utilizarla como plantilla para crear el entorno personalizado. Para crear un entorno personalizado:
    1. Realice una copia de la carpeta del entorno de desarrollo (environments/dev).
    2. Cambie el nombre de la carpeta copiada para que coincida con el nombre del entorno.
  2. Configure el entorno.
    En la carpeta de configuración del entorno:
    1. Edite el archivo env-config.yaml.
    2. Edite el archivo testdata-instance.json (el espacio de nombres de Object Storage, después del signo arroba ('@') debe actualizarse para que coincida con el arrendamiento).
  3. Definición de referencias de recursos.
    1. Edite el archivo arguments.yaml en la carpeta de configuración del entorno para definir referencias a los recursos de los que depende la aplicación.
    2. En la carpeta infrastructure/environments/<your environment>, ejecute
      terraform output
    3. Copie la salida (excluyendo la última línea) y péguela en arguments.yaml, sustituyendo = por :.

Configuración e inicialización de la CLI de mlapp

  1. Configure el proyecto de aplicación de aprendizaje automático.
    1. Navegue hasta la carpeta de la aplicación.
    2. Edite el archivo application-def.yaml para definir el nombre y la descripción de la aplicación de aprendizaje automático y su implantación.
    3. Cree default_env para definir el entorno como el entorno por defecto (esto elimina la necesidad de especificarlo en la línea de comandos al utilizar la CLI mlapp). Puede copiar ml-application/default_env.example en ml-application/default_env y almacenar el nombre del entorno allí.
  2. Inicialice el entorno.
    En la carpeta ml-application, ejecute:
    source ./mlapp init

    Este comando agrega la secuencia de comandos mlapp a la variable PATH, lo que le permite ejecutar la CLI con mlapp en lugar de ./mlapp.

creación y despliegue de la aplicación

Con todo configurado, ahora puede empezar a crear y desplegar la aplicación.

Nota

Obtenga información sobre los comandos de la CLI mlapp mediante la ejecución de:
mlapp -h
  1. Cree la aplicación.
    mlapp build
  2. Desplegar la aplicación.
    mlapp deploy
  3. Instancie la aplicación.
    mlapp instantiate
  4. disparar una ejecución del pipeline de formación.
    mlapp trigger
  5. Pruebe el servicio predictivo.
    mlapp predict
Después de ejecutar un comando de la CLI mlapp, compruebe los resultados navegando a Aplicaciones de aprendizaje automático en la consola de OCI / Analytics & AI / Machine Learning.

Uso de etiquetas definidas y de formato libre

La aplicación de ejemplo ilustra cómo utilizar etiquetas definidas y de formato libre para garantizar el aislamiento del inquilino y permitir el seguimiento de los recursos en tiempo de ejecución, específicamente los modelos.

Las etiquetas definidas se utilizan para asociar identificadores específicos de inquilino a recursos como despliegues de modelos, cubos de almacenamiento y modelos.
Agregar una etiqueta definida a un cubo
resource "oci_objectstorage_bucket" "data_storage_bucket" {
  compartment_id = var.app_impl.compartment_id
  namespace      = data.oci_objectstorage_namespace.this.namespace
  name           = "ml-app-fetal-risk-bucket-${var.app_instance.id}"
  access_type    = "NoPublicAccess"
 
  # To allow Instance (tenant) isolation
  defined_tags   = {"MlApplications.MlApplicationInstanceId" = var.app_instance.id}
}
Para los recursos de tiempo de ejecución creados dinámicamente a partir de código (como modelos), agregue una etiqueta definida y una etiqueta de formato libre. La etiqueta de formato libre enlaza el recurso a la instancia, lo que permite la supresión automática cuando se elimina la instancia.
Agregar etiquetas definidas y de formato libre a un modelo
model_id = xgb_model.save(display_name='fetal_health_model',
                          # needed for tenant isolation
                          defined_tags={"MlApplications": {"MlApplicationInstanceId": instance_id}},
                          # needed for ML App to be able to track created model
                          freeform_tags={"MlApplicationInstance": instance_id})