Ir al contenido principal
Plataforma

Presentamos el tipo FILE: un tipo de columna nativo para datos multimodales

El tipo FILE hace que sus documentos, imágenes, videos y otros datos no estructurados sean nativos de su lakehouse y estén listos para la AI.

por Michael Armbrust, Burak Yavuz, Dejan Krakovic y John Spencer

  1. FILE es un nuevo tipo de columna, ahora en versión beta, que almacena datos no estructurados como documentos, imágenes, audio y video de forma nativa en sus tablas.
  2. FILE permite una gobernanza unificada donde puede aplicar exactamente los mismos controles de acceso detallados y políticas de seguridad a sus archivos sin procesar que a sus tablas estándar.
  3. Estamos trabajando con la comunidad para integrar el soporte directamente en Parquet, Delta Lake, Iceberg y Spark, de modo que todo el ecosistema pueda aprovecharlo y sus datos sigan siendo portables.

Su patrimonio de datos contiene mucho más que tablas estructuradas, métricas y registros de transacciones: contiene contratos, imágenes de productos, grabaciones de llamadas y videos. La AI ahora puede convertir esos datos no estructurados en algo que puede consultar y analizar, pero solo si se gobiernan y gestionan junto con todo lo demás.

Hoy anunciamos la versión beta del tipo FILE: un nuevo tipo de columna que almacena datos no estructurados como una columna nativa y gobernada en sus tablas. Con FILE, sus datos no estructurados están listos para la AI: se pueden consultar, proteger y gestionar junto con sus datos estructurados, en lugar de vivir en un sistema independiente. Los beneficios de FILE incluyen:

  • Gobernanza unificada. Aplique exactamente los mismos controles de acceso detallados y políticas de seguridad a sus archivos sin procesar que a sus tablas estándar.
  • Cumplimiento automatizado. Cuando elimina una fila que contiene un FILE, el binario del archivo también se elimina en el almacenamiento de objetos, lo que facilita el cumplimiento del "derecho al olvido" de la GDPR.
  • Soporte para SQL y Python. Ejecute UDF de Python y SQL estándar directamente en archivos no estructurados como en cualquier columna normal, y cree vistas materializadas para ejecutar funciones de AI de forma incremental.
  • Alto rendimiento por diseño. Las columnas FILE solo almacenan punteros ligeros en lugar de pesados binarios de archivos, y solo procesan el contenido real del archivo cuando una consulta lo requiere explícitamente

FILE es una innovación que estamos impulsando de forma abierta: estamos trabajando con la comunidad para integrar el soporte directamente en Parquet, Delta Lake, Apache Iceberg y Apache Spark, para que todo el ecosistema pueda aprovecharlo. Esto mantiene sus datos multimodales abiertos y portables, de modo que nunca se verá atrapado por un solo proveedor de servicios o de modelos.

Qué puede hacer con el tipo FILE

Hoy en día, sus equipos de datos quieren crear aplicaciones sobre datos multimodales para generar un impacto empresarial:

  • Asistentes de documentos empresariales sobre contratos, políticas e investigaciones, transformando el papeleo en una base de conocimientos interactiva.
  • Inspección visual de imágenes de productos: detecte defectos a escala en lugar de tener que revisar cada uno a simple vista.
  • Análisis de llamadas sobre grabaciones de audio: descubra por qué los clientes realizan conversiones o abandonan a partir de las conversaciones que ya tiene.
  • Comprensión de video sobre eventos: haga que horas de metraje sean buscables y consultables.
  • Recuperación multimodal para agentes que necesitan citar y actuar sobre pruebas reales, no solo texto.

FILE reduce la fricción a lo largo de todo el ciclo de vida de los datos multimodales: desde el análisis exploratorio hasta el entrenamiento de modelos y el servicio de datos a los agentes en tiempo real. Para demostrar esto, analizaremos un ejemplo, pero puede adaptarlo a su propio caso de uso a medida que avanza en la lectura.

Comencemos nuestro ejemplo con una pregunta directa del CEO de una empresa de conducción autónoma:

¿Podemos reducir el número de paradas aleatorias? Cuando nuestro auto autónomo se detiene sin motivo aparente, pasajeros pierden la confianza en nuestro servicio

