다섯 묶음을 한자리에 놓고서야 알았다

이 사이트의 주간 글을 AI에게 맡기는 잡을 돌리고 있다. 매주 "초안 5개 써줘"를 던지고, 다음 주에 또 "5개 더"를 던졌다. 한 묶음씩 보면 매번 괜찮았다. 그러다 몇 주치를 한 화면에 펼쳐 놓고서야 보였다 — 같은 목소리, 같은 뼈대, 같은 추상화 수준. 형식도 관점도 거의 한 점으로 모여 있었다.

코드에서도 같은 걸 봤다. "테스트 케이스 더 만들어줘"는 같은 형태만 반복했고, "이 컴포넌트 변형 만들어줘"는 미묘하게 같은 레이아웃을 돌려줬다. 개별 산출물의 품질 문제가 아니었다. 묶음의 분포가 죽어 있었다. 이게 mode collapse다.

왜 수렴하는가

LLM은 다음 토큰을 확률 분포에서 고른다. 별다른 제약이 없으면 고확률 영역(가장 "전형적"인 표현)을 반복 샘플링한다. 같은 프롬프트를 반복하면 매번 그 분포의 중심 근처에서 뽑으니 출력이 한 점으로 모인다.

사람은 "지난번과 다르게 써야지"라는 메타 인지가 자동으로 작동한다. AI는 그 제약을 프롬프트에 명시하지 않으면 매 호출을 독립적으로 처리해서 직전 출력을 회피하지 않는다.

(용어 주의: "mode collapse"는 본래 GAN에서 생성기가 소수 출력만 내는 현상을 가리킨다. LLM의 반복 생성 수렴은 엄밀히는 mode-seeking 샘플링·낮은 다양성에 가깝지만, "출력이 한 점으로 모인다"는 직관이 같아 빌려 쓴다.)

핵심: 다양성은 모델의 기본값이 아니다. 명시적 제약이 없으면 평균으로 수렴한다.

잡 자체를 고쳤다

그래서 글쓰기 잡의 프롬프트를 바꿨다. 핵심은 매번 분포를 다른 영역으로 밀어내는 제약을 명시적으로 넣는 것이었다.

먼저 라운드마다 "이번 묶음의 시그니처"를 박아 넣었다. "5개 더"가 아니라 "직전과 다른 축으로 5개"가 프롬프트다.

직전 5개: 메타 운영 관점, 자기 경험 소스
이번 5개: 외부 데이터 소스(API·통계), 구체 코드 중심
→ 관점·소스·추상화 수준을 직전과 다르게

그리고 직전에 이미 만든 것들의 목록을 회피 대상으로 같이 던진다. "이것들과 토픽·구조가 겹치지 않게." 모델이 회피 제약을 받으면 분포의 중심이 아니라 다른 영역에서 샘플링한다.

묶음 안의 분산은 차원 매트릭스로 강제했다. 5개가 각각 다른 셀을 채우도록 먼저 표를 정의해 두면, 생성이 자동으로 흩어진다.

항목형식관점추상화
1코드 노트구체낮음
2회고경험중간
3에세이원칙높음

마지막으로, 만든 뒤에 묶음을 분포로 다시 측정한다. "5개 중 4개가 같은 형식"이면 또 수렴한 것이고, 그건 coverage gap 분석으로 잡는다. 사람이 눈으로 닮음을 발견하던 단계를 잡 안으로 끌어들인 셈이다.

일반화 — 콘텐츠만의 문제가 아니다

mode collapse는 모든 반복 AI 위임에 나타난다.

  • 코드 생성: 같은 패턴·같은 추상화. "다른 접근으로 한 번 더"를 명시 안 하면 첫 답의 변주만.
  • 테스트 생성: happy path만 반복. "엣지·에러·경계 케이스"를 차원으로 명시해야 분산.
  • 디자인 변형: 미묘하게 같은 레이아웃. "완전히 다른 레이아웃 원리로"를 강제.
  • 네이밍·카피: 같은 톤. 후보를 뽑을 때 "톤이 다른 3개"를 명시.

함정

  • "창의적으로 해줘"로 다양성 기대: 추상적 지시는 약하다. 구체적 회피 대상·차원을 명시해야 분산.
  • temperature만 높이기: 무작위성은 늘지만 품질이 떨어지고 진짜 다른 관점은 안 나온다. 제약이 무작위성보다 효과적.
  • 한 번에 다 시키기: "20개 써줘"는 더 심한 수렴. 5개씩 + 직전 회피가 낫다.
  • 수렴을 품질 문제로 오진: 각 항목은 잘 썼는데 묶음이 단조로운 것. 개별 품질이 아니라 분포의 문제.
  • 사람도 같은 함정: 사람도 관성으로 비슷하게 만든다. mode collapse는 AI 고유가 아니라 명시적 다양성 제약의 부재 문제.

핵심

AI를 반복 위임할 때 진짜 일은 프롬프트 한 줄이 아니라, 수렴을 감지하고 분포를 다시 벌리는 루프를 잡 안에 넣는 것이다. 다양성은 모델이 주는 게 아니라 워크플로우가 만든다.

관련

/notes/coverage-gap-analysis — 생성물의 분포를 측정해 수렴 감지 /notes/operationalizing-vague-requests — "다양하게"를 측정 기준으로 /notes/codex-competition — 다른 모델로 분포 자체를 다양화 /notes/dispatch-routing-pattern — 3 에이전트 경쟁도 수렴 회피의 한 형태 /essays/ai-coding-tools-six-months — AI 도구 6개월 사용 회고