Condividi tramite


MLflow per il ciclo di vita dei modelli ML

Questo articolo descrive il modo in cui MLflow in Databricks viene usato per sviluppare agenti di intelligenza artificiale generativi di alta qualità e modelli di Machine Learning.

Nota

Se si sta appena iniziando a usare Azure Databricks, provare MLflow in Databricks Free Edition.

Che cos'è MLflow?

MLflow è una piattaforma open source per lo sviluppo di modelli e applicazioni di intelligenza artificiale generative. Include i componenti principali seguenti:

  • Rilevamento: consente di tenere traccia degli esperimenti per registrare e confrontare parametri e risultati.
  • Modelli: consente di gestire e distribuire modelli da varie librerie di Machine Learning a diverse piattaforme di gestione e inferenza del modello.
  • Registro modelli: consente di gestire il processo di distribuzione del modello dalla gestione temporanea all'ambiente di produzione, con funzionalità di controllo delle versioni e annotazione dei modelli.
  • Valutazione e monitoraggio degli agenti di intelligenza artificiale: consente di sviluppare agenti di intelligenza artificiale di alta qualità, permettendo di confrontare, valutare e individuare e risolvere problemi degli agenti.

MLflow supporta Java, Python, R e le API REST.

MLflow 3

MLflow 3 in Azure Databricks offre funzionalità di rilevamento, osservabilità e valutazione delle prestazioni degli esperimenti all'avanguardia per modelli di Machine Learning, applicazioni di intelligenza artificiale generative e agenti nel lakehouse di Databricks. Usando MLflow 3 in Azure Databricks, è possibile:

  • Tieni centralmente traccia e analizza le prestazioni dei tuoi modelli, delle applicazioni di intelligenza artificiale e degli agenti in tutti gli ambienti, dalle query interattive in un notebook di sviluppo o mediante distribuzioni batch di produzione o in tempo reale.

    Interfaccia utente di rilevamento dei modelli.

  • Orchestrare i flussi di lavoro di valutazione e distribuzione usando Il catalogo unity e accedere ai log di stato completi per ogni versione del modello, dell'applicazione di intelligenza artificiale o dell'agente.

    Processo di distribuzione complesso che include l'implementazione a fasi e la raccolta di metriche.

  • Visualizzare e accedere alle metriche e ai parametri del modello dalla pagina della versione del modello nel catalogo unity e dall'API REST.

    Pagina della versione del modello nel catalogo unity che mostra le metriche di più esecuzioni.

  • Annotare le richieste e le risposte (tracce) per tutte le applicazioni e gli agenti di intelligenza artificiale generativa, consentendo agli esperti umani e alle tecniche automatizzate (ad esempio LLM come valutatore) di fornire commenti e suggerimenti avanzati. È possibile sfruttare questo feedback per valutare e confrontare le prestazioni delle versioni dell'applicazione e creare set di dati per migliorare la qualità.

    Scheda Tracce della pagina del modello che mostra i dettagli di diverse tracce.

Queste funzionalità semplificano e semplificano la valutazione, la distribuzione, il debug e il monitoraggio per tutte le iniziative di intelligenza artificiale.

MLflow 3 introduce anche i concetti relativi ai modelli loggati e ai processi di distribuzione.

  • I modelli registrati consentono di tenere traccia dello stato di avanzamento di un modello durante il ciclo di vita. Quando si registra un modello usando log_model(), viene creato un oggetto LoggedModel che viene salvato in modo permanente durante tutto il ciclo di vita del modello, in ambienti e esecuzioni diversi e contiene collegamenti a artefatti come metadati, metriche, parametri e codice usato per generare il modello. È possibile usare il modello registrato per confrontare i modelli tra loro, trovare il modello più efficiente e tenere traccia delle informazioni durante il debug.
  • I processi di distribuzione possono essere usati per gestire il ciclo di vita del modello, inclusi passaggi come valutazione, approvazione e distribuzione. Questi flussi di lavoro del modello sono regolati da Unity Catalog e tutti gli eventi vengono salvati in un log attività disponibile nella pagina della versione del modello in Unity Catalog.

Vedere gli articoli seguenti per installare e iniziare a usare MLflow 3.

MLflow gestito da Databricks

Databricks offre una versione completamente gestita e ospitata di MLflow, basandosi sull'esperienza open source per renderla più affidabile e scalabile per l'uso aziendale.

Il diagramma seguente illustra come Databricks si integra con MLflow per eseguire il training e la distribuzione di modelli di Machine Learning.

MLflow si integra con Databricks per gestire il ciclo di vita di Machine Learning.

Databricks-managed MLflow è basato su Unity Catalog e Cloud Data Lake per unificare tutti i dati e gli asset di intelligenza artificiale nel ciclo di vita di ML:

  1. Feature store: Le ricerche automatiche delle feature di Databricks semplificano l'integrazione e riducono gli errori.
  2. Addestrare modelli: Usare Mosaic AI per addestrare modelli o ottimizzare i modelli di base.
  3. Rilevamento: MLflow tiene traccia del training registrando parametri, metriche e artefatti per valutare e confrontare le prestazioni del modello.
  4. Model Registry: MLflow Model Registry, integrato con Unity Catalog centralizza i modelli e gli artefatti di intelligenza artificiale.
  5. Model Serving: Mosaic AI Model Serving distribuisce i modelli in un endpoint dell'API REST.
  6. Monitoraggio : Mosaic AI Model Serving acquisisce automaticamente le richieste e le risposte per monitorare e risolvere i problemi dei modelli. MLflow arricchisce questi dati con dati di traccia per ogni richiesta.

Addestramento del modello

I modelli MLflow sono alla base dello sviluppo di intelligenza artificiale e Machine Learning in Databricks. I modelli MLflow sono un formato standardizzato per la creazione di pacchetti di modelli di Machine Learning e agenti di intelligenza artificiale generativi. Il formato standardizzato garantisce che i modelli e gli agenti possano essere usati da strumenti e flussi di lavoro downstream in Databricks.

  • Documentazione di MLflow - Modelli .

Databricks offre funzionalità che consentono di eseguire il training di diversi tipi di modelli di Machine Learning.

Monitoraggio degli esperimenti

Databricks utilizza gli esperimenti MLflow come unità organizzative per tenere traccia del tuo lavoro mentre sviluppi modelli.

Il rilevamento dell'esperimento consente di registrare e gestire parametri, metriche, artefatti e versioni del codice durante il training e lo sviluppo di agenti di Machine Learning. L'organizzazione dei log in esperimenti ed esecuzioni consente di confrontare i modelli, analizzare le prestazioni e iterare più facilmente.

Registro modelli con il catalogo Unity

MLflow Model Registry è un repository di modelli centralizzato, un'interfaccia utente e un set di API per la gestione del processo di distribuzione del modello.

Databricks integra Il Registro modelli con Unity Catalog per offrire governance centralizzata per i modelli. L'integrazione del catalogo Unity consente di accedere ai modelli tra aree di lavoro, tenere traccia della derivazione del modello e individuare i modelli per il riutilizzo.

Gestione dei modelli

Databricks Model Serving è strettamente integrato con MLflow Model Registry e offre un'interfaccia unificata e scalabile per la distribuzione, la governance e l'esecuzione di query sui modelli di intelligenza artificiale. Ogni modello usato è disponibile come API REST che è possibile integrare nelle applicazioni Web o client.

Sebbene siano componenti distinti, Model Serving si basa principalmente su MLflow Model Registry per gestire il controllo delle versioni dei modelli, la gestione delle dipendenze, la convalida e la governance.

Sviluppo e valutazione dell'agente di intelligenza artificiale

Per lo sviluppo di agenti di intelligenza artificiale, Databricks si integra con MLflow in modo analogo allo sviluppo di modelli di Machine Learning. Esistono tuttavia alcune differenze principali:

  • Per creare agenti di intelligenza artificiale in Databricks, usare Mosaic AI Agent Framework, che si basa su MLflow per tenere traccia del codice dell'agente, delle metriche delle prestazioni e delle tracce dell'agente.
  • Per valutare gli agenti in Databricks, usare Mosaic AI Agent Evaluation, che si basa su MLflow per tenere traccia dei risultati della valutazione.
  • Il tracciamento MLflow per gli agenti include anche MLflow Tracing. MLflow Tracing consente di visualizzare informazioni dettagliate sull'esecuzione dei servizi dell'agente. La traccia registra gli input, gli output e i metadati associati a ogni passaggio intermedio di una richiesta, consentendo di trovare rapidamente l'origine di un comportamento imprevisto negli agenti.

Il diagramma seguente illustra come Databricks si integra con MLflow per creare e distribuire agenti di intelligenza artificiale.

MLflow si integra con Databricks per gestire il ciclo di vita dell'app di intelligenza artificiale di generazione.

Databricks-managed MLflow è basato su Unity Catalog e Cloud Data Lake per unificare tutti i dati e gli asset di intelligenza artificiale nel ciclo di vita dell'app di intelligenza artificiale di generazione:

  1. Store di vettori e funzionalità: le ricerche automatizzate di vettori e funzionalità di Databricks semplificano l'integrazione e riducono gli errori.
  2. Creare e valutare gli agenti di intelligenza artificiale: Mosaic AI Agent Framework e Valutazione agente consentono di creare agenti e valutarne l'output.
  3. tracciamento & rilevazione: tracciamento MLflow acquisisce informazioni dettagliate sull'esecuzione degli agenti per migliorare l'osservabilità dell'intelligenza artificiale generativa.
  4. Model Registry: MLflow Model Registry, integrato con Unity Catalog centralizza i modelli e gli artefatti di intelligenza artificiale.
  5. Model Serving: Mosaic AI Model Serving distribuisce i modelli in un endpoint dell'API REST.
  6. Monitoraggio : MLflow acquisisce automaticamente le richieste e le risposte per monitorare ed effettuare il debugging dei modelli.

Funzionalità open source e MLflow gestite da Databricks

Per i concetti generali di MLflow, le API e le funzionalità condivise tra versioni open source e gestite da Databricks, consultare la documentazione di MLflow. Per le funzionalità esclusive di Databricks-managed MLflow, vedere la documentazione di Databricks.

La tabella seguente illustra le differenze principali tra MLflow open source e MLflow gestito da Databricks e fornisce collegamenti alla documentazione per altre informazioni:

Caratteristica Disponibilità di MLflow open source Disponibilità in MLflow gestito da Databricks
Sicurezza L'utente deve fornire il proprio livello di governance della sicurezza Sicurezza di Databricks di livello aziendale
Ripristino di emergenza Indisponibile Ripristino in caso di disastro di Databricks
Monitoraggio degli esperimenti API di tracciamento MLflow API MLflow Tracking integrata con monitoraggio avanzato degli esperimenti di Databricks
Il registro dei modelli Registro modelli MLflow Registro Modelli MLflow integrato con Databricks Unity Catalog
Integrazione del catalogo Unity Integrazione open source con Unity Catalog Catalogo Unity di Databricks
Distribuzione di modelli Integrazioni configurate dall'utente con soluzioni di gestione esterne (SageMaker, Kubernetes, servizi contenitore e così via) Servizio Modello Databricks e soluzioni di servizio esterne
Agenti di intelligenza artificiale Sviluppo MLflow LLM Integrazione dello sviluppo di MLflow LLM con il Mosaic AI Agent Framework e la Agent Evaluation
Crittografia Indisponibile Crittografia utilizzando le chiavi gestite dal cliente

Nota

La raccolta di dati di telemetria open source è stata introdotta in MLflow 3.2.0 ed è disabilitata in Databricks per impostazione predefinita. Per altri dettagli, vedere la documentazione relativa al rilevamento dell'utilizzo di MLflow.