Capítulo 24 — Métodos de pesquisa aplicada
Mapa da aula
Aula 24 publicada. Mapa, exemplo, EX070.
flowchart TD
N0["24.1 Perguntas"]
N1["24.2 Desenho"]
N2["24.3 Armadilhas"]
N3["24.4 Relato"]
N4["24.4b Ética em estudos aplicados"]
N5["24.7 Compartilhando resultados dentro da empresa"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX070"]
Desenho lógico
flowchart LR
N0["24.1 Perguntas"]
N1["24.2 Desenho"]
N2["24.3 Armadilhas"]
N3["24.4 Relato"]
N4["24.4b Ética em estudos aplicados"]
N5["24.7 Compartilhando resultados dentro da empresa"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX070"]
[24.1 Perguntas]
|
v
[24.2 Desenho]
|
v
[24.3 Armadilhas]
|
v
[24.4 Relato]
|
v
[24.4b Ética em estudos aplicados]
|
v
[24.7 Compartilhando resultados dentro da empresa]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX070]
Objetivos de aprendizagem
Você vai (1) transformar uma pergunta prática numa pergunta testável; (2) projetar um pequeno estudo comparativo; (3) evitar armadilhas comuns em estudos de AM para segurança; e (4) redigir os achados para os colegas.
24.1 Perguntas
Perguntas práticas tornam-se testáveis quando nomeiam a intervenção, a comparação, a medida e o cenário: "Separar as avaliações não confiáveis numa seção diferente do prompt reduz as chamadas de ferramentas prejudiciais em comparação com o prompt atual, na homologação do Ask Brightwell, medido em 200 casos reservados de injeção?" Uma boa pergunta também diz que resultado mudaria uma decisão. A pergunta de Jonas para o Ask Brightwell nomeava os quatro elementos e também a decisão: se o prompt separado reduzisse as propostas prejudiciais, seria adotado como camada adicional.
24.2 Desenho
Compare as condições nos mesmos casos; aleatorize a ordem; repita com várias sementes; fixe as versões. Decida o tamanho da amostra antes de executar: para detectar uma queda de 20% para 10%, você precisa de cerca de 200 casos por condição. Escreva o plano de análise com antecedência. No estudo do prompt separado, Jonas rodou os dois prompts nos mesmos 200 casos reservados, com cinco sementes cada, com a versão do modelo do fornecedor fixada. O tamanho da amostra foi escolhido a partir da queda planejada antes da execução, e o plano de análise foi escrito primeiro, de modo que a comparação não pudesse ser redesenhada depois de ver os números.
24.3 Armadilhas
Arp et al. (arXiv:2010.09470) listam armadilhas do AM para segurança, entre elas o viés de amostragem (casos de teste diferentes dos ataques reais), a bisbilhotagem de dados (data snooping, ajustar no conjunto de teste), linhas de base inadequadas e a avaliação feita apenas em laboratório. Proteja-se explicitamente de cada uma no desenho. O estudo de Jonas nomeia sua principal armadilha: os casos foram escritos pela sua equipe, o que pode não corresponder aos ataques reais. Ele evitou a bisbilhotagem de dados usando casos reservados e comparou com o prompt atual como linha de base, que é a decisão que a Brightwell de fato enfrenta.
24.4 Relato
De uma a três páginas: pergunta, método, tabela de resultados com intervalos, interpretação, limites, recomendação. Anexe os scripts e as listas de casos para que os colegas possam executar o estudo de novo.
"""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]
O relato de Jonas sobre o estudo do prompt separado cabe em duas páginas e termina com a recomendação de adotá-lo como camada adicional, mantendo o serviço de políticas. A lista de casos e os scripts ficam no repositório, ao lado da nota. Os scripts do estudo rodam na homologação e imprimem as mesmas taxas a partir das sementes guardadas, de modo que um colega pode confirmar os números de 21% e 12% sem pedir nada a Jonas.
24.4b Ética em estudos aplicados
Os estudos usam dados sintéticos e sistemas de homologação, sob autorização escrita. Se um estudo revelar uma vulnerabilidade ativa, pare e relate-a pelo processo de incidentes antes de continuar. No estudo de Jonas, todos os casos rodaram na homologação do Ask Brightwell, com contas de teste e sob sua autorização escrita. Se um caso tivesse revelado uma fraqueza que também afetasse a produção, o estudo teria sido pausado enquanto ela passava pelo processo de incidentes. A autorização escrita nomeia o ambiente de homologação e as contas de teste, e qualquer mudança de escopo volta ao mesmo aprovador.
24.5 Exemplo resolvido (caso sintético da Brightwell)
Jonas compara o prompt atual com um prompt de "seções separadas" em 200 casos reservados, com cinco sementes cada. Propostas prejudiciais: 21% contra 12%. Como na comparação do laboratório (de 35% para 19%, intervalo de redução de 12–20 pontos), ele relata a diferença com um intervalo. Limitação: casos escritos pela equipe. Recomendação: adotar o prompt separado como camada adicional; manter o serviço de políticas. O resultado sustenta o prompt separado como camada acrescentada, e não como substituto da aplicação das regras. O intervalo diz aos donos qual é o tamanho plausível da redução, e a limitação diz a eles por que o estudo não pode prometer o mesmo efeito contra atacantes reais.
24.6 Erros e limites
Três erros são comuns: perguntas vagas; escolher o tamanho da amostra depois de ver os resultados; e testar em casos usados no ajuste. O estudo de Jonas evita esses erros: a pergunta nomeia o prompt, a medida e o cenário; o tamanho da amostra foi definido antes da execução; e apenas casos reservados foram usados. Reutilizar casos de ajuste teria favorecido o prompt separado, e uma pergunta vaga não teria deixado nada a decidir. As cinco sementes e a versão fixada do modelo do fornecedor foram definidas ao mesmo tempo. Cada escolha está no plano do estudo, datado antes da execução, de modo que qualquer pessoa pode conferir que nada foi alterado depois de ver os resultados.
24.7 Compartilhando resultados dentro da empresa
Uma nota interna curta resume cada estudo aplicado para as equipes de produto e de suporte: a pergunta, o que foi encontrado, quão confiante a equipe está e que decisão o estudo sustenta. Os métodos detalhados ficam no apêndice, para quem quiser conferi-los. No estudo do prompt separado, a nota disse ao produto e ao suporte que o novo prompt reduziu as propostas prejudiciais nos casos da equipe, que o serviço de políticas continua decidindo e que os casos podem não corresponder a ataques reais. A nota tem links para os scripts e a lista de casos do estudo, para quem for conferi-lo.
Exercícios
- EX070 — Pergunta. Reescreva "nosso filtro é bom?" como uma pergunta testável. Rubrica: 3 = intervenção, comparação, medida, cenário; 2 = três; 1 = um ou dois; 0 = nenhum.
- EX071 — Armadilhas. Identifique duas armadilhas no estudo de Jonas e suas mitigações. Rubrica: 3 = duas, com mitigações; 2 = uma; 1 = vago; 0 = nenhuma.
- EX072 — Laboratório. Interprete o intervalo de redução do laboratório. Rubrica: 3 = a defesa reduz a ASR em 12–20 pontos com 95% de confiança; 2 = parcial; 1 = vago; 0 = errado.
Síntese
Pesquisa aplicada, na prática, significa perguntas testáveis, comparações planejadas com antecedência, armadilhas evitadas e relatos curtos e reproduzíveis.
Continue estudando — capítulo 24 de 30
← Capítulo 23 (rascunho) · Índice de capítulos do curso · Capítulo 25 (rascunho) →