Conclua a configuração do modelo de juiz básico para executar suas avaliações subjetivas.
Alinhar e testar o juiz
Você tem um juiz inicial, mas ainda não pode confiar nele. O juiz só estará pronto quando concordar consistentemente com o julgamento humano.
Criar um conjunto de dados de alinhamento
Para calibrar o juiz, você precisa de um conjunto de dados de alinhamento. Essa é uma pequena coleção de entradas e saídas de alta qualidade que foi classificada manualmente por humanos. Esse conjunto de dados atua como sua informação empírica. Você o usará para verificar se a lógica do juiz está sempre alinhada às suas expectativas.
O conjunto de dados de alinhamento precisa conter 30 a 50 pares de entrada-saída. O conjunto é grande o suficiente para cobrir alguns casos extremos, mas pequeno o suficiente para que você possa rotulá-lo em um curto período.
No exemplo do ThemeBuilder, uma entrada no conjunto de dados de alinhamento é assim (entrada, saída, rótulo humano):
{
"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."
}
}
}
Para gerar entradas e saídas, você pode extrair dos registros de produção se disponíveis, criar os dados manualmente, usar um LLM (dados sintéticos), ou começar com algumas amostras escolhidas a dedo e pedir que um LLM aumente seu conjunto de dados.
Quando as entradas e saídas estiverem prontas, use sua rubrica para rotular as saídas como PASS ou FAIL com sua equipe. Isso se torna sua informação empírica.
Verifique se o conjunto de dados de alinhamento inclui exemplos PASS e FAIL de dificuldade variada, por exemplo:
- 10 exemplos de casos de cenário ideal que o juiz precisa rotular como
PASS. - 20 exemplos de casos que o juiz precisa rotular como
FAIL:- Falhas óbvias, por exemplo, um lema altamente tóxico ou completamente fora da marca.
- Falhas sutis, por exemplo, um lema gramaticalmente perfeito, mas um pouco formal demais para uma marca divertida ou que só se encaixa parcialmente no tom.
O juiz do LLM é um guardião. Alinhá-lo em um conjunto de dados que contém mais falhas do que casos de aprovação oferece mais oportunidades de ajustar a rubrica para detectar falhas e, por fim, melhorar a capacidade do juiz de detectar falhas.
Quando o conjunto de dados de alinhamento estiver pronto, ele vai ficar assim:
Casos de cenário ideal (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."
}
}
}
Falhas óbvias (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."
}
}
},
Falhas sutis (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."
}
}
},
Alinhamento de alcance
Com a informação empírica pronta, é hora de alinhar o juiz com rótulos humanos. Seu objetivo é garantir que o juiz concorde consistentemente com você e imite o julgamento humano. Você pode calcular uma pontuação de alinhamento como a porcentagem de rótulos criados pelo juiz que correspondem aos rótulos criados por humanos.
// total = all test cases
// aligned = test cases where humanEval.label === llmJudgeEval.label
// For example, PASS and PASS
const alignment = (aligned / total) * 100;
Defina uma pontuação de alinhamento desejada, por exemplo, 85%. Seu destino pode variar de acordo com o caso de uso.
Execute o modelo de juiz no conjunto de dados de alinhamento. Se a pontuação de alinhamento for menor que a desejada, leia a justificativa do juiz para entender por que ele estava confuso. Modifique as instruções do sistema e o comando do juiz para preencher as lacunas. Repita esse processo até atingir a pontuação desejada.
Práticas recomendadas
Para ajudar o juiz a pontuar de forma consistente, siga estas práticas recomendadas:
- Evite o overfitting. As instruções precisam ser generalizadas e não muito específicas para o conjunto de dados de alinhamento. Se você fornecer instruções específicas, como evitar determinadas frases, o juiz será ótimo para aprovar esse teste de alinhamento específico, mas não conseguirá generalizar para novos dados. Esse problema é conhecido como overfitting.
- Otimize as instruções do sistema e o comando do juiz. As técnicas de otimização de comandos incluem modificar manualmente os comandos, pedir que outro LLM sugira melhorias ou aplicar mudanças com base em uma combinação dessas técnicas. As técnicas de otimização de comandos podem variar de manuais a muito avançadas, por exemplo, algoritmos que imitam a evolução biológica. Mantenha um registro das mudanças para revertê-las, se necessário.
Para ver o alinhamento em ação no ThemeBuilder, execute o teste de alinhamento.
Teste de estresse com bootstrapping
Atingir a meta de alinhamento de 85% não garante que o juiz terá um bom desempenho com dados reais. Faça um teste de estresse no juiz com um hack estatístico chamado bootstrapping. O bootstrapping cria novas versões do conjunto de dados sem esforço adicional de rotulagem.
** Teste: reamostre aleatoriamente 30 itens do conjunto de dados com substituição. Em uma execução, um caso complicado pode ser escolhido cinco vezes, tornando o teste muito mais difícil. Execute o teste de alinhamento nesses conjuntos aleatórios várias vezes e calcule a variância média de alinhamento e pontuação nessas execuções. Não há um número mágico, mas 10 iterações são uma boa linha de base para projetos de médio porte. Faça mais iterações para ter mais confiança. ** Correção: se a pontuação de alinhamento variar significativamente (alta variância), o juiz ainda não será confiável. Sua pontuação inicial foi um acaso impulsionado por alguns casos fáceis. Amplie sua rubrica e adicione exemplos mais diversos e complicados ao conjunto de dados de alinhamento.
Você pode tentar.
Testar a autoconsistência
O juiz só pode ser confiável se sempre der a mesma resposta para a mesma entrada. Se você definir a temperatura como 0, o juiz precisará ser 100% consistente. Teste para confirmar.
- Teste: execute o juiz várias vezes no mesmo conjunto de dados, por exemplo um sorteio aleatório do conjunto de dados de alinhamento. Calcule a variância de cada caso de teste nessas repetições. Procure uma consistência de 100% (variância zero). Se a variância for maior que zero, o teste vai falhar porque significa que o juiz fornece respostas diferentes para a mesma entrada.
- Correção: o comando do juiz pode ser ambíguo ou a temperatura muito alta.
Reescreva as partes do comando que parecem confusas, em especial a rubrica de pontuação. Diminua a temperatura para 0 (ou defina o
thinking_levelcomo alto), se ainda não tiver feito isso.
Para ver isso em ação, execute o teste.
Exame final
O bootstrapping ajudou você a executar uma verificação inicial para evitar o overfitting. Agora, você vai executar um teste final usando dados novos. Essa é a confirmação final de que o juiz pode pontuar corretamente novas entradas.
- Teste: mantenha um conjunto de dados de exame final separado de 20 amostras rotuladas por humanos que você não usou durante o alinhamento. Execute o juiz nesse conjunto.
- Correção: se a pontuação de alinhamento permanecer alta, o juiz estará pronto. Se a pontuação cair, provavelmente você terá overfitting: você ajustou o comando muitas vezes para aprovar os dados de alinhamento específicos. Amplie o comando, a rubrica e os exemplos de poucos disparos.
Para ver isso em ação, execute o teste.
Resumo
Você executou diferentes testes para criar o juiz básico, incluindo:
- O teste de alinhamento verifica se o juiz está correto.
- O teste de bootstrapping e o exame final verificam a sensibilidade dos dados. O juiz permanece correto com frequência suficiente quando confrontado com novos dados?
- O teste de autoconsistência mede o ruído do sistema, que é o quanto a aleatoriedade interna do juiz do LLM afeta os resultados.