PromptBench — LLM 평가를 위한 통합 라이브러리

Digest: 현존 LLM 평가 도구 — LlamaIndex·LangChain은 다운스트림 응용 통합형이고, Eval-Harness·Zeno는 정적 벤치마크 — 는 적대적 프롬프트 공격(adversarial prompt attack)동적 평가(dynamic evaluation) 를 통합적으로 지원하지 않는다. PromptBench는 6개 모듈(Models·Tasks·Datasets·Prompts & Engineering·Attacks·Protocols·Analysis)을 단일 Python 패키지로 묶어 22개 데이터셋·12개 태스크·22종 이상 LLM/VLM(Llama2·Mixtral·LLaVA·GPT-4·PaLM 2·Gemini)에 대해 표준·적대적·동적 평가를 수십 줄 코드로 실행하게 한다. 적대적 공격은 4단계(문자·단어·문장·의미)로 통합되어 있으며, 프롬프트 엔지니어링은 CoT·Zero-shot CoT·EmotionPrompt·Expert Prompting·Generated Knowledge·Least-to-Most 6개 기법을 기본 제공한다. 동적 평가는 DyVal(Zhu et al. 2023a) 기반의 동적 데이터 생성과 의미적 평가(MSTemp; Liu et al. 2023b)로 데이터 오염을 회피한다. 결과: 모든 모델이 적대적 프롬프트에 취약하고, GPT-4가 가장 강건. 프롬프트 엔지니어링 기법은 특정 도메인에서만 베이스라인을 능가. 모듈러 아키텍처가 핵심 가치 — 연구자가 자체 공격·태스크·메트릭을 쉽게 플러그인 할 수 있다. 코드는 microsoft/promptbench 에서 지속 관리된다.


섹션별 요약

Abstract

LLM 평가는 성능과 보안 리스크 완화에 핵심이다. PromptBench는 평가에 필요한 핵심 컴포넌트 — 프롬프트 구성, 프롬프트 엔지니어링, 데이터셋·모델 로더, 적대적 프롬프트 공격, 동적 평가 프로토콜, 분석 도구 — 를 통합한 라이브러리다. 개방적·범용적·유연한 코드베이스로 새로운 벤치마크 생성, 다운스트림 응용 배포, 신규 평가 프로토콜 설계 연구를 촉진한다. 코드는 github.com/microsoft/promptbench 에 공개되어 있고 지속 지원된다.

저자 contribution

  1. 단일 Python API로 표준·적대적·동적 LLM 평가 파이프라인을 구축할 수 있는 통합 라이브러리 제공.
  2. 적대적 프롬프트 공격을 4단계(character/word/sentence/semantic)로 체계화하여 6+개 기법(TextBugger·DeepWordBug·BertAttack·TextFooler·CheckList·StressTest·human-crafted)을 모듈화.
  3. 6개 프롬프트 엔지니어링 기법을 일관된 인터페이스로 통합하고, DyVal·MSTemp 기반 동적/의미적 평가 프로토콜을 표준 파이프라인에 포함.
  4. 12개 태스크·22개 데이터셋·22종 이상 모델에 대한 sweep 실행·시각화·attention/word frequency 분석 도구 제공.

왜 이 연구를 하는가?

  • 모티베이션: LLM이 의료 진단(McDuff et al. 2023), 안과 임상 추론(Thirunavukarasu et al. 2024), 교육 도구(Ho et al. 2023)까지 침투하면서, 진짜 능력잠재 리스크를 동시에 측정할 필요가 절박하다.
  • 기존 한계:
    1. LlamaIndex·LangChain: 다운스트림 응용 통합용 (DB·데이터 소스 추가)이지 평가 도구가 아님.
    2. Semantic Kernel: AI 서비스와 프로그래밍 언어 통합용.
    3. Eval-Harness: 정적 few-shot 평가 전용, 적대적·동적 평가 미지원.
    4. Zeno: 시각화·인터랙션 강점이나 커스터마이즈 어려움.
    5. LiteLLM: API call 통합만 — 평가 컴포넌트 부재.
  • 연구 질문: LLM의 (1) 프롬프트 민감성, (2) 적대적 공격 취약성, (3) 테스트셋 오염을 동시에 다루는 단일 평가 라이브러리를 어떻게 설계할 것인가?

Introduction

LLM은 다양한 평가가 이루어져 왔지만 — Hendrycks et al. 2021, Liang et al. 2022, Zheng et al. 2023, Huang et al. 2023, HuggingFace 2023 — 3가지 중대한 발견이 평가의 범위 자체를 흔든다: (1) LLM은 프롬프트에 민감하다(Wang et al. 2023a), (2) 적대적 프롬프트 공격에 취약하다(Zhu et al. 2023b), (3) 테스트셋 데이터 오염에 노출된다(Willig et al. 2023, Zhou et al. 2023b). 또한 BDPL(Diao et al. 2022), GrIPS(Prasad et al. 2022), Plum(Pan et al. 2023) 같은 프롬프트 학습 알고리즘이 등장했다. 이런 변화하는 환경에서 통합·빠른·유연한 평가 코드베이스가 절실하다.

Methods

라이브러리 컴포넌트 (Figure 1):

  1. Models: 오픈소스(Llama2, Mixtral, LLaVA, Phi, Vicuna, Baichuan, Yi, T5 등) + 독점(ChatGPT, GPT-4, PaLM 2, Gemini). LLMModel / VLMModel 통합 인터페이스. 커스텀 fine-tuned 모델 지원.

  2. Tasks (12개) & Datasets (22개): GLUE, MMLU, SQuAD V2, UN Multi, IWSLT 2017, Mathematics, BIG-Bench Hard, GSM8K 등. 감성 분석·문법성·중복 문장 감지·NLI·다중 태스크 지식·독해·번역·수학·논리/상식/기호/알고리즘 추론까지. DatasetLoader 통합 로딩.

  3. Prompts & Prompt Engineering:

    • 4종 프롬프트: task-oriented / role-oriented × zero-shot / few-shot
    • 6종 엔지니어링: Chain-of-Thought (CoT), Zero-Shot CoT, EmotionPrompt, Expert Prompting, Generated Knowledge, Least-to-Most
    • prompt_engineering 모듈로 통합
  4. Adversarial Prompt Attacks (4단계 통합):

    • Character-level: TextBugger, DeepWordBug — 오타·문자 변형
    • Word-level: BertAttack, TextFooler — 동의어·문맥 유사 단어 교체로 의미 보존하며 공격
    • Sentence-level: CheckList, StressTest — 무관·잡음 문장 첨가로 distraction
    • Semantic-level: Zhu et al. 2023b의 region-specific 언어 행동 시뮬레이션
    • prompt_attack 인터페이스 + 커레이팅된 adversarial prompt 풀
  5. Evaluation Protocols:

    • Standard: 직접 추론
    • Dynamic: DyVal(Zhu et al. 2023a) — 그래프 기반 동적 데이터 생성으로 데이터 오염 회피
    • Semantic: MSTemp(Liu et al. 2023b) — 의미 보존 데이터 변환
  6. Analysis Tools: sweep 실행, 시각화 분석, attention 시각화, word frequency 분석, defense analysis(word correction 통합).

Evaluation Pipeline (Section 2.2, 4단계):

  1. pb.DatasetLoader로 데이터셋 로딩
  2. pb.LLMModel로 모델 인스턴스화
  3. pb.Prompt로 프롬프트 정의(or 디폴트 사용)
  4. pb.utils.dataprocessInputProcess/OutputProcess + pb.metrics의 평가 함수로 파이프라인 완성

발견 (Findings)

