Optimizar las cargas de trabajo de IA y aprendizaje automático con Cloud Storage FUSE

Last reviewed 2025-08-22 UTC

En este documento se proporcionan arquitecturas de referencia que muestran cómo puedes usar Cloud Storage FUSE para optimizar el rendimiento de las cargas de trabajo de IA y aprendizaje automático en Google Kubernetes Engine (GKE).

Este documento está dirigido a arquitectos y profesionales técnicos que diseñan, aprovisionan y gestionan el almacenamiento de sus cargas de trabajo de IA y aprendizaje automático en Google Cloud. En este documento se presupone que el lector conoce el ciclo de vida, los procesos y las funciones del aprendizaje automático.

Cloud Storage FUSE es un adaptador FUSE de código abierto que te permite montar segmentos de Cloud Storage como sistemas de archivos locales. Esta configuración permite que las aplicaciones interactúen sin problemas con los contenedores de almacenamiento basados en la nube mediante la semántica estándar de los sistemas de archivos. Cloud Storage FUSE te permite aprovechar la escalabilidad y la rentabilidad de Cloud Storage.

.

Arquitectura

En función de tus requisitos de rendimiento, disponibilidad y recuperación ante desastres, puedes elegir uno de los siguientes Google Cloud arquetipos de implementación para ejecutar tus cargas de trabajo de IA y aprendizaje automático en Google Cloud:

  • Regionales: tus aplicaciones se ejecutan de forma independiente en una solaGoogle Cloud región. Recomendamos este arquetipo de implementación para aplicaciones que no sean críticas, pero que deban ser sólidas frente a las interrupciones de zonas.
  • Multirregional: tus aplicaciones se ejecutan de forma independiente en dos o más regiones Google Cloud , ya sea en modo activo-activo o activo-pasivo. Este arquetipo de implementación es ideal para admitir escenarios de recuperación ante desastres. Recomendamos este arquetipo de implementación para aplicaciones esenciales que necesiten resistencia frente a interrupciones y desastres en la región. Las implementaciones birregionales o multirregionales pueden reducir la latencia y mejorar el rendimiento gracias a la proximidad de los recursos.

El arquetipo de implementación que elijas determinará los productos y las funciones que necesites para tu arquitectura. Google Cloud La arquitectura multirregional usa Anywhere Cache para aumentar el ancho de banda de la red y proporcionar aciertos de caché zonales con menor latencia en comparación con un contenedor regional. Por lo general, se recomienda Anywhere Cache para todas las cargas de trabajo y elimina las tarifas de transferencia de datos cuando se usa con segmentos multirregión. Para determinar si Anywhere Cache es adecuado para tu carga de trabajo, usa el recomendador de Anywhere Cache para analizar tu uso de datos y almacenamiento.

En las siguientes pestañas se proporcionan arquitecturas de referencia para los arquetipos de despliegue regionales y multirregionales:

Regional

En el siguiente diagrama se muestra una arquitectura regional de ejemplo que usa Cloud Storage FUSE para optimizar el rendimiento de los flujos de trabajo de entrenamiento y servicio de modelos:

Arquitectura regional que usa Cloud Storage FUSE para optimizar las cargas de trabajo de IA y aprendizaje automático.

Esta arquitectura incluye los siguientes componentes:

  • Clúster de GKE: GKE gestiona los nodos de computación en los que se ejecutan los procesos de entrenamiento y servicio de tus modelos de IA y aprendizaje automático. GKE gestiona la infraestructura subyacente de los clústeres de Kubernetes, incluido el plano de control, los nodos y todos los componentes del sistema.
  • Programador de Kubernetes: el plano de control de GKE programa las cargas de trabajo y gestiona su ciclo de vida, escalado y actualizaciones. El agente de nodo de Kubernetes (kubelet), que no se muestra en el diagrama, se comunica con el plano de control. El agente kubelet se encarga de iniciar y ejecutar los contenedores programados en los nodos de GKE. Para obtener más información sobre el programador, consulta Orquestación de IA y aprendizaje automático en GKE.
  • Red de nube privada virtual (VPC): todos los recursos de la arquitectura usan una única red de VPC. Google CloudEn función de tus requisitos, puedes crear una arquitectura que use varias redes. Para obtener más información sobre cómo configurar una red de VPC para Cloud Storage FUSE, consulta Decidir si se deben crear varias redes de VPC.
  • Cloud Load Balancing: en esta arquitectura, Cloud Load Balancing distribuye de forma eficiente las solicitudes de inferencia entrantes de los usuarios de la aplicación a los contenedores de servicio del clúster de GKE. Para obtener más información, consulta Información sobre el balanceo de carga de GKE.
  • Unidad de procesamiento gráfico (GPU) o Unidades de procesamiento de tensor (TPUs): las GPUs y las TPUs son aceleradores de máquinas especializados que mejoran el rendimiento de tus cargas de trabajo de IA y aprendizaje automático. Para obtener información sobre cómo elegir un tipo de procesador adecuado, consulta la sección Opciones de acelerador, que aparece más adelante en este documento.
  • Cloud Storage: Cloud Storage proporciona almacenamiento persistente, escalable y rentable para tus cargas de trabajo de IA y aprendizaje automático. Cloud Storage actúa como repositorio central de tus conjuntos de datos de entrenamiento sin procesar, los puntos de control del modelo y los modelos entrenados finales.
  • Cloud Storage FUSE con la caché de archivos habilitada: Cloud Storage FUSE te permite montar un segmento de Cloud Storage como sistema de archivos local. La caché de archivos de Cloud Storage FUSE es un directorio de la máquina local que almacena los archivos a los que se accede con frecuencia de tus segmentos de Cloud Storage. El controlador CSI de Cloud Storage FUSE gestiona la integración de Cloud Storage FUSE con la API de Kubernetes para consumir segmentos de Cloud Storage como volúmenes.

