En este documento, se proporciona orientación de diseño sobre cómo elegir e integrar los servicios de almacenamiento deGoogle Cloud para tus cargas de trabajo de IA y AA. Cada etapa del ciclo de vida del AA tiene diferentes requisitos de almacenamiento. Por ejemplo, cuando subes el conjunto de datos de entrenamiento, puedes priorizar la capacidad de almacenamiento para el entrenamiento y la alta capacidad de procesamiento para los conjuntos de datos grandes. Del mismo modo, las etapas de entrenamiento, ajuste, publicación y archivo tienen requisitos diferentes. Para la mayoría de las cargas de trabajo de IA y AA, te recomendamos que uses Google Cloud Managed Lustre como solución de almacenamiento. Managed Lustre ofrece un alto rendimiento y escalabilidad, lo que lo hace ideal para las etapas de entrenamiento, creación de puntos de control, entrega y archivo, que tienen diferentes requisitos.
Este documento te ayuda a evaluar tus requisitos de capacidad, latencia y procesamiento para tomar decisiones fundamentadas y determinar la solución de almacenamiento adecuada. En este documento, se supone que seleccionaste una plataforma de procesamiento que cumple con los requisitos de tu carga de trabajo. Para las cargas de trabajo de IA y AA, te recomendamos que uses Compute Engine o Google Kubernetes Engine (GKE). Para obtener más información sobre cómo seleccionar una plataforma de procesamiento, consulta Hosting de aplicaciones en Google Cloud.
En las siguientes pestañas, se proporciona un breve resumen de las opciones de almacenamiento recomendadas para cada etapa del flujo de trabajo del AA. Para obtener más información, consulta Elige el almacenamiento adecuado.
Prepárate
En la etapa de preparación del flujo de trabajo del AA, debes hacer lo siguiente:
- Sube y transfiere datos.
- Transforma los datos al formato correcto antes de entrenar el modelo.
Para optimizar los costos de almacenamiento con varias clases de almacenamiento, te recomendamos que uses la función Autoclass de Cloud Storage o la administración del ciclo de vida de los objetos.
Entrenar
En la etapa de entrenamiento del flujo de trabajo de AA, debes hacer lo siguiente:
- Desarrollo del modelo: Desarrolla tu modelo con notebooks y aplica pruebas y errores iterativos.
- Entrenamiento del modelo:
- Usa una cantidad pequeña o grande de aceleradores de máquinas para leer repetidas veces el conjunto de datos de entrenamiento.
- Aplica un proceso iterativo para el desarrollo y el entrenamiento de modelos.
- Puntos de control y reinicio:
- Guarda el estado de forma periódica durante el entrenamiento de modelos creando un punto de control para que el entrenamiento pueda reiniciarse después de la falla del nodo.
- Realiza la selección de puntos de control en función del patrón de E/S y la cantidad de datos que se deben guardar en el punto de control.
Para las etapas de entrenamiento, recomendamos las siguientes opciones de almacenamiento:
- Usa Managed Lustre si tu carga de trabajo tiene las siguientes características:
- Un requisito de capacidad de entrenamiento mínima de 18 TiB
- Datos de entrenamiento que consisten en archivos pequeños de menos de 50 MB para aprovechar las capacidades de baja latencia.
- Un requisito de latencia de menos de 1 milisegundo para cumplir con los requisitos de almacenamiento para el acceso a metadatos y E/S aleatoria.
- Se requiere realizar puntos de control frecuentes de alto rendimiento.
- Una experiencia similar a la de una computadora de escritorio con compatibilidad completa con POSIX para que tus usuarios puedan ver y administrar los datos.
- Usa Cloud Storage con Cloud Storage FUSE y Anywhere Cache si tu carga de trabajo tiene las siguientes características:
- Datos de entrenamiento que constan de archivos grandes de 50 MB o más
- Tolerancia a una latencia de almacenamiento más alta en decenas de milisegundos
- Se prioriza la durabilidad y la alta disponibilidad de los datos por sobre el rendimiento del almacenamiento.
Para optimizar los costos, te recomendamos que uses el mismo servicio de almacenamiento en todas las etapas del entrenamiento de modelos.
Entregar
En la etapa de publicación del flujo de trabajo del AA, debes hacer lo siguiente:
- Almacena el modelo.
- Carga el modelo en una instancia que ejecute aceleradores de aprendizaje automático al inicio.
- Almacena resultados de inferencia de modelos, como imágenes generadas.
- De manera opcional, almacena y carga el conjunto de datos usado para la inferencia del modelo.
Para las etapas de publicación, recomendamos las siguientes opciones de almacenamiento:
- Managed Lustre si tu carga de trabajo tiene las siguientes características:
- Tu carga de trabajo de entrenamiento y de creación de puntos de control usa Lustre administrado.
- Se requiere de 10 a 100 nodos de inferencia.
- Actualizaciones frecuentes de tu modelo
- Cloud Storage con Cloud Storage FUSE y Anywhere Cache si tu carga de trabajo tiene las siguientes características:
- Se requiere una solución rentable para un entorno dinámico en el que puede cambiar la cantidad de nodos de inferencia.
- Actualizaciones poco frecuentes de tu modelo
- Prioridad para la alta disponibilidad y durabilidad de tus modelos, incluso en caso de interrupciones regionales
- Google Cloud Hyperdisk ML si tu carga de trabajo tiene las siguientes características:
- Se requiere más de 100 nodos de inferencia.
- Actualizaciones poco frecuentes de tu modelo
- Tu carga de trabajo usa un tipo de máquina virtual (VM) compatible.
- Tu canalización puede administrar volúmenes de solo lectura para almacenar modelos.
Archivar
En la etapa de archivo de las cargas de trabajo de AA, se conservan los datos de entrenamiento y el modelo durante períodos prolongados.
Para optimizar los costos de almacenamiento con varias clases de almacenamiento, te recomendamos que uses Autoclass de Cloud Storage o la administración del ciclo de vida de los objetos.
Descripción general del proceso de diseño
Para determinar las opciones de almacenamiento adecuadas para tu carga de trabajo de IA y AA enGoogle Cloud, haz lo siguiente:
- Considera las características de tu carga de trabajo, las expectativas de rendimiento y los objetivos de costos.
- Revisa los servicios y las funciones de almacenamiento recomendados en Google Cloud.
- Según tus requisitos y las opciones disponibles, elige los servicios y las funciones de almacenamiento que necesitas para cada etapa del flujo de trabajo de AA: preparación, entrenamiento, entrega y archivo.
Este documento se enfoca en las etapas del flujo de trabajo del AA en las que la consideración cuidadosa de las opciones de almacenamiento es más importante, pero no abarca la totalidad del ciclo de vida, los procesos y las capacidades del AA.
A continuación, se proporciona una descripción general del proceso de diseño de tres fases para elegir el almacenamiento de tu carga de trabajo de IA y AA:
- Define tus requisitos:
- Características de la carga de trabajo
- Restricciones de seguridad
- Requisitos de resiliencia
- Expectativas de rendimiento
- Objetivos de costos
- Revisa las opciones de almacenamiento:
- Managed Lustre
- Cloud Storage
- Hyperdisk ML
- Elige el almacenamiento adecuado: Elige servicios, funciones y opciones de diseño de almacenamiento según las características de tu carga de trabajo en cada etapa del flujo de trabajo de AA.
Define tus requisitos
Antes de elegir opciones de almacenamiento para tu carga de trabajo de IA y AA enGoogle Cloud, debes definir los requisitos de almacenamiento para la carga de trabajo. Para definir los requisitos de almacenamiento, debes tener en cuenta factores como la plataforma de procesamiento, la capacidad, el rendimiento y los requisitos de latencia.
Para ayudarte a elegir una opción de almacenamiento para tus cargas de trabajo de IA y AA, considera las características de tu carga de trabajo:
- ¿Los tamaños de solicitud de E/S y los tamaños de archivo son pequeños (KB), medianos o grandes (MB o GB)?
- ¿Tu carga de trabajo exhibe principalmente patrones de acceso a archivos secuenciales o aleatorios?
- ¿Tus cargas de trabajo de IA y AA son sensibles a la latencia de E/S y al tiempo hasta el primer byte (TTFB)?
- ¿Necesitas una alta capacidad de procesamiento de lectura y escritura para clientes individuales, clientes agregados o ambos?
- ¿Cuál es la mayor cantidad de unidades de procesamiento gráfico (GPU) o unidades de procesamiento tensorial (TPU) que requiere tu carga de trabajo de entrenamiento de IA y AA más grande?
Usarás tus respuestas a estas preguntas para elegir el almacenamiento adecuado más adelante en este documento.
Revisa las opciones de almacenamiento
Google Cloud ofrece servicios de almacenamiento para todos los formatos de almacenamiento principales: bloque, archivo, sistema de archivos paralelos y objeto. En la siguiente tabla, se describen las opciones que puedes considerar para tu carga de trabajo de IA y AA enGoogle Cloud. En la tabla, se incluyen las tres opciones de almacenamiento administradas por Google en las que se enfoca este documento para tus cargas de trabajo de IA y AA. Sin embargo, si tienes requisitos específicos que no se abordan con estas ofertas, considera las soluciones de almacenamiento administradas por socios que están disponibles en Google Cloud Marketplace.
Revisa y evalúa las funciones, las opciones de diseño y las ventajas relativas de los servicios disponibles para cada formato de almacenamiento.
Servicio de almacenamiento | Tipo de almacenamiento | Funciones |
---|---|---|
Managed Lustre | Sistema de archivos paralelos |
|
Cloud Storage | Objeto |
|
Hyperdisk ML | Bloquear |
|
Managed Lustre
Managed Lustre es un sistema de archivos completamente administrado en Google Cloud. Managed Lustre proporciona instancias persistentes y zonales que se compilan en el sistema de archivos Lustre de DDN EXAScaler. Managed Lustre es ideal para las cargas de trabajo de IA y AA que necesitan proporcionar acceso de baja latencia de menos de un milisegundo con alta capacidad de procesamiento y una gran cantidad de operaciones de entrada y salida por segundo (IOPS). Managed Lustre puede mantener una capacidad de procesamiento y una cantidad de IOPS altas para unas pocas VMs o para miles de ellas.
Lustre administrado proporciona los siguientes beneficios:
- Cumplimiento de POSIX: Compatibilidad con el estándar POSIX, que ayuda a garantizar la compatibilidad con muchas aplicaciones y herramientas existentes.
- Menor TCO para el entrenamiento: Acelera el tiempo de entrenamiento entregando datos de manera eficiente a los nodos de procesamiento. Esta aceleración ayuda a reducir el TCO del entrenamiento de modelos de IA y AA.
- Menor TCO para la entrega: Permite una carga de modelos más rápida y una entrega de inferencia optimizada en comparación con Cloud Storage. Estas capacidades ayudan a reducir los costos de procesamiento y a mejorar la utilización de los recursos.
- Uso eficiente de los recursos: Combina la creación de puntos de control y el entrenamiento en una sola instancia. Este uso de recursos ayuda a maximizar el uso eficiente de la capacidad de procesamiento de lectura y escritura en un solo sistema de almacenamiento de alto rendimiento.
Cloud Storage
Cloud Storage es un servicio de almacenamiento de objetos completamente administrado que es adecuado para cargas de trabajo de IA y AA de cualquier escala. Cloud Storage se destaca por controlar datos no estructurados en todas las fases del flujo de trabajo de IA y AA.
Cloud Storage proporciona los siguientes beneficios:
- Escalabilidad masiva: Obtén capacidad de almacenamiento ilimitada que se puede escalar a exabytes a nivel global.
- Capacidad de procesamiento alta: Escala hasta 1 TB/s con la planificación necesaria.
- Opciones de ubicación flexibles: Elige entre opciones de almacenamiento regionales, multirregionales y birregionales para cargas de trabajo de IA y AA.
- Rentabilidad: Benefíciate de una variedad de clases de almacenamiento diseñadas para optimizar los costos según tus patrones de acceso a los datos.
Cloud Storage se destaca por su escalabilidad y rentabilidad, pero es importante tener en cuenta su latencia y sus características de E/S. Se espera una latencia de decenas de milisegundos, que es más alta que la de otras opciones de almacenamiento. Para maximizar la capacidad de procesamiento, debes usar cientos o miles de subprocesos, archivos grandes y solicitudes de E/S grandes. Cloud Storage proporciona bibliotecas cliente en varios lenguajes de programación, así como Cloud Storage FUSE y Anywhere Cache.
Cloud Storage FUSE es un adaptador FUSE de código abierto compatible con Google. Cloud Storage FUSE te permite activar los buckets de Cloud Storage como unidades locales. Cloud Storage FUSE no es totalmente compatible con POSIX. Por lo tanto, es importante que comprendas las limitaciones y las diferencias de Cloud Storage FUSE con respecto a los sistemas de archivos tradicionales. Con Cloud Storage FUSE, puedes acceder a tus datos de entrenamiento, modelos y puntos de control con la escala, la asequibilidad y el rendimiento de Cloud Storage.
El almacenamiento en caché de Cloud Storage FUSE proporciona los siguientes beneficios:
- Portabilidad: Activa y accede a los buckets de Cloud Storage con la semántica del sistema de archivos estándar, lo que hace que tus aplicaciones sean más portátiles.
- Compatibilidad: Elimina la necesidad de refactorizar aplicaciones para usar APIs específicas de la nube, lo que te ahorra tiempo y recursos.
- Menor tiempo de inactividad: Inicia trabajos de entrenamiento rápidamente accediendo directamente a los datos en Cloud Storage, lo que minimiza el tiempo de inactividad de tus GPU y TPU.
- Alto rendimiento: Aprovecha la escalabilidad y el rendimiento integrados de Cloud Storage, que se optimiza para cargas de trabajo de AA con muchas lecturas con GPU o TPU.
- Caché de archivos local del cliente: Acelera el entrenamiento con una caché local del cliente que agiliza las lecturas de archivos repetidas. Esta aceleración se puede mejorar aún más cuando se usa con el SSD local de 6 TiB que se incluye con los tipos de máquinas A3.
Anywhere Cache es una función de Cloud Storage que proporciona hasta 1 PiB de caché de lectura zonal respaldada por SSD para los buckets de Cloud Storage. Anywhere Cache está diseñada para acelerar las aplicaciones con uso intensivo de datos, ya que proporciona una capa de acceso local y rápido para los datos que se leen con frecuencia dentro de una zona específica.
La caché en cualquier lugar proporciona los siguientes beneficios:
- Capacidad de procesamiento acelerada: Escala automáticamente la capacidad de la caché y el ancho de banda para ofrecer una capacidad de procesamiento alta, que supera las cuotas de ancho de banda regionales, con latencias coherentes y predecibles.
- Costo reducido: Evita las tarifas de salida de transferencia de datos o las tarifas de recuperación de la clase de almacenamiento para los datos almacenados en caché. Anywhere Cache ajusta automáticamente el tamaño de la caché y el ancho de banda disponible para satisfacer las necesidades de tu carga de trabajo.
Hyperdisk ML
Hyperdisk ML es una solución de almacenamiento en bloque de alto rendimiento diseñada para acelerar las cargas de trabajo de IA y AA que requieren acceso de solo lectura a grandes conjuntos de datos. Hyperdisk ML aprovecha la escalabilidad y la disponibilidad de Colossus para equilibrar el rendimiento en todo el sistema de archivos subyacente. Hyperdisk ML es especialmente adecuado para las tareas de entrega en Google Cloud en comparación con otros servicios de almacenamiento, ya que puede proporcionar un rendimiento agregado excepcionalmente alto de forma simultánea a muchas VMs.
Hyperdisk ML proporciona los siguientes beneficios:
- Servicio y escalabilidad de modelos acelerados: Escala hasta miles de nodos simultáneos y logra un alto rendimiento agregado, lo que optimiza los tiempos de carga y el uso de recursos para las cargas de trabajo de inferencia con el modo Kubernetes
ReadOnlyMany
. - Densidad de alto rendimiento: Logra el mayor rendimiento disponible enGoogle Cloud y operaciones de lectura rápidas para grandes conjuntos de datos compartidos.
- Mejora del costo total de propiedad (TCO): Reduce los costos con tiempos de inactividad de la GPU más cortos, capacidades de conexión múltiple y agrupación del rendimiento.
- Acceso simultáneo de solo lectura: Reduce los costos compartiendo discos entre VMs, lo que es más rentable que tener varios discos con los mismos datos. Para acceder a datos estáticos desde varias VMs, debes conectar el mismo disco en modo de solo lectura a cientos de VMs. Para actualizar el volumen, el disco debe desconectarse de todas las VMs, excepto de una.
Soluciones de almacenamiento de socios
Para los requisitos de carga de trabajo que no cumplen los servicios de almacenamiento anteriores, puedes usar las siguientes soluciones de socios, que están disponibles en Cloud Marketplace:
- Sycomp Storage basado en IBM Storage Scale
- Plataforma de datos de WEKA
- Licencia de la Plataforma de Datos de VAST.
Google no administra estas soluciones de socios. Debes administrar las tareas de implementación y operativas para garantizar una integración y un rendimiento óptimos dentro de tu infraestructura.
Análisis comparativo
En la siguiente tabla, se muestran las capacidades clave de los servicios de almacenamiento enGoogle Cloud.
Managed Lustre | Cloud Storage | Hyperdisk ML | |
---|---|---|---|
Capacidad | 18 TiB a 8 PiB | Sin límite inferior ni superior | 4 GiB a 64 TiB |
Escalamiento | No escalable | Se ajusta automáticamente según el uso. | Escalamiento vertical |
Uso compartido | Se puede activar en varias VMs de Compute Engine y clústeres de GKE. |
|
Admitido |
Opción de clave de encriptación | Google-owned and Google-managed encryption keys |
|
|
Persistencia | Es el ciclo de vida de la instancia de Managed Lustre. | Vida útil del bucket | La vida útil del disco |
Disponibilidad | Zonal |
|
Zonal |
Rendimiento | Escalamiento lineal con capacidad aprovisionada | Ajuste de escala automático de las tasas de lectura y escritura, y redistribución dinámica de cargas | Almacenamiento persistente con escalamiento dinámico |
Administración | Completamente administrado y compatible con POSIX | Completamente administrado | Formatea y activa de forma manual |
Herramientas de transferencia de datos
En esta sección, se describen las opciones para mover datos entre servicios de almacenamiento enGoogle Cloud. Cuando realizas tareas de IA y AA, es posible que necesites mover tus datos de una ubicación a otra. Por ejemplo, si tus datos comienzan en Cloud Storage, puedes moverlos a otro lugar para entrenar el modelo y, luego, copiar las instantáneas del punto de control o el modelo entrenado de nuevo en Cloud Storage.
Puedes usar los siguientes métodos para transferir datos a Google Cloud:
- Transfiere datos en línea con el Servicio de transferencia de almacenamiento: Automatiza la transferencia de grandes cantidades de datos entre sistemas de almacenamiento de objetos y archivos, incluidos Cloud Storage, Amazon S3, los servicios de almacenamiento de Azure y las fuentes de datos locales. El Servicio de transferencia de almacenamiento te permite copiar tus datos de manera segura desde la ubicación de origen hasta la ubicación de destino, además de realizar transferencias periódicas de datos modificados. También proporciona validación de integridad de los datos, reintentos automáticos y balanceo de cargas.
- Transfiere datos sin conexión con Transfer Appliance: Transfiere y carga grandes cantidades de datos sin conexión a Google Cloud en situaciones en las que la conectividad de red y el ancho de banda no están disponibles, son limitados o son costosos.
- Sube datos a Cloud Storage: Sube datos en línea a buckets de Cloud Storage a través de la Google Cloud consola, la CLI de gcloud, las APIs de Cloud Storage o las bibliotecas cliente.
Cuando elijas un método de transferencia de datos, ten en cuenta factores como el tamaño de los datos, las restricciones de tiempo, la disponibilidad del ancho de banda, los objetivos de costo y los requisitos de seguridad y cumplimiento. Para obtener información sobre la planificación y la implementación de transferencias de datos a Google Cloud, consulta Migra a Google Cloud: Transfiere tus conjuntos de datos grandes.
Elige el almacenamiento adecuado
Por lo general, las cargas de trabajo de IA y AA implican cuatro etapas principales: preparación, entrenamiento, entrega y archivo. Cada una de estas etapas tiene requisitos de almacenamiento únicos, y elegir la solución adecuada puede afectar significativamente el rendimiento, el costo y la eficiencia operativa. Un enfoque híbrido o optimizado de forma local te permite adaptar tus opciones de almacenamiento a las demandas específicas de cada etapa de tu carga de trabajo de IA y AA. Sin embargo, si tus prioridades son la administración unificada y la facilidad de operación, un enfoque simplificado a nivel global que use una solución coherente en todas las etapas puede ser beneficioso para las cargas de trabajo de cualquier escala. La eficacia de la elección de almacenamiento depende de las propiedades del conjunto de datos, la escala de los recursos de procesamiento y almacenamiento necesarios, la latencia y los requisitos de carga de trabajo que definiste anteriormente.
En las siguientes secciones, se proporcionan detalles sobre las etapas principales de las cargas de trabajo de IA y AA, y los factores que podrían influir en tu elección de almacenamiento.
Prepárate
La etapa de preparación sienta las bases para tu aplicación de IA y AA. Implica subir datos sin procesar de varias fuentes a tu entorno de nube y transformarlos en un formato utilizable para entrenar tu modelo de IA y AA. Este proceso incluye tareas como la limpieza, el procesamiento y la conversión de tipos de datos para garantizar la compatibilidad con el framework de IA y AA que elijas.
Cloud Storage es adecuado para la etapa de preparación debido a su escalabilidad, durabilidad y rentabilidad, en especial para los conjuntos de datos grandes que son comunes en la IA. Cloud Storage ofrece una integración perfecta con otros servicios deGoogle Cloud que te permite aprovechar las posibles optimizaciones para el entrenamiento que requiere muchos datos.
Durante la fase de preparación de datos, puedes reorganizar tus datos en fragmentos grandes para mejorar la eficiencia de acceso y evitar solicitudes de lectura aleatorias. Para reducir aún más los requisitos de rendimiento de E/S en el sistema de almacenamiento, puedes aumentar la cantidad de subprocesos de E/S con la canalización, la optimización del entrenamiento o ambos.
Entrenar
La etapa de entrenamiento es el núcleo del desarrollo del modelo, en la que tu modelo de IA y AA aprende de los datos proporcionados. Esta etapa implica dos aspectos clave que tienen requisitos distintos: la carga de datos eficiente para acceder a los datos de entrenamiento y la creación de puntos de control confiables para guardar el progreso del modelo. En las siguientes secciones, se proporcionan recomendaciones y los factores que se deben tener en cuenta para elegir las opciones de almacenamiento adecuadas para la carga de datos y la creación de puntos de control.
Carga de datos
Durante la carga de datos, las GPUs o las TPUs importan lotes de datos varias veces para entrenar el modelo. En esta fase, puedes usar una caché para optimizar las tareas de carga de datos, según el tamaño de los lotes y el orden en el que los solicitas. Tu objetivo durante la carga de datos es entrenar el modelo con la máxima eficiencia, pero al menor costo.
Si el tamaño de los datos de entrenamiento escala a petabytes, es posible que los datos deban volver a leerse varias veces. Esta escala requiere un procesamiento intensivo por parte de una GPU o un acelerador de TPU. Sin embargo, debes asegurarte de que tus GPU y TPU no estén inactivas, y de que procesen tus datos de forma activa. De lo contrario, pagas por un costoso acelerador inactivo mientras copias los datos de una ubicación a otra.
Para optimizar el rendimiento y el costo de la carga de datos, ten en cuenta los siguientes factores:
- Tamaño del conjunto de datos: Es el tamaño de todo el corpus de datos de entrenamiento y el tamaño de cada conjunto de datos de entrenamiento.
- Patrones de acceso: ¿Cuál de las siguientes opciones categoriza mejor el patrón de acceso de E/S de tu carga de trabajo de entrenamiento?:
- Acceso paralelo y secuencial: Un archivo se asigna a un solo nodo y se lee de forma secuencial.
- Acceso paralelo y aleatorio: Se asigna un archivo a un solo nodo y se lee de forma aleatoria para crear un lote de muestras.
- Acceso completamente aleatorio: Un nodo puede leer cualquier rango de cualquier archivo para crear un lote.
- Tamaño del archivo: Son los tamaños típicos de las solicitudes de lectura.
Managed Lustre para la carga de datos
Debes elegir Managed Lustre para cargar tus datos si se aplica alguna de las siguientes condiciones:
- Tienes un requisito de capacidad de entrenamiento mínima de 18 TiB.
- Tus datos de entrenamiento constan de archivos pequeños de menos de 50 MB para aprovechar las capacidades de baja latencia.
- Tienes un requisito de latencia de menos de 1 milisegundo para cumplir con los requisitos de almacenamiento para el acceso a metadatos y E/S aleatoria.
- Para ver y administrar los datos de tus usuarios, necesitas una experiencia similar a una computadora de escritorio con compatibilidad completa con POSIX.
Puedes usar Managed Lustre como una caché de alto rendimiento sobre Cloud Storage para acelerar las cargas de trabajo de AA y de AA/ML que requieren operaciones de E/S de capacidad de procesamiento extremadamente alta y baja latencia con un sistema de archivos paralelos completamente administrado. Para minimizar la latencia durante el entrenamiento, puedes importar datos a Lustre administrado desde Cloud Storage. Si usas GKE como plataforma de procesamiento, puedes usar el
Controlador CSI de Lustre administrado por GKE para completar previamente PersistentVolumesClaims con datos de Cloud Storage. Una vez que se complete el entrenamiento, puedes minimizar tus gastos de almacenamiento a largo plazo exportando tus datos a una clase de Cloud Storage de menor costo.
Cloud Storage para la carga de datos
En general, debes elegir Cloud Storage para cargar tus datos si se aplica alguna de las siguientes condiciones:
- Tienes un requisito de capacidad de entrenamiento de 100 TiB o más.
- Tus datos de entrenamiento constan de archivos grandes de 50 MB o más.
- Priorizas la durabilidad de los datos y la alta disponibilidad por sobre el rendimiento del almacenamiento.
Cloud Storage ofrece una solución escalable y rentable para almacenar conjuntos de datos masivos, y Cloud Storage FUSE te permite acceder a los datos como un sistema de archivos local. Cloud Storage FUSE acelera el acceso a los datos durante el entrenamiento, ya que mantiene los datos de entrenamiento cerca de los aceleradores de la máquina, lo que aumenta la capacidad de procesamiento.
Para las cargas de trabajo que exigen una capacidad de procesamiento superior a 1 TB/s, Anywhere Cache acelera las velocidades de lectura almacenando datos en caché y escalando más allá de las cuotas de ancho de banda regionales. Para evaluar si Anywhere Cache es adecuado para tu carga de trabajo, usa el recomendador de Anywhere Cache para analizar tu uso y almacenamiento de datos.
Puntos de control y restablecimiento
Para puntos de control y restablecimiento, los trabajos de entrenamiento deben guardar su estado de forma periódica para poder recuperarse con rapidez de las fallas de la instancia. Cuando ocurre el error, los trabajos deben reiniciarse, transferir el último punto de control y, luego, reanudar el entrenamiento. El mecanismo exacto que se usa para crear y transferir puntos de control suele ser específico de un framework. Para obtener información sobre los puntos de control y las técnicas de optimización para TensorFlow Core, consulta Puntos de control de entrenamiento. Para obtener información sobre los puntos de control y las técnicas de optimización para PyTorch, consulta Saving and Loading Models.
Solo necesitas guardar algunos puntos de control en un momento determinado. Las cargas de trabajo de puntos de control suelen consistir en escrituras, varias eliminaciones y, idealmente, lecturas poco frecuentes cuando se producen fallas.
Para optimizar el rendimiento de la creación de puntos de control y la restauración, ten en cuenta los siguientes factores:
- Tamaño del modelo: Es la cantidad de parámetros que hay en tu modelo de IA y AA. El tamaño de tu modelo afecta directamente el tamaño de sus archivos de puntos de control, que pueden variar de GiB a TiB.
- Frecuencia de los puntos de control: Indica con qué frecuencia tu modelo guarda puntos de control. Los guardados frecuentes proporcionan una mejor tolerancia a errores, pero aumentan los costos de almacenamiento y pueden afectar la velocidad de entrenamiento.
- Tiempo de recuperación del punto de control: Es el tiempo de recuperación que deseas para cargar puntos de control y reanudar el entrenamiento. Para minimizar el tiempo de recuperación, considera factores como el tamaño del punto de control, el rendimiento del almacenamiento y el ancho de banda de la red.
Managed Lustre para la creación de puntos de control
Debes elegir Managed Lustre para crear puntos de control si se aplica alguna de las siguientes condiciones:
- Tu carga de trabajo de entrenamiento ya usa Managed Lustre para la carga de datos.
- Tienes el requisito de realizar puntos de control frecuentes de alto rendimiento.
Para maximizar el uso de recursos y minimizar el tiempo de inactividad del acelerador, usa Lustre administrado para el entrenamiento y la creación de puntos de control. Managed Lustre puede lograr escrituras de puntos de control rápidas que alcanzan una alta capacidad de procesamiento por VM. Puedes conservar los puntos de control en la instancia persistente de Lustre administrado o puedes optimizar los costos exportando periódicamente los puntos de control a Cloud Storage.
Cloud Storage para el almacenamiento de puntos de control
Debes elegir Cloud Storage para crear puntos de control si se aplica alguna de las siguientes condiciones:
- Tu carga de trabajo de entrenamiento usa Cloud Storage FUSE.
- Priorizas la durabilidad de los datos y la alta disponibilidad por sobre el rendimiento del almacenamiento.
Para mejorar el rendimiento de los puntos de control, usa Cloud Storage FUSE con los espacios de nombres jerárquicos habilitados para aprovechar la rápida operación de cambio de nombre atómico y guardar los puntos de control de forma asíncrona. Para evitar la exposición accidental de información sensible de tu conjunto de datos de entrenamiento durante la entrega, debes almacenar los puntos de control en un bucket de Cloud Storage independiente. Para ayudar a reducir las latencias de escritura de cola en las cargas detenidas, Cloud Storage FUSE intenta un reintento después de 10 segundos.
Entregar
Cuando entregas tu modelo, lo que también se conoce como inferencia, el patrón de E/S principal es de solo lectura para cargar el modelo en la memoria de la GPU o TPU. Tu objetivo en la etapa de entrega es ejecutar el modelo en producción. El modelo es mucho más pequeño que los datos de entrenamiento, lo que significa que puedes replicar y escalar el modelo en varias instancias. Cuando publicas datos, es importante que tengas alta disponibilidad y protección contra fallas zonales y regionales. Por lo tanto, debes asegurarte de que tu modelo esté disponible para una variedad de situaciones de falla.
En muchos casos de uso de IA generativa y AA, los datos de entrada al modelo pueden ser bastante pequeños y es posible que no necesiten almacenarse de forma persistente. En otros casos, es posible que debas ejecutar grandes volúmenes de datos en el modelo (por ejemplo, conjuntos de datos científicos). Para ejecutar grandes volúmenes de datos, elige una opción de almacenamiento que pueda minimizar el tiempo de inactividad de la GPU o la TPU durante el análisis del conjunto de datos y usa una ubicación persistente para almacenar los resultados de la inferencia.
Los tiempos de carga del modelo afectan directamente el tiempo de inactividad del acelerador, lo que genera costos significativos. Un aumento en el tiempo de carga del modelo por nodo se puede amplificar en muchos nodos, lo que puede generar un aumento significativo en el costo. Por lo tanto, para lograr una infraestructura de servicio rentable, es importante que optimices la carga rápida del modelo.
Para optimizar el rendimiento y el costo de la publicación, ten en cuenta los siguientes factores:
- Tamaño del modelo: Es el tamaño de tu modelo en GiB o TiB. Los modelos más grandes requieren más recursos de procesamiento y memoria, lo que puede aumentar la latencia.
- Frecuencia de carga del modelo: Con qué frecuencia planeas actualizar tu modelo. La carga y descarga frecuentes consumen recursos de procesamiento y aumentan la latencia.
- Cantidad de nodos de entrega: Es la cantidad de nodos que entregarán tu modelo. Por lo general, más nodos reducen la latencia y aumentan la capacidad de procesamiento, pero también incrementan los costos de infraestructura.
Managed Lustre para la entrega
Debes elegir Managed Lustre para entregar tu modelo si se aplica alguna de las siguientes condiciones:
- Tu carga de trabajo de entrenamiento y de creación de puntos de control usa Managed Lustre.
- Tu carga de trabajo usa entre 10 y 100 nodos de inferencia.
- Actualizas tu modelo con frecuencia.
Si ya usas Lustre administrado para el entrenamiento y la creación de puntos de control, puede ser una opción rentable y de alto rendimiento para publicar tus modelos. Lustre administrado ofrece una alta capacidad de procesamiento por VM y una capacidad de procesamiento agregada del clúster que ayuda a reducir el tiempo de carga del modelo. Puedes usar Managed Lustre para cualquier cantidad de VMs de entrega.
Cloud Storage para la entrega
Debes elegir Cloud Storage para entregar tu modelo si se aplica alguna de las siguientes condiciones:
- Necesitas una solución rentable para un entorno dinámico en el que puede cambiar la cantidad de nodos de inferencia.
- Realizas actualizaciones poco frecuentes en tu modelo.
- Priorizas la alta disponibilidad y la durabilidad de tus modelos, incluso en caso de interrupciones regionales.
Con la arquitectura multirregional o birregional, Cloud Storage proporciona alta disponibilidad y protege tu carga de trabajo de fallas zonales y regionales. Para acelerar la carga del modelo, puedes usar Cloud Storage FUSE con las descargas paralelas habilitadas para que las partes del modelo se recuperen en paralelo.
Para lograr la publicación de modelos con una capacidad de procesamiento superior a 1 TB/s o para implementaciones que superen los cien nodos de publicación, usa Anywhere Cache con un bucket multirregional. Esta combinación proporciona almacenamiento redundante y de alto rendimiento en todas las regiones, además de flexibilidad. La Caché en cualquier lugar también elimina las tarifas de egreso de datos y recuperación de la clase de almacenamiento en los datos almacenados en caché.
Hyperdisk ML para la entrega
Debes elegir Hyperdisk ML para entregar tu modelo si se aplica alguna de las siguientes condiciones:
- Necesitas más de 100 nodos de inferencia.
- Realizas actualizaciones poco frecuentes en tu modelo.
- Tu carga de trabajo usa un tipo de VM compatible.
- Tu canalización puede administrar volúmenes de solo lectura para almacenar modelos.
Optimiza el rendimiento de la entrega con Hyperdisk ML como caché para tus datos de Cloud Storage. Hyperdisk ML usa un grupo de rendimiento compartido y una capacidad de procesamiento aprovisionada de forma dinámica en varias VMs para controlar de manera eficiente la entrega de modelos de solo lectura a cualquier escala.
Archivar
La etapa de archivo tiene un patrón de E/S de “escritura única, lee con poca frecuencia”. Tu objetivo es almacenar los diferentes conjuntos de datos de entrenamiento y las diferentes versiones de los modelos que generaste. Puedes usar estas versiones incrementales de datos y modelos para crear copias de seguridad y recuperación ante desastres. También debes almacenar estos elementos en una ubicación duradera durante un período prolongado. Aunque es posible que no necesites acceso a los datos y los modelos con mucha frecuencia, querrás que estos elementos estén disponibles cuando los necesites.
Debido a su durabilidad extrema, escala expansiva y bajo costo, la mejorGoogle Cloud opción para almacenar datos de objetos durante un período prolongado es Cloud Storage. Según la frecuencia con la que accedes al conjunto de datos, al modelo y a los archivos de copia de seguridad, Cloud Storage ofrece optimización de costos a través de diferentes clases de almacenamiento. Puedes seleccionar una clase de almacenamiento según la frecuencia con la que tengas previsto acceder a tus datos archivados:
- Acceso frecuente a los datos: Standard Storage
- Acceso mensual a los datos: Nearline Storage
- Acceso trimestral a los datos: Coldline Storage
- Acceso anual a los datos: Archive Storage
Con la administración del ciclo de vida de los objetos, puedes crear políticas para mover datos automáticamente a clases de almacenamiento a largo plazo o borrar datos según criterios específicos. Si no sabes con qué frecuencia accederás a tus datos, puedes usar la función Autoclass para mover datos entre clases de almacenamiento de forma automática según tus patrones de acceso.
¿Qué sigue?
Para obtener más información sobre las opciones de almacenamiento y las cargas de trabajo de IA y AA, consulta los siguientes recursos:
- Obtén información para optimizar las cargas de trabajo de IA y AA con Managed Lustre.
- Obtén más información para optimizar las cargas de trabajo de IA y AA con Cloud Storage FUSE.
- Obtén más información sobre la perspectiva de IA y AA en el Google Cloud Marco de Well-Architected.
- Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.
Colaboradores
Autora: Samantha He | Escritora técnica
Otros colaboradores:
- David Stiver | Gerente de grupo de productos
- Dean HildeBrand | Director técnico, oficina del director de Tecnología
- Autor: Kumar Dhanagopal | Desarrollador de soluciones entre productos
- Sean Derrington | Gerente de productos salientes del grupo