Costruire sistemi LLM affidabili con schemi

Costruzione sistemi LLM affidabili schemi

I moderni modelli di linguaggio di grandi dimensioni (LLM) hanno capacità impressionanti, ma possono essere difficili da integrare in flussi di lavoro e sistemi complessi, portando a risultati non affidabili e duplicazione non necessaria del codice. Outlines, creato da Rémi Louf presso Normal Computing, offre una soluzione a questi problemi.

Outlines consente la costruzione di sistemi LLM più affidabili migliorando la gestione dei prompt e offrendo un maggiore controllo sui risultati generati. Questo viene raggiunto, in parte, attraverso il suo approccio unico basato sul campionamento, che fornisce un’interpretazione probabilistica dei risultati.

Outlines è progettato per integrarsi perfettamente con l’ampio ecosistema di Python, consentendo l’intreccio delle uscite del modello di linguaggio con il flusso di controllo standard e le chiamate di funzioni personalizzate. Questa combinazione di funzionalità aiuta ad evitare i problemi usuali associati all’integrazione del modello di linguaggio.

La chiave per migliorare l’affidabilità dei sistemi che incorporano LLM risiede nello sviluppo di un’interfaccia ben strutturata tra le uscite del LLM e il codice utente personalizzato. Outlines fornisce strumenti che consentono di controllare la generazione del modello di linguaggio, rendendo così l’output più prevedibile. Le future funzionalità pianificate includono la capacità di generare JSON conforme a uno schema predefinito e codice conforme a una grammatica specificata.

Scrivere prompt concatenando stringhe diventa spesso complicato e soggetto a errori. La logica utilizzata per costruire questi prompt tende a intrecciarsi con il resto del programma. Ciò può oscurare la struttura del prompt renderizzato, rendendolo più difficile da comprendere e modificare.

Per affrontare questi problemi, Outlines fornisce primitive di promozione robuste. Queste primitive separano efficacemente il processo di promozione dalla logica di esecuzione. Questa separazione porta a implementazioni più semplici e comprensibili di tecniche come la generazione a poche iterazioni, ReAct e meta-promozione.

Outlines offre anche una funzionalità chiamata “funzioni di modello” che sfrutta il motore di modellazione Jinja2 per costruire in modo efficiente prompt complessi. Sono disponibili filtri Jinja personalizzati per semplificare la creazione di agenti come AutoGPT, BabyAGI, ViperGPT e Transformers Agent. Eliminando il codice di promozione di base, questi filtri facilitano la creazione e la modifica di modelli di generazione del linguaggio.

Outlines rivoluziona l’integrazione LLM con il suo unico approccio di campionamento, migliorando la gestione dei prompt e il controllo dell’output. La sua integrazione con Python, la modellazione efficiente di prompt Jinja2 e le future funzionalità come la generazione di JSON conforme allo schema e la vettorizzazione delle chiamate di modelli, stabiliscono uno standard pionieristico nell’integrazione dei sistemi LLM. Attraverso un’infrastruttura cloud plug-in espandibile, Outlines supporterà presto modelli di HuggingFace, OpenAI e Normal Computing. Il lavoro futuro pianificato da Normal include la possibilità di prototipare in un’applicazione web grafica. Mentre navighiamo in un’era sempre più dipendente dall’IA e dal machine learning, Outlines promette di essere uno strumento critico per plasmare questo paesaggio in rapida evoluzione.

Puoi vedere l’intero repository qui.

Informazioni sugli autori:

Rémi Louf è uno statistico (alcuni dicono scienziato dei dati) e ingegnere software presso Normal Computing, Inc. È particolarmente interessato alle statistiche bayesiane e alla modellazione generativa, al campionamento MCMC e alla computazione simbolica, che si traducono nella mia vita professionale e nei progetti open-source a cui contribuisco. È un membro fondamentale dei progetti Aesara e Blackjax. Rémi ha un dottorato in fisica presso l’Institut de Physique Théorique.

Dan Gerlanc è il VP of Engineering presso Normal Computing, Inc. Ha iniziato la sua carriera nella finanza quantitativa e ha trascorso l’ultimo decennio a capo dei dipartimenti di ingegneria in diversi settori e organizzazioni. Tecnicamente, la sua specialità è la costruzione di sistemi all’intersezione tra ingegneria del software e applicazioni di intelligenza artificiale. È un membro fondamentale dei progetti Aesara e bootES, tra gli altri. Dan ha una laurea in letteratura comparata dal Williams College.