Cuando eliges los servicios de almacenamiento de Google Cloud para tus cargas de trabajo de inteligencia artificial (IA) y aprendizaje automático (AA), debes tener cuidado de lo siguiente: seleccionar la combinación correcta de opciones de almacenamiento para cada trabajo específico. Esta necesidad de una selección cuidadosa se aplica cuando subes tu conjunto de datos, entrenas y ajustas tu modelo, colocas el modelo en producción o almacenas el conjunto de datos y el modelo en un archivo. En resumen, debes seleccionar los mejores servicios de almacenamiento que proporcionen la latencia, la escala y el costo adecuados para cada etapa de las cargas de trabajo de IA y AA.
Para ayudarte a tomar decisiones bien fundamentadas, en este documento, se proporciona orientación de diseño sobre cómo integrar y usar la variedad de opciones de almacenamiento que ofrece Google Cloud para cargas de trabajo clave de IA y AA.
En la Figura 1, se muestra un resumen de las opciones de almacenamiento principales. Como se muestra en el diagrama, por lo general, eliges Cloud Storage cuando tienes tamaños de archivos más grandes, operaciones de entrada y salida por segundo (IOPS) más bajas o una latencia más alta. Sin embargo, cuando necesites IOPS más altos, tamaños de archivo más pequeños o una latencia más baja, elige Filestore.
Figura 1: consideraciones sobre el almacenamiento de la IA y el AA principales
Descripción general de las etapas de cargas de trabajo de IA y AA
Las cargas de trabajo de IA y AA constan de cuatro etapas principales: preparación, entrenamiento, entrega y archivo. Estas son las cuatro veces del ciclo de vida de una carga de trabajo de IA y AA en la que debes tomar una decisión sobre qué opciones de almacenamiento debes usar. En la mayoría de los casos, te recomendamos que continúes usando la misma opción de almacenamiento que seleccionas en la etapa de preparación para las etapas restantes. Seguir esta recomendación te ayuda a reducir la copia de conjuntos de datos entre los servicios de almacenamiento. Sin embargo, hay algunas excepciones a esta regla general, que se describen más adelante en esta guía.
Algunas soluciones de almacenamiento funcionan mejor que otras en cada etapa y es posible que deban combinarse con opciones de almacenamiento adicionales para obtener los mejores resultados. La eficacia de la elección de almacenamiento depende de las propiedades del conjunto de datos, el escalamiento de los recursos de procesamiento y almacenamiento necesarios, la latencia y otros factores. En la siguiente tabla, se describen las etapas y un breve resumen de las opciones de almacenamiento recomendadas para cada etapa. Para obtener una representación visual de esta tabla y detalles adicionales, consulta el árbol de decisión.
Tabla 1: recomendaciones de almacenamiento para las etapas y los pasos de las cargas de trabajo de IA y AA
Etapas | Pasos | Recomendaciones de almacenamiento |
---|---|---|
Preparación |
Preparación de datos
|
Cloud Storage
Filestore Zonal
|
Entrenamiento |
|
Cloud Storage
Cloud Storage con SSD local o Filestore
Filestore
|
|
Cloud Storage
Filestore Zonal
|
|
Entrega |
|
Cloud Storage
Filestore
|
Archivo |
|
Cloud Storage
|
Para obtener más detalles sobre las suposiciones subyacentes de esta tabla, consulta las siguientes secciones:
- Criterios
- Opciones de almacenamiento
- Asigna tus opciones de almacenamiento a las etapas de IA y AA
- Recomendaciones de almacenamiento para la IA y el AA
Criterios
Para limitar las opciones sobre qué opciones de almacenamiento usar en tus cargas de trabajo de IA y AA, comienza por responder estas preguntas:
- ¿Los tamaños de solicitud de E/S de IA y AA son pequeños, medianos o grandes?
- ¿Tus cargas de trabajo de IA y AA son sensibles a la latencia de E/S y el 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 GPU de Cloud o Cloud TPU que requiere tu carga de trabajo de entrenamiento de IA y AA más grande?
Además de responder las preguntas anteriores, también debes conocer las opciones de procesamiento y los aceleradores que puedes elegir para optimizar tus cargas de trabajo de IA y AA.
Consideraciones de la plataforma de Compute
Google Cloud admite tres métodos principales para ejecutar cargas de trabajo de IA y AA:
- Compute Engine: las máquinas virtuales (VM) admiten todos los servicios de almacenamiento administrado de Google y las ofertas de socios. Compute Engine proporciona compatibilidad con SSD locales, Persistent Disk, Cloud Storage y Cloud Storage FUSE., NetApp Volumes y Filestore. Para trabajos de entrenamiento a gran escala en Compute Engine, Google se asoció con SchedMD para entregar mejoras del programador de Slurm.
Google Kubernetes Engine (GKE): GKE es una plataforma para IA popular que se integra en frameworks, cargas de trabajo y herramientas de procesamiento de datos populares. GKE brinda asistencia paraSSD local ,volúmenes persistentes ,Cloud Storage FUSE yFilestore.
Vertex AI: es una plataforma de IA completamente administrada que proporciona una solución de extremo a extremo para las cargas de trabajo de IA y AA. Vertex AI admite ambos Cloud Storage ySistema de archivos de red (NFS) almacenamiento basado en archivos , como Filestore y NetApp Volumes.
Recomendamos usar Cluster Toolkit para Compute Engine y GKE para implementar clústeres repetibles y listos para usar que sigan las prácticas recomendadas de Google Cloud.
Consideraciones del acelerador
Cuando seleccionas opciones de almacenamiento para cargas de trabajo de IA y AA, también debes seleccionar las opciones de procesamiento del acelerador que sean adecuadas para tu tarea. Google Cloud admite dos opciones de acelerador: las GPU de Cloud de NVIDIA y las Google Cloud TPU de desarrollo personalizado. Ambos tipos de aceleradores son circuitos integrados específicos de la aplicación (ASIC) que se usan para procesar cargas de trabajo de aprendizaje automático de manera más eficiente que los procesadores estándar.
Existen algunas diferencias de almacenamiento importantes entre las GPU de Cloud y los aceleradores de Cloud TPU. Las instancias que usan GPU de Cloud admiten SSD locales con capacidad de procesamiento de almacenamiento remoto de hasta 200 GBps disponible. Los nodos y las VM de Cloud TPU no son compatibles con SSD locales y dependen exclusivamente del acceso al almacenamiento remoto.
Para obtener más información sobre los tipos de máquinas optimizados para aceleradores, consulta Familia de máquinas optimizadas para aceleradores. Para obtener más información sobre las GPU de Cloud, consulta Plataformas de GPU de Cloud. Para obtener más información sobre Cloud TPU, consulta Introducción a Cloud TPU. Para obtener más información sobre cómo elegir entre Cloud TPU y Cloud GPU, consulta Cuándo usar Cloud TPU.
Opciones de almacenamiento
Como se resumió antes en la Tabla 1, usa almacenamiento de objetos o almacenamiento de archivos con tus cargas de trabajo de IA y AA y, luego, complementa esta opción de almacenamiento con el almacenamiento en bloque. En la Figura 2, se muestran tres opciones típicas que puedes considerar cuando seleccionas la opción de almacenamiento inicial para tu carga de trabajo de IA y AA: Cloud Storage, Filestore y Google Cloud NetApp Volumes.
Figura 2: servicios de almacenamiento adecuados de IA y AA que ofrece Google Cloud
Si necesitas almacenamiento de objetos, elige Cloud Storage. Cloud Storage proporciona lo siguiente:
- Una ubicación de almacenamiento para datos y objetos no estructurados.
- API, como la API de JSON de Cloud Storage, para acceder a tus buckets de almacenamiento.
- Almacenamiento continuo para guardar tus datos.
- Capacidad de procesamiento de terabytes por segundo, pero requiere una latencia de almacenamiento más alta.
Si necesitas almacenamiento de archivos, tienes dos opciones, Filestore y NetApp Volumes, que ofrecen lo siguiente:
- Filestore
- Almacenamiento de archivos empresarial de alto rendimiento basado en NFS.
- Almacenamiento continuo para guardar tus datos.
- Baja latencia de almacenamiento y capacidad de procesamiento de 26 GBps.
- NetApp Volumes
- Almacenamiento de archivos compatible con NFS y el bloque de mensajes del servidor (SMB).
- Se puede administrar con la opción de usar la herramienta de software de almacenamiento ONTAP de NetApp.
- Almacenamiento continuo para guardar tus datos.
- Capacidad de procesamiento de 4.5 Gbps.
Usa las siguientes opciones de almacenamiento como primera opción para las cargas de trabajo de IA y AA:
Usa las siguientes opciones de almacenamiento para complementar tus cargas de trabajo de IA y AA:
Si necesitas transferir datos entre estas opciones de almacenamiento, puedes usar las herramientas de transferencia de datos.
Cloud Storage
Cloud Storage es un servicio de almacenamiento de objetos completamente administrado que se centra en la preparación de datos, el entrenamiento de modelos de IA, la entrega de datos, la creación de copias de seguridad y el archivo de datos no estructurados. Algunos de los beneficios de Cloud Storage son los siguientes:
- Capacidad de almacenamiento ilimitado que escala a exabytes de forma global
- Rendimiento de capacidad de procesamiento ultraalto
- Opciones de almacenamiento regionales y birregionales para cargas de trabajo de IA y AA
Cloud Storage escala la capacidad de procesamiento a terabytes por segundo y más allá, pero tiene una latencia relativamente más alta (decenas de milisegundos) que Filestore o un sistema de archivos local. La capacidad de procesamiento de subprocesos individuales se limita a alrededor de 100 a 200 MB por segundo, lo que significa que solo se puede lograr una alta capacidad de procesamiento mediante el uso de cientos o miles de subprocesos individuales. Además, la alta capacidad de procesamiento también requiere el uso de archivos grandes y solicitudes de E/S grandes.
Cloud Storage admite bibliotecas cliente en una variedad de lenguajes de programación, pero también es compatible con Cloud Storage FUSE. Cloud Storage FUSE te permite activar los buckets de Cloud Storage en tu sistema de archivos local. Cloud Storage FUSE permite que tus aplicaciones usen las APIs del sistema de archivos estándar para leer desde un bucket o escribir en un bucket. Puedes almacenar y acceder a tus datos de entrenamiento, modelos y puntos de control con el escalamiento, la asequibilidad y el rendimiento de Cloud Storage.
Para obtener más información sobre Cloud Storage, usa los siguientes recursos:
- Descripción general del producto de Cloud Storage
- Lineamientos de distribución de acceso y porcentaje de solicitudes
- Cloud Storage FUSE
- Rendimiento y prácticas recomendadas de Cloud Storage FUSE
Filestore
Filestore es un servicio de almacenamiento basado en archivos NFS completamente administrado. Los niveles de servicio de Filestore que se usan para las cargas de trabajo de IA y AA incluyen lo siguiente:
- Nivel empresarial: Se usa para cargas de trabajo esenciales que requieren disponibilidad regional.
- Nivel zonal: Se usa para aplicaciones de alto rendimiento que requieren disponibilidad zonal con altos requisitos de rendimiento de IOPS y capacidad de procesamiento.
- Nivel Básico: Se usa para el uso compartido de archivos, el desarrollo de software, el hosting web y las cargas de trabajo de IA y AA básicas.
Filestore ofrece un rendimiento de E/S de baja latencia. Es una buena opción para conjuntos de datos con requisitos de acceso de E/S pequeños o archivos pequeños. Sin embargo, Filestore también puede controlar casos de uso de E/S grandes o de archivos grandes según sea necesario. Filestore puede escalar verticalmente hasta un tamaño de aproximadamente 100 TB. Para las cargas de trabajo de entrenamiento de IA que leen datos de forma repetida, puedes mejorar la capacidad de procesamiento de lectura mediante FS-Cache con SSD locales.
Para obtener más información sobre Filestore, consulta la Descripción general de Filestore. Para obtener más información sobre los niveles de servicio de Filestore, consulta Niveles de servicio. Para obtener más información sobre el rendimiento de Filestore, consulta Optimiza y rendimiento de la instancia de prueba.
Google Cloud NetApp Volumes
NetApp Volumes es un servicio completamente administrado con funciones avanzadas de administración de datos que admite entornos NFS, SMB y multiprotocolo. NetApp Volumes admite baja latencia, volúmenes de varios tebibytes y gigabytes por segundo de capacidad de procesamiento.
Para obtener más información sobre NetApp Volumes, consulta ¿Qué es Google Cloud NetApp Volumes? Para obtener más información sobre el rendimiento de NetApp Volumes, consulta Rendimiento esperado.
Almacenamiento en bloque
Una vez que selecciones tu opción de almacenamiento principal, puedes usar el almacenamiento en bloque para complementar el rendimiento, transferir datos entre las opciones de almacenamiento y aprovechar las operaciones de baja latencia. Tienes dos opciones de almacenamiento con almacenamiento en bloque: SSD local y Persistent Disk.
SSD local
Las SSD locales proporcionan almacenamiento local directamente a una VM o un contenedor. La mayoría de los tipos de máquinas de Google Cloud que contienen GPU de Cloud incluyen cierta cantidad de SSD locales. Debido a que los discos SSD locales están conectados físicamente a las GPU de Cloud, proporcionan acceso de baja latencia con posibles millones de IOPS. En cambio, las instancias basadas en Cloud TPU no incluyen SSD locales.
Aunque la SSD local ofrece un alto rendimiento, cada instancia de almacenamiento es efímera. Por lo tanto, los datos almacenados en una unidad SSD local se pierden cuando detienes o borras la instancia. Debido a la naturaleza efímera de la SSD local, considera otros tipos de almacenamiento cuando tus datos requieran una mejor durabilidad.
Sin embargo, cuando la cantidad de datos de entrenamiento es muy pequeña, es común copiar los datos de entrenamiento de Cloud Storage a la SSD local de una GPU. El motivo es que la SSD local proporciona menor latencia de E/S y reduce el tiempo de entrenamiento.
Para obtener más información sobre las SSD locales, consulta Información sobre las SSD locales. Para obtener más información sobre la cantidad de capacidad de SSD local disponible con los tipos de instancias de GPU de Cloud, consulta Plataformas de GPU.
Persistent Disk
Persistent Disk es un servicio de almacenamiento en bloque de red con un conjunto integral de funciones de administración y persistencia de datos. Además de su uso como disco de arranque, puedes usar Persistent Disk con cargas de trabajo de IA, como almacenamiento temporal. Persistent Disk está disponible en las siguientes opciones:
- Estándar, que proporciona un almacenamiento en bloque eficiente y confiable.
- Equilibrado, que proporciona almacenamiento en bloque rentable y confiable.
- SSD, que proporciona un almacenamiento en bloque rápido y confiable.
- Extremo, que proporciona la opción de almacenamiento en bloque de mayor rendimiento con IOPS personalizables.
Para obtener más información sobre Persistent Disk, consulta Persistent Disk.
Herramientas de transferencia de datos
Cuando realizas tareas de IA y AA, hay momentos en los que necesitas copiar 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. También puedes realizar la mayoría de tus tareas en Filestore y, luego, mover tus datos y modelo a Cloud Storage para fines de archivo. En esta sección, se analizan las opciones para mover datos entre servicios de almacenamiento en Google Cloud.
Servicio de transferencia de almacenamiento
Con el Servicio de transferencia de almacenamiento, puedes transferir tus datos entre Cloud Storage, Filestore y NetApp Volumes. Este servicio completamente administrado también te permite copiar datos entre el almacenamiento de archivos local y los repositorios de almacenamiento de objetos, el almacenamiento de Google Cloud y otros proveedores de servicios en la nube. 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.
Para obtener más información sobre el servicio de transferencia de almacenamiento, consulta ¿Qué es el servicio de transferencia de almacenamiento?
Interfaz de línea de comandos
Cuando mueves datos entre Filestore y Cloud Storage, debes usar Google Cloud CLI. Con gcloud CLI, puedes crear y administrar buckets y objetos de Cloud Storage con una capacidad de procesamiento óptima y un kit completo de comandos.
Asigna tus opciones de almacenamiento a las etapas de IA y AA
En esta sección, se expande el resumen proporcionado en la Tabla 1 para explorar las recomendaciones y la orientación específicas para cada etapa de una carga de trabajo de IA y AA. El objetivo es ayudarte a comprender los motivos de estas decisiones y seleccionar las mejores opciones de almacenamiento para cada etapa de IA y AA. Este análisis da como resultado tres recomendaciones principales que se exploran en la sección Recomendaciones de almacenamiento para la IA y el AA.
En la siguiente figura, se proporciona un árbol de decisión que muestra las opciones de almacenamiento recomendadas para las cuatro etapas principales de una carga de trabajo de IA y AA. El diagrama está seguido de una explicación detallada de cada etapa y las decisiones que puedes tomar en cada una.
Figura 3: opciones de almacenamiento para cada etapa de IA y AA
Prepárate
En esta etapa inicial, debes seleccionar si deseas usar Cloud Storage o Filestore como tu fuente persistente de información para tus datos. También puedes seleccionar posibles optimizaciones para el entrenamiento con uso intensivo de datos. Ten en cuenta que los diferentes equipos de la organización pueden tener diferentes tipos de cargas de trabajo y conjuntos de datos, que podrían ocasionar que esos equipos tomen decisiones de almacenamiento diferentes. Para satisfacer estas necesidades variadas, puedes mezclar y hacer coincidir tus opciones de almacenamiento entre Cloud Storage y Filestore según corresponda.
Cloud Storage para la etapa de preparación
- Tu carga de trabajo contiene archivos grandes de 50 MB o más.
- Tu carga de trabajo requiere IOPS más bajas.
Tu carga de trabajo puede tolerar una latencia de almacenamiento más alta en decenas de milisegundos.
Debes obtener acceso al conjunto de datos a través de las API de Cloud Storage o Cloud Storage FUSE y un subconjunto de las API de archivos.
Para optimizar tu carga de trabajo en Cloud Storage, puedes seleccionar el almacenamiento regional y colocar tu bucket en la misma región que tus recursos de procesamiento. Sin embargo, si necesitas mayor confiabilidad o si usas aceleradores ubicados en dos regiones diferentes, deberás seleccionar el almacenamiento birregional.
Filestore para la etapa de preparación
Debes seleccionar Filestore para preparar tus datos si se aplica alguna de las siguientes condiciones:
- Tu carga de trabajo contiene tamaños de archivo más pequeños de menos de 50 MB.
- Tu carga de trabajo requiere IOPS más altas.
- La carga de trabajo necesita una latencia más baja 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, los usuarios necesitan una experiencia similar a una computadora de escritorio con compatibilidad completa con POSIX.
- Tus usuarios deben realizar otras tareas, como el desarrollo de software.
Otras consideraciones para la etapa de preparación
Si te resulta difícil elegir una opción en esta etapa, considera los siguientes puntos para ayudarte a tomar tu decisión:
- Si deseas usar otros frameworks de IA y AA, como Dataflow, Spark o BigQuery en el conjunto de datos, Cloud Storage es una opción lógica debido a la integración personalizada que tiene con estos tipos de frameworks.
- Filestore tiene una capacidad máxima de aproximadamente 100 TB. Si necesitas entrenar tu modelo con conjuntos de datos de mayor tamaño o si no puedes dividir el conjunto en varias instancias de 100 TB, Cloud Storage es una mejor opción.
Durante la fase de preparación de datos, muchos usuarios organizan sus 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, muchos usuarios usan la canalización, la optimización de entrenamiento para aumentar la cantidad de subprocesos de E/S o ambos.
Tren
En la etapa de entrenamiento, por lo general, debes volver a usar la opción de almacenamiento principal que seleccionaste para la etapa de preparación. Si el almacenamiento principal no puede manejar solo la carga de trabajo de entrenamiento, es posible que debas complementar el almacenamiento principal. Puedes agregar almacenamiento complementario según sea necesario, como SSD locales, para balancear la carga de trabajo.
Además de proporcionar recomendaciones para usar Cloud Storage o Filestore en esta etapa, en esta sección también se proporcionan más detalles sobre estas recomendaciones. Los detalles incluyen lo siguiente:
- Orientación sobre los tamaños de archivo y de solicitud
- Sugerencias sobre cuándo complementar tu elección de almacenamiento principal
- Una explicación de los detalles de implementación para las dos cargas de trabajo clave en esta etapa: carga de datos y puntos de control y reinicio
Cloud Storage para la etapa de entrenamiento
Los motivos principales para seleccionar Cloud Storage cuando entrenas tus datos incluyen los siguientes:
- Si usas Cloud Storage cuando preparas tus datos, es mejor entrenarlos en Cloud Storage.
- Cloud Storage es una buena opción para la capacidad de procesamiento, las cargas de trabajo que no requieren una alta capacidad de procesamiento de una sola VM o las que usan muchos subprocesos para aumentar la capacidad de procesamiento según sea necesario.
Cloud Storage con SSD local o Filestore para la etapa de entrenamiento
El motivo principal para seleccionar Cloud Storage con SSD local o Filestore cuando entrenas tus datos se produce cuando necesitas admitir solicitudes de E/S pequeñas o archivos pequeños. En este caso, puedes complementar tu tarea de entrenamiento de Cloud Storage si mueves algunos de los datos a la SSD local o Filestore Zonal.
Filestore para la etapa de entrenamiento
Los motivos principales para seleccionar Filestore cuando entrenas tus datos incluyen los siguientes:
- Si usas Filestore cuando preparas tus datos, en la mayoría de los casos, deberías continuar entrenando tus datos en Filestore.
- Filestore es una buena opción para baja latencia, alta capacidad de procesamiento por cliente y aplicaciones que usan una cantidad baja de subprocesos, pero que aún requieren alto rendimiento.
- Si necesitas complementar tus tareas de entrenamiento en Filestore, considera crear una caché SSD local según sea necesario.
Tamaños de archivo y tamaños de solicitudes
Una vez que el conjunto de datos esté listo para el entrenamiento, hay dos opciones principales que pueden ayudarte a evaluar las diferentes opciones de almacenamiento.
- Conjuntos de datos que contienen archivos grandes y a los que se accede con tamaños de solicitudes grandes
- Conjuntos de datos que contienen archivos de tamaño pequeño a mediano o a los que se accede con tamaños de solicitudes pequeños
Conjuntos de datos que contienen archivos grandes y a los que se accede con tamaños de solicitudes grandes
En esta opción, el trabajo de entrenamiento consta principalmente de archivos más grandes de 50 MB o más. El trabajo de entrenamiento transfiere los archivos con 1 MB a 16 MB por solicitud. Por lo general, recomendamos Cloud Storage con Cloud Storage FUSE para esta opción, ya que los archivos son lo suficientemente grandes como para que Cloud Storage pueda mantener los aceleradores proporcionados. Recuerda que puedes necesitar cientos o miles de subprocesos para lograr el máximo rendimiento con esta opción.
Sin embargo, si necesitas API de POSIX completas para otras aplicaciones o tu carga de trabajo no es apropiada para la gran cantidad de subprocesos necesarios, Filestore es una buena alternativa.
Conjuntos de datos que contienen archivos de tamaño pequeño a mediano o a los que se accede con tamaños de solicitudes pequeños
Con esta opción, puedes clasificar tu trabajo de entrenamiento de dos maneras:
- Muchos archivos pequeños a medianos de menos de 50 MB.
- Un conjunto de datos con archivos más grandes, pero los datos se leen de forma secuencial o aleatoria con tamaños de solicitudes de lectura relativamente pequeños (por ejemplo, menos de 1 MB). Un ejemplo de este caso práctico es cuando el sistema lee menos de 100 KB a la vez desde un archivo de varios gigabytes o varios terabytes.
Si ya usas Filestore para sus capacidades de POSIX, te recomendamos que mantengas los datos en Filestore para el entrenamiento. Filestore ofrece acceso de baja latencia de E/S a los datos. Esta latencia más baja puede reducir el tiempo de entrenamiento general y puede reducir el costo de entrenamiento de tu modelo.
Si usas Cloud Storage para almacenar tus datos, te recomendamos que los copies en SSD local o Filestore antes del entrenamiento.
Carga de datos
Durante la carga de datos, las GPU de Cloud o Cloud TPU importan lotes de datos varias veces para entrenar el modelo. Esta fase puede ser compatible con la caché, según el tamaño de los lotes y el orden en el que los solicitas. En este punto, tu objetivo 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 de Cloud y Cloud TPU no estén inactivas, pero procesen los datos de forma activa. De lo contrario, pagas por un costoso acelerador inactivo mientras copias los datos de una ubicación a otra.
Para la carga de datos, considera lo siguiente:
- Paralelismo: existen varias formas de paralelizar el entrenamiento y cada una puede tener un impacto en el rendimiento general del almacenamiento requerido y la necesidad de almacenamiento en caché. datos localmente en cada instancia.
- Cantidad máxima de GPU de Cloud o Cloud TPU para un solo trabajo de entrenamiento: a medida que aumenta la cantidad de aceleradores y VM, el impacto en el sistema de almacenamiento puede ser significativo y podría ser significativo puede generar mayores costos si las GPU de Cloud o Cloud TPU están inactivas. Sin embargo, existen maneras de minimizar los costos a medida que aumentas la cantidad de aceleradores. Según el tipo de paralelismo que uses, puedes minimizar los costos mediante el aumento de los requisitos de capacidad de procesamiento de lectura agregados que se necesitan para evitar los aceleradores inactivos.
Para admitir estas mejoras en Cloud Storage o Filestore, debes agregar SSD local a cada instancia para poder descargar E/S del sistema de almacenamiento sobrecargado.
Sin embargo, la precarga de datos en la SSD local de cada instancia desde Cloud Storage tiene sus propios desafíos. Corres el riesgo de incurrir en mayores costos por los aceleradores inactivos mientras se transfieren los datos. Si los tiempos de transferencia de datos y los costos de inactividad del acelerador son altos, es posible que puedas reducir los costos si usas Filestore con SSDs locales en su lugar.
- Cantidad de GPU de Cloud por instancia: cuando implementas más GPU de Cloud en cada instancia, puedes aumentar la capacidad de procesamiento de las GPU entre nubes con NVLink. Sin embargo, la capacidad de procesamiento de las redes de SSD locales y almacenamiento disponibles no siempre aumenta de forma lineal.
- Optimizaciones de almacenamiento y de aplicaciones: las opciones y aplicaciones de almacenamiento tienen requisitos de rendimiento específicos para poder ejecutarse de manera óptima. Asegúrate de equilibrar estos requisitos de almacenamiento y de sistema de aplicaciones con las optimizaciones de carga de datos, como mantener las GPU de Cloud o Cloud TPU ocupadas y funcionar de manera eficiente.
Puntos de control y reinicio
Para puntos de control y reinicio, 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, como TensorFlow o PyTorch. Algunos usuarios compilaron frameworks complejos para aumentar la eficiencia de los puntos de control. Estos frameworks complejos les permiten realizar un punto de control con mayor frecuencia.
Sin embargo, la mayoría de los usuarios suelen usar almacenamiento compartido, como Cloud Storage o Filestore. Cuando guardas puntos de control, solo necesitas guardar de tres a cinco 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. Durante la recuperación, el patrón de E/S incluye escrituras intensivas y frecuentes, eliminaciones frecuentes y lecturas frecuentes del punto de control.
También debes considerar el tamaño del punto de control que cada GPU o TPU debe crear. El tamaño del punto de control determina la capacidad de procesamiento de escritura que se requiere para completar el trabajo de entrenamiento de manera rentable y oportuna.
Para minimizar los costos, considera aumentar los siguientes elementos:
- La frecuencia de los puntos de control
- La capacidad de procesamiento de escritura agregada que se requiere para los puntos de control
- Eficiencia del reinicio
Entregar
Cuando entregas tu modelo, que también se conoce como inferencia de IA, el patrón de E/S principal es de solo lectura para cargar el modelo en las GPU de Cloud o en la memoria de Cloud TPU. Tu objetivo en esta etapa es ejecutar el modelo en producción. El modelo es mucho más pequeño que los datos de entrenamiento, por lo que puedes replicar y escalar el modelo en varias instancias. La alta disponibilidad y la protección contra fallas zonales y regionales son importantes en esta etapa, por lo que debes asegurarte de que tu modelo esté disponible para una variedad de situaciones de falla.
En muchos casos de uso de IA generativa, 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). En este caso, debes seleccionar una opción que pueda mantener las GPU de Cloud o Cloud TPU proporcionadas durante el análisis del conjunto de datos, así como seleccionar una ubicación persistente para almacenar los resultados de la inferencia.
Cuando entregas tu modelo, hay dos opciones principales.
Cloud Storage para la etapa de entrega
Los motivos principales para seleccionar Cloud Storage cuando se entregan tus datos incluyen los siguientes:
- Cuando entrenas tu modelo en Cloud Storage, puedes ahorrar en costos de migración si dejas el modelo en Cloud Storage cuando lo entregas.
- Puedes guardar el contenido generado en Cloud Storage.
- Cloud Storage es una buena opción cuando la inferencia de IA se produce en varias regiones.
- Puedes usar buckets birregionales y multirregionales para proporcionar disponibilidad del modelo en fallas regionales.
Filestore para la etapa de entrega
Los motivos principales para seleccionar Filestore cuando se entregan tus datos incluyen los siguientes:
- Cuando entrenas tu modelo en Filestore, puedes ahorrar en costos de migración si dejas el modelo en Filestore cuando lo entregas.
- Debido a que su Acuerdo de Nivel de Servicio (ANS) proporciona una disponibilidad del 99.99 %, el nivel de servicio de Filestore Enterprise es una buena opción para la alta disponibilidad cuando deseas entregar tu modelo entre varias zonas de una región.
- Los niveles de servicio Zonal de Filestore pueden ser una opción razonable de menor costo, pero solo si la alta disponibilidad no es un requisito para tu carga de trabajo de IA y AA.
- Si necesitas recuperación entre regiones, puedes almacenar el modelo en una ubicación de copia de seguridad remota o en un bucket de Cloud Storage remoto y, luego, restablecer el modelo según sea necesario.
- Filestore ofrece una opción duradera y con alta disponibilidad que otorga acceso de baja latencia a tu modelo cuando generas archivos pequeños o necesitas API de archivos.
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 amplia y bajo costo, la mejor 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 con los siguientes enfoques:
- Coloca los datos a los que accedes con frecuencia en Standard Storage.
- Mantén los datos a los que accedes mensualmente en Nearline Storage.
- Almacena los datos a los que accedes cada tres meses en Coldline Storage.
- Conserva los datos a los que accedes una vez al año en Archive Storage.
Con la administración del ciclo de vida de los objetos, puedes crear políticas para mover datos a clases de almacenamiento más en frío o borrar datos según criterios específicos. Si no estás seguro de la frecuencia con la que accederás a tus datos, puedes usar elAutoclass para mover datos entre clases de almacenamiento de forma automática, según tu patrón de acceso.
Si tus datos están en Filestore, suele ser conveniente mover los datos a Cloud Storage para fines de archivo. Sin embargo, puedes proporcionar protección adicional para tus datos de Filestore si creas copias de seguridad de Filestore en otra región. También puedes tomar instantáneas de Filestore para la recuperación del sistema de archivos y los archivos locales. Para obtener más información sobre las copias de seguridad de Filestore, consulta Descripción general de las copias de seguridad. Para obtener más información sobre las instantáneas de Filestore, consulta Descripción general de las instantáneas.
Recomendaciones de almacenamiento para la IA y el AA
En esta sección, se resume el análisis proporcionado en la sección anterior, Asigna tus opciones de almacenamiento a las etapas de IA y AA. Se proporcionan detalles sobre las tres combinaciones de opciones de almacenamiento principal que recomendamos para la mayoría de las cargas de trabajo de IA y AA. Las tres opciones son las siguientes:
- Selecciona Cloud Storage
- Selecciona Cloud Storage y SSD local o Filestore
- Selecciona Filestore y SSD local opcional
Selecciona Cloud Storage
Cloud Storage proporciona la oferta de almacenamiento de menor costo por capacidad en comparación con todas las demás ofertas de almacenamiento. Escala a una gran cantidad de clientes, proporciona accesibilidad y disponibilidad regionales y birregionales y se puede acceder a él a través de Cloud Storage FUSE. Debes seleccionar el almacenamiento regional cuando tu plataforma de procesamiento para el entrenamiento se encuentre en la misma región y elegir el almacenamiento birregional si necesitas mayor confiabilidad o usar GPU de Cloud o Cloud TPU ubicadas en dos regiones diferentes.
Cloud Storage es la mejor opción para la retención de datos a largo plazo y para cargas de trabajo con requisitos de rendimiento de almacenamiento menores. Sin embargo, otras opciones, como Filestore y la SSD local son alternativas valiosas en casos específicos en los que necesitas compatibilidad completa con POSIX o Cloud Storage se convierte en un cuello de botella de rendimiento.
Selecciona Cloud Storage con SSD local o Filestore
Para el entrenamiento con uso intensivo de datos o el punto de control y el reinicio de las cargas de trabajo, puede tener sentido usar una oferta de almacenamiento más rápida durante la fase de entrenamiento intensiva de E/S. Las opciones típicas incluyen copiar los datos en una SSD local o en Filestore. Esta acción reduce el entorno de ejecución general del trabajo, ya que mantiene las GPU de Cloud o Cloud TPU suministradas con los datos y evita que las instancias se detengan mientras se completan las operaciones de punto de control. Además, cuanto más seguido crees puntos de control, más puntos de control tendrás disponibles como copias de seguridad. Este aumento en la cantidad de copias de seguridad también aumenta la frecuencia general a la que llegan los datos útiles (también conocido como goodput). Esta combinación de optimización de los procesadores y aumento de Goodput reduce los costos generales de entrenamiento de tu modelo.
Hay compensaciones que debes tener en cuenta cuando uses SSD locales o Filestore. En la siguiente sección, se describen algunas ventajas y desventajas para cada uno.
Ventajas de los SSD locales
- Alta capacidad de procesamiento e IOPS una vez que se transfieren los datos
- Costo adicional de bajo a mínimo
Desventajas de SSD locales
- Las GPU de Cloud o Cloud TPU permanecen inactivas mientras se cargan los datos.
- La transferencia de datos debe ocurrir en cada trabajo de cada instancia.
- Solo está disponible para algunos tipos de instancias de GPU de Cloud.
- Proporciona capacidad de almacenamiento limitada.
- Admite puntos de control, pero debes transferirlos de forma manual a una opción de almacenamiento duradero, como Cloud Storage.
Ventajas de Filestore
- Proporciona almacenamiento NFS compartido que permite que los datos se transfieran una vez y, luego, se compartan entre varios trabajos y usuarios.
- No hay tiempo de GPU de Cloud inactivas o Cloud TPU porque los datos se transfieren antes de que pagues por las GPU de Cloud o Cloud TPU.
- Tiene una capacidad de almacenamiento grande.
- Admite puntos de control rápidos para miles de VM.
- Admite GPU de Cloud, Cloud TPU y todos los demás tipos de instancias de Compute Engine.
Desventajas de Filestore
- Costo por adelantado alto; pero la mayor eficiencia del procesamiento puede reducir los costos generales del entrenamiento.
Selecciona Filestore con SSD local opcional
Filestore es la mejor opción para cargas de trabajo de IA y AA que necesitan baja latencia y compatibilidad completa con POSIX. Además de ser la opción recomendada para archivos pequeños o trabajos de entrenamiento de E/S pequeños, Filestore puede ofrecer una experiencia responsiva para los notebooks de IA y AA, el desarrollo de software y muchas otras aplicaciones. También puedes implementar Filestore en una zona para un entrenamiento de alto rendimiento y almacenamiento persistente de puntos de control. La implementación de Filestore en una zona también ofrece un reinicio rápido ante fallas. Como alternativa, puedes implementar Filestore de forma regional para admitir trabajos de inferencia con alta disponibilidad. La adición opcional de FS-Cache para admitir el almacenamiento en caché SSD local permite lecturas repetidas rápidas de los datos de entrenamiento para optimizar las cargas de trabajo.
¿Qué sigue?
Para obtener más información sobre las opciones de almacenamiento y la IA y el AA, consulta los siguientes recursos:
- Diseña una estrategia de almacenamiento óptima para tu carga de trabajo en la nube
- Descripción general del producto de Cloud Storage
- Cloud Storage FUSE
- Descripción general de Filestore
- Acerca de las SSD locales
- Descripción general del Servicio de transferencia de almacenamiento
- Introducción a Vertex AI
- Extiende la accesibilidad de la red de Vertex AI Pipelines
- Video: Accede a un conjunto de datos más grande de forma más rápida y fácil para acelerar el entrenamiento de tus modelos de AA en Vertex AI | Google Cloud
- Cloud Storage como un sistema de archivos en el entrenamiento de IA
- Lectura y almacenamiento de datos para el entrenamiento de modelos personalizados en Vertex AI | Blog de Google Cloud
Colaboradores
Autores:
- Dean HildeBrand | Director técnico, oficina del director de Tecnología
- Sean Derrington | Gerente de productos salientes del grupo
- Richard Hendricks | Personal del centro de arquitectura
Otro colaborador: Kumar Dhanagopal | Desarrollador de soluciones entre productos