Revenir au contenu principal
Plateforme

Présentation du type FILE : un type de colonne natif pour les données multimodales

Le type FILE intègre nativement vos documents, images, vidéos et autres données non structurées à votre lakehouse et les prépare pour l'AI.

par Michael Armbrust, Burak Yavuz, Dejan Krakovic et John Spencer

  1. Le type FILE est un nouveau type de colonne, actuellement en version bêta, qui stocke de manière native vos données non structurées (documents, images, fichiers audio et vidéo) dans vos tables.
  2. Le type FILE permet une gouvernance unifiée grâce à laquelle vous pouvez appliquer exactement les mêmes contrôles d'accès précis et politiques de sécurité à vos fichiers bruts qu'à vos tables standard.
  3. Nous collaborons avec la communauté pour intégrer ce support directement dans Parquet, Delta Lake, Iceberg et Spark, afin que l'ensemble de l'écosystème puisse en tirer parti et que vos données restent portables.

Votre patrimoine de données contient bien plus que des tables structurées, des métriques et des journaux de transactions : il contient des contrats, des images de produits, des enregistrements d'appels et des vidéos. L'AI peut désormais transformer ces données non structurées en éléments que vous pouvez interroger et analyser, mais seulement si elles sont gouvernées et gérées aux côtés de tout le reste.

Aujourd'hui, nous annonçons la version bêta du type FILE : un nouveau type de colonne qui stocke les données non structurées sous forme de colonne native et gouvernée dans vos tables. Avec FILE, vos données non structurées sont prêtes pour l'AI : interrogeables, sécurisées et gérées aux côtés de vos données structurées, au lieu de résider dans un système distinct. Les avantages de FILE incluent :

  • Gouvernance unifiée. Appliquez exactement les mêmes contrôles d'accès précis et les mêmes politiques de sécurité à vos fichiers bruts qu'à vos tables standards.
  • Conformité automatisée. Lorsque vous supprimez une ligne contenant un FILE, le binaire du fichier est également supprimé dans le stockage d'objets, ce qui rend le "droit à l'oubli" du GDPR simple et sans effort.
  • Prise en charge de SQL et Python. Exécutez des UDF SQL et Python standards directement sur des fichiers non structurés comme sur n'importe quelle colonne normale, et créez des vues matérialisées pour exécuter des fonctions AI de manière incrémentielle.
  • Haute performance par conception. Les colonnes FILE stockent uniquement des pointeurs légers plutôt que des fichiers binaires lourds, et ne traitent le contenu réel du fichier que lorsqu'une requête en a explicitement besoin.

FILE est une innovation que nous menons de manière ouverte : nous travaillons avec la communauté pour intégrer son support directement dans Parquet, Delta Lake, Apache Iceberg et Apache Spark, afin que tout l'écosystème puisse en tirer parti. Cela permet de garder vos données multimodales ouvertes et portables, de sorte que vous ne soyez jamais bloqué par un seul fournisseur de technologies ou de modèles.

Ce que vous pouvez faire avec le type FILE

Aujourd'hui, vos équipes de données souhaitent créer des applications sur des données multimodales pour générer un impact commercial :

  • Assistants documentaires d'entreprise sur les contrats, les politiques et les recherches, transformant la paperasse en une base de connaissances interactive.
  • Inspection visuelle sur les images de produits, pour détecter les défauts à grande échelle plutôt que de devoir inspecter chacun d'eux manuellement.
  • Analyse des appels sur les enregistrements audio, pour identifier pourquoi les clients se convertissent ou se désabonnent à partir des conversations que vous possédez déjà.
  • Compréhension vidéo sur les événements, rendant des heures de séquences consultables et interrogeables.
  • Recherche multimodale pour les agents qui doivent citer et agir sur des preuves réelles, et pas seulement sur du texte.

FILE réduit les frictions tout au long du cycle de vie des données multimodales, de l'analyse exploratoire à l'entraînement des modèles, en passant par la mise à disposition des données aux agents en temps réel. Pour le démontrer, nous allons détailler un exemple, mais vous pouvez le remplacer par votre propre cas d'usage au fil de votre lecture.

Commençons notre exemple par une question précise du CEO d'une entreprise de conduite autonome :

Pouvons-nous réduire le nombre d'arrêts aléatoires ? Lorsque notre voiture autonome s'arrête sans raison apparente, les passagers perdent confiance dans notre service.

Les données nécessaires pour répondre à cette question sont des vidéos non structurées issues des caméras embarquées (dashcams) de chaque voiture autonome. Voici comment FILE rend ces données prêtes pour l'AI afin que nous puissions répondre à la demande du CEO :

  1. Vous commencez par créer une colonne de FILEs : créez une table avec une colonne FILE qui lit à partir du volume de stockage contenant les vidéos des caméras embarquées.

image4.png

Figure 1 : Schéma conceptuel illustrant une colonne FILE stockant des vidéos

  1. Ajoutez une colonne footage de type FILE, associant chaque clip du stockage d'objets à une ligne
  2. La table contient désormais cette colonne FILE à côté des métadonnées structurées
  3. L'un de ces clips de caméra embarquée montre la voiture s'arrêter sans raison claire, un exemple de ce que nous devons découvrir et analyser

Vous trouverez ci-dessous un exemple de syntaxe pour créer une table avec une colonne FILE. Pour essayer l'intégralité d'un pipeline de traitement de fichiers utilisant FILE, consultez la documentation d'accompagnement qui comprend des exemples de notebooks.

  1. Traisez les vidéos des caméras embarquées de manière performante. Comme la colonne est de type FILE, vous pouvez l'utiliser comme n'importe quelle autre colonne : utilisez les fonctions AI intégrées ou vos propres UDF Python. Ici, une UDF échantillonne une image de chaque clip dans une nouvelle colonne d'images FILE, et un modèle de détection d'objets ajoute une colonne supplémentaire aux métadonnées que vous possédez déjà, indiquant si la voiture fait face à un danger nécessitant un arrêt.

image2.png

Figure 2 : Schéma illustrant les fichiers FILE vidéo traités

  1. Une image échantillonnée arrive dans une nouvelle colonne frame, également de type FILE
  2. Nous exécutons une fonction directement sur cette colonne FILE pour obtenir la valeur hazard pour chaque image
  3. Le clip arrêté renvoie hazard = none : c'est l'information que nous recherchons

L'avantage d'utiliser FILE est que vous pouvez facilement travailler avec des gigaoctets de vidéo sans impacter les performances des requêtes. Comme la colonne FILE contient une référence légère, le moteur ne récupère les octets réels qu'à l'étape qui en a besoin. Comparez cela à l'encodage du binaire brut dans la table, où chaque opération entraîne le transfert du binaire volumineux dans la mémoire du moteur et nuit aux performances.

  1. Répondez à la question du CEO. Désormais, un agent peut analyser l'ensemble de votre patrimoine de données multimodales, en associant les informations extraites aux données de trajet structurées pour faire ressortir chaque vidéo où la voiture s'est arrêtée brusquement sans aucun danger devant elle.

image3.png

Figure 3 : Schéma illustrant la requête d'une table multimodale

  1. Une requête associe la colonne hazard extraite aux données de trajet structurées, filtrant les vidéos où la voiture s'est complètement arrêtée alors que la route était dégagée
  2. À partir de là, votre équipe de machine learning peut facilement préparer des ensembles d'entraînement pour améliorer le système de conduite autonome

L'agent peut désormais répondre rapidement et précisément à la question car tout réside dans une seule ligne : l'image vidéo d'origine comme vérité terrain, l'embedding, les informations extraites comme les dangers présents, et les métadonnées du trajet (vitesse, horodatage, etc.) se trouvent côte à côte.

Nous constatons souvent que des clients tentent de résoudre ce genre de cas d'utilisation en stockant dans la table une chaîne URL contenant le chemin d'accès au fichier. Or, ces chaînes sont régies par un système de droits d'accès totalement différent, défini au niveau des dossiers. Vous êtes alors contraint de gérer deux modèles de droits d'accès pour un même ensemble de données, et un filtre de ligne qui protège un path ne protège en rien la vidéo qui s'y trouve.

Nous avons résolu ce défi de gouvernance en intégrant FILE dans Unity Catalog, où les FILEs sont également sécurisés par des contrôles d'accès au niveau des lignes et des colonnes ainsi que par un contrôle d'accès basé sur les attributs (ABAC), garantissant que les bonnes personnes ont accès à vos données.

Un autre problème auquel les équipes sont confrontées aujourd'hui est la coordination du cycle de vie de leurs données non structurées. Si quelqu'un supprime une vidéo dans le stockage d'objets, la table n'a aucune idée de la politique de cycle de vie du stockage et ils ne savent rien l'un de l'autre, vous vous retrouvez donc avec une référence qui ne pointe vers rien.

