AI VIDEO BRIEFING

빔서치 디코딩 완전 정리: 그리디 디코딩의 반복 함정부터 다양성 변형과 빔서치의 저주까지

CMU 고급 자연어처리 강의를 바탕으로 빔서치의 작동 원리와 길이 정규화 방법, 다양성 빔서치·확률적 빔서치 같은 변형, 그리고 빔 폭을 키울수록 오히려 품질이 떨어지는 '빔서치의 저주'라는 역설까지 정리했습니다.

가장 그럴듯한 문장이 가장 좋은 문장은 아니다 — CMU 강의로 보는 빔서치의 명암 영상 대표 이미지

핵심 메시지

  • 빔서치는 확률이 가장 높은 문장 하나를 찾으려는 최적화 관점의 디코딩이며, 그리디 디코딩의 근시안을 완화한다.
  • 확률은 길이가 길어질수록 작아지므로, 길이 정규화 없이는 짧은 후보가 부당하게 유리해진다.
  • 다양한 후보를 얻으려면 그룹별로 중복을 벌점화하는 다양성 빔서치나, 검블 트릭으로 비복원 표집을 하는 확률적 빔서치를 쓴다.
  • 빔 폭을 키워 진짜 최빈값에 가까워질수록 downstream 품질이 오히려 떨어지는 '빔서치의 저주'가 관측됐다.
  • 최전선 모델에서는 잘 쓰이지 않지만, 특정 산업 용도에서는 여전히 필수라는 반론이 강하다.

쉽게 이해하기

카네기멜런대 고급 자연어처리 수업의 이 회차는 디코딩을 최적화 문제로 바라본다. 앞선 수업이 분포에서 표본을 뽑는 방법을 다뤘다면, 이번에는 학습된 분포에서 가장 확률이 높은 출력 하나를 찾는 최빈값 탐색을 다룬다. 토큰 하나만 뽑을 때는 로짓에서 최댓값을 고르면 끝이지만, 여러 토큰으로 된 문장을 만들 때는 매 단계 최선을 고르는 그리디 방식이 전체로는 최선이 아닐 수 있다.

그리디 디코딩의 대표적 실패가 반복의 함정이다. 강의는 GPT-3로 쓴 짧은 소설에서 문장이 점점 비슷해지다 결국 같은 표현을 무한히 반복하는 예를 든다. 학습 데이터에는 정상적인 글뿐 아니라 같은 문자가 반복되는 텍스트도 많아, 한 번 반복이 시작되면 다음 반복이 가장 그럴듯한 선택이 되기 때문이다. 지시학습이나 강화학습을 거친 모델에서는 덜 나타나지만, 그런 학습을 못 한 모델을 써야 한다면 디코딩 단계에서 손을 봐야 한다.

빔서치는 최상위 하나에 성급히 확정하지 않고 여러 후보를 살려 두는 너비 우선 탐색이다. 빔 폭만큼 후보를 유지하고, 각 후보를 다시 빔 폭만큼 확장한 뒤 점수 상위 후보만 남기는 가지치기를 반복한다. 이때 점수는 로그 확률의 합인데, 확률을 그대로 곱하면 값이 0에 가까워져 수치가 불안정해지기 때문이다. 문장이 끝난 후보와 아직 진행 중인 후보를 함께 비교하려면 길이 정규화가 필요하며, 흔히 로그 확률을 길이로 나누거나 허깅페이스처럼 길이에 지수 알파를 두는 방식을 쓴다.

문제는 남은 후보들이 서로 너무 닮는다는 점이다. 강의는 이를 완화하는 두 갈래를 소개한다. 하나는 다양성 빔서치로, 빔을 그룹으로 나눠 순차적으로 디코딩하면서 앞 그룹이 이미 쓴 토큰에 벌점을 준다. 다양성을 정의하는 방법으로 해밍 다양성, 같은 시점에서의 중복만 벌하는 변형, n-gram 일치를 벌하는 변형이 있으며, 임베딩 유사도로 의미까지 벌점화하는 방식은 계산 비용에 비해 이득이 없었다고 한다. 다른 하나는 확률적 빔서치다. 다양성을 얻는 가장 자연스러운 방법은 최댓값 대신 표집이지만, 중복 없이 K개를 뽑으려면 하나씩 제거하며 다시 뽑거나 넉넉히 뽑고 중복을 버려야 해서 비효율적이다. 여기서 검블 맥스 트릭이 등장한다. 로짓 각각에 검블 잡음을 더한 뒤 최댓값을 고르면 소프트맥스 분포에서 표집한 것과 같아지고, 상위 K개를 그대로 취하면 비복원 표집이 된다. 다만 잡음 때문에 점수가 단계마다 올라가면 곤란하므로 이전 단계 값을 넘지 못하게 보정한다. 그 결과는 품질을 크게 잃지 않으면서 더 다양한 출력이었다.

