Decoding Strategies 이해

난이도: 중급

태그: llm,decoding,beam_search,sampling

같은 모델이라도 decoding 전략이 달라지면 답변 품질, 다양성, 안정성이 크게 달라진다. 모델이 답을 "어떻게 고르느냐"는 별도의 설계 문제다.

LLM은 다음 토큰 확률분포를 낸다. 그런데 실제 출력은 그 분포에서 어떤 토큰을 선택하느냐에 따라 달라진다. 이 선택 규칙이 decoding strategy다.

그래서 decoding은 단순 구현 디테일이 아니라 사용자 경험을 직접 바꾸는 정책이다. 같은 모델도 설정 하나로 너무 딱딱해지거나, 너무 산만해지거나, 사실성은 높지만 재미는 없는 식으로 성격이 달라질 수 있다.

1. Greedy decoding

매 단계에서 가장 확률이 높은 토큰 하나만 고른다. 단순하고 빠르지만, 초기에 잘못된 선택을 하면 다양성이 떨어지고 반복이 생길 수 있다.

2. Beam search

가능한 후보를 여러 개 유지하면서 더 전체적으로 점수가 높은 시퀀스를 찾는다. 번역 같은 구조적 생성에서는 유용하지만, 대화형 LLM에서는 지나치게 보수적인 출력이 나올 수 있다.

즉 beam search는 "더 안전한 문장"을 찾는 데는 좋을 수 있지만, 열린 생성 문제에서는 오히려 다양한 가능성을 너무 일찍 잘라낼 수 있다.

3. Temperature

확률분포를 더 날카롭게 혹은 더 평평하게 만든다. 온도가 낮으면 안전하지만 단조롭고, 높으면 다양하지만 불안정해질 수 있다.

그래서 temperature는 단순한 "랜덤성 슬라이더"가 아니라, 모델이 확신 낮은 후보까지 어느 정도 허용할지를 조절하는 장치라고 보는 편이 맞다. 너무 높이면 창의적이라기보다 일관성이 무너질 수 있다.

4. Top-k / Top-p

둘 다 너무 낮은 확률의 이상한 토큰을 버리면서도 다양성은 유지하려는 장치다.

실무에서는 top-p가 더 자주 언급되기도 하는데, 분포에 따라 후보 개수가 유동적으로 달라져 조금 더 적응적으로 동작하기 때문이다.

5. 언제 무엇을 쓰는가

실무에서는 하나의 정답 설정이 있는 것이 아니라, 서비스 목적에 따라 decoding 정책을 분리하는 경우가 많다. 예를 들어 검색 요약은 보수적으로, 브레인스토밍 도우미는 더 다양하게 설정하는 식이다.

6. 면접 포인트

면접에서는 보통 "temperature와 top-p는 무엇이 다른가", "beam search가 항상 좋은가", "왜 대화형 LLM은 greedy보다 sampling을 자주 쓰는가"를 묻는다.

여기서 한 걸음 더 나아가면 "사실성 중심 서비스와 창의성 중심 서비스는 decoding 설정을 어떻게 다르게 가져갈까"까지 말할 수 있으면 좋다.

답변할 때는 "모델 자체의 능력"과 "출력 정책"을 분리해서 설명하는 것이 중요하다. 그래야 같은 모델이라도 왜 서비스별로 전혀 다른 인상을 주는지 자연스럽게 말할 수 있다.

7. 체크리스트