- Los datos de entrenamiento se envían a tu tarea de entrenamiento en lugar de descargarse en réplicas, lo que puede acelerar la carga de datos y las tareas de configuración cuando la tarea empieza a ejecutarse.
- Los trabajos de entrenamiento pueden gestionar entradas y salidas a gran escala sin hacer llamadas a la API, gestionar respuestas ni integrarse con bibliotecas del lado del cliente.
- Cloud Storage FUSE ofrece un alto rendimiento para lecturas secuenciales de archivos grandes y en escenarios de entrenamiento distribuido.
Casos prácticos
Recomendamos usar Cloud Storage para almacenar datos de entrenamiento en las siguientes situaciones:
- Tus datos de entrenamiento son datos no estructurados, como imágenes, texto y vídeo.
- Los datos de entrenamiento son datos estructurados en un formato como TFRecord.
- Tus datos de entrenamiento contienen archivos grandes, como vídeos sin editar.
- Usas el entrenamiento distribuido.
Cómo funciona
Los trabajos de entrenamiento personalizados pueden acceder a tus segmentos de Cloud Storage como subdirectorios del directorio raíz /gcs
. Por ejemplo, si los datos de entrenamiento se encuentran en
gs://example-bucket/data.csv
, puede leer y escribir en el contenedor desde su aplicación de entrenamiento de Python de la siguiente manera:
Leer en el segmento
with open('/gcs/example-bucket/data.csv', 'r') as f:
lines = f.readlines()
Escribir en el contenedor
with open('/gcs/example-bucket/epoch3.log', 'a') as f:
f.write('success!\n')
Permisos de acceso a segmentos
De forma predeterminada, una tarea de entrenamiento personalizada puede acceder a cualquier bucket de Cloud Storage del mismo proyecto Google Cloud mediante el agente de servicio de código personalizado de Vertex AI. Para controlar el acceso a los contenedores, puedes asignar una cuenta de servicio personalizada al trabajo. En este caso, el acceso a un segmento de Cloud Storage se concede en función de los permisos asociados a los roles de Cloud Storage de la cuenta de servicio personalizada.
Por ejemplo, si quieres dar al trabajo de entrenamiento personalizado acceso de lectura y escritura al segmento A, pero solo acceso de lectura al segmento B, puedes asignar al trabajo una cuenta de servicio personalizada que tenga los siguientes roles:
roles/storage.objectAdmin
para el segmento Aroles/storage.objectViewer
para el segmento B
Si el trabajo de entrenamiento intenta escribir en el contenedor B, se devuelve un error de "permiso denegado".
Para obtener más información sobre los roles de Cloud Storage, consulta Roles de gestión de identidades y accesos para Cloud Storage.
Prácticas recomendadas
- No cambies el nombre de los directorios. Las operaciones de cambio de nombre no son atómicas en Cloud Storage FUSE. Si la operación se interrumpe, algunos archivos permanecerán en el directorio antiguo.
- Evita cerrar (
close()
) o vaciar archivos (flush()
) innecesariamente. Al cerrar o vaciar archivos, estos se envían a Cloud Storage, lo que conlleva un coste.
Directrices de optimización del rendimiento
Para obtener un rendimiento de lectura óptimo al usar Cloud Storage como sistema de archivos, te recomendamos que sigas estas directrices:
- Para reducir la latencia que se produce al buscar y abrir objetos en un contenedor, almacena los datos en archivos más grandes y en menor cantidad.
- Usa el entrenamiento distribuido para maximizar el uso del ancho de banda.
- Almacena en caché los archivos a los que se accede con frecuencia para mejorar el rendimiento de lectura. Para obtener más información, consulta la descripción general del almacenamiento en caché en Cloud Storage FUSE.
- Usa el almacenamiento local para los puntos de control y los registros en lugar de Cloud Storage.
Limitaciones
Para obtener información sobre las limitaciones de Cloud Storage FUSE, incluidas las diferencias entre Cloud Storage FUSE y los sistemas de archivos POSIX, consulta Limitaciones y diferencias con respecto a los sistemas de archivos POSIX.
Usar Cloud Storage FUSE
Para usar Cloud Storage FUSE en el entrenamiento personalizado, haz lo siguiente:
- Crea un segmento de Cloud Storage. Ten en cuenta que los contenedores birregionales y multirregionales no se admiten en el entrenamiento personalizado.
Sube tus datos de entrenamiento al segmento. Para obtener más información, consulta la sección Subidas.
Para obtener información sobre otras opciones para transferir datos a Cloud Storage, consulta Opciones de transferencia de datos.
Siguientes pasos
- Consulta la documentación de Cloud Storage FUSE.
- Consulta información sobre los precios de Cloud Storage FUSE.
- Prepara tu aplicación de entrenamiento para usarla en Vertex AI.