Snowpark Container Services: implementa y ejecuta una sofisticada IA generativa y aplicaciones de pila completa de forma segura en Snowflake
Los contenedores han surgido como el enfoque moderno para empaquetar código en cualquier lenguaje y así garantizar la portabilidad y coherencia entre entornos, sobre todo en modelos de inteligencia artificial (IA) y aprendizaje automático (machine learning, ML) y aplicaciones de pila completa que hacen un uso intensivo de los datos. Estos tipos de productos de datos modernos a menudo se enfrentan a cantidades ingentes de datos propios. Por lo general, la complejidad de la creación, el desarrollo y la ejecución de estos workloads a escala es alta. Esto obliga tanto a los desarrolladores como a los científicos de datos a invertir más tiempo en la gestión del procesamiento y los clústeres para estas aplicaciones en lugar de centrarse en los problemas del negocio. Además, como las aplicaciones de pila completa y los large language models (LLM) no se pueden ejecutar directamente donde se gobiernan los datos, la gestión de la seguridad de los datos utilizados en cualquiera de esos escenarios es muy complicada y, a veces, casi imposible.
Para facilitar el traslado de las aplicaciones de pila completa, los LLM y otros productos de datos sofisticados a los datos de forma segura, presentamos Snowpark Container Services, ahora disponible en vista previa privada. Esta opción adicional de tiempo de ejecución de Snowpark permite a los desarrolladores implementar, gestionar y escalar workloads contenedorizados (trabajos, servicios, funciones de servicios) sin esfuerzo mediante la infraestructura segura gestionada de Snowflake con opciones de hardware configurables, como las unidades de procesamiento gráfico (graphics processing units, GPU).
Este nuevo tiempo de ejecución acaba con la necesidad de que los usuarios se encarguen de las operaciones complejas de gestión y mantenimiento del procesamiento, y los clústeres de los contenedores. Gracias a los contenedores que se ejecutan en Snowflake, no es necesario mover los datos gobernados fuera de Snowflake (ya que, de ese modo, los expondría a riesgos de seguridad adicionales) para utilizarlos como parte de las aplicaciones y los modelos de IA/ML más sofisticados, tanto si se han desarrollado de forma interna o por parte de proveedores externos y están disponibles como aplicaciones nativas de Snowflake que se pueden instalar desde Snowflake Marketplace.
Descripción general de Snowpark Container Services
Flexibilidad del lenguaje de programación y del hardware
Los contenedores que los desarrolladores creen y empaqueten con las herramientas de su elección pueden incluir código en cualquier lenguaje de programación (por ejemplo, C/C++, Node.js, Python, R, React, etc.) y se pueden ejecutar mediante opciones de hardware configurables, como las GPU. Esta flexibilidad con el lenguaje de programación y el hardware amplía aún más el alcance de los workloads IA/ML y Applications aplicados a los datos de Snowflake mediante Snowpark.
Por ejemplo, los equipos de ciencia de datos pueden acelerar la ejecución de las bibliotecas Python de ML utilizadas en formaciones y trabajos de inferencia. También pueden ejecutar IA generativa que requiere un alto nivel de procesamiento, como los LLM. Los desarrolladores de aplicaciones pueden crear e implementar interfaces de usuario front-end con React y otros marcos de desarrollo web populares. Los ingenieros de datos pueden ejecutar lógica optimizada, a menudo escrita en C/C++, en el mismo motor de procesamiento que ejecuta operaciones de SQL o Python DataFrame.
Cuando lanzamos Snowpark en 2020, presentamos una forma segura de implementar y procesar código Python, Java y Scala en Snowflake a través de un conjunto de bibliotecas y tiempos de ejecución como funciones definidas por el usuario (user-defined functions, UDF) y Stored Procedures. Snowpark Container Services es una manera más de dar vida a la visión de Snowpark con el fin de ofrecer una forma familiar, potente y de confianza a los desarrolladores para que procesen sin esfuerzo cualquier código que no sea SQL dentro de los límites de los datos gobernados de Snowflake. Al igual que el resto de Snowpark, se puede acceder al código y a la lógica e integrarlos desde cualquier experiencia de Snowflake. Los usuarios pueden escribir consultas de datos en SQL, Python, Java o Scala que procesen los datos a través de contenedores que se ejecutan en Snowpark Container Services.
Servicios unificados y totalmente gestionados
Snowpark Container Services proporciona una experiencia sencilla y unificada del ciclo de vida completo de las aplicaciones y los modelos de IA/ML contenedorizados. Otras soluciones requerirán la unión manual de un registro de contenedor, un servicio de gestión de contenedores y el servicio de procesamiento, además de la gestión de tus propias herramientas independientes para la observabilidad, la conectividad de los datos, la seguridad, etc.
Siguiendo la filosofía de Snowflake para garantizar que la plataforma funcione, Snowpark Container Services reúne todos esos pasos y acaba con la necesidad de lidiar con el mantenimiento del procesamiento y los clústeres para acelerar el desarrollo y la productización de las aplicaciones de datos. Al hacerlo, Snowpark Container Services aporta simplicidad y potencia al alojamiento y a los servicios de contenedores para que los desarrolladores solo tengan que proporcionar sus contenedores, ya que Snowflake los servirá y alojará a escala sin tener que conocer todas las complejidades de Kubernetes.
Como parte del objetivo de respaldar un acceso más amplio a los contenedores, los desarrolladores tienen la opción de utilizar SQL, la interfaz de línea de comandos (command-line interface, CLI) o Python como interfaz de programación. A fin de admitir una amplia gama de workloads, Snowpark Container Services cuenta con tres opciones de ejecución:
- Trabajos: Procesos de tiempo limitado activados de forma manual o ad hoc, o bien como parte de un proceso programado. Entre los ejemplos más comunes se incluyen las imágenes de contenedor utilizadas para empezar el entrenamiento del ML sobre la GPU o un paso en un flujo de datos que pueda ejecutarse en cualquier lenguaje, marco o biblioteca dentro de un contenedor.
- Funciones de servicio: Procesos de tiempo limitado que reciben datos, realizan acciones y que un evento respaldado por tus contenedores puede activar reiteradamente.
- Servicios: Procesos de larga duración con puntos finales de entrada protegidos que a menudo alojan el front-end de una aplicación o una API y que siempre deben estar disponibles para solicitudes a petición.
Llevar sofisticadas aplicaciones y software de terceros a los datos
Snowpark Container Services se puede utilizar como parte de una aplicación nativa de Snowflake con el fin de capacitar a los desarrolladores para que distribuyan aplicaciones sofisticadas que se ejecuten completamente en la cuenta de Snowflake de su cliente final. Para los consumidores de Snowflake, esto significa que pueden instalar y ejecutar de forma segura productos de vanguardia, como cuadernos alojados y LLM, dentro de su cuenta de Snowflake de forma que proteja la propiedad intelectual (PI) propia del proveedor.
- Hex. Los equipos de ciencia de datos pueden acelerar sus analíticas y ciencia de datos con Snowpark Container Services para implementar Hex, una plataforma de analíticas y ciencia de datos colaborativas, a fin de consultar y procesar sus datos con SQL, R y Python, así como entrenar el ML sobre GPU, al mismo tiempo que garantizan que sus datos nunca salgan de la cuenta de Snowflake del consumidor. Echa un vistazo al vídeo de demostración y regístrate en la lista de espera para implementar Hex en Snowflake.
- Proveedores de LLM. Las organizaciones pueden incorporar modelos de IA generativa de vanguardia a su cuenta de Snowflake como aplicaciones nativas de Snowflake, donde tanto la PI del proveedor como los datos del consumidor están totalmente protegidos. En el caso de los que utilizan un proveedor como AI21 Labs, Reka o NVIDIA (marco NeMo, parte de la plataforma de software NVIDIA AI Enterprise), los pesos de LLM u otras PI internas no estarán expuestos al consumidor de la aplicación, ya que no se puede acceder a la lógica en la aplicación nativa de Snowflake. Dado que el LLM se ejecuta en la cuenta del consumidor final, los datos empresariales gobernados usados para llevar a cabo ajustes o para interactuar de alguna otra forma con el LLM nunca quedan expuestos al desarrollador. Puedes ver todo esto en acción en la demostración del keynote de la Snowflake Summit 2023.
Este nuevo tiempo de ejecución de Snowpark amplía y refuerza aún más el ecosistema de partners de Snowpark Accelerated. Aprovecha la potente plataforma de Snowflake para mejorar la experiencia de los equipos técnicos y empresariales mediante las aplicaciones y servicios integrados de nuestros partners, que aportan procesamiento a los datos gobernados.
- Alteryx. Crea un flujo de trabajo en Alteryx Designer y elige entre las más de 160 herramientas sin código o con código sencillo para resolver un problema de analíticas avanzadas, como la creación de un modelo predictivo para predecir la demanda. Carga el flujo de trabajo en la plataforma Alteryx Analytics Cloud y ejecuta la lógica en Snowpark Container Services.
- Astronomer. Utiliza Apache Airflow para organizar flujos de datos complejos y potentes —como programación avanzada, alertas, supervisión, ramificaciones complejas y lógica de reintentos, y muchos más—, de forma más eficiente llevando el código a los datos sin las restricciones de la gestión de dependencias ni del procesamiento especializado.
- Dataiku. Implementa modelos entrenados en Dataiku en Snowpark Container Services como un servicio de inferencia escalable. Dataiku puede introducir las funciones en el modelo y recibir inmediatamente las predicciones de Snowpark Container Services mediante una aplicación web.
- NVIDIA. Las GPU de NVIDIA se utilizarán como la capa de infraestructura acelerada para Snowpark Container Services, que impulsará un procesamiento más eficiente, de alto rendimiento y rentable para los clientes de Snowflake.
- SAS. Utiliza SAS® Viya® para desarrollar modelos y entrenar la toma de decisiones con datos en Snowflake publicando el modelo campeón en Snowpark Container Services mediante SAS Container Runtime, un contenedor que se ajusta a la Open Container Initiative (OCI) y que permite una creación de prototipos rápida y una implementación sencilla.
Hay muchas más soluciones de partners integradas en Snowpark Container Services, como bases de datos diseñadas específicamente (RelationalAI, Pinecone, CARTO), ML y operaciones de aprendizaje automático (machine-learning operations, MLOps) (por ejemplo, H2O.ai, Kumo AI, Weights & Biases), y hasta aplicaciones enteras (Amplitude).
El futuro de Snowpark Container Services
Snowpark Container Services prepara el camino para una nueva era del desarrollo de aplicaciones en la que no hay límites para lo que puedes llevar a Snowflake. No obstante, tenemos muchas más cosas planeadas para este nuevo tiempo de ejecución de Snowpark, como cumplir el objetivo de incorporar aplicaciones nativas de Snowflake con imágenes de contenedores a través de Snowflake Marketplace.
Si deseas mantenerte informado sobre Snowpark Container Services, regístrate aquí.