$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
I modelli linguistici di grandi dimensioni (LLM) come ChatGPT di OpenAI o Llama di Meta AI sono diventati rapidamente una risorsa popolare per la generazione di testo pertinente a un prompt dell'utente. Originariamente funzionanti per prevedere gli elementi lessicali successivi in una sequenza, questi modelli si sono evoluti per comprendere il contesto, codificare le informazioni cliniche e dimostrare prestazioni elevate in una varietà di compiti 1,2,3,4. Sebbene i modelli linguistici precedono di decenni tali funzionalità e il loro attuale livello dipopolarità5, i recenti progressi nelle capacità di deep learning e calcolo hanno reso gli LLM commerciali pre-addestrati e di alta qualità ampiamente disponibili per gli utenti tramite tecnologie basate sul Web e interfacce di programmi applicativi (API)6. Tuttavia, ci sono diverse limitazioni notevoli all'utilizzo di LLM in questo formato.
Sfida 1: corpus di allenamento statico
Gli LLM sono addestrati su un enorme (ad esempio, due trilioni di token nel caso di Llama 27) ma statico di dati di testo. Ciò pone una sfida per la produzione di risposte accurate relative a campi in rapido sviluppo o in continua evoluzione della letteratura. In questo approccio statico, gli LLM richiederebbero frequenti riqualificazioni per stare al passo con i dati più recenti, il che non è né pratico né scalabile. Inoltre, i prompt che richiedono risposte basate su informazioni non presenti nei dati di addestramento possono impedire la generazione di testo utile o portare ad allucinazioni8. I casi di allucinazioni o di fabbricazione di fatti sollevano preoccupazioni significative sull'affidabilità degli LLM, in particolare in contesti in cui l'accuratezza delle informazioniè fondamentale.
Sfida 2: Mancanza di specificità del dominio
I modelli con training preliminare vengono spesso creati per l'uso generale, mentre gli utenti possono richiedere un modello ottimizzato in modo specifico per le prestazioni in un determinato dominio. Inoltre, le risorse computazionali e i dati necessari per l'addestramento de novo di un modello o per l'esecuzione di una messa a punto significativa sono proibitivi per molti utenti.
Sfida 3: Mancanza di privacy
Gli utenti che perseguono applicazioni che coinvolgono dati sensibili o informazioni proprietarie potrebbero non essere disposti o non essere in grado di utilizzare determinati servizi LLM poiché non dispongono di informazioni su come i dati possono essere archiviati o utilizzati.
Sfida 4: Mancanza di stabilità garantita
I servizi con LLM proprietari possono modificare i modelli disponibili o alterare il comportamento in qualsiasi momento, rendendo la stabilità un problema per l'implementazione di applicazioni che si basano su questi servizi.
La generazione aumentata dal recupero (RAG) è una tecnica sviluppata per migliorare le prestazioni dell'LLM, in particolare su query relative a informazioni al di fuori del corpus di addestramento 10,11 del modello. Questi sistemi aumentano gli LLM incorporando informazioni contestuali da considerare quando si genera una risposta a una query dell'utente. Vari lavori recenti hanno descritto le applicazioni dei sistemi RAG e i loro potenziali vantaggi 12,13,14.
L'obiettivo del metodo delineato in questo lavoro è dimostrare la costruzione di un tale sistema e fornire un quadro di riferimento per i ricercatori per sperimentare rapidamente su LLM aumentati specifici del dominio. Questo metodo è applicabile agli utenti che desiderano integrare un LLM con un'origine dati esterna basata su testo. In particolare, uno degli obiettivi generali di questo protocollo è quello di fornire un codice passo-passo che sia estendibile a una varietà di esperimenti pratici LLM e RAG senza la necessità di una significativa competenza tecnica nel dominio della modellazione del linguaggio, sebbene sia necessaria una conoscenza pratica di Python per applicare questo approccio senza modifiche. Per massimizzare il controllo dell'utente, la trasparenza, la portabilità e l'accessibilità delle soluzioni, vengono utilizzati strumenti open source disponibili pubblicamente. Il sistema proposto affronta le questioni precedentemente indicate nei seguenti modi:
Soluzioni 1 e 2: corpus di addestramento statico e mancanza di specificità del dominio
La metodologia fornita sfrutta un approccio RAG, utilizzando gli embedding per fornire informazioni specifiche del dominio non incluse nei dati di addestramento originali. A livello generale, l'incorporamento di modelli trasforma il testo o altri dati in una rappresentazione come un vettore o una matrice di numeri a dimensione singola. Questa tecnica è vantaggiosa in quanto converte le informazioni semantiche contenute nel testo in una forma densa e numerica. Proiettando una query utente nello stesso spazio di incorporamento, è possibile utilizzare vari algoritmi per calcolare la distanza15 e, quindi, la somiglianza semantica approssimativa, tra la query utente e le sezioni dei documenti di testo. Pertanto, la creazione di un database di tali vettori da documenti suddivisi in sezioni discrete può facilitare la ricerca su un numero significativo di documenti per il testo più rilevante per una query utente (Figura 1). Questo approccio è estendibile a qualsiasi documento di testo. Mentre altri approcci, come le funzionalità di ricerca online, stanno iniziando ad essere implementati per aumentare gli LLM, questo approccio consente agli utenti di scegliere fonti considerate di qualità sufficientemente elevata per il loro caso d'uso.
Soluzione 2: mancanza di privacy
In questa implementazione, è stato utilizzato un ambiente cloud sicuro per l'hosting, senza richieste dell'utente, risposte generate o altri dati che lasciano questo ecosistema. Tutto il codice è scritto in modo indipendente dalla piattaforma, tuttavia, per garantire che un altro provider cloud o hardware locale possa essere sostituito.
Soluzione 3: mancanza di stabilità garantita
Questo approccio utilizza librerie open source e si concentra sull'aumento degli LLM con pesi disponibili pubblicamente, consentendo un grado più elevato di trasparenza, stabilità e controllo delle versioni, se necessario.
Uno schema completo del sistema proposto è mostrato nella Figura 2 e le istruzioni dettagliate sulla replica di questo o di un sistema simile sono descritte nella sezione del protocollo. Un'ulteriore considerazione quando si modifica il comportamento del modello attraverso la messa a punto o l'aumento è la valutazione delle prestazioni. Nei modelli di generazione del linguaggio, questo rappresenta una sfida unica poiché molte metriche tradizionali di machine learning non sono applicabili. Sebbene esistano una varietà di tecniche16, in questo studio sono state utilizzate domande a scelta multipla (MCQ) scritte da esperti per valutare l'accuratezza e confrontare le prestazioni pre e post aumento, nonché rispetto ai popolari LLM alternativi.