Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo articolo, apprendi come effettuare la messa a punto dei modelli di linguaggio, inclusi alcuni metodi comuni e come l'applicazione dei risultati della messa a punto possa migliorare le prestazioni dei flussi di lavoro di intelligenza artificiale e apprendimento automatico su Servizio Azure Kubernetes (AKS).
Modelli linguistici pre-addestrati
I modelli di linguaggio pre-addestrati offrono un modo accessibile per iniziare a eseguire l'inferenza dell'intelligenza artificiale e sono ampiamente usati nell'elaborazione del linguaggio naturale. I PLM vengono allenati su corpora di testi su larga scala provenienti dall'Internet utilizzando reti neurali profonde e possono essere perfezionati su set di dati più piccoli per attività specifiche. Questi modelli sono in genere costituiti da miliardi di parametri, o pesi, appresi durante il processo di training preliminare.
Gli MLP possono apprendere rappresentazioni del linguaggio universale che descrivono le proprietà statistiche del linguaggio naturale, come la probabilità che parole o sequenze di parole si presentino in un determinato contesto. Queste rappresentazioni possono essere trasferite alle attività downstream, ad esempio la classificazione del testo, il riconoscimento delle entità denominate e la risposta alle domande, ottimizzando il modello in set di dati specifici dell'attività.
Vantaggi e svantaggi
La tabella seguente elenca alcuni vantaggi e svantaggi dell'uso dei modelli di linguaggio pre-addestrati nei flussi di lavoro di intelligenza artificiale e apprendimento automatico.
| Vantaggi | Svantaggi |
|---|---|
| • Inizia rapidamente con la distribuzione nel tuo ciclo di vita di apprendimento automatico. • Evitare costi di calcolo elevati associati al training del modello. • Riduce la necessità di archiviare set di dati con etichetta di grandi dimensioni. |
• Potrebbe fornire risposte generalizzate od obsolete in base alle origini dati del pre-addestramento. • Potrebbe non essere adatto per tutte le attività o i domini. • Le prestazioni possono variare a seconda del contesto di inferenza. |
Metodi di ottimizzazione
Ottimizzazione efficiente dei parametri
La messa a punto efficiente dei parametri (PEFT) è un metodo per regolare i modelli linguistici preaddestrati su set di dati relativamente piccoli con risorse di calcolo limitate. PEFT utilizza una combinazione di tecniche, come metodi additivi e selettivi per aggiornare i pesi, per migliorare le prestazioni del modello in compiti specifici. PEFT richiede risorse di calcolo minime e quantità flessibili di dati, il che lo rende adatto agli ambienti con risorse limitate. Questo metodo mantiene la maggior parte dei pesi del modello pre-addestrato originale e aggiorna i pesi rimanenti in base ai dati etichettati specifici del contesto.
Adattamento a rango basso
L’adattamento a basso rango (LoRA) è un metodo PEFT comunemente usato per personalizzare modelli linguistici di grandi dimensioni per nuovi compiti. Questo metodo tiene traccia delle modifiche apportate ai pesi del modello e archivia in modo efficiente matrici di peso più piccole che rappresentano solo i parametri sottoponibili a training del modello, riducendo l'utilizzo della memoria e la potenza di calcolo necessaria per l'ottimizzazione. LoRA crea risultati di ottimizzazione, noti come livelli di adattatore, che possono essere archiviati temporaneamente e inseriti nell'architettura del modello per i nuovi processi di inferenza.
L’adattamento a basso rango quantizzato (QLoRA) è un'estensione di LoRA che riduce ulteriormente l'utilizzo della memoria introducendo la quantizzazione ai livelli dell'adattatore. Per altre informazioni, vedere Rendere ancora più accessibili gli LLM con bitsandbites, quantizzazione a 4 bit e QLoRA.
Sperimentare con il fine-tuning dei modelli linguistici su Azure Kubernetes Service (AKS)
Kubernetes AI Toolchain Operator (KAITO) è un operatore open source che automatizza le distribuzioni di modelli linguistici di piccole e grandi dimensioni nei cluster Kubernetes. Il componente aggiuntivo dell'operatore della toolchain di intelligenza artificiale sfrutta KAITO per agevolare l'onboarding, ridurre i costi dell'infrastruttura e diminuire i tempi per raggiungere l'inferenza per i modelli open source in un cluster AKS. Il componente aggiuntivo effettua automaticamente il provisioning dei nodi GPU di dimensioni appropriate e configura il server di inferenza associato come server endpoint al modello scelto.
Con KAITO versione 0.3.0 o successiva, è possibile ottimizzare in modo efficiente i modelli con licenza MIT e Apache 2.0 supportati con le funzionalità seguenti:
- Archivia i dati di addestramento per la riqualificazione come immagine del container in un registro di container privato.
- Ospita la nuova immagine dello strato adattatore in un registro di contenitori privato.
- Eseguire in modo efficiente l'estrazione dell'immagine per l'inferenza utilizzando livelli di adattamento in nuovi scenari.
Per indicazioni su come iniziare a ottimizzare KAITO, vedere la documentazione dell'API Kaito Tuning Workspace. Per altre informazioni sulla distribuzione di modelli linguistici con KAITO nei cluster AKS, vedere il repository GitHub del modello KAITO.
Importante
Il software open source è citato nella documentazione e negli esempi di AKS. Il software che distribuisci è escluso dai contratti di servizio di AKS, dalla garanzia limitata e dal supporto Azure. Quando si utilizza la tecnologia open source insieme ad AKS (Azure Kubernetes Service), consultare le opzioni di supporto disponibili dalle rispettive comunità e dai manutentori dei progetti per sviluppare un piano.
Microsoft si assume la responsabilità di creare i pacchetti open source distribuiti su AKS. Questa responsabilità include la proprietà completa del processo di compilazione, analisi, firma, convalida e hotfix, oltre al controllo sui file binari nelle immagini del contenitore. Per altre informazioni, vedere Gestione delle vulnerabilità per il servizio Azure Kubernetes e Copertura del supporto del servizio Azure Kubernetes.
Passaggi successivi
Per altre informazioni sui carichi di lavoro di Intelligenza artificiale e sull’apprendimento automatico in contenitori nel servizio Azure Kubernetes, vedere gli articoli seguenti: