Perché personalizzare i modelli linguistici?

I modelli linguistici di grandi dimensioni (LLM) sono modelli di deep learning pre-addestrati basati su apprendimento auto-supervisionato, richiedendo una quantità massiccia di dati di addestramento, tempo computazionale e miliardi di parametri. Gli LLM hanno rivoluzionato l'elaborazione del linguaggio naturale, specialmente negli ultimi due anni, dimostrando capacità straordinarie nella comprensione e nella generazione di testo simile a quello umano. Tuttavia, la performance out-of-the-box di questi modelli di uso generale potrebbe non soddisfare sempre le esigenze specifiche dell'azienda o i requisiti di dominio specializzati. Gli LLM da soli non possono rispondere a domande che si basano su dati proprietari dell'azienda o in contesti closed-book, rendendoli relativamente generici nelle loro applicazioni. L'addestramento di un modello LLM da zero è largamente infattibile per i team di piccole e medie dimensioni a causa della necessità di enormi quantità di dati di addestramento e risorse computazionali. Per questo motivo, negli ultimi anni è stata sviluppata un'ampia gamma di strategie di personalizzazione degli LLM per sintonizzare i modelli per vari scenari che richiedono conoscenze specializzate.

Le strategie di personalizzazione possono essere divise ampiamente in due tipi:

  • Utilizzo di un modello congelato: Queste tecniche non richiedono l'aggiornamento dei parametri del modello e sono tipicamente realizzate attraverso l'apprendimento in-context o l'ingegneria dei prompt. Sono economicamente vantaggiose poiché alterano il comportamento del modello senza incorrere in estesi costi di addestramento, pertanto ampiamente esplorate sia nell'industria che nel mondo accademico con nuovi articoli di ricerca pubblicati quotidianamente.
  • Aggiornamento dei parametri del modello: Questo è un approccio relativamente dispendioso in termini di risorse che richiede l'ottimizzazione di un LLM pre-addestrato utilizzando dataset personalizzati progettati per lo scopo previsto. Questo include tecniche popolari come il fine-tuning e il reinforcement learning from human feedback (RLHF).

Questi due ampi paradigmi di personalizzazione si diramano in varie tecniche specializzate tra cui LoRA fine-tuning, chain of thought, retrieval augmented generation, ReAct e framework di agenti. Ogni tecnica offre vantaggi e compromessi distinti riguardanti le risorse computazionali, la complessità di implementazione e i miglioramenti di performance.

Come scegliere i modelli linguistici?

Il primo passo della personalizzazione degli LLM è selezionare i modelli foundation appropriati come baseline. Piattaforme basate su comunità come Huggingface offrono un'ampia gamma di modelli pre-addestrati open-source contribuiti da aziende o comunità importanti, come la serie Llama di Meta e Gemini di Google. Huggingface fornisce inoltre leaderboard, ad esempio l'Open LLM Leaderboard, per confrontare gli LLM sulla base di metriche e task standard industriali (ad es. MMLU). I provider cloud (ad es. AWS) e le aziende di IA (ad es. OpenAI e Anthropic) offrono anche accesso a modelli proprietari che sono generalmente servizi a pagamento con accesso limitato. I seguenti fattori sono essenziali da considerare nella scelta degli LLM.

Modello open source o proprietario

I modelli open source consentono la piena personalizzazione e l'auto-hosting ma richiedono competenze tecniche, mentre i modelli proprietari offrono accesso immediato e spesso risposte di migliore qualità ma con costi più elevati.

Task e metriche

I modelli eccellono in compiti diversi tra cui question-answering, summarization, code generation e altri. Confrontare le metriche di benchmark e testare su task specifici del dominio per determinare i modelli appropriati.

Architettura

In generale, i modelli decoder-only (serie GPT) funzionano meglio per la generazione di testo mentre i modelli encoder-decoder (T5) gestiscono bene la traduzione. Stanno emergendo architetture più innovative che mostrano risultati promettenti, ad instance il modello Mixture of Experts (MoE) "DeepSeek".

Numero di parametri e dimensione

