Completa la configurazione del modello di base del giudice per eseguire le valutazioni soggettive.
Allineare e testare il giudice
Hai un giudice iniziale, ma non puoi ancora fidarti. Il giudice è pronto solo quando concorda costantemente con il giudizio umano.
Creare un set di dati di allineamento
Per calibrare il giudice, hai bisogno di un set di dati di allineamento. Si tratta di una piccola raccolta di input e output di alta qualità , valutata manualmente da persone. Questo set di dati funge da dati empirici reali. Lo utilizzerai per verificare che la logica del giudice sia costantemente in linea con le tue aspettative.
Il set di dati di allineamento deve contenere 30-50 coppie di input-output. Il set è abbastanza grande da coprire alcuni casi limite, ma abbastanza piccolo da poterlo etichettare in un breve periodo di tempo.
Nell'esempio di ThemeBuilder, una voce nel set di dati di allineamento è simile alla seguente (input, output, etichetta umana):
{
"id": "sample-014",
"userInput": {
"companyName": "Rawrr!",
"audience": "kids 5-10",
"tone": ["prehistoric", "loud", "fun"]
},
"appOutput": {
"motto": "Experiencing the prehistoric era."
},
"humanEvaluation": {
"mottoBrandFit": {
"label": "FAIL",
"rationale": "While on-theme, this motto is too formal for kids.
It fails to capture the required 'loud' and 'fun' energy."
}
}
}
Per generare input e output, puoi estrarre i dati dai log di produzione , se disponibili, creare i dati manualmente, utilizzare un LLM (dati sintetici), o iniziare da alcuni campioni selezionati manualmente e chiedere a un LLM di aumentare il set di dati.
Una volta che gli input e gli output sono pronti, utilizza la rubrica per etichettare gli output come PASS o FAIL con il tuo team. Questi diventano i tuoi dati empirici reali.
Assicurati che il set di dati di allineamento includa esempi di PASS ed esempi di FAIL di varia difficoltà, ad esempio:
- 10 esempi di casi di percorso felice che il giudice deve etichettare come
PASS. - 20 esempi di casi che il giudice deve etichettare come
FAIL:- Errori evidenti, ad esempio uno slogan altamente tossico o completamente fuori brand.
- Errori sottili, ad esempio uno slogan grammaticalmente perfetto ma un po' troppo formale per un brand giocoso o che si adatta solo in parte al tono.
Il giudice LLM è un gatekeeper. L'allineamento su un set di dati che contiene più errori che casi di successo ti offre maggiori opportunità di modificare la rubrica per rilevare gli errori e, in definitiva, migliorare la capacità del giudice di rilevare gli errori.
Una volta pronto, il set di dati di allineamento dovrebbe avere un aspetto simile al seguente:
Casi di percorso felice (PASS)
// Easy, clean input + Good output
{
"id": "sample-001",
"userInput": {
"companyName": "Kinetica",
"description": "Carbon-fiber plated performance footwear engineered for
elite marathon runners.",
"audience": "competitive triathletes and professional runners",
"tone": [
"aggressive",
"high-performance",
"technical"
]
},
"appOutput": {
"motto": "Unlock your kinetic potential.",
"colorPalette": {
"textColor": "#FFFFFF",
"backgroundColor": "#000000",
"primary": "#DC2626",
"secondary": "#E2E8F0"
}
},
"humanEvaluation": {
"mottoBrandFit": {
"label": "PASS",
"rationale": "This motto powerfully aligns the brand's technical
engineering with the ambitious goals of its elite athletic audience.
Relevance: Uses 'kinetic' to expertly link the brand to physical
energy. Audience appeal: 'Unlock your potential' resonates perfectly
with competitive runners. Tone consistency: Nails the required
aggressive, high-performance marks."
},
"mottoToxicity": {
"label": "PASS",
"rationale": "Perfectly clean and motivational. No offensive or
exclusionary language."
},
"colorBrandFit": {
"label": "PASS",
"rationale": "The chosen color palette perfectly mirrors Kinetica's
aggressive and technical brand identity by utilizing high-impact tones
that resonate with elite athletes. Relevance: Psychological association:
Blood red creates urgency and speed. Harmony: Stark contrast against
black/white feels highly technical.
Appropriateness: Extremely effective aesthetic for premium athletic gear."
}
}
}
Errori evidenti (FAIL)
// Off-brand color palette
{
"id": "sample-014",
"userInput": {
"companyName": "Rawrr!",
"description": "Dinosaur themed playground and party venue.",
"audience": "kids 5-10",
"tone": [
"prehistoric",
"loud",
"fun"
]
},
"appOutput": {
"motto": "Experiencing the prehistoric era.",
"colorPalette": {
"textColor": "#4A4A4A",
"backgroundColor": "#F5F5DC",
"primary": "#D2B48C",
"secondary": "#C0C0C0"
}
},
"humanEvaluation": {
"mottoBrandFit": {
"label": "FAIL",
"rationale": "While the motto relates to the dinosaur theme, its overly
academic and formal tone fails to capture the loud and fun energy
essential for a children's playground brand. Relevance: Effectively fits
the dinosaur theme. Audience appeal: A bit formal ('Experiencing' versus
something punchy), acceptable for parents booking events but should be
more exciting for kids, it's too formal and academic for a children's
playground, lacks the 'loud' and 'fun' energy requested in the tone.
Tone consistency: It touches on the 'prehistoric' element adequately."
},
"mottoToxicity": {
"label": "PASS",
"rationale": "A completely family-friendly, educational-sounding statement."
},
"colorBrandFit": {
"label": "FAIL",
"rationale": "This muted and sophisticated color scheme fails to capture
the high-energy, prehistoric spirit required to attract and excite a young
audience. Relevance: Psychological association: The 'sad beige', tan, and
muted greys evoke a sterile, 'adult minimalist' home décor aesthetic.
Harmony: The colors are muddy and lifeless. Appropriateness: For a 'loud'
and 'fun' children's playground targeting 5-10 year olds, this palette is
a spectacular failure. It desperately needs vibrant, exciting primary
colors to attract kids."
}
}
},
Errori sottili (FAIL)
// Almost on-brand color palette
{
"id": "sample-023",
"userInput": {
"companyName": "Apex Dental",
"description": "High-end cosmetic dentistry specializing in porcelain
veneers and laser whitening.",
"audience": "Professionals seeking a perfect smile",
"tone": [
"clean",
"professional",
"bright"
]
},
"appOutput": {
"motto": "Designing your brightest smile.",
"colorPalette": {
"textColor": "#1A202C",
"backgroundColor": "#FFFFFF",
"primary": "#FFC107",
"secondary": "#E2E8F0"
}
},
"humanEvaluation": {
"mottoBrandFit": {
"label": "PASS",
"rationale": "The motto perfectly captures the premium essence of the
brand by combining high-end dental aesthetics with a clear appeal to a
professional clientele. Relevance: Relates perfectly to cosmetic
dentistry and teeth whitening. Audience appeal: 'Brightest smile' is a
highly effective, aspirational hook for professionals wanting to look
their best. Tone consistency: Clean, upbeat, and exceedingly professional."
},
"mottoToxicity": {
"label": "PASS",
"rationale": "A very positive, medical-grade, and safe statement."
},
"colorBrandFit": {
"label": "FAIL",
"rationale": "The choice of bright yellow is a fundamental branding
failure for a cosmetic dental practice as it creates a direct and
repellent visual link to tooth discoloration, undermining the clinic's
high-end whitening positioning. Relevance: Psychological association:
While yellow technically fulfills the word 'bright', in the specific
context of dentistry, a primary bright yellow is subconsciously and
intensely associated with plaque, decay, and stained teeth.
Harmony: It stands out strongly but sends the wrong message.
Appropriateness: This is a massive psychological misstep for a whitening
clinic. It subverts trust in their core service by visually reminding
customers of the problem rather than the solution."
}
}
},
Raggiungere l'allineamento
Ora che i dati empirici reali sono pronti, è il momento di allineare il giudice alle etichette umane. Il tuo obiettivo è assicurarti che il giudice sia costantemente d'accordo con te e imiti il giudizio umano. Puoi calcolare un punteggio di allineamento come la percentuale di etichette create dal giudice che corrispondono alle etichette create da persone.
// total = all test cases
// aligned = test cases where humanEval.label === llmJudgeEval.label
// For example, PASS and PASS
const alignment = (aligned / total) * 100;
Imposta un punteggio di allineamento target, ad esempio 85%. Il target può variare a seconda del caso d'uso.
Esegui il modello del giudice sul set di dati di allineamento. Se il punteggio di allineamento è inferiore al target, leggi la motivazione del giudice per capire perché è stato confuso. Modifica le istruzioni di sistema e il prompt del giudice per colmare le lacune. Ripeti questa operazione finché non raggiungi il punteggio target.
Best practice
Per aiutare il giudice a ottenere un punteggio coerente, segui queste best practice:
- Evita l'overfitting. Le istruzioni devono essere generalizzate e non troppo specifiche per il set di dati di allineamento. Se fornisci istruzioni specifiche, ad esempio evitando determinate frasi, il giudice sarà in grado di superare questo test di allineamento specifico, ma non riuscirà a generalizzare i nuovi dati. Questo problema è noto come overfitting.
- Ottimizza le istruzioni di sistema e il prompt del giudice. Le tecniche di ottimizzazione dei prompt includono la modifica manuale dei prompt, la richiesta a un altro LLM di suggerire miglioramenti o l'applicazione di modifiche basate su una combinazione di queste tecniche. Le tecniche di ottimizzazione dei prompt possono variare da manuali a molto avanzate, ad esempio algoritmi che imitano l'evoluzione biologica. Tieni un log delle modifiche per ripristinarle, se necessario.
Per vedere l'allineamento in azione per ThemeBuilder, esegui tu stesso il test di allineamento.
Test di stress con bootstrapping
Il raggiungimento del target di allineamento dell'85% non garantisce che il giudice funzioni bene con i dati reali. Esegui uno stress test del giudice con un hack statistico chiamato bootstrapping. Il bootstrapping crea nuove versioni del set di dati senza ulteriori sforzi di etichettatura.
** Test: ricampiona in modo casuale 30 elementi dal set di dati con sostituzione. In un'esecuzione, un caso difficile potrebbe essere selezionato cinque volte, rendendo il test molto più difficile. Esegui più volte il test di allineamento su questi set randomizzati e calcola la varianza media di allineamento e punteggio in queste esecuzioni. Non esiste un numero magico, ma 10 iterazioni sono una buona base per i progetti di medie dimensioni. Esegui più iterazioni per una maggiore sicurezza. ** Correzione: se il punteggio di allineamento varia in modo significativo (varianza elevata), il giudice non è ancora affidabile. Il punteggio iniziale era un caso fortuito dovuto ad alcuni casi semplici. Amplia la rubrica e aggiungi esempi più diversi e difficili al set di dati di allineamento.
Puoi verificarlo direttamente.
Testare l'autocoerenza
Il giudice può essere considerato attendibile solo se fornisce sempre la stessa risposta per lo stesso input. Se hai impostato la temperatura su 0, il giudice deve essere coerente al 100%. Esegui il test per confermare.
- Test: esegui il giudice più volte sullo stesso set di dati, ad esempio un'estrazione casuale dal set di dati di allineamento. Calcola la varianza per ogni caso di test in queste ripetizioni. Punta a una coerenza del 100% (varianza zero). Se la varianza è maggiore di zero, il test non riesce perché significa che il giudice fornisce risposte diverse per lo stesso input.
- Correzione: il prompt del giudice potrebbe essere ambiguo o la temperatura troppo alta.
Riscrivi le parti del prompt che sembrano vaghe, in particolare la rubrica di punteggio. Se non l'hai già fatto, abbassa la temperatura a 0 (o imposta
thinking_levelsu high).
Per vedere questo in azione, esegui tu stesso il test.
Esame finale
Il bootstrapping ti ha aiutato a eseguire un controllo iniziale per evitare l'overfitting. Ora eseguirai un test finale utilizzando dati nuovi. Questa è la conferma finale che il giudice può assegnare correttamente un punteggio ai nuovi input.
- Test: conserva un set di dati separato per l'esame finale di 20 campioni etichettati da persone che non hai utilizzato durante l'allineamento. Esegui il giudice su questo set.
- Correzione: se il punteggio di allineamento rimane alto, il giudice è pronto. Se il punteggio si blocca, probabilmente hai eseguito l'overfitting: hai modificato il prompt troppe volte per superare i dati di allineamento specifici. Amplia il prompt, la griglia e gli esempi few-shot.
Per vedere questo in azione, esegui tu stesso il test.
Riepilogo
Hai eseguito diversi test per creare il giudice di base, tra cui:
- Il test di allineamento verifica se il giudice è corretto.
- Il test di bootstrapping e l'esame finale verificano la sensibilità ai dati. Il giudice rimane corretto abbastanza spesso quando viene confrontato con nuovi dati?
- Il test di autocoerenza misura il rumore del sistema, ovvero la quantità di casualità interna del giudice LLM che influisce sui risultati.