Gemma 4 31b AttnRes 프로젝트
요약
Gemma 모델을 기반으로 표준 잔차 스트림을 어텐션 기반 라우팅 메커니즘인 AttnRes로 교체하는 연구 프로젝트를 소개합니다. 지식 증류(distillation)와 데이터 다양성 확보를 통해 모델의 성능과 매니폴드를 보존하는 전략을 다룹니다.
핵심 포인트
- AttnRes: 표준 잔차 스트림을 어텐션 기반 라우팅으로 교체하여 연산 효율성 극대화
- 위닝 스케줄(Weaning Schedule): 점진적 전환을 통한 지식 증류 전략 사용
- 데이터 다양성: 모델 자체를 활용한 데이터 스캐폴딩으로 매니폴드 커버리지 확보
- Top-K 로짓 활용: 단순 예측이 아닌 확률 분포 형태를 보존하는 증류 방식 채택
저는 Claude에게 이 내용을 다시 작성하도록 요청했기에 Em Dash(—)가 포함되어 있습니다. Claude 식의 많은 단순화가 적용되었지만 내용은 정확합니다. --- 안녕하세요 여러분. AttnRes 아키텍처(architecture)에 대해 게시한 지 꽤 시간이 흘러서 현재 상황이 어떤지 업데이트를 해드릴까 합니다. 짧은 버전: 살아있습니다. 긴 버전은... 복잡합니다. 핵심 아이디어는 변하지 않았습니다. 표준 잔차 스트림(residual stream)을 어텐션 기반 라우팅 메커니즘(attention-based routing mechanism)인 AttnRes로 교체하는 것입니다. 이를 통해 모델이 단순히 모든 것을 앞으로 전달하는 대신, 레이어(layer) 간에 정보의 '어디로(WHERE)' 라우팅할지를 학습할 수 있게 합니다. 파라미터(parameter) 수는 베이스 모델과 동일합니다. 가설은 이것이 동일한 연산(compute)을 근본적으로 더 잘 사용하는 방법이라는 것입니다. 제가 가장 많은 시간을 보낸 부분은 처음부터 학습(training from scratch)하지 않고 어떻게 실제로 그 단계에 도달할지 알아내는 것이었습니다. 저는 Google과 같은 예산이 없습니다. 저는 혼자입니다. 그래서 전체 전략은 '위닝 스케줄(weaning schedule)'을 사용하여 Gemma에서 새로운 아키텍처로 지식 증류(distilling)를 하는 것을 중심으로 구축되었습니다. 즉, 처음에는 표준 잔차(residual)가 모든 작업을 수행하게 시작하고, 학습 과정에 걸쳐 점진적으로 그 책임을 AttnRes 경로(pathway)로 전환하는 방식입니다. 모델은 기존 경로가 서서히 제거되는 동안 새로운 경로를 통해 라우팅하는 법을 배웁니다. 간단해 보이지만, 간단하지 않습니다. 가장 오래 걸린 문제는 데이터였습니다. 양(volume)의 문제가 아니라... 다양성(diversity)의 문제였습니다. 좁은 분포(distribution)에서 증류를 하면 해당 분포는 아주 잘 처리하지만, 조용히 다른 모든 능력을 상실한 모델을 얻게 됩니다. 모델 매니폴드(manifold)는 이 거대한 고차원적인 것이며, 전환 과정 동안 그 모든 것을 보존해야 합니다. 그렇지 않으면 코딩은 할 줄 알지만, 양자 역학에 대해 물어보면 갑자기 한국어와 영어가 섞여서 대답하는 모델을 얻게 됩니다. 저는 이런 일이 발생하는 것을 보았습니다. 정보는 제공하지만 이상적인 상태는 아닙니다. 제가 찾아낸 해결책은 모델 자체를 사용하여 다양한 범위를 생성하는 것이었습니다. 뉴스 기사를 가져옵니다. 모델에게 그것을 요약하라고 요청합니다. 그런 다음 그 요약을 불가리아어로 번역합니다. 그다음 불가리아어 번역에서 놓친 뉘앙스가 있는지 물어봅니다.
하나의 소스 콘텐츠가 모델의 능력 공간(capability space) 내에서 완전히 다른 세 영역을 실행합니다. Google이 Gemma가 잘 처리하도록 학습시킨 20개 언어에 이를 확장하면, 비교적 단순한 데이터 스캐폴딩(data scaffolding)으로부터 방대한 매니폴드(manifold) 커버리지를 얻을 수 있습니다. 또 다른 큰 결정은 증류 대상(distillation targets)이었습니다. 대부분의 사람들은 원-핫(1-hot) 또는 레이블 스무딩(label smoothed) 타겟을 사용하여 증류합니다. 저는 소스 모델의 상위 K(top-K) ~12개 로짓(logits)을 비례 가중치를 유지한 채 사용하고 있습니다. 그 이유는... 모델이 단순히 다음 토큰 예측기(next token predictor)가 아니기 때문입니다. 모델은 다음 분포(next DISTRIBUTION) 예측기입니다. 모든 위치에서 상위 후보들 사이의 관계는 모델의 실제 지식, 즉 무엇이 가능성이 높은지, 무엇이 그럴듯한지, 무엇이 연관되어 있는지를 인코딩합니다. 원-핫 방식은 그 모든 것을 버립니다. Top-K 12는 확률 질량(probability mass)의 약 98%를 포착하며, 매니폴드 그 자체인 분포 형태(distributional shape)를 보존합니다. 이것이 중요한 이유는 위닝(weaning, 젖떼기) 과정 동안 새로운 경로가 단순히 정답만을 재현하는 것이 아니라, 올바른 불확실성 구조(uncertainty structure)를 재현하는 법을 배워야 하기 때문입니다. 이것이 모델이 단순히 출력을 모방하는 대신 모델의 지식을 실제로 내재화하도록 강제하는 요소입니다. 목표는 완벽함이 아닙니다. 저는 아키텍처가 작동하며 학습 가능하다는 것을 증명하는 베타 버전을 원합니다. 누군가가 이를 가져가서 제가 이미 구축한 파이프라인을 사용하여 새로운 지식을 증류하고 개선할 수 있을 정도로 충분히 괜찮은 수준 말입니다. 이 작업을 수행하기 위해 직접 작성해야 했기에 훈련 코드가 존재합니다. 데이터 파이프라인도 존재합니다. 방법론은 문서화되어 있습니다. 모두 Apache 2.0 라이선스입니다. 만약 컴퓨팅 제공업체가 참여하여 이 모델을 Gemma 수준의 품질로 끌어올리는 것을 돕고 싶다면... 기꺼이 그들의 이름을 HuggingFace 카드에 올려줄 용의가 있습니다. 이것은 누구나 개선할 수 있는 개방형 아키텍처를 기반으로 구축된 커뮤니티 모델을 지향합니다. 탐사(probing) 실행이 완료됨에 따라 더 많은 업데이트를 제공하겠습니다. 방법론이나 이러한 결정 뒤에 숨겨진 논리에 대한 질문은 언제든 환영합니다. --- 핵심 모델과 이 모델이 주로 증류된 훈련 모델은 Gemma 4 모델의 에블리터레이티드(abliterated, 안전 장치가 제거된) 변형체들입니다. 따라서... 이 모델에는 안전 기능(safety)이 없습니다.
이는 사용자가 스스로 책임을 지고 사용하는 방식입니다. 현재 저는 B300을 기다리고 있습니다. 아직 구할 수 없으며, 현재 저의 테스트 대상은 단일 B300을 사용하는 것입니다. 지난 일주일 동안 모든 데이터 센터가 100% 매진되었고, 제품이 나타나자마자 바로 사라지고 있습니다. 또 다른 주목할 점은, 저는 Top K 12 증류 (distillation)를 사용하지만, 데이터셋의 상당 부분에서는 상위 3개 또는 4개만으로도 충분히 잘 작동한다는 것을 발견했습니다. 이는 언어, 코드, 심지어 논리가 구조화되는 방식과 관련이 있습니다. 단순하게 말해서, "I want to eat a"라고 썼을 때 다음 토큰(token)이 "apple"이 될 것이라고 기대할 수는 없습니다. 만약 "a"를 "an"으로 바꾼다면, "apple"과 모음으로 시작하는 다른 모든 단어들이 유효해지며 나머지 것들의 확률은 급격히 떨어집니다. 제 관찰에 따르면 이런 현상이 매우 빈번하게 발생합니다. 또 다른 문제는 양자화 (quantization)입니다. 양자화는 선택지가 많은 롱 테일 분포 (longer tail distributions)에 영향을 미칩니다. 저는 현재 이 과정을 더 효과적으로 만들기 위해 이 두 가지 문제를 모두 조사하고 있습니다. 이전 모델에서 보았던 것처럼 레이어(layers)를 제거하는 것은... 필요한 학습량이 100배는 더 많습니다. 이는 레이어를 점진적으로 제거하는 과정을 포함합니다. 제가 모든 레이어를 식별했음에도 불구하고, 모델이 너무 불안정해져서 학습을 계속하면서 다른 작업들을 병행하기가 어렵습니다. 이는 먼저 Gemma를 3개의 SWA + Global로 자른 다음, 어텐션 잔차 (attention residuals)를 적용하는 문제가 될 것입니다. 대안으로는, 모델을 더 크게 만들기 위해 중간에 한두 개의 블록을 삽입한 다음, 더 많이 학습시킨 후 어텐션 잔차를 적용할 수도 있습니다. 제가 알기로는 Moonshot 외부에서는 아무도 이를 수행하지 않았으며, Moonshot조차도 사전 학습(pretrain)에서 지시 학습(instruct training)으로 넘어가는 과정이었기 때문에 약 1.5t 토큰을 사용했습니다. 하지만 Moonshot은 이 잔차 스트림 (residual stream)을 통해 그들의 모델이 학습 효율 면에서 약 25% 더 효율적임을 입증했습니다. 나아가, Kimi K3가 이제 정확히 이 기능을 탑재하여 출시되었습니다. 그러니 제가 처음에 무언가 올바른 방향을 잡고 있었던 것 같습니다. 이전 게시물 - https://old.reddit.com/r/LocalLLaMA/comments/1ulmez2/rebuilding_gemma_4_31b_better_as_26b/ /u/NineThreeTilNow 제출 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기