En las siguientes secciones se describe el flujo de trabajo de las cargas de trabajo de entrenamiento y de servicio de la arquitectura.

Multirregional

En el siguiente diagrama se muestra una arquitectura multirregional de ejemplo que usa Cloud Storage FUSE y Anywhere Cache para optimizar el rendimiento de los flujos de trabajo de entrenamiento y de servicio de modelos:

Arquitectura multirregional que usa Cloud Storage FUSE para optimizar las cargas de trabajo de IA y aprendizaje automático.

Esta arquitectura incluye los siguientes componentes:

  • Clúster de GKE: GKE gestiona los nodos de computación en los que se ejecutan los procesos de entrenamiento y servicio de tus modelos de IA y aprendizaje automático. GKE gestiona la infraestructura subyacente de los clústeres de Kubernetes, incluido el plano de control, los nodos y todos los componentes del sistema.
  • Programador de Kubernetes: el plano de control de GKE programa las cargas de trabajo y gestiona su ciclo de vida, escalado y actualizaciones. El agente de nodo de Kubernetes (kubelet), que no se muestra en el diagrama, se comunica con el plano de control. El agente kubelet se encarga de iniciar y ejecutar los contenedores programados en los nodos de GKE. Para obtener más información sobre el programador, consulta Orquestación de IA y aprendizaje automático en GKE.
  • Red de nube privada virtual (VPC): todos los recursos de la arquitectura usan una única red de VPC. Google CloudEn función de tus requisitos, puedes crear una arquitectura que use varias redes. Para obtener más información sobre cómo configurar una red de VPC para Cloud Storage FUSE, consulta Decidir si se deben crear varias redes de VPC.
  • Cloud DNS: en arquitecturas multirregionales, Cloud DNS dirige el tráfico a los balanceadores de carga para asegurar un rendimiento y una disponibilidad óptimos mediante el enrutamiento anycast. Las solicitudes se dirigen automáticamente a la ubicación más cercana, lo que reduce la latencia y mejora el rendimiento de la búsqueda de nombres autoritativos para tus usuarios. Para obtener información sobre los principios generales y las prácticas recomendadas, consulta el artículo Prácticas recomendadas para Cloud DNS.
  • Cloud Load Balancing: en esta arquitectura, Cloud Load Balancing distribuye de forma eficiente las solicitudes de inferencia entrantes de los usuarios de la aplicación a los contenedores de servicio del clúster de GKE. Para obtener más información, consulta Información sobre el balanceo de carga de GKE.
  • Unidad de procesamiento gráfico (GPU) o Unidades de procesamiento de tensor (TPUs): las GPUs y las TPUs son aceleradores de máquinas especializados que mejoran el rendimiento de tus cargas de trabajo de IA y aprendizaje automático. Para obtener información sobre cómo elegir un tipo de procesador adecuado, consulta la sección Opciones de acelerador, que aparece más adelante en este documento.
  • Cloud Storage: Cloud Storage proporciona almacenamiento persistente, escalable y rentable para tus cargas de trabajo de IA y aprendizaje automático. Cloud Storage actúa como repositorio central de tus conjuntos de datos de entrenamiento sin procesar, los puntos de control del modelo y los modelos entrenados finales.
  • Cloud Storage FUSE: Cloud Storage FUSE te permite montar un segmento de Cloud Storage como un sistema de archivos local. El controlador CSI de FUSE de Cloud Storage, que no se muestra en el diagrama, gestiona la integración de FUSE de Cloud Storage con la API de Kubernetes para consumir segmentos de Cloud Storage como volúmenes.
  • Anywhere Cache: Anywhere Cache es una función de Cloud Storage que proporciona hasta 1 PiB de caché de solo lectura zonal basado en SSD para segmentos de Cloud Storage. Durante el entrenamiento y el servicio, Anywhere Cache te ayuda a reducir las latencias de lectura y a conseguir un rendimiento superior a 2 TB/s escalando la capacidad y el ancho de banda de la caché. Si se combina con segmentos multirregionales, Anywhere Cache se puede usar en varias zonas y regiones. Para obtener información sobre las regiones y zonas admitidas, consulta Ubicaciones admitidas.

