La guida aziendale alla personalizzazione del linguaggio AI, parte 2 |  di Georg Ruile, Ph.D.  |  Aprile 2024

 | Intelligenza-Artificiale

Esistono numerose tecniche di suggerimento e molta letteratura scientifica che ne misura l’efficacia. Qui voglio solo introdurre alcuni concetti ben noti. Credo che una volta acquisita l'idea generale, sarai in grado di espandere il tuo repertorio di suggerimenti e persino di sviluppare e testare tu stesso nuove tecniche.

Chiedi e ti sarà dato

Prima di addentrarmi nei concetti specifici del prompt, vorrei sottolineare un concetto generale che, a mio avviso, non verrà mai sottolineato abbastanza:

La qualità della tua richiesta determina fortemente la risposta del modello.

E per qualità non intendo necessariamente una costruzione sofisticata e tempestiva. Intendo l'idea di base di porre una domanda precisa o dare istruzioni ben strutturate e fornire il contesto necessario. Ne ho già parlato quando abbiamo incontrato Sam, il pianista, a il mio articolo precedente. Se chiedi a un pianista da bar di suonare qualche brano jazz a caso, è probabile che non suonerà quello che avevi in ​​mente. Invece, se chiedi esattamente cosa vuoi sentire, è probabile che la tua soddisfazione per il risultato aumenterà.

Allo stesso modo, se mai avessi la possibilità, ad esempio, di assumere qualcuno per fare qualcosa in casa tua e le specifiche del contratto dicono solo, ad esempio, “ristrutturazione del bagno”, potresti rimanere sorpreso dal fatto che alla fine il tuo bagno non assomiglia a quello che vorresti. aveva in mente. L'appaltatore, proprio come il modello, farà riferimento solo a ciò che ha imparato sulle ristrutturazioni e sui gusti del bagno e seguirà il percorso appreso per consegnarlo.

Quindi eccone alcuni linee guida generali per il prompt:

· Sii chiaro e specifico.

· Sii completo.

· Fornire il contesto.

· Specificare lo stile di output, la lunghezza, ecc. desiderati.

In questo modo, il modello dispone di dati di riferimento sufficienti e corrispondenti nel prompt a cui può fare riferimento durante la generazione della risposta.

Suggerimenti per il gioco di ruolo: semplici, ma sopravvalutati

Agli albori di ChatGPT, l'idea del gioco di ruolo era diffusa: invece di chiedere all'assistente di darti una risposta immediata (cioè una semplice domanda), gli assegni prima un ruolo specifico, come “insegnante” o “consulente”. ” ecc. Tale prompt potrebbe essere simile a (2):

D'ora in poi sarai un eccellente insegnante di matematica e insegnerai sempre correttamente i problemi di matematica ai tuoi studenti. E io sono uno dei tuoi studenti.

È stato dimostrato che questo concetto produce risultati superiori. Uno carta riporta che con questo gioco di ruolo, il modello innesca implicitamente un processo di ragionamento passo dopo passo, che è ciò che si desidera che faccia quando si applica la tecnica CoT, vedere di seguito. Tuttavia, anche questo approccio è stato dimostrato a volte funzionano in modo non ottimale e deve essere ben progettato.

Nella mia esperienza, assegnare semplicemente un ruolo non risolve il problema. Ho sperimentato l'attività di esempio del documento di cui sopra. A differenza di questa ricerca, GPT3.5 (che da oggi è la versione gratuita di ChatGPT di OpenAI, quindi puoi provarla tu stesso) ha dato il risultato corretto, utilizzando una semplice query:

Un esempio che utilizza una semplice query invece del prompt del gioco di ruolo suggerito da (2), ottenendo comunque la risposta corretta

Ho anche sperimentato diverse sfide logiche sia con semplici domande che con giochi di ruolo, utilizzando un prompt simile a quello sopra. Nei miei esperimenti accadono due cose:

O query semplici forniscono la risposta corretta al primo tentativoO

Entrambi domande semplici e giochi di ruolo forniscono risposte false, per quanto diverse

