Compartir vía


Agrupaciones de recursos de Databricks para pilas MLOps

Puede usar agrupaciones de recursos de Databricks, la CLI de Databricks y el repositorio Databricks MLOps Stack en GitHub para crear pilas MLOps. Una pila MLOps es un proyecto MLOps en Azure Databricks que sigue los procedimientos recomendados de producción listos para usar. Consulte ¿Qué son las agrupaciones de recursos de Databricks?

Para crear, implementar y ejecutar un proyecto de MLOps Stack, complete los pasos siguientes:

Requisitos

  • Asegúrese de que el área de trabajo remota de destino tiene habilitados los archivos del área de trabajo. Consulte ¿Qué son los archivos del área de trabajo?
  • En el equipo de desarrollo, asegúrese de que está instalada la versión 0.212.2 o posterior de la CLI de Databricks. Para comprobar la versión de la CLI de Databricks instalada, ejecute el comando databricks -v. Para actualizar su versión de la CLI de Databricks, consulte Instalar o actualizar la CLI de Databricks. (Los paquetes no funcionan con la CLI de Databricks, versión 0.18 o inferior).

Paso 1 Configuración de la autenticación

Configure la CLI de Databricks para la autenticación.

En este artículo se da por supuesto que quiere usar la autenticación de usuario a máquina (U2M) de OAuth y un perfil de configuración de Azure Databricks correspondiente denominado DEFAULT para la autenticación.

Nota:

La autenticación U2M es adecuada para probar estos pasos en tiempo real. Para flujos de trabajo totalmente automatizados, Databricks recomienda usar la autenticación de máquina a máquina (M2M) de OAuth en su lugar. Consulte las instrucciones de configuración de autenticación de M2M en Autenticación.

  1. Use el CLI de Databricks para iniciar la administración de tokens de OAuth localmente mediante la ejecución del siguiente comando para cada área de trabajo de destino.

    En el comando siguiente, reemplace <workspace-url> por la dirección URL de Azure Databricks por área de trabajo, por ejemplo, https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. La CLI de Databricks le pide que guarde la información que especificó como un perfil de configuración de Azure Databricks. Presione Enter para aceptar el nombre del perfil sugerido o escriba el nombre de un perfil nuevo o existente. Cualquier perfil existente con el mismo nombre se sobrescribe con la información que especificó. Puede usar perfiles para cambiar rápidamente el contexto de autenticación entre varias áreas de trabajo.

    Para obtener una lista de los perfiles existentes, en un terminal o símbolo del sistema independiente, use la CLI de Databricks para ejecutar el comando databricks auth profiles. Para ver la configuración existente de un perfil específico, ejecute el comando databricks auth env --profile <profile-name>.

  3. En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.

  4. Para ver el valor actual del token de OAuth de un perfil y la próxima marca de tiempo de expiración del token’, ejecute uno de los siguientes comandos:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si tiene varios perfiles con el mismo valor de --host, es posible que tenga que especificar las opciones --host y -p para ayudar a la CLI de Databricks a encontrar la información correcta del token de OAuth coincidente.

