Un ensemble fiable de données provenant de sources de données de qualité est nécessaire pour produire des systèmes d’intelligence artificielle (IA) efficaces et des applications de grands modèles de langage (LLM). La préparation des données comprend le nettoyage, la transformation et des processus sophistiqués pour organiser les données non structurées brutes en un jeu de données exploitable. Ce processus est difficile, car les problèmes de qualité peuvent être masqués et n’apparaître que tardivement dans le cycle de vie du développement logiciel, ce qui entraîne des tâches de débogage complexes et des retards dans la durée globale du projet. Des données de qualité sont essentielles pour construire des applications LLM et IA responsables, car des données mal préparées sont susceptibles d’engendrer des résultats biaisés ou dangereux. Il existe également un risque de violation de la confidentialité si des données personnelles sont incluses dans les données du modèle, sans reconnaissance adéquate de leurs conséquences. De plus, une mauvaise préparation des données faire perdre du temps et des ressources. La base pour développer une IA générative responsable est de préparer correctement vos données pour construire votre produit de manière efficace.
Afin de fournir aux développeurs et aux spécialistes de la science des données les outils nécessaires pour relever les défis liés à la préparation des données, IBM a développé le kit de préparation des données (DPK) open source. Le DPK est un outil adapté aux praticiens pour préparer des fichiers de données pour les applications basées sur l’IA et les workflows LLM. Pour atteindre cet objectif, le DPK fournit plusieurs « transformations » modulaires dans un environnement Python. L’utilisateur peut utiliser les « transformations » comme des classes isolées ou les combiner dans un pipeline de données pour nettoyer, transformer et organiser les données provenant d’une source de données. Le DPK est conçu pour l’évolutivité et utilise des jeux de données colonnaires comme des fichiers Parquet et des environnements d’exécution évolutifs comme Ray et Spark. Cette capacité permet d’effectuer la préparation des données sur une seule machine ou un grand cluster afin d’accélérer le traitement des données. L’utilisation du DPK pour préparer les données des modèles IBM® Granite a été un grand succès, démontrant ainsi son efficacité dans des cas d’utilisation réels.
Le DPK est construit à partir de trois composants architecturaux principaux :
Accès aux données, transformation et exécution.
Accès aux données : ce composant permet une méthode uniforme de lecture et d’écriture des données provenant de différents emplacements de stockage (par exemple, systèmes de fichiers locaux, stockage compatible S3). Il prendre en charge la création de points de contrôle, de sorte que si un travail doit redémarrer, il ne traitera que les fichiers non terminés, économisant ainsi du temps et des ressources.
Transformation : ce module fournit des fonctions spécifiques qui seront appliquées aux données, notamment la conversion des données, la déduplication et la détection des données personnelles. Le DPK possède une bibliothèque de transformations en cours de développement sous la forme d’une suite de transformations prédéfinies. Le cadre des exigences permet également à un contributeur (peu familier avec les cadres d’informatique distribuée (Ray ou Spark)) de créer et de construire ses propres transformations personnalisées. Chaque transformation agit comme une unité de travail autonome et configurable, est composable en pipelines et permet la préparation des données à l’échelle des LLM.
Exécution : il s’agit de l’environnement d’exécution spécifique pour l’attribution du travail et de la surveillance de la transformation. Le DPK peut fonctionner sur différents environnements d’exécution, notamment en Python pur (avec multitraitement), Ray et Spark. Cette fonctionnalité offre à l’utilisateur la flexibilité nécessaire pour dimensionner la préparation des données, d’un ordinateur portable à un cluster comportant des milliers de nœuds. L’environnement d’exécution gère l’attribution du travail aux workers. Les exécutions permettent également aux transformations d’utiliser des fonctions spécifiques telles que les classes partagées ou les magasins d’objets. L’architecture globale de l’environnement d’exécution est composée d’un lanceur de transformation (le point d’entrée), d’un orchestrateur de transformation (le composant qui exécute le workflow et crée les workers) et de processeurs de fichiers (le composant qui traite chaque fichier individuel). L’orchestrateur utilisera l’exécution pour établir les composants partagés et l’accès aux données qui lui permettra de trouver des fichiers sur lesquels travailler. Chaque processeur de fichiers lit, traite puis réécrit les résultats et les métadonnées en utilisant des appels d’interface de programmation d’applications (API).
Les capacités d’automatisation et d’évolutivité du DPK sont innovantes et peuvent s’adapter à plusieurs environnements d’exécution, comme Local, Ray et Spark.
Grâce à ses nouvelles fonctionnalités, le DPK se distingue des projets de préparation de données établis, tels que BigCode, DataTrove et Dolma. Un des principaux facteurs de différenciation est le nombre de cas d’utilisation qu’il prend en charge (pré-entraînement, optimisation et génération augmentée de récupération (RAG)) et la dimension des données qu’il peut prendre en charge. Contrairement à d’autres kits qui prennent en charge une seule modalité de données, le DPK prend en charge les données en langage naturel et les données de code. Il est extensible, ce qui signifie qu’il est facile d’ajouter n’importe quel nombre de modules évolutifs.
Pour l’automatisation, le DPK dispose d’une interface en ligne de commande (CLI) et d’une option no-code en utilisant Kubeflow Pipelines (KFP), une plateforme permettant de déployer des workflows évolutifs de machine learning (ML) sur Kubernetes. Cette fonction élargit le public et permet une application plus large auprès des data scientists et des développeurs d’applications IA.
Voici les fonctionnalités de l’intégration de KFP :
Évolutivité : KFP permet de dimensionner de grands jeux de données et des workflows hautement complexes grâce à Kubernetes, une plateforme informatique évolutive à la demande.
Modularité : chaque workflow se divise en composants réutilisables, ce qui permet de mettre facilement en œuvre des workflows complexes et un débogage supplémentaire.
Reproductibilité : l’historique de chaque exécution est suivi, ce qui permet de reproduire les expériences.
Visualisation : une interface permet de surveiller l’exécution des pipelines, de visualiser les résultats et de résoudre les problèmes.
L’évolutivité du DPK est étayée par des études expérimentales. Par exemple, le kit réduit proportionnellement le temps d’exécution des transformations à mesure que le nombre de nœuds de traitement augmente. Il s’adapte uniformément à l’ensemble des workloads, de l’annotation de données simples à l’exécution de workloads plus complexes, comme l’identification des langues, qui entraîne des coûts de calcul supplémentaires.
À mesure que les capacités des systèmes d’IA s’améliorent et deviennent essentielles dans les processus de prise de décision, l’appel à instaurer une gouvernance pour garantir une IA éthique, sûre et conforme devient urgent. Il est toutefois important de souligner que la gouvernance ne commence pas par les modèles ; elle commence par les données.
Ce qui rend le DPK particulièrement précieux, c’est sa contribution directe aux objectifs de la gouvernance de l’IA :
Sécurité : les « transformations » DPK identifient et éliminent le contenu toxique ou nuisible grâce à la détection des propos haineux, insultants et obscènes (HAP).
Équité : les « transformations » DPK éliminent les biais grâce à la déduplication et au filtrage des données de mauvaise qualité ou non pertinentes.
Conformité : les « transformations » DPK détectent et expurgent les données personnelles en conformité avec les réglementations relatives à la vie privée , telles que le RGPD (Règlement général sur la protection des données) et la HIPAA (Health Insurance Portability and Accountability Act).
Transparence : les « transformations » DPK procèdent au hachage des documents et ajoutent des scores de qualité pour améliorer la traçabilité et l’auditabilité.
Que vous travailliez dans le secteur de la santé, de la finance, du gouvernement ou dans tout autre domaine où la confiance est primordiale, le DPK vous aide à créer des systèmes d’IA basés sur des données responsables.
Scénario : Une agence gouvernementale développe un LLM spécifique à son domaine pour aider à résumer les documents juridiques. Le jeu de données contient des documents publics, des documents juridiques et des documents de politique extraits de diverses sources.
Défis en matière de gouvernance :
Certaines sources ne sont pas vérifiées ou sont politiquement biaisées.
Le jeu de données comprend plusieurs langues.
Le document peut contenir des propos toxiques ou provocateurs.
Les données personnelles, telles que les noms et les adresses, doivent être supprimées.
Les doublons et le texte standard sont courants.
La qualité varie considérablement d’un document à l’autre.
Solution : en déployant une recette de gouvernance exploitant le DPK, l’agence peut s’assurer que le jeu de données :
provient d’une source éthique ;
respecte la confidentialité ;
est de qualité et diversifié ;
est adapté à l’entraînement responsable des LLM.
Si vous devez remédier aux défis posés dans le cas d’utilisation précédent, ou dans tout scénario établi pour atténuer les risques liés à la qualité des données, à la sécurité et à la conformité, vous avez besoin d’un pipeline qui applique fondamentalement les politiques de gouvernance. Le DPK rend ce pipeline possible en fournissant une série de transformations modulaires que vous pouvez enchaîner pour nettoyer, filtrer et enrichir le jeu de données.
Ce tableau présente un processus de gouvernance simple en six étapes qui répond aux principales exigences en matière de gouvernance de l’IA. Chaque étape comporte un risque ou un problème de qualité associé, afin de garantir que le jeu de données final provient d’une source éthique, respecte la confidentialité et est adapté au développement d’une IA responsable.
Pour créer votre propre pipeline de gouvernance :
Clonez le dépôt : https://github.com/data-prep-kit/data-prep-kit.
Installez les transformations : pip install ’data-prep-outils-transforms[all]’.
Configurez votre pipeline en utilisant KFP ou Python avec dpk_transform_chain.
Exécutez le pipeline en utilisant la CLI ou intégrez-le à votre plateforme de données en utilisant Ray ou Spark.
Le DPK contient un ensemble de transformations prédéfinies, classées selon différentes exigences relatives à la préparation des données.
Transformations de l’ingestion de données : ces transformations convertissent les données d’un ou plusieurs formats en un format standardisé. Par exemple, des fichiers de code compressés vers Parquet, HTML/PDF vers Parquet.
Transformations universelles (code et langage) : ces transformations peuvent être utilisées à la fois pour les données de code et les données en langage naturel. Par exemple, déduplication exacte et déduplication approximative pour supprimer les enregistrements en double et redimensionner les fichiers à la bonne taille.
Transformations langage uniquement : ces transformations concernent les données en langage naturel. Elles comprennent l’identification du langage qui identifie la langue du texte, une fonction d’annotation ou d’expurgation des données personnelles qui les identifie et les supprime.
Transformations code uniquement : elles sont réservées aux données de code. Elles comprennent l’annotation du langage de programmation, l’annotation de la qualité du code et un outil de nettoyage d’en-têtes pour cibler les informations de licence et de droit d’auteur. Le cadre des exigences contient également des transformations pour les applications RAG, telles que le découpage de documents et un encodeur de texte qui crée des embeddings vectoriels pour le texte. Ces transformations constituent un aspect clé de la préparation des données utilisées par la suite dans une base de données vectorielle.
Le DPK est crucial pour tous ceux qui créent des IA, en particulier pour les applications LLM. Ce kit est un cadre clair, évolutif et standardisé qui simplifie le processus complexe et parfois laborieux de préparation des données. Avec un ensemble complet de « transformations » modulaires pour soutenir les développeurs et les data scientists, ces derniers peuvent nettoyer et structurer les données brutes et intégrer des aspects importants de la gouvernance de l’IA dans leurs workflows de données. Cela leur permet de s’assurer de la qualité et de la fiabilité des données fondamentales utilisées pour l’entraînement et la responsabilisation en matière de stratégies d’éthique et de protection de la vie privée. En définitive, le DPK améliore les systèmes d’IA en garantissant la responsabilité et la fiabilité des développeurs, permettant ainsi l’innovation des modèles tout en restant solidement ancré dans une base de données robuste.