마지막 주제는 빔서치의 저주다. 빔 폭을 키우면 진짜 최빈값에 가까워지지만, 2018~2020년 무렵의 여러 과제에서 상위 1개 출력의 downstream 성능은 오히려 떨어졌다. 강의는 두 가지 설명을 나란히 놓는다. 길이 정규화가 완벽하지 않아 출력이 점점 짧아진다는 설명과, 애초에 진짜 최빈값이 우리가 원하는 결과가 아니라는 설명이다. 후자를 뒷받침하는 사례로 오래된 모델에서 정확히 탐색하면 최빈값이 빈 문자열이 되는 경우, 그리고 확률이 가장 높은 출력보다 살짝 아래의 출력을 사람이 더 선호하는 '가능도의 함정'이 제시된다. 그렇다면 빔서치가 우연히 강제하는 좋은 성질은 무엇일까. 강의는 빔 폭이 작을수록 토큰별 정보량(음의 로그 가능도)의 표준편차가 작아진다는 연구를 인용해, 균일한 정보 밀도라는 성질이 부수적으로 얻어질 수 있다고 소개한다. 마무리는 현실 이야기다. 최전선 모델을 API로 쓸 때 빔서치를 쓰는 일은 드물어졌지만, 추론 엔진에서 빔서치를 제거하자는 제안에 수십 명이 자기 업무에는 필수라고 반발한 사례를 들며, 학계의 감각과 산업 현장의 필요가 어긋나 있다고 짚는다.

주요 인사이트

  • 디코딩을 '좋은 출력 뽑기'가 아니라 '가장 확률 높은 출력 찾기'로 정의하는 순간, 탐색 오류와 모델 오류를 구분해 따질 수 있게 된다.
  • 반복의 함정은 모델이 나빠서라기보다 학습 데이터에 반복이 흔하기 때문이며, 학습으로 고치거나 디코딩으로 고치는 두 갈래가 있다.
  • 다양성 빔서치는 다양성을 절대적으로 정의하지 않고 '앞서 뽑은 것과 다른 정도'로 상대화해 문제를 다룰 수 있게 만들었다.
  • 검블 맥스 트릭은 정규화되지 않은 로짓에 잡음을 더해 최댓값을 고르는 것만으로 소프트맥스 표집이 되는 성질을 이용한 우아한 우회로다.
  • 탐색을 더 잘하는 것이 결과를 더 좋게 만들지 않는다는 관측은, 모델의 확률 분포와 사람의 선호가 어긋나 있다는 신호로 읽힌다.

자주 묻는 질문

왜 확률 대신 로그 확률로 점수를 계산하나요?

문장이 길어질수록 확률의 곱은 0에 매우 가까운 값이 되어 하드웨어가 다루기 어려워집니다. 로그를 취하면 같은 순서를 유지하면서 수치적 안정성을 확보할 수 있습니다.

길이 정규화는 왜 필요한가요?

확률은 토큰이 늘어날수록 단조적으로 작아지므로, 먼저 끝난 짧은 후보가 계속 진행 중인 긴 후보보다 부당하게 높은 점수를 받습니다. 로그 확률을 길이로 나누거나 길이에 지수를 적용해 이 편향을 보정합니다.

빔 폭을 키우면 왜 결과가 더 나빠질 수 있나요?

강의는 두 가지 설명을 제시합니다. 하나는 길이 정규화가 불완전해 탐색을 더 할수록 출력이 짧아진다는 것이고, 다른 하나는 분포의 진짜 최빈값 자체가 빈 문자열이나 반복처럼 우리가 원하지 않는 출력이라는 것입니다.

요즘도 빔서치를 쓰나요?

최전선 모델을 쓸 때는 단순한 표집 방법이 더 흔해졌고, 빔을 여러 개 유지하는 비용도 부담입니다. 다만 추론 엔진에서 빔서치를 없애자는 제안에 특정 산업 용도에서는 필수라는 반발이 이어진 사례처럼, 실무에서는 여전히 쓰입니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식