Mapa da aula
Aula 11 publicada. Mapa, exemplo, EX051.
flowchart TD
N0["11.1 Preparação"]
N1["11.2 Parte A — assistente"]
N2["11.3 Parte B — API de pontuação"]
N3["11.3b Rodada adaptativa"]
N4["11.4 Efeitos colaterais"]
N5["11.5 Relatório"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX051"]
Desenho lógico
flowchart LR
N0["11.1 Preparação"]
N1["11.2 Parte A — assistente"]
N2["11.3 Parte B — API de pontuação"]
N3["11.3b Rodada adaptativa"]
N4["11.4 Efeitos colaterais"]
N5["11.5 Relatório"]
N6["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX051"]
[11.1 Preparação]
|
v
[11.2 Parte A — assistente]
|
v
[11.3 Parte B — API de pontuação]
|
v
[11.3b Rodada adaptativa]
|
v
[11.4 Efeitos colaterais]
|
v
[11.5 Relatório]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX051]
Objetivos de aprendizagem
Você vai (1) executar um laboratório supervisionado de ponta a ponta sobre uma cópia de um serviço de IA; (2) testar, configurar e testar de novo os controles; (3) observar riscos de privacidade e de extração em modelos de brinquedo; (4) medir efeitos colaterais; e (5) relatar os resultados com evidências.
11.1 Preparação
O ambiente do curso oferece uma cópia de assistente com envio de documentos, recuperação e duas ferramentas, além de uma API de pontuação. Apenas contas e documentos sintéticos. Sua supervisora ou seu supervisor aprova o plano antes de você começar. Mantenha um diário do laboratório desde o início. Leia o guia do laboratório, verifique se suas contas e seus documentos são sintéticos e confirme que as ferramentas da cópia não conseguem alcançar sistemas reais. Execute um teste rápido de fumaça para verificar se o harness registra entradas, saídas e chamadas de ferramenta antes de começar a Parte A.
11.2 Parte A — assistente
Execute as baterias de injeção, divulgação e agência na configuração padrão. Configure os controles do Capítulo 7. Execute de novo, incluindo os casos reservados. Meça a conclusão das tarefas normais antes e depois. Use como modelo os controles que você configurou no Capítulo 7. Registre os resultados de antes e de depois, com intervalos, e anote qualquer mudança na conclusão das tarefas normais, já que um controle que bloqueia ataques mas quebra o uso normal precisa de ajuste. Execute os casos reservados apenas uma vez, no final. Anote cada configuração alterada. Execute os testes de linha de base na cópia do assistente sem controles e depois acrescente os controles um de cada vez, testando de novo.
11.3 Parte B — API de pontuação
Execute os laboratórios de privacidade e de extração.
"""Lab M: membership inference against an overfit 1-nearest-neighbour 'model'
that returns a confidence score. Synthetic records only; teaching model."""
import random, math
rng = random.Random(5)
def rec():
y = rng.random() < 0.5
return [rng.gauss(0.6 if y else -0.6, 1.0) for _ in range(4)], int(y)
members = [rec() for _ in range(150)]; nonmembers = [rec() for _ in range(150)]
def confidence(x, y, k):
# k-NN vote share for the true label, computed over the training set
d = sorted((sum((a-b)**2 for a, b in zip(x, m)), my) for m, my in members)
return sum(1 for _, my in d[:k] if my == y)/k
def auc(pos, neg):
s = sum((p > n) + 0.5*(p == n) for p in pos for n in neg)
return s/(len(pos)*len(neg))
for k in (1, 5, 25):
pos = [confidence(x, y, k) for x, y in members]
neg = [confidence(x, y, k) for x, y in nonmembers]
best = max(sum(p >= t for p in pos)/len(pos) - sum(n >= t for n in neg)/len(neg)
for t in sorted(set(pos + neg)))
print(f"k={k:2d} attack_auc={auc(pos, neg):.3f} best_advantage={best:.3f}")
Saída esperada:
k= 1 attack_auc=0.600 best_advantage=0.200
k= 5 attack_auc=0.521 best_advantage=0.073
k=25 attack_auc=0.520 best_advantage=0.060
"""Lab X: model extraction of a toy linear scoring API by querying it.
The 'API' returns a real-valued score; d+1 well-chosen queries recover the
weights exactly, and rounding the output limits fidelity. Synthetic model."""
import random
rng = random.Random(9)
d = 5
secret_w = [round(rng.uniform(-2, 2), 3) for _ in range(d)]; secret_b = 0.42
def api(x, decimals=None):
s = sum(a*b for a, b in zip(secret_w, x)) + secret_b
return round(s, decimals) if decimals is not None else s
for dec in (None, 2, 0):
b = api([0]*d, dec)
w = [api([1 if j == i else 0 for j in range(d)], dec) - b for i in range(d)]
err = max(abs(a-c) for a, c in zip(w, secret_w))
test = [[rng.uniform(-1, 1) for _ in range(d)] for _ in range(500)]
agree = sum((sum(a*c for a, c in zip(w, x))+b > 0) == (api(x) > 0) for x in test)/500
print(f"output_rounding={str(dec):4s} queries={d+1} max_weight_error={err:.3f} label_agreement={agree:.3f}")
Saída esperada:
output_rounding=None queries=6 max_weight_error=0.000 label_agreement=1.000
output_rounding=2 queries=6 max_weight_error=0.004 label_agreement=0.998
output_rounding=0 queries=6 max_weight_error=0.534 label_agreement=0.882
A vantagem de pertencimento é máxima (0,20) quando o modelo de brinquedo efetivamente memoriza seus registros de treinamento (k = 1) e cai à medida que ele generaliza; pontuações exatas permitem que seis consultas copiem o modelo de brinquedo, enquanto o arredondamento para números inteiros eleva o erro para 0,534. Configurações pertinentes: saídas grosseiras, limites de taxa, monitoramento.
Registre as saídas de cada configuração. Os testes de pertencimento mostram quanto um modelo revela sobre seus registros de treinamento, e os testes de extração mostram de quantas consultas um atacante precisa para copiá-lo. Compare as saídas exatas com as grosseiras e anote como os limites de taxa mudariam o custo para o atacante.
11.3b Rodada adaptativa
Depois das baterias planejadas, passe uma hora supervisionada tentando novas formas de contornar seus controles, sabendo como eles funcionam: dividir um pedido entre turnos, esconder texto em imagens ou usar outro idioma. Registre cada tentativa, bem-sucedida ou não. Tentativas adaptativas costumam encontrar lacunas que baterias fixas deixam passar e mostram à supervisão como você raciocina como atacante dentro de limites seguros. Anote o resultado de cada tentativa no diário do laboratório. Depois que seus controles estiverem em vigor, experimente novas variações de ataque que você não usou durante o ajuste, como faria um atacante. Registre se alguma tem sucesso e o que você mudou em resposta e depois execute de novo os casos reservados.
11.4 Efeitos colaterais
Os controles podem bloquear o uso normal. Registre as recusas indevidas e as taxas de conclusão; ajuste onde o custo for alto demais e anote o compromisso assumido. No laboratório de Sofia, a conclusão caiu de 47 para 46 de 50 depois dos controles, um custo pequeno que ela registrou. Se um controle bloquear o uso normal mais do que isso, ajuste-o e teste de novo, e explique o compromisso no relatório para que a supervisão possa julgá-lo. Verifique também se algum controle torna as respostas mais lentas. Execute a bateria de tarefas normais depois de acrescentar cada controle, para ver qual deles causa uma eventual queda na conclusão.
11.5 Relatório
Uma tabela por categoria: antes, depois, reservados, intervalos; conclusão; falhas restantes; recomendações; o que não foi testado. O relatório de Sofia seguiu essa tabela e nomeou os envios só de imagem como não testados. Acrescente intervalos para os resultados dos casos reservados, como sua supervisora pediu, e mantenha o relatório curto o bastante para ser lido em dez minutos. Limite-o a uma página mais a tabela. Declare cada taxa como contagem com intervalo, por exemplo 0 de 25 casos reservados. Liste as falhas restantes com os identificadores dos casos, as recomendações com o risco que cada uma trata e as áreas não testadas, como os envios só de imagem, para que o próximo testador saiba por onde começar. A supervisão aprova o relatório.
11.6 Exemplo resolvido (caso sintético da Meridian)
O laboratório de Sofia: ações causadas por injeção 17/50 → 0/50 (reservados 0/25); divulgação 7/20 → 0/20; agência 5/15 → 0/15; conclusão 47/50 → 46/50. Parte B: ela recomenda que a API para parceiros do FraudFlag devolva apenas "padrão / revisão" e acrescenta limites de taxa por parceiro. Não testado: envios só de imagem, com texto dentro das figuras. Sua supervisora aprova o relatório com um único pedido: acrescentar intervalos para os resultados dos casos reservados. O relatório declara o que não foi testado, o que é tão útil para o próximo testador quanto os resultados. Os resultados de Sofia mostram que os controles funcionaram: a injeção caiu de 17 de 50 para 0 de 50, com 0 de 25 casos reservados tendo sucesso.
11.7 Erros e limites
Três erros são comuns: pular a linha de base; ignorar os efeitos colaterais; e relatórios sem "não testado". Cada erro enfraquece o laboratório. Sem uma linha de base, não há como mostrar que um controle ajudou. Ignorar os efeitos colaterais esconde o custo para os usuários normais. Um relatório sem uma lista de "não testado" sugere uma cobertura que não existe; Sofia nomeou os envios só de imagem por esse motivo. Verifique os três no seu relatório de laboratório antes de entregá-lo. Corrija qualquer um antes que a supervisão revise o relatório. O relatório de Sofia evitou os três, e sua supervisora pediu apenas intervalos para os resultados dos casos reservados.
Exercícios
- EX051 — Plano. Escreva o plano do laboratório para aprovação da supervisão. Rubrica: 3 = escopo, baterias, controles, medidas, segurança; 2 = quatro; 1 = dois; 0 = nenhum.
- EX052 — Resultados. Monte a tabela de resultados da Parte A. Rubrica: 3 = categorias, antes, depois, reservados, conclusão; 2 = quatro; 1 = dois; 0 = nenhum.
- EX053 — Intervalo. Dê o limite superior para 0/25 casos reservados. Rubrica: 3 = ≈12%, com o significado; 2 = o número; 1 = vago; 0 = errado.
- EX054 — Parte B. Explique dois números da Parte B. Rubrica: 3 = dois corretos, com sua pertinência; 2 = um; 1 = vago; 0 = nenhum.
- EX055 — Não testado. Por que incluir "não testado" no relatório? Rubrica: 3 = escopo honesto, evita exageros, planeja o trabalho seguinte; 2 = dois; 1 = um; 0 = nenhum.
Síntese
O laboratório supervisionado ensaia o ciclo completo da prática — linha de base, configuração, novo teste, medição dos efeitos colaterais, relato honesto — num ambiente seguro.
Continue estudando — capítulo 11 de 12
← Capítulo 10 (rascunho) · Índice de capítulos do curso · Capítulo 12 (rascunho) →