Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Perturbed-Embedding-Vectors — 논문 "Random Embedding Perturbations를 통한 오픈 웨이트 LLM 탈옥"을 위한 코드, 응답 로그 및 레이블 | Kitploit
도구/GitHubGitHub/abhinavdubey30/perturbed-embedding-vectors
Machine LearningPapers & ResearchLearning & EducationCurated ResourcesAI SecurityAdversarial Attack
GitHubabhinavdubey30/perturbed-embedding-vectors

Perturbed-Embedding-Vectors

논문 "Random Embedding Perturbations를 통한 오픈 웨이트 LLM 탈옥"을 위한 코드, 응답 로그 및 레이블

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
6773일 전아직 검토되지 않음

무작위 임베딩 교란을 통한 오픈 웨이트 LLM 탈옥: 실행, 레이블 및 코드

논문 Jailbreaking Open-Weight LLMs via Random Embedding Perturbations의 코드 및 데이터.

논문 사전 출판본 링크 - https://arxiv.org/abs/2610.07125

캘리포니아 대학교 산타크루즈 이론 컴퓨터 과학과의 훌륭한 분들이 작성했습니다.

이 작업에는 Scott Sirri, Vaggos Chatziafratis 교수, C. Seshadhri 교수 그리고 저의 중요한 기여가 있습니다.

이 저장소에는 논문을 위해 생성된 모든 모델 응답, 각 응답의 안전 / 안전하지 않음 / 퇴화(degenerate) 레이블, 이를 생성한 Colab 노트북, 그리고 노트북이 임포트하는 추론 스크립트가 포함되어 있습니다. 이는 Perturbed Embedding Vector (PEV) 공격과 논문에서 비교한 다섯 가지 다른 탈옥 방법을 다룹니다. 논문의 모든 탈옥률과 실제 소요 시간(wall-clock time)은 results/에 있는 파일들로부터 계산됩니다.

레이아웃

code/
  inference/             run_<model>.py: model loading, prompt construction and the manual
                         generation loop that every PEV notebook imports
  ours/<model>/          PEV notebooks for one model
  ours/<model>/fixed_peak_sigma/
                         notebooks for the fixed peak sigma runs (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B); their logs are in results/<model>/ours/fixed_peak_sigma/
  igcg/                  I-GCG, one notebook per model
  latentfusion/          LatentFusion, one notebook per model
  refusalcones/          RefusalCones, one notebook per model
  softprompt/            SoftPrompt notebooks (Llama-3.1-8B and Mistral-7B)
  figures/               notebook that draws the paper figures
results/<model>/
  baseline/              direct responses to the unperturbed prompts (.txt log) and their
                         labels (.xlsx / .csv); these give the baseline jailbreak rate
  ours/raw_responses/    PEV response logs from the sigma sweeps, split by prompt range
  ours/classified/       labels for those responses, split the same way
  ours/fixed_peak_sigma/ PEV runs at the fixed peak sigma of the model (GLM-4-9B, Phi-4-mini,
                         Qwen2.5-1.5B): the full 100-prompt sweep and the SELECT re-runs
  igcg/ latentfusion/ neurostrike/ refusalcones/ softprompt/
                         responses (.txt) and labels (.xlsx) for the other methods

모델: Qwen2.5-1.5B, SmolLM3-3B, Phi-4-mini, Mistral-7B-Instruct, Llama-3.1-8B, GLM-4-9B, 논문 4절에 명시된 instruction-tuned 채팅 변형.

각 방법의 코드 위치:

방법위치
PEVcode/ours/<model>/; 고정 피크 시그마 실행은 code/ours/<model>/fixed_peak_sigma/; 공유 추론 코드는 code/inference/
I-GCGcode/igcg/, 모델당 노트북 하나
LatentFusioncode/latentfusion/, 모델당 노트북 하나
RefusalConescode/refusalcones/, 모델당 노트북 하나
SoftPromptcode/softprompt/, Llama-3.1-8B 및 Mistral-7B
NeuroStrikePEV 노트북 code/ours/Llama-3.1-8B/LLama31_perturbation_p76_to_p100.ipynb 내부(설정 셀은 LLama31_perturbation_p1_to_p25.ipynb에도 있음) 및 code/ours/SmolLM3-3B/run_smollm3_batched_p26_p50.ipynb; 응답은 results/<model>/neurostrike/에 저장됨

추론 스크립트

