Qualche giorno fa Elon Musk ha annunciato Grok, il suo chatbot di IA, come concorrente diretto di ChatGPT. Tramite il PromptIDE gli ingegneri e sviluppatori della comunità hanno accesso libero a Grok-1, il modello che alimenta Grok.
Cos’è PromptIDE
PromptIDE è un ambiente di sviluppo integrato creato da xAI per facilitare l’ingegnerizzazione e la ricerca sulle istruzioni (prompt) e sulla loro interpretabilità. Si tratta di uno strumento innovativo che accelera il processo di creazione di istruzioni complesse e fornisce analisi dettagliate per comprendere al meglio il funzionamento dei modelli di linguaggio su cui si basa.
Il team di xAI lo utilizza ampiamente nello sviluppo continuo di Grok, il loro assistente virtuale alimentato dall’intelligenza artificiale. PromptIDE è stato sviluppato per dare accesso trasparente a Grok-1, il modello alla base di Grok.
Le funzionalità principali di PromptIDE
PromptIDE mette a disposizione degli utenti un editor di codice Python e un nuovo SDK per implementare tecniche di istruzioni complesse in modo efficiente. Tutte le funzioni Python vengono eseguite in un contesto implicito, una sequenza di token su cui è possibile operare tramite le API dell’SDK.
Gli utenti possono aggiungere manualmente token al contesto con la funzione prompt()
o generare nuovi token sulla base del contesto utilizzandosample()
, che richiama i modelli di xAI. sample()
dispone di numerose opzioni di configurazione:
Parametro | Descrizione |
---|---|
max_len | Numero massimo di token da generare. |
temperature | Temperatura dell’operazione finale di softmax. Più bassa è la temperatura, minore è la variazione della distribuzione del token. |
nucleus_p | Soglia della tecnica di campionamento Top-P: si ordinano i token in base alla probabilità e si campiona solo dalla top P percentuale. |
stop_tokens | Lista di stringhe che, se campionate, fermano il campionamento. |
stop_strings | Lista di stringhe che, se presenti nell’output, fermano il campionamento ma includono la stringa che ha attivato lo stop. |
rng_seed | Seme del generatore casuale per il campionamento. |
add_to_context | Se vero, i token generati vengono aggiunti al contesto. |
return_attention | Se vero, restituisce la maschera di attenzione. |
allowed_tokens | Solo questi token possono essere campionati. |
disallowed_tokens | Questi token non possono essere campionati. |
augment_tokens | Se vero, le stringhe per stop, allow e disallow includono anche la versione con spazio iniziale. |
Esecuzione locale e parallelizzazione
Il codice Python viene eseguito localmente in un interprete browser che gira in un web worker separato. È possibile far girare più web worker in parallelo, il che consente di eseguire molte istruzioni contemporaneamente.
Le tecniche di istruzioni complesse possono essere implementate utilizzando più contesti all’interno dello stesso programma. Le funzioni decorate con @prompt_fn vengono eseguite ciascuna nel proprio contesto pulito e possono restituire i risultati al utente.
Le funzionalità avanzate di PromptIDE
L’SDK sfrutta le coroutine di Python per consentire l’elaborazione concorrente di più funzioni annotate con @prompt_fn. Ciò può accelerare significativamente i tempi di esecuzione, specialmente durante l’elaborazione di file CSV di grandi dimensioni.
È possibile creare istruzioni interattive con la funzione user_input()
, che blocca l’esecuzione finché l’utente non immette una stringa in una textbox nell’interfaccia utente. user_input()
restituisce la stringa inserita dall’utente, che può essere aggiunta al contesto con prompt()
, ad esempio per implementare chatbot.
Gli utenti possono caricare piccoli file (fino a 5 MB ciascuno, 50 MB totali) e accedervi da codice Python tramite la funzione read_file()
. Combinando questa funzionalità con l’elaborazione concorrente, è possibile implementare tecniche di istruzioni batch per valutarle su una varietà di problemi.
Le funzionalità di analisi
Durante l’esecuzione di un’istruzione, gli utenti visualizzano analisi dettagliate per token per comprendere meglio l’output del modello. Nella finestra è inoltre visibile la tokenizzazione precisa del contesto con gli ID numerici di ciascun token. Cliccando su un token, è possibile visualizzare i top token dopo l’applicazione della soglia Top-P e la maschera di attenzione aggregata.
Quando si utilizza user_input()
, durante l’esecuzione viene mostrata una textbox in cui l’utente può inserire la risposta.
Infine, il contesto può essere reso in markdown per migliorare la leggibilità quando non sono necessarie le funzionalità avanzate di visualizzazione dei token.
PromptIDE è condivisione e collaborazione
Una caratteristica importante di PromptIDE è la possibilità di creare una community di sviluppatori intorno ad esso. Ogni istruzione può essere condivisa pubblicamente con un click, sia nella versione singola che nell’intero albero con tutte le modifiche apportate. È possibile includere le analisi salvate durante la condivisione di un’istruzione.
PromptIDE è disponibile per i membri del programma di accesso anticipato di xAI, al momento purtroppo non per gli Europei.
Conclusioni
PromptIDE di xAI è un ambiente di sviluppo integrato all’avanguardia per l’ingegnerizzazione e lo sviluppo dei prompt e istruzioni IA. Accelera il processo creativo, fornisce potenti strumenti di analisi e permette la collaborazione e condivisione del codice.
Con il suo approccio aperto e trasparente, xAI mira ad attirare ricercatori e sviluppatori interessati alle capacità dei modelli linguistici di grandi dimensioni (LLM), promuovendo una maggiore comprensione di queste tecnologie emergenti.