En las siguientes secciones se describe el flujo de trabajo de las cargas de trabajo de entrenamiento y de servicio de la arquitectura.

Carga de trabajo de entrenamiento

En las arquitecturas anteriores, estos son los pasos del flujo de datos durante el entrenamiento del modelo:

  1. Cargar datos de entrenamiento en Cloud Storage: los datos de entrenamiento se suben a un segmento de Cloud Storage con los espacios de nombres jerárquicos habilitados. Cloud Storage actúa como un repositorio central escalable.
  2. Cargar datos de entrenamiento y ejecutar trabajos de entrenamiento en GKE: el segmento de Cloud Storage montado en tus pods de GKE permite que tus aplicaciones de entrenamiento carguen y accedan de forma eficiente a los datos de entrenamiento mediante la interfaz FUSE. Los nodos de GKE ejecutan el proceso de entrenamiento del modelo usando la caché de archivos montada como fuente de datos. Tus aplicaciones de entrenamiento proporcionan continuamente datos de entrenamiento a los aceleradores de aprendizaje automático para realizar los cálculos complejos que se requieren para entrenar el modelo. Puedes usar GPUs o TPUs en función de los requisitos de tu carga de trabajo. Para obtener información sobre cómo elegir un tipo de procesador adecuado, consulta la sección Opciones de acelerador más adelante en este documento.
  3. Guardar y restaurar puntos de control y modelos:

    • Guardar puntos de control o modelos: durante el entrenamiento, guarda puntos de control de forma asíncrona a intervalos frecuentes en un bucket de Cloud Storage independiente. Los puntos de control capturan el estado del modelo en función de las métricas o los intervalos que definas.
    • Restaurar puntos de control o modelos: cuando tu carga de trabajo de entrenamiento requiera que restaures un punto de control o datos de un modelo, tendrás que buscar el recurso que quieras restaurar en Cloud Storage. Puedes usar el punto de control o el modelo restaurado para reanudar el entrenamiento, ajustar los parámetros o evaluar el rendimiento en un conjunto de validación.

Carga de trabajo de servicio

En las arquitecturas anteriores, estos son los pasos del flujo de datos durante el servicio del modelo:

  1. Cargar modelo: una vez completado el entrenamiento, tus pods cargan el modelo entrenado mediante Cloud Storage FUSE con las descargas paralelas habilitadas. Descargas paralelas: acelera la carga de modelos obteniendo las partes del modelo en paralelo desde Cloud Storage. Para reducir significativamente los tiempos de carga de los modelos, el proceso utiliza el directorio de caché como búfer de prefetched.
  2. Solicitud de inferencia: los usuarios de la aplicación envían solicitudes de inferencia desde la aplicación de IA y aprendizaje automático a través del servicio Cloud Load Balancing. Cloud Load Balancing distribuye las solicitudes entrantes entre los contenedores de servicio del clúster de GKE. Esta distribución asegura que ningún contenedor se sature y que las solicitudes se procesen de forma eficiente.
  3. Entrega de la respuesta: los nodos procesan la solicitud y generan una predicción. Los contenedores de servicio envían las respuestas a través de Cloud Load Balancing y, a continuación, a los usuarios de la aplicación.

Productos usados

Las arquitecturas de referencia usan los siguientes productos: Google Cloud

  • Google Kubernetes Engine (GKE): un servicio de Kubernetes que puedes usar para desplegar y operar aplicaciones en contenedores a gran escala con la infraestructura de Google.
  • Cloud Storage: un almacén de objetos ilimitado y a un coste bajo para diversos tipos de datos. Se puede acceder a los datos desde dentro y fuera de Google Cloud, y se replican en varias ubicaciones para ofrecer redundancia.
  • Nube privada virtual (VPC): un sistema virtual que proporciona funciones de red globales y escalables para tus Google Cloud cargas de trabajo. VPC incluye el intercambio de tráfico entre redes de VPC, Private Service Connect, el acceso a servicios privados y la VPC compartida.
  • Cloud Load Balancing: una cartera de balanceadores de carga de alto rendimiento, escalables, globales y regionales.
  • Cloud DNS: un servicio que ofrece un servicio DNS resiliente y de baja latencia desde la red mundial de Google.

Caso práctico

Para las cargas de trabajo de IA y aprendizaje automático que requieran una gran capacidad de almacenamiento y un acceso de alto rendimiento a los archivos, te recomendamos que uses una arquitectura basada en Cloud Storage FUSE. Con una planificación adecuada, puedes alcanzar un rendimiento de más de 1 TB/s con estas arquitecturas. Además, Cloud Storage FUSE te permite aprovechar un repositorio de almacenamiento central que sirve como única fuente de información veraz para todas las fases del flujo de trabajo de IA y aprendizaje automático. Este enfoque se puede usar con cualquier carga de trabajo, independientemente de su escala o tamaño.

