paint-brush
Las verdaderas razones por las que la IA se basa en el almacenamiento de objetospor@minio
7,293 lecturas
7,293 lecturas

Las verdaderas razones por las que la IA se basa en el almacenamiento de objetos

por MinIO6m2024/08/29
Read on Terminal Reader

Demasiado Largo; Para Leer

MinIO Object Store es el estándar de facto para lagos de datos masivos no estructurados. MinIO es compatible con todos los marcos de aprendizaje automático modernos. Es 100 % compatible con la API de S3, por lo que puede realizar cargas de trabajo de aprendizaje automático en su almacén de objetos local o en el dispositivo.
featured image - Las verdaderas razones por las que la IA se basa en el almacenamiento de objetos
MinIO HackerNoon profile picture

1. No hay límites para los datos no estructurados

Una configuración típica de entrenamiento de modelo de IA (nodo único) (PyTorch alimenta las GPU con datos del almacén de objetos)


En el paradigma actual del aprendizaje automático, el rendimiento y la capacidad se escalan con el cómputo, que en realidad es un indicador del tamaño del conjunto de datos y del tamaño del modelo ( Scaling Laws for Neural Language Models , Kaplan et. al.). En los últimos años, esto ha provocado cambios radicales en la forma en que se construye el aprendizaje automático y la infraestructura de datos, a saber: la separación del almacenamiento y el cómputo, la construcción de lagos de datos nativos de la nube masivos llenos de datos no estructurados y hardware especializado que puede realizar multiplicaciones de matrices muy rápido.


Cuando un conjunto de datos de entrenamiento, o incluso un fragmento individual de un conjunto de datos, requiere más espacio del que está disponible en la memoria del sistema o en el almacenamiento local, la importancia de desacoplar el almacenamiento del cómputo se hace evidente. Cuando se entrena con datos que residen en el almacén de objetos de MinIO, no hay límites para el tamaño de los datos de entrenamiento. Debido al enfoque de MinIO en la simplicidad y el rendimiento de E/S, es la red la que se convierte en el único factor limitante para la velocidad de entrenamiento y la utilización de la GPU.


Además de ofrecer el mejor rendimiento de cualquier almacén de objetos, MinIO es compatible con todos los marcos de aprendizaje automático modernos. El almacén de objetos MinIO también es 100 % compatible con la API de S3, por lo que puede realizar cargas de trabajo de aprendizaje automático en su almacén de objetos local o en el dispositivo utilizando utilidades de conjuntos de datos familiares como TorchData. Canal de datos S3 En caso de que su aplicación de consumo requiera capacidades similares a las del sistema de archivos, puede incluso usar MinIO con interfaces de archivos de almacenamiento de objetos como Punto de montaje S3 o S3FS En una futura publicación del blog, utilizaremos el MinIO Python SDK en implementaciones personalizadas de algunas interfaces comunes de PyTorch y FairSeq (como Dataset y Task, respectivamente) para permitir datos de entrenamiento "sin límites" y una alta utilización de la GPU para el entrenamiento del modelo.


Más allá del rendimiento y la compatibilidad con la pila de ML moderna, las opciones de diseño del almacenamiento de objetos, a saber (1) un espacio de nombres plano, (2) la encapsulación de todo el objeto (y sus metadatos) como la entidad lógica más baja y (3) API de verbos HTTP simples, son lo que ha llevado al almacenamiento de objetos a convertirse en el estándar de facto para lagos de datos masivos no estructurados. Una mirada a la historia reciente del aprendizaje automático muestra que los datos de entrenamiento (y en cierto sentido, las arquitecturas de modelos en sí mismas) se han vuelto menos estructurados y más generales. Solía ocurrir que los modelos se entrenaban predominantemente con datos tabulares. Hoy en día, existe una gama mucho más amplia, desde párrafos de texto sin formato hasta horas de video. A medida que evolucionan las arquitecturas de modelos y las aplicaciones de ML, la naturaleza sin estado, sin esquema y, en consecuencia, escalable del almacenamiento de objetos solo se vuelve más crítica.

2. Metadatos enriquecidos para modelos y conjuntos de datos

Los metadatos permiten etiquetar conjuntos de datos y describir las estadísticas de un punto de control del modelo.


Gracias a las opciones de diseño de MinIO Object Store, cada objeto puede contener metadatos completos y sin esquemas sin sacrificar el rendimiento ni requerir el uso de un servidor de metadatos dedicado. La imaginación es realmente el único límite cuando se trata de qué tipo de metadatos desea agregar a sus objetos. Sin embargo, aquí hay algunas ideas que podrían ser particularmente útiles para los objetos relacionados con ML:

Para los puntos de control del modelo : valor de la función de pérdida, tiempo necesario para el entrenamiento, conjunto de datos utilizado para el entrenamiento.


Para conjuntos de datos: nombre de los archivos de índice emparejados (si corresponde), categoría del conjunto de datos (entrenamiento, validación, prueba), información sobre el formato del conjunto de datos.

Los metadatos altamente descriptivos como estos pueden ser particularmente poderosos cuando se combinan con la capacidad de indexar y consultar de manera eficiente estos metadatos, incluso en miles de millones de objetos, algo que Catálogo de MinIO Enterprise ofrece. Por ejemplo, puede consultar puntos de control del modelo que estén etiquetados como "probados" o puntos de control que hayan sido entrenados en un conjunto de datos en particular.

3. Los modelos y conjuntos de datos están disponibles, son auditables y versionables


A medida que los modelos de aprendizaje automático y sus conjuntos de datos se convierten en activos cada vez más críticos, se ha vuelto igualmente importante almacenar y gestionar estos activos de una manera que sea tolerante a fallas, auditable y versionable.


Los conjuntos de datos y los modelos que se entrenan con ellos son activos valiosos que son el resultado de tiempo, esfuerzo de ingeniería y dinero. Por lo tanto, deben protegerse de una manera que no obstaculice el acceso de las aplicaciones. Las operaciones en línea de MinIO, como la comprobación de bitrot y la codificación de borrado, junto con funciones como la replicación activa-activa en varios sitios, garantizan la resiliencia de estos objetos a escala.


En el caso de la IA generativa, en particular, saber qué versión de qué conjunto de datos se utilizó para entrenar un modelo en particular que se está utilizando es útil para depurar alucinaciones y otros comportamientos incorrectos del modelo. Si los puntos de control del modelo tienen las versiones correctas, resulta más fácil confiar en una reversión rápida a una versión anterior del punto de control. Con MinIO Object Store, obtiene estos beneficios para sus objetos de inmediato.

4. Infraestructura de servicio propia

Modelo típico que sirve de modelo para la inferencia. A la izquierda, se basa en un repositorio de modelos de terceros y, a la derecha, se basa en su propio almacén de puntos de control.


El almacén de objetos MinIO es, fundamentalmente, un almacén de objetos que usted o su organización controlan. Ya sea que el caso de uso sea para creación de prototipos, seguridad, normativas o fines económicos El control es el hilo conductor. Por lo tanto, si los puntos de control del modelo entrenado residen en el almacén de objetos, le brinda un mayor control sobre la tarea de entregar modelos para inferencia o consumo.


En una publicación anterior Exploramos los beneficios de almacenar archivos de modelos en el almacén de objetos y cómo ofrecerlos directamente con el marco de inferencia TorchServe de PyTorch. Sin embargo, esta es una estrategia completamente independiente del modelo y el marco.


Pero, ¿por qué es importante? Los retrasos en la red o las interrupciones en los repositorios de modelos de terceros pueden hacer que los modelos tarden en entregarse para la inferencia o que no estén disponibles por completo. Además, en un entorno de producción donde los servidores de inferencia están escalando y necesitan extraer puntos de control de modelos de manera rutinaria, este problema puede verse exacerbado. En las circunstancias más seguras o críticas, es mejor evitar la dependencia de terceros a través de Internet siempre que sea posible. Con MinIO como un almacén de objetos en la nube privada o híbrida, es posible evitar estos problemas por completo.

Reflexiones finales

Representación de la infraestructura de datos del futuro mediante inteligencia artificial, con robots y... ¿molinos de viento?


Estas cuatro razones no son, de ninguna manera, una lista exhaustiva. Los desarrolladores y las organizaciones utilizan MinIO Object Storage para sus cargas de trabajo de IA por una gran variedad de razones, que van desde la facilidad de desarrollo hasta su tamaño extremadamente ligero.


Al principio de esta publicación, analizamos las fuerzas impulsoras detrás de la adopción de un almacenamiento de objetos de alto rendimiento para la IA. Independientemente de si se cumplen o no las leyes de escalabilidad, lo que sin duda será cierto es que las organizaciones y sus cargas de trabajo de IA siempre se beneficiarán de la mejor capacidad de rendimiento de E/S disponible. Además de eso, podemos estar bastante seguros de que los desarrolladores nunca pedirán API que sean más difíciles de usar y software que no "simplemente funcione". En cualquier futuro en el que se cumplan estas suposiciones, el almacenamiento de objetos de alto rendimiento es el camino a seguir.


Para los arquitectos y los responsables de la toma de decisiones de ingeniería que lean esto, muchas de las prácticas recomendadas que se mencionan aquí se pueden automatizar para garantizar que el almacenamiento de objetos se aproveche de una manera que haga que los flujos de trabajo de IA/ML sean más simples y escalables. Esto se puede hacer mediante el uso de cualquiera de los conjuntos de herramientas MLOps modernos. El experto en IA/ML Keith Pijanowski ha explorado muchas de estas herramientas; busque en nuestro blog Kubeflow, MLflow y MLRun para obtener más información sobre las herramientas MLOps. Sin embargo, si estas herramientas MLOps no son una opción para su organización y necesita ponerse en marcha rápidamente, las técnicas que se muestran en esta publicación son la mejor manera de comenzar a administrar sus flujos de trabajo de IA/ML con MinIO.


Para los desarrolladores (o cualquier persona que tenga curiosidad 🙂), en una futura publicación del blog, realizaremos un recorrido de principio a fin sobre cómo adaptar un marco de ML para aprovechar el almacenamiento de objetos con el objetivo de obtener datos de entrenamiento "sin límites" y una utilización adecuada de la GPU.


Gracias por leer, ¡espero que haya sido informativo! Como siempre, si tienes alguna pregunta, únete a nuestro grupo. Canal de Slack o envíenos una nota a [email protected] .