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

Prompt Tuning

Il prompt tuning adatta un modello congelato a un'attività addestrando alcuni vettori di prompt soft aggiunti al suo input, così un solo modello può svolgere molte attività.

Il prompt tuning adatta un modello di base preaddestrato a un nuovo compito addestrando un piccolo insieme di vettori, detto soft prompt, che viene anteposto all'input mentre tutti i pesi del modello restano congelati. Il soft prompt vive nello stesso spazio dei vettori di embedding dei token del modello, ma i suoi vettori vengono appresi tramite retropropagazione e non devono corrispondere a parole reali. Brian Lester, Rami Al-Rfou e Noah Constant di Google hanno introdotto il metodo in The Power of Scale for Parameter-Efficient Prompt Tuning, presentato a EMNLP 2021. Hanno osservato che un prompt di cinque token per il modello T5-XXL da 11 miliardi di parametri richiede solo 20.480 parametri per attività e hanno mostrato che, quando i modelli superano i miliardi di parametri, il prompt tuning raggiunge l'accuratezza del tuning dell'intero modello.

Come funziona il prompt tuning#

Un modello linguistico di grandi dimensioni (LLM) converte ogni token di input in un vettore di embedding prima che venga elaborato dai livelli Transformer. Il prompt tuning antepone k vettori aggiuntivi a questa sequenza; Lester e colleghi hanno testato lunghezze da 1 a 150 e ne hanno usate 100 come impostazione predefinita. Durante l'addestramento, la funzione di perdita dell'attività viene propagata all'indietro attraverso la rete congelata fino all'input, e l'ottimizzatore aggiorna solo i vettori del prompt. Il risultato è un piccolo tensore per ogni attività. Poiché il modello in sé non cambia mai, rimuovere il prompt ripristina il comportamento originale senza rischio di oblio catastrofico; una singola copia distribuita può servire molte attività contemporaneamente, con ogni richiesta in un batch che include il proprio soft prompt, una modalità che Lester e colleghi chiamano inferenza a compiti misti.

L'esempio seguente in PyTorch esegue il tuning di un soft prompt di 8 vettori per l'analisi del sentiment su GPT-2 congelato di Transformers di Hugging Face, usando quattro recensioni di addestramento e otto di test:

import torch
from torch.nn.functional import cross_entropy
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2").requires_grad_(False)  # freeze all 124M weights
embed = model.get_input_embeddings()

# Soft prompt: 8 trainable vectors in GPT-2's embedding space, initialized from the word " review"
soft_prompt = torch.nn.Parameter(embed.weight[tokenizer.encode(" review")].repeat(8, 1).clone())
optimizer = torch.optim.Adam([soft_prompt], lr=0.01)
labels = tokenizer.encode(" positive negative")  # token ids for label 0 and label 1

# Reviews alternate between positive (label 0) and negative (label 1)
train = ["Loved every minute.", "A waste of time.", "Great story and acting.", "Boring and slow."]
test = ["What a wonderful film.", "I fell asleep halfway.", "A fantastic ending.", "Terrible dialogue."]
test += ["A joy to watch.", "Dull and predictable.", "Superb from start to end.", "I want my money back."]


def label_scores(text):
    """Score both label tokens after the soft prompt and the review."""
    ids = tokenizer.encode(f"{text} Sentiment:", return_tensors="pt")
    return model(inputs_embeds=torch.cat([soft_prompt[None], embed(ids)], dim=1)).logits[0, -1, labels]


def correct():
    """Count held-out reviews whose higher-scoring label is right."""
    with torch.no_grad():
        return sum(int(label_scores(text).argmax()) == i % 2 for i, text in enumerate(test))


print(f"Held-out reviews correct before tuning: {correct()}/8")
for step in range(30):
    loss = sum(cross_entropy(label_scores(text), torch.tensor(i % 2)) for i, text in enumerate(train))
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
print(f"After tuning: {correct()}/8, training {soft_prompt.numel():,} of {model.num_parameters():,} parameters")

Stampa Held-out reviews correct before tuning: 5/8 e poi After tuning: 7/8, training 6,144 of 124,439,808 parameters. Trenta passaggi di Adam su quattro esempi hanno modificato solo 6.144 numeri, lo 0,005% del modello, e GPT-2 congelato ha classificato correttamente altre due recensioni mai viste.

Prefix tuning e visual prompt tuning#

Il prompt tuning appartiene a una famiglia di metodi basati su prompt continui nell'ambito del fine-tuning efficiente in termini di parametri (PEFT). Il prefix tuning di Xiang Lisa Li e Percy Liang apprende vettori anteposti a ogni livello Transformer, circa lo 0,1% dei parametri di GPT-2 o BART, e ha eguagliato il fine-tuning completo nella generazione da tabelle a testo e nella sintesi. Il prompt tuning semplifica questo metodo apprendendo vettori solo nel livello di input.

L'idea si applica anche alla visione. Il Visual Prompt Tuning (VPT) di Menglin Jia e colleghi antepone token apprendibili ai token delle patch di un Vision Transformer (ViT) congelato, addestrando meno dell'1% dei parametri, e ha superato il fine-tuning completo in molte configurazioni di classificazione delle immagini. Per i modelli visione-linguaggio, il Context Optimization (CoOp) di Kaiyang Zhou e colleghi sostituisce le parole scritte a mano in un prompt CLIP, come "una foto di", con vettori appresi. Su 11 dataset, CoOp ha superato i prompt creati a mano con uno o due esempi etichettati per classe e li ha migliorati di circa il 15% in media con 16 esempi per classe.

I rilevatori a vocabolario aperto si adattano in modo correlato. Ultralytics YOLOE trasforma i nomi delle classi in vettori di embedding testuali dei prompt, e la sua procedura di sondaggio lineare per dataset personalizzati fonde i vettori di embedding dei nomi delle classi del dataset nell'ultima convoluzione di ogni ramo di classificazione, quindi addestra solo quei livelli mentre backbone, neck e resto della head rimangono congelati.

  • Prompt engineering: Una persona scrive il prompt come testo, talvolta detto prompt rigido, e non viene addestrato nulla. Il prompt tuning apprende il prompt dai dati etichettati e richiede l'accesso ai gradienti del modello, quindi si applica ai modelli con pesi aperti.
  • Fine-tuning completo: Aggiorna tutti i pesi, producendo una copia completa del modello per ogni attività e rischiando l'oblio catastrofico delle competenze precedenti. Lester e colleghi hanno rilevato che i modelli sottoposti a prompt tuning erano anche più robusti al cambiamento di dominio rispetto a quelli sottoposti a tuning completo.
  • LoRA: Aggiunge matrici a basso rango addestrabili all'interno dei livelli dei pesi del modello. Il prompt tuning lascia intatti i livelli e modifica solo l'input.
  • Apprendimento few-shot nel prompt: Inserisce esempi etichettati nella finestra di contesto come testo a ogni richiesta. Un soft prompt sottoposto a tuning memorizza ciò che gli esempi insegnano in pochi vettori e costa solo k posizioni di input aggiuntive.

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