얼린 Gemma 4 위 34M 보정 모듈로 오류를 고치고 성능을 지킨다
Safe Error Correction for Language Models: Frozen-Base Adjustment with Capability Preservation
무엇인가
언어모델은 배포 현장에서 틀린 사실, 어긋난 추론, 나쁜 제안을 내놓는다. 문제는 이 오류를 고치려고 LoRA나 전체 파인튜닝으로 모델 자체를 건드리면 도메인 오류는 줄어도 일반 능력이 함께 망가진다는 점이다. 논문은 이 현상을 보정-능력 맞교환(correction–capability tradeoff)이라고 부르고, 과연 이 맞교환이 필수인지 묻는다. 즉 완전히 얼린 베이스 모델 위에 작은 보정 모듈만 얹어서, 관계없는 과제의 성능은 그대로 두고 오류만 고칠 수 있는가가 질문이다.
어떻게 동작하나
제안 방법은 CRN v2(Cognitive Resonance Network version 2)다. 4.65B 텍스트 파라미터를 가진 Gemma 4 E2B(35층, d=1536, 어휘 262,144, tied embedding)를 완전히 동결하고, 그 최종 은닉 상태 h^(L)만 읽어 로짓에 덧셈 보정을 가한다. 수식은 ℓ̂ = ℓ_base + g·W_up(GELU(W_down·h^(L)))이며, W_down은 r×d, W_up은 V×r 저랭크 행렬(r=128), g는 0 근처로 초기화된 학습 스칼라 게이트다. 학습되는 파라미터는 다운 프로젝션 196,608 + 업 프로젝션 33,554,432 + 바이어스 262,144 + 게이트 1 = 34,013,185개로 베이스 텍스트 모듈의 0.73%에 불과하다. 베이스에는 그래디언트가 전혀 흐르지 않는다.
무엇과 다른가
학습은 2단계다. 1단계 SFT는 prompt: answer 형식에 답변 토큰만 레이블을 남기고(프롬프트는 -100), 정답 토큰에 앵커 4배·EOS 5배 가중을 준 교차엔트로피에 KL 보존 항을 더한다. KL 항은 KL(p_base ‖ p_corrected)를 마스크되지 않은 모든 위치에서 계산해 평균한 것으로, 베이스가 잘 처리하는 입력에서는 보정이 베이스에 가깝게 머물도록 붙잡는 역할을 한다(λ=0.1). 2단계는 참조 모델 없는 DPO로, 정답 y_c를 얼린 베이스가 생성한 오답 y_r보다 선호하도록 β=0.1로 500스텝 학습한다. SFT는 2,000스텝(AdamW, LR 3e-4, 코사인 감쇠, 그래디언트 누적 8, 배치 1)이다.
어떻게 쓰나
데이터는 83,400개 오류 보정 쌍(고유 프롬프트 17,810개, 사실·산술·암묵적 목표 추론 3개 도메인, 패러프레이즈 변형으로 평균 4.7행)이며, 각 행에 패러프레이즈를 붙여 SFT 166,800행을 만든다. 평가는 60문항 도메인 시험 CEHRI와 120문항으로 재구성한 reworded 변형이다. 저자들은 여기서 중요한 전제를 명시한다. CEHRI 60문항의 프롬프트가 전부 학습 데이터에 그대로(verbatim) 등장하며, reworded 변형도 평균 71.6% 문자 중복에 코사인 유사도 0.881~0.990(중앙값 0.972)인 템플릿 수준 변형이라는 것이다. 즉 두 시험 모두 분포 밖 일반화를 측정하지 않는다.
전제와 한계
결과는 이렇다. CRN v2는 원본 시험에서 베이스 오류의 53.3%(32/60)를 고쳤고 reworded에서는 43.3%(52/120)를 고쳤다. 얼린 베이스 단독은 7/60만 맞히므로 원본 기준 25문항을 추가로 맞힌 셈이다. 같은 CRN v1 예산(6.6M 파라미터, rank 19, α=38, 8개 깊이)에 맞춘 LoRA 베이스라인은 83.3%(77.5% reworded)를 고쳐 보정률만 보면 확실히 앞선다. 그러나 능력 보존에서는 정반대다. CRN v2는 MMLU 125/200, BoolQ 144/200, car-wash 6/8로 얼린 베이스와 완전히 동일한 점수를 냈지만, LoRA는 같은 벤치마크에서 17~75%p 떨어졌고 8문항짜리 car-wash는 사실상 전멸했다. 95% Wilson 구간은 53.3%가 [40.9%, 65.4%], 83.3%가 [72.0%, 90.7%], 43.3%가 [34.6%, 52.4%], 77.5%가 [69.0%, 84.4%]다.
KL 보존 항은 실제로 하중을 받는 부품이다. λ를 0.1에서 0.01로 낮추면 보정률이 53.3%에서 35.0%로(reworded는 43.3%에서 25.8%로) 떨어진다. 다만 저자들은 이 실험이 rank(128→256), λ(0.1→0.01), DPO 스텝(500→2000) 세 변수를 동시에 바꿔서 λ 단독 효과로 귀속할 수 없다고 밝힌다. 주입 깊이 탐색도 흥미롭다. 은닉 상태 주입 변형(1.6M 파라미터, rank 512, SFT만)은 7층에서 50.0%/55.8%를 냈지만 4층에서는 30.0%/28.3%로 떨어졌고, 어느 쪽도 로짓 보정의 53.3%를 넘지 못했다. 다중 깊이 로짓 보정(~35M)은 40%, 5,000 SFT + 2,000 DPO로 늘린 학습도 53.3% 그대로였다. 7층에서 DPO를 돌리면 보정률은 그대로인데 MMLU 13%로 능력이 붕괴한다.
실무 관점에서 이 논문이 주는 메시지는 보정률 최대화와 배포 안정성이 다른 목표라는 것이다. 일반 추론 능력을 유지해야 하는 제품이라면, 얼린 베이스에 로짓 보정과 KL 앵커링을 얹는 설계가 LoRA보다 안전한 선택지가 될 수 있다. 다만 비용을 봐야 한다. 보정 모듈이 최종 은닉 상태를 읽기 때문에 KV 캐시를 쓸 수 없어 생성 토큰마다 베이스 전체 순전파가 필요하고, Apple M4(MPS)에서 토큰당 약 1초, 16토큰 답변이 약 16초 걸린다. 학습은 M4 16GB에서 SFT 2,000스텝 약 17분 + DPO 500스텝 약 8분으로 총 25분 남짓이다. 코드와 가중치, 평가 스크립트는 공개되어 있다.
저자가 스스로 밝힌 한계는 분명하다. 보정률 53.3%는 나머지 46.7%의 오류를 그대로 남겨 고위험 용도에는 부족하다. 평가가 60문항 단일 도메인 시험이고 reworded 변형도 진짜 패러프레이즈가 아닌 저다양성 템플릿이다. 벤치마크별 표본이 작아(MMLU/BoolQ 200, car-wash 8) 미세한 차이는 판별할 수 없다. KL ablation은 세 변수가 얽혀 있다. 학습 데이터가 83,400행으로 작아 스케일링 거동은 알 수 없다. HellaSwag는 두 모델 모두 파서 불일치 버그로 0/200이 나와 결론에서 제외했다. 깊은 주입 변형은 탐색적이며 7층 SFT-only 행만 로그로 검증되었고 4층·DPO 행은 세션 관찰값이다. 저자들은 53.3%를 이론적 상한이 아니라 테스트한 구성 중 최선으로 규정하고, 아키텍처적 새로움을 주장하지 않는다고 못 박는다.