Cos'è il Data Prep Kit?

Mano di una persona che indica con una penna un monitor che mostra una dashboard

Autori

Jobit Varughese

Technical Content Writer

IBM

Shalisha Witherspoon

Software Engineer

IBM Research

Cos'è il Data Prep Kit?

Un insieme affidabile di dati provenienti da fonti di qualità è necessario per la produzione di sistemi di intelligenza artificiale (AI) efficienti e di applicazioni di modelli linguistici di grandi dimensioni (LLM). La preparazione dei dati include pulizia, trasformazione e processi sofisticati per organizzare dati non strutturati in un set di dati. Questo processo è complesso, poiché i problemi di qualità possono essere nascosti ed emergere solo nelle fasi avanzate del ciclo di sviluppo del software, comportando complesse attività di debug e ritardi nella durata complessiva del progetto. I dati di qualità sono essenziali per costruire applicazioni LLM e AI responsabili, poiché dati mal preparati potrebbero portare a output distorti o non sicuri. Esiste inoltre il rischio di una violazione della privacy qualora le informazioni di identificazione personale (PII) vengano incluse nei dati del modello senza un'adeguata valutazione delle relative implicazioni. Inoltre, una scarsa preparazione dei dati può portare a sprechi di tempo e risorse. La base per lo sviluppo di un'AI generativa responsabile (gen AI) è preparare correttamente i dati per costruire in modo efficiente il prodotto.

Per fornire agli sviluppatori e agli specialisti di data science gli strumenti per affrontare le sfide della preparazione dei dati, IBM ha realizzato il data prep kit open-source (DPK). Il DPK è un toolkit adatto per i professionisti che preparano file dati per applicazioni AI e workflow LLM. Per raggiungere questo obiettivo, DPK fornisce diverse "trasformazioni" modulari in un ambiente Python. L'utente può utilizzare le "trasformazioni" come classi isolate oppure combinarle in una pipeline di dati per pulire, trasformare e organizzare i dati provenienti da una sorgente dati. Il DPK è progettato per la scalabilità e utilizza set di dati a colonna come file Parquet e tempi di esecuzione come Ray e Spark. Questa capacità consente di eseguire la preparazione dei dati su una singola macchina o su un cluster per velocizzare il trattamento dei dati. Il DPK è stato utilizzato con successo per preparare dati per i modelli IBM® Granite, dimostrandone l'efficacia in casi d'uso reali.

Caratteristiche principali e architettura del DPK

Il DPK è costruito con tre componenti architetturali principali:

Accesso ai dati, trasformazione e tempo di esecuzione.

Accesso ai dati: questo componente consente di leggere e scrivere in modo uniforme i dati da varie posizioni di storage (ad esempio, file system locali, storage compatibile con S3). Supporta la creazione di checkpoint, in modo che, qualora fosse necessario riavviare un processo, vengano elaborati solo i file non ancora completati, consentendo così di risparmiare tempo e risorse.

Trasformazione: questo modulo fornisce funzioni specifiche che verranno applicate ai dati, tra cui la conversione dei dati, la deduplicazione e il rilevamento delle informazioni di identificazione personale (PII). Il DPK dispone di una libreria di trasformazioni in via di sviluppo come suite di trasformazioni predefinite. Il framework consente inoltre a un collaboratore (che non abbia una conoscenza approfondita dei framework di calcolo distribuito, come Ray o Spark) di creare e sviluppare le proprie trasformazioni personalizzate. Ogni trasformazione funge da unità di lavoro autonoma e configurabile, è integrabile in pipeline e garantisce la preparazione dei dati su scala LLM.

Tempo di esecuzione: il tempo di esecuzione è l'ambiente di esecuzione specifico per la trasformazione che assegna il lavoro e il monitoraggio. Il DPK può funzionare in vari tempi di esecuzione, inclusi Python puro (con multiprocessing), Ray e Spark. Questa funzionalità offre all'utente la flessibilità necessaria per scalare la preparazione dei dati da un singolo laptop a un cluster di grandi dimensioni con migliaia di nodi. Il tempo di esecuzione gestisce l'assegnazione del lavoro ai lavoratori. I tempi di esecuzione permettono anche alle trasformazioni di utilizzare funzioni specifiche come classi condivise o negozi di oggetti. L'architettura complessiva del tempo di esecuzione è costituita da un “transform launcher” (il punto di ingresso), un “transform orchestrator” (il componente che esegue il workflow e crea i worker) e dai processori di file (il componente che elabora ogni singolo file). L'orchestrator utilizzerà il tempo di esecuzione per stabilire componenti condivisi e l'accesso ai dati che gli permetterà di trovare file con cui lavorare. Ogni processore di file leggerà, elaborerà e poi riscriverà i risultati e i metadati utilizzando chiamate di application programming interface (API).

Automazione e scalabilità

Le capacità di automazione e scalabilità del DPK sono innovative, in grado di adattarsi a diversi tempi di esecuzione come Local, Ray e Spark.

Con le sue nuove funzioni, il DPK si distingue dai progetti consolidati di preparazione dei dati come BigCode, DataTrove e Dolma. Un elemento differenziante importante è il numero di casi d'uso che supporta (pretraining, fine-tuning and retrieval-augmented generation (RAG)) e la dimensione dei dati che può supportare. A differenza di altri toolkit che supportano una singola modalità di dati, il DPK supporta dati in linguaggio naturale e dati di codice. Il DPK è estensibile, il che significa che aggiungere un numero qualsiasi di moduli scalabili è facile.

Per l'automazione, il DPK dispone di un'interfaccia a riga di comando (CLI) e un'opzione no-code utilizzando Kubeflow Pipelines (KFP), una piattaforma per implementare workflow scalabili di machine learning (ML) su Kubernetes. Questa funzione amplia il destinatario e consente una più ampia applicabilità ai data scientist e agli sviluppatori di applicazioni AI.

Le caratteristiche dell'integrazione con KFP sono: 

Scalabilità: KFP consente di scalare grandi set di dati e workflow ad alta complessità grazie a Kubernetes, che è una piattaforma di calcolo scalabile e on-demand.

Modularità: ogni workflow viene suddiviso in componenti riutilizzabili, che implementano prontamente workflow complessi e debugging aggiuntivo.

Riproducibilità: viene tracciata la cronologia di ogni esecuzione, il che consente di riprodurre gli esperimenti.

Visualizzazione: è disponibile un'interfaccia per monitorare le esecuzioni delle pipeline, visualizzare i risultati e risolvere i problemi. 

La scalabilità di DPK è supportata da studi sperimentali. Ad esempio, il toolkit richiede una riduzione proporzionale del tempo di esecuzione delle trasformazioni all'aumentare della scala dei nodi di elaborazione. Si adatta in modo uniforme a diversi tipi di workload, dall’annotazione di dati semplici a workload più complessi, come l’identificazione della lingua, che comporta costi computazionali aggiuntivi.

Gestione della pre-elaborazione dei dati per l'addestramento AI con il DPK

Man mano che le funzionalità dei sistemi AI migliorano, assumendo un ruolo sempre più centrale nei processi decisionali, diventa urgente la necessità di definire una governance che garantisca un’AI etica, sicura e conforme alle normative. Tuttavia, è importante sottolineare che la governance non inizia dai modelli: inizia dai dati.

Ciò che rende il DPK particolarmente prezioso è il modo in cui contribuisce direttamente agli obiettivi della governance dell'AI:

Sicurezza: il DPK "trasforma" identificando e rimuovendo contenuti tossici o dannosi grazie al suo sistema di rilevamento HAP (odio, abusi e volgarità).

Equità: le "trasformazioni" del DPK eliminano i bias attraverso la deduplicazione e il filtraggio dei dati di scarsa qualità o irrilevanti. 

Conformità: le "trasformazioni" del DPK individuano e oscurano le informazioni di identificazione personale (PII) in conformità con le normative in materia di privacy, quali il GDPR (General Data Protection Regulation) e l’HIPAA (Health Insurance Portability and Accountability Act).

Trasparenza: le "trasformazioni" del DPK aggiungono hash e punteggi di qualità dei documenti per aumentare la tracciabilità e la verificabilità.

Dai servizi sanitari alla finanza, dal settore pubblico a qualsiasi altro ambito in cui la fiducia riveste un ruolo fondamentale, il DPK contribuisce alla creazione di sistemi AI basati su dati gestiti in modo responsabile.

Caso d'uso reale: riepilogo dei documenti legali

Scenario: un'agenzia di governo sta creando un LLM specifico per il dominio per riassumere i documenti legali. Il set di dati contiene documenti pubblici, documenti legali e documenti di policy estratti da varie fonti.

Sfide di governance:

  • Alcune fonti non sono verificate o sono politicamente distorte.

  • Il set di dati include più lingue. 

  • Possibile linguaggio tossico o infiammatorio.

  • Le PII come nomi e indirizzi devono essere rimosse.

  • È frequente che vi siano presentazioni duplicate e testi standardizzati.

  • La qualità dei documenti varia enormemente. 

Soluzione: implementando una ricetta di governance che sfrutta il DPK, l'agenzia può garantire che il set di dati sia:

  • di provenienza etica

  • conforme alla privacy

  • di alta qualità e diversificato 

  • pronto per un addestramento LLM responsabile

Ricetta per una pipeline di governance

Se devi risolvere le problematiche presentate nel caso d'uso precedente, o in qualsiasi scenario consolidato per mitigare il rischio per la qualità dei dati, la sicurezza e la conformità, hai bisogno di una pipeline che imponga in modo rigoroso le politiche di governance. Il DPK rende possibile questa pipeline fornendo una serie di trasformazioni modulari che è possibile concatenare per pulire, filtrare e arricchire il set di dati.

Questa tabella illustra una semplice pipeline di governance in 6 fasi che soddisfa i requisiti principali per la governance dell'AI. Ogni passaggio è associato a un rischio o a un problema di qualità per garantire che il set di dati finale sia di provenienza etica, conforme alla privacy e pronto per lo sviluppo dell'AI responsabile.

Pipeline di governance dell'AI

Crea la tua pipeline di governance:

  1. Clona il repository: https://github.com/data-prep-kit/data-prep-kit

  2. Installa trasformazioni: pip install 'data-prep-toolkit-transforms [tutti] '

  3. Configura la tua pipeline utilizzando KFP o Python con dpk_transform_chain.

  4. Esegui la pipeline tramite la CLI oppure integrala nella tua piattaforma dati utilizzando Ray o Spark.

Trasformazioni disponibili del DPK

Il DPK contiene una serie di trasformazioni predefinite, categorizzate secondo diversi requisiti di preparazione dei dati.

Trasformazioni di inserimento di dati: queste trasformazioni convertono i dati da uno o più formati in un formato standardizzato. Ad esempio, file di codice compressi in formato Parquet, HTML/PDF in formato Parquet.

Trasformazioni universali (codice e linguaggio): queste trasformazioni possono essere utilizzate sia per dati di codice che per dati in linguaggio naturale . Ad esempio, la deduplicazione esatta e la deduplicazione fuzzy per rimuovere i record duplicati e ridimensionare i file in modo appropriato.

Trasformazioni solo linguistiche: queste trasformazioni sono per i dati in linguaggio naturale. Includono l'identificazione linguistica che identifica la lingua del testo, l'annotatore o il redattore PII che identifica e rimuove le informazioni di identificazione personale.

Trasformazioni di solo codice: sono per i dati di solo codice. Tra queste funzionalità figurano l'annotazione del linguaggio di programmazione, l'annotazione della qualità del codice e la pulizia dell'intestazione per individuare le informazioni relative a licenze e copyright. Il framework contiene anche trasformazioni per applicazioni RAG, come la suddivisione in blocchi dei documenti e un codificatore di testo che crea vettori di embedding per il testo. Queste trasformazioni sono un aspetto chiave per preparare i dati che verranno utilizzati in un database vettoriale. 

Il DPK è fondamentale per chiunque crei AI, in particolare applicazioni LLM. Questo toolkit è un framework pulito, scalabile e standardizzato che semplifica il processo complesso e talvolta laborioso della preparazione dei dati. Con un set completo di "trasformazioni" modulari per supportare sviluppatori e data scientist, è possibile pulire e strutturare i dati non elaborati e integrare aspetti significativi della governance dell'AI nel workflow. Ciò consente di garantire la qualità e 'affidabilità dei dati fondamentali utilizzati per la formazione e per la responsabilizzazione in materia di strategie etiche e di tutela della privacy. Il DPK migliora infine i sistemi AI garantendo responsabilità e affidabilità agli sviluppatori, permettendo l'innovazione dei modelli pur mantenendo una solida base di dati.