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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ASCENT — 1차 최적 안전 캘리브레이션과 주기적 재캘리브레이션을 LLM에 적용하여, 안전 호환 업데이트를 유지하면서 다운스트림 작업 유용성을 향상시키는 파인튜닝 프레임워크입니다. | Kitploit
도구/GitHubGitHub/zju-llm-safety/ascent
Defensive ToolsMachine LearningPapers & ResearchAI SecurityAdversarial Attack
GitHubzju-llm-safety/ascent

ASCENT

1차 최적 안전 캘리브레이션과 주기적 재캘리브레이션을 LLM에 적용하여, 안전 호환 업데이트를 유지하면서 다운스트림 작업 유용성을 향상시키는 파인튜닝 프레임워크입니다.

저장소 보기
1134일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ASCENT

안전성–유용성 동시 향상을 위한 재보정 기반 1차 최적 미세조정

ASCENT는 1차 최적 안전 보정 업데이트와 이에 대응하는 안전 관련 구조를 도출하고, 안전 호환 구성 요소는 보존하면서 안전을 저해하는 구성 요소는 억제하도록 다운스트림 작업 업데이트를 최적화하며, 미세조정 중 이 구조를 주기적으로 재보정하여 안전성과 다운스트림 유용성을 함께 향상시킵니다.

방법 · 빠른 시작 · 데이터 · 구성 · 평가

🧠 방법 개요

ASCENT 프레임워크: 안전 보정, 안전 보존 작업 최적화, 주기적 재보정.

  1. 1차 최적 안전 보정. 안전 판정기를 사용하여 현재 모델의 안전 그래디언트를 추정합니다. 상위 r개의 특이 성분이 고정된 랭크와 프로베니우스 노름 예산 하에서 예측된 1차 안전 개선을 최대화하는 보정 업데이트를 정의합니다.
  2. 안전 보존 작업 최적화. 안전 호환 작업 업데이트 구성 요소는 보존하고, 1차 안전 효과가 부정적인 구성 요소는 선택적으로 억제합니다. 닫힌 형태의 업데이트는 원래 작업 업데이트와의 근접성과 안전 충돌에 대한 페널티 사이의 균형을 특이값으로 가중하여 맞춥니다.
  3. 주기적 재보정. 보정 지점 사이에 작업 업데이트를 수행한 다음, 유효 작업 업데이트를 병합하고 업데이트된 모델에서 안전 관련 구조를 재추정합니다. 보정 일정은 config.toml에서 설정합니다.

🚀 빠른 시작

요구 사항: Python 3.12 및 로컬 모델 체크포인트. 학습에는 두 개의 CUDA GPU를 사용하며, 하나는 대상 모델용, 하나는 Llama Guard용입니다. 각 모델은 해당 GPU에 맞아야 합니다.

pip install -r requirements.txt
cp config.example.toml config.toml

config.toml의 빈 값을 인라인 주석에 따라 채운 후 다음을 실행하세요:

python run.py \
  --config config.toml \
  --model-path /path/to/target-model \
  --guard-model-path /path/to/Llama-Guard-3-8B \
  --data-root data \
  --output-dir /path/to/new-run \
  --target-gpu 0 --guard-gpu 1

학습, 응답 생성 또는 평가 결과 저장을 위해서는 --execute를 추가하세요.

체크포인트를 저장할 공간이 있는 저장소 외부의 새 출력 디렉터리를 선택하세요. 학습이 완료되면 최종 병합 모델 경로를 출력합니다.

📁 데이터

구성된 레코드 수에 맞는 JSON 배열을 제공하세요:

  • 보정: <data-root>/calibration/prompts.json
  • 작업 데이터: <data-root>/<task>/{train,test}.json, 학습/테스트 입력은 서로 겹치지 않아야 합니다.
데이터셋필수 필드
SAMSumdialogue, summary
AGNewstext, label_name: World, Sports, Business, Sci/Tech 중 하나
GSM8Kquestion, #### 최종 답변이 포함된 answer
OpenBookQAquestion_stem, choice_labels: ["A","B","C","D"], 네 개의 choice_texts, answer_key: A–D
HarmBenchgoal만 필수; 선택적 id, source; 저장된 응답 없음

⚙️ 구성

config.toml에서 모델, 작업 및 하이퍼파라미터를 설정하세요. 모델 로딩 및 행렬 선택은 model.key를 따릅니다.

📊 평가

두 모드 모두 evaluate.py를 사용하세요. 생성에는 완전히 병합된 로컬 모델이 필요합니다. 자체 데이터와 외부 안전 점수를 제공하세요. 데이터셋, 온라인 판정기 또는 API 구성은 포함되어 있지 않습니다.

유용성

python evaluate.py utility --task gsm8k --data /path/to/test.json \
  --model-path /path/to/merged-model --output-dir /path/to/task-evaluation --execute

작업: samsum, agnews, gsm8k, openbookqa. 지표는 SAMSum의 경우 ROUGE-L, 나머지는 정확도/정확 일치이며 백분율로 보고됩니다. 저장된 응답을 채점하려면 --model-path를 --responses /path/to/responses.json으로 바꾸세요.

안전성

id, goal 및 선택적 prompt(기본값은 goal)를 가진 레코드로 고정 프롬프트를 제공하세요. 원래 유해 목표를 공격 프롬프트와 분리하여 유지하세요.

응답 생성:

python evaluate.py safety --data /path/to/prompts.json \
  --model-path /path/to/merged-model --output-dir /path/to/safety-responses --execute

외부 점수 집계:

python evaluate.py safety \
  --responses /path/to/safety-responses/responses.json --judgments /path/to/scores.json \
  --output-dir /path/to/safety-metrics --execute

점수는 응답 ID와 1–5 점수(실패한 판정은 null)를 사용하는 JSON 레코드 { "id": "...", "score": 1 }입니다. 점수 4–5는 성공한 공격으로 간주하며, 5만 계산하려면 --success-threshold 5를 사용하세요. 누락되거나 실패한 판정은 최종 ASR을 산출하지 않습니다.

두 모드 모두에서 채팅 포맷팅 후 --max-input-tokens를 초과하는 입력은 잘리지 않고 거부됩니다. 생성된 토큰을 위한 여유를 남기고 모델의 컨텍스트 용량 내에서 한도를 설정하세요.

도구 다운로드