본문으로 이동
모든 코스
WhartonAI와 일180분4 모듈
최신 자료2026년 8월 코드

프롬프트 실험을 공정하고 안전하게 설계하기

통제·실험 프롬프트를 반복 실행하고 AI 채점과 변동성을 감사하며, 사람 행동으로 과장하지 않는 경영 실험을 설계합니다.

프롬프트 B의 평균 점수가 더 높다면, 정말 B가 더 좋은 전략이라고 말할 수 있을까요?

프로젝트와 최신성

MIT 라이선스의 AIBO 실험 엔진과 Wharton GAIL의 공식 연구 소개를 함께 읽습니다. 실제 소비자나 학생을 조사하지 않았다면 결과는 모델 행동에만 적용합니다.

AIBO는 2026년 7월 공개된 새 도구로 8월까지 코드가 갱신됐습니다. 공개 저장소 clone에는 토큰이 필요 없으며, 과정에서는 README의 과도한 classic PAT 안내를 따르지 않습니다.

먼저 볼 장면

문체·길이·질문 수를 모두 바꾼 ‘A/B 실험’

B가 더 높은 점수를 받아도 무엇이 원인인지 알 수 없습니다. 한 요소만 바꾸고 모델·온도·반복 횟수·채점 기준을 고정해야 합니다.

데이터 흐름

프롬프트 두 개가 보고서가 되기까지

1실험 설계한 요소만 다르게 설정
2응답 모델각 조건을 반복 실행
3채점 모델같은 루브릭으로 점수화
4사람 분석자분포·비용·한계 해석
0/4

‘다음 단계’를 눌러 입력이 결과가 되는 길을 따라가세요.

구성요소 대화

점수 4.1이 나왔을 때 구성요소의 대화

‘다음 단계’를 눌러 구성요소의 첫 메시지를 열어 보세요.

코드 워크스루

관심 분야의 문제를 정하고, 코드와 데이터를 읽고, AI 실험을 검증한 뒤 결과를 발표합니다.

40분

한 번에 하나만 바꾸기

반복 횟수와 모델 설정을 고정하고 통제 프롬프트와 실험 프롬프트의 차이를 하나로 제한합니다.

먼저 떠올릴 비유

안경 도수를 비교하면서 조명과 글자 크기까지 바꾸면 어떤 안경이 나은지 알 수 없는 것과 같습니다.

핵심 판단

`number_of_iterations`는 각 프롬프트를 몇 번 실행할지 정합니다. 반복은 우연한 한 번의 답을 결론으로 착각하지 않게 합니다.

직접 해보기

‘친절한 상담 문구’ 질문에서 오직 문체만 다른 A와 B를 쓰고 나머지 설정을 표로 고정합니다.

남길 증거

독립변수 한 개가 표시된 실험 설계표

코드 용어
저장소의 실제 코드이 파일에서 확인
engine/schema.json9ae5293
"number_of_iterations": {
  "title": "Number of Iterations",
  "type": "int",
  "default": 3,
  "min_value": 1,
  "max_value": 1000,
  "step": 1,
  "help": "Number of times to run each prompt."
},
코드가 하는 일
  1. 1

    설정 이름은 프롬프트별 실행 횟수입니다.

  2. 2

    정수이며 기본값은 3회, 허용 범위는 1회부터 1,000회입니다.

  3. 3

    수업에서는 비용과 안전을 위해 2~5회만 사용합니다.

새 상황에 적용하기

A는 짧고 친절하며 질문이 하나, B는 길고 전문적이며 질문이 세 개입니다.

B가 더 높은 점수를 받았을 때 가장 큰 문제는 무엇인가요?

45분

평균 옆에 흔들림 놓기

온도가 응답의 무작위성에 관여하는 방식을 읽고 평균·분포·실패 응답을 함께 봅니다.

먼저 떠올릴 비유

버스 평균 도착시간이 10분이어도 2분과 30분을 오가면 믿고 타기 어렵습니다.

핵심 판단

온도가 높을수록 대체로 답변이 다양해집니다. 두 프롬프트를 비교할 때 온도를 다르게 두면 문구 효과와 무작위성을 분리하기 어렵습니다.

직접 해보기

제공된 모의 결과 10개로 평균, 최소·최대, 표준편차를 계산하고 안정적인 조건을 고릅니다.

남길 증거

평균과 분포를 함께 보여 주는 비교 차트

코드 용어
저장소의 실제 코드이 파일에서 확인
engine/schema.json9ae5293
"temperature_response": {
  "title": "Temperature for Response Generation",
  "type": "float",
  "default": 1.0,
  "min_value": 0.0,
  "max_value": 1.0,
  "step": 0.1,
  "help": "Controls the randomness of the response generation."
},
코드가 하는 일
  1. 1

    응답 생성 온도는 소수값 설정입니다.

  2. 2

    이 도구의 허용 범위는 0.0부터 1.0이고 0.1씩 바꿀 수 있습니다.

  3. 3

    도움말이 이 값의 역할을 응답 무작위성 조절이라고 직접 설명합니다.

새 상황에 적용하기

A 평균은 4.0, B 평균은 4.1이지만 B는 1~5점으로 크게 흔들립니다.

학교 상담 챗봇에 넣기 전 가장 필요한 확인은 무엇인가요?

45분

응답뿐 아니라 채점자도 감사하기

응답 모델과 채점 모델을 분리하고 채점 프롬프트의 기준·취약점·사람 검토 표본을 정합니다.

먼저 떠올릴 비유

토론 대회에서 참가자뿐 아니라 심사표와 심사위원의 일관성도 확인하는 일입니다.

핵심 판단

AIBO는 응답 모델과 더 작은 채점 모델을 따로 설정할 수 있습니다. AI 채점은 측정 도구이며 정답 그 자체가 아닙니다.

직접 해보기

0/1로 판정 가능한 기준 하나를 쓰고, 임의 응답 다섯 개를 사람이 다시 채점해 일치 여부를 봅니다.

남길 증거

채점 기준·불일치·수정 기록이 있는 감사표

코드 용어
저장소의 실제 코드이 파일에서 확인
cli/test_runs/run_config_example.yaml9ae5293
"config": {
  "number_of_iterations": 1,
  "model_response": "gpt-4o",
  "temperature_response": 1.0,
  "system_prompt": "You are a very intelligent assistant, who follows instructions directly.",
  "model_rating": "gpt-4o-mini",
  "rating_prompt": "I asked someone a question. Did they choose answer number {{answer}}? Award them 1 point if they did; 0 points if they did not. Provide the score in brackets like [0]. Here is the response: {response}",
  "temperature_rating": 1.0
}
코드가 하는 일
  1. 1

    응답 생성은 `gpt-4o`, 채점은 별도 `gpt-4o-mini`가 맡습니다.

  2. 2

    채점 프롬프트는 선택한 답과 응답을 넣어 0 또는 1을 요구합니다.

  3. 3

    응답과 채점 온도도 설정에 남아 재실행 조건을 기록합니다.

새 상황에 적용하기

AI 채점자가 B를 높게 평가했지만 사람 검토 표본과 자주 불일치합니다.

가장 책임 있는 다음 행동은 무엇인가요?

50분

비밀과 사람 데이터를 결과에서 빼기

API 키 비식별화 코드를 읽고 비용·동시성·개인정보·일반화 한계가 적힌 보고서를 완성합니다.

먼저 떠올릴 비유

과학 포스터에 실험실 열쇠 복사본을 붙이지 않는 것과 같습니다.

핵심 판단

분석 코드는 알려진 API 키 필드를 `***REDACTED***`로 바꿉니다. 그래도 실제 학생·상담 데이터는 애초에 외부 모델로 보내지 않는 것이 기본입니다.

직접 해보기

가상 상담 문장과 사전 생성 응답만 사용해 결과표를 만들고, 지출 상한과 개인정보 규칙을 적습니다.

남길 증거

키·개인정보가 제거된 재현 가능한 실험 보고서

코드 용어
저장소의 실제 코드이 파일에서 확인
engine/analysis.py9ae5293
sensitive_keys = {
    'openai_api_key', 'anthropic_api_key', 'google_api_key', 'gemini_api_key',
    'openrouter_api_key', 'fireworks_api_key', 'custom_api_key', 'api_key',
}
sanitized = {}
for key, value in kwargs.items():
    if key in sensitive_keys and value:
        sanitized[key] = "***REDACTED***"
    elif isinstance(value, dict):
코드가 하는 일
  1. 1

    여러 제공자의 API 키 필드 이름을 민감정보 목록으로 정합니다.

  2. 2

    설정값을 하나씩 보며 민감한 키에 값이 있으면 가림 문자열로 바꿉니다.

  3. 3

    중첩된 설정 묶음은 다음 분기에서 다시 처리할 준비를 합니다.

새 상황에 적용하기

상담 실험 입력에 학생 이름과 전화번호가 들어 있습니다.

가장 안전한 설계는 무엇인가요?

이번 코스의 결과물

개인정보·API 키 없이 실행하는 프롬프트 A/B 실험 보고서

제출 전 확인

  • 통제군과 실험군은 한 요소만 다르다.
  • 모델·온도·반복·채점 기준이 기록됐다.
  • API 키와 실제 개인정보가 입력·출력에 없다.
  • 결론을 모델 행동에서 사람 행동으로 확대하지 않았다.

7분 세미나 질문

AI가 AI를 채점하는 실험에서 사람이 반드시 맡아야 하는 판단은 무엇인가요?

다음 코스

수출 바구니에서 다음 산업 기회를 추론하기

과정 보기