Capire il Prompt Tuning: migliora i tuoi modelli linguistici con precisione
Il prompt tuning è una tecnica utilizzata per migliorare le prestazioni di un modello linguistico pre-addestrato senza modificarne l’architettura interna.
Nel campo in rapida evoluzione dei Large Language Model (LLM), restare al passo con approcci all’avanguardia come il prompt tuning è fondamentale. Questa tecnica, applicata a modelli fondamentali già addestrati, migliora le prestazioni senza i costi computazionali elevati associati al training tradizionale dei modelli.
In questo articolo esploreremo le basi del prompt tuning, lo confronteremo con il fine-tuning e il prompt engineering e ne discuteremo i principali vantaggi. Forniremo anche un esempio pratico utilizzando la piattaforma di HuggingFace, in cui eseguiamo il prompt tuning di un modello bloomz-560m. Questa guida ha l’obiettivo di approfondire la tua comprensione del prompt tuning e ispirarne l’integrazione nei tuoi progetti.
Che cos’è il Prompt Tuning?
Il prompt tuning è una tecnica pensata per migliorare le prestazioni di un modello linguistico pre-addestrato senza alterarne l’architettura di base. Invece di modificare i pesi strutturali profondi del modello, il prompt tuning regola i prompt che guidano la risposta del modello. Questo metodo si basa sull’introduzione di "soft prompt", un insieme di parametri ottimizzabili inseriti all’inizio della sequenza di input.
Il diagramma confronta l’approccio tradizionale di tuning del modello con il prompt tuning. Nota che nel model tuning ogni task richiede un modello separato. Il prompt tuning, invece, utilizza lo stesso modello fondamentale su più task regolando prompt specifici per il task.
Come funziona il prompt tuning?
1. Inizializzazione dei soft prompt
I soft prompt sono token costruiti artificialmente che vengono aggiunti alla sequenza di input del modello. Questi prompt possono essere inizializzati in diversi modi. È comune l’inizializzazione casuale, ma possono anche essere inizializzati sulla base di determinate euristiche. Una volta inizializzati, i soft prompt vengono anteposti ai dati di input. Quando il modello elabora questi dati, considera sia i soft prompt sia l’input reale.
2. Forward pass e valutazione della loss
Il processo di training è solitamente simile a quello dell’addestramento di una rete neurale profonda (DNN) standard. Si inizia con una forward pass in cui il modello elabora l’input combinato attraverso i propri livelli, producendo un output. Questo output viene quindi confrontato con il risultato desiderato utilizzando una funzione di perdita, che misura la discrepanza tra l’output del modello e il valore atteso effettivo.
Backpropagation
Durante la backpropagation, gli errori vengono propagati all’indietro attraverso la rete. Tuttavia, invece di regolare i pesi della rete, modifichiamo solo i parametri dei soft prompt. Questo processo si ripete per più epoche, con i soft prompt che imparano gradualmente a guidare l’elaborazione degli input da parte del modello in modo da minimizzare l’errore per il task dato.
Iterazione
Il processo di forward pass, valutazione della loss e backpropagation viene ripetuto per più epoche. Nel tempo, questi soft prompt imparano a modellare l’input in modi che riducono costantemente il punteggio di loss, migliorando così le prestazioni del modello sul task specifico senza compromettere le sue capacità sottostanti.
Prompt Tuning VS Fine-Tuning VS Prompt Engineering
Prompt tuning, fine-tuning e prompt engineering sono tre metodi distinti applicati a LLM pre-addestrati per migliorarne le prestazioni su un task specifico. Questi metodi non si escludono a vicenda e ciascuno è adatto a un particolare caso d’uso.
Fine-tuning
Il fine-tuning è il più intensivo in termini di risorse e comporta un ri-addestramento completo del modello su un dataset specifico per uno scopo preciso. Questo regola i pesi del modello pre-addestrato, ottimizzandolo per le sfumature dettagliate dei dati, ma richiede notevoli risorse computazionali e aumenta il rischio di overfitting. Molti LLM come ChatGPT vengono sottoposti a fine-tuning dopo il training generico iniziale sul compito di previsione della parola successiva. Il fine-tuning insegna a questi modelli a funzionare come assistenti digitali, rendendoli significativamente più utili di un modello addestrato in modo generale.
Prompt tuning
Il prompt tuning regola un insieme di parametri aggiuntivi, noti come "soft prompt", che sono integrati nell’elaborazione dell’input del modello. Questo metodo modifica il modo in cui il modello interpreta i prompt di input senza una revisione completa dei suoi pesi, offrendo un equilibrio tra miglioramento delle prestazioni ed efficienza delle risorse. È particolarmente prezioso quando le risorse computazionali sono limitate o quando è richiesta flessibilità su più task, perché dopo l’applicazione della tecnica i pesi originali del modello rimangono invariati.
Prompt engineering
Il prompt engineering, invece, non prevede alcun training o ri-addestramento. Si basa completamente sull’utente che progetta i prompt per il modello. Richiede una comprensione sfumata delle capacità di elaborazione del modello e sfrutta la conoscenza intrinseca incorporata nel modello. Il prompt engineering non richiede risorse computazionali, poiché si affida esclusivamente alla formulazione strategica degli input per ottenere risultati. Dai un’occhiata al corso di DataCamp su prompt engineering per sviluppatori per saperne di più.
Confronto
Ognuna di queste tecniche offre un approccio diverso per sfruttare le capacità dei modelli pre-addestrati. La scelta tra esse dipende dalle esigenze specifiche dell’applicazione, come la disponibilità di risorse computazionali, il requisito di personalizzazione del modello e il livello desiderato di intervento sui parametri di apprendimento del modello.
Metodo
Intensità di risorse
Training richiesto
Ideale per
Fine-Tuning
Alta
Sì
Task che richiedono profonda personalizzazione del modello
Prompt Tuning
Bassa
Sì
Mantenere l’integrità del modello tra più task
Prompt Engineering
Nessuna
No
Adattamenti rapidi senza costo computazionale.
Ogni metodo ha il suo spazio in base alle esigenze specifiche del tuo progetto.
Vantaggi del Prompt Tuning
Il prompt tuning porta in dote diversi vantaggi chiave, che lo rendono una tecnica imprescindibile per ottimizzare i Large Language Model.
Efficienza delle risorse
Il prompt tuning mantiene invariati i parametri del modello pre-addestrato, riducendo sensibilmente la potenza computazionale necessaria. Questa efficienza è cruciale soprattutto in contesti con risorse limitate, permettendo un uso sofisticato dei modelli senza costi elevati. Con l’aumentare della dimensione media dei modelli fondamentali, "congelare" i parametri del modello diventa ancora più allettante, poiché non è necessario distribuire un modello separato per ciascun task.
Implementazione rapida
A differenza del fine-tuning completo, il prompt tuning richiede la regolazione solo di un piccolo insieme di parametri dei soft prompt. Questo velocizza il processo di adattamento, consentendo passaggi più rapidi tra task diversi e riducendo i tempi di fermo.
Integrità del modello e mantenimento della conoscenza
Mantenendo intatte l’architettura e i pesi del modello, il prompt tuning preserva le capacità e le conoscenze originarie incorporate nel modello pre-addestrato. Ciò è fondamentale per mantenere affidabilità e generalizzabilità del modello in varie applicazioni.
Flessibilità sui task
Il prompt tuning consente di utilizzare un unico modello fondamentale per più task semplicemente cambiando i soft prompt. Questo approccio riduce la necessità di addestrare e mantenere modelli separati per ogni task specifico, migliorando la scalabilità e semplificando la gestione dei modelli.
Minore intervento umano
Il prompt tuning richiede un intervento umano significativamente inferiore rispetto al prompt engineering, in cui la redazione accurata di prompt per un determinato task può essere soggetta a errori e richiedere molto tempo. Al contrario, l’ottimizzazione automatizzata dei soft prompt durante il training riduce al minimo l’errore umano e massimizza l’efficienza.
Prestazioni competitive
Le ricerche indicano che, per modelli di grandi dimensioni, il prompt tuning può raggiungere livelli di prestazioni paragonabili a quelli del fine-tuning. Questo vantaggio diventa sempre più significativo con la crescita delle dimensioni dei modelli, combinando alta efficienza con risultati solidi.
Approccio passo dopo passo al Prompt Tuning
Per questa guida applicheremo il prompt tuning al modello bloomz-560m di BigScience. Lavoreremo nell’ecosistema Hugging Face utilizzando la libreria PEFT (Parameter-Efficient Fine-Tuning).
Sebbene qui ci concentreremo sul task di causal language modeling, la libreria PEFT supporta vari task, modelli e tecniche di tuning. Puoi trovare metodi PEFT compatibili per altri modelli e task nella pagina di documentazione di PEFT.
1. Caricamento del modello e del tokenizer
Per iniziare, carichiamo il modello e il tokenizer dal modello bloomz-560m di BigScience. Il tokenizer serve a processare gli input testuali, mentre il modello fondamentale gestisce i task di causal language modeling. Il parametro trust_remote_code=True ti consente di usare codice personalizzato fornito dai maintainer del modello per architetture specifiche.
Sebbene ciò sia utile per ottenere funzionalità complete, fidati del codice del modello solo se proviene da una fonte affidabile. Evita di usare codice non verificato per modelli di creatori sconosciuti o non verificati, poiché potrebbe comportare rischi di sicurezza o stabilità.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name ="bigscience/bloomz-560m"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
trust_remote_code=True)Offerto da
2. Inferenza con un modello fondamentale
Prima di qualsiasi tuning, è essenziale stabilire una baseline eseguendo l’inferenza con il modello fondamentale non ottimizzato. Usando un prompt come "I want you to act as a logistician", possiamo osservare come il modello generi risposte senza ulteriori modifiche. Assicurati di includere uno spazio extra dopo il prompt, altrimenti il modello potrebbe non generare nulla.
Questo serve come riferimento per confrontare i miglioramenti dopo il tuning.
Useremo una funzione personalizzata generate_text per semplificarci la vita.
defgenerate_text(model, tokenizer, prompt_text, max_tokens):
prompt_text = tokenizer(prompt_text, return_tensors="pt")
outputs = model.generate(
input_ids=prompt_text["input_ids"],
attention_mask=prompt_text["attention_mask"],
max_length=max_tokens,
repetition_penalty=1.5,
eos_token_id=tokenizer.eos_token_id
)return tokenizer.batch_decode(outputs, skip_special_tokens=True)
initial_output = generate_text(model, tokenizer,"I want you to act as a logistician. ",100)print("Initial model output:", initial_output)Offerto da
Questo è l’output del modello:
['I want you to act as a logistician. You will be able to: Analyze the data']
Come vedi, il modello non è del tutto sicuro del contesto.
3. Dataset
Il dataset è un elemento cruciale del prompt tuning. Usiamo il dataset `awesome-chatgpt-prompts` per il tuning. Questo dataset fornisce contenuti motivazionali per il tuning, assicurando che il modello adatti di conseguenza le sue risposte.
from datasets import load_dataset
dataset_prompt ="fka/awesome-chatgpt-prompts"
data_prompt = load_dataset(dataset_prompt)
data_prompt = data_prompt.map(lambda x: tokenizer(x["prompt"]), batched=True)
train_prompts = data_prompt["train"].select(range(50))Offerto da
Tokenizziamo il dataset e prepariamo un piccolo sottoinsieme per l’addestramento.
4. Tuning
Ora la parte più interessante: configuriamo il prompt tuning usando la classe PromptTuningConfig della libreria PEFT.
from peft import get_peft_model, PromptTuningConfig, TaskType, PromptTuningInit
tuning_config = PromptTuningConfig(
task_type=TaskType.CAUSAL_LM, #This type indicates the model will generate text.
prompt_tuning_init=PromptTuningInit.RANDOM, #The added virtual tokens are initializad with random numbers
num_virtual_tokens=4, #Number of virtual tokens to be added and trained.
tokenizer_name_or_path=model_name
)
peft_model = get_peft_model(model, tuning_config)Offerto da
Gli argomenti di training sono specificati usando la classe TrainingArguments.
from transformers import TrainingArguments
training_args = TrainingArguments(
use_cpu=True,# This is necessary for CPU clusters.
output_dir ="./",
auto_find_batch_size=True,# Find a suitable batch size that will fit into memory automatically, you can also use a custom batch size
learning_rate=0.005,
num_train_epochs=5)Offerto da
Un oggetto Trainer gestisce il processo di training. Con DataCollatorForLanguageModeling, il data collator garantisce che i campioni di training siano formattati correttamente. La fase di training viene avviata con il metodo train, ottimizzando il modello bloomz-560m per i task di prompt specifici.
from transformers import Trainer, DataCollatorForLanguageModeling
trainer = Trainer(
model=peft_model,# We pass in the PEFT version of the foundation model, bloomz-560M
args=training_args,#The args for the training.
train_dataset=train_prompts,#The dataset used to train the model.
data_collator=DataCollatorForLanguageModeling(tokenizer, mlm=False)# mlm=False indicates not to use masked language modeling)
trainer.train()Offerto da
5. Inferenza con un modello ottimizzato
Il modello ottimizzato è memorizzato all’interno dell’oggetto trainer; possiamo usare trainer.model per accedervi. Usiamo la funzione generate_text per eseguire l’inferenza con il modello ottimizzato!
tuned_output = generate_text(trainer.model, tokenizer,"I want you to act as a logistician. ",100)print("Tuned model output:", tuned_output)Offerto da
Ecco l’output del modello ottimizzato:
['I want you to act as a logistician. You will be responsible for the logistics of your business.']
Come puoi vedere ora, il modello sa cosa fa un logistician. Sentiti libero di sperimentare con prompt, modelli e dataset diversi!
Approfondisci con l’AI generativa
Il prompt tuning è uno strumento potente per rendere i Large Language Model più efficienti su un task specifico. Abbiamo esplorato il prompt tuning spiegando prima che cos’è e come funziona. Poi lo abbiamo confrontato con altre tecniche simili: fine-tuning e prompt engineering. Infine, ne abbiamo discusso i vantaggi e abbiamo seguito una guida passo passo per applicare il prompt tuning a un modello pre-addestrato.
Man mano che il campo dell’AI generativa continua a evolversi, è importante restare aggiornati sugli ultimi sviluppi. Per migliorare ulteriormente le tue competenze e la tua comprensione dell’AI, Datacamp offre una varietà di risorse approfondite. Ti invito a esplorare questi tutorial completi:
Sono Dimitri Didmanidze, un data scientist attualmente iscritto a un Master in Matematica con focus sul Machine Learning. Il mio percorso accademico ha incluso anche ricerche sulle capacità dei modelli basati su transformer e attività di docenza a livello universitario, che hanno arricchito la mia comprensione di concetti teorici complessi. Ho inoltre lavorato nel settore bancario, dove ho applicato questi principi per affrontare sfide concrete legate ai dati.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Scopri le basi dell'intelligenza artificiale, impara a usarla al meglio per il lavoro e immergiti in modelli come ChatGPT per orientarti nel mondo dinamico dell'IA.
Nel campo in rapida evoluzione dei Large Language Model (LLM), restare al passo con approcci all’avanguardia come il prompt tuning è fondamentale. Questa tecnica, applicata a modelli fondamentali già addestrati, migliora le prestazioni senza i costi computazionali elevati associati al training tradizionale dei modelli.
In questo articolo esploreremo le basi del prompt tuning, lo confronteremo con il fine-tuning e il prompt engineering e ne discuteremo i principali vantaggi. Forniremo anche un esempio pratico utilizzando la piattaforma di HuggingFace, in cui eseguiamo il prompt tuning di un modello bloomz-560m. Questa guida ha l’obiettivo di approfondire la tua comprensione del prompt tuning e ispirarne l’integrazione nei tuoi progetti.
Che cos’è il Prompt Tuning?
Il prompt tuning è una tecnica pensata per migliorare le prestazioni di un modello linguistico pre-addestrato senza alterarne l’architettura di base. Invece di modificare i pesi strutturali profondi del modello, il prompt tuning regola i prompt che guidano la risposta del modello. Questo metodo si basa sull’introduzione di "soft prompt", un insieme di parametri ottimizzabili inseriti all’inizio della sequenza di input.
Fonte dell’immagine
Il diagramma confronta l’approccio tradizionale di tuning del modello con il prompt tuning. Nota che nel model tuning ogni task richiede un modello separato. Il prompt tuning, invece, utilizza lo stesso modello fondamentale su più task regolando prompt specifici per il task.
Come funziona il prompt tuning?
1. Inizializzazione dei soft prompt
I soft prompt sono token costruiti artificialmente che vengono aggiunti alla sequenza di input del modello. Questi prompt possono essere inizializzati in diversi modi. È comune l’inizializzazione casuale, ma possono anche essere inizializzati sulla base di determinate euristiche. Una volta inizializzati, i soft prompt vengono anteposti ai dati di input. Quando il modello elabora questi dati, considera sia i soft prompt sia l’input reale.
2. Forward pass e valutazione della loss
Il processo di training è solitamente simile a quello dell’addestramento di una rete neurale profonda (DNN) standard. Si inizia con una forward pass in cui il modello elabora l’input combinato attraverso i propri livelli, producendo un output. Questo output viene quindi confrontato con il risultato desiderato utilizzando una funzione di perdita, che misura la discrepanza tra l’output del modello e il valore atteso effettivo.
Backpropagation
Durante la backpropagation, gli errori vengono propagati all’indietro attraverso la rete. Tuttavia, invece di regolare i pesi della rete, modifichiamo solo i parametri dei soft prompt. Questo processo si ripete per più epoche, con i soft prompt che imparano gradualmente a guidare l’elaborazione degli input da parte del modello in modo da minimizzare l’errore per il task dato.
Iterazione
Il processo di forward pass, valutazione della loss e backpropagation viene ripetuto per più epoche. Nel tempo, questi soft prompt imparano a modellare l’input in modi che riducono costantemente il punteggio di loss, migliorando così le prestazioni del modello sul task specifico senza compromettere le sue capacità sottostanti.
Prompt Tuning VS Fine-Tuning VS Prompt Engineering
Prompt tuning, fine-tuning e prompt engineering sono tre metodi distinti applicati a LLM pre-addestrati per migliorarne le prestazioni su un task specifico. Questi metodi non si escludono a vicenda e ciascuno è adatto a un particolare caso d’uso.
Fine-tuning
Il fine-tuning è il più intensivo in termini di risorse e comporta un ri-addestramento completo del modello su un dataset specifico per uno scopo preciso. Questo regola i pesi del modello pre-addestrato, ottimizzandolo per le sfumature dettagliate dei dati, ma richiede notevoli risorse computazionali e aumenta il rischio di overfitting. Molti LLM come ChatGPT vengono sottoposti a fine-tuning dopo il training generico iniziale sul compito di previsione della parola successiva. Il fine-tuning insegna a questi modelli a funzionare come assistenti digitali, rendendoli significativamente più utili di un modello addestrato in modo generale.
Prompt tuning
Il prompt tuning regola un insieme di parametri aggiuntivi, noti come "soft prompt", che sono integrati nell’elaborazione dell’input del modello. Questo metodo modifica il modo in cui il modello interpreta i prompt di input senza una revisione completa dei suoi pesi, offrendo un equilibrio tra miglioramento delle prestazioni ed efficienza delle risorse. È particolarmente prezioso quando le risorse computazionali sono limitate o quando è richiesta flessibilità su più task, perché dopo l’applicazione della tecnica i pesi originali del modello rimangono invariati.
Prompt engineering
Il prompt engineering, invece, non prevede alcun training o ri-addestramento. Si basa completamente sull’utente che progetta i prompt per il modello. Richiede una comprensione sfumata delle capacità di elaborazione del modello e sfrutta la conoscenza intrinseca incorporata nel modello. Il prompt engineering non richiede risorse computazionali, poiché si affida esclusivamente alla formulazione strategica degli input per ottenere risultati. Dai un’occhiata al corso di DataCamp su prompt engineering per sviluppatori per saperne di più.
Confronto
Ognuna di queste tecniche offre un approccio diverso per sfruttare le capacità dei modelli pre-addestrati. La scelta tra esse dipende dalle esigenze specifiche dell’applicazione, come la disponibilità di risorse computazionali, il requisito di personalizzazione del modello e il livello desiderato di intervento sui parametri di apprendimento del modello.
Metodo
Intensità di risorse
Training richiesto
Ideale per
Fine-Tuning
Alta
Sì
Task che richiedono profonda personalizzazione del modello
Prompt Tuning
Bassa
Sì
Mantenere l’integrità del modello tra più task
Prompt Engineering
Nessuna
No
Adattamenti rapidi senza costo computazionale.
Ogni metodo ha il suo spazio in base alle esigenze specifiche del tuo progetto.
Vantaggi del Prompt Tuning
Il prompt tuning porta in dote diversi vantaggi chiave, che lo rendono una tecnica imprescindibile per ottimizzare i Large Language Model.
Efficienza delle risorse
Il prompt tuning mantiene invariati i parametri del modello pre-addestrato, riducendo sensibilmente la potenza computazionale necessaria. Questa efficienza è cruciale soprattutto in contesti con risorse limitate, permettendo un uso sofisticato dei modelli senza costi elevati. Con l’aumentare della dimensione media dei modelli fondamentali, "congelare" i parametri del modello diventa ancora più allettante, poiché non è necessario distribuire un modello separato per ciascun task.
Implementazione rapida
A differenza del fine-tuning completo, il prompt tuning richiede la regolazione solo di un piccolo insieme di parametri dei soft prompt. Questo velocizza il processo di adattamento, consentendo passaggi più rapidi tra task diversi e riducendo i tempi di fermo.
Integrità del modello e mantenimento della conoscenza
Mantenendo intatte l’architettura e i pesi del modello, il prompt tuning preserva le capacità e le conoscenze originarie incorporate nel modello pre-addestrato. Ciò è fondamentale per mantenere affidabilità e generalizzabilità del modello in varie applicazioni.
Flessibilità sui task
Il prompt tuning consente di utilizzare un unico modello fondamentale per più task semplicemente cambiando i soft prompt. Questo approccio riduce la necessità di addestrare e mantenere modelli separati per ogni task specifico, migliorando la scalabilità e semplificando la gestione dei modelli.
Minore intervento umano
Il prompt tuning richiede un intervento umano significativamente inferiore rispetto al prompt engineering, in cui la redazione accurata di prompt per un determinato task può essere soggetta a errori e richiedere molto tempo. Al contrario, l’ottimizzazione automatizzata dei soft prompt durante il training riduce al minimo l’errore umano e massimizza l’efficienza.
Prestazioni competitive
Le ricerche indicano che, per modelli di grandi dimensioni, il prompt tuning può raggiungere livelli di prestazioni paragonabili a quelli del fine-tuning. Questo vantaggio diventa sempre più significativo con la crescita delle dimensioni dei modelli, combinando alta efficienza con risultati solidi.
Approccio passo dopo passo al Prompt Tuning
Per questa guida applicheremo il prompt tuning al modello bloomz-560m di BigScience. Lavoreremo nell’ecosistema Hugging Face utilizzando la libreria PEFT (Parameter-Efficient Fine-Tuning).
Sebbene qui ci concentreremo sul task di causal language modeling, la libreria PEFT supporta vari task, modelli e tecniche di tuning. Puoi trovare metodi PEFT compatibili per altri modelli e task nella pagina di documentazione di PEFT.
1. Caricamento del modello e del tokenizer
Per iniziare, carichiamo il modello e il tokenizer dal modello bloomz-560m di BigScience. Il tokenizer serve a processare gli input testuali, mentre il modello fondamentale gestisce i task di causal language modeling. Il parametro
trust_remote_code=Trueti consente di usare codice personalizzato fornito dai maintainer del modello per architetture specifiche.Sebbene ciò sia utile per ottenere funzionalità complete, fidati del codice del modello solo se proviene da una fonte affidabile. Evita di usare codice non verificato per modelli di creatori sconosciuti o non verificati, poiché potrebbe comportare rischi di sicurezza o stabilità.
2. Inferenza con un modello fondamentale
Prima di qualsiasi tuning, è essenziale stabilire una baseline eseguendo l’inferenza con il modello fondamentale non ottimizzato. Usando un prompt come "I want you to act as a logistician", possiamo osservare come il modello generi risposte senza ulteriori modifiche. Assicurati di includere uno spazio extra dopo il prompt, altrimenti il modello potrebbe non generare nulla.
Questo serve come riferimento per confrontare i miglioramenti dopo il tuning.
Useremo una funzione personalizzata
generate_textper semplificarci la vita.Questo è l’output del modello:
['I want you to act as a logistician. You will be able to: Analyze the data']Come vedi, il modello non è del tutto sicuro del contesto.
3. Dataset
Il dataset è un elemento cruciale del prompt tuning. Usiamo il dataset `awesome-chatgpt-prompts` per il tuning. Questo dataset fornisce contenuti motivazionali per il tuning, assicurando che il modello adatti di conseguenza le sue risposte.
Tokenizziamo il dataset e prepariamo un piccolo sottoinsieme per l’addestramento.
4. Tuning
Ora la parte più interessante: configuriamo il prompt tuning usando la classe
PromptTuningConfigdella libreriaPEFT.Gli argomenti di training sono specificati usando la classe
TrainingArguments.Un oggetto
Trainergestisce il processo di training. ConDataCollatorForLanguageModeling, il data collator garantisce che i campioni di training siano formattati correttamente. La fase di training viene avviata con il metodotrain, ottimizzando il modellobloomz-560mper i task di prompt specifici.5. Inferenza con un modello ottimizzato
Il modello ottimizzato è memorizzato all’interno dell’oggetto trainer; possiamo usare
trainer.modelper accedervi. Usiamo la funzionegenerate_textper eseguire l’inferenza con il modello ottimizzato!Ecco l’output del modello ottimizzato:
['I want you to act as a logistician. You will be responsible for the logistics of your business.']Come puoi vedere ora, il modello sa cosa fa un logistician. Sentiti libero di sperimentare con prompt, modelli e dataset diversi!
Approfondisci con l’AI generativa
Il prompt tuning è uno strumento potente per rendere i Large Language Model più efficienti su un task specifico. Abbiamo esplorato il prompt tuning spiegando prima che cos’è e come funziona. Poi lo abbiamo confrontato con altre tecniche simili: fine-tuning e prompt engineering. Infine, ne abbiamo discusso i vantaggi e abbiamo seguito una guida passo passo per applicare il prompt tuning a un modello pre-addestrato.
Man mano che il campo dell’AI generativa continua a evolversi, è importante restare aggiornati sugli ultimi sviluppi. Per migliorare ulteriormente le tue competenze e la tua comprensione dell’AI, Datacamp offre una varietà di risorse approfondite. Ti invito a esplorare questi tutorial completi: