← 최신 논문
🤖 machine learning

Gauge dependence and structured-output corruption in sign-branched repetition penalties: measurements across models, inference stacks, and alternative repetition controls

이 논문은 LLM 추론 엔진에서 널리 사용되는 부호 분기 반복 패널티(sign-branching repetition penalty)가 임의적인 로짓 제로 포인트(logit zero-point)에 의존하기 때문에 근본적으로 결함이 있으며, 이로 인해 모델 간의 막대한 토큰 선택 불안정성과 구조화된 JSON 출력에서의 치명적인 실패가 발생한다는 점을 입증하고, 이러한 문제는 패널티를 로우 로짓(raw logits) 대신 정규화된 로그 확률(normalized log-probabilities)에 적용함으로써 해결된다는 것을 보여준다.

원저자: Peter Hollows

게시일 2026-07-14
📖 4 분 읽기☕ 가벼운 읽기

원저자: Peter Hollows

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신에게 아주 똑똑한 로봇 작가가 있다고 상상해 보세요. 이 로봇은 이야기를 쓰는 것을 정말 좋아합니다. 하지만 가끔 루프에 빠져서, 고장 난 레코드판처럼 똑같은 단어를 계속 반복하곤 합니다. 이를 해결하기 위해 엔지니어들은 로봇에게 '반복 페널티(repetition penalty)'라는 조절 노브(knob)를 주었습니다. 원리는 간단합니다. 만약 로봇이 방금 사용한 단어를 다시 말하려고 하면, 그 단어가 선택될 확률을 낮추도록 노브를 돌려 로봇이 다음 단계로 넘어가도록 강제하는 것입니다.

수년 동안 Hugging Face부터 vLLM, llama.cpp에 이르기까지 세상의 거의 모든 로봇 작가들은 정확히 똑같은 종류의 노브를 사용해 왔습니다. 하지만 이 논문은 충격적인 비밀을 밝혀냅니다. 이 특정 노브는 잘못된 숫자를 보고 있기 때문에 고장 났다는 사실입니다.

고장 난 나침반

이 글리치를 이해하려면, 로봇의 뇌가 모든 가능한 단어에 점수를 매긴 거대한 지도라고 상상해 보세요. 양수(+) 점수는 "이 단어를 정말 말하고 싶다"는 뜻이고, 음수(-) 점수는 "이 단어는 정말 말하고 싶지 않다"는 뜻입니다. 이 지도는 유연합니다. 로봇은 전체 지도를 왼쪽이나 오른쪽으로 밀 수 있으며(모든 점수에 일정한 상수를 더함), 이렇게 해도 다음에 어떤 단어를 선택할지는 변하지 않습니다. 이는 마치 지도의 도시 전체를 이동시키는 것과 같습니다. 도시가 다른 나라로 옮겨지더라도 거리들 사이의 상대적인 순서는 그대로 유지되는 것과 같습니다.

고장 난 노브는 반복된 단어를 얼마나 벌할지 결정하기 위해 그 점수가 양수인지 음수인지를 확인합니다.

  • 점수가 양수라면, 숫자를 페널티 계수로 나누어 숫자를 작게 만듭니다.
  • 점수가 음수라면, 숫자에 페널티 계수를 곱하여 숫자를 훨씬 더 큰 음수로 만듭니다.

문제는 이렇습니다. "양수"와 "음수" 사이의 경계는 임의적입니다. 로봇은 행동을 바꾸지 않고도 자신의 지도를 왼쪽이나 오른쪽으로 밀 수 있기 때문에, 어떤 로봇에게 "양수"인 단어가 다른 로봇에게는 "음수"일 수 있고, 심지어 동일한 로봇이라도 지도를 살짝만 옮기면 성질이 바뀔 수 있습니다.

이 논문은 이 "부호 분기(sign-branch, 숫자가 양수인지 음수인지를 확인하는 것)"가 로봇의 훈련 과정에서 실제로 고정되지 않은 좌표를 보고 있다고 증명합니다. 이는 자동차 대시보드가 현재 "빨간색" 영역에 있는지 "파란색" 영역에 있는지에 따라 운전하려는 것과 같습니다. 대시보드 전체는 스스로 앞뒤로 움직일 수 있는데 말이죠.

"같은 노브, 다른 결과"의 혼돈

이 슬라이딩 지도 때문에, 노브의 동일한 설정값(예: 1.3)이 서로 다른 로봇에게 완전히 다른 결과를 초래합니다.

  • 한 로봇(예: gpt2)에서 1.3이라는 설정은 반복된 단어의 84%를 처벌할 수 있습니다.
  • 또 다른 로봇(예: Qwen2.5-Coder-7B)에서는 똑같은 1.3 설정이 반복된 단어를 거의 처벌하지 않거나, 혹은 완전히 다른 방식으로 처벌할 수 있습니다.