본 논문은 라이브러리 시연이지만 핵심 실증 결과는 다음과 같다:

  • 적대적 강건성: 모든 모델이 적대적 프롬프트에 취약. ChatGPT와 GPT-4가 가장 강한 강건성을 보이지만 여전히 영향 받음.
  • 프롬프트 엔지니어링 효과: 대부분 기법은 특정 분야에서만 효과적이고 모든 데이터셋에서 베이스라인을 일관되게 능가하지는 못함. → “범용 최강 prompt”는 존재하지 않는다.
  • 동적 평가의 진단력: GPT-4가 전반적으로 우수하나, linear equation·abductive logic·max sum path 태스크에서 성능 개선 여지가 큼이 동적 데이터로 노출됨. 정적 벤치마크로는 보이지 않던 약점이 드러난다.

Results

본 논문은 라이브러리 기능을 보여주는 형식이라 표 형태의 종합 결과보다는 3개 리더보드(adversarial prompt attack / prompt engineering / dynamic evaluation)를 부록 C에서 제공한다. 핵심 메시지:

  • 모델 강건성 순위: GPT-4 > ChatGPT > 기타
  • 프롬프트 엔지니어링 효과: CoT는 추론·수학에서 강하나 단순 분류에서 효과 미미
  • 동적 평가: 데이터 오염 가능성을 배제한 채 재측정하면 모델 순위가 바뀌는 경우가 존재

Discussion

Supported Research Topics (Section 2.3) — PromptBench가 직접 지원하는 연구 축:

  • Benchmarks: NLU·NLG·Reasoning·Agent·Interdisciplinary
  • Scenarios: Adversarial, OOD, Hallucination, Bias (metrics/DatasetLoader 교체로 확장 가능)
  • Protocols: Standard, Dynamic, Semantic, Principled
  • Foundation: 측정 이론(measurement theory) 검증 가능

Limitations (저자 자인):

  • 모든 평가 시나리오를 커버하진 못함
  • 일부 메트릭은 미묘한 성능 차이를 놓칠 수 있음
  • 데이터셋·프롬프트 품질·다양성에 의존

이론적 의의

  • LLM 평가를 정적 정확도 측정 에서 프롬프트-aware, 적대 검증, 데이터 오염-robust 측정 으로 패러다임 전환.
  • 모듈러 디자인이 연구 친화성을 높여, 신규 공격·태스크·메트릭이 단일 인터페이스에 플러그인되는 생태계를 가능케 함.
  • “Principled” 평가 토픽을 명시적으로 지원해 후속 메트릭 이론 작업(예: 본 Vault의 Principled Personas - Defining and Measuring the Intended Effects of Persona Prompting on Task Performance)과 연결됨.

Discussion Points

  • 논쟁점: 적대적 강건성에서 GPT-4가 최강이라는 결과 — 동적 평가에서도 같은 우위가 유지되는가? 본 논문은 그렇다고 보고하지만 후속 외부 평가에서 다른 결과들이 보고됨.
  • 검증 가정: 프롬프트 엔지니어링이 “효과 있다”는 측정은 데이터셋 선택에 매우 민감하다. PromptBench가 22개 데이터셋을 사용해도 외삽 가능성은 제한적.
  • 후속 연구: (a) 멀티모달·VLM 적대적 공격, (b) Agent 단계 적대성, (c) DyVal 동적 데이터 생성에 LLM-as-judge 결합한 자동화 평가.

실험 결과 상세

평가 축컴포넌트핵심 인터페이스
모델 로딩22+ LLM/VLMpb.LLMModel("model_id")
데이터 로딩22 데이터셋, 12 태스크pb.DatasetLoader(task)
프롬프트4종 + 커스텀pb.Prompt(...)
프롬프트 엔지니어링CoT/Zero-shot CoT/EmotionPrompt/Expert/Generated Knowledge/Least-to-Mostpb.prompt_engineering
적대 공격character/word/sentence/semantic 4단계pb.prompt_attack
평가 프로토콜standard / dynamic(DyVal) / semantic(MSTemp)pb.metrics + protocol 선택
분석sweep, attention vis, word frequency, defensepb.utils

적대 공격 효과 요약 (논문 Figure에서 추출):

  • 모든 28개 LLM × 4공격 조합에서 평균 정확도 강하
  • GPT-4: 최저 강하율, ChatGPT 다음
  • 오픈소스 소형 모델(Llama2-7B 등)이 가장 큰 강하

프레임워크 다이어그램

flowchart LR
    A[User Code] --> B[pb.DatasetLoader]
    A --> C[pb.LLMModel]
    A --> D[pb.Prompt]
    B & C & D --> E[Evaluation Pipeline]
    E --> F1[Standard Protocol]
    E --> F2[Dynamic Protocol<br/>DyVal]
    E --> F3[Semantic Protocol<br/>MSTemp]
    E --> G1[prompt_engineering<br/>CoT/EmotionPrompt/Expert/...]
    E --> G2[prompt_attack<br/>4-level<br/>char/word/sentence/semantic]
    F1 & F2 & F3 --> H[pb.metrics]
    G1 & G2 --> H
    H --> I[Analysis Tools<br/>sweep/attention/freq/defense]
    I --> J[Leaderboard<br/>3 boards]

재현성 및 신뢰도 평가

항목평가근거
코드 공개Agithub.com/microsoft/promptbench (Microsoft 공식, 지속 관리)
문서화Apromptbench.readthedocs.io 튜토리얼 + API 레퍼런스
라이선스ACC BY 4.0 (논문) + 코드 별도 오픈 라이선스
모델 다양성A오픈소스 + 독점 22종 이상
데이터셋 다양성A22개 공개 데이터셋
통계적 엄밀성B적대 공격·동적 평가 reproducibility는 시드/seed 설정에 의존
메트릭 범위B일부 미묘한 성능 차이 미반영(저자 인정)
종합 등급A−평가 라이브러리로서 재현성·확장성은 최상위, 단 메트릭 깊이는 분야 의존적

관련 연구 비교 매트릭스

PromptBench (Zhu et al., JMLR 2024)HELM (Liang et al., 2022)lm-evaluation-harness (Gao et al., 2023)DecodingTrust (Wang et al., 2023)OpenCompass (2023)
핵심 접근통합 Python 라이브러리: 프롬프트·공격·동적 평가·분석 통합시나리오×메트릭 매트릭스 기반 정적 평가few-shot 정적 LM 평가, 광범위 태스크GPT 계열 특화 신뢰성 평가(독성·OOD·프라이버시)다중 모델·벤치마크 리더보드 플랫폼
적대적 평가✅ 4단계 통합(char/word/sent/sem)일부 (특정 축)
동적 평가✅ DyVal + Semantic(MSTemp)❌ 정적만
프롬프트 엔지니어링 내장✅ 6 기법
데이터셋 수2242+ 시나리오200+ 태스크8 신뢰성 축100+
모델 지원오픈+독점 22+정적 시나리오 한정플러그인 풍부GPT 계열 한정광범위
코드 공개✅ microsoft/promptbench

PromptBench는 기존 프레임워크들이 정적 벤치마크 정확도에 집중하는 동안, 적대적 프롬프트 공격(4단계 8+ 기법)동적/의미적 평가 프로토콜을 단일 라이브러리에 통합해 평가 범위를 프롬프트 민감성일반화 능력까지 확장한 점이 차별점이다. HELM·lm-evaluation-harness·OpenCompass가 모델 역량의 폭에 강점이 있다면, PromptBench는 프롬프트 엔지니어링 비교취약성 분석이라는 깊이 축에서 독보적이다. DecodingTrust와 일부 신뢰성 축이 겹치나, PromptBench는 GPT 전용이 아닌 범용성을 유지한다.


원자적 인사이트 (Zettelkasten)

  • 프롬프트 평가의 3축: LLM 평가는 (1) 표준 정확도뿐 아니라, (2) 프롬프트 표현 변형(adversarial)에 대한 강건성, (3) 데이터 오염을 피한 동적 데이터 generalization 능력 — 3축에서 동시에 측정해야 한다. PromptBench는 이 3축을 단일 인터페이스로 묶어 평가 패러다임의 표준을 제시한다.

  • 적대적 공격의 4단계 분해: 프롬프트 공격을 character(오타) → word(동의어) → sentence(잡음 문장) → semantic(지역적 언어 행동) 4단계로 분해하면, 모델의 취약 층위를 진단할 수 있다. 모델 강건성은 단일 점수가 아닌 층위별 프로파일로 측정해야 한다.

  • 프롬프트 엔지니어링의 도메인 의존성: CoT·EmotionPrompt·Expert Prompting 같은 기법은 특정 도메인(수학·추론)에서만 베이스라인을 능가하고, 단순 분류에서는 효과가 미미하다. 즉, “범용 최강 프롬프트”는 없다 — 태스크-기법 매칭이 필요한 설계 문제.

  • 동적 데이터로 본 SOTA의 가려진 약점: 정적 벤치마크에서는 GPT-4가 전반적으로 우수해 보이지만 DyVal 기반 동적 데이터에서 linear equation·abductive logic·max sum path 태스크의 약점이 드러난다. 데이터 오염을 배제한 동적 평가는 모델 순위를 바꿀 수 있다.

  • 모듈러 평가 라이브러리의 가치: 평가 도구가 모듈러(컴포넌트 플러그인)일 때, 연구자는 자체 공격·태스크·메트릭을 라이브러리 코어 수정 없이 실험할 수 있다. PromptBench의 진짜 기여는 측정 결과가 아니라 측정의 인프라다.

핵심 용어 정리

  • Adversarial Prompt Attack: 입력 프롬프트를 미세 변형해 모델의 정답률을 떨어뜨리는 공격 — 본 논문은 4단계로 분해.
  • DyVal: Zhu et al. 2023a의 그래프 기반 동적 평가 데이터 생성 방법으로, 학습 데이터와 분리된 새로운 인스턴스를 생성해 데이터 오염을 회피한다.
  • MSTemp: Meta Semantic Template (Liu et al. 2023b) — 의미를 보존하면서 표면 형태를 바꿔 평가하는 의미적 평가 방법.
  • Chain-of-Thought (CoT): 모델에 단계적 추론을 명시 유도하는 프롬프트 기법.
  • EmotionPrompt: 감정 자극 문장(예: “이는 매우 중요한 일입니다”)을 프롬프트에 첨가해 LLM 성능을 끌어올리는 기법 (Li et al. 2023a).
  • Expert Prompting: “당신은 X 전문가입니다” 형태로 역할을 부여하는 기법 (Xu et al. 2023).
  • TextBugger / DeepWordBug: 문자 단위 공격 기법 — 문자 삽입·삭제·치환으로 오타를 만듦.
  • BertAttack / TextFooler: 단어 단위 공격 — BERT 임베딩 유사도로 동의어를 찾아 교체.
  • CheckList / StressTest: 문장 단위 공격 — 의미 무관 문장을 첨가해 모델을 distract.
  • Sweep: 다수 모델·프롬프트·태스크 조합을 자동 실행해 종합 결과 표를 생성하는 PromptBench 분석 도구.

관련 연구

태그

llm-evaluation library adversarial-prompt dynamic-evaluation prompt-engineering benchmark jmlr2024 microsoft


BibTeX

@article{zhu2024promptbench,
  title={PromptBench: A Unified Library for Evaluation of Large Language Models},
  author={Zhu, Kaijie and Zhao, Qinlin and Chen, Hao and Wang, Jindong and Xie, Xing},
  journal={Journal of Machine Learning Research},
  volume={25},
  pages={1--22},
  year={2024},
  url={https://arxiv.org/abs/2312.07910}
}