프롬프트 엔지니어링의 한계를 고민하는 개발자 일러스트. HD-LoA와 같은 LLM 성능 향상 규칙을 설계하며 노트북에 집중하는 모습
|

프롬프트 엔지니어링: LLM은 ‘예시’가 아닌 ‘규칙’을 배운다

프롬프트 엔지니어링: LLM은 ‘예시’가 아닌 ‘규칙’을 배운다

프롬프트 엔지니어링의 딜레마: 왜 In-Context Learning (ICL)은 여전히 불안정한가?

LLM(대규모 언어 모델)은 ‘In-Context Learning'(ICL)이라는 놀라운 능력을 갖추고 있습니다. 모델을 따로 훈련하지 않아도, 프롬프트에 몇 가지 예시만 넣어주면 새로운 작업을 곧잘 따라 하죠.

하지만 ICL은 생각보다 까다롭습니다. 어떤 예시를 넣느냐에 따라 성능이 널뛰기를 하고, 조금만 복잡한 문제를 주면 엉뚱한 답을 내놓기 일쑤입니다.

이 문제를 해결하기 위해 ‘생각의 사슬'(Chain-of-Thought, CoT)이 대안으로 등장했습니다. LLM에게 단계별 추론 과정을 보여주자 복잡한 문제 해결 능력이 크게 향상됐습니다.

하지만 CoT도 만병통치약은 아니었습니다. 특히 ‘정보 추출’처럼 정답이 명확한 비-추론 작업에서는 오히려 성능이 떨어지기도 했습니다. 단계별 추론이 불필요한 낭비가 된 셈이죠.

여기, LLM 프롬프팅의 현주소를 고민하는 엔지니어와 연구자들이 직면한 4가지 핵심 장벽이 있습니다.

  • 예시 선택의 딜레마: 어떤 예시가 최적의 성능을 낼까요? 우리는 아직도 LLM이 예시로부터 정확히 무엇을 배우는지 완전히 알지 못합니다.
  • 컨텍스트 길이의 한계: 복잡한 작업을 설명하려면 예시가 많아져야 하는데, 금방 토큰 한계에 부딪힙니다.
  • ‘처음 보는’ 작업의 공포: 예시에서 본 적 없는 새로운 유형(unseen classes)의 작업을 만나면 성능이 급격히 떨어집니다.
  • ‘비-추론’ 작업의 함정: 감성 분석이나 정보 추출처럼 추론이 필요 없는 작업에 CoT를 쓰면 오히려 비효율적입니다.

이 4가지 난제를 해결하기 위해, 새로운 프롬프팅 전략이 제안되었습니다. 바로 ‘발견적-주도 유추 연결'(Heuristic-Driven Link-of-Analogy, HD-LoA) (출처) 입니다.

핵심 가설: LLM은 ‘예시’가 아니라 ‘규칙’을 배운다

HD-LoA의 핵심 가설은 LLM이 ICL 예시로부터 무엇을 배우는지에 대한 새로운 시각에서 출발합니다.

“LLM은 단순히 입력-출력 쌍(패턴)을 모방하는 것이 아니라, 작업별 ‘규칙(Heuristics)’을 학습한다.”

여기서 ‘발견적 방법(Heuristic)’이란, 문제 해결을 위한 ‘핵심 규칙’이나 ‘경험 법칙’을 뜻합니다. 우리가 복잡한 문제에 부딪혔을 때, 모든 경우의 수를 따지기보다 ‘이럴 땐 보통 이게 정답이더라’하는 경험적 규칙(어림짐작)을 사용해 효율적으로 답을 찾는 것과 같습니다.

연구진은 LLM 역시 이 ‘규칙’을 학습한다고 가설을 세웠습니다.

  • CoT: 비슷한 문제 풀이 과정(예시) 10개를 보여줍니다. (LLM은 패턴을 모방할 뿐, 원리를 모릅니다.)
  • HD-LoA: 작업의 ‘핵심 규칙’을 명시적으로 알려주고, 이 규칙을 ‘적용하는 과정’을 보여줍니다.

이 가설이 맞다면, 우리는 더 이상 비효율적인 예시 나열에 토큰을 낭비할 필요가 없습니다. 대신, LLM에게 “작업의 핵심 규칙”을 직접 알려주면 됩니다.

솔루션 1부 – “예시” 대신 “규칙”을 주입하라: 발견적-주도 시연 (HD)

HD-LoA의 첫 번째 구성요소는 ‘발견적-주도 시연(Heuristic-Driven Demonstration, HD)’입니다. 이름 그대로, ‘예시’ 대신 ‘규칙’을 시연(Demonstration)합니다.

기존 ICL이 여러 개의 예시를 나열했다면, HD는 이 예시들을 과감히 삭제하고 그 자리에 명시적인 ‘작업 규칙’ 목록을 채워 넣습니다.

예를 들어, “문서에서 ‘기부자(giver)’를 찾는” 작업을 LLM에게 가르친다고 가정해 봅시다.

기존 ICL 방식 (예시 3개):

  • 문서 1: “A사가 B 재단에 100만 달러를…” → Q: 기부자는? A: “A사”
  • 문서 2: “C 그룹이 D 병원에…” → Q: 기부자는? A: “C 그룹”
  • 문서 3: “E씨가 F 학교에…” → Q: 기부자는? A: “E씨”

HD 방식 (규칙 3개 + 예시 1개):

  • 규칙 1 (의미론적): “[기부자]는 문맥상 보조금이나 선물을 ‘제공하는’ 주체(개인, 그룹, 조직)입니다.”
  • 규칙 2 (의존 구문): “[기부자]는 종종 ‘기부하다’와 같은 동사의 주어(nsubj) 역할을 합니다.”
  • 규칙 3 (통사론적): “[기부자]는 수혜자를 나타내는 ‘to’ 전치사구 앞에 자주 등장합니다 (예: X가 Y에게 Z를 주다).”
  • 예시 1: (이 규칙 중 하나를 어떻게 적용하는지 보여주는 단 하나의 예시)

이 방식은 앞서 제기된 4가지 장벽 중 2가지를 바로 해결합니다.

  • 예시 선택 문제 해결: 어떤 예시가 좋을지 고민할 필요 없이, 작업에 가장 중요한 ‘규칙’을 체계적으로 선별하면 됩니다.
  • 컨텍스트 길이 문제 해결: 긴 예시 문서 여러 개가 명확한 ‘규칙’ 몇 줄로 압축됩니다. 토큰을 획기적으로 절약할 수 있습니다.

솔루션 2부 – “유추”로 미지의 영역을 정복하라: 유추 연결 프롬프팅 (LoA)

하지만 ‘규칙’을 알려주는 것만으로는 “처음 보는 작업(unseen classes)” 문제를 해결할 수 없습니다. 우리가 [기부자]에 대한 규칙만 알려줬는데, LLM이 어떻게 [차량(vehicle)]이나 [피해자(victim)]를 찾을 수 있을까요?

여기서 두 번째 구성요소인 ‘유추 연결 프롬프팅(Link-of-Analogy Prompting, LoA)’이 등장합니다.

LoA는 인간의 핵심 인지 능력인 ‘유추(Analogy)’에서 영감을 받았습니다. 사람은 완전히 새로운 문제를 만나도, 과거의 익숙한 문제와 ‘유사점’을 찾아 해결책을 유추해냅니다.

LoA 프롬프팅은 LLM에게 이 유추 과정을 명시적으로 따르도록 지시합니다. 이는 인지 과학에서 말하는 인간의 유추 3단계(가져오기, 매핑, 평가)와 같습니다.

가져오기 (Retrieval):

LLM이 새로운 작업(예: [피고인] 찾기)을 받습니다. 프롬프트에 제공된 ‘규칙 목록'(예: [기부자] 규칙) 중에서 새 작업에 가장 유용해 보이는 규칙 1개를 선택합니다.

예: “‘[기부자]는… 선물을 제공하는 조직이다’라는 의미 규칙이 ‘[피고인]’을 찾는 데에도 유용할 것 같다.”

매핑 (Mapping):

선택한 규칙을 새 작업에 맞게 변형하여 새 규칙을 생성합니다.

예: (유추 적용) → “그렇다면 ‘[피고인]은 범죄로 기소된 개체이다.'”

평가 (Evaluation):

이 새로운 유추 규칙을 바탕으로 문서에서 답을 찾은 뒤, 이 답이 유추된 규칙과 일치하는지 스스로 검증합니다.

예: “문서에서 ‘five hackers’가 기소되었다. 이들은 ‘[피고인]’의 정의와 일치하는가? 그렇다.”

이 LoA 프로세스를 통해 LLM은 더 이상 프롬프트에 제공된 예시에 묶이지 않습니다. ‘기부자’라는 단 하나의 예시 규칙만으로 ‘피고인’, ‘차량’, ‘피해자’ 등 수백 가지의 ‘처음 보는(unseen)’ 작업 유형을 처리할 수 있게 됩니다.

실전 가이드: 내 프로젝트에 HD-LoA 적용하는 3단계 방법

이 강력한 HD-LoA를 실제 프로젝트에 어떻게 적용할 수 있을까요? 논문은 이 과정을 자동화하는 팁도 제공합니다.

1단계: 핵심 ‘규칙(Heuristics)’ 생성하기

작업의 핵심 규칙이 필요합니다. 전문가가 직접 만들 수도 있지만, GPT-4 같은 상위 LLM을 활용해 생성할 수도 있습니다.

예시 프롬프트: “‘기부자(giver)’ 인수를 식별하기 위한 10가지 간결하고 수준 높은 규칙(heuristic)을 생성해 줘. 의미론적, 통사론적, 구문론적 관점을 포함해 줘.”

2단계: 최적의 ‘규칙’ 선별하기

LLM이 생성한 모든 규칙이 유용한 것은 아닙니다. 가장 효과적인 규칙을 선별해야 합니다.

방법: 소량의 검증 데이터셋을 준비합니다. 각 규칙을 프롬프트에 넣고 성능을 개별 테스트합니다. 가장 정확도가 높은 상위 3~5개 규칙을 최종 선별합니다(논문에서는 3개 사용).

3단계: HD-LoA 프롬프트 최종 구성하기

이제 모든 조각을 맞춥니다. 최종 프롬프트는 다음 요소로 구성됩니다.

  • 지시문: 작업의 목표(예: 이벤트 인수 추출)를 설명합니다.
  • 규칙 목록 (HD): 2단계에서 선별한 명시적인 ‘규칙’ 목록을 제공합니다.
  • 단일 예시 (LoA): 위 규칙을 어떻게 유추(Retrieve → Map → Evaluate)하는지 그 ‘과정’을 보여주는 단 하나의 예시를 제공합니다.
  • 실제 질문: LLM이 해결해야 할 실제 문제를 제시합니다.

결과는 놀라웠다: HD-LoA vs. CoT 데이터 비교

그렇다면 HD-LoA 방식은 기존 방식보다 얼마나 뛰어날까요? 연구 결과는 압도적입니다.

  • CoT 대비: 정보 추출(EAE) 작업에서 CoT보다 F1 점수가 최대 4.65% 향상되었습니다.
  • 표준 프롬프팅 대비: 단순 질의응답 방식보다는 최대 7.99% 향상되었습니다.
  • 지도 학습과 비교 (가장 놀라운 부분): HD-LoA는 단 하나의 예시만 사용했음에도, 1%의 학습 데이터로 훈련시킨 소수샷(Few-shot) 지도 학습 모델보다 9.50% 더 높은 성능을 기록했습니다.

이는 HD-LoA가 LLM의 성능을 향상시킬 뿐만 아니라, 막대한 비용이 드는 데이터 라벨링 의존도를 크게 줄일 수 있음을 시사합니다.

또한 HD-LoA의 적응력은 정보 추출(EAE) 작업을 넘어섭니다. 감성 분석(SST-2) 및 자연어 추론(SNLI)과 같은 다른 ‘비-추론’ 작업에서도 CoT를 능가하는 성능 향상을 보였습니다.

결론: 단순한 ‘예시’ 제공자에서 벗어나 ‘규칙’을 가르치는 설계자로

HD-LoA 프롬프팅은 우리가 LLM과 소통하는 방식에 근본적인 전환을 제안합니다.

우리는 더 이상 LLM에게 정답이 적힌 ‘족보'(예시)를 쥐여주는 조교가 아닙니다. 대신, 문제 해결의 ‘핵심 원리'(규칙)를 가르치고, ‘유추하는 방법'(LoA)을 훈련시키는 설계자가 되어야 합니다.

물론 한계는 존재합니다. 이 방법은 GPT-4와 같이 정교한 추론 능력을 갖춘 고급 LLM에 의존적입니다. 하지만 이는 프롬프트 엔지니어링의 미래가 나아갈 방향을 명확히 보여줍니다.

다음 프로젝트에서는 무작정 예시를 추가하는 대신, 한 걸음 물러나 “이 작업의 핵심 ‘규칙’은 무엇인가?”라고 자문해 보는 것은 어떨까요? 그 질문이 바로 LLM의 잠재력을 최대로 이끌어내는 열쇠가 될 것입니다.

Similar Posts