저자들은 단일 로봇의 지도를 좌우로 밀어보며 이를 테스트했습니다. 그 결과, 표준 설정인 1.3을 사용할 때 지도가 아주 조금만 밀려도 로봇이 선택을 바꾸는 비율이 **58%에서 96%**에 달한다는 것을 발견했습니다!

  • 만약 "감산형(subtractive)" 페널티(단순히 숫자를 빼는 방식)를 사용한다면, 로봇은 변하지 않습니다.
  • 하지만 표준인 "승법적(multiplicative)" 부호 분기 방식을 사용하면, 로봇은 지도가 밀릴 때마다 거의 모든 단어 선택에서 마음을 바꾸며 미쳐 날뜁니다.

이는 당신이 특정 설정인 1.3에 맞춰 로봇을 튜닝한다면, 당신은 사실 그 특정 로봇의 우연히 정해진 "제로 포인트(zero-point)"에 맞춰 튜닝하고 있는 것임을 의미합니다. 만약 당신이 그 로봇을 다른 컴퓨터로 옮기거나 소프트웨어를 업데이트한다면, 그 동일한 설정이 로봇을 완전히 망가뜨릴 수도 있습니다 있습니다.

JSON 재앙

이 버그의 가장 위험한 부분은 "구조화된 출력(structured output)"을 파괴한다는 점입니다. 이는 로봇에게 코드나 JSON(데이터를 위한 특정 형식)을 쓰라고 요청할 때 발생하며, 이 형식은 모든 중괄호 {를 닫거나 쉼표 ,를 추가하는 것과 같은 엄격한 규칙을 따라야 합니다.

이러한 규칙들은 로봇이 특정 기호들을 반복해야 함을 요구합니다. 하지만 페널티가 가공되지 않은 숫자(raw numbers)를 보고 있기 때문에, 로봇은 종종 "필수적인 규칙"을 "나쁜 반복"으로 오해합니다.

  • 저자들은 200개의 실제 JSON 스키마를 대상으로 테스트했습니다.
  • 표준 설정인 1.3을 사용했을 때, 유효하고 작동하는 JSON 출력 비율이 **97%**에서 단 **23%**로 폭락했습니다.
  • 페널티가 잘못된 숫자에 너무 공격적으로 작용했기 때문에, 로봇은 문법을 깨뜨리고 괄호를 닫지 않거나 쉼표를 누락하는 등의 실수를 하기 시작했습니다.

이것은 시뮬레이션상의 추측이 아닙니다. 저자들은 다섯 가지 서로 다른 모델(코드 특화 모델 포함)에서 이를 직접 측정했으며, 모든 주요 소프트웨어 스택(Hugging Face, vLLM, llama.cpp)에서 동일한 붕괴 현상을 목격했습니다.

해결책: 먼저 정규화하라 (Normalize First)

이 논문은 간단하고 입증된 해결책을 제시합니다. 슬라이딩하는 가공되지 않은 숫자를 보는 대신, 정규화된 확률(normalized probabilities)(즉, 특정 단어가 선택될 실제 백분율)을 보아야 합니다.

  • 확률은 항상 0과 1 사이이므로, 위치가 밀려나지 않습니다.
  • 저자들이 가공되지 않은 점수 대신 이 정규화된 숫자에 페널티를 적용했을 때, 혼돈은 사라졌습니다.
  • "플립 레이트(flip rate, 지도가 밀렸을 때 로봇이 마음을 바꾸는 비율)"는 0.00으로 떨어졌습니다.
  • 1.3 설정에서의 JSON 성공률은 다시 **97%**로 반등했습니다.

Hugging Face에는 이미 이를 수행하는 LogitNormalization이라는 도구가 있지만, 이는 기본적으로 꺼져 있으며 페널티가 적용된 에 실행됩니다. 논문은 만약 이 기능을 켜고 페널티를 적용하기 에 실행한다면, 어떤 모델을 사용하더라도 안정적이고 신뢰할 수 있는 결과를 얻을 수 있다고 제안합니다.

핵심 요약

현재 거의 모든 AI 엔진에 탑재되어 있는 "승법적 반복 페널티(multiplicative repetition penalty)"는 숫자의 위치가 변할 수 있는 숫자의 선(number line)에 의존하고 있기 때문에 근본적으로 결함이 있습니다. 이것은 보편적인 조절 노브가 아니라, 사용하는 기계마다 다른 결과를 내놓는 고장 난 다이얼입니다.

  • 현상: AI가 작성하는 내용에 엄청나고 예측 불가능한 변화를 일으키며(선택의 58~96%가 바뀜), JSON과 같은 구조화된 형식을 파괴합니다(유효성이 97%에서 23%로 급락).
  • 실체: 이것은 기능이 아니라, 수년간 업계에 복제되어 온 버그입니다.
  • 해결책: 숫자를 먼저 정규화하십시오. 이렇게 하면 슬라이딩 지도 문제를 제거하여, 어떤 로봇을 사용하더라도 페널티가 일관되게 작동하도록 만들 수 있습니다.

저자들은 여러 모델과 소프트웨어 스택에 걸쳐 이를 측정했으며, 결과는 명확합니다. 현재의 표준은 고장 났으며, 해결책은 이미 준비되어 있습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →