한 전문가가 화이트보드 앞에서 Active Prompting의 작동 원리를 설명하고, 다른 한 명이 LLM 추론 과정을 분석하는 모습의 일러스트
|

Active Prompting: LLM ‘족집게 과외’ 시키는 획기적 방법

Active Prompting: LLM ‘족집게 과외’ 시키는 획기적 방법

LLM의 성능을 높이려 ‘프롬프트 엔지니어링‘에 공들여 보셨다면 ‘생각의 사슬(Chain-of-Thought, CoT)‘ 기법을 아실 겁니다. 모델에게 ‘풀이 과정’ 예시를 보여줘서 추론 능력을 높이는 강력한 방법이죠.

하지만 여기서 늘 근본적인 질문이 생깁니다.

“과연 어떤 예시를 보여줘야 가장 효과가 좋을까요?”

지금까지 우리는 이 ‘최적의 예시‘를 사실상 ‘감’에 의존해 골랐습니다. 훈련 세트에서 무작위로 몇 개를 고르거나, 엔지니어가 가장 좋아 보이는 예시를 직접 만들었죠. 하지만 우리가 고심해 고른 8개의 예시가, 정말 모델의 잠재력을 100% 끌어내는 ‘최고의 조합‘이라고 확신할 수 있을까요?

만약 모델이 스스로 “이 문제가 헷갈리니, 비슷한 유형의 풀이법을 알려주세요”라고 요청할 수 있다면 어떨까요?

이 아이디어에서 출발한 것이 바로 ‘Active Prompting(능동형 프롬프트)’입니다. 이 기법은 LLM이 ‘가장 헷갈려 하는’ 질문을 스스로 찾아내고, 그것을 학습 예시로 삼는 획기적인 방식입니다.

이 글에서는 Active Prompting이 무엇인지, 어떻게 작동하는지, 그리고 왜 이 방법이 기존의 수동적인 CoT 방식을 능가하는지 그 핵심 원리를 살펴보겠습니다.

1. 무엇이 문제인가: ‘족집게 과외’와 ‘수학의 정석’의 차이

CoT의 효과는 전적으로 ‘어떤 예시를 고르냐‘에 달려있습니다. 하지만 이 예시를 사람이 직접 고르면 세 가지 명확한 한계가 드러납니다.

기존 CoT 방식은 비유하자면, 모든 학생에게 똑같은 ‘수학의 정석‘ 교과서를 나눠주고 “알아서 공부해”라고 하는 것과 비슷합니다.

  • 편향성(Bias): 엔지니어가 선택한 예시는 특정 문제 유형이나 풀이 방식에 치우칠 수 있습니다.
  • 비효율성(Inefficiency): 모델이 이미 잘 아는 쉬운 문제를 예시로 들면, 소중한 토큰(비용)만 낭비하는 셈입니다.
  • 확장성 부재(Lack of Scalability): 새로운 유형의 작업이 등장할 때마다, ‘최고의 예시’를 찾기 위한 수동 엔지니어링을 반복해야 합니다.

2. Active Prompting이란 무엇인가?

Active Prompting은 정반대의 접근법을 취합니다. 바로 ‘족집게 과외‘ 방식입니다.

학생(LLM)에게 “어디가 제일 헷갈려요?”라고 먼저 묻습니다. 그리고 학생이 가장 어려워하는 그 부분만 콕 집어 설명해주는 것이죠.

즉, Active Prompting은 LLM이 특정 작업에 대해 가장 ‘불확실하게(uncertain)‘ 느끼는 질문을 먼저 식별하고, 전문가가 그 질문에 대해서만 CoT 풀이 과정을 작성하게 하는 방식입니다.

이 접근법은 단 8개의 예시를 고르더라도, 무작위로 고른 8개보다 모델의 성능을 훨씬 더 크게 향상시킵니다. 핵심은 ‘예시의 양‘이 아니라, 모델의 ‘불확실성’을 정확히 해소해 주는 ‘예시의 품질’입니다.

3. Active Prompting은 어떻게 작동하는가? (4단계 프로세스)

Active Prompting의 전체 프로세스는 네 단계로 명확하게 나뉩니다.

(1) 1단계: 불확실성 추정 (Uncertainty Estimation)

먼저, 풀이(주석)가 없는 대규모 질문 목록을 준비합니다. 모델에게 이 목록의 각 질문에 대해 k번 (예: 10번) 답변을 생성시킵니다. (‘Let’s think step by step’ 같은 Zero-shot CoT 활용) 결과적으로 우리는 한 질문에 대해 k개의 서로 다른 답변 {a₁, a₂, …, aₖ}를 얻게 됩니다. 이제 이 k개의 답변이 얼마나 제각각인지(일관성이 없는지) 측정하여 ‘불확실성 u‘를 계산합니다.

(2) 2단계: 질문 선택 (Selection)

1단계에서 계산된 불확실성 u를 기준으로 모든 질문을 정렬합니다. 그리고 불확실성이 가장 높은, 즉 모델이 가장 헷갈려 하는 상위 n개의 질문(예: 8개)을 고릅니다.

(3) 3단계: 주석 달기 (Annotation)

선택된 n개의 ‘가장 불확실한 질문’을 사람 전문가에게 전달해, 정확한 답변(a)과 고품질의 CoT 추론 과정(c)을 작성하게 합니다. 이것이 우리의 새로운 ‘맞춤형 예시(New Exemplars E)‘가 됩니다.

(4) 4단계: 추론 (Inference)

이제 실제 테스트 시간입니다. 3단계에서 만든 강력한 n개의 예시(E)를 프롬프트에 포함하여 모델에게 실제 테스트 질문에 대해 답변하도록 요청합니다.

4. 핵심 비결: 모델의 ‘불확실성’은 어떻게 측정하는가?

Active Prompting의 성패는 1단계, 즉 ‘불확실성 u‘를 얼마나 정확하게 측정하느냐에 달려있습니다. 연구팀은 k개의 답변을 분석하기 위해 여러 방법을 테스트했습니다.

[올바른 접근] 1. 답변의 ‘일관성’ 확인 (Disagreement & Entropy)

연구팀은 k개의 답변이 얼마나 흩어져 있는지를 보는 두 가지 지표가 매우 효과적임을 발견했습니다.

불일치 (Disagreement, D): 가장 직관적이고 강력한 방법입니다. k번의 답변 중 서로 다른 답변이 몇 종류나 나왔는지 그 비율을 봅니다.

  • 예시 (낮은 불확실성): 5번(k=5) 답했는데, 답이 모두 ‘3’으로 동일하다면 (고유 답변 1개), 불확실성 u = 1/5 = 0.2 입니다.
  • 예시 (높은 불확실성): 5번(k=5) 답했는데, 답이 ‘1’, ‘2’, ‘3’, ‘4’, ‘5’로 모두 다르다면 (고유 답변 5개), 불확실성 u = 5/5 = 1.0 입니다.

엔트로피 (Entropy, E): 정보 이론의 개념을 사용합니다. 답변의 분포가 얼마나 ‘무질서’한지 측정합니다. 답변이 특정 값 하나로 모이지 않고 여러 값으로 널리 퍼질수록 엔트로피(불확실성)가 높습니다.

[잘못된 접근] 2. 모델의 ‘자신감’ 점수 (Self-Confidence)

반면, 가장 효과가 없었던 방법은 모델에게 “당신의 답변을 얼마나 확신하나요?”라고 스스로 평가하게 하는 방식이었습니다.

이유: LLM은 자신이 틀렸을 때도 근거 없이 자신만만해하는(over-confident) 경향이 있기 때문입니다. 즉, LLM은 자기 자신의 불확실성을 객관적으로 판단하지 못했습니다.

5. 그래서, 효과는 어떠했는가? (핵심 결과)

연구팀은 8개의 복잡한 추론 데이터셋에서 Active Prompting의 성능을 테스트했습니다.

핵심 1: ‘무작위 선택’을 압도하다 (가장 중요)

Active Prompting의 핵심 가설(‘불확실성 기반 선택’이 ‘무작위 선택’보다 낫다)을 검증했습니다. 동일한 n개의 예시를 ‘무작위’로 고른 방식(Random-CoT)과 비교했을 때, Active-Prompt는 월등히 높은 성능을 보였습니다. (예: GSM8K 데이터셋에서 Random-CoT 78.6% vs Active-Prompt(D) 82.2%)

이는 예시를 ‘어떻게‘ 풀었느냐(Annotation)가 아니라, ‘어떤‘ 예시를 골랐느냐(Selection)가 성능 향상의 핵심이었음을 명확히 증명합니다.

핵심 2: 기존 기법들을 능가하다

Active Prompting (D)는 기존의 강력한 베이스라인인 Self-Consistency(SC)보다도 평균 1.8% 더 높은 성능을 달성했습니다.

핵심 3: 모델과 작업의 ‘본질적인 어려움’을 찾다 (Transferability)

이 기법은 Llama 2 같은 다른 모델에서도 유효했습니다. 더 흥미로운 점은, 강력한 모델(A)이 헷갈려 하는 질문을 골라 다른 모델(B)의 프롬프트로 사용해도 성능이 향상되었다는 것입니다. 이는 Active Prompting이 찾아낸 ‘어려운 문제‘가 특정 모델의 약점이 아니라, 그 작업(Task) 자체가 본질적으로 가진 어렵고 모호한 부분임을 시사합니다.

6. 결론: 우리가 얻어야 할 교훈

Active Prompting 연구는 LLM의 추론 능력을 높이는 방식에 근본적인 시각 변화를 요구합니다. 이제 엔지니어가 ‘최고의 프롬프트‘를 찾기 위해 고군분투하는 대신, 모델이 ‘가장 필요한 학습 자료’를 스스로 제안하게 만들어야 한다는 것입니다.

이 논문이 현업 개발자와 엔지니어에게 주는 시사점(Takeaways)은 명확합니다.

‘불확실성’을 핵심 지표로 삼으십시오.

파인튜닝(fine-tuning)이든, RAG(검색 증강 생성)용 데이터 선별이든, 모델이 일관된 답을 못 내는 데이터를 식별하는 것이 중요합니다. ‘Disagreement(불일치)‘와 ‘Entropy‘는 이를 위한 가장 쉽고 강력한 지표입니다.

‘선택’이 ‘풀이’보다 중요할 수 있습니다.

고품질의 CoT 예시를 만드는 노력도 중요하지만, 어떤 질문에 그 노력을 쏟을지 결정하는 것이 성능 향상에 더 큰 영향을 줄 수 있습니다.

LLM의 ‘자신감’을 믿지 마십시오.

LLM이 “확신합니다”라고 말하는 것을 곧이곧대로 믿어서는 안 됩니다. 모델의 신뢰도를 측정하려면 ‘Self-Confidence’ 보고가 아닌, k번 반복 테스트를 통한 ‘답변의 일관성(Disagreement)’을 확인하는 것이 훨씬 더 신뢰할 수 있습니다.

Active Prompting은 CoT라는 강력한 기법에 ‘능동형 학습‘의 효율성을 결합하여, LLM 추론 성능을 한 단계 끌어올린 중요한 연구입니다. 이제 우리의 역할도 LLM을 가르치는 ‘교사’에서, LLM이 스스로 잘 학습하도록 돕는 ‘조력자(facilitator)‘로 바뀌어야 할 때입니다.

AI 혁신 기술의 최신 트렌드를 놓치지 마세요

LLM 기반 자동화, 프롬프트 엔지니어링, AI 에이전트의 미래까지. ProB AI 연구소에서 최신 AI 연구를 심층 분석해 드립니다.

더 알아보기

Similar Posts