Glossario

Integrazione continua (CI)

Migliora i flussi di lavoro AI/ML con l'integrazione continua. Automatizza i test, migliora la qualità del codice e semplifica lo sviluppo dei modelli.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

L'integrazione continua (CI) è una pratica fondamentale nello sviluppo del software moderno ed è sempre più cruciale nei campi dell'intelligenza artificiale (AI) e del machine learning (ML). Consiste nell'unire frequentemente le modifiche al codice provenienti da più collaboratori in un repository centrale, dopodiché vengono eseguiti build e test automatici. L'obiettivo principale della CI è quello di individuare tempestivamente i problemi di integrazione, migliorare la qualità del codice e snellire il flusso di lavoro dello sviluppo. L'automazione e il rapido ciclo di feedback sono particolarmente vantaggiosi per i progetti complessi, come quelli che prevedono la formazione e l'implementazione di un sistema di sicurezza. Ultralytics YOLO di Ultralytics per le attività di computer vision.

Perché l'integrazione continua è importante nell'AI/ML?

La natura iterativa dello sviluppo di AI/ML, che prevede esperimenti con dati, modelli e parametri (come la regolazione degli iperparametri e l'aumento dei dati), rende il CI particolarmente prezioso. L'integrazione del CI fornisce un feedback rapido sulle modifiche, assicurando che il nuovo codice si integri correttamente con la base di codice esistente e che le prestazioni del modello non si riducano inaspettatamente. I vantaggi principali includono:

  • Individuazione precoce dei bug: I test automatizzati individuano rapidamente gli errori dopo l'unione delle modifiche al codice, riducendo i costi e gli sforzi per correggerli in seguito.
  • Miglioramento della qualità del codice: Test e integrazioni coerenti incoraggiano pratiche di codifica migliori e codebase manutenibili. Strumenti come linters e analizzatori statici fanno spesso parte della pipeline CI.
  • Cicli di sviluppo più rapidi: L'automazione riduce le attività di testing manuale e permette agli sviluppatori di concentrarsi sulla creazione delle funzionalità.
  • Prestazioni coerenti del modello: Le pipeline di CI possono includere passaggi per valutare l'accuratezza del modello, la precisione, il richiamo e altre metriche rilevanti, evitando le regressioni. Spesso si tratta di controllare metriche come il punteggio F1 o la precisione media (mAP).
  • Collaborazione migliorata: L'integrazione frequente riduce al minimo i conflitti di merge e mantiene il team al lavoro su una base di codice aggiornata.

Come funziona la CI nei progetti AI/ML

In un tipico progetto di AI/ML che utilizza il CI, il processo inizia spesso quando uno sviluppatore effettua il commit delle modifiche al codice (compresi gli script del modello, i file di configurazione o persino le nuove fasi di elaborazione dei dati) in un sistema di controllo della versione condiviso come Git. Questo commit innesca automaticamente una pipeline CI, spesso gestita da piattaforme come Jenkins, GitLab CI/CD o GitHub Actions. La pipeline in genere esegue diversi passaggi:

  1. Build: Compila il codice e crea gli artefatti necessari (ad esempio, le immagini Docker).
  2. Test unitari: Esegue piccoli test isolati su singoli componenti del codice.
  3. Test di integrazione: Verifica l'interazione tra le diverse parti del sistema.
  4. Convalida del modello: Esegue test specifici per il modello ML, come la verifica dell'integrità dei dati, la convalida dell'architettura del modello o l'esecuzione dell'inferenza su un piccolo set di dati di prova.
  5. Test delle prestazioni: Valuta le metriche delle prestazioni del modello(mAP, precisione, latenza) rispetto a benchmark predefiniti o a versioni precedenti. Questo potrebbe comportare modalità di benchmarking.
  6. Reporting: Notifica al team i risultati della compilazione e dei test, spesso integrandosi con strumenti di comunicazione come Slack.

Ultralytics utilizza ampiamente il CI; puoi saperne di più sui nostri processi nella Guida al CI diUltralytics .

Applicazioni reali dell'integrazione continua nell'AI/ML

L'integrazione continua viene utilizzata in diverse applicazioni AI/ML del mondo reale per migliorare l'efficienza e l'affidabilità.

  • Sviluppo di un sistema di rilevamento di oggetti: Un'azienda che sviluppa un sistema di rilevamento di oggetti, magari utilizzando Ultralytics YOLO11potrebbe utilizzare il CI per testare automaticamente le nuove modifiche al codice. Ogni commit potrebbe innescare una pipeline che riqualifica o convalida il modello su un sottoinsieme di dati (come COCO128), esegue valutazioni per verificare la mAP e la velocità di inferenza e si assicura che le modifiche non abbiano un impatto negativo sulle prestazioni prima dell'unione. Questo aiuta a mantenere la qualità del modello per le applicazioni di AI nel settore automobilistico o della sicurezza.
  • Raffinamento del modello di elaborazione del linguaggio naturale (NLP): Un team che lavora su un modello di analisi del sentimento utilizzando tecniche NLP può implementare il CI. Ogni aggiornamento del codice (ad esempio, la modifica dell'estrazione delle caratteristiche o dell'architettura del modello) attiva automaticamente dei test. Questi test potrebbero eseguire il modello aggiornato su un set di dati di convalida, confrontando l'accuratezza della classificazione del sentiment e il punteggio F1 con i risultati di base. In questo modo l'efficacia del modello viene continuamente monitorata e migliorata.

Integrazione continua Vs. Consegna/Distribuzione continua (CD)

Sebbene sia strettamente correlata, la CI si distingue dalla Continuous Delivery e dalla Continuous Deployment (CD).

  • Integrazione continua (CI): Si concentra sull'integrazione frequente delle modifiche al codice e sulla loro verifica automatica. Il risultato è una build convalidata e pronta per le fasi successive.
  • Consegna continua (CD): Estende la CI preparando automaticamente le modifiche al codice convalidate per il rilascio in un ambiente di staging o di produzione. Il deployment in produzione viene solitamente attivato manualmente. Puoi leggere ulteriori informazioni sulle differenze in questa guida di Atlassian.
  • Distribuzione continua (CD): Fa un ulteriore passo avanti distribuendo automaticamente ogni modifica convalidata direttamente in produzione senza alcun intervento manuale.

Le pratiche di CI e CD sono componenti fondamentali delle Machine Learning Operations (MLOps), che mirano a semplificare l'intero ciclo di vita dell'apprendimento automatico, dallo sviluppo alla distribuzione e al monitoraggio. Piattaforme come Ultralytics HUB possono aiutare a gestire parti di questo ciclo di vita, tra cui l'addestramento e la distribuzione dei modelli.

Leggi tutto