Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

LoRA (Low-Rank Adaptation)

LoRA esegue il fine-tuning di modelli di grandi dimensioni congelandone i pesi e addestrando piccole matrici di aggiornamento a basso rango, riducendo così i parametri addestrabili, la memoria e lo spazio di archiviazione.

LoRA, abbreviazione di Adattamento a basso rango, è un metodo di fine-tuning efficiente in termini di parametri (PEFT) che adatta un modello preaddestrato di grandi dimensioni a un nuovo compito congelando i suoi pesi originali e addestrando una piccola coppia di matrici insieme a layer selezionati. Il loro prodotto è un aggiornamento a basso rango che viene aggiunto ai pesi congelati, quindi solo una frazione minima dei parametri riceve gradienti. Introdotto da Hu et al. di Microsoft nel 2021, LoRA ha ridotto di 10.000 volte i parametri addestrabili di GPT-3 175B e di 3 volte la memoria GPU necessaria per l'addestramento rispetto al fine-tuning completo con Adam, ottenendo al contempo risultati pari o superiori al fine-tuning completo su RoBERTa, DeBERTa, GPT-2 e GPT-3. Oggi è ampiamente usato per personalizzare modelli linguistici di grandi dimensioni (LLM), modelli di diffusione e vision transformer su hardware con risorse limitate. LoRa, il protocollo radio a lungo raggio per dispositivi IoT, è un termine non correlato.

Come funziona LoRA#

Il fine-tuning modifica una matrice dei pesi preaddestrata W di dimensioni d × k tramite un aggiornamento ΔW. LoRA presuppone che questo aggiornamento abbia un rango intrinseco basso, quindi può essere scritto come prodotto di due matrici sottili: ΔW = B × A, dove A è r × k, B è d × r e il rango r è molto più piccolo di d o k. L'output del layer diventa h = Wx + (α / r) × BAx, dove α è una costante di scala fissa. A viene inizializzata con piccoli valori casuali e B con zeri, quindi l'addestramento parte esattamente dal modello preaddestrato. Durante la retropropagazione vengono aggiornate solo A e B, eliminando anche lo stato dell'ottimizzatore per tutti i pesi congelati.

Per una proiezione 4096 × 4096, il fine-tuning completo addestra circa 16,8 milioni di pesi, mentre un adapter di rango 8 ne addestra 8 × (4096 + 4096) = 65.536. Lo script PyTorch qui sotto crea un adapter di questo tipo e lo integra nel layer congelato:

import torch
from torch import nn

# A frozen pretrained 4096 x 4096 projection, like one in a transformer attention block
base = nn.Linear(4096, 4096).requires_grad_(False)

# LoRA's trainable rank-8 update: B @ A, scaled by alpha / r
# B starts at zero, so the adapted layer initially matches the pretrained one
r, alpha = 8, 16
A = nn.Parameter(torch.randn(r, 4096) * 0.01)
B = nn.Parameter(torch.zeros(4096, r))
trainable = A.numel() + B.numel()
total = trainable + sum(p.numel() for p in base.parameters())
print(f"Trainable: {trainable:,} of {total:,} parameters ({trainable / total:.2%})")

# After training, merge the update into the base weight so inference costs nothing extra
nn.init.normal_(B, std=0.01)  # stand-in for trained values
x = torch.randn(2, 4096)
adapted = base(x) + (alpha / r) * (x @ A.T @ B.T)
merged = nn.functional.linear(x, base.weight + (alpha / r) * B @ A, base.bias)
print(f"Merged layer matches adapter output: {torch.allclose(adapted, merged, atol=1e-5)}")

L'adapter addestra 65.536 dei 16.846.848 parametri del layer, lo 0,39%, e integrare B × A in W produce gli stessi output dell'esecuzione separata dell'adapter. I modelli LoRA integrati funzionano quindi esattamente alla stessa velocità dell'originale, un vantaggio rispetto ai precedenti layer adapter, che aggiungono calcoli a ogni passaggio in avanti.

Usare LoRA nella pratica#

Il documento originale adattava solo le proiezioni di query e value dell'attenzione del transformer, mentre oggi molte configurazioni interessano ogni layer lineare. Il rango e α sono i principali iperparametri: la libreria Hugging Face PEFT usa come valori predefiniti r = 8 e α = 8. Poiché il modello di base resta invariato, una distribuzione può conservarne una sola copia e sostituire gli adapter specifici per i singoli compiti. Con rango 4 sulle proiezioni di query e value di GPT-3 175B, ogni checkpoint adattato è passato da 350 GB a circa 35 MB, diventando circa 10.000 volte più piccolo.

  • Modelli linguistici: I team adattano LLM aperti a un dominio, uno stile o un formato di istruzioni usando una sola GPU, spesso combinando LoRA con dati per l'addestramento alle istruzioni.
  • Generazione di immagini: I file LoRA insegnano a Stable Diffusion e a modelli simili un personaggio, un prodotto o uno stile artistico e vengono condivisi e sovrapposti separatamente dal checkpoint di base.
  • Modelli visivi e multimodali: Gli adapter specializzano i vision transformer e i modelli visione-linguaggio (VLM) per immagini mediche, industriali o di documenti senza riaddestrare il backbone.

Varianti#

  • QLoRA: Congela il modello di base con precisione NormalFloat a 4 bit e addestra gli adapter LoRA sovrapposti. Dettmers et al. l'hanno usato per eseguire il fine-tuning di un modello da 65 miliardi di parametri su una singola GPU da 48 GB, mantenendo le prestazioni del fine-tuning completo a 16 bit.
  • DoRA: Scompone ogni peso preaddestrato in modulo e direzione e applica LoRA solo alla direzione, riducendo il divario di accuratezza rispetto al fine-tuning completo a parità di costo d'inferenza.
  • Fine-tuning efficiente in termini di parametri: Il termine ombrello per i metodi che addestrano solo una piccola parte di un modello. Congelare i layer è la forma più semplice e Ultralytics YOLO lo rende disponibile come argomento di addestramento freeze, che mantiene i primi N layer di un modello YOLO26 ai pesi preaddestrati mentre si addestrano i restanti.
  • Fine-tuning completo: aggiorna ogni peso e archivia una copia del modello a dimensione intera per ogni attività. In programmazione e matematica, il fine-tuning completo ha superato nettamente LoRA standard, mentre LoRA ha limitato maggiormente la dimenticanza catastrofica delle altre capacità del modello di base.
  • Prompt tuning: Apprende embedding di prompt morbidi da anteporre all'input, mantenendo congelati tutti i pesi del modello.
  • Transfer learning: L'idea generale di riutilizzare le conoscenze acquisite in un compito per un altro. LoRA è un modo efficiente per farlo.
  • Fusione di modelli: Combina i pesi di modelli sottoposti separatamente a fine-tuning; un caso comune consiste nel fondere diversi adapter LoRA in un unico modello di base.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning