第10講

프롬프트 반복 개선법

3 閲覧 1

프롬프트를 체계적으로 실험하고 개선하는 CARE 프레임워크와 A/B 테스트 방법론을 익혀 지속적으로 성능을 끌어올리는 법을 배운다.

프롬프트는 첫 번째 버전이 최선이 아니다

전문 프롬프트 엔지니어와 초보자의 가장 큰 차이는 반복 개선에 대한 태도입니다. 전문가는 첫 결과를 기준점으로 삼고 체계적으로 개선하지만, 초보자는 첫 결과에 만족하거나 포기합니다.

CARE 프레임워크

C - Craft    (초안 작성): 4요소 기반 첫 프롬프트 작성
A - Assess   (결과 평가): 출력의 무엇이 부족한지 분석
R - Refine   (구체화):    부족한 부분을 타겟팅해서 수정
E - Evaluate (검증):      여러 입력에서 일관성 검증

단계 1: Craft — 초안 작성

# 첫 프롬프트 (초안)
"마케팅 전략을 알려줘"

# 4요소 적용한 개선안
"B2C 패션 앱(월 활성 사용자 5만명, 주 연령 20~30대)의
 인스타그램 마케팅 전략을 알려줘.
 3개월 로드맵과 주요 KPI를 포함해서."

단계 2: Assess — 결과 평가 기준

평가 체크리스트:
□ 정확성: 요청한 내용이 모두 포함되었는가?
□ 관련성: 우리 상황에 맞는 내용인가?
□ 구체성: 바로 실행 가능한 수준인가?
□ 형식:   원하는 구조로 출력되었는가?
□ 길이:   너무 길거나 짧지 않은가?
□ 일관성: 여러 번 실행해도 비슷한 품질인가?

단계 3: Refine — 타겟 수정 기법

기법 1: 네거티브 피드백 삽입

"이전에 답변한 내용이 너무 일반적이었어.
 우리 앱의 특수한 상황(패션 버티컬, MZ 타겟)에 맞는
 구체적인 전략만 알려줘. 일반론은 제외해줘."

기법 2: 범위 좁히기 (버전 반복)

v1: "마케팅 전략"
v2: "인스타그램 마케팅 전략"
v3: "인스타그램 릴스를 활용한 바이럴 마케팅 전략"
v4: "예산 월 300만원 이하, 인하우스 팀 2명 기준, 인스타그램 릴스 바이럴 전략"

기법 3: 섹션별 재생성

"방금 답변에서 KPI 섹션만 다시 써줘.
 정량적 목표수치를 구체적으로 포함해서.
 나머지는 그대로 유지해."

기법 4: 모델에게 개선 요청

"방금 너의 답변에서 가장 약한 부분 2가지를 스스로 찾아서
 그 부분만 보완해줘."

단계 4: Evaluate — 강건성 테스트

테스트 케이스 설계:
1. 전형 케이스:  예상 범위 내 정상 입력
2. 엣지 케이스:  비어 있는 입력, 매우 짧은 입력
3. 적대 케이스:  범위 밖 요청, 모호한 입력
4. 다국어 케이스: 한국어/영어 혼용 입력

→ 모든 케이스에서 허용 가능한 품질인지 확인

프롬프트 버전 관리

프롬프트를 코드처럼 버전 관리하기:

v1.0 (2026-01-01) — 점수 6.2/10
  내용: 초안
  이슈: 너무 일반적

v1.1 (2026-01-05) — 점수 7.8/10
  내용: 역할 추가, 컨텍스트 보강
  이슈: 형식 불일관

v2.0 (2026-01-10) — 점수 8.9/10
  내용: Few-shot 추가, 출력 형식 고정
  이슈: 없음 (현재 사용 중)

A/B 테스트 방법론

import random

def ab_test(prompt_a, prompt_b, test_inputs, n=30):
    scores_a = []
    scores_b = []
    
    for user_input in test_inputs[:n]:
        version = random.choice(["a", "b"])
        prompt = prompt_a if version == "a" else prompt_b
        
        response = call_llm(prompt.format(input=user_input))
        score = evaluate_response(response)  # 0~10 점수
        
        if version == "a":
            scores_a.append(score)
        else:
            scores_b.append(score)
    
    avg_a = sum(scores_a) / len(scores_a)
    avg_b = sum(scores_b) / len(scores_b)
    print(f"프롬프트 A 평균: {avg_a:.2f}")
    print(f"프롬프트 B 평균: {avg_b:.2f}")

LLM을 이용한 자동 프롬프트 개선 (Meta-prompting)

meta_prompt = """다음 프롬프트의 문제점을 분석하고 개선된 버전을 작성해줘.

원본 프롬프트:
{original_prompt}

출력 결과 (이 결과가 부족함):
{bad_output}

부족한 이유:
{identified_issues}

개선된 프롬프트와 변경 이유를 설명해줘."""

개선 속도를 높이는 황금 규칙

  • 한 번에 하나만 바꿔라: 여러 요소를 동시에 변경하면 무엇이 개선을 가져왔는지 알 수 없습니다.
  • 숫자로 평가하라: "좀 나아진 것 같다"가 아닌 0~10 점수로 측정하세요.
  • 실패를 기록하라: 어떤 접근이 안 통했는지 아는 것도 귀중한 정보입니다.
  • 최소 5개 샘플로 판단하라: 1~2회 실행 결과로 프롬프트를 평가하지 마세요.
프롬프트 엔지니어링은 예술이 아닌 과학입니다. CARE 사이클로 체계적으로 반복하고, 변경사항을 버전 관리하며, A/B 테스트로 객관적으로 평가하세요. 최고의 프롬프트는 항상 여러 번의 개선 끝에 탄생합니다.

관련 검색어  ·  프롬프트 개선 방법, CARE 프레임워크, 프롬프트 A/B 테스트, 프롬프트 버전 관리, 메타 프롬프팅, AI 출력 품질 개선

채용정보
공지사항
인사이트
MY