Il gioco di ruolo non ha avuto risultati migliori le domande in uno qualsiasi dei miei esperimenti semplici (non scientificamente validi). Quindi, concludo che i modelli devono essere migliorati di recente e il l’impatto del suggerimento del gioco di ruolo sta diminuendo.

Osservando diverse ricerche, e senza ulteriori approfonditi esperimenti personali, credo che per superare le query semplici, i suggerimenti del gioco di ruolo debbano essere incorporati in un design solido e accurato per surclassare gli approcci più elementari o non sono affatto utili.

Sono felice di leggere le tue esperienze a riguardo nei commenti qui sotto.

Few-Shot, ovvero apprendimento in contesto

Un altro concetto intuitivo e relativamente semplice è quello che viene chiamato suggerimento Few-Shot, noto anche come apprendimento in contesto. A differenza di un prompt Zero-Shot, non solo chiediamo al modello di eseguire un'attività e ci aspettiamo che la consegni, ma inoltre fornire (“pochi”) esempi di soluzioni. Anche se potresti trovare ovvio che fornire esempi porta a prestazioni migliori, questa è un'abilità piuttosto notevole: questi LLM sono in grado di apprendere nel contesto, ovvero eseguire nuove attività tramite solo inferenza condizionando alcune coppie input-etichetta e creando previsioni per nuovi input (3).

L'impostazione di un prompt di alcuni scatti implica

(1) raccogliere esempi delle risposte desiderateE
(2) scrivere il messaggio con
istruzioni su cosa fare con questi esempi.

Consideriamo un tipico esempio di classificazione. Qui al modello vengono forniti diversi esempi di affermazioni che rappresentano giudizi positivi, neutri o negativi. Il compito del modello è valutare l'affermazione finale:

Un tipico esempio di classificazione di un prompt Few-Shot. Il modello è tenuto a classificare le dichiarazioni nelle categorie indicate (positivo/negativo)

Ancora una volta, anche se si tratta di un approccio semplice e intuitivo, sono scettico riguardo al suo valore nei modelli linguistici più avanzati. Nei miei esperimenti (di nuovo, non scientificamente validi), In ogni caso, i suggerimenti Few-Shot non hanno superato Zero-Shot. (Il modello sapeva già che un batterista che non tiene il tempo è un'esperienza negativa, senza che io glielo insegni…). La mia scoperta sembra essere coerente con ricerche recenti, dove anche l’effetto opposto (Zero-Shot supera Few-Shot) è stato mostrato (4).

A mio parere e su questo sfondo empirico vale la pena considerare se il costo di progettazione, nonché i costi computazionali, API e di latenza di questo approccio siano un investimento utile.

CoT-Prompting o “Pensiamo passo dopo passo”

Il suggerimento della catena di pensiero (CoT) mira a migliorare i nostri modelli nella risoluzione di problemi di ragionamento complessi in più fasi. Può essere semplice come aggiungere l'istruzione CoT “Pensiamo passo dopo passo” alla query di input, per migliorare significativamente la precisione (5)(6).

Invece di fornire semplicemente la query finale o aggiungere uno o pochi esempi all'interno del prompt come nell'approccio Few-Shot, chiedi al modello di suddividere il processo di ragionamento in una serie di passaggi intermedi. Questo è simile al modo in cui un essere umano affronterebbe (idealmente) un problema impegnativo.

Ricordi gli esami di matematica a scuola? Spesso, nelle lezioni più avanzate, ti veniva chiesto non solo di risolvere un'equazione matematica, ma anche di scrivere i passaggi logici con cui sei arrivato alla soluzione finale. E anche se fosse sbagliato, potresti aver ottenuto dei crediti per i passaggi della soluzione matematicamente validi. Proprio come il tuo insegnante a scuola, ti aspetti che il modello suddivida il compito in sotto-attività, esegua ragionamenti intermedi e arrivi alla risposta finale.

Ancora una volta, ho sperimentato parecchio io stesso con CoT. E ancora, la maggior parte delle volte, semplicemente aggiungendo “Pensiamo passo dopo passo” non ha migliorato la qualità della risposta. In effetti, sembra che il L'approccio CoT è diventato uno standard implicito del recente LLM basato su chat ottimizzato come ChatGPT, e la risposta è spesso suddivisa in blocchi di ragionamento senza il comando esplicito per farlo.

Tuttavia, mi sono imbattuto in un caso in cui l'esplicito CoT il comando ha infatti migliorato significativamente la risposta. Ho usato un esempio CoT da Questo articolotuttavia, l'ha modificata in una domanda trabocchetto. Qui puoi vedere come ChatGPT è caduto nella mia trappola, quando non è stato esplicitamente richiesto un approccio CoT (anche se la risposta mostra un ragionamento graduale):

Una domanda trabocchetto con una semplice query invece di un prompt CoT. Anche se la risposta è suddivisa “passo dopo passo”, non è del tutto corretta.

Quando ho aggiunto “Pensiamo passo dopo passo” allo stesso prompt, ho risolto correttamente la domanda trabocchetto (beh, è ​​irrisolvibile, come giustamente sottolineato da ChatGPT):

La stessa domanda trabocchetto con una richiesta CoT esplicita, che fornisce una risposta corretta

Per riassumere, la stimolazione della catena di pensiero mira a sviluppare capacità di ragionamento che altrimenti sarebbero difficili da acquisire implicitamente per i modelli linguistici. Incoraggia i modelli ad articolare e perfezionare il proprio processo di ragionamento piuttosto che tentare di passare direttamente dalla domanda alla risposta.

Ancora una volta, i miei esperimenti hanno rivelato solo benefici limitati del semplice approccio CoT (aggiungendo “Pensiamo passo passo“). CoT ha sovraperformato una semplice query in un'occasionee allo stesso tempo lo sforzo aggiuntivo derivante dall'aggiunta del comando CoT è minimo. Questo rapporto costi-benefici è uno dei motivi per cui questo approccio è uno dei miei preferiti. Un altro motivo per cui personalmente mi piace questo approccio è che non solo aiuta il modello, ma può anche farlo aiuta noi umani a riflettere e forse anche considerare in modo iterativo i passaggi di ragionamento necessari durante la creazione del suggerimento.

Come in precedenza, probabilmente vedremo una diminuzione dei vantaggi di questo semplice approccio CoT quando i modelli diventeranno sempre più perfezionati e abituati a questo processo di ragionamento.

In questo articolo, abbiamo intrapreso un viaggio nel mondo dei modelli linguistici di grandi dimensioni basati su chat. Invece di limitarti a darti le tecniche di suggerimento più popolari, ti ho incoraggiato a iniziare il viaggio chiedendoti perché il suggerimento è importante. Durante questo percorso abbiamo scoperto che l'importanza del suggerimento sta diminuendo grazie all'evoluzione dei modelli. Invece di richiedere agli utenti di investire nel miglioramento continuo delle proprie capacità di suggerimento, le architetture dei modelli attualmente in evoluzione probabilmente ridurranno ulteriormente la loro rilevanza. UN quadro basato su agentidove vengono presi “percorsi” diversi durante l'elaborazione di query e attività specifiche, è uno di questi.

Questo però non significa questo essere chiari e specifici e fornire il contesto necessario all'interno delle richieste non ne vale la pena. Al contrario, ne sono un forte sostenitore, poiché non solo aiuta il modello ma anche te stesso a capire esattamente cosa stai cercando di ottenere.

Proprio come nella comunicazione umana, molteplici fattori determinano l’approccio appropriato per raggiungere il risultato desiderato. Spesso si tratta di un mix e di un'iterazione di approcci diversi che producono risultati ottimali per il contesto dato. Provare, testare, ripetere!

E infine, a differenza delle interazioni umane, puoi testare praticamente senza limiti nel tuo personale percorso di tentativi ed errori. Godetevi il viaggio!

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *