◇ OpenCyber Academy
Engenharia · Capítulo 29 · Português

Capítulo 29 — Segurança de IA e aprendizado de máquina: medição

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Capítulo 29 — Segurança de IA e aprendizado de máquina: medição

Mapa da aula

Aula 29 publicada. Mapa, exemplo, EX085.

flowchart TD
  N0["29.1 Métricas que correspondem às propriedades"]
  N1["29.2 Incerteza"]
  N2["29.3 Armadilhas"]
  N3["29.4 Programas de medição"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4
  N4 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX085"]

Desenho lógico

flowchart LR
  N0["29.1 Métricas que correspondem às propriedades"]
  N1["29.2 Incerteza"]
  N2["29.3 Armadilhas"]
  N3["29.4 Programas de medição"]
  N4["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX085"]
[29.1 Métricas que correspondem às propriedades]
    |
    v
[29.2 Incerteza]
    |
    v
[29.3 Armadilhas]
    |
    v
[29.4 Programas de medição]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX085]

Objetivos de aprendizagem

Você vai (1) escolher métricas para propriedades de segurança de IA (taxa de sucesso de ataque, acurácia robusta, TPR a FPR fixa, custo de utilidade); (2) estimá-las com intervalos e comparações pareadas; (3) evitar armadilhas de medição (vazamento, ataques fracos, taxas de base, viés de juízes LLM); e (4) projetar programas de medição que apoiem decisões de liberação.

29.1 Métricas que correspondem às propriedades

Integridade sob ataque: taxa de sucesso de ataque (ASR) ou acurácia robusta a um orçamento declarado. Detecção: TPR a uma FPR fixa e operacionalmente aceitável; precisão a taxas de base realistas. Privacidade: TPR de inferência de pertencimento a FPR baixa, com a AUC como resumo secundário. Custo: acurácia limpa, sucesso na tarefa, latência, recusas indevidas. Sempre emparelhe uma métrica de segurança com uma métrica de custo medida nos mesmos itens. O emparelhamento impede uma vitória fácil: qualquer sistema pode chegar a zero de sucesso de ataque recusando todos os pedidos, e só uma métrica de custo nos mesmos itens revela isso. Medir as duas em um único conjunto também permite lê-las juntas, item por item.

29.2 Incerteza

Use intervalos de Wilson para taxas, bootstrap para métricas médias e bootstrap pareado para comparações. Relate as sementes e sua dispersão.

"""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]

As três primeiras linhas do laboratório mostram a mesma taxa de 15% com intervalos que se estreitam à medida que os ensaios aumentam: de 5–36% com 20 ensaios para 13,5–16,6% com 2.000. A dispersão entre sementes de 0,017 mostra quanto uma única execução pode variar. O bootstrap pareado dá um intervalo de redução de 0,120 a 0,203, que exclui o zero, então a melhoria da defesa é sustentada pelos dados, e não por uma amostra de sorte.

29.3 Armadilhas

Vazamento entre os conjuntos de ajuste e de teste infla os resultados; ataques fracos ou não adaptativos fazem as defesas parecerem fortes (Athalye et al., arXiv:1802.00420); ignorar as taxas de base engana sobre a utilidade de um detector (Arp et al., arXiv:2010.09470). Quando um LLM é usado como juiz das saídas, valide-o contra rótulos humanos em uma amostra e relate a concordância; juízes podem ser enviesados a favor de respostas fluentes ou de recusas. Cada armadilha faz os resultados parecerem melhores do que são, e é por isso que os revisores as procuram primeiro. Um número surpreendentemente bom merece o maior escrutínio.

29.4 Programas de medição

Uma decisão de liberação precisa de um conjunto fixo (reservado, versionado), limiares ligados aos requisitos, um cronograma (a cada versão e periodicamente) e um responsável. Acompanhe as métricas ao longo do tempo para detectar regressões e deriva. Guarde as saídas brutas para que as métricas possam ser recalculadas se as definições mudarem. Ter um responsável impede que o conjunto se degrade: alguém precisa acrescentar novos padrões de ataque, aposentar casos quebrados e manter os limiares alinhados aos requisitos. O versionamento torna visível uma mudança no conjunto, e resultados de versões diferentes não são comparados como se fossem o mesmo teste. As saídas brutas permitem que os analistas respondam a novas perguntas depois, como com que frequência um modelo recusou tarefas benignas, sem executar a campanha inteira de novo.

29.5 Exemplo resolvido (caso sintético da NRS)

O plano de medição de Sam para o Wrench: ASR de injeção em 600 tarefas reservadas (requisito ≤ 2% de propostas, 0 execuções), taxa de confirmações indevidas em 600 tarefas benignas (≤ 5%), sucesso na tarefa em 300 tarefas de planejamento (≥ 90%), cada uma com intervalos de Wilson; rótulos do juiz LLM validados em 150 saídas rotuladas por humanos (concordância de 93%). Os resultados alimentam o portão de CI e um relatório trimestral. O plano emparelha cada métrica de segurança com uma métrica de custo: o sucesso da injeção com as confirmações indevidas, que medem com que frequência o trabalho benigno é atrasado. Exigir zero execuções ao lado do limite de propostas reflete a arquitetura, já que as propostas podem ser barradas pelo ponto de aplicação, enquanto as execuções nunca podem acontecer. Uma concordância de 93% em 150 saídas mostra que o juiz é utilizável, mas imperfeito, então as divergências são revisadas por uma pessoa a cada trimestre.

29.6 Erros e limites

Três erros são comuns: métricas de segurança sem métricas de custo; juízes LLM não validados; e mudar o conjunto entre versões e comparar os números mesmo assim. Uma métrica de segurança sozinha pode ser melhorada fazendo o sistema recusar tudo. Um juiz LLM que não foi verificado contra rótulos humanos pode recompensar respostas confiantes ou recusas. Comparar números entre conjuntos diferentes mistura mudanças no sistema com mudanças no teste. O relatório trimestral de Sam declara a versão do conjunto em todos os gráficos e inicia uma nova série sempre que o conjunto muda.

Exercícios

Síntese

A medição transforma a segurança de IA em decisões: métricas emparelhadas com custos, intervalos honestos, ataques adaptativos, juízes validados e um programa estável e versionado.

Continue estudando — capítulo 29 de 50

← Capítulo 28 (rascunho) · Índice de capítulos do curso · Capítulo 30 (rascunho) →