Capítulo 33 — Métodos de pesquisa II
Mapa da aula
Aula 33 publicada. Mapa, exemplo, EX097.
flowchart TD
N0["33.1 Desenho experimental"]
N1["33.2 Análise"]
N2["33.3 Armadilhas"]
N3["33.4 Ameaças à validade"]
N4["33.4b Avaliação adaptativa"]
N5["33.6b Pré-registro da comparação"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX097"]
Desenho lógico
flowchart LR
N0["33.1 Desenho experimental"]
N1["33.2 Análise"]
N2["33.3 Armadilhas"]
N3["33.4 Ameaças à validade"]
N4["33.4b Avaliação adaptativa"]
N5["33.6b Pré-registro da comparação"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX097"]
[33.1 Desenho experimental]
|
v
[33.2 Análise]
|
v
[33.3 Armadilhas]
|
v
[33.4 Ameaças à validade]
|
v
[33.4b Avaliação adaptativa]
|
v
[33.6b Pré-registro da comparação]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX097]
Objetivos de aprendizagem
Você vai (1) projetar experimentos controlados com várias condições e sementes; (2) analisar comparações pareadas com intervalos bootstrap; (3) tratar comparações múltiplas; e (4) reconhecer e evitar armadilhas comuns na pesquisa em segurança de ML.
33.1 Desenho experimental
Defina as condições (linha de base, defesa A, defesa B, A + B), mantenha todo o resto fixo, randomize a ordem das tarefas e use várias sementes. Pré-registre hipóteses e métricas num documento datado antes de executar. Manter todo o resto fixo significa a mesma versão do modelo, o mesmo conjunto de documentos e os mesmos prompts nas quatro condições do Ask Lumen. Randomizar a ordem impede que as tarefas posteriores se beneficiem de efeitos de cache ou de limite de taxa. O plano datado de Rina foi guardado no repositório da disciplina antes de sua primeira execução, de modo que o carimbo de tempo mostra que ele veio primeiro.
33.2 Análise
Use desenhos pareados: as mesmas tarefas em todas as condições. Faça bootstrap da diferença entre condições para obter intervalos. Ao comparar muitas condições, controle as falsas descobertas (por exemplo, com Holm–Bonferroni) ou rotule as comparações adicionais como exploratórias.
"""Lab S: reporting attack-success rates honestly: Wilson intervals,
seed variation and a paired bootstrap. Synthetic trial outcomes only."""
import math, random
def wilson(k, n, z=1.96):
p = k/n; d = 1 + z*z/n
c = (p + z*z/(2*n))/d; h = z*math.sqrt(p*(1-p)/n + z*z/(4*n*n))/d
return c - h, c + h
for k, n in ((3, 20), (30, 200), (300, 2000)):
lo, hi = wilson(k, n); print(f"successes={k}/{n} rate={k/n:.3f} wilson95=[{lo:.3f}, {hi:.3f}]")
# five seeds of a synthetic defence evaluation: per-seed attack success rate
rates = []
for seed in range(5):
r = random.Random(seed); rates.append(sum(r.random() < 0.12 for _ in range(200))/200)
m = sum(rates)/5; sd = math.sqrt(sum((x-m)**2 for x in rates)/4)
print("per-seed rates:", " ".join(f"{x:.3f}" for x in rates), f"mean={m:.3f} sd={sd:.3f}")
# paired bootstrap: baseline vs defence on the same 300 synthetic prompts
r = random.Random(42)
base = [r.random() < 0.30 for _ in range(300)]
defn = [b and r.random() < 0.6 for b in base] # defence blocks ~40% of successes
diffs = []
for _ in range(2000):
idx = [r.randrange(300) for _ in range(300)]
diffs.append(sum(base[i] for i in idx)/300 - sum(defn[i] for i in idx)/300)
diffs.sort()
print(f"baseline_asr={sum(base)/300:.3f} defended_asr={sum(defn)/300:.3f} "
f"reduction_ci95=[{diffs[50]:.3f}, {diffs[1949]:.3f}]")
Saída esperada:
successes=3/20 rate=0.150 wilson95=[0.052, 0.360]
successes=30/200 rate=0.150 wilson95=[0.107, 0.206]
successes=300/2000 rate=0.150 wilson95=[0.135, 0.166]
per-seed rates: 0.110 0.130 0.135 0.105 0.145 mean=0.125 sd=0.017
baseline_asr=0.350 defended_asr=0.190 reduction_ci95=[0.120, 0.203]
No laboratório, a redução de 0.350 para 0.190 tem um intervalo bootstrap de cerca de 0.120 a 0.203, então a defesa claramente ajuda. As taxas por semente, de 0.105 a 0.145, mostram por que são necessárias várias sementes. Uma única semente poderia sugerir um efeito maior ou menor do que a média mostra, e o leitor não teria como saber qual. Para o Ask Lumen, Rina usou cinco sementes por configuração.
33.3 Armadilhas
Arp et al. (arXiv:2010.09470) listam armadilhas que incluem viés de amostragem, imprecisão dos rótulos, bisbilhotagem dos dados (data snooping), correlações espúrias, seleção enviesada de parâmetros, linhas de base inadequadas, falácia da taxa de base, avaliação só em laboratório, modelos de ameaça inadequados e medidas de desempenho inadequadas. Use a lista como checklist antes e depois dos experimentos. Aplicada ao estudo de quatro configurações de Rina, a falácia da taxa de base era pertinente à discussão sobre o detector, e a avaliação só em laboratório, a todos os resultados, já que o tráfego da homologação é sintético. A bisbilhotagem dos dados foi evitada porque o conjunto de injeção reservado foi aberto uma única vez. Ela registrou quais armadilhas se aplicavam e o que fez a respeito de cada uma.
33.4 Ameaças à validade
Interna (outra coisa causou o efeito), de construto (a métrica não mede a propriedade), externa (os resultados não se transferem) e de conclusão (estatística inadequada). Anote-as com o que você fez a respeito de cada uma. No estudo de Rina, a validade externa era a principal preocupação: todos os documentos injetados estavam em inglês, e folhetos reais de parceiros incluem outros idiomas. A validade de construto foi verificada confirmando que seu avaliador de afirmações falsas correspondia aos rótulos humanos. A validade interna foi sustentada mantendo a versão do modelo fixa durante todo o estudo, de modo que uma atualização do provedor não pudesse explicar as diferenças.
33.4b Avaliação adaptativa
Para qualquer defesa que você proponha, inclua pelo menos um ataque projetado com conhecimento dela. Sem isso, os resultados descrevem apenas a resistência aos ataques de ontem (Carlini et al., arXiv:1902.06705). O conjunto adaptativo de Rina para a verificação de embasamento usou documentos com horários plausíveis, mas falsos, no mesmo formato do arquivo estruturado. Uma verificação que só comparasse formatos os aceitaria; a dela comparava valores, então os horários falsos foram pegos. Ela também testou documentos afirmando que o horário de uma clínica havia mudado "a partir da semana que vem", algo que a verificação não conseguia confirmar. Esses casos foram para revisão humana, o que ela registrou como um limite conhecido da abordagem de embasamento.
33.5 Exemplo resolvido (caso sintético da LCH)
Rina comparou quatro configurações do Ask Lumen em 500 tarefas injetadas e 500 benignas, com cinco sementes. Só a verificação de embasamento reduziu as afirmações falsas sobre clínicas de 9.0% para 3.2%; só a rotulagem das fontes, para 7.1%; as duas juntas, para 2.4%. O intervalo bootstrap pareado de "as duas contra só o embasamento" foi de 0.1–1.5 ponto — uma melhora pequena, mas positiva —, e ela anotou que os documentos injetados estavam todos em inglês. O intervalo exclui o zero, então a combinação ajuda, mas o ganho é pequeno o bastante para que a LCH o pesasse contra o custo de manutenção da rotulagem das fontes. A limitação ao inglês foi declarada no resumo.
33.6 Erros e limites
Três erros são comuns: nenhum pré-registro; muitas comparações relatadas como se cada uma fosse a única; e ignorar a checklist de armadilhas. Sem um plano datado, nada mostra que a hipótese veio antes dos dados, e os leitores precisam confiar no autor. Relatar seis comparações par a par como se cada uma fosse o único teste aumenta a chance de que uma pareça significativa por sorte; Rina usou Holm–Bonferroni em suas três comparações planejadas. Pular a lista de armadilhas deixa erros conhecidos chegarem ao relatório final sem serem notados, onde são caros de corrigir.
33.6b Pré-registro da comparação
Antes de executar o estudo de injeção de prompt, a equipe da LCH escreve a hipótese, o conjunto de ataques, a métrica e o limiar que contaria como melhora, e guarda esse plano com uma data. Os resultados são então comparados com o plano, o que impede a equipe de escolher uma métrica lisonjeira depois de ver os dados. O plano de Rina nomeou a taxa de afirmações falsas como métrica primária e as marcações concluídas como secundária. Também fixou, antes de qualquer execução, o número de sementes e o limiar de melhora, uma redução de pelo menos um ponto percentual.
Exercícios
- EX097 — Desenho. Projete um experimento de quatro condições para defesas do DocSort. Rubrica: 3 = condições, fatores fixos, sementes, tarefas pareadas, métricas; 2 = quatro; 1 = vago; 0 = nenhum.
- EX098 — Armadilhas. Escolha três armadilhas e diga como o desenho de Rina as evita ou se arrisca a elas. Rubrica: 3 = três corretas; 2 = duas; 1 = uma; 0 = nenhuma.
- EX099 — Interpretação. Interprete o intervalo de 0.1–1.5 ponto. Rubrica: 3 = benefício provavelmente real, mas pequeno; pode não justificar o custo sozinho; 2 = parcial; 1 = vago; 0 = errado.
Síntese
Os métodos de pesquisa II acrescentam rigor: desenhos pareados com várias condições, intervalos bootstrap, controle de multiplicidade e uma checklist de armadilhas.
Continue estudando — capítulo 33 de 40
← Capítulo 32 (rascunho) · Índice de capítulos do curso · Capítulo 34 (rascunho) →