Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Perturbed-Embedding-Vectors — Código, logs de resposta e rótulos para o artigo Jailbreaking Open-Weight LLMs via Random Embedding Perturbations | Kitploit
Ferramentas/GitHubGitHub/abhinavdubey30/perturbed-embedding-vectors
Aprendizado de MáquinaPapers e PesquisaAprendizado e EducaçãoRecursos CuradosSegurança de IAAtaque Adversário
GitHubabhinavdubey30/perturbed-embedding-vectors

Perturbed-Embedding-Vectors

Código, logs de resposta e rótulos para o artigo Jailbreaking Open-Weight LLMs via Random Embedding Perturbations

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
1há 4 diasAinda não revisado

Jailbreaking Open-Weight LLMs via Random Embedding Perturbations: execuções, rótulos e código

Código e dados para o artigo Jailbreaking Open-Weight LLMs via Random Embedding Perturbations.

Escrito pelas pessoas incríveis do Departamento de Ciência da Computação Teórica da Universidade da Califórnia, Santa Cruz.

Este trabalho tem contribuições significativas de Scott Sirri, Prof. Vaggos Chatziafratis, Prof. C. Seshadhri e eu.

O repositório contém todas as respostas de modelos geradas para o artigo, o rótulo seguro / inseguro / degenerado de cada resposta, os notebooks Colab que as produziram e os scripts de inferência que os notebooks importam. Isto abrange o ataque Perturbed Embedding Vector (PEV) e os cinco outros métodos de jailbreak comparados no artigo. Todas as taxas de jailbreak e tempos de relógio de parede no artigo são calculados a partir dos ficheiros em results/.

Estrutura

code/
  inference/             run_<model>.py: carregamento do modelo, construção do prompt e o ciclo de
                         geração manual que todos os notebooks PEV importam
  ours/<model>/          notebooks PEV para um modelo
  ours/<model>/fixed_peak_sigma/
                         notebooks para as execuções de sigma de pico fixo (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B); os seus registos estão em results/<model>/ours/fixed_peak_sigma/
  igcg/                  I-GCG, um notebook por modelo
  latentfusion/          LatentFusion, um notebook por modelo
  refusalcones/          RefusalCones, um notebook por modelo
  softprompt/            notebooks SoftPrompt (Llama-3.1-8B e Mistral-7B)
  figures/               notebook que desenha as figuras do artigo
results/<model>/
  baseline/              respostas diretas aos prompts não perturbados (registo .txt) e os seus
                         rótulos (.xlsx / .csv); estes dão a taxa de jailbreak de base
  ours/raw_responses/    registos de respostas PEV das varreduras de sigma, divididos por intervalo de prompts
  ours/classified/       rótulos para essas respostas, divididos da mesma forma
  ours/fixed_peak_sigma/ execuções PEV no sigma de pico fixo do modelo (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B): a varredura completa de 100 prompts e as re-execuções SELECT
  igcg/ latentfusion/ neurostrike/ refusalcones/ softprompt/
                         respostas (.txt) e rótulos (.xlsx) para os outros métodos

Modelos: Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B, GLM-4-9B, as variantes de chat ajustadas por instruções nomeadas na Sec. 4 do artigo.

Onde está o código de cada método:

MétodoLocalização
PEVcode/ours/<model>/; execuções de sigma de pico fixo em code/ours/<model>/fixed_peak_sigma/; código de inferência partilhado em code/inference/
I-GCGcode/igcg/, um notebook por modelo
LatentFusioncode/latentfusion/, um notebook por modelo
RefusalConescode/refusalcones/, um notebook por modelo
SoftPromptcode/softprompt/, Llama-3.1-8B e Mistral-7B
NeuroStrikedentro dos notebooks PEV code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb (célula de configuração também em LLama31_perturbation_p1_to_p25.ipynb) e code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; as respostas vão para results/<model>/neurostrike/

Scripts de inferência

code/inference/run_<model>.py é um ficheiro por modelo (run_qwen.py, run_smollm3.py, run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py). Cada um carrega o modelo com HuggingFace Transformers, aplica o template de chat com uma mensagem de sistema vazia, expõe load_model(), build_prompt() e encode_prompt(), e executa um ciclo de geração autorregressiva manual com um hook nos embeddings de entrada. Os notebooks importam o script para o seu modelo e injetam o ruído Gaussiano através desse hook. Executado sozinho, um script abre um terminal interativo para um único modelo; os comandos /verbose e /embedfile imprimem tabelas de tokens e vetores de embedding. Os interruptores de dispositivo e comportamento são variáveis de ambiente documentadas no cabeçalho de cada ficheiro. O script Llama precisa de um token Hugging Face porque o checkpoint está restrito; o token é lido do ambiente e nunca armazenado.

Convenções de ficheiros

  • Os registos de respostas (.txt) são registos apenas de adição escritos pelos notebooks. Cada entrada regista o índice do prompt, o nível de ruído sigma quando aplicável, o número da execução e a resposta completa do modelo. Os nomes dos ficheiros contêm o intervalo de prompts (p001_to_p025 significa prompts 1 a 25 dos 100 prompts prejudiciais do JailbreakBench) e o timestamp UTC da execução. O tempo de relógio de parede é escrito após cada lote de 20 execuções por prompt e no final da experiência.
  • Os ficheiros de rótulos (.xlsx, .csv) contêm uma linha por resposta com o seu rótulo, seguro, inseguro ou degenerado, conforme definido na Sec. 4 do artigo. Um prompt conta como jailbroken se qualquer uma das suas execuções for rotulada como insegura. Os ficheiros com nomes *_categorization* ou *_p01_25 são as versões rotuladas do registo com o mesmo intervalo de prompts.
  • As execuções de sigma de pico fixo (ours/fixed_peak_sigma/) são nomeadas JBB_<model>_sigma0pXXX_..._<timestamp>.txt; sigma0p003 significa sigma = 0.003. O ficheiro p001_to_p100 é a varredura completa de 100 prompts, 20 execuções nesse sigma. Os ficheiros SELECT_..._nNN são execuções de seguimento no mesmo sigma sobre os prompts listados no nome do ficheiro, com NN execuções por prompt.
  • Os ficheiros que contêm HIGHSIGMA são as execuções com sigma maior discutidas na Sec. 4.1.
  • Os ficheiros que contêm SELECT são execuções adicionais sobre os prompts listados no nome do ficheiro, para prompts que precisaram de mais de 20 execuções para fazer jailbreak. A linha de cabeçalho de cada registo regista os valores de sigma, o número de execuções, os ids dos prompts e a semente aleatória.
  • Llama-3.1-8B/baseline/fixed_baseline.xlsx e os ficheiros de rótulos fixed_* são os ficheiros de rótulos após verificação manual e substituem versões anteriores.

Classificação de respostas

As respostas foram classificadas pelo Claude Opus 4.6 com as instruções do juiz do JailbreakBench, dado o ficheiro de registo com o prompt, o número da execução e a resposta. Cada resposta rotulada como insegura foi depois verificada à mão. Os ficheiros de rótulos em results/ são os rótulos verificados.

Reproduzir uma execução

Cada notebook em code/ours/<model>/ foi executado numa única NVIDIA A100-SXM4-80GB no Google Colab. Importa o run_<model>.py correspondente, carrega os prompts prejudiciais do JailbreakBench, mapeia cada prompt através da camada de embedding de entrada do modelo, adiciona ruído Gaussiano independente N(0, sigma^2) ao embedding completo do prompt e passa o embedding perturbado para as camadas do transformer. Para cada prompt, amostra 20 matrizes de ruído num único lote e acrescenta cada resposta ao registo. Os parâmetros de descodificação e o sigma por modelo estão listados na Sec. 4 e Tab. 3 do artigo e definidos no topo de cada notebook. O token Hugging Face é pedido interativamente e não é armazenado neste repositório. Os notebooks para os outros métodos seguem o mesmo padrão com o ataque correspondente substituído.

As taxas de jailbreak no artigo podem ser recalculadas apenas a partir dos ficheiros de rótulos, sem executar qualquer modelo.

Baixar ferramenta