code/inference/run_<model>.py는 모델당 파일 하나입니다(run_qwen.py, run_smollm3.py, run_phi4mini.py, run_mistral.py, run_llama.py, run_glm.py). 각 파일은 HuggingFace Transformers로 모델을 로드하고, 빈 시스템 메시지로 채팅 템플릿을 적용하며, load_model(), build_prompt(), encode_prompt()를 노출하고, 입력 임베딩에 훅을 건 수동 자기회귀 생성 루프를 실행합니다. 노트북은 해당 모델의 스크립트를 임포트하고 그 훅을 통해 가우시안 노이즈를 주입합니다. 단독으로 실행하면 스크립트는 단일 모델을 위한 대화형 터미널을 엽니다. /verbose 및 /embedfile 명령은 토큰 테이블과 임베딩 벡터를 출력합니다. 디바이스 및 동작 스위치는 각 파일 헤더에 문서화된 환경 변수입니다. Llama 스크립트는 체크포인트가 게이트되어 있어 Hugging Face 토큰이 필요합니다. 토큰은 환경에서 읽어오며 절대 저장되지 않습니다.

파일 규칙

  • 응답 로그(.txt)는 노트북이 작성하는 추가 전용(append-only) 로그입니다. 각 항목은 프롬프트 인덱스, 해당되는 경우 노이즈 레벨 시그마, 실행 번호, 전체 모델 응답을 기록합니다. 파일 이름에는 프롬프트 범위(p001_to_p025는 100개의 JailbreakBench 유해 프롬프트 중 1번부터 25번까지를 의미)와 실행의 UTC 타임스탬프가 포함됩니다. 실측 시간은 프롬프트당 20회 실행의 매 배치 후와 실험 종료 시에 기록됩니다.
  • 레이블 파일(.xlsx, .csv)은 응답당 한 행을 가지며, 논문 4절에 정의된 대로 safe, unsafe 또는 degenerate 레이블을 담습니다. 프롬프트의 실행 중 하나라도 unsafe로 레이블되면 해당 프롬프트는 탈옥된 것으로 간주합니다. *_categorization* 또는 *_p01_25 형식의 파일은 동일한 프롬프트 범위를 가진 로그의 레이블된 버전입니다.
  • 고정 피크 시그마 실행(ours/fixed_peak_sigma/)은 JBB_<model>_sigma0pXXX_..._<timestamp>.txt로 명명됩니다. sigma0p003은 sigma = 0.003을 의미합니다. p001_to_p100 파일은 해당 시그마에서 100개 프롬프트, 20회 실행의 전체 스윕입니다. SELECT_..._nNN 파일은 파일 이름에 나열된 프롬프트에 대해 동일한 시그마로 수행한 후속 실행이며, 프롬프트당 NN회 실행입니다.
  • HIGHSIGMA가 포함된 파일은 4.1절에서 논의된 더 큰 시그마에서의 실행입니다.
  • SELECT가 포함된 파일은 탈옥에 20회 이상의 실행이 필요했던 프롬프트에 대해, 파일 이름에 나열된 프롬프트에서의 추가 실행입니다. 모든 로그의 헤더 줄에는 시그마 값, 실행 횟수, 프롬프트 id, 랜덤 시드가 기록됩니다.
  • Llama-3.1-8B/baseline/fixed_baseline.xlsx 및 fixed_* 레이블 파일은 수동 검증 후의 레이블 파일이며 이전 버전을 대체합니다.

응답 분류

응답은 Claude Opus 4.6에 의해 JailbreakBench 판정 지침과 함께, 프롬프트, 실행 번호, 응답이 담긴 로그 파일을 제공받아 분류되었습니다. unsafe로 레이블된 모든 응답은 이후 수동으로 확인되었습니다. results/의 레이블 파일이 검증된 레이블입니다.

실행 재현

code/ours/<model>/ 아래의 각 노트북은 Google Colab의 단일 NVIDIA A100-SXM4-80GB에서 실행되었습니다. 이 노트북은 대응하는 run_<model>.py를 임포트하고, JailbreakBench 유해 프롬프트를 로드하며, 각 프롬프트를 모델의 입력 임베딩 레이어를 통해 매핑하고, 전체 프롬프트 임베딩에 독립적인 가우시안 노이즈 N(0, sigma^2)를 추가한 뒤, 교란된 임베딩을 트랜스포머 레이어에 전달합니다. 각 프롬프트에 대해 하나의 배치에서 20개의 노이즈 행렬을 샘플링하고 모든 응답을 로그에 추가합니다. 디코딩 파라미터와 모델별 sigma는 논문의 Sec. 4 및 Tab. 3에 나열되어 있으며 각 노트북 상단에 설정되어 있습니다. Hugging Face 토큰은 대화식으로 요청되며 이 저장소에 저장되지 않습니다. 다른 방법에 대한 노트북도 해당 공격으로 대체하여 동일한 패턴을 따릅니다.

논문의 탈옥률은 모델을 실행하지 않고 레이블 파일만으로 다시 계산할 수 있습니다.

도구 다운로드