Los datos necesarios para abordar esto son videos no estructurados de cámaras de tablero (dashcam) capturados desde cada auto autónomo. Así es como FILE prepara esos datos para la AI para que podamos responder a la solicitud del CEO

  1. Comience creando una columna de FILEs: cree una tabla con una columna FILE que lea desde el volumen de almacenamiento que contiene los videos de la dashcam

image4.png

Figura 1: Diagrama conceptual que muestra una columna FILE que almacena videos

  1. Agregue una columna footage con el tipo FILE, asignando cada clip en el almacenamiento de objetos a una fila
  2. La tabla ahora contiene esa columna FILE junto a los metadatos estructurados
  3. Uno de esos clips de la dashcam muestra al auto deteniéndose sin una razón clara, un ejemplo de lo que necesitamos descubrir e investigar

A continuación se muestra una sintaxis de ejemplo para crear una tabla con una columna FILE. Para probar el recorrido completo de una canalización de procesamiento de archivos utilizando FILE, consulte la documentación adjunta, que incluye notebooks de ejemplo.

  1. Procese los videos de la dashcam de manera eficiente. Debido a que la columna tiene el tipo FILE, puede trabajar con ella como con cualquier otra columna: recurra a las funciones de AI integradas o a sus propias UDF de Python. Aquí, una UDF extrae una muestra de fotograma de cada clip en una nueva columna FILE de imágenes, y un modelo de detección de objetos agrega una columna más a los metadatos que ya tiene, indicando si el auto realmente tiene un peligro frente a él que requiera una parada.

image2.png

Figura 2: Diagrama que muestra los FILEs de video procesados

  1. Un fotograma de muestra llega a una nueva columna frame, también con el tipo FILE
  2. Ejecutamos una función directamente en esa columna FILE para obtener el valor de hazard para cada fotograma
  3. El clip detenido regresa con hazard = none ; esta es la información clave que buscamos

La ventaja de utilizar FILE es que puede trabajar fácilmente con gigabytes de video sin que el rendimiento de las consultas se vea afectado. Debido a que la columna FILE contiene una referencia ligera, el motor extrae los bytes reales solo en el paso que los necesita. Compare esto con la codificación del binario sin procesar en la tabla, donde cada operación arrastra el binario de gran tamaño a través de la memoria del motor y dificulta el rendimiento.

  1. Responda a la pregunta del CEO. Ahora un agente puede razonar sobre todo su patrimonio de datos multimodales, uniendo la información extraída con los datos estructurados del viaje para mostrar cada video en el que el auto se detuvo repentinamente sin ningún peligro frente a él.

image3.png

Figura 3: Diagrama que muestra la consulta de una tabla multimodal

  1. Una consulta une la columna hazard extraída con los datos estructurados del viaje, filtrando los videos en los que el auto se detuvo por completo con la carretera despejada por delante
  2. A partir de aquí, su equipo de machine learning puede seleccionar fácilmente conjuntos de entrenamiento para mejorar el sistema de conducción autónoma

El agente ahora puede responder a la pregunta de manera rápida y precisa porque todo reside en una sola fila: el fotograma de video original como verdad de referencia (ground truth), el embedding, la información extraída (como los peligros presentes) y los metadatos del viaje (velocidad, marca de tiempo, etc.) se encuentran uno al lado del otro.

A menudo vemos que los clientes intentan resolver casos de uso como este almacenando en la tabla una cadena URL que contiene una ruta al archivo. Sin embargo, esas cadenas se rigen por un sistema completamente diferente de permisos amplios a nivel de carpeta. Ahora se ve obligado a mantener dos modelos de permisos para un solo conjunto de datos, y un filtro de filas que protege una ruta no hace nada para proteger el video al final de la misma.

Hemos rozuelto este desafío de gobernanza integrando FILE en Unity Catalog, donde los FILEs también están protegidos por controles de acceso a nivel de fila y columna, así como por el control de acceso basado en atributos (ABAC), lo que garantiza que las personas adecuadas tengan acceso a sus datos.

Otro problema al que se enfrentan los equipos hoy en día es la coordinación del ciclo de vida de sus datos no estructurados. Si alguien elimina un video en el almacenamiento de objetos, la tabla no tiene idea de la política de ciclo de vida del almacenamiento y no saben nada la una de la otra, por lo que se queda con una referencia que no apunta a nada.