Cloud Storage FUSE ofrece las siguientes ventajas para estas cargas de trabajo:

  • Acceso a datos simplificado: accede a datos de entrenamiento y puntos de control con frameworks de IA y aprendizaje automático como Connector for PyTorch, JAX y TensorFlow. El acceso a los datos a través de los frameworks de IA y aprendizaje automático elimina la necesidad de refactorizar el código.
  • Inicio acelerado: elimina la necesidad de descargar grandes conjuntos de datos en recursos de computación mediante Cloud Storage FUSE para acceder directamente a los datos de Cloud Storage. Este acceso directo a los datos permite que los trabajos se inicien más rápido.
  • Rentabilidad: optimiza los costes aprovechando la escalabilidad y la rentabilidad inherentes de Cloud Storage.

Cloud Storage FUSE no es adecuado para cargas de trabajo sensibles a la latencia que contengan archivos de menos de 50 MB o que requieran una latencia inferior a 1 milisegundo para el acceso aleatorio a metadatos y a operaciones de entrada/salida.

Para cargas de trabajo de entrenamiento con un uso intensivo de datos o de puntos de control y reinicio, considera una alternativa de almacenamiento durante la fase de entrenamiento con un uso intensivo de E/S.

Alternativas de diseño

En las siguientes secciones se presentan enfoques de diseño alternativos que puedes tener en cuenta para tu aplicación de IA y aprendizaje automático en Google Cloud.

Alternativa de plataforma

En lugar de alojar tu flujo de trabajo de entrenamiento y servicio de modelos en GKE, puedes usar Compute Engine con Slurm. Slurm es un gestor de recursos y cargas de trabajo de código abierto altamente configurable. Usar Compute Engine con Slurm es especialmente adecuado para el entrenamiento de modelos a gran escala y las simulaciones. Te recomendamos que uses Compute Engine con Slurm si necesitas integrar propiedad intelectual (PI) de IA y aprendizaje automático en un entorno escalable con la flexibilidad y el control necesarios para optimizar el rendimiento de cargas de trabajo especializadas. Para obtener más información sobre cómo usar Compute Engine con Slurm, consulta Desplegar un clúster de HPC con Slurm.

En Compute Engine, puedes aprovisionar y gestionar tus máquinas virtuales, lo que te permite controlar de forma granular los tipos de instancias, el almacenamiento y las redes. Puedes adaptar tu infraestructura a tus necesidades exactas, incluida la selección de tipos de máquinas virtuales específicos. Para obtener información sobre cómo usar las opciones de línea de comandos de Cloud Storage FUSE en Compute Engine, consulta Interfaz de línea de comandos de gcsfuse y Archivo de configuración de Cloud Storage FUSE. También puedes usar la familia de máquinas optimizadas para aceleradores para mejorar el rendimiento de tus cargas de trabajo de IA y aprendizaje automático. Para obtener más información sobre las familias de tipos de máquinas disponibles en Compute Engine, consulta la guía de recursos y comparación de familias de máquinas.

Slurm ofrece una opción potente para gestionar cargas de trabajo de IA y aprendizaje automático, y te permite controlar la configuración y la gestión de los recursos computacionales. Para usar este método, debes tener experiencia en la administración de Slurm y en la gestión de sistemas Linux.

Opciones de acelerador

Los aceleradores de aprendizaje automático son procesadores especializados diseñados para acelerar los cálculos necesarios para las cargas de trabajo de IA y aprendizaje automático. Puedes elegir entre GPUs o TPUs.

  • Los aceleradores de GPU ofrecen un rendimiento excelente para una amplia gama de tareas, como el renderizado de gráficos, el entrenamiento de aprendizaje profundo y la computación científica. Google Cloud dispone de una amplia selección de GPUs para adaptarse a diferentes necesidades de rendimiento y a todos los bolsillos. Las GPUs suelen incluir SSDs locales en cada configuración de máquina, que Cloud Storage FUSE puede usar como directorio de caché. Para obtener información sobre los modelos y los precios de las GPUs, consulta la página Precios de las GPUs.
  • Las TPUs son aceleradores de IA diseñados a medida y optimizados para el entrenamiento y la inferencia de modelos de IA grandes. Son ideales para una amplia gama de casos prácticos, como bots de chat, generación de código, generación de contenido multimedia, voz sintética, servicios de visión, motores de recomendaciones o modelos de personalización. Para obtener más información sobre los modelos y los precios de las TPU, consulta la página Precios de las TPU.

Alternativas de almacenamiento

Cloud Storage FUSE proporciona un sistema de archivos práctico que te permite aprovechar la escalabilidad y la rentabilidad de Cloud Storage. Sin embargo, Cloud Storage FUSE no es la solución ideal para cargas de trabajo que requieren una latencia baja para lecturas de archivos pequeños o para cargas de trabajo que necesitan una solución de almacenamiento que cumpla con POSIX. En estos casos, te recomendamos que tengas en cuenta las siguientes alternativas de almacenamiento:

  • Google Cloud Managed Lustre: un sistema de archivos paralelos (PFS) persistente y totalmente Google Cloudgestionado basado en EXAScaler Lustre de DDN. Managed Lustre es la solución principal recomendada para entrenar y crear puntos de control de cargas de trabajo de IA. Es especialmente eficaz para migrar cargas de trabajo de Lustre u otras soluciones de PFS. Para aumentar el rendimiento durante la creación de puntos de control, te recomendamos que uses Lustre gestionado para aumentar Cloud Storage FUSE con Anywhere Cache. Para obtener más información, consulta el artículo Optimizar las cargas de trabajo de IA y aprendizaje automático con Managed Lustre de Google Cloud.
  • Connector for PyTorch: un producto de código abierto de Cloud Storage ideal para cargas de trabajo que usan PyTorch. Connector for PyTorch optimiza tu carga de trabajo de entrenamiento transmitiendo datos directamente desde tus segmentos de Cloud Storage y eliminando la necesidad de almacenamiento intermedio. Este acceso directo y esta optimización proporcionan un rendimiento significativamente mejor que las llamadas directas a la API de Cloud Storage para la carga, el entrenamiento y la creación de puntos de control de datos.

Aunque las opciones de almacenamiento alternativas pueden ofrecer ventajas de rendimiento para determinadas cargas de trabajo de IA y aprendizaje automático, es fundamental evaluar tus necesidades de latencia, rendimiento y capacidad de almacenamiento.

Para ver una comparación exhaustiva de las opciones de almacenamiento para cargas de trabajo de IA y AA, consulta Diseñar almacenamiento para cargas de trabajo de IA y AA Google Cloud.

Factores del diseño

En esta sección se ofrecen directrices sobre las prácticas recomendadas y las consideraciones de diseño para configurar Cloud Storage FUSE en cuanto a seguridad, fiabilidad, coste y rendimiento. Aunque las recomendaciones que se ofrecen aquí no son exhaustivas, abordan aspectos clave para maximizar las ventajas de Cloud Storage FUSE en tu entorno. En función de tus necesidades específicas y de las características de tu carga de trabajo, es posible que tengas que tener en cuenta otras opciones de configuración y compensaciones.

Las siguientes recomendaciones de diseño destacan las configuraciones para perfeccionar la forma en que implementas Cloud Storage FUSE en GKE. La mayoría de las opciones de FUSE de Cloud Storage se configuran con opciones de montaje. Para obtener más información sobre las opciones de línea de comandos de Cloud Storage FUSE y cómo usarlas, consulta CLI de gcsfuse y Optimizar el controlador CSI de Cloud Storage FUSE para mejorar el rendimiento de GKE.

Para obtener una descripción general de los principios y las recomendaciones de arquitectura específicos de las cargas de trabajo de IA y aprendizaje automático en Google Cloud, consulta la sección Perspectiva de IA y aprendizaje automático del framework Well-Architected.

Seguridad, privacidad y cumplimiento

En esta sección se describen las consideraciones para tus cargas de trabajo de IA y aprendizaje automático en Google Cloud que cumplan tus requisitos de seguridad, privacidad y cumplimiento.

Consideraciones sobre GKE

En el modo de funcionamiento Autopilot, GKE preconfigura tu clúster y gestiona los nodos según las prácticas recomendadas de seguridad, lo que te permite centrarte en la seguridad específica de las cargas de trabajo. Para obtener más información, consulta lo siguiente:

Para garantizar un control de acceso mejorado a las aplicaciones que se ejecutan en GKE, puedes usar Identity-Aware Proxy (IAP). IAP se integra con el recurso Ingress de GKE y ayuda a garantizar que solo los usuarios autenticados con el rol de gestión de identidades y accesos (IAM) correcto puedan acceder a las aplicaciones. Para obtener más información, consulta el artículo sobre cómo habilitar IAP en GKE.

De forma predeterminada, tus datos en GKE se cifran en reposo y en tránsito mediante Google-owned and Google-managed encryption keys. Para añadir una capa de seguridad adicional a los datos sensibles, puedes encriptarlos en la capa de aplicación con una clave que te pertenezca y que gestiones con Cloud Key Management Service (Cloud KMS). Para obtener más información, consulta Encriptar secretos en la capa de aplicación.

Si usas un clúster de GKE estándar, puedes usar las siguientes funciones adicionales de cifrado de datos:

Consideraciones sobre Cloud Storage

De forma predeterminada, los datos almacenados en Cloud Storage se cifran mediante Google-owned and Google-managed encryption keys. Si es necesario, puedes usar claves de encriptado gestionadas por el cliente (CMEKs) o tus propias claves, que puedes gestionar mediante un método de gestión externo, como las claves de encriptado proporcionadas por el cliente (CSEKs). Para obtener más información, consulta las opciones de cifrado de datos.

Cloud Storage admite dos métodos para conceder acceso a los usuarios a tus segmentos y objetos: Gestión de Identidades y Accesos (IAM) y listas de control de acceso (LCAs). En la mayoría de los casos, te recomendamos que uses IAM, que te permite conceder permisos a nivel de proyecto y de contenedor. Para obtener más información, consulta Descripción general del control de acceso.

Los datos de entrenamiento que cargues a través de Cloud Storage pueden incluir datos sensibles. Para proteger estos datos, puedes usar Protección de Datos Sensibles para descubrirlos, clasificarlos y desidentificarlos. Para separar las cargas de trabajo de entrenamiento y de servicio, guarda el modelo y los puntos de control en segmentos de Cloud Storage independientes. Este aislamiento ayuda a evitar que se exponga accidentalmente información sensible de tu conjunto de datos de entrenamiento durante el servicio. Para obtener más información, consulta el artículo sobre cómo usar Protección de Datos Sensibles con Cloud Storage.

Si tienes requisitos de residencia de datos, Cloud Storage puede ayudarte a cumplirlos. Los datos se almacenan o replican en las regiones que especifiques.

Consideraciones sobre Cloud Storage FUSE

Cuando habilitas el almacenamiento en caché, Cloud Storage FUSE almacena los archivos persistentes de tu segmento de Cloud Storage en un formato sin cifrar en el directorio que especifiques. Cloud Storage expone todos los archivos a cualquier usuario o proceso que tenga acceso al directorio. Para mitigar estos riesgos y mejorar la seguridad, la capa del kernel de FUSE restringe el acceso al sistema de archivos al usuario que ha montado el sistema. Esta restricción deniega el acceso a otros usuarios, incluido el usuario raíz, aunque los permisos de los nodos-i sean más permisivos.

Sin embargo, hay casos en los que puede ser necesario anular las restricciones de acceso predeterminadas. Por ejemplo, en una carga de trabajo de entrenamiento de IA y AA distribuida en la que varios nodos necesitan acceder y compartir puntos de control almacenados en Cloud Storage, puede que tengas que permitir un acceso más amplio. En estos casos, puedes anular la restricción predeterminada con la opción -o allow_other. Sin embargo, si amplías el acceso a tus archivos, puedes exponer tus datos a usuarios no autorizados. Por lo tanto, debes tener cuidado al usar esta opción.

De forma predeterminada, todos los inodos de un sistema de archivos FUSE de Cloud Storage son propiedad del usuario que montó el sistema de archivos. Aunque estos valores predeterminados pueden ser adecuados en muchos casos, puedes personalizar un contexto de seguridad para tu pod. Para obtener información sobre cómo personalizar un contexto de seguridad, consulta Seguridad y permisos.

Otras consideraciones de seguridad

Para consultar principios y recomendaciones de seguridad específicos de las cargas de trabajo de IA y aprendizaje automático, consulta la sección Perspectiva de IA y aprendizaje automático: seguridad del framework Well-Architected.

Fiabilidad

Para garantizar un funcionamiento fiable, Cloud Storage FUSE incorpora reintentos automáticos para gestionar posibles interrupciones y mantener la coherencia de los datos. Las solicitudes fallidas se vuelven a intentar con retirada exponencial automáticamente en Cloud Storage. El tiempo de espera exponencial aumenta gradualmente el tiempo entre reintentos. Este mecanismo integrado ayuda a tu aplicación a superar problemas de red transitorios o la falta de disponibilidad temporal de Cloud Storage.

Aunque Cloud Storage FUSE ofrece muchas ventajas, tenga en cuenta lo siguiente:

  • Escrituras simultáneas: cuando varios usuarios intentan modificar un archivo, la operación la última escritura gana tiene prioridad y se pierden todas las operaciones de escritura anteriores. Para mantener la integridad de los datos, recomendamos que un solo objeto se modifique por una única fuente en un momento dado.
  • Persistencia de la caché: cuando desmontas o reinicias tu contenedor, las cachés no se conservan. Para evitar posibles problemas de seguridad, después de desmontar o reiniciar tu contenedor, es fundamental que elimines manualmente el directorio de caché de archivos.
  • Procesos con cachés dedicadas: aunque Cloud Storage FUSE admite el acceso simultáneo para un procesamiento paralelo eficiente, es importante recordar que las cachés son específicas de cada proceso de Cloud Storage FUSE. Por lo tanto, no se debe usar el mismo directorio de caché en diferentes procesos de Cloud Storage FUSE que se ejecuten en el mismo equipo o en equipos distintos.

Otras consideraciones sobre la fiabilidad

Para consultar los principios y las recomendaciones de fiabilidad específicos de las cargas de trabajo de IA y aprendizaje automático, consulta el artículo Perspectiva de la fiabilidad de la IA y el aprendizaje automático del framework Well-Architected.

Optimización de costes

En esta sección se ofrecen directrices para ayudarte a optimizar el coste de configurar y operar tu flujo de trabajo de IA y aprendizaje automático en Google Cloud.

Consideraciones sobre GKE

En el modo Autopilot, GKE optimiza la eficiencia de la infraestructura de tu clúster en función de los requisitos de las cargas de trabajo. Para controlar los costes, no es necesario que monitorices constantemente la utilización de los recursos ni que gestiones la capacidad.

Si puedes predecir el uso de CPU, memoria y almacenamiento efímero de tu clúster de Autopilot, puedes obtener descuentos por compromiso de uso. Para reducir el coste de ejecutar tu aplicación, puedes usar máquinas virtuales de acceso puntual para tus nodos de GKE. Las máquinas virtuales de acceso puntual tienen un precio más bajo que las máquinas virtuales estándar, pero no ofrecen ninguna garantía de disponibilidad.

Para optimizar los costes y el rendimiento mediante una gestión eficiente, usa Dynamic Workload Scheduler. Dynamic Workload Scheduler es un gestor de recursos y un programador de tareas que te ayuda a mejorar el acceso a los recursos de IA y aprendizaje automático. Dynamic Workload Scheduler programa todos tus aceleradores simultáneamente y puede ejecutarse durante las horas de menor actividad con una gestión definida de la capacidad de los aceleradores. Al programar los trabajos de forma estratégica, Dynamic Workload Scheduler ayuda a maximizar el uso de los aceleradores, reducir el tiempo de inactividad y, en última instancia, optimizar el gasto en la nube.

Para obtener más información sobre las recomendaciones de optimización de costes, consulta las prácticas recomendadas para ejecutar aplicaciones de Kubernetes de coste optimizado en GKE.

Consideraciones sobre Cloud Storage

Tus necesidades de almacenamiento de IA y aprendizaje automático pueden ser dinámicas. Por ejemplo, es posible que necesites una capacidad de almacenamiento considerable para tus datos de entrenamiento, pero que esta necesidad disminuya en el caso del servicio, donde principalmente almacenas datos de modelos y puntos de control. Para controlar los costes, te recomendamos que habilites la gestión del ciclo de vida de los objetos y Autoclass.

La gestión del ciclo de vida de los objetos te permite mover automáticamente los datos antiguos o que no se usen a clases de almacenamiento más baratas o incluso eliminarlos, en función de las reglas que definas.

La función Autoclass mueve automáticamente los datos entre clases de almacenamiento en función de tus patrones de acceso. Esta función te permite conseguir el mejor equilibrio entre rendimiento y coste.

Consideraciones sobre Cloud Storage FUSE

Se aplican los cargos estándar de Cloud Storage por el almacenamiento, las operaciones de metadatos y el tráfico de red que generen tus actividades de FUSE. No hay ningún coste adicional por usar Cloud Storage FUSE. Para obtener más información sobre las operaciones comunes de Cloud Storage FUSE y cómo se asignan a las operaciones de Cloud Storage, consulta la asignación de operaciones.

Para optimizar los costes de tu directorio de caché, puedes usar la capacidad de las máquinas aprovisionadas, incluidas las SSD locales, los discos persistentes o los datos en memoria para los sistemas de archivos temporales. Si usas la capacidad de las máquinas que ya tienes, puedes evitar que se te cobren recursos de almacenamiento adicionales. Además, maximizar los aciertos de caché puede reducir significativamente los costes de Cloud Storage, ya que los datos servidos localmente no generan cargos por operaciones ni por transferencia de datos.

Para obtener más información sobre los cargos, consulta la página Precios de Cloud Storage.

Otras consideraciones sobre los costes

Para consultar los principios y las recomendaciones de optimización de costes específicos de las cargas de trabajo de IA y aprendizaje automático, consulta el artículo Perspectiva de IA y aprendizaje automático: optimización de costes del framework Well-Architected.

Optimización del rendimiento

Cloud Storage FUSE se ha diseñado para proporcionar un acceso eficiente a los datos de Cloud Storage para tus cargas de trabajo de IA y aprendizaje automático. Sin embargo, las solicitudes de metadatos frecuentes pueden reducir el rendimiento, sobre todo en clústeres de gran escala. Para obtener más información sobre cómo mejorar el rendimiento, consulta Optimizar el controlador de CSI de Cloud Storage FUSE para mejorar el rendimiento de GKE y Prácticas recomendadas para optimizar el rendimiento.

Para optimizar el rendimiento, ten en cuenta las siguientes configuraciones:

  • Habilita los espacios de nombres jerárquicos: para mejorar el acceso a los datos y la organización, crea segmentos de Cloud Storage con los espacios de nombres jerárquicos habilitados. Los espacios de nombres jerárquicos te permiten organizar los datos en una estructura de sistema de archivos, lo que mejora el rendimiento, asegura la coherencia y simplifica la gestión de las cargas de trabajo de IA y aprendizaje automático. Los espacios de nombres jerárquicos permiten un CPS inicial más alto y cambios de nombre de directorios atómicos rápidos.
  • Habilitar el almacenamiento en caché de archivos: el almacenamiento en caché de archivos acelera el acceso repetido a los datos de entrenamiento mediante el uso de un directorio de nodos local para almacenar en caché los archivos que se leen con frecuencia. Servir lecturas repetidas desde un medio de caché reduce la latencia y minimiza las operaciones de vuelta a Cloud Storage. En los tipos de máquinas con GPU que tienen una SSD local, se usa automáticamente el directorio de la SSD local. En el caso de los tipos de máquina que no incluyen SSD local, como las TPUs, puedes usar un directorio de disco RAM, como /tmpfs.

    Para habilitar la caché de archivos, usa las siguientes opciones de montaje:

    • Para definir el valor de caché de archivos utilizable como límite de capacidad de la caché, asigna el valor -1 a file-cache:max-size-mb:.
    • Para definir el tiempo de vida (TTL) de la caché de metadatos como ilimitado y la expulsión según el algoritmo menos usado recientemente (LRU) después de alcanzar la capacidad máxima, asigna el valor -1 a metadata-cache:ttl-secs:.
  • Aumentar los valores de la caché de metadatos: Cloud Storage FUSE tiene dos tipos de caché de metadatos que mejoran el rendimiento de las operaciones relacionadas con las búsquedas de metadatos: la caché de estadísticas y la caché de tipos.

    Para aumentar los valores de la caché de metadatos, define las siguientes opciones de montaje:

    • Para definir el valor de la caché de estadísticas utilizables como límite de capacidad de la caché, asigna el valor -1 a metadata-cache:stat-cache-max-size-mb:.
    • Para definir el valor de la caché de tipo usable en el límite de capacidad, asigna el valor -1 a metadata-cache:type-cache-max-size-mb:.
    • Para evitar que caduquen los elementos de metadatos almacenados en caché, cuyo valor predeterminado es de 60 segundos, asigna el valor -1 a metadata-cache:ttl-secs:. Los valores infinitos solo deben usarse en volúmenes de solo lectura y nodos con configuraciones de memoria grandes.
  • Rellenar previamente la caché de metadatos: la función de prefetado de metadatos permite que el controlador CSI de Cloud Storage FUSE cargue de forma proactiva los metadatos relevantes sobre los objetos de tu depósito de Cloud Storage en las cachés de Cloud Storage FUSE. Este enfoque reduce las llamadas a Cloud Storage y es especialmente útil para las aplicaciones que acceden a conjuntos de datos de gran tamaño que tienen muchos archivos, como las cargas de trabajo de entrenamiento de IA y aprendizaje automático.

    Para rellenar previamente la caché de metadatos, habilita la prefetched de metadatos para el volumen en cuestión. Asigna el valor true al atributo de volumen gcsfuseMetadataPrefetchOnMount. Para evitar interrupciones en las cargas de trabajo, te recomendamos que aumentes el límite de memoria del sidecar gke-gcsfuse-metadata-prefetch configurando los recursos del sidecar.

  • Habilitar el almacenamiento en caché de listas: esta función optimiza los directorios y los archivos de las fichas. Esto resulta especialmente útil para las cargas de trabajo de entrenamiento de IA y aprendizaje automático, que suelen implicar el acceso y la enumeración repetidos de directorios completos. El almacenamiento en caché de listas proporciona procesos de entrenamiento muy eficientes, ya que reduce la necesidad de acceder repetidamente a las listas de directorios en la memoria de tu ordenador.

    Para habilitar el almacenamiento en caché de listas y evitar que caduquen los elementos de la caché de listas del kernel, define la opción de montaje file-system:kernel-list-cache-ttl-secs: como -1.

  • Habilitar descargas paralelas: las descargas paralelas aceleran la carga inicial del modelo obteniendo varios fragmentos simultáneamente. Si habilitas las descargas paralelas, los modelos se cargarán más rápido y la capacidad de respuesta mejorará durante el servicio.

    Para habilitar las descargas paralelas, habilita la caché de archivos y asigna el valor true a la opción de montaje file-cache:enable-parallel-downloads:.

  • Aumentar los límites de los sidecars de GKE: para evitar que las restricciones de recursos afecten al rendimiento, configura los límites de los recursos del contenedor sidecar, como el consumo de CPU y memoria. Si usas una caché de SSD local, te recomendamos que definas ephemeral-storage-limit como ilimitado. Este ajuste permite que Cloud Storage FUSE use por completo el almacenamiento SSD local disponible para mejorar el almacenamiento en caché.

  • Montaje de solo lectura: como las cargas de trabajo de entrenamiento suelen necesitar solo leer datos, configura el punto de montaje como de solo lectura para obtener un rendimiento óptimo, sobre todo cuando uses el almacenamiento en caché de archivos. Esta configuración también ayuda a maximizar las ventajas de las optimizaciones en clústeres de gran escala y a evitar posibles incoherencias en los datos.

Otras consideraciones sobre el rendimiento

Para consultar los principios y las recomendaciones de optimización del rendimiento específicos de las cargas de trabajo de IA y aprendizaje automático, consulte el artículo Perspectiva de la IA y el aprendizaje automático: optimización del rendimiento del marco de trabajo Well-Architected.

Siguientes pasos

Colaboradores

Autor: Samantha He | Redactora técnica

Otros colaboradores: