En este documento se ofrecen directrices de diseño sobre cómo elegir e integrarGoogle Cloud servicios de almacenamiento para tus cargas de trabajo de IA y aprendizaje automático. Cada fase del ciclo de vida del aprendizaje automático tiene requisitos de almacenamiento diferentes. Por ejemplo, cuando subes el conjunto de datos de entrenamiento, puedes priorizar la capacidad de almacenamiento para el entrenamiento y el alto rendimiento para los conjuntos de datos grandes. Del mismo modo, las fases de entrenamiento, ajuste, publicación y archivado tienen requisitos diferentes. Para la mayoría de las cargas de trabajo de IA y aprendizaje automático, te recomendamos que utilices Lustre gestionado de Google Cloud como solución de almacenamiento. Managed Lustre ofrece un alto rendimiento y escalabilidad, lo que lo convierte en la opción ideal para el entrenamiento, la creación de puntos de control y el servicio.
Este documento le ayudará a evaluar sus requisitos de capacidad, latencia y rendimiento para tomar decisiones fundamentadas a la hora de determinar la solución de almacenamiento adecuada. En este documento se da por hecho que has seleccionado una plataforma de computación que cumple los requisitos de tu carga de trabajo. Para las cargas de trabajo de IA y aprendizaje automático, te recomendamos que uses Compute Engine o Google Kubernetes Engine (GKE). Para obtener más información sobre cómo seleccionar una plataforma de computación, consulta Alojar aplicaciones en Google Cloud.
En las siguientes pestañas se ofrece un breve resumen de las opciones de almacenamiento recomendadas para cada etapa del flujo de trabajo de aprendizaje automático. Para obtener más información, consulta Elegir el almacenamiento adecuado.
Preparar
En la fase de preparación del flujo de trabajo de aprendizaje automático, debes hacer lo siguiente:
- Subir e ingerir datos.
- Transforma los datos al formato correcto antes de entrenar el modelo.
Para optimizar los costes de almacenamiento usando varias clases de almacenamiento, te recomendamos que utilices la función Autoclass de Cloud Storage o la gestión del ciclo de vida de los objetos.
Tren
En la fase de entrenamiento del flujo de trabajo de aprendizaje automático, debes hacer lo siguiente:
- Desarrollo de modelos: desarrolla tu modelo usando cuadernos y aplicando un proceso iterativo de prueba y error.
- Entrenamiento del modelo:
- Usa un número de aceleradores de hardware pequeño o grande para leer repetidamente el conjunto de datos de entrenamiento.
- Aplica un proceso iterativo al desarrollo y al entrenamiento de modelos.
- Creación de puntos de control y reinicio:
- Guarda el estado periódicamente durante el entrenamiento del modelo creando un punto de control para que el entrenamiento pueda reiniciarse después de un fallo del nodo.
- Selecciona el punto de control en función del patrón de E/S y de la cantidad de datos que se deben guardar en el punto de control.
Para las fases de entrenamiento, recomendamos las siguientes opciones de almacenamiento:
- Usa Managed Lustre si tu carga de trabajo tiene estas características:
- Un requisito de capacidad de entrenamiento mínima de 18 TiB.
- Datos de entrenamiento que constan de archivos pequeños de menos de 50 MB para aprovechar las funciones de baja latencia.
- Un requisito de latencia de menos de 1 milisegundo para cumplir los requisitos de almacenamiento de E/S aleatorias y acceso a metadatos.
- Requisito para realizar comprobaciones de alto rendimiento frecuentes.
- Una experiencia similar a la de un ordenador con compatibilidad total con POSIX para ver y gestionar los datos de tus usuarios.
- Usa Cloud Storage con Cloud Storage FUSE y Anywhere Cache si tu carga de trabajo tiene estas 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, de decenas de milisegundos.
- Prioriza la durabilidad de los datos y la alta disponibilidad por encima del rendimiento del almacenamiento.
Para optimizar los costes, te recomendamos que uses el mismo servicio de almacenamiento en todas las fases del entrenamiento del modelo.
Publicar
En la fase de servicio del flujo de trabajo de aprendizaje automático, debes hacer lo siguiente:
- Almacena el modelo.
- Carga el modelo en una instancia que ejecute aceleradores de hardware al inicio.
- Almacena los resultados de la inferencia del modelo, como las imágenes generadas.
- También puedes almacenar y cargar el conjunto de datos que se usa para la inferencia del modelo.
Para las fases de publicación, recomendamos las siguientes opciones de almacenamiento:
- Managed Lustre si tu carga de trabajo tiene estas características:
- Tu carga de trabajo de entrenamiento y de puntos de control usa Managed Lustre.
- Se necesitan entre 10 y 100 nodos de inferencia.
- Actualizaciones frecuentes del modelo.
- Cloud Storage con Cloud Storage FUSE y Anywhere Cache si tu carga de trabajo tiene estas características:
- Se necesita una solución rentable para un entorno dinámico en el que pueda cambiar el número de nodos de inferencia.
- Actualizaciones poco frecuentes de tu modelo.
- Prioriza la alta disponibilidad y la durabilidad de tus modelos, incluso en caso de interrupciones regionales.
- Google Cloud Hyperdisk ML si tu carga de trabajo tiene estas características:
- Se necesitan 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 gestionar volúmenes de solo lectura para almacenar modelos.
Archivar
En la fase de archivo de las cargas de trabajo de aprendizaje automático, se conservan los datos de entrenamiento y el modelo durante periodos prolongados.
Para optimizar los costes de almacenamiento con varias clases de almacenamiento, te recomendamos que uses Autoclass de Cloud Storage o la gestió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 aprendizaje automático enGoogle Cloud, haz lo siguiente:
- Ten en cuenta las características de tu carga de trabajo, las expectativas de rendimiento y los objetivos de costes.
- Consulta los servicios y las funciones de almacenamiento recomendados en Google Cloud.
- En función de tus requisitos y de las opciones disponibles, elige los servicios y las funciones de almacenamiento que necesites para cada fase del flujo de trabajo de aprendizaje automático: preparación, entrenamiento, servicio y archivado.
Este documento se centra en las fases del flujo de trabajo de aprendizaje automático en las que es fundamental tener en cuenta las opciones de almacenamiento, pero no abarca la totalidad del ciclo de vida, los procesos y las funciones del aprendizaje automático.
A continuación, se incluye un resumen del proceso de diseño de tres fases para elegir el almacenamiento de tu carga de trabajo de IA y aprendizaje automático:
- Define tus requisitos:
- Características de la carga de trabajo
- Restricciones de seguridad
- Requisitos de resiliencia
- Expectativas de rendimiento
- Objetivos de coste
- Revisa las opciones de almacenamiento:
- Managed Lustre
- Cloud Storage
- Hyperdisk ML
- Elige el almacenamiento adecuado: selecciona servicios, funciones y opciones de diseño de almacenamiento en función de las características de tu carga de trabajo en cada etapa del flujo de trabajo de aprendizaje automático.
Define tus requisitos
Antes de elegir las opciones de almacenamiento para tu carga de trabajo de IA y aprendizaje automático enGoogle Cloud, debes definir los requisitos de almacenamiento de la carga de trabajo. Para definir los requisitos de almacenamiento, debes tener en cuenta factores como la plataforma de computación, 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 aprendizaje automático, ten en cuenta las características de tu carga de trabajo:
- ¿Los tamaños de las solicitudes de E/S y de los archivos son pequeños (KBs), medianos o grandes (MBs o GBs)?
- ¿Tu carga de trabajo muestra principalmente patrones de acceso a archivos secuenciales o aleatorios?
- ¿Tus cargas de trabajo de IA y aprendizaje automático son sensibles a la latencia de E/S y al tiempo hasta el primer byte (TTFB)?
- ¿Necesitas un alto rendimiento de lectura y escritura para clientes individuales, agregados o ambos?
- ¿Cuál es el mayor número de unidades de procesamiento gráfico (GPUs) o unidades de procesamiento de tensor (TPUs) que requiere la mayor carga de trabajo de entrenamiento de IA y aprendizaje automático?
Las respuestas a estas preguntas te servirán para elegir el almacenamiento adecuado más adelante en este documento.
Revisar las opciones de almacenamiento
Google Cloud ofrece servicios de almacenamiento para todos los formatos de almacenamiento principales: en bloques, de archivos, de sistemas de archivos paralelos y de objetos. En la siguiente tabla se describen las opciones que puedes tener en cuenta para tu carga de trabajo de IA y aprendizaje automático enGoogle Cloud. La tabla incluye las tres opciones de almacenamiento gestionadas por Google en las que se centra este documento para tus cargas de trabajo de IA y aprendizaje automático. Sin embargo, si tienes requisitos específicos que no se cumplen con estas ofertas, puedes usar las soluciones de almacenamiento gestionadas por partners 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 paralelo |
|
Cloud Storage | Objeto |
|
Hyperdisk ML | Bloquear |
|
Managed Lustre
Lustre gestionado es un sistema de archivos totalmente gestionado en Google Cloud. Managed Lustre proporciona instancias zonales persistentes que se basan en el sistema de archivos Lustre DDN EXAScaler. Managed Lustre es ideal para cargas de trabajo de IA y aprendizaje automático que necesitan proporcionar un acceso de baja latencia de menos de un milisegundo con un alto rendimiento y un alto número de operaciones de entrada/salida por segundo (IOPS). Managed Lustre puede mantener un alto rendimiento y un alto número de IOPS para unas pocas máquinas virtuales o para miles de ellas.
Managed Lustre ofrece las siguientes ventajas:
- Cumplimiento de POSIX: compatibilidad con el estándar POSIX, que ayuda a garantizar la compatibilidad con muchas aplicaciones y herramientas.
- Menor coste total de propiedad para el entrenamiento: acelera el tiempo de entrenamiento proporcionando datos de forma eficiente a los nodos de cálculo. Esta aceleración ayuda a reducir el coste total de propiedad del entrenamiento de modelos de IA y aprendizaje automático.
- Reducción del CTP de las solicitudes: permite cargar modelos más rápido y optimizar las solicitudes de inferencia en comparación con Cloud Storage. Estas funciones ayudan a reducir los costes de computación 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. Esta utilización de recursos ayuda a maximizar el uso eficiente del rendimiento de lectura y escritura en un único sistema de almacenamiento de alto rendimiento.
Cloud Storage
Cloud Storage es un servicio de almacenamiento de objetos totalmente gestionado que se adapta a cargas de trabajo de IA y aprendizaje automático de cualquier escala. Cloud Storage ofrece un rendimiento excelente a la hora de gestionar datos no estructurados en todas las fases del flujo de trabajo de IA y aprendizaje automático.
Cloud Storage ofrece las siguientes ventajas:
- Gran escalabilidad: obtén una capacidad de almacenamiento ilimitada que se adapta a exabytes a nivel mundial.
- Alto rendimiento: 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 aprendizaje automático.
- Rentabilidad: aprovecha una amplia gama de clases de almacenamiento diseñadas para optimizar los costes en función de tus patrones de acceso a los datos.
Cloud Storage destaca por su escalabilidad y rentabilidad, pero es importante tener en cuenta su latencia y sus características de E/S. La latencia será de decenas de milisegundos, lo que es superior a otras opciones de almacenamiento. Para maximizar el rendimiento, debes usar cientos o miles de subprocesos, archivos grandes y solicitudes de E/S grandes. Cloud Storage proporciona bibliotecas de 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 montar segmentos de Cloud Storage como unidades locales. Cloud Storage FUSE no es totalmente compatible con POSIX. Por lo tanto, es importante que conozcas las limitaciones de Cloud Storage FUSE y las diferencias con 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 ofrece las siguientes ventajas:
- Portabilidad: monta y accede a los segmentos de Cloud Storage mediante la semántica estándar del sistema de archivos, lo que hace que tus aplicaciones sean más portátiles.
- Compatibilidad: elimina la necesidad de refactorizar las aplicaciones para usar APIs específicas de la nube, lo que te ahorra tiempo y recursos.
- Tiempo de inactividad reducido: inicia los entrenamientos rápidamente accediendo directamente a los datos de Cloud Storage, lo que minimiza el tiempo de inactividad de tus GPUs y TPUs.
- Alto rendimiento: aprovecha la escalabilidad y el rendimiento integrados de Cloud Storage, que está optimizado para cargas de trabajo de aprendizaje automático con muchas lecturas y GPUs o TPUs.
- Local del cliente Caché de archivos: acelera el entrenamiento con una caché local del cliente que agiliza las lecturas repetidas de archivos. Este proceso se puede mejorar aún más si se usa con la SSD local de 6 TiB que se incluye con los tipos de máquina A3.
Anywhere Cache es una función de Cloud Storage que proporciona hasta 1 PiB de caché de lectura zonal basado en SSD para segmentos de Cloud Storage. Anywhere Cache se ha diseñado para acelerar las aplicaciones que requieren muchos datos proporcionando una capa local de acceso rápido para los datos que se leen con frecuencia en una zona específica.
Anywhere Cache ofrece las siguientes ventajas:
- Rendimiento acelerado: escala automáticamente la capacidad de la caché y el ancho de banda para ofrecer un alto rendimiento, superar las cuotas de ancho de banda regionales y proporcionar latencias coherentes y predecibles.
- Coste reducido: evita las tarifas de salida de transferencia de datos o las tarifas de recuperación de clases de almacenamiento de 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 bloques de alto rendimiento diseñada para acelerar las cargas de trabajo de IA y aprendizaje automático que requieren acceso de solo lectura a conjuntos de datos grandes. Hyperdisk ML aprovecha la escalabilidad y la disponibilidad de Colossus para equilibrar el rendimiento en el sistema de archivos subyacente. Hyperdisk ML es especialmente adecuado para tareas de servicio en comparación con otros servicios de almacenamiento en Google Cloud , ya que puede proporcionar un rendimiento agregado excepcionalmente alto de forma simultánea a muchas VMs.
Hyperdisk ML ofrece las siguientes ventajas:
- Servicio de modelos y escalabilidad acelerados: escala hasta miles de nodos simultáneos y consigue 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: consigue el mayor rendimiento disponible en Google Cloud y operaciones de lectura rápidas para grandes conjuntos de datos compartidos.
- Mejora del coste total de propiedad (TCO): reduce los costes con tiempos de inactividad de la GPU más cortos, funciones de conexión múltiple y agrupación del rendimiento.
- Acceso de solo lectura simultáneo: reduce los costes compartiendo discos entre máquinas virtuales, lo que resulta más rentable que tener varios discos con los mismos datos. Para acceder a datos estáticos desde varias máquinas virtuales, debes conectar el mismo disco en modo de solo lectura a cientos de máquinas virtuales. Para actualizar el volumen, el disco debe estar separado de todas las VMs excepto de una.
Soluciones de almacenamiento de partners
Si los servicios de almacenamiento anteriores no cumplen los requisitos de las cargas de trabajo, puedes usar las siguientes soluciones de partners, que están disponibles en Cloud Marketplace:
- Plataforma de almacenamiento de datos inteligente de Sycomp
- Plataforma de datos de WEKA
- Licencia de la plataforma de datos de VAST.
Google no gestiona estas soluciones de partners. Debes gestionar las tareas de implementación y operativas para garantizar una integración y un rendimiento óptimos en tu infraestructura.
Análisis comparativo
En la siguiente tabla se muestran las funciones clave de los servicios de almacenamiento deGoogle Cloud.
Managed Lustre | Cloud Storage | Hyperdisk ML | |
---|---|---|---|
Capacidad | 18 TiB - 8 PiB | No hay límite inferior ni superior. | 4 GiB - 64 TiB |
Escalado | No escalable | Se escala automáticamente en función del uso. | Escalar verticalmente |
Compartir | Se puede montar en varias máquinas virtuales de Compute Engine y clústeres de GKE. |
|
Compatible |
Opción de clave de cifrado | Google-owned and Google-managed encryption keys |
|
|
Persistencia | Tiempo de vida de la instancia de Managed Lustre. | Tiempo de vida del segmento | Tiempo de vida del disco |
Disponibilidad | Por zonas |
|
Por zonas |
Rendimiento | Escalado lineal con capacidad aprovisionada | Autoescalado de las tasas de lectura y escritura, y redistribución dinámica de la carga | Escalado dinámico de almacenamiento persistente |
Gestión | Totalmente gestionado y compatible con POSIX | Totalmente gestionado | Formatear y montar manualmente |
Herramientas de transferencia de datos
En esta sección se describen las opciones que tienes para mover datos entre servicios de almacenamiento enGoogle Cloud. Cuando realizas tareas de IA y aprendizaje automático, es posible que tengas que mover tus datos de una ubicación a otra. Por ejemplo, si tus datos están en Cloud Storage, puedes moverlos a otro lugar para entrenar el modelo y, después, copiar las capturas de los puntos de control o el modelo entrenado en Cloud Storage.
Puedes usar los siguientes métodos para transferir datos a Google Cloud:
- Transfiere datos online mediante el Servicio de transferencia de Storage: 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 on-premise. El Servicio de transferencia de Storage te permite copiar tus datos de forma segura desde la ubicación de origen a la de destino, así como realizar transferencias periódicas de los datos modificados. También ofrece validación de la integridad de los datos, reintentos automáticos y balanceo de carga.
- Transfiere datos sin conexión a Internet con Transfer Appliance: transfiere y carga grandes cantidades de datos sin conexión a Internet Google Cloud en situaciones en las que la conectividad de red y el ancho de banda no están disponibles, son limitados o son caros.
- Subir datos a Cloud Storage: sube datos online a segmentos de Cloud Storage mediante la Google Cloud consola Google Cloud , la CLI de gcloud, las APIs de Cloud Storage o las bibliotecas de cliente.
Cuando elijas un método de transferencia de datos, ten en cuenta factores como el tamaño de los datos, las limitaciones de tiempo, la disponibilidad de ancho de banda, los objetivos de costes y los requisitos de seguridad y cumplimiento. Para obtener información sobre cómo planificar e implementar transferencias de datos a Google Cloud, consulta Migrar a Google Cloud: transfiere tus grandes conjuntos de datos.
Elegir el almacenamiento adecuado
Las cargas de trabajo de IA y aprendizaje automático suelen incluir cuatro fases principales: preparación, entrenamiento, servicio y archivo. Cada una de estas fases tiene requisitos de almacenamiento únicos, y elegir la solución adecuada puede influir significativamente en el rendimiento, el coste y la eficiencia operativa. Un enfoque híbrido o optimizado localmente te permite adaptar tus opciones de almacenamiento a las demandas específicas de cada etapa de tu carga de trabajo de IA y aprendizaje automático. Sin embargo, si tu prioridad es la gestión unificada y la facilidad de uso, te puede resultar útil un enfoque simplificado a nivel global que utilice una solución coherente en todas las fases para cargas de trabajo de cualquier escala. La eficacia de la opción de almacenamiento depende de las propiedades del conjunto de datos, la escala de los recursos de computación y almacenamiento necesarios, la latencia y los requisitos de la carga de trabajo que hayas definido anteriormente.
En las siguientes secciones se ofrecen detalles sobre las fases principales de las cargas de trabajo de IA y aprendizaje automático, así como los factores que pueden influir en tu elección de almacenamiento.
Preparar
La fase de preparación sienta las bases de tu aplicación de IA y aprendizaje automático. Consiste en 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 de aprendizaje automático. Este proceso incluye tareas como la limpieza, el procesamiento y la conversión de tipos de datos para asegurar la compatibilidad con el framework de IA y aprendizaje automático que hayas elegido.
Cloud Storage es una solución adecuada para la fase de preparación debido a su escalabilidad, durabilidad y rentabilidad, sobre todo en el caso de los conjuntos de datos de gran tamaño habituales en la IA. Cloud Storage ofrece una integración perfecta con otros servicios deGoogle Cloud , lo que te permite aprovechar las posibles optimizaciones para el entrenamiento con gran cantidad de datos.
Durante la fase de preparación de los datos, puedes reorganizarlos en grandes bloques para mejorar la eficiencia del 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 el número de subprocesos de E/S mediante el uso de la canalización, la optimización del entrenamiento o ambas.
Tren
La fase de entrenamiento es el núcleo del desarrollo del modelo, donde tu modelo de IA y aprendizaje automático aprende de los datos proporcionados. Esta fase implica dos aspectos clave con requisitos distintos: la carga eficiente de datos para acceder a los datos de entrenamiento y la creación de puntos de control fiables para guardar el progreso del modelo. En las siguientes secciones se ofrecen 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 repetidamente lotes de datos para entrenar el modelo. En esta fase, puedes usar una caché para optimizar las tareas de carga de datos, en función del tamaño de los lotes y del orden en el que los solicites. El objetivo durante la carga de datos es entrenar el modelo con la máxima eficiencia, pero al menor coste posible.
Si el tamaño de los datos de entrenamiento es de petabytes, es posible que los datos tengan que volver a leerse varias veces. Para ello, se requiere un procesamiento intensivo por parte de una GPU o un acelerador de TPU. Sin embargo, debes asegurarte de que tus GPUs y TPUs no estén inactivos y de que procesen tus datos de forma activa. De lo contrario, pagarás por un acelerador caro e inactivo mientras copias los datos de una ubicación a otra.
Para optimizar el rendimiento y los costes de la carga de datos, tenga en cuenta los siguientes factores:
- Tamaño del conjunto de datos: el tamaño de tu corpus de datos de entrenamiento en general y el tamaño de cada conjunto de datos de entrenamiento.
- Patrones de acceso: ¿cuál de las siguientes opciones describe 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 totalmente aleatorio: un nodo puede leer cualquier intervalo de cualquier archivo para crear un lote.
- Tamaño del archivo: tamaños típicos de las solicitudes de lectura.
Managed Lustre para la carga de datos
Deberías elegir Managed Lustre para cargar tus datos si se cumple alguna de las siguientes condiciones:
- Tienes un requisito de capacidad de entrenamiento mínimo de 18 TiB.
- Tus datos de entrenamiento se componen de archivos pequeños de menos de 50 MB para aprovechar las funciones de baja latencia.
- Tienes un requisito de latencia de menos de 1 milisegundo para cumplir los requisitos de almacenamiento de E/aleatorias y acceso a metadatos.
- Necesitas una experiencia similar a la de un ordenador con compatibilidad total con POSIX para ver y gestionar los datos de tus usuarios.
Puedes usar Managed Lustre como caché de alto rendimiento sobre Cloud Storage para acelerar las cargas de trabajo de IA y aprendizaje automático que requieran operaciones de E/S de rendimiento extremadamente alto y baja latencia con un sistema de archivos paralelo totalmente gestionado. Para minimizar la latencia durante el entrenamiento, puedes importar datos a Lustre gestionado desde Cloud Storage. Si usas GKE como plataforma de computación, puedes usar el
Controlador CSI de Lustre gestionado por GKE para rellenar previamente PersistentVolumeClaims con datos de Cloud Storage. Una vez completado el entrenamiento, puedes minimizar los gastos de almacenamiento a largo plazo exportando tus datos a una clase de Cloud Storage de menor coste.
Cloud Storage para cargar datos
Por lo general, deberías elegir Cloud Storage para cargar tus datos si se cumple alguna de las siguientes condiciones:
- Tienes un requisito de capacidad de entrenamiento de 100 TiB o más.
- Sus datos de entrenamiento constan de archivos grandes de 50 MB o más.
- Priorizas la durabilidad de los datos y la alta disponibilidad por encima del 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 el rendimiento.
En el caso de las cargas de trabajo que requieren un rendimiento superior a 1 TB/s, Anywhere Cache acelera las velocidades de lectura almacenando datos en caché y superando las cuotas de ancho de banda regionales. 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.
Puntos de control y restauración
Para crear puntos de control y restaurar, las tareas de entrenamiento deben guardar periódicamente su estado para poder recuperarse rápidamente de los fallos de las instancias. Cuando se produce un fallo, los trabajos deben reiniciarse, ingerir el último punto de control y, a continuación, reanudar el entrenamiento. El mecanismo exacto que se usa para crear e ingerir 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 de TensorFlow Core, consulta Puntos de control de entrenamiento. Para obtener información sobre los puntos de control y las técnicas de optimización de PyTorch, consulta Guardar y cargar modelos.
Solo tienes que guardar unos cuantos puntos de control en un momento dado. Las cargas de trabajo de puntos de control suelen consistir principalmente en escrituras, varias eliminaciones y, lo ideal, lecturas poco frecuentes cuando se producen errores.
Para optimizar la creación de puntos de control y el rendimiento de la restauración, tenga en cuenta los siguientes factores:
- Tamaño del modelo: el número de parámetros que contiene tu modelo de IA y aprendizaje automático. El tamaño de tu modelo influye directamente en el tamaño de sus archivos de punto de control, que pueden oscilar entre GiB y TiB.
- Frecuencia de los puntos de control: la frecuencia con la que tu modelo guarda puntos de control. Los guardados frecuentes proporcionan una mejor tolerancia a fallos, pero aumentan los costes de almacenamiento y pueden afectar a la velocidad de entrenamiento.
- Tiempo de recuperación de puntos de control: el tiempo de recuperación que quieres que transcurra para cargar los puntos de control y reanudar el entrenamiento. Para minimizar el tiempo de recuperación, ten en cuenta 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
Deberías elegir Lustre gestionado para la creación de puntos de control si se cumple alguna de las siguientes condiciones:
- Tu carga de trabajo de entrenamiento ya usa Managed Lustre para cargar datos.
- Tienes que realizar comprobaciones de alto rendimiento con frecuencia.
Para maximizar la utilización de recursos y minimizar el tiempo de inactividad del acelerador, usa Lustre gestionado para el entrenamiento y la creación de puntos de control. Managed Lustre puede conseguir escrituras de puntos de control rápidas que logren un alto rendimiento por VM. Puedes conservar los puntos de control en la instancia de Lustre gestionada persistente o optimizar los costes exportando periódicamente los puntos de control a Cloud Storage.
Cloud Storage para crear puntos de control
Deberías elegir Cloud Storage para crear puntos de control si se cumple 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 encima del rendimiento del almacenamiento.
Para mejorar el rendimiento de la creación de puntos de control, usa Cloud Storage FUSE con los espacios de nombres jerárquicos habilitados para aprovechar la operación de cambio de nombre atómico rápido y guardar los puntos de control de forma asíncrona. Para evitar que se exponga accidentalmente información sensible de tu conjunto de datos de entrenamiento durante el servicio, debes almacenar los puntos de control en un segmento de Cloud Storage independiente. Para reducir las latencias de escritura de la parte final de las subidas detenidas, Cloud Storage FUSE intenta volver a realizar la operación después de 10 segundos.
Publicar
Cuando sirves 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 la TPU. El objetivo en la fase de servicio 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 sirves datos, es importante que tengas una alta disponibilidad y protección frente a fallos zonales y regionales. Por lo tanto, debe asegurarse de que su modelo esté disponible para varios escenarios de fallo.
En muchos casos prácticos de IA generativa y aprendizaje automático, los datos de entrada del modelo pueden ser bastante pequeños y no es necesario almacenarlos de forma persistente. En otros casos, puede que tengas que ejecutar grandes volúmenes de datos en el modelo (por ejemplo, conjuntos de datos científicos). Para procesar 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 de los modelos afectan directamente al tiempo de inactividad del acelerador, lo que conlleva costes considerables. El aumento del tiempo de carga del modelo por nodo puede amplificarse en muchos nodos, lo que puede provocar un aumento significativo de los costes. Por lo tanto, para conseguir una infraestructura de servicio rentable, es importante que optimices la carga rápida de modelos.
Para optimizar el rendimiento y el coste de la publicación, ten en cuenta los siguientes factores:
- Tamaño del modelo: el tamaño de tu modelo en GiB o TiB. Los modelos más grandes requieren más recursos computacionales y memoria, lo que puede aumentar la latencia.
- Frecuencia de carga del modelo: la frecuencia con la que tiene previsto actualizar el modelo. La carga y descarga frecuentes consumen recursos computacionales y aumentan la latencia.
- Número de nodos de servicio: cuántos nodos servirán tu modelo. Por lo general, cuantos más nodos haya, menor será la latencia y mayor el rendimiento, pero también aumentarán los costes de infraestructura.
Managed Lustre para el servicio
Deberías elegir Managed Lustre para publicar tu modelo si se cumple 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 Managed Lustre para el entrenamiento y la creación de puntos de control, puede ser una opción rentable y de alto rendimiento para servir tus modelos. Lustre gestionado ofrece un alto rendimiento por máquina virtual y un rendimiento de clúster agregado que ayuda a reducir el tiempo de carga del modelo. Puedes usar Managed Lustre en cualquier número de VMs en funcionamiento.
Cloud Storage para servir contenido
Deberías elegir Cloud Storage para publicar tu modelo si se cumple alguna de las siguientes condiciones:
- Necesitas una solución rentable para un entorno dinámico en el que pueda cambiar el número de nodos de inferencia.
- Haces cambios en el modelo con poca frecuencia.
- 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 frente a fallos zonales y regionales. Para acelerar la carga de modelos, puedes usar Cloud Storage FUSE con las descargas paralelas habilitadas para que las partes del modelo se obtengan en paralelo.
Para conseguir un servicio de modelos con un rendimiento superior a 1 TB/s o para implementaciones que superen los cien nodos de servicio, utiliza Anywhere Cache con un segmento multirregional. Esta combinación proporciona almacenamiento redundante de alto rendimiento en distintas regiones y flexibilidad. Anywhere Cache también elimina las tarifas de salida de datos y de recuperación de clases de almacenamiento de los datos almacenados en caché.
Hyperdisk ML para servir
Deberías elegir Hyperdisk ML para publicar tu modelo si se cumple alguna de las siguientes condiciones:
- Necesitas más de 100 nodos de inferencia.
- Haces cambios en el modelo con poca frecuencia.
- Tu carga de trabajo usa un tipo de VM admitido.
- Tu canalización puede gestionar volúmenes de solo lectura para almacenar modelos.
Optimiza el rendimiento del servicio usando Hyperdisk ML como caché de tus datos de Cloud Storage. Hyperdisk ML usa la agrupación de rendimiento compartido y la cantidad de datos provisionados dinámicamente en varias VMs para gestionar de forma eficiente el servicio de modelos de solo lectura a cualquier escala.
Archivar
La fase de archivo tiene un patrón de E/S de "escribir una vez, leer rara vez". Tu objetivo es almacenar los diferentes conjuntos de datos de entrenamiento y las diferentes versiones de los modelos que has generado. Puedes usar estas versiones incrementales de datos y modelos para crear copias de seguridad y recuperarte ante desastres. También debes guardar estos artículos en un lugar duradero durante un periodo prolongado. Aunque no necesites acceder a los datos y modelos con mucha frecuencia, quieres que los elementos estén disponibles cuando los necesites.
Gracias a su durabilidad extrema, su gran escala y su bajo coste, Cloud Storage es la mejor opción para almacenar datos de objetos durante un periodo prolongado.Google Cloud En función de la frecuencia con la que accedas al conjunto de datos, al modelo y a los archivos de copia de seguridad, Cloud Storage ofrece optimización de costes a través de diferentes clases de almacenamiento. Puedes seleccionar una clase de almacenamiento en función de la frecuencia con la que tienes previsto acceder a los datos archivados:
- Acceso frecuente a los datos: almacenamiento estándar
- Acceso mensual a los datos: Nearline Storage
- Acceso trimestral a los datos: Coldline Storage
- Acceso anual a los datos: Archive Storage
Con la gestión del ciclo de vida de los objetos, puedes crear políticas para mover automáticamente los datos a clases de almacenamiento a largo plazo o para eliminar datos según criterios específicos. Si no sabes con qué frecuencia vas a acceder a tus datos, puedes usar la función Clasificación automática para mover datos entre clases de almacenamiento automáticamente en función de tus patrones de acceso.
Siguientes pasos
Para obtener más información sobre las opciones de almacenamiento y las cargas de trabajo de IA y aprendizaje automático, consulta los siguientes recursos:
- Consulta cómo optimizar las cargas de trabajo de IA y aprendizaje automático con Managed Lustre.
- Consulta más información sobre cómo optimizar las cargas de trabajo de IA y aprendizaje automático con Cloud Storage FUSE.
- Consulta la perspectiva de la IA y el aprendizaje automático del Google Cloud marco de trabajo Well-Architected.
- Para ver más arquitecturas de referencia, diagramas y prácticas recomendadas, consulta el centro de arquitectura de Cloud.
Colaboradores
Autor: Samantha He | Redactora técnica
Otros colaboradores:
- David Stiver | Responsable de producto de grupo
- Dean Hildebrand | Director técnico de la oficina del CTO
- Kumar Dhanagopal | Desarrollador de soluciones entre productos
- Sean Derrington | Responsable de grupo de producto, almacenamiento