Ricercatori dell’ETH di Zurigo presentano LMQL un linguaggio di programmazione per l’interazione con i modelli di linguaggio.

ETH Zurich researchers present LMQL, a programming language for interacting with language models.

Le prestazioni dei grandi modelli di linguaggio su varie attività, tra cui domande e risposte e produzione di codice, sono state impressionanti. Un modello di linguaggio può generare automaticamente una conclusione statisticamente plausibile di una sequenza in base a un input. Gli utenti utilizzano quindi queste informazioni per addestrare questi modelli attraverso istruzioni vocali o esempi, consentendo loro di svolgere varie attività successive. Tecniche di prompting più complesse possono coinvolgere la collaborazione tra il modello di linguaggio, l’utente e applicazioni di terze parti come calcolatrici. Potrebbe essere ancora necessaria un’interazione ad hoc durante l’implementazione di programmi complessi specifici per attività e modelli per ottenere prestazioni all’avanguardia o modificare i modelli di linguaggio per attività specifiche.

In vista di ciò, i ricercatori della Svizzera hanno introdotto il concetto all’avanguardia di programmazione del modello di linguaggio (LMP). Espandendo il campo di applicazione del prompting del modello di linguaggio oltre i semplici prompt di testo, LMP fornisce un ibrido naturale dei due metodi. Inoltre, LMP consente di limitare i risultati prodotti dal modello di linguaggio. Ciò consente un alto livello di astrazione nel modello di linguaggio, rendendolo facilmente adattabile a varie attività. I ricercatori implementano LMQL (per Language Model Query Language) per consentire LMP. LMQL utilizza i vincoli e il flusso di controllo di un prompt LMP per generare una tecnica di inferenza efficiente che riduce il numero di costose chiamate al modello di linguaggio sottostante. Dimostrano la facilità con cui LMQL può catturare una varietà di meccanismi di prompting all’avanguardia, in particolare quelli che facilitano flussi interattivi difficili da implementare con API di alto livello preesistenti. L’esame dimostra che mantengono o migliorano l’accuratezza su varie attività successive riducendo drasticamente il tempo di calcolo o l’ammontare finanziario (nel caso di API a pagamento).

Come funziona?

Grazie alla sua natura dichiarativa, LMQL specifica semplicemente il risultato desiderato di un’attività e lascia i dettagli del flusso di controllo della logica a un altro linguaggio. Prende spunto da SQL ma li sviluppa su Python. Gli utenti possono fornire al modello domande sia testuali che programmabili.

La relazione identifica cinque componenti principali della grammatica del linguaggio. Il compito del decoder è scoprire il segreto dietro l’algoritmo di generazione di testo. È un po’ di codice che trasforma i dati in qualcosa di utile, come wording di maggiore qualità e più vario.

Lo strumento di base per interagire con il modello di linguaggio è il blocco di query scritto in sintassi Python. Ogni stringa al livello superiore del blocco di query rappresenta una query separata. Il modello di destinazione della query è identificato nella clausola Model/from. Questo specifica la base linguistica su cui viene generato il testo, e la clausola Where, d’altra parte, consente di impostare i parametri che governano i risultati. Specifica ciò che il modello di linguaggio deve produrre per mantenere le proprietà necessarie.

Gli utenti di LMQL possono impostare vincoli logici sofisticati sui risultati generati dal modello di linguaggio. I maschere di previsione a livello di token vengono generate automaticamente da questi vincoli in modo che possano essere rigorosamente applicati all’inizio della produzione di testo. Di conseguenza, è possibile imporre con attenzione vari vincoli e il modello produrrà solo contenuti che soddisfano i criteri. Grazie alle migliori garanzie sul formato di output, il prompting multiparte e l’integrazione diventano più facili.

Principali contributi

  • Sono stati identificati e risolti diversi problemi con i metodi di prompting LM attuali dagli autori di questo studio, che introducono il paradigma innovativo della programmazione del modello di linguaggio.
  • Il prompting scriptato e la limitazione dell’output sono due funzionalità offerte da LMQL, un linguaggio di query di alto livello per i modelli di linguaggio.
  • Una descrizione formale delle astrazioni finali e di follow per la semantica di valutazione parziale e impaziente. Con questo, dati solo alcuni lineamenti generali, è possibile generare automaticamente una maschera di token specifica del modello per il decodificatore LM.
  • Un’analisi approfondita di LMQL dimostra come esprimere una varietà di approcci di prompting di base e sofisticati come programmi LMQL brevi e facili da capire che funzionano più velocemente e in modo più accurato grazie alla capacità di LMQL di ridurre i costi di inferenza e i tempi di esecuzione fino all’80%.

Gli studi di caso effettuati dai ricercatori mostrano che:

  • L’elevato livello di espressività di LMQL significa che molte tecniche moderne all’avanguardia possono essere implementate con significativamente meno righe di codice rispetto alle loro controparti basate su Python.
  • Il numero di query del modello e, quindi, l’efficienza e il tempo di esecuzione migliorano notevolmente utilizzando LMQL. È possibile imporre vincoli dinamicamente senza ricorrere alla decodifica a blocchi e al backtracking, grazie alla capacità di LMQL di convalida a livello di token.
  • LMQL non ha effetto sull’accuratezza del modello. Ci sono situazioni in cui i limiti imposti portano a una precisione leggermente maggiore.

Inoltre, i ricercatori hanno dimostrato che LMQL fornirebbe significativi risparmi economici quando impiegato nel contesto di modelli a pagamento con API a pagamento a causa della riduzione osservata dei token fatturabili. Infine, sottolineano che questi studi di caso sono separati dalla ricerca utente completa di LMQL, in cui l’impatto e l’usabilità del linguaggio vengono valutati insieme agli ingegneri di prompt del mondo reale. È importante ricordare che la mancanza di uno studio del genere minaccia la credibilità delle affermazioni sulla praticità.

Per concludere, gli esperti presentano Language Model Programming come un approccio fresco per interagire con modelli linguistici (enormi). LMQL, un linguaggio di query di alto livello con una sintassi semplice, è stato introdotto. Le semantica di valutazione di LMQL sono state sviluppate in modo efficiente, consentendo un rapido elaborazione delle query. Hanno dimostrato il loro punto con studi di caso che mostrano come metodi sofisticati di prompting possano essere tradotti in codice LMQL semplice, chiaro e veloce che può ridurre le spese di calcolo fino all’80 percento.