Avec FILE, le cycle de vie de la vidéo suit sa ligne dans le jeu de données : supprimez une ligne, et les données ainsi que leur référence restent synchronisées - pas de fichiers orphelins, pas de failles de conformité. Désormais, vos équipes peuvent avancer rapidement sans se soucier des demandes de droit à l'oubli (par exemple, le GDPR) et d'une recherche manuelle fastidieuse pour retrouver chaque copie des données.

FILE est intégré aux outils que vous utilisez déjà

FILE permet désormais à vos données non structurées de bénéficier de la même fondation ouverte, du même modèle de gouvernance et de la même pile d'intelligence artificielle que ceux que vous utilisez déjà pour vos données structurées.

  • Ingéz sans effort ou référencez sur place. Connectez-vous directement à des sources telles que SharePoint et Google Drive grâce aux connecteurs Lakeflow en un clic. Ou, si vos données résident déjà dans un stockage cloud ou sur site, les colonnes FILE peuvent y faire référence là où elles se trouvent - aucun déplacement de données n'est requis.
  • Créez des pipelines multimodaux avec Spark Declarative Pipelines. Le traitement incrémentiel des données non structurées est plus important que jamais, car chaque document retraité peut entraîner un appel d'API de modèle coûteux. Et tout comme pour vos pipelines de données traditionnels, vous ne devriez pas avoir d'ingénieurs réveillés à 3 heures du matin lorsqu'un seul fichier échoue. Avec FILE et le SDP, vous déclarez les tables multimodales que vous souhaitez et le DAG se résout de lui-même. L'ingestion est incrémentielle, de sorte que seuls les nouveaux documents sont traités. Les mécanismes de tentative et de récupération sont intégrés, de sorte qu'une défaillance passagère ne signifie pas qu'il faut tout recommencer.
  • Utilisez n'importe quel modèle pour traiter vos données non structurées, y compris les meilleures fonctions d'intelligence artificielle de leur catégorie. Exécutez AI_PARSE_DOCUMENT, AI_QUERY et vos propres UDF directement sur la colonne FILE pour transformer des documents bruts, des images et des vidéos en colonnes structurées que vos agents et analystes interrogent déjà.
    Et parce que Databricks est conçu dès le départ pour les environnements multi-cloud, FILE s'intègre naturellement chez tous les fournisseurs de cloud tout en offrant à votre équipe un lakehouse unifié.

Démarrez avec le type FILE

Le type FILE est désormais disponible en version bêta et nous serions ravis de recevoir vos commentaires. Consultez la documentation de la version bêta pour obtenir la liste complète de ce que vous pouvez essayer aujourd'hui ainsi que des instructions étape par étape.

Ce n'est que le début pour le type FILE et nous avons une feuille de route passionnante de fonctionnalités à venir qui accéléreront vos projets d'intelligence artificielle, notamment :

  • Expérimentez plus rapidement sans coût supplémentaire. L'entraînement et l'itération sur un jeu de données ne devraient pas impliquer la duplication de téraoctets de données non structurées. FILE vous permet de versionner et de cloner des données sans copier les fichiers binaires sous-jacents, et de référencer les mêmes octets à partir de plusieurs tables à la fois. Par exemple, un agent de machine learning peut lancer un bac à sable isolé sur des données réelles, et le lignage retrace toute régression jusqu'à l'actif exact qui l'a causée.
  • Diffusez des jeux de données directement dans PyTorch. Exécutez des requêtes SQL sur vos données FILE et chargez instantanément les résultats dans des jeux de données PyTorch natifs, fournissant des tenseurs prêts pour les GPU directement à vos boucles d'entraînement sans préparation de données supplémentaire.
  • Feature engineering sans réécriture de table. Ajoutez ou alimentez rétroactivement une colonne dérivée telle que du texte extrait, un embedding ou une classification sans réécrire toute la table, y compris les volumineux fichiers binaires des données non structurées sources.
  • Une seule copie de vos données non structurées pour l'analyse et le serving. Recherchez et récupérez des données directement à partir de la table, avec des index vectoriels, plein texte et de recherche ponctuelle sur la table elle-même, de sorte que votre couche de récupération et votre source de vérité soient le même lakehouse.

Si vous souhaitez en savoir plus sur la manière dont nous optimisons les charges de travail d'intelligence artificielle dans Databricks, contactez votre équipe de compte Databricks.

(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original

Recevez les derniers articles dans votre boîte mail

Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.