Descripción general de Ray en Vertex AI

Ray es un framework de código abierto para escalar aplicaciones de IA y Python. Ray proporciona la infraestructura a fin de realizar procesamiento distribuido y procesamiento paralelo para el flujo de trabajo de aprendizaje automático (AA).

Comparación entre Ray y Vertex AI

Si ya usas Ray, puedes usar el mismo código de Ray de código abierto para escribir programas y desarrollar aplicaciones en Vertex AI con cambios mínimos. Luego, puedes usar las integraciones de Vertex AI con otros Google Cloud servicios, como Vertex AI Inference y BigQuery, como parte de tu flujo de trabajo de aprendizaje automático.

Si ya usas Vertex AI y necesitas una forma más sencilla de administrar los recursos de procesamiento, puedes usar el código de Ray para escalar el entrenamiento.

Flujo de trabajo para usar Ray en Vertex AI

Usa Colab Enterprise y el SDK de Vertex AI para Python para conectarte al clúster de Ray.

Pasos Descripción
1. Configura para Ray en Vertex AI Configura tu proyecto de Google, instala la versión del SDK de Vertex AI para Python que incluye la funcionalidad del cliente de Ray y configura una red de intercambio de tráfico de VPC (opcional).
2. Crea un clúster de Ray en Vertex AI Crea un clúster de Ray en Vertex AI. Se requiere el rol de administrador de Vertex AI.
3. Desarrolla una aplicación de Ray en Vertex AI Conéctate a un clúster de Ray en Vertex AI y desarrolla una aplicación. Se requiere el rol de usuario de Vertex AI.
4. (Opcional) Usa Ray en Vertex AI con BigQuery Lee, escribe y transforma datos con BigQuery.
5. (Opcional) Implementa un modelo en Vertex AI y obtén inferencias Implementa un modelo en un extremo en línea de Vertex AI y obtén inferencias.
6. Supervisa tu clúster de Ray en Vertex AI Supervisa los registros generados en Cloud Logging y las métricas en Cloud Monitoring.
7. Borra un clúster de Ray en Vertex AI Borra un clúster de Ray en Vertex AI para evitar la facturación innecesaria.

Descripción general

Los clústeres de Ray están integrados para garantizar la disponibilidad de capacidad para las cargas de trabajo de AA críticas o durante las temporadas de mayor demanda. A diferencia de los trabajos personalizados, en los que el servicio de entrenamiento libera el recurso después de que se completa el trabajo, los clústeres de Ray permanecen disponibles hasta que se borran.

Nota: Usa clústeres de Ray de ejecución prolongada en los siguientes casos:

  • Si envías el mismo trabajo de Ray varias veces, puedes beneficiarte del almacenamiento en caché de datos e imágenes ejecutando los trabajos en el mismo clúster de Ray de ejecución prolongada.
  • Si ejecutas muchos trabajos de Ray de corta duración en los que el tiempo de procesamiento real es más corto que el tiempo de inicio del trabajo, puede ser beneficioso tener un clúster de larga duración.

Los clústeres de Ray en Vertex AI se pueden configurar con conectividad pública o privada. En los siguientes diagramas, se muestran la arquitectura y el flujo de trabajo de Ray en Vertex AI. Consulta Conectividad pública o privada para obtener más información.

Arquitectura con conectividad pública

Conectividad pública de Ray en Vertex AI

  1. Crea el clúster de Ray en Vertex AI mediante las siguientes opciones:

    a. Usa la Google Cloud consola para crear el clúster de Ray en Vertex AI.

    b. Crea el clúster de Ray en Vertex AI con el SDK de Vertex AI para Python.

  2. Conéctate al clúster de Ray en Vertex AI para el desarrollo interactivo con las siguientes opciones:

    a. Usa Colab Enterprise en la Google Cloud consola para una conexión sin problemas.

    b. Usa cualquier entorno de Python al que se pueda acceder desde Internet pública.

  3. Desarrolla tu aplicación y entrena tu modelo en el clúster de Ray en Vertex AI:

    • Usa el SDK de Vertex AI para Python en tu entorno preferido (Colab Enterprise o cualquier notebook de Python).

    • Escribe una secuencia de comandos de Python con tu entorno preferido.

    • Envía un trabajo de Ray al clúster de Ray en Vertex AI con el SDK de Vertex AI para Python, Ray Job CLI o la API de Ray Job Submission.

  4. Implementa el modelo entrenado en un extremo de Vertex AI en línea para la inferencia en tiempo real.

  5. Usa BigQuery para administrar tus datos.

Arquitectura con VPC

En el siguiente diagrama, se muestran la arquitectura y el flujo de trabajo de Ray en Vertex AI después de configurar tu proyecto Google Cloud y la red de VPC, lo que es opcional:

VPC de Ray en Vertex AI

  1. Configura (a) tu proyecto de Google y (b) tu red de VPC.

  2. Crea el clúster de Ray en Vertex AI mediante las siguientes opciones:

    a. Usa la Google Cloud consola para crear el clúster de Ray en Vertex AI.

    b. Crea el clúster de Ray en Vertex AI con el SDK de Vertex AI para Python.

  3. Conéctate al clúster de Ray en Vertex AI a través de una red de VPC con intercambio de tráfico mediante las siguientes opciones:

  4. Desarrolla tu aplicación y entrena tu modelo en el clúster de Ray en Vertex AI con las siguientes opciones:

    • Usa el SDK de Vertex AI para Python en tu entorno preferido (Colab Enterprise o un notebook de Vertex AI Workbench).

    • Escribe una secuencia de comandos de Python con tu entorno preferido. Envía un trabajo de Ray al clúster de Ray en Vertex AI mediante el SDK de Vertex AI para Python, Ray Job CLI o el panel de Ray.

  5. Implementa el modelo entrenado en un extremo de Vertex AI en línea para realizar inferencias.

  6. Usa BigQuery para administrar tus datos.

Terminología

Para obtener una lista completa de los términos, consulta el glosario de Vertex AI para la IA predictiva.

  • Ajuste de escala automático
    • El ajuste de escala automático es la capacidad de un recurso de procesamiento, como el grupo de trabajadores de un clúster de Ray, para ajustar automáticamente la cantidad de nodos según las demandas de la carga de trabajo, lo que optimiza el uso de los recursos y los costos. Para obtener más información, consulta Cómo escalar clústeres de Ray en Vertex AI: Ajuste de escala automático.
  • inferencia por lotes
  • BigQuery
    • BigQuery es un almacén de datos empresariales completamente administrado, sin servidores y altamente escalable que proporciona Google Cloud, diseñado para analizar conjuntos de datos masivos con consultas en SQL a velocidades increíblemente altas. BigQuery permite realizar análisis y obtener inteligencia empresarial valiosa sin que los usuarios tengan que administrar ninguna infraestructura. Para obtener más información, consulta De almacén de datos a plataforma de IA y datos autónomos.
  • Cloud Logging
    • Cloud Logging es un servicio de registros en tiempo real completamente administrado que proporciona Google Cloud y que te permite recopilar, almacenar, analizar y supervisar registros de todos tus recursos de Google Cloud, aplicaciones locales y hasta fuentes personalizadas. Cloud Logging centraliza la administración de registros, lo que facilita la solución de problemas, la auditoría y la comprensión del comportamiento y el estado de tus aplicaciones y tu infraestructura. Para obtener más información, consulta Descripción general de Cloud Logging.
  • Colab Enterprise
    • Colab Enterprise es un entorno de notebook de Jupyter colaborativo y administrado que lleva la popular experiencia del usuario de Google Colab a Google Cloud y ofrece capacidades de seguridad y cumplimiento a nivel empresarial. Colab Enterprise proporciona una experiencia centrada en los notebooks y sin configuración, con recursos de procesamiento administrados por Vertex AI, y se integra con otros servicios de Google Cloud, como BigQuery. Para obtener más información, consulta Introducción a Colab Enterprise.
  • imagen de contenedor personalizada
    • Una imagen de contenedor personalizada es un paquete ejecutable y autónomo que incluye el código de la aplicación del usuario, su tiempo de ejecución, bibliotecas, dependencias y configuración del entorno. En el contexto de Google Cloud, en particular Vertex AI, permite al usuario empaquetar su código de entrenamiento de aprendizaje automático o su aplicación de servicio con sus dependencias exactas, lo que garantiza la reproducibilidad y permite al usuario ejecutar una carga de trabajo en servicios administrados con versiones de software específicas o configuraciones únicas que no proporcionan los entornos estándar. Para obtener más información, consulta Requisitos de contenedores personalizados para la inferencia.
  • endpoint
    • Son los recursos en los que puedes implementar modelos entrenados para entregar inferencias. Para obtener más información, consulta Elige un tipo de extremo.
  • Permisos de Identity and Access Management (IAM)
    • Los permisos de Identity and Access Management (IAM) son capacidades detalladas específicas que definen quién puede hacer qué en los recursos de Google Cloud. Se asignan a principales (como usuarios, grupos o cuentas de servicio) a través de roles, lo que permite un control preciso sobre el acceso a los servicios y los datos dentro de un proyecto u organización de Google Cloud. Para obtener más información, consulta Control de acceso con IAM.
  • inferencia
    • En el contexto de la plataforma de Vertex AI, la inferencia se refiere al proceso de ejecutar datos a través de un modelo de aprendizaje automático para calcular un resultado, como una sola puntuación numérica. Este proceso también se conoce como “poner en funcionamiento un modelo de aprendizaje automático” o “poner en producción un modelo de aprendizaje automático”. La inferencia es un paso importante en el flujo de trabajo del aprendizaje automático, ya que permite que los modelos se usen para hacer inferencias sobre datos nuevos. En Vertex AI, la inferencia se puede realizar de varias maneras, incluidas la inferencia por lotes y la inferencia en línea. La inferencia por lotes implica ejecutar un grupo de solicitudes de inferencia y generar los resultados en un solo archivo, mientras que la inferencia en línea permite realizar inferencias en tiempo real sobre puntos de datos individuales.
  • Sistema de archivos de red (NFS)
  • Inferencia en línea
    • Obtener inferencias sobre instancias individuales de forma síncrona Para obtener más información, consulta Inferencias en línea.
  • recurso persistente
    • Es un tipo de recurso de procesamiento de Vertex AI, como un clúster de Ray, que permanece asignado y disponible hasta que se borra de forma explícita, lo que resulta beneficioso para el desarrollo iterativo y reduce la sobrecarga de inicio entre los trabajos. Para obtener más información, consulta Cómo obtener información sobre un recurso persistente.
  • pipeline
    • Las canalizaciones del AA son flujos de trabajo del AA portátiles y escalables que se basan en contenedores. Para obtener más información, consulta Introducción a Vertex AI Pipelines.
  • Contenedor compilado previamente
  • Private Service Connect (PSC)
    • Private Service Connect es una tecnología que permite a los clientes de Compute Engine asignar IPs privadas en su red a otra red de VPC o a las APIs de Google. Para obtener más información, consulta Private Service Connect.
  • Clúster de Ray en Vertex AI
    • Un clúster de Ray en Vertex AI es un clúster administrado de nodos de procesamiento que se puede usar para ejecutar aplicaciones de aprendizaje automático (AA) y Python distribuidas. Proporciona la infraestructura para realizar procesamiento distribuido y procesamiento paralelo en tu flujo de trabajo de AA. Los clústeres de Ray están integrados en Vertex AI para garantizar la disponibilidad de capacidad para las cargas de trabajo de AA críticas o durante las temporadas de mayor demanda. A diferencia de los trabajos personalizados, en los que el servicio de entrenamiento libera el recurso después de que se completa el trabajo, los clústeres de Ray permanecen disponibles hasta que se borran. Para obtener más información, consulta la descripción general de Ray en Vertex AI.
  • Ray on Vertex AI (RoV)
    • Ray en Vertex AI está diseñado para que puedas usar el mismo código de Ray de código abierto para escribir programas y desarrollar aplicaciones en Vertex AI con cambios mínimos. Para obtener más información, consulta la descripción general de Ray en Vertex AI.
  • SDK de Ray en Vertex AI para Python
    • El SDK de Ray en Vertex AI para Python es una versión del SDK de Vertex AI para Python que incluye la funcionalidad del cliente de Ray, el conector Ray BigQuery, la administración de clústeres de Ray en Vertex AI y las inferencias en Vertex AI. Si deseas obtener más información, consulta Introducción al SDK de Vertex AI para Python.
  • SDK de Ray en Vertex AI para Python
    • El SDK de Ray en Vertex AI para Python es una versión del SDK de Vertex AI para Python que incluye la funcionalidad del cliente de Ray, el conector Ray BigQuery, la administración de clústeres de Ray en Vertex AI y las inferencias en Vertex AI. Si deseas obtener más información, consulta Introducción al SDK de Vertex AI para Python.
  • cuenta de servicio
    • Las cuentas de servicio son cuentas especiales de Google Cloud que usan las aplicaciones o las máquinas virtuales para realizar llamadas autorizadas a las APIs de los servicios de Google Cloud. A diferencia de las cuentas de usuario, no están vinculadas a una persona física, sino que actúan como una identidad para tu código, lo que permite el acceso seguro y programático a los recursos sin necesidad de credenciales humanas. Para obtener más información, consulta Descripción general de las cuentas de servicio.
  • Vertex AI Workbench
    • Vertex AI Workbench es un entorno de desarrollo unificado basado en notebooks de Jupyter que admite todo el flujo de trabajo de la ciencia de datos, desde la exploración y el análisis de datos hasta el desarrollo, el entrenamiento y la implementación de modelos. Vertex AI Workbench proporciona una infraestructura administrada y escalable con integraciones integradas en otros servicios de Google Cloud, como BigQuery y Cloud Storage, lo que permite a los científicos de datos realizar sus tareas de aprendizaje automático de manera eficiente sin administrar la infraestructura subyacente. Para obtener más información, consulta Introducción a Vertex AI Workbench.
  • nodo trabajador
    • Un nodo trabajador hace referencia a una máquina o instancia computacional individual dentro de un clúster que es responsable de ejecutar tareas o realizar trabajo. En sistemas como los clústeres de Kubernetes o Ray, los nodos son las unidades fundamentales de procesamiento.
  • grupo de trabajadores
    • Son los componentes de un clúster de Ray que ejecutan tareas distribuidas. Los grupos de trabajadores se pueden configurar con tipos de máquinas específicos y admiten el ajuste de escala automático y el manual. Para obtener más información, consulta Estructura del clúster de entrenamiento.

Precios

Los precios de Ray en Vertex AI se calculan de la siguiente manera:

  • Los recursos de procesamiento que uses se cobran según la configuración de máquina que selecciones cuando crees tu clúster de Ray en Vertex AI. Para conocer los precios de Ray en Vertex AI, consulta la página de precios.

  • En cuanto a los clústeres de Ray, solo se te cobrará durante los estados RUNNING y UPDATING. No se cobran otros estados. El importe cobrado se basa en el tamaño real del clúster en el momento.

  • Cuando realizas tareas con el clúster de Ray en Vertex AI, los registros se generan y se cobran de forma automática según los precios de Cloud Logging.

  • Si implementas tu modelo en un extremo para inferencias en línea, consulta la sección “Predicción y explicación” de la página de precios de Vertex AI.

  • Si usas BigQuery con Ray en Vertex AI, consulta los precios de BigQuery.

¿Qué sigue?