◇ OpenCyber Academy
Pesquisa doutoral · Capítulo 7 · Português

Capítulo 7 — Síntese da tese e arquivo de reprodutibilidade

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 7 — Síntese da tese e arquivo de reprodutibilidade

Mapa da aula

Aula 07 publicada. Mapa, exemplo, EX039.

flowchart TD
  N0["7.1 A tese como argumento"]
  N1["7.2 Ameaças à validade"]
  N2["7.3 O arquivo de reprodutibilidade"]
  N3["7.4 Decisões de publicação"]
  N4["7.6 Atividades práticas"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX039"]

Desenho lógico

flowchart LR
  N0["7.1 A tese como argumento"]
  N1["7.2 Ameaças à validade"]
  N2["7.3 O arquivo de reprodutibilidade"]
  N3["7.4 Decisões de publicação"]
  N4["7.6 Atividades práticas"]
  N5["Síntese"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX039"]
[7.1 A tese como argumento]
    |
    v
[7.2 Ameaças à validade]
    |
    v
[7.3 O arquivo de reprodutibilidade]
    |
    v
[7.4 Decisões de publicação]
    |
    v
[7.6 Atividades práticas]
    |
    v
[Síntese]
    |
    v
[Exemplo resolvido] --> [Exercício EX039]

Objetivos de aprendizagem

Você vai (1) estruturar uma tese de modo que cada capítulo responda a uma pergunta de pesquisa com evidências; (2) escrever um capítulo de síntese que declare contribuições, limitações e ameaças à validade; (3) construir um arquivo de reprodutibilidade (código, configurações, fichas de dados, fichas de modelo, hashes, registros); (4) decidir o que publicar, controlar ou reter; e (5) verificar que um estranho consegue regenerar os resultados principais.

7.1 A tese como argumento

Uma tese é um único argumento, não um álbum de recortes de artigos. Abra com o problema e a lacuna (Capítulo 2), declare as perguntas de pesquisa e as contribuições, e depois dê a cada capítulo empírico uma pergunta e a sua resposta. Feche com uma síntese que integre: o que agora se sabe e antes não se sabia; sob quais condições; o que continua em aberto. Quando a tese incluir artigos publicados, acrescente um texto de ligação que explique como o modelo de ameaça e a terminologia de cada artigo se encaixam no todo, e harmonize os termos para que "taxa de sucesso do ataque" signifique uma única coisa do começo ao fim.

7.2 Ameaças à validade

Organize as limitações por tipo de validade. Validade interna: algo diferente do tratamento poderia explicar o efeito (viés do avaliador, vazamento, efeitos de semente)? Validade de construto: a métrica mede a propriedade ("chamada de ferramenta não autorizada" captura o dano)? Validade externa: o resultado se transfere para outros modelos, ferramentas, idiomas, padrões de implantação? Validade de conclusão: a estatística é adequada (poder, multiplicidade, dependência entre tarefas)? Em segurança de IA, acrescente a validade adversarial: o adversário razoável mais forte dentro do modelo de ameaça foi de fato tentado? Para cada ameaça, diga o que você fez a respeito e o que permanece.

7.3 O arquivo de reprodutibilidade

O arquivo é o artefato que permite a outro pesquisador regenerar as suas figuras. Inclua: um README com os comandos exatos; o ambiente (arquivos de bloqueio de versões, receita de contêiner, notas de hardware); o código num commit com tag; os arquivos de configuração de cada execução; os identificadores de modelo e os hashes SHA-256 dos checkpoints que você usou (não necessariamente os pesos, se a licença proibir a redistribuição); os conjuntos de dados ou geradores com fichas de dados (datasheets; Gebru et al., arXiv:1803.09010); fichas de modelo (model cards) para qualquer modelo que você publicar (Mitchell et al., arXiv:1810.03993); os registros brutos por tentativa ou uma razão documentada para retê-los; o notebook ou script de análise que transforma os registros em tabelas; e um manifesto com o hash de cada arquivo. Arquive num repositório que emita identificadores persistentes e escolha as licenças de forma deliberada (código, dados e texto podem precisar de licenças diferentes).

7.4 Decisões de publicação

Aplique a tabela de publicação do Capítulo 3 aos artefatos finais. Código da defesa, arcabouço de avaliação, geradores de tarefas sintéticas e scripts de análise costumam ser públicos. Os corpora de cargas adaptativas podem ter acesso controlado (acesso mediante pedido para pesquisadores verificados, com termos). Qualquer coisa específica de um produto em produção nomeado espera a conclusão da divulgação coordenada. Não inclua dados pessoais. Se você redigir trechos, diga o que foi redigido e por quê, para que os revisores possam julgar o efeito na reprodutibilidade. A publicação de Ana seguiu esse padrão: arcabouço e defesa públicos, corpus de cargas controlado, como planejado na proposta.

7.5 Exemplo resolvido (caso sintético do MAAL)

O README do arquivo de Ana contém três comandos: construir o contêiner, executar make pilot (cerca de 2 horas de GPU) e make main (cerca de 140 horas de GPU), e depois make tables. Um alvo de smoke test reexecuta 30 tarefas por condição em dez minutos e verifica se os números ficam dentro das tolerâncias armazenadas. O manifesto lista 1.412 arquivos com hashes. Um colega de laboratório que não conhecia o projeto seguiu o README numa máquina nova; o smoke test falhou porque a versão de um tokenizador tinha mudado, e o arquivo de bloqueio foi corrigido. O capítulo de síntese de Ana lista as suas contribuições como (1) evidência de que a separação acrescenta uma redução mensurável além das ferramentas de menor privilégio, (2) um arcabouço de ataques adaptativos e (3) a descoberta dos ecos por encadeamento de ferramentas como família residual; as ameaças incluem apenas três modelos de duas famílias e tarefas sintéticas.

O laboratório de estatística também serve como verificação do arquivo: um revisor pode executá-lo e obter exatamente os números impressos, porque todo gerador aleatório tem semente.

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

7.6 Atividades práticas

  1. Escreva as contribuições e a tabela de validade do capítulo de síntese da sua tese. 2. Monte um manifesto dos arquivos do seu projeto com hashes SHA-256. 3. Peça a um colega que reproduza uma figura a partir apenas do seu README e registre o que falhou. Para a tabela de validade, use os cinco tipos e diga, para cada ameaça, o que você fez e o que permanece, como Ana fez para as famílias de modelos e as tarefas sintéticas. Para o manifesto, calcule o hash de cada arquivo do arquivo de reprodutibilidade e guarde a lista junto com ele. Para o teste com o colega, entregue apenas o README e uma máquina nova; registre cada falha e cada correção, como a execução do colega de Ana encontrou a mudança do tokenizador.

7.7 Erros e limites

Cada um destes erros enfraquece o arquivo ou o argumento:

Uma execução por um colega de laboratório numa máquina nova, como a de 7.5, é a verificação mais barata contra vários desses erros ao mesmo tempo.

Exercícios

Síntese

A tese argumenta; o arquivo prova. Uma tabela de validade clara e um arquivo que um estranho de fato reexecutou transformam um conjunto de experimentos numa contribuição sobre a qual outros podem construir.

Continue estudando — capítulo 07 de 08

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