Ell: la libreria che trasforma l’ottimizzazione dei modelli linguistici | Large language models italiano | Llm machine learning | Llm cosa sono | Turtles AI
Una nuova libreria di prompt engineering, "ell", rivoluziona l’approccio ai modelli linguistici trattando i prompt come programmi anziché semplici stringhe, garantendo ottimizzazione, versionamento automatico e gestione avanzata delle risorse multimodali.
Punti chiave:
- Trattare i prompt come programmi funzionali incapsulati (LMP) facilita l’ottimizzazione.
- Ell supporta il versionamento e il monitoraggio automatico dei prompt, riducendo gli errori.
- Il sistema è progettato per semplificare l’uso di input e output multimodali.
- Offre un’integrazione senza soluzione di continuità nel flusso di lavoro Python standard.
Negli ultimi anni, l’evoluzione dei modelli di linguaggio ha portato allo sviluppo di strumenti sempre più sofisticati per l’ottimizzazione e il controllo delle interazioni con gli LLM (Large Language Models). In questo contesto, la libreria "ell" rappresenta un approccio innovativo, progettato per semplificare l’ingegneria rapida dei prompt, concepiti come veri e propri programmi piuttosto che semplici stringhe. L’idea di base è quella di trattare ogni modalità di utilizzo di un modello linguistico come una funzione discreta, definita come "Language Model Program (LMP). Questi programmi sono unità completamente incapsulate che generano stringhe o liste di messaggi per essere inviate ai modelli di linguaggio multimodali. L’incapsulamento di queste funzioni garantisce agli utenti un’interfaccia semplice, in cui l’unico dato necessario è quello richiesto per l’esecuzione del programma stesso.
L’ingegneria rapida dei prompt, come molti processi nell’ambito del machine learning, è caratterizzata da continue iterazioni e miglioramenti. Con "ell", questa ottimizzazione è resa più semplice grazie a una serie di strumenti avanzati. Una delle caratteristiche più innovative della libreria è la capacità di tracciare automaticamente le versioni dei prompt, attraverso analisi statiche e dinamiche. A ogni modifica viene creato un "commit" che permette di monitorare l’evoluzione di un prompt nel tempo, senza la necessità di un IDE complesso: tutto avviene nel normale flusso di lavoro Python, con versioning automatico e salvataggio locale. Questa funzionalità richiama il concetto di "checkpointing" nell’ambito del training di modelli di apprendimento automatico, fornendo agli sviluppatori un maggiore controllo sull’iterazione dei prompt e sui loro risultati.
Un’altra importante innovazione introdotta da "ell" è "Ell Studio", un tool open source per il monitoraggio e la visualizzazione delle versioni. Grazie a questo strumento, è possibile rendere empirico il processo di ottimizzazione rapida, individuando possibili regressioni e correzioni in tempo reale. Questo approccio consente di trasformare un’attività a volte percepita come un’arte oscura in un processo scientificamente monitorato e documentato. Allo stesso tempo, la libreria pone l’accento sull’importanza delle soluzioni ingegneristiche in fase di test. Passare da una semplice demo a un sistema pienamente funzionante richiede soluzioni modulari e leggibili, che implicano chiamate multiple a modelli linguistici. Forzando una decomposizione funzionale del problema, "ell" rende più agevole l’implementazione di tali tecniche, con un approccio che semplifica l’uso dei modelli linguistici anche nelle fasi di test.
Ogni chiamata a un modello linguistico è un’operazione preziosa e costosa, sia in termini di risorse che di tempo. In contesti pratici, queste invocazioni vengono utilizzate per attività complesse come la distillazione, il fine-tuning o l’apprendimento tramite feedback umano. Di conseguenza, un sistema di prompt engineering efficace dovrebbe trattare queste operazioni come risorse di prima classe. "Ell" memorizza non solo il codice sorgente di ogni LMP, ma anche ogni chiamata a un modello linguistico, creando così dataset di invocazioni che possono essere utilizzati per analisi successive o confronti di output tra diverse versioni del prompt.
Un altro punto di forza della libreria è la gestione della complessità. Quando possibile, i prompt possono rimanere semplici e generare stringhe, ma nei casi in cui è richiesto un output più complesso, "ell" consente di produrre oggetti più articolati attraverso decoratori appositi. Questa funzionalità si dimostra particolarmente utile nell’ambito della multimodalità, ovvero la capacità di gestire diversi tipi di contenuti (testo, immagini, audio, video). Ell permette di utilizzare input e output multimodali in maniera semplice, grazie al supporto di coercizioni di tipo avanzato per diverse tipologie di dati. Questo significa che le immagini, i file audio o altri contenuti possono essere integrati direttamente negli oggetti restituiti dai modelli linguistici, facilitando l’interazione con i dati multimodali.
Infine, uno degli aspetti più importanti di "ell" è la sua leggerezza e discrezione. A differenza di altre librerie, non richiede di cambiare radicalmente il proprio stile di programmazione né di abbandonare il proprio ambiente di sviluppo. È possibile continuare a utilizzare il normale codice Python, integrando progressivamente le funzionalità di "ell" per il monitoraggio e l’ottimizzazione dei prompt. In questo modo, gli sviluppatori possono migrare da librerie come "LangChain" a "ell" senza necessità di una riscrittura massiva del codice, adottando le nuove funzionalità una funzione alla volta.
Ell non solo ridefinisce l’ingegneria rapida, ma offre un set di strumenti solido e integrato per affrontare le sfide moderne dell’ottimizzazione dei prompt.
