La elección que hagas dependerá de muchos factores.
Cloud Storage como sistema de archivos montado (Cloud Storage FUSE)
Te recomendamos que uses Cloud Storage como sistema de archivos montado (Cloud Storage FUSE) por los siguientes motivos:
- Cuando los datos de entrenamiento no están estructurados, como imágenes, texto o vídeo, Cloud Storage es una opción natural para almacenar este tipo de archivos grandes y, a menudo, individuales.
- Cuando los datos de entrenamiento se estructuran en formatos como TFRecord, se suele usar Cloud Storage para estos formatos específicos de aprendizaje automático.
- Cuando trabajas con archivos muy grandes, Cloud Storage FUSE transmite los datos a tu tarea de entrenamiento en lugar de requerir que se descargue todo el archivo en las réplicas. Esto puede reducir los tiempos de carga de datos y de inicio de trabajos en conjuntos de datos grandes.
- Al realizar el entrenamiento distribuido, Cloud Storage FUSE proporciona un alto rendimiento para las lecturas secuenciales de archivos grandes, lo que resulta útil en situaciones de entrenamiento distribuido en las que varios trabajadores necesitan acceder a los datos en paralelo.
- Cuando prefieras la comodidad de acceder a los datos de Cloud Storage como si fuera un sistema de archivos local sin tener que hacer llamadas a APIs explícitas en tu código de entrenamiento.
- Cuando tu necesidad principal es el almacenamiento escalable y no te preocupa tanto la latencia más baja para acceder aleatoriamente a numerosos archivos pequeños.
Específico de Ray en Vertex AI
- Puedes almacenar tus datos en segmentos de Cloud Storage a los que puede acceder Ray en Vertex AI.
- Ray puede leer datos directamente de Cloud Storage. Por ejemplo, al ejecutar Spark en Ray, puedes leer archivos de Cloud Storage.
- Vertex AI usa Cloud Storage FUSE para montar segmentos de Cloud Storage como sistemas de archivos locales en las tareas de entrenamiento que se ejecutan en Ray. De esta forma, tus aplicaciones de Ray pueden acceder a los datos como si estuvieran en un disco local mediante operaciones de entrada/salida de archivos estándar.
- Para obtener un rendimiento óptimo, te recomendamos que uses segmentos de Cloud Storage en la misma región en la que ejecutes tu clúster de Ray.
Más información
Recurso compartido de sistema de archivos de red (NFS)
- Cuando necesites un rendimiento muy alto y un acceso de baja latencia a archivos remotos, como si estuvieran almacenados localmente. Esto puede ser importante para determinados tipos de datos o interacciones complejas con archivos durante el entrenamiento.
- Cuando necesites que los archivos remotos estén disponibles para todos los nodos de un clúster de computación, como un clúster de Ray en Vertex AI.
- Cuando tu aplicación se beneficia de una interfaz de sistema de archivos más estándar con una conformidad con POSIX potencialmente mayor en comparación con Cloud Storage FUSE.
- Tienes una infraestructura NFS en tu nube privada virtual que quieres usar.
- Necesitas compartir archivos o directorios entre varios trabajos o clústeres con un acceso coherente y de baja latencia, y prefieres gestionar los permisos a nivel del sistema de archivos.
Específico de Ray en Vertex AI
- Puedes montar recursos compartidos NFS en tu clúster de Ray en Vertex AI para acceder a archivos remotos como si fueran locales.
- Esto resulta útil para acceder a sistemas de archivos compartidos con un alto rendimiento y una latencia baja.
- Puedes configurar montajes NFS al crear tu clúster de Ray con el SDK de Vertex AI para Python, especificando el servidor, la ruta y el punto de montaje. Una vez montado, tu código de Ray podrá leer y escribir en estos volúmenes NFS mediante operaciones de archivos estándar.
Más información
Conjunto de datos gestionado
- Gestión y control de datos centralizados: los conjuntos de datos gestionados proporcionan una ubicación central para organizar y gestionar tus conjuntos de datos en Vertex AI. Esto ayuda a hacer un seguimiento y a gestionar tus recursos de datos en diferentes proyectos y experimentos.
- Etiquetado de datos: puedes crear tareas de etiquetado y gestionar conjuntos de anotaciones directamente en el conjunto de datos gestionado.
- Seguimiento del linaje de datos: los conjuntos de datos gestionados registran automáticamente el linaje de sus datos en los modelos entrenados con ellos. Esto es fundamental para comprender las fuentes de datos que se usan en modelos específicos y para asegurar la reproducibilidad y la gobernanza.
- Comparación de modelos personalizados y de AutoML: los conjuntos de datos gestionados te permiten entrenar tanto modelos personalizados como modelos de AutoML con los mismos datos. De esta forma, se facilita la comparación directa de su rendimiento en el mismo conjunto de datos, lo que te ayuda a elegir el mejor enfoque para tu problema.
- Generar estadísticas y visualizaciones de datos: Vertex AI puede generar automáticamente estadísticas y visualizaciones de los datos de un conjunto de datos gestionado. Esto puede ayudarte a analizar los datos de forma exploratoria y a entender sus características.
- División automática de datos: cuando se usan conjuntos de datos gestionados en las canalizaciones de entrenamiento, Vertex AI puede dividir automáticamente los datos en conjuntos de entrenamiento, validación y prueba en función de las fracciones, los filtros, las divisiones predefinidas o las marcas de tiempo especificadas. De esta forma, se simplifica el proceso de preparación de los datos.
- Utilizar versiones de conjuntos de datos: los conjuntos de datos gestionados permiten crear versiones, lo que te permite hacer un seguimiento de los cambios que se producen en tus datos a lo largo del tiempo y volver a versiones anteriores si es necesario.
Específico de Ray en Vertex AI
- Si usas un conjunto de datos gestionado en una canalización de entrenamiento de Vertex AI que utiliza Ray para el entrenamiento distribuido, los datos del conjunto de datos gestionado se ponen a disposición de los contenedores de entrenamiento, a los que puede acceder tu aplicación Ray (a través de Cloud Storage o BigQuery montados si el conjunto de datos está vinculado a esas fuentes). Las variables de entorno
AIP_TRAINING_DATA_URI
,AIP_VALIDATION_DATA_URI
yAIP_TEST_DATA_URI
apuntarían a los datos.
Más información
BigQuery
- Al conectarse a datos en componentes de Vertex AI: muchas herramientas y servicios de Vertex AI se integran directamente con BigQuery. Puedes consultar datos de BigQuery desde JupyterLab. De esta forma, puedes interactuar directamente con tus datos de BigQuery para explorarlos, visualizarlos y desarrollar modelos sin necesidad de moverlos a otro sistema de almacenamiento.
- Al crear flujos de trabajo de entrenamiento: cuando crees flujos de trabajo de entrenamiento en Vertex AI, puedes usar datos directamente de BigQuery. Por ejemplo, una canalización puede obtener datos de BigQuery, preprocesarlos y, a continuación, entrenar un modelo.
- Flujos de procesamiento de entrenamiento de modelos continuos: para configurar el entrenamiento de modelos continuos, puedes activar ejecuciones de flujos de procesamiento en función de los nuevos datos que lleguen a una tabla de BigQuery. Esto permite automatizar el reentrenamiento de modelos. Puedes configurar un activador de Eventarc para iniciar una canalización cuando se inserte un nuevo trabajo en una tabla de BigQuery específica.
- Monitorización de modelos: BigQuery se puede usar como fuente para monitorizar la asimetría y la deriva de las funciones de los modelos implementados. Para la detección de sesgos, puedes especificar el URI de BigQuery de tu conjunto de datos de entrenamiento. Además, BigQuery puede almacenar los registros de los endpoints de inferencia online, que se pueden usar como fuente de datos para la monitorización continua. Para ello, lo ideal es que tu tabla de BigQuery tenga una columna de marca de tiempo.
- Integración con BigQuery ML: puedes usar conjuntos de datos de BigQuery cuando aproveches BigQuery ML para crear modelos de aprendizaje automático con SQL. Vertex AI Workbench permite realizar análisis exploratorios interactivos de datos de BigQuery y usar BigQuery ML en un entorno de cuaderno.
- Exploración y preparación de datos: antes del entrenamiento, puedes usar BigQuery para explorar y visualizar tus datos. También puedes transformar los datos con consultas SQL directamente en BigQuery antes de usarlos para el entrenamiento.
- Acceder a conjuntos de datos públicos: BigQuery aloja muchos conjuntos de datos públicos, como el conjunto de datos de viajes en taxi de Chicago, que puedes usar fácilmente para experimentar y entrenar en Vertex AI Workbench.
Específico de Ray en Vertex AI
- Ray en Vertex AI puede leer datos directamente de BigQuery. Puedes usar el SDK de Vertex AI para Python en una tarea de Ray para ejecutar consultas de BigQuery y materializar los resultados para usarlos en tus aplicaciones de Ray.
- Cuando leas datos de BigQuery, ten en cuenta que el tamaño máximo de la respuesta de la consulta es de 10 GB.
- También puedes escribir datos de tus aplicaciones de Ray en BigQuery mediante el SDK de Vertex AI para Python.
Más información
- Vertex AI para usuarios de BigQuery
- Crear un flujo de procesamiento para el entrenamiento continuo de modelos
- Usar Ray en Vertex AI con BigQuery