Paso 2: Crear el proyecto de agrupación

  1. Use plantillas de agrupación de recursos de Databricks para crear los archivos de inicio del proyecto de pilas MLOps. Para ello, ejecute el siguiente comando:

    databricks bundle init mlops-stacks
    
  2. Responda a las preguntas en pantalla. Para obtener instrucciones sobre cómo responder a estas solicitudes, consulte Inicio de un nuevo proyecto en el repositorio de Databricks MLOps Stacks en GitHub.

    La primera solicitud ofrece la opción de configurar los componentes de código de ML, los componentes de CI/CD o ambos. Esta opción simplifica la configuración inicial, ya que puede optar por crear solo los componentes que sean pertinentes inmediatamente. (Para configurar los otros componentes, vuelva a ejecutar el comando de inicialización.) Seleccione uno de los siguientes:

    • CICD_and_Project (valor predeterminado): configure tanto el código de ML como los componentes de CI/CD.
    • Project_Only : Configurar solo componentes de código de ML. Esta opción es para que los científicos de datos empiecen a trabajar.
    • CICD_Only : Configure solo componentes de CI/CD. Esta opción es para que los ingenieros de ML configuren la infraestructura.

    Después de responder a todos los mensajes en pantalla, la plantilla crea los archivos de inicio del proyecto de pilas MLOps y los agrega al directorio de trabajo actual.

  3. Personalice los archivos de inicio del proyecto de pilas MLOps según sea necesario. Para ello, siga las instrucciones de los siguientes archivos dentro del nuevo proyecto:

    Role Objetivo Docs
    Primeros usuarios de este repositorio Descripción de la canalización de ML y la estructura de código en este repositorio README.md
    Científico de datos Introducción a la escritura de código de ML para un proyecto nuevo <project-name>/README.md
    Científico de datos Actualizar el código de ML de producción (por ejemplo, lógica de entrenamiento del modelo) para un proyecto existente docs/ml-pull-request.md
    Científico de datos Modificar los recursos de ML del modelo de producción (por ejemplo, entrenamiento de modelos o trabajos de inferencia) <project-name>/resources/README.md
    MLOps/DevOps Configurar CI/CD para el proyecto de ML actual docs/mlops-setup.md
    • Para personalizar experimentos, las asignaciones dentro de una declaración de experimento corresponden a la carga de solicitud de la operación de creación del experimento, tal como se define en POST /api/2.0/mlflow/experiments/create en la referencia de la API REST, expresada en formato YAML.

    • Para personalizar los trabajos, las asignaciones dentro de una declaración de trabajo corresponden a la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de API REST, expresada en formato YAML.

      Sugerencia

      Puede definir, combinar e invalidar la configuración de los nuevos clústeres de trabajos en agrupaciones mediante las técnicas descritas en Invalidación de la configuración del clúster en agrupaciones de recursos de Databricks.

    • Para personalizar modelos, las asignaciones dentro de una declaración de modelo corresponden a la carga de solicitud de la operación de solicitud del modelo de Catálogo de Unity, tal como se define en POST /api/2.1/unity-catalog/models en la referencia de la API REST, expresada en formato YAML.

    • Para personalizar canalizaciones, las asignaciones dentro de una declaración de canalización corresponden a la carga de solicitud de la operación de creación de la canalización, tal como se define en POST /api/2.0/pipelines en la referencia de API REST, expresada en formato YAML.

Paso 3: Validar el proyecto de agrupación

Compruebe si la configuración de la agrupación es válida. Para ello, ejecute la CLI de Databricks desde la raíz del proyecto, donde databricks.yml se encuentra, como se indica a continuación:

databricks bundle validate

Si se devuelve un resumen de la configuración de la agrupación, indica que la validación se ha realizado correctamente. Si se devuelven errores, corrija los errores y repita este paso.

Paso 4: Implementar la agrupación

Implementar los recursos y artefactos del proyecto en el área de trabajo remota deseada. Para ello, ejecute la CLI de Databricks desde la raíz del proyecto, donde databricks.yml se encuentra, como se indica a continuación:

databricks bundle deploy -t <target-name>

Reemplace <target-name> por el nombre del destino deseado en el archivo databricks.yml, por ejemplo dev, test, staging o prod.

Paso 5: Ejecución del lote implementado

Los trabajos de Azure Databricks implementados del proyecto se ejecutan automáticamente según sus programaciones predefinidas. Para ejecutar un trabajo implementado inmediatamente, ejecute la CLI de Databricks desde la raíz del proyecto, donde se encuentra databricks.yml, tal como se indica a continuación:

databricks bundle run -t <target-name> <job-name>
  • Reemplace <target-name> por el nombre del destino deseado dentro del archivo databricks.yml donde se implementó el trabajo, por ejemplo dev, test, staging o prod.
  • Reemplace <job-name> por el nombre del trabajo en uno de los archivos .yml de <project-name>/databricks-resources, por ejemplo batch_inference_job, write_feature_table_job o model_training_job.

Aparece un vínculo al trabajo de Azure Databricks, que puede copiar en el explorador web para abrir el trabajo en la interfaz de usuario de Azure Databricks.

Paso 6: Eliminar el lote implementado (opcional)

Para eliminar los recursos y artefactos de un proyecto implementado si ya no los necesita, ejecute la CLI de Databricks desde la raíz del proyecto, donde se encuentra databricks.yml, como se indica a continuación:

databricks bundle destroy -t <target-name>

Reemplace <target-name> por el nombre del destino deseado en el archivo databricks.yml, por ejemplo dev, test, staging o prod.

Responda a las indicaciones en pantalla para confirmar la eliminación de los recursos y artefactos implementados anteriormente.