Con FILE, el ciclo de vida del video se desplaza con su fila en el dataset: elimine una fila y los datos y su referencia se mantendrán sincronizados; sin archivos huérfanos ni brechas de cumplimiento. Ahora sus equipos pueden avanzar rápidamente sin preocuparse por las solicitudes de derecho al olvido (por ejemplo, GDPR) ni por la búsqueda manual de cada copia de los datos.

FILE está integrado con las herramientas que ya utiliza

FILE ahora permite que sus datos no estructurados se beneficien de la misma base abierta, modelo de gobernanza y pila de AI que ya utiliza para los datos estructurados.

  • Ingeste sin esfuerzo o haga referencia in situ. Conéctese directamente a fuentes como SharePoint y Google Drive con conectores Lakeflow de tipo apuntar y hacer clic. O, si sus datos ya residen en el almacenamiento en la nube o local (on-prem), las columnas FILE pueden hacer referencia a ellos justo donde están, sin necesidad de mover datos.
  • Cree pipelines multimodales con Spark Declarative Pipelines. Procesar datos no estructurados de forma incremental es más importante que nunca, porque cada documento que vuelva a procesar puede significar una costosa llamada a la API del modelo. Y al igual que con sus pipelines de datos tradicionales, no debería tener a ingenieros despiertos a las 3 a. m. cuando falla un archivo. Con FILE y SDP, usted declara las tablas multimodales que desea y el DAG se resuelve solo. La ingesta es incremental, por lo que solo se procesan los documentos nuevos. El reintento y la recuperación están integrados, por lo que un fallo transitorio no significa empezar de nuevo.
  • Utilice cualquier modelo para procesar sus datos no estructurados, incluidas las mejores funciones de AI de su clase. Ejecute AI_PARSE_DOCUMENT, AI_QUERY y sus propias UDFs directamente sobre la columna FILE para convertir documentos, imágenes y videos sin procesar en las columnas estructuradas que sus agentes y analistas ya consultan.
    Y debido a que Databricks está diseñado para entornos de múltiples nubes desde cero, FILE se adapta de forma natural a los distintos proveedores de nube, al tiempo que ofrece a su equipo un lakehouse unificado.

Comience a utilizar el tipo FILE

El tipo FILE ya está disponible en versión Beta y nos encantaría recibir sus comentarios. Lea la documentación de la versión Beta para obtener la lista completa de lo que puede probar hoy mismo y una guía paso a paso.

Esto es solo el comienzo para el tipo FILE y tenemos una emocionante hoja de ruta de funciones que llegarán pronto y que acelerarán sus proyectos de AI, que incluyen:

  • Experimente más rápido sin costo adicional. Entrenar e iterar en un dataset no debería significar duplicar terabytes de datos no estructurados. FILE le permite versionar y clonar datos sin copiar los binarios subyacentes, y hacer referencia a los mismos bytes desde muchas tablas a la vez. Por ejemplo, un agente de aprendizaje automático puede crear un sandbox aislado con datos reales, y el linaje rastrea cualquier regresión hasta el activo exacto que la causó.
  • Transmita datasets directamente a PyTorch. Ejecute consultas SQL contra sus datos de FILE y cargue instantáneamente los resultados en PyTorch Datasets nativos, entregando tensores listos para GPU directamente a sus bucles de entrenamiento sin preparación de datos adicional.
  • Ingeniería de características sin reescritura de tablas. Agregue o realice un backfill de una columna derivada, como texto extraído, un embedding o una clasificación, sin reescribir toda la tabla, incluidos los binarios grandes de los datos no estructurados de origen.
  • Una sola copia de sus datos no estructurados tanto para análisis como para servicio. Busque y recupere directamente desde la tabla, con índices vectoriales, de texto completo y de búsqueda de puntos (point-lookup) en la propia tabla, de modo que su capa de recuperación y su fuente de verdad sean el mismo lakehouse.

Si desea obtener más información sobre cómo estamos optimizando las cargas de trabajo de AI en Databricks, póngase en contacto con el equipo de su cuenta de Databricks.

(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original

Recibe las últimas publicaciones en tu bandeja de entrada

Suscríbete a nuestro blog y recibe las últimas publicaciones directamente en tu bandeja de entrada.