Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Basi di dati

Lester: Un Strumento per Pipeline ML più Pulite

Lester aiuta a semplificare il codice disordinato di data science per una gestione dei dati migliore.

― 7 leggere min


Codice più pulito perCodice più pulito perpipeline MLgestione dei dati organizzata.Lester trasforma codice disordinato in
Indice

L'apprendimento automatico (ML) viene usato sempre di più per automatizzare decisioni importanti. Tuttavia, molti di questi sistemi faticano a gestire i loro dati correttamente e a seguire le nuove regole sulla Protezione dei Dati. Un motivo è che gli strumenti usati per creare pipeline ML non sono spesso pensati per gestire i dati in modo chiaro ed efficace. La ricerca mostra che certe tecniche possono aiutare a gestire queste pipeline meglio, ma richiedono Codice pulito e ben strutturato. Purtroppo, i data scientist tendono a scrivere codice disordinato che rende difficile applicare queste tecniche.

La Sfida

I data scientist hanno spesso modi di lavorare consolidati che sono difficili da cambiare. Per questo, è poco realistico aspettarsi che inizino a scrivere codice in uno stile diverso. Invece di chiedere ai data scientist di modificare le loro abitudini, suggeriamo di usare modelli di linguaggio ampi (LLM) per aiutare a riscrivere il loro codice. Questi modelli possono prendere codice disordinato di scienza dei dati e tradurlo in uno stile più chiaro e organizzato, più facile da gestire.

La Necessità di Una Migliore Gestione dei Dati

Man mano che le aziende si affidano sempre di più alle pipeline ML per addestrare e distribuire i loro modelli, le sfide della gestione dei dati diventano più evidenti. Molte organizzazioni gestiscono numerose pipeline ML, ma affrontano ancora difficoltà con dati personali e sensibili. Ad esempio, ci sono stati casi in cui i sistemi hanno accidentalmente incluso informazioni sensibili, portando a seri problemi e questioni legali. Con l'uscita di nuove regolamentazioni sulla protezione dei dati, è cruciale che questi sistemi gestiscano i dati correttamente.

Le librerie ML attuali e i servizi cloud spesso non forniscono gli strumenti giusti per gestire i dati in modo efficace. Tendono a dare priorità alla flessibilità e facilità d'uso piuttosto che a una solida gestione dei dati. Questo significa che gli sviluppatori si trovano a dover gestire il peso della Conformità alle regole di protezione dei dati.

Soluzioni Attuali e i Loro Limiti

I ricercatori hanno lavorato per migliorare le applicazioni ML aggiungendo funzionalità come il tracciamento della storia dei dati e capacità di debug. Anche se questi miglioramenti sono preziosi, spesso hanno problemi ad integrarsi nell'uso reale perché il codice esistente non è strutturato in modo da consentire un uso efficace di queste funzionalità.

Un grande problema è che la maggior parte dei data scientist si concentra molto sugli aspetti ML del loro lavoro e non presta sufficiente attenzione a come preparano i dati. Spesso trovano noiosa la preparazione dei dati e scrivono codice veloce e sporco per sbrigarsi. Di conseguenza, hanno poca motivazione per rifattorizzare il loro codice in qualcosa di migliore.

Introduzione di Lester: Un Nuovo Approccio

Per risolvere questo problema, proponiamo uno strumento chiamato Lester. Lester utilizza le capacità degli LLM per aiutare a riscrivere il codice disordinato che creano i data scientist. L'obiettivo è convertire questo codice in un formato più organizzato che sia più facile da lavorare e gestire.

Automatizzando il processo di pulizia del codice, Lester può aiutare con i problemi di conformità e rendere più semplice per gli sviluppatori gestire i dati nelle loro applicazioni ML. Questo proof-of-concept mostra come gli LLM possano trasformare codice caotico di scienza dei dati in una pipeline chiara che traccia come i dati si muovono attraverso il sistema e può essere aggiornata all'occorrenza.

Un Esempio Pratico

Per illustrare l'utilità di Lester, consideriamo un fornitore di servizi finanziari ipotetico con un data lake che contiene informazioni sensibili sui clienti, compresi gli indirizzi email. Questa organizzazione utilizza più modelli ML per analizzare questi dati e fornire servizi.

Un giorno, il personale scopre che alcune email contenevano numeri di carta di credito non protetti. Questo potrebbe portare a seri rischi, e devono agire in fretta per eliminare queste informazioni sensibili dai loro sistemi. Tuttavia, il team si rende rapidamente conto che i dati critici potrebbero già essere mescolati nei dati elaborati da vari modelli ML nelle loro pipeline.

Il team affronta diverse sfide:

  1. Come possono identificare quali modelli e pipeline sono interessati?
  2. Come possono rimuovere i dati contaminati senza perdere tutto il resto?
  3. Come fanno a garantire di poter fornire prova di conformità alle regole di protezione dei dati mentre risolvono il problema?

Il codice disordinato che i data scientist hanno scritto complica questi compiti perché non mostra chiaramente come i dati fluiscono attraverso il sistema. Di conseguenza, il team si trova in una situazione difficile in cui potrebbe dover lavorare a lungo per correggere il problema.

Processo di Riscrittura del Codice

Lester può aiutare usando le capacità degli LLM per riscrivere parti del codice disordinato che gestisce la preparazione dei dati. Questo codice può poi essere trasformato in operazioni più adatte per gestire i dati in modo più pulito e organizzato. Il codice riscritto consentirebbe un tracciamento migliore di da dove provengono i dati e come cambiano durante la pipeline.

La bellezza di questo approccio è che può accelerare significativamente il processo di identificazione e correzione dei modelli e artefatti interessati. Invece di dover rieseguire ogni pipeline da zero per rimuovere i dati sensibili, Lester può fare aggiornamenti mirati rapidamente, risparmiando tempo e risorse.

Tracciamento della Provenienza per Una Migliore Conformità

Un altro vantaggio chiave dell'uso di Lester è la sua capacità di tracciare la storia delle modifiche ai dati, nota come tracciamento della provenienza. Ciò significa che ogni pezzo di dato può essere tracciato fino alla sua fonte. Nel contesto della conformità, questo è fondamentale. Se l'organizzazione deve dimostrare quali dati ha, come sono stati utilizzati o quando sono stati modificati, avere questa storia semplifica il processo.

Lester può trattare le uscite delle pipeline ML come viste dei dati iniziali. Questo consente aggiornamenti facili ogni volta che ci sono cambiamenti, come quando è necessario rimuovere informazioni sensibili. Poiché Lester tiene traccia delle modifiche apportate durante l'esecuzione iniziale della pipeline, può fare aggiornamenti mirati rapidamente ed efficientemente.

Valutazione e Risultati

In test preliminari, è chiaro che usare Lester per questi tipi di aggiornamenti può essere molto più veloce che partire da zero. Quando il team utilizza Lester per mirare a specifiche modifiche nei dati, può completare aggiornamenti in secondi, rispetto a potenziali ore o persino giorni se dovessero rieseguire l'intera pipeline.

Esperienza dell'Utente e Feedback

Per capire quanto possa essere utile Lester, abbiamo condotto un piccolo studio con gli utenti. I partecipanti hanno lavorato con una pipeline ML complessa e sono stati istruiti a fare alcune modifiche. I risultati hanno mostrato che i partecipanti hanno avuto difficoltà con compiti comuni che sono vitali per gestire efficacemente le pipeline. Questo evidenzia la necessità di sistemi come Lester per supportare i data scientist nel loro lavoro e ridurre la possibilità di errori.

Prossimi Passi per Lester

Andando avanti, Lester mira a migliorare la sua interfaccia utente per guidare meglio i data scientist attraverso il processo di riscrittura del codice. Abbiamo anche in programma di esplorare come rendere il processo di aggiornamento del codice ancora più fluido con l'aiuto degli LLM. Saranno inoltre sviluppate ulteriori funzionalità relative alla gestione della conformità, come il monitoraggio dei flussi di dati e la fornitura di informazioni.

In conclusione, man mano che l'apprendimento automatico diventa una base in vari settori, la capacità di gestire i dati in modo efficace non è mai stata così importante. Strumenti come Lester possono colmare il divario tra codice disordinato di scienza dei dati e pipeline organizzate e gestibili che rispettano le normative. Facendo ciò, hanno il potenziale di ridurre significativamente i rischi associati alla gestione dei dati nelle applicazioni di machine learning.

Fonte originale

Titolo: Messy Code Makes Managing ML Pipelines Difficult? Just Let LLMs Rewrite the Code!

Estratto: Machine learning (ML) applications that learn from data are increasingly used to automate impactful decisions. Unfortunately, these applications often fall short of adequately managing critical data and complying with upcoming regulations. A technical reason for the persistence of these issues is that the data pipelines in common ML libraries and cloud services lack fundamental declarative, data-centric abstractions. Recent research has shown how such abstractions enable techniques like provenance tracking and automatic inspection to help manage ML pipelines. Unfortunately, these approaches lack adoption in the real world because they require clean ML pipeline code written with declarative APIs, instead of the messy imperative Python code that data scientists typically write for data preparation. We argue that it is unrealistic to expect data scientists to change their established development practices. Instead, we propose to circumvent this "code abstraction gap" by leveraging the code generation capabilities of large language models (LLMs). Our idea is to rewrite messy data science code to a custom-tailored declarative pipeline abstraction, which we implement as a proof-of-concept in our prototype Lester. We detail its application for a challenging compliance management example involving "incremental view maintenance" of deployed ML pipelines. The code rewrites for our running example show the potential of LLMs to make messy data science code declarative, e.g., by identifying hand-coded joins in Python and turning them into joins on dataframes, or by generating declarative feature encoders from NumPy code.

Autori: Sebastian Schelter, Stefan Grafberger

Ultimo aggiornamento: 2024-09-16 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2409.10081

Fonte PDF: https://arxiv.org/pdf/2409.10081

Licenza: https://creativecommons.org/licenses/by-sa/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili