Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Perché un Large Language Model (LLM) non è un Database?

Luca Vinciguerra : 16 Agosto 2024 10:10

Negli ultimi anni, con l’avvento di tecnologie avanzate come i Large Language Models (LLM), tra cui spiccano strumenti come ChatGPT, si è diffusa una certa confusione riguardo alla loro natura e alle loro funzionalità.

In particolare, molte persone tendono a considerare un LLM come un database molto evoluto, aspettandosi che fornisca informazioni accurate e aggiornate su richiesta, come farebbe un motore di ricerca o un archivio di dati strutturati. Tuttavia, è fondamentale chiarire che un LLM non è un database, né è progettato per fungere da tale.

Come fa un Large Language Model a generare il testo?

Un Large Language Model, come suggerisce il nome, è un modello addestrato su enormi quantità di testo per imparare le regolarità e le strutture linguistiche presenti nel linguaggio naturale. Quando interagiamo con un LLM, esso non “ricerca” informazioni in un archivio strutturato, ma genera risposte basandosi su un processo di previsione delle parole (più tecnicamente token). Questo processo si basa sull’addestramento del modello con grandi quantità di dati testuali, che gli consentono di “imparare” le probabilità di sequenze di parole.

Ad esempio, se chiediamo a un LLM “Chi è Sandro Pertini?”, il modello non cerca una biografia memorizzata su un server. Piuttosto, utilizza la sua comprensione delle relazioni tra le parole per generare una risposta che appare coerente e informativa, basandosi sulle probabilità che ha appreso durante l’addestramento. Il modello tenta di prevedere la sequenza di parole più probabili, dato l’input fornito. Ciò significa che il modello può produrre risposte convincenti, ma non garantisce che queste siano accurate o aggiornate, portando in alcuni casi a vere e proprie allucinazioni.

Per capire meglio come un LLM riesce a generare testo, immaginiamo di chiedere al modello di completare la frase: “Il gatto salta sul”.

  1. Input: “Il gatto salta sul”
    Il modello riceve questa sequenza di parole come input e, basandosi sull’addestramento ricevuto, prevede quale parola sia più probabile che segua. Considerando le parole “gatto” e “salta”, il modello potrebbe riconoscere che l’azione di saltare è spesso seguita da un complemento che indica una superficie.
  2. Prima Predizione: La parola successiva potrebbe essere quindi “tavolo”, “letto”, “sedia”, ecc. Supponiamo che il modello scelga “tavolo” come la parola con la probabilità più alta.
    Output parziale: “Il gatto salta sul tavolo”
  3. Seconda Predizione: Ora che il modello ha aggiunto “tavolo”, analizza di nuovo l’intera sequenza e prevede che la parola successiva potrebbe essere una parola come “per”, “dove”, “e”, ecc. Supponiamo scelga “e”.
    Output parziale: “Il gatto salta sul tavolo e”
  4. Terza Predizione: A questo punto, il modello potrebbe prevedere che la sequenza è seguita da un’altra azione correlata. Potrebbe quindi generare parole come “si sdraia”, “miagola”, “scappa”, ecc. Supponiamo che preveda “si sdraia”.
  5. Output finale: “Il gatto salta sul tavolo e si sdraia”

In questo esempio, il modello ha generato ogni parola successiva basandosi su ciò che ritiene più probabile, data la sequenza precedente ed il contesto appreso durante l’addestramento. Questo processo di predizione continua fino a quando il modello decide che la frase è completa o fino a un determinato limite di lunghezza della sequenza.

Inoltre, come si evince dall’esempio, la generazione di testo da parte di un LLM non avviene attraverso una ricerca attiva di informazioni su cosa fanno i gatti o su quale sia il comportamento più comune. Invece, il modello sceglie le parole successive in base alla probabilità determinata dai dati su cui è stato addestrato. La scelta di “tavolo” come parola successiva più probabile potrebbe essere stata veicolata dai numerosi esempi visti nell’addestramento in cui i gatti saltano su tavoli o altre superfici simili. Questa scelta non è basata su una comprensione concettuale del comportamento dei gatti, ma su un calcolo probabilistico che riflette i pattern linguistici presenti nei dati su cui il modello è stato addestrato. 

Questo sottolinea la differenza fondamentale tra un LLM e un database: il modello non “sa” nulla in senso tradizionale, ma genera risposte basandosi su ciò che è più probabile che segua un dato input, secondo i dati testuali che ha elaborato durante l’addestramento.

Cos’è il Cutoff Knowledge?

Un concetto chiave per comprendere le limitazioni di un LLM è quello del Cutoff Knowledge. Questo termine si riferisce al punto temporale fino al quale il modello è stato addestrato. Per esempio, se un LLM è stato addestrato su testi fino al 2021, non avrà conoscenza degli eventi o delle scoperte avvenute dopo quella data. Ciò evidenzia ulteriormente perché un LLM non può essere considerato un database: i database sono progettati per contenere informazioni aggiornate e possono essere costantemente alimentati con nuovi dati, mentre un LLM ha una base di conoscenza statica limitata al periodo di addestramento.

Questo taglio temporale implica che un LLM potrebbe fornire informazioni obsolete o inaccurate se interrogato su argomenti successivi alla data di cutoff. Mentre un database può essere aggiornato con nuovi dati, l’aggiornamento di un LLM richiede un nuovo ciclo di addestramento su dati più recenti, il che è un processo molto più complesso e costoso.

Conclusioni

In sintesi, un Large Language Model non è un database e non dovrebbe essere trattato come tale. Mentre entrambi gli strumenti possono essere utilizzati per rispondere a domande, lo fanno in modi completamente diversi. Un database recupera e restituisce dati puntuali, mentre un LLM genera testo basato su un’ampia comprensione del linguaggio naturale. Questo significa che, sebbene un LLM possa sembrare una fonte di informazioni, è importante usarlo con la consapevolezza delle sue limitazioni, specialmente quando si tratta di ottenere dati precisi e aggiornati.

Luca Vinciguerra
Machine Learning Engineer specializzato nel Natural Language Processing. Appassionato di Intelligenza Artificiale, Coding e tecnologia in generale. Aspetta l'avvento di Skynet.