huny.log

기술 포스트 · AI·LLM

프롬프트 자동 최적화 — DSPy·OPRO로 사람이 안 만지는 프롬프트 만들기

프롬프트는 사람이 매번 손으로 튜닝합니다. 모델이 바뀌면 다시 처음부터. DSPy·OPRO 같은 프레임은 프롬프트를 자동으로 최적화합니다 — 골든셋과 메트릭만 주면 도구가 가장 좋은 프롬프트를 찾아옵니다. 마케터가 알아야 할 자동 프롬프트 엔지니어링.

프롬프트는 매번 사람이 손으로 만지고, 모델이 바뀌면 다시 처음부터 튜닝합니다. 한 마케팅 챗봇 프롬프트가 1주일에 3시간씩 들어가는 자리가 흔합니다. DSPy·OPRO 같은 프레임은 같은 작업을 자동화합니다 — 골든셋과 메트릭만 주면 도구가 가장 좋은 프롬프트를 검색·진화시켜 찾아옵니다. 사람이 안 만지는 프롬프트 시대가 어떻게 가능한지 정리합니다.

1. 사람이 프롬프트를 만지는 자리의 한계

마케팅에서 LLM 프롬프트가 들어가는 자리는 매주 늘어납니다.

  • 광고 카피 생성
  • 상품 설명 변형
  • FAQ 챗봇 응답
  • 마케팅 리포트 자동 요약
  • 이메일 subject 변형

각 자리에 사람이 프롬프트를 직접 만집니다. 운영의 한계는 다음입니다.

  • 모델이 바뀌면 다시 처음부터 — GPT-4 → Claude 3.5 → Gemini 2.0. 같은 프롬프트가 다른 결과
  • 매개변수가 너무 많음 — temperature·top_p·system message·few-shot 예시 개수
  • “좋은 프롬프트”의 평가가 주관적 — 사람마다 다른 결론
  • 대규모 자동화 어려움 — 100개 자리에 다 손으로 튜닝 못 함

자동 최적화 도구가 답하는 한 줄짜리 질문은 다음입니다.

골든셋과 메트릭이 있을 때, 가장 좋은 프롬프트를 도구가 자동으로 찾을 수 있는가.

DSPy(Stanford NLP, 2023)와 OPRO(Google DeepMind, 2023)가 이 답을 가장 명확히 줍니다.

프롬프트 자동 최적화 — 골든셋·메트릭에서 후보 프롬프트를 평가·진화시키는 다이어그램
사람은 골든셋과 메트릭을 정의한다. 도구는 후보 프롬프트를 만들고·평가하고·진화시켜 최선을 찾는다. 사람의 시간은 골든셋·메트릭 설계에만 들어간다.

2. DSPy의 직관 — 프롬프트를 코드처럼 다룬다

DSPy(Demonstrate-Search-Predict)의 핵심 아이디어는 프롬프트를 직접 만지는 게 아니라 “입력·출력·메트릭”의 명세만 정의하면 도구가 프롬프트 자동 생성한다는 것.

전통적 패턴:

“광고 카피를 5개 만들어주세요. 톤은 친근하고, 길이는 30자 이내, …” (사람이 길게 씀)

DSPy 패턴:

import dspy
class CopyGen(dspy.Signature):
"""상품 설명에서 친근한 광고 카피 5개 생성"""
product = dspy.InputField()
copies = dspy.OutputField(desc='30자 이내 광고 카피 5개, 줄바꿈 분리')
generator = dspy.Predict(CopyGen)
optimized = dspy.MIPROv2(metric=my_metric).compile(generator, trainset=goldenset)

이게 본문의 유일한 코드입니다. Signature(입력·출력 명세)와 metric만 정의하고 골든셋 50~100개 주면, MIPROv2 같은 옵티마이저가 프롬프트를 자동 검색·진화시킵니다.

DSPy의 핵심 도구:

  • Signature — 입력·출력의 타입과 의도
  • Module — Predict·ChainOfThought·ReAct 같은 패턴
  • Optimizer — BootstrapFewShot·MIPROv2·BetterTogether 등
  • Metric — 정확도·LLM-as-judge·도메인 특화 점수

3. OPRO의 직관 — LLM을 옵티마이저로

OPRO(Optimization by PROmpting)는 더 단순합니다 — LLM 자체를 옵티마이저로 사용합니다.

흐름:

  1. 후보 프롬프트 5개 + 각각의 메트릭 점수 표를 LLM에 보여줌
  2. “이 표를 보고 더 좋은 점수를 낼 새 프롬프트 5개를 제안해” 요청
  3. 새 후보들 평가 → 다시 표 → 또 새 후보들 (반복)
  4. 메트릭이 수렴하거나 budget 다 쓰면 멈춤

LLM이 프롬프트 공간을 탐색하는 evolutionary 알고리즘. 사람이 명시적 규칙을 정하지 않아도 자연어 지시로 도구가 진화시킵니다.

비교DSPyOPRO
프롬프트 정의Signature·Module 추상화자연어 후보들
옵티마이저bootstrap·MIPRO 등 통계적LLM이 직접
인프라 부담학습 커브 있음단순
강점복잡 파이프라인단일 프롬프트
약점추상화 부담LLM API 비용

4. 운영의 핵심 — 골든셋·메트릭 설계

자동 최적화 도구의 효과는 골든셋·메트릭 설계의 질에 달려 있습니다. 도구가 자동이라도 사람의 일은 남아 있습니다.

4-1. 골든셋 설계

좋은 골든셋의 조건:

  • 크기 50-200개 — 너무 적으면 overfitting, 너무 많으면 평가 비용 폭증
  • 도메인 분포 대표 — 운영의 전형적·예외적·어려운 케이스 모두
  • 입력·출력 명확 — 사람이 봐도 답이 분명한 자리

4-2. 메트릭 설계

메트릭이 가장 어려운 자리:

  • 단일 정량 메트릭(정확도·BLEU) → 단순, 명확. 자동 최적화에 가장 잘 듣음
  • LLM-as-judge → 품질 평가에 적합. LLM-as-judge 글 참조
  • 복합 메트릭(정확도 60% + 길이 20% + 톤 20%) → 가중 평균. 운영에 자주 쓰임

5. 마케팅 실무 케이스 3개

5-1. 광고 카피 생성 프롬프트 자동 튜닝

골든셋 — 과거 캠페인의 best CTR 카피 100개 (입력: 상품 설명, 출력: 카피 + CTR). 메트릭 — LLM-as-judge “이 카피가 친근한 톤이고 30자 이내인가”. DSPy로 1시간 학습 후 프롬프트가 사람 손튜닝 대비 LLM-as-judge 점수 12%p 향상되는 게 일반적.

5-2. RAG 답변 정확도 개선

골든셋 — FAQ 200개 (질문·이상적 답·관련 문서). 메트릭 — context relevance + faithfulness + answer relevance(RAGAS). 자동 최적화로 system prompt를 진화시켜 정확도 향상. 사람이 5번 손튜닝한 결과를 도구가 30분에 따라잡습니다.

5-3. 다국어 마케팅 카피 생성

같은 프롬프트가 영어·한국어·일본어에서 다른 정확도. 언어별로 따로 자동 최적화. 사람이 다 손으로 튜닝하면 30시간, 자동화로 3시간.

6. 자동 최적화가 깨질 때 — 흔한 함정 3가지

6-1. 골든셋이 너무 작거나 분포가 편향됨

50개 미만 골든셋으로 학습하면 overfitting. 운영 환경의 다양한 케이스를 커버 못 함. 100~200개·도메인 분포 대표 표본이 표준.

6-2. 메트릭이 운영 결정과 무관

자동 최적화가 BLEU 점수를 올렸는데 사람이 보면 더 부자연스러운 카피를 만들어내는 자리. 메트릭이 운영 의사결정과 정렬되어야 합니다. LLM-as-judge나 사람 라벨이 더 적합한 경우가 많습니다.

6-3. 비용·시간 통제 안 됨

OPRO는 LLM API를 많이 호출합니다. 한 번 학습에 50~200달러가 일반적. budget을 명시하지 않으면 비용 폭증.

7. 마치며 — “사람이 안 만지는 프롬프트”의 시대

5년 전엔 프롬프트 엔지니어가 한 분야였습니다. 지금은 도구가 그 일의 80%를 자동화하고 있습니다. 사람의 시간은 다음 자리로 이동합니다 — 골든셋·메트릭 설계, 도구 결과의 검증, 운영 적용.

DSPy·OPRO를 처음 도입할 때의 감각:

프롬프트를 손으로 만지지 말고, 골든셋·메트릭을 정의하고, 도구가 학습한 결과를 검증해라.

이 한 줄의 운영 변화로 LLM 응용의 운영 비용·정확도가 동시에 개선됩니다.

다음 글에서는 같은 AI 운영 자리의 마지막 도구, AI 에이전트 평가를 다룹니다. 단일 응답이 아닌 다단계 추론·tool 사용을 어떻게 평가하느냐의 자리입니다.

참고

AI·LLM 카테고리의 다른 글

전체 보기 →