프롬프트 최적화의 과학, PO2G로 LLM 분류 성능 2배 높이는 법
프롬프트 노가다는 이제 그만! PO2G(Prompt Optimization with Two Gradients)로 FP/FN 오류를 정밀 교정해 LLM 분류 성능을 2배 높이세요!
프롬프트 한두 글자 고치느라 모니터 앞에서 씨름해 본 적 있으시죠? 소위 말하는 ‘프롬프트 노가다’는 이제 그만둘 때가 됐습니다. 퀸즈 대학교 벨파스트 연구진이 발표한 PO2G(Prompt Optimization with Two Gradients) 프레임워크가 그 해답을 제시합니다.
비효율적인 수동 작업을 데이터 중심의 과학적 설계로 바꾸는 법, 핵심만 짚어 정리해 드립니다.
1. 왜 내 프롬프트는 계속 ‘헛발질’을 할까?
LLM을 활용한 분류 작업에서 가장 큰 문제는 “뭐가 문제인지 정확히 모른 채 고친다”는 점입니다. 기존 방식은 그저 “정확도를 높여줘”라고 뭉뚱그려 요청하곤 했죠. 이는 마치 과녁이 어디인지도 모르고 화살을 쏘는 것과 같습니다.
PO2G는 오류의 원인을 두 가지 방향(Two Gradients)으로 날카롭게 해체합니다.
-
거짓 양성(FP) 그래디언트: 넣지 말아야 할 것까지 포함한 경우입니다. (예: 스팸이 아닌데 스팸으로 분류)
해결책: 망을 더 촘촘하게, 기준을 더 엄격하게(Strict) 조여야 합니다. -
거짓 음성(FN) 그래디언트: 꼭 넣어야 할 걸 놓친 경우입니다. (예: 스팸인데 일반 메일로 분류)
해결책: 누락된 맥락을 파악해 기준을 더 상세하게(Detailed) 넓혀야 합니다.
비유하자면?
거름망으로 모래를 거른다고 생각해 보세요. 알갱이가 너무 많이 빠져나가면(FN) 망을 덧대야 하고, 불순물이 섞여 들어오면(FP) 망의 구멍을 줄여야 합니다. PO2G는 이 두 작업을 동시에, 정확한 위치에 수행합니다.
2. ‘양’보다 ‘질’로 승부하는 클러스터링 전략
오류가 100개 나왔다고 해서 100개를 다 모델에게 보여주면 어떻게 될까요? 모델은 정보 과부하에 걸려 길을 잃습니다. API 비용만 날리는 꼴이죠.
PO2G는 K-Means 클러스터링을 활용합니다. 수많은 오류 데이터를 비슷한 것끼리 묶은 뒤, 그 그룹을 가장 잘 대표하는 ‘반장(중심점)’ 사례만 뽑아 모델에게 전달합니다.
- 나쁜 사례: 100개의 중복된 오류 데이터를 그대로 쏟아부음 → 모델 혼란, 비용 낭비
- 좋은 사례(PO2G): 대표적인 오류 유형 몇 가지만 골라 학습 → 효율적인 경로로 최적화 성공
3. 숫자가 증명하는 효율성: “절반의 시간으로 89% 도달”
PO2G의 성과는 명확합니다. 단순히 ‘좋다’가 아니라 ‘압도적으로 빠르다’는 게 핵심입니다.
| 비교 항목 | 기존 방식 (ProTeGi) | PO2G (신규) |
|---|---|---|
| 최적화 반복 횟수 | 6회 | 3회 |
| 도달 정확도 | 약 89% | 약 89% (2배 빠름) |
| 특이사항 | 복잡한 규칙에서 속도 저하 | 법률 문서 등 고난도 태스크에 강함 |
특히 이탈리아 세법 같은 까다로운 도메인에서도 높은 성능을 보였다는 점은, PO2G가 단순한 이론을 넘어 실무 현장에서도 강력한 도구임을 입증합니다.
🛠 실무에 바로 쓰는 ‘자가 수정형’ 템플릿
이 논문의 원리를 여러분의 업무에 바로 적용해 보세요. 아래 흐름을 따라가면 됩니다.
명확한 역할 부여 (초기화)
두 가지 방향의 피드백 (PO2G 핵심)
분류가 틀린 데이터가 쌓였다면, 모델에게 이렇게 수정을 요구하세요.
결론: 프롬프트 엔지니어링은 ‘감’이 아니라 ‘과학’입니다
프롬프트 엔지니어링을 ‘운에 맡기는 예술’이라고 생각하셨다면, 이제 그 생각을 바꾸셔도 좋습니다. PO2G는 오류 데이터라는 확실한 근거를 바탕으로 지침을 빌드업합니다.
이제 무의미한 수동 수정을 반복하지 마세요. 오류를 두 가지 방향으로 나누고, 대표적인 것만 골라 피드백하는 것. 이 간단한 원칙만으로도 여러분의 LLM 분류 모델은 훨씬 더 영리해질 것입니다.
오늘 바로 여러분의 프로젝트에 ‘두 가지 그래디언트’ 전략을 도입해 보는 건 어떨까요?