I modelli più grandi (70B-175B parametri) offrono migliori performance ma richiedono più potenza computazionale. I modelli più piccoli (7B-13B) funzionano più velocemente e a costo inferiore ma potrebbero avere capacità ridotte.

Dopo aver determinato un LLM di base, esploriamo le 6 strategie più comuni per la personalizzazione degli LLM, classificate in ordine di consumo di risorse dal minore al maggiore:

  • Prompt engineering
  • Strategie di decoding e sampling
  • Retrieval augmented generation
  • Agenti
  • Fine tuning
  • Reinforcement learning from human feedback

Tecniche di personalizzazione degli LLM

1. Prompt engineering

Il prompt è il testo di input inviato a un LLM per ottenere una risposta generata dall'IA, e può essere composto da istruzioni, contesto, dati di input e indicatore di output.

  • Istruzioni: Fornisce una descrizione del task o un'istruzione su come il modello dovrebbe funzionare.
  • Contesto: Informazione esterna per guidare il modello a rispondere entro un certo ambito.
  • Dati di input: L'input per il quale desideri una risposta.
  • Indicatore di output: Specifica il tipo o il formato di output.

Il prompt engineering comporta la creazione strategica di questi componenti di prompt per plasmare e controllare la risposta del modello. Le tecniche di base del prompt engineering includono zero-shot, one-shot e few-shot prompting. L'utente può implementare tecniche di prompt engineering di base direttamente durante l'interazione con l'LLM, rendendola un approccio efficiente per allineare il comportamento del modello a un nuovo obiettivo. L'implementazione tramite API è anche un'opzione e ulteriori dettagli sono introdotti in articoli precedenti.

Grazie all'efficienza e all'efficacia del prompt engineering, approcci più complessi sono stati esplorati e sviluppati per avanzare la struttura logica dei prompt.

Chain of Thought (CoT)

Chain of thought chiede agli LLM di suddividere compiti di ragionamento complessi in processi di pensiero passo dopo passo, migliorando la performance su problemi multi-step. Ogni passo espone esplicitamente il suo risultato di ragionamento che serve come contesto precursore dei suoi passi successivi fino ad arrivare alla risposta.

Tree of thoughts

Tree of thoughts si estende da CoT considerando più rami di ragionamento diversi e auto-valutando le scelte per decidere la prossima azione migliore. È più efficace per compiti che implicano decisioni iniziali, strategie per il futuro e esplorazione di più soluzioni.

Automatic reasoning and tool use (ART)

Automatic reasoning and tool use si costruisce sul processo CoT, decostituisce compiti complessi e consente al modello di selezionare esempi few-shot da una libreria di task utilizzando strumenti esterni predefiniti come ricerca e generazione di codice.

Synergizing reasoning and acting (ReAct)

Synergizing reasoning and acting combina traiettorie di ragionamento con uno spazio d'azione, dove il modello ricerca attraverso lo spazio d'azione e determina la prossima azione migliore sulla base delle osservazioni ambientali.

Tecniche come CoT e ReAct sono spesso combinate con un workflow agentico per rafforzare la sua capacità. Queste tecniche saranno introdotte in più dettaglio nella sezione "Agenti".

2. Strategie di decoding e sampling

La strategia di decoding può essere controllata al momento dell'inferenza del modello attraverso parametri di inferenza (ad es. temperature, top p, top k), determinando la casualità e la diversità delle risposte del modello. Greedy search, beam search e sampling sono tre strategie di decoding comuni per la generazione di modelli auto-regressivi.

Durante il processo di generazione auto-regressiva, l'LLM output un token alla volta basato su una distribuzione di probabilità di token candidati condizionata dal token precedente. Per impostazione predefinita, greedy search viene applicato per produrre il token successivo con la probabilità più alta.

Al contrario, il beam search decoding considera più ipotesi di token next-best e seleziona l'ipotesi con le probabilità combinate più alte su tutti i token nella sequenza di testo. Lo snippet di codice seguente utilizza la libreria transformers per specificare il numero di percorsi beam (ad es. num_beams=5 considera 5 ipotesi distinte) durante il processo di generazione del modello.

La strategia di sampling è il terzo approccio per controllare la casualità delle risposte del modello regolando questi parametri di inferenza:

  • Temperature: Abbassare la temperatura rende la distribuzione di probabilità più acuta aumentando la probabilità di generare parole ad alta probabilità e diminuendo la probabilità di generare parole a bassa probabilità. Quando temperature = 0, diventa equivalente a greedy search (meno creativo); quando temperature = 1, produce gli output più creativi.
  • Top K sampling: Questo metodo filtra i K token successivi più probabili e ridistribuisce la probabilità tra questi token. Il modello campiona quindi da questo insieme filtrato di token.
  • Top P sampling: Invece di campionare dai K token più probabili, il campionamento top-p seleziona dall'insieme più piccolo possibile di token la cui probabilità cumulativa supera la soglia p.

Lo snippet di codice di esempio seguente campiona dai 50 token più probabili (top_k=50) con una probabilità cumulativa superiore a 0.95 (top_p=0.95).

3. Retrieval augmented generation (RAG)

Retrieval augmented generation (RAG), inizialmente introdotto nel paper "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", è stato dimostrato come una soluzione promettente che integra conoscenze esterne e riduce i comuni problemi di "allucinazione" degli LLM quando si affrontano query specifiche del dominio o specializzate. RAG consente di estrarre dinamicamente informazioni rilevanti dal dominio di conoscenza e generalmente non comporta un esteso addestramento per aggiornare i parametri dell'LLM, rendendola una strategia economicamente vantaggiosa per adattare un modello linguistico a esigenze specifiche.

La RAG funziona attraverso un processo in due fasi: nella prima fase, un componente di retrieval cerca in una knowledge base esterna (come una base di dati vettoriale, database testuali o documenti aziendali) per trovare i passaggi o documenti più pertinenti alla query dell'utente. Nella seconda fase, questi frammenti recuperati vengono concatenati con la query originale come contesto aggiuntivo e passati all'LLM, che genera una risposta informata dalle informazioni esterne.

I vantaggi della RAG sono molteplici. Primo, riduce significativamente le allucinazioni dell'LLM fornendo fatti verificabili da fonti affidabili. Secondo, consente ai modelli di accedere a informazioni proprietary o dati aggiornati di recente senza necessità di riconfigurare l'intero modello. Terzo, migliora la trasparenza e l'affidabilità poiché le risposte possono essere rintracciate ai documenti di origine. Quarto, è scalabile ed economicamente conveniente, permettendo alle organizzazioni di integrare nuove conoscenze semplicemente aggiungendo nuovi documenti alla knowledge base senza richiedere un nuovo addestramento del modello.

L'implementazione della RAG richiede componenti tecnici specifici: un sistema di chunking dei documenti per dividere i testi lunghi in segmenti gestibili, un modello di embedding che converta sia i documenti che le query in rappresentazioni vettoriali, un database vettoriale (come Pinecone, Weaviate o FAISS) per l'immagazzinamento e il recupero efficiente, e un framework di orchestrazione per coordinare il flusso dal retrieval all'LLM.

Variazioni più avanzate della RAG includono il multi-hop retrieval, dove il modello recupera informazioni iterativamente nel corso di più turni di ragionamento, la hybrid retrieval che combina ricerche dense basate su embedding con ricerche sparse basate su parole chiave, e la fusion retrieval che integra risultati da più fonti di conoscenza.

4. Agenti

Gli agenti rappresentano un paradigma più sofisticato che estende oltre il semplice prompt engineering verso sistemi autonomi in grado di prendere decisioni, pianificare e eseguire azioni complesse. Un agente è essenzialmente un LLM potenziato da capacità di ragionamento strutturato, accesso a strumenti esterni e la possibilità di iterare su compiti multi-step.

L'architettura tipica di un agente comprende: il modello linguistico di base che funge da "cervello", un componente di memory o contesto per tracciare lo stato della conversazione, un set di strum

Leggi l'articolo originale →
← Torna alle notizie