들어가며: LLM으로 실험을 대체한다는 유혹

A/B 테스트는 시간이 많이 듭니다. 트래픽을 반으로 쪼개고, 최소 1~2주는 기다려야 통계적 유의성이 나옵니다. 그래서 자연스럽게 이런 생각이 듭니다.

"LLM한테 물어보면 되지 않나? 사용자한테 안 물어보고 모델한테 '이 헤드라인 클릭할 것 같아?' 물어보면 몇 시간 만에 끝나잖아."

솔직히 저도 이 아이디어 자체는 매력적이라고 봅니다. 그런데 이 글에서 다루는 연구(근거자료)는 여기에 아주 중요한 통계적 질문을 던집니다.

"그 실험은 정말로 우리가 알고 싶은 처치 효과(treatment effect)를 식별(identify)하고 있는가?"

무작위 실험(RCT)이 골드 스탠다드인 이유는 **설계(by design)**로 인과적 식별을 보장하기 때문입니다. 반면 LLM 예측으로 사용자 응답을 대체하는 순간, 그 보장은 사라지고 **가정(by assumption)**에 의존하게 됩니다. 이 글은 그 가정이 무엇인지, 언제 깨지는지를 생물통계학의 대리 평가지표(surrogate endpoint) 이론으로 정리합니다.

실무 감각으로 말하자면, 이건 "LLM이 똑똑한가?"의 문제가 아니라 **"당신의 실험 설계가 아직도 실험인가?"**의 문제예요.

Data analyst comparing LLM-predicted click-through rates against human A/B test benchmarks on dashboard Software Concept Art

핵심 개념: 두 개의 가정과 하나의 보정 함수

LLM 예측을 사람 결과의 대리 지표로 쓰려면 다음 두 조건이 성립해야 합니다.

1. 대리성 (Surrogacy)

LLM 출력이 처치가 사람 결과에 미치는 효과를 **완전히 매개(fully mediate)**해야 합니다. 처치 할당 정보를 알고 있어도, LLM 예측과 기저 공변량(covariate)을 통제하고 나면 사람 행동에 대해 추가로 알 수 있는 게 없어야 한다는 뜻입니다.

쉽게 말해: **"LLM이 그 처치에 대해 중요한 건 다 담고 있다"**는 가정입니다. 대부분의 LLM A/B 테스트 제안이 이걸 암묵적으로 가정하지만, 명시적으로 검증하는 경우는 드뭅니다.

2. 비교가능성 (Comparability)

LLM 예측과 사람 결과 사이의 관계, 즉 **보정 함수(calibration function)**가 새 실험에서도 과거 데이터와 동일해야 합니다. 처치가 바뀌면 이 매핑이 흔들리고, 보정이 깨집니다.

3. 보정(Calibration) 없이는 안 됩니다

Upworthy Research Archive(수천 개의 헤드라인 A/B 테스트가 담긴 최대 규모 공개 데이터셋)에 gpt-4o-mini를 붙여 실험한 결과입니다.

# 개념적 재현: 원시 LLM 예측 vs 사람 관측 효과
# (실제 코드는 논문 부록 참조. 여기서는 파이프라인 구조만 보여줍니다)

import numpy as np
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.linear_model import LinearRegression

# 1) 원시 LLM 예측을 그대로 실험 분석에 투입
tau_hat_raw = y_llm_treatment.mean() - y_llm_control.mean()
tau_human  = y_human_treatment.mean() - y_human_control.mean()

print(f"회복률: {tau_hat_raw / tau_human:.2%}")  # → 약 39%

# 2) 선형 보정 (OLS) — 실패 케이스
ols = LinearRegression().fit(X_llm_train, y_human_train)
tau_hat_ols = ols.predict(X_llm_test_treat).mean() - ols.predict(X_llm_test_ctrl).mean()
# → 사람 벤치마크에서 3.8 표준오차만큼 벗어남 (falsification test 실패)

# 3) 비선형 보정 (GBM) — 통과 케이스
gbm = GradientBoostingRegressor().fit(X_llm_train, y_human_train)
tau_hat_gbm = gbm.predict(X_llm_test_treat).mean() - gbm.predict(X_llm_test_ctrl).mean()
# → 사람 효과의 샘플링 오차 범위 내 (통계적으로 유의하지 않음)

핵심은 **원시 LLM 예측은 단순히 노이즈가 아니라 편향(biased)**이라는 점입니다. 그리고 그 편향은 방향성이 있습니다. 처치 효과를 **0 쪽으로 축소(attenuate)**시킵니다. 즉, LLM 기반 실험을 여러 제품 영역에 걸쳐 쓰면 조직이 사용자 가치를 체계적으로 과소평가하게 됩니다. 이건 그냥 "약간 부정확함"이 아니라 출시 결정을 망치는 편향입니다.

보정 방법론도 아무거나 쓰면 안 됩니다. OLS 선형 보정은 LLM 예측과 사람 행동 사이의 비선형 관계를 담지 못해서 실패했고, 랜덤포레스트나 그래디언트 부스팅 트리 같은 유연한 모델만 통과했습니다. 여기에 더해 LLM의 샘플링 온도 때문에 단일 예측은 노이즈가 크므로, 실험 단위마다 여러 개의 출력을 뽑아 평균을 쓰는 것이 측정오차 이론(measurement error theory) 관점에서 편향을 줄입니다.

Developer prompting GPT model to predict user treatment effects for headline A/B test variants System Abstract Visual

진짜 문제: 미래의 개입에 대해서는 검증이 불가능하다

여기서부터가 이 연구의 가장 중요한 지점입니다.

대리성과 비교가능성은 과거 데이터에서는 부분적으로 평가할 수 있습니다. 하지만 한 번도 테스트한 적 없는 처치에 대해서는 절대 증명할 수 없습니다.

그리고 이 제약은 단순한 이론적 한계가 아닙니다. 새로운 처치가 과거 실험에서 멀어질수록, LLM 출력을 사람 응답의 유효한 대리로 신뢰할 근거가 약해집니다. 완전히 새로운 UI 패러다임, 새 가격 모델, 이전에 출시한 적 없는 기능 — 이런 것들에서는 가정이 원천적으로 검증 불가능합니다.

역설: LLM이 A/B 테스트에서 가장 큰 이득을 주는 상황이, 바로 LLM이 가장 실패하기 쉬운 상황입니다.

Upworthy 데이터셋은 사실 LLM 대리성에 거의 이상적인 케이스입니다. 결과가 이진(클릭/논클릭)이고, 처치가 텍스트 기반이며 언어적으로 유사하고(헤드라인 변형), LLM이 "무엇이 헤드라인을 매력적으로 만드는가"에 대한 방대한 텍스트로 학습되었기 때문입니다. 레이아웃, 알고리즘, 가격을 바꾸는 처치에서는 이런 조건이 훨씬 정당화되기 어렵습니다.

한국 개발/제품 생태계에서의 적용 맥락

국내 스타트업이나 SI 환경에서는 이런 함정이 특히 위험합니다.

  • 실험 인프라가 얇은 팀일수록 "LLM으로 실험 대체"에 뛰어들기 쉽습니다. 하지만 이 연구가 말하는 건 정반대예요. 과거 사용자 실험 데이터가 탄탄한 팀만이 LLM 대리 지표를 신뢰할 수 있다는 겁니다.
  • B2B SaaS나 엔터프라이즈 제품은 트래픽 자체가 적어서 A/B 테스트 자체가 어렵습니다. 여기서 LLM 대체는 더 매력적으로 보이지만, 처치가 "새 기능 출시"인 경우가 많아 대리성 가정이 깨지기 쉽습니다.
  • LLM 모델 버전 변경: 국내 팀도 OpenAI/Anthropic 모델을 자주 갈아탑니다. 보정 함수는 특정 모델·특정 시점에 맞춰진 것이라, 모델이 바뀌면 보정도 무효화됩니다. 6개월 뒤 같은 모델이라도 보정이 유효하다는 보장이 없어요.

이 접근법의 한계와 주의사항

  1. 무한한 LLM 예측을 생성해도 사람 효과는 복원되지 않습니다. 편향은 데이터 부족이 아니라 절차가 다른 것을 식별하기 때문입니다.
  2. 보정에 필요한 데이터는 당신이 피하려던 바로 그 데이터입니다. LLM 대리 지표를 신뢰하려면 결국 사람 실험을 돌려서 보정 함수를 맞춰야 합니다.
  3. LLM 개선은 탈출구가 아닙니다. 더 좋은 LLM, 더 나은 프롬프팅, 파인튜닝이 대리성과 비교가능성을 현실화할 수는 있어도, 사람 검증을 대체하지는 못합니다.

LLM을 올바르게 쓰는 방법

사람 실험을 대체하는 대신, 보조하는 겁니다.

  • 실험 슬롯 필터링: 약한 아이디어를 사람 실험에 올리기 전에 LLM으로 걸러냅니다.
  • 분산 감소용 공변량: LLM 예측을 회귀 공변량으로 넣어 실험의 검정력을 높입니다.
  • 강한 역사적 데이터가 있고, 새 처치가 과거와 유사할 때만 대리 지표로 활용합니다.

이건 "LLM을 쓰지 마라"가 아니라 **"LLM을 어디에 쓸지 구분하라"**는 이야기입니다.

Cloud infrastructure diagram showing LLM surrogate pipeline feeding into experimental analysis pipeline Development Concept Image

마무리: 설계에 의한 식별 vs 가정에 의한 식별

이 연구의 결론은 명확합니다.

사용자 실험은 설계(by design)로 작동하고, LLM 기반 실험은 가정(by assumption)으로 작동합니다.

대리 지표는 대리 지표와 결과 사이의 관계가 흔들리는 순간까지 유효합니다. 이 프레임워크는 그 관계를 명시적이고 검증 가능하게 만들고, 실패했을 때의 결과를 드러냅니다. 하지만 당신이 가장 신경 쓰는 실험 — 즉 새로운 무언가를 테스트하는 실험 — 에 대해서는 그 관계가 성립한다고 보장할 수 없습니다.

실무 조언을 정리하면 이렇습니다.

  1. LLM으로 실험을 대체하지 마세요. 보강하세요. 슬롯 필터링과 분산 감소는 안전한 활용입니다.
  2. 보정 함수는 반드시 사람 실험 데이터로 학습하세요. 그리고 모델 버전이 바뀔 때마다 재검증하세요.
  3. 새로운 개입일수록 LLM 예측을 신뢰하지 마세요. 이건 회의주의가 아니라 통계적 사실입니다.
  4. "우리 팀에 사람 실험 데이터가 충분한가?" 이 질문에 No라면, LLM 대체는 아직 당신 팀의 도구가 아닙니다.

결국 이 논문이 던지는 메시지는 이겁니다. LLM 예측은 사람 실험을 더 잘하게 만들 수는 있어도, 사람 실험을 없앨 수는 없습니다.

함께 보면 좋은 글

본 콘텐츠는 신뢰할 수 있는 출처를 바탕으로 AI 도구를 활용하여 초안이 작성되었으며, 편집자의 검토를 거쳐 발행되었습니다. 전문가의 조언을 대체하지 않습니다.