notizia

Rivelato il prompt di codifica core di Claude 3.5, i programmatori di tutta la rete sono entusiasti!Metodo di allenamento in quattro fasi, rilasciata l'ultima versione V2

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Nuovo rapporto sulla saggezza

Editore: Taozi

[Introduzione alla Nuova Saggezza] I suggerimenti principali del sistema di codifica Claude 3.5 sono popolari nella comunità Reddit. Proprio ora, l'autore originale ha rilasciato la seconda versione evoluta e alcuni netizen l'hanno già aggiunta al loro flusso di lavoro.

Un messaggio di sistema relativo alla codifica core di Claude Sonnet 3.5 è stato recentemente pubblicato su Reddit ed è diventato virale!


Un utente chiamato ssmith12345uk ha condiviso sulla scheda principale di r/ClaudeAI di aver utilizzato la pratica del codice Claude e di aver costantemente modificato le istruzioni di sistema per ottimizzare il modello.

Ha detto che il prompt del sistema incorpora alcune idee di Anthropic Meta-Prompt e risolve alcuni problemi riscontrati in precedenza.

Alla fine, ha rilasciato tutte le parole chiave.


Gli sviluppatori della comunità AI lo hanno inoltrato ai loro preferiti, dicendo che questo è il suggerimento che i programmatori desiderano di più!



I netizen hanno riassunto questo: ReAct + Planning + XML è tutto ciò di cui hai bisogno.


Alcuni netizen che ne hanno beneficiato hanno affermato che questo suggerimento è stato molto utile nei loro progetti.


Proprio ieri, l'autore originale ha rilasciato una versione evoluta della parola prompt V2 nella comunità Reddit e ha fornito istruzioni e spiegazioni dettagliate per il suo utilizzo.


Prima di spiegare questi suggerimenti e tecniche del sistema, lasciatemi rispondere a una domanda dei netizen: dove inserire?

Devi creare un progetto (iscriviti agli utenti Pro), quindi puoi accedere alla pagina in cui inserisci le istruzioni rapide.



I suggerimenti di codifica più efficaci per Sonnet 3.5, formazione in 4 passaggi

Qui, i suggerimenti del sistema V1 e V2 vengono messi insieme in modo che tutti possano percepire in modo più intuitivo la differenza dopo l'aggiornamento.

Il prompt del sistema della versione V2 è come mostrato sul lato destro della figura seguente. Rispetto alla V1 si tratta fondamentalmente di piccole riparazioni.

Nell'ultima versione, il modello è ancora guidato al completamento del ragionamento CoT attraverso quattro passaggi: revisione del codice, pianificazione, output e revisione della sicurezza.

Nel primo paragrafo, la definizione del ruolo di Claude 3.5 rimane la stessa.

Sei uno sviluppatore web esperto con competenza in CSS, JavaScript, React, Tailwind, Node.JS e Hugo/Markdown.

Tuttavia, sono state apportate alcune modifiche alla seconda frase: "Non scusarti inutilmente. Rivedi la cronologia delle conversazioni per evitare di ripetere gli errori precedenti".

Successivamente, chiedi a Claude 3.5 di suddividere il compito in fasi indipendenti durante la conversazione e, dopo ogni fase, suggerisci un piccolo test per assicurarti che tutto sia sulla strada giusta.

Fornire il codice solo quando è necessario un esempio o richiesto esplicitamente. Sarebbe meglio se potessi rispondere senza codice.

Ma se necessario verranno richiesti ulteriori approfondimenti.

Il passaggio successivo è la "revisione del codice": prima di scrivere o proporre codice, condurre una revisione completa del codice esistente e descrivere tra i tag come funziona.


Dopo aver completato la revisione del codice, è necessario creare un piano di modifica tra i tag, richiedendo ulteriori file sorgente o documentazione che potrebbero essere rilevanti.

Segui il principio DRY (Don't Repeat Yourself) per evitare la duplicazione del codice e bilanciare manutenibilità e flessibilità del codice.

Inoltre, in questa fase vengono presentati i possibili compromessi e le scelte di implementazione e vengono considerati e consigliati i framework e le librerie pertinenti. Se non abbiamo concordato un piano, fermati a questo passaggio.

Una volta concordato, il codice viene generato tra i tag.

Qui, l'autore di Reddit ha anche ricordato a Claude 3.5 le cose a cui prestare attenzione durante l'output del codice:

Presta attenzione ai nomi delle variabili, agli identificatori e ai valori letterali delle stringhe e controlla che vengano copiati esattamente dal file originale. Utilizza i due punti doppi e le lettere maiuscole (come::MAIUSCOLO::) per indicare che gli elementi con nomi convenzionali rimangono attuali stili di codifica, quando si generano blocchi di codice utilizzando idiomi adatti a quella lingua, specificare il linguaggio di programmazione dopo il primo backtick: ad esempio: ```JavaScript, ```Python

Infine, è necessaria una revisione operativa e di sicurezza della PIANIFICAZIONE e dell'OUTPUT, prestando particolare attenzione a questioni che potrebbero compromettere i dati o introdurre vulnerabilità.

Per modifiche sensibili (come la gestione degli input, i calcoli della valuta, l'autenticazione), esegui una revisione approfondita e fornisci la tua analisi nel tag.

Analisi dell'autore

Successivamente, in un lungo articolo esplicativo, l'autore di Reddit utilizza ‍⬛ per indicare "superstizione" e per esprimere ciò di cui è convinto.


Questo prompt è un esempio di un prompt guidato della "catena di pensiero", che dice a Claude i passi da compiere e in quale ordine, e lo utilizza come prompt di sistema (la prima serie di istruzioni che il modello riceve).

L'utilizzo dei tag XML per separare i passaggi è stato ispirato dai meta-suggerimenti antropici.

L'autore ritiene che Claude sia particolarmente sensibile ai tag XML, che potrebbero essere correlati all'addestramento del modello. Pertanto, preferisce elaborare l'HTML da solo o alla fine della sessione‍⬛.

Indirizzo di posta elettronica: https://github.com/anthropics/anthropic-cookbook/blob/68028f4761c5dbf158b7bf3d43f2f45b44111200/misc/metaprompt.ipynb#

La catena di pensiero guidato segue le seguenti fasi: revisione del codice, pianificazione, output, revisione della sicurezza.

1 Revisione del codice

Inserisci l'analisi del codice strutturato nel contesto per informare la pianificazione successiva.

Lo scopo è impedire a LLM di apportare modifiche locali al codice senza tenere conto del contesto più ampio. Gli autori sono convinti nel testare che questo approccio sia efficace.

2 pianificazione

Questo passaggio produce un piano di progettazione e implementazione di alto livello che può essere rivisto prima di generare il codice.

Lo "stop" qui evita di riempire il contesto con codice generato, non necessario, che non soddisfa le nostre esigenze, o la situazione in cui andiamo avanti e indietro e lo modifichiamo.

Di solito presenta opzioni pertinenti e appropriate.

In questa fase, puoi approfondire i dettagli del piano per perfezionarlo ulteriormente (ad esempio, dimmi di più sul passaggio 3, possiamo riutilizzare l'implementazione Y, mostrami uno snippet di codice, cosa dovrei pensare della libreria, ecc. .).

3 uscite

Una volta concordati i piani, è il momento di passare alla fase di generazione del codice.

Il suggerimento sulla denominazione delle variabili è dovuto al fatto che l'autore incontra spesso il problema di nomi di variabili mancanti o allucinati nel codice rigenerato durante sessioni lunghe. L'attuale miglioramento del prompt sembra aver risolto questo problema‍⬛.

Ad un certo punto, l'autore potrebbe esportare il vecchio dialogo ed eseguire alcune analisi statistiche, ma per ora sono soddisfatto di come funziona questo approccio.

La richiesta di fencing del codice è stata causata dal passaggio dell'autore a un front-end che non era in grado di dedurre l'evidenziazione corretta e ha verificato che questo fosse l'approccio corretto.

4 Revisione della sicurezza

L'autore preferisce condurre una verifica della sicurezza a posteriori e trova questo passaggio molto utile.

Fornisce una revisione da un "secondo paio di occhi" e può suggerire nuovi miglioramenti.

Rispondi alle domande dei netizen

Infine, l’autore di Reddit ha anche risposto alle domande dei netizen.

Dovrei usare questo suggerimento su Claude.ai? / Dove dovrebbe essere richiesto l'input del sistema?

Non conosciamo esattamente i suggerimenti ufficiali del sistema per il Sonetto 3.5. Sarebbe sicuramente utile supporre che Plinio, che in precedenza ha fatto trapelare i suggerimenti ufficiali di Claude, abbia ragione. L'autore ipotizza che i prompt del sistema di Anthropic possano contenere CoT automatizzati, ma potrebbe non essere così, oppure l'input potrebbe essere elaborato automaticamente tramite meta-prompt‍⬛.

Indipendentemente da ciò, otterrai buoni risultati utilizzando questo suggerimento, a meno che non utilizzi Artifacts.


Supponendo ancora una volta che l'estratto di Plinio sugli Artifacts sia corretto, l'autore consiglia vivamente di disattivare la funzionalità Artifacts quando si eseguono attività di codifica non banali o non correlate ad Artifacts.

Se utilizzi uno strumento che ti consente di impostare direttamente i prompt del sistema, l'autore ti ricorda di ricordarti di regolare il parametro della temperatura.

Non abbiamo bisogno di istruzioni così complicate adesso/Ho dato a Sonnet un sacco di codice e ha funzionato


I messaggi automatici CoR/predefiniti possono effettivamente risolvere molti problemi, ma provalo confrontandolo con un semplice messaggio "sei un'intelligenza artificiale utile".

Gli autori affermano di aver condotto tali test e di aver scoperto che i suggerimenti semplici erano meno efficaci quando si affrontavano problemi complessi.

Ha anche affermato che i primi test hanno mostrato la sensibilità dei prompt del sistema, ovvero diversi prompt possono portare a risultati significativamente diversi, e che in futuro verranno presi in considerazione ulteriori test batch per verificarlo ulteriormente.

Ha riconosciuto che Sonetto 3.5 ha funzionato bene nei compiti di base, ma ha sottolineato che anche per i modelli ad alte prestazioni, una guida adeguata può comunque essere d'aiuto.

Questo messaggio è troppo lungo e causerà allucinazioni/dimenticazioni/perdita di coerenza/perdita di concentrazione dell'IA


Gli autori hanno misurato questo suggerimento in circa 546 token, una lunghezza accettabile per un modello da 200.000 token.

I suggerimenti strutturati mantengono l'elevata qualità del contesto, contribuendo a mantenere le conversazioni coerenti e riducendo il rischio di allucinazioni dell'IA.

Finora, i modelli prevedono il token successivo in base all’intero contesto, quindi conversazioni ripetute di alta qualità, non inquinate da codice non necessario avanti e indietro, possono durare più a lungo prima che sia necessario avviare una nuova sessione. Ciò significa che le interazioni produttive possono verificarsi all'interno della stessa sessione per periodi di tempo più lunghi.

Questo prompt è eccessivamente ingegnerizzato

L'autore ha detto che forse è così.

Le persone che lo utilizzano sono state integrate nel flusso di lavoro

I netizen hanno affermato che le prestazioni del modello sono effettivamente migliorate dopo averlo utilizzato.

"Se questo suggerimento funziona meglio, significa che il lavoro svolto dal team di Anthropic nel combinare i suggerimenti del sistema CoT o ReAct con le capacità di base di LLM ha ottenuto risultati."


Questo è per gli assistenti di codifica! Per un compito del genere è opportuno fornire alcune indicazioni.


Alcuni netizen hanno già integrato alcuni di questi suggerimenti nel loro flusso di lavoro. Ecco cosa carica sempre per primo in una nuova conversazione.



Tuttavia, alcuni netizen hanno affermato che questo suggerimento è troppo complicato.


"Secondo la mia esperienza, non è necessario utilizzare istruzioni così esaustive. Claude 3.5 Sonnet gestisce questo genere di cose in modo abbastanza automatico, richiedendo solo occasionali chiarimenti tempestivi."


Suggerimenti sul ruolo, una perdita di tempo

Simon Willison, lo sviluppatore del framework Django, ha affermato che la tecnica immediata "Sei un esperto nel campo di xxx" è stata una completa perdita di tempo dalla fine del 2022.

Il numero di "superstizioni" coinvolte nei suggerimenti LLM è piuttosto sconcertante!


Questa conclusione in realtà deriva da uno studio durato un anno condotto dal team Learnprompting e dai coautori di OpenAI e Microsoft.

Indirizzo del documento: https://arxiv.org/pdf/2406.06608

Per il progetto, hanno analizzato più di 1.500 documenti sui prompt, li hanno classificati in 58 diverse tecniche di prompt e hanno analizzato ciascun prompt.


La ricerca ha scoperto che il ruolo suggerito è sorprendentemente inefficace.

Il motivo è che con i modelli più vecchi sembrano ottenere risposte/inferenze migliori inserendosi in uno spazio parametrico migliore. Tuttavia, i modelli più recenti potrebbero già trovarsi in quello spazio di parametri migliorato.

Questa sarà un'ipotesi costruttiva per tutti!

Nell'ottobre 2022, quando Learnprompting pubblicò la sua prima guida in assoluto su suggerimenti e trucchi pre-ChatGPT, il suggerimento dei ruoli era l'argomento più caldo in quel momento e il suggerimento principale consigliato da tutti per ottenere risultati ChatGPT migliori.


È vero che questi modelli si stanno evolvendo rapidamente e le tecniche che hanno funzionato l’anno scorso potrebbero non funzionare più oggi.

E i suggerimenti che funzionano oggi potrebbero non funzionare l’anno prossimo.

Per chiarire questo problema, il team di Learnprompting ha testato 2000 domande MMLU utilizzando circa 12 diversi suggerimenti di ruolo su gpt-4-turbo.

In particolare, un esempio che suggerisce di creare un personaggio "geniale": sei uno scienziato laureato ad Harvard...

E un promemoria per il personaggio "idiota": sei un idiota...

"genius...": "You are a genius level Ivy league Professor. Your work is of the highest grade. You always think out your problem solving steps in incredible detail. You always get problems correct and never make mistakes. You can also break any problem into its constituent parts in the most intelligent way possible. Nothing gets past you. You are omniscient, omnipotent, and omnipresent. You are a mathematical God."
 "idiot...": "You are intellectually challenged, lacking problem-solving skills, prone to errors, and struggle with basic concepts. You have a limited understanding of complex subjects and cannot think straight. You can't solve problems well, in fact, you can't solve them at all. You are a terrible, dumb, stupid, and idiotic person. You fail at everything you do. You are a nobody and can't do anything correctly."

Come mostrato nella figura seguente, la precisione delle risposte ai diversi suggerimenti di ruolo non è così elevata come quella del CoT a campione zero, del CoT a due campioni e di altre strategie.

Non importa se si tratta di un principiante di matematica, di uno studente sbadato, di un'intelligenza artificiale esperta, di un agente di polizia o di un professore di matematica della Ivy League.


La cosa ancora più interessante è che GPT-4, noto come il “genio”, ha battuto il record più basso in termini di precisione di risposta del 58,7%.

GPT-4, noto come "l'idiota", ha un punteggio più alto rispetto al "genio" GPT-4.


Un altro studio condotto da un team dell’Università del Michigan illustra bene come diversi segnali di ruolo sociale influenzino le prestazioni complessive del modello.

Hanno testato 2457 problemi MMLU e hanno scoperto che i personaggi con le migliori prestazioni erano (rosso): agente di polizia, assistente utile, compagno, mentore, modello linguistico AI, chatbot.

Indirizzo del documento: https://arxiv.org/pdf/2311.10054

Per quanto riguarda il richiamo “superstizioso” ai grandi modelli, Willison ha formulato una metafora vivida e interessante:

Paragono questa situazione a quella di un cane che trova un hamburger in un cespuglio e poi cerca un hamburger ogni volta che passa davanti a quel cespuglio per i prossimi anni. Dobbiamo essere più razionali dei cani.

Tuttavia, ha chiarito che in alcuni casi sarebbe utile assegnare ruoli specifici ai modelli linguistici dell'IA, ma ha sottolineato che ciò dovrebbe basarsi su una sana riflessione e su circostanze specifiche.


Alcuni netizen hanno detto che se ci pensano passo dopo passo, è ancora un teorema eterno.


Riferimenti:

https://www.reddit.com/r/ClaudeAI/comments/1dwra38/sonnet_35_for_coding_system_prompt/