GRAM 소개
도서관에서 위험한 책을 관리하는 방법은 크게 두 가지입니다. 사서에게 이 책은 함부로 내주지 마세요 라고 교육하거나, 아예 그 책을 서가에서 빼버리는 것입니다. 앞의 방법은 사서를 그럴듯한 핑계로 속이면 뚫리고, 뒤의 방법은 정말로 그 책이 필요한 연구자까지 함께 막아버립니다. AE Studio 가 Anthropic과 함께 발표한 Modular Pretraining Enables Access Control 논문은 세 번째 길을 제안합니다. 위험한 지식을 모델 안의 떼어낼 수 있는 서가에 따로 모아두고, 배포 대상에 따라 그 서가만 통째로 들어내거나 다시 붙이는 사전학습 방법인 GRAM(Gradient-Routed Auxiliary Modules, 그래디언트 라우팅 보조 모듈) 입니다. ICML 2026 Spotlight로 채택되었습니다.
이중용도(Dual-Use) 딜레마: 같은 지식의 두 얼굴
프론티어 AI 모델은 그 자체로 거대한 지식 저장소입니다. 문제는 그 지식의 상당 부분이 이중용도(dual-use) 라는 점입니다. 백신을 설계하는 데 필요한 바이러스학 지식은 치명적인 병원체를 설계하는 데도 쓰일 수 있고, 취약점을 찾아 패치하는 보안 지식은 그대로 공격에 쓰일 수 있습니다. 어느 한쪽만 골라서 모델에 넣는 일은 원리적으로 불가능합니다. 같은 지식이기 때문입니다.
그래서 AI 개발사는 지금까지 전부 아니면 전무의 선택을 강요받아 왔습니다. 능력을 열어 두면 오남용 위험을 감수해야 하고, 닫아 두면 정당한 연구자가 얻을 수 있었던 이득을 통째로 포기해야 합니다. 논문은 이를 이중용도 딜레마(dual-use dilemma) 라고 부르며, 그 해법으로 정보보안 분야에서 오래 검증된 개념인 접근 제어(access control) 를 가져옵니다. 자원에 대한 접근을 사용자의 권한에 따라 제한하는 방식으로, 최소 권한 원칙(principle of least privilege) 처럼 업무 수행에 필요한 만큼만 권한을 준다 는 보안의 기본 원칙과 정확히 맞닿아 있습니다.
논문은 이를 위해 두 개의 용어를 정의합니다. 능력(capability) 은 특정 유형의 과제를 수행하는 능력이고, 능력 프로파일(capability profile) 은 그런 능력들의 집합입니다. 예를 들어 검증된 생물보안 연구소에는 바이러스학 능력이 켜진 모델을, 일반 소비자 서비스에는 그 능력이 꺼진 모델을 제공하되 두 경우 모두 일반 성능은 동일하게 유지하는 것이 목표입니다.
기존 접근법들과 각각의 한계
첫째, 거부 학습과 분류기입니다. 가장 널리 쓰이는 방식으로, 위험한 요청을 거부하도록 모델을 학습시키고 Constitutional Classifiers 같은 분류기로 입출력을 걸러냅니다. 하지만 이들은 모두 모델이 여전히 알고 있는 지식 위에 얹힌 행동 계층(behavioral layer)에 불과합니다. 지식 자체는 가중치 안에 그대로 남아 있으므로, 충분히 집요한 공격자는 탈옥(jailbreak)으로 그 방어선을 우회할 수 있습니다. 게다가 릴리스마다 다시 조정해야 하는 유지보수 비용도 만만치 않습니다.
둘째, 계층형 접근(tiered access)입니다. 사용자 심사를 거쳐 등급별로 다른 모델을 제공하는 방식인데, 이 통제는 모델 전체 와 계정 전체 라는 굵은 단위에서만 작동합니다. 결국 사용자는 모델이 가진 모든 능력을 받거나, 아니면 모든 면에서 열등한 모델을 받거나 둘 중 하나를 골라야 하는 거친 절충에 놓입니다.
셋째, 데이터 필터링입니다. 학습 데이터에서 아예 해당 도메인을 빼고 사전학습하는 방식으로, 사전학습 데이터 필터링 연구 와 Deep Ignorance 등이 그 효과를 보여 주었습니다. 모델이 애초에 그 데이터를 본 적이 없으므로 미세조정(fine-tuning)을 통한 적대적 유도에도 강합니다. 논문이 이를 접근 제어의 골드 스탠다드(gold standard) 로 삼는 이유입니다. 문제는 비용입니다. N 개의 능력 프로파일을 지원하려면 N 번의 사전학습이 필요한데, 프론티어 모델의 학습 비용 을 생각하면 사실상 불가능한 요구입니다.
넷째, 사후 언러닝(post-hoc unlearning)입니다. 이미 학습을 마친 모델에 표적 그래디언트 업데이트를 가해 능력을 제거하는 접근입니다. 값은 싸지만, 몇 개의 예시만으로 미세조정하면 지운 지식이 곧바로 되살아난다 는 사실이 반복적으로 보고되었습니다. 지운 것이 아니라 눌러 둔 것에 가깝다는 뜻입니다.
다섯째, 모델 분기(model branching)입니다. 뒤에서 GRAM의 가장 강력한 경쟁자로 계속 등장할 방식이니 조금 더 자세히 보겠습니다. 먼저 필터링된 데이터로 베이스 모델 하나를 학습한 다음, 이중용도 능력마다 따로 미세조정해 여러 변형으로 갈라놓는 접근입니다. 사전학습을 한 번만 하므로 학습 비용은 확실히 줄어듭니다. 그러나 배포는 여전히 여러 벌이어야 하고, 어떤 변형은 거의 쓰이지 않는데도 계속 띄워 두어야 하니 비효율이 남습니다.
이 배포 비용은 LoRA 같은 파라미터 효율 미세조정으로 상당 부분 덜어낼 수 있습니다. 하나의 베이스 모델을 여러 어댑터가 공유하면 S-LoRA 처럼 수천 개의 어댑터를 동시에 서빙하는 것도 가능하기 때문입니다. 다만 저랭크 어댑터가 사전학습 규모의 능력을 처음부터 익힐 만한 용량을 갖췄는지는 논쟁적입니다. LoRA Learns Less and Forgets Less 와 LoRA Without Regret 이 이 질문을 각기 다른 각도에서 다뤄 왔습니다. 논문의 비교 대상인 FT-LoRA 와 FT-Full 이 바로 이 계열이며, GRAM과 가장 치열하게 겨루는 상대이기도 합니다.
GRAM의 발상 전환: 지식이 학습되는 "주소"를 미리 정한다
기존 방법들의 실패는 공통된 뿌리를 가집니다. 지식이 이미 신경망 전체에 퍼진 다음에 그것을 되돌리려 한다는 점입니다. GRAM의 발상 전환은 순서를 뒤집는 데 있습니다. 지식이 퍼지기 전에, 학습 시점에 미리 그 지식이 살 주소를 정해 두는 것 입니다.
구체적으로는 트랜스포머의 각 MLP 블록에 이중용도 범주마다 하나씩 작은 보조 모듈(auxiliary module) 을 붙여 두고, 해당 범주의 데이터로 학습할 때는 그 모듈만 집중적으로 업데이트합니다. 바이러스학 지식은 신경망 전체로 확산되는 대신 바이러스학 모듈 안에 축적됩니다. 학습이 끝나면 그 모듈을 통째로 삭제하기만 하면 능력도 함께 사라지고, 신뢰할 수 있는 배포처에는 그대로 붙여 둘 수 있습니다.
마치 회사가 공용 사무실과 부서별 잠금 캐비닛을 함께 두는 것과 비슷합니다. 일상 업무는 공용 공간에서 처리하되 민감한 문서는 각 부서 캐비닛에만 넣어 두면, 나중에 특정 부서의 캐비닛만 통째로 들어내는 일이 가능해집니다. 문서가 사무실 곳곳에 흩어져 있었다면 결코 할 수 없는 일입니다.
핵심 성과를 미리 짚어 보면, GRAM은 단 한 번의 학습으로 5 개의 서로 다른 데이터 필터링 모델을 근사 했고, 50\text{M} 부터 5\text{B} 파라미터까지 이어지는 Chinchilla 최적 스케일링 분석에서 규모가 커질수록 제거된 능력의 격차가 오히려 벌어지는 경향을 보였습니다. 논문의 5 프로파일 설정에서 데이터 필터링 대비 학습 비용은 5\times 절감됩니다.
GRAM의 계보: 무엇을 물려받고 무엇을 새로 했는가
GRAM은 무에서 나온 방법이 아닙니다. 논문 스스로 세 갈래의 선행 연구를 결합했다고 밝히고 있어, 무엇이 새로운지 가려서 읽을 필요가 있습니다.
첫 갈래는 도메인별 모듈 입니다. DEMix 레이어 는 각 전문가를 하나의 도메인에 배정하고 해당 도메인 데이터에서만 그 전문가를 활성화합니다. 둘째는 데이터 의존적 선택 업데이트 로, Cloud 등의 그래디언트 라우팅 이 데이터에 따라 그래디언트를 마스킹해 계산을 신경망의 특정 영역에 국소화하는 아이디어를 제시했습니다. 셋째는 파라미터 부분집합별 독립 옵티마이저 로, Shilov 등의 지식 국소화 연구 와 그 바탕이 된 선택적 그래디언트 마스킹(SGTM) 에서 왔습니다. 이 논문의 기여는 새 원리를 발명한 것이 아니라, 이 셋을 성능이 나오도록 조합하고 선행 연구보다 훨씬 크고 현실적인 설정에서 검증한 데 있습니다.
여기서 GRAM이 모듈형 딥러닝(modular deep learning) 과 어떻게 다른지도 짚어 둘 만합니다. 모듈형 딥러닝은 학습을 과제별 모듈로 분해하도록 아키텍처에 구조를 부과해, 모델이 계산을 조직하는 방식 자체를 제약합니다. 반면 GRAM은 어떤 데이터가 어떤 파라미터를 갱신하는지만 통제할 뿐, 각 구획 안에서 어떤 표현이 학습되는지에는 아무 제약도 걸지 않습니다. 지식의 내용이 아니라 주소만 정해 준다는 표현이 정확한 이유입니다. 데이터가 순차적으로 도착하는 연속 학습(continual learning)과도 설정이 다른데, 여기서는 모든 데이터를 학습 시점에 다 갖고 있으며 목표도 새 과제를 잊지 않고 습득하는 것이 아니라 하나의 사전학습 모델에서 여러 능력 프로파일을 뽑아내는 것입니다.
한편 모듈성을 감독 없이 얻으려는 시도들도 있었지만 결과가 좋지 않았습니다. 표준 MoE의 라우팅 분포가 특정 전문가에 집중된다는 관찰을 활용하는 방법은 학습된 라우터의 창발적 특화에 기대는데, OpenMoE 분석 은 그 특화가 도메인 수준의 신뢰할 만한 분리를 만들어 내지 못한다고 보고했습니다. 군집성(clusterability)을 높이는 손실 항으로 서로 상호작용하지 않는 뭉치를 유도한 연구도 회로는 작아졌지만 과제 특화가 늘지는 않았다고 보고했습니다. GRAM이 학습된 라우터를 아예 버리고 데이터 라벨이라는 감독 신호를 쓰는 이유가 여기에 있습니다.
거의 같은 시기에 나온 NULLs(Natively Unlearnable LLMs) 도 지식을 삭제 가능한 파라미터로 국소화한다는 점에서 GRAM과 닮았습니다. 다만 NULLs는 희소 마스크로 개별 사실 을 겨냥하는 반면, GRAM은 망각 데이터의 그래디언트가 공유 파라미터에 닿는 빈도 자체를 확률로 눌러 격리를 노립니다. 잠시 뒤에 볼 auxiliary spread가 그 확률입니다. 검증 범위도 달라서, GRAM은 소수의 넓은 능력을 여러 규모에 걸쳐 평가한 반면 NULLs는 다수의 개별 사실을 단일 모델 크기에서 다룹니다.
GRAM의 동작 원리: 그래디언트 라우팅과 보조 모듈
아키텍처: 항상 켜져 있는 코어 MLP와 작은 보조 모듈들
GRAM은 표준 디코더 전용 트랜스포머에서 출발합니다. 각 블록의 MLP를 하나의 큰 코어(core) MLP 와 N-1 개의 작은 보조 모듈로 확장하는데, 보조 모듈은 결국 레이어의 폭을 늘리는 추가 뉴런들 에 지나지 않습니다. 800\text{M} 파라미터 실험에서는 코어 MLP의 폭이 d_{core} = 6400 , 보조 모듈이 d_{aux} = 640 으로 베이스라인 MLP 폭의 10\% 에 해당하며 모듈당 49.2\text{M} 파라미터를 가집니다.
여기서 반드시 짚고 넘어갈 점은 이것이 혼합 전문가 모델(Mixture-of-Experts, MoE)이 아니라는 사실입니다. MoE에는 학습되는 라우터가 있고 토큰마다 어느 전문가로 보낼지 결정하지만, GRAM에는 학습된 라우터도 없고 토큰 단위 라우팅도 없습니다. 라우팅을 결정하는 것은 오직 현재 배치의 데이터 라벨 뿐입니다. 이 단순함이 오히려 강점인데, 라우터가 학습되지 않으므로 능력이 어느 모듈에 들어갈지가 우연이나 창발에 맡겨지지 않고 설계자의 통제 아래 놓이기 때문입니다.
모듈 활성화는 이진 지시자 m \in \{0,1\}^N 으로 표현되며, m_1 = 1 은 코어 MLP가 모든 순전파에서 항상 활성임을 뜻합니다. GRAM 레이어의 출력은 다음과 같이 활성 모듈들의 합으로 정의됩니다.
그래디언트 라우팅: 예측에 쓰는 것과 배우는 것을 분리하기
GRAM의 진짜 핵심은 아키텍처가 아니라 그래디언트 라우팅(gradient routing) 이라는 학습 규칙입니다. Cloud 등이 2024년에 제안한 원 아이디어 를 사전학습 규모로 확장한 것으로, 그 발상은 한 문장으로 요약됩니다. 모델이 예측에 사용하는 파라미터와 그 예측에서 배우는 파라미터를 분리한다.
바이러스학 텍스트를 예로 들어 보겠습니다. 순전파에서는 모델이 일반 지식(코어)과 바이러스학 지식(보조 모듈)을 모두 동원해 다음 토큰을 예측합니다. 하지만 역전파에서는 규칙이 바뀝니다. 바이러스학 모듈만 학습하고, 일반 목적 가중치는 일시적으로 얼어붙습니다. 학생이 시험 문제를 풀 때 배운 모든 지식을 동원하되, 그 문제에서 얻은 교훈은 특정 노트에만 적어 두도록 강제하는 것과 비슷합니다.
파라미터는 하나의 코어 집합(임베딩, 어텐션, 정규화 레이어, 언임베딩, 코어 MLP를 모두 포함하는 공유 파라미터)과 N-1 개의 서로 겹치지 않는 보조 집합으로 분할되고, Shilov 등의 연구 를 따라 각 집합마다 별도의 AdamW 옵티마이저 를 사용합니다. 파라미터뿐 아니라 모멘텀과 2차 모멘트 추정값까지 집합별로 독립하게 유지된다는 뜻입니다.
보조 데이터 배치와 Auxiliary Spread (p_{as})
보조 데이터셋 D_{i>1} 에서 온 배치에서는 코어 MLP와 보조 모듈 i 가 함께 순전파에 참여합니다. 역전파에서 보조 모듈 i 는 항상 업데이트되지만, 코어 파라미터는 확률 p_{as} 로만 업데이트됩니다. 이 하나의 확률값이 격리 강도를 조절하는 다이얼 역할을 합니다.
p_{as} 스윕 결과는 이 다이얼의 성격을 명확히 보여 줍니다. p_{as} = 0 에서 p_{as} = 1 로 올리면 코어 성능은 0.90 에서 0.97 로, 유지(retain) 성능은 0.88 에서 1.04 로 좋아집니다. 보조 데이터의 그래디언트가 공유 표현을 풍부하게 만들기 때문입니다. 그런데 같은 구간에서 망각(forget) 성능은 0.69 에서 0.89 로, 유도 후 망각 성능은 0.78 에서 0.97 로 함께 나빠집니다. 제거하려던 능력이 다시 코어로 얽혀 들어간다는 뜻입니다. 즉 p_{as} 는 격리와 표현 공유 사이의 교환비 를 직접 조절하는 손잡이입니다.
코어 데이터 배치와 Core Robustness (p_{cr})
일반 목적 코어 데이터셋 D_1 에서 온 배치에서는 코어 MLP가 항상 활성이고, 확률 p_{cr} 로 무작위 보조 모듈 하나가 추가로 켜집니다. 언뜻 이상해 보이는 이 규칙에는 분명한 이유가 있습니다. 배포 시점에 어떤 모듈 조합이 켜져 있든 코어가 안정적으로 동작해야 하기 때문입니다.
p_{cr} 스윕 결과가 그 필요성을 잘 드러냅니다. p_{cr} = 0 에서는 코어 전용 구성이 0.98 인데 보조 모듈을 하나 켠 구성은 0.87 로 크게 벌어집니다. 보조 모듈이 코어 데이터를 한 번도 본 적 없으니 오히려 방해가 되는 것입니다. p_{cr} 을 0.4 에서 0.8 사이로 두면 두 구성이 모두 약 0.93 으로 수렴하며 안정됩니다. 다만 p_{cr} = 1 처럼 극단으로 가면 코어가 보조 모듈의 활성화에 의존 하게 되어, 정작 모듈을 떼어낸 구성의 성능이 0.79 로 급락합니다. 논문이 권장하는 실용적 설정은 p_{as} \in [0.3, 0.5] 와 p_{cr} \in [0.2, 0.5] 입니다.
세 번째 하이퍼파라미터인 Auxiliary Factor p_{af} 는 각 보조 데이터셋에서 배치를 뽑는 빈도를 정합니다. 보조 데이터가 전체의 1\% 에 불과하므로 과표집(oversampling)이 필요할 때가 있는데, 이 경우 베이스라인과 연산량을 맞추기 위해 코어 데이터를 그만큼 저표집합니다.
추론 시점: 모듈을 떼어내면 능력이 사라진다
학습이 끝나면 능력 프로파일 S 를 제공하는 방법은 놀랄 만큼 단순합니다. 코어 MLP와 i \in S 인 보조 모듈들을 활성화하고 나머지는 삭제(ablate)하면 끝입니다. 보조 모듈이 4 개인 실험 설정에서는 각각을 켜고 끄는 조합으로 2^4 = 16 가지 구성이 하나의 모델에서 나옵니다.
논문은 여기서 한 걸음 더 나갑니다. 부록 N의 적정(titration) 실험 은 이진 마스크를 연속 가중치 t \in [0,1] 로 대체하여
로 순전파를 구성합니다. t 를 0 에서 1 로 올리면 해당 능력의 compute ratio가 단조 증가해 약 1 에 도달하는 반면, 코어 성능은 내내 약 1 에서 평평하게 유지됩니다. 오디오 믹서의 페이더처럼 능력을 연속적으로 조절할 수 있다는 뜻이며, 전부 아니면 전무가 아닌 부분적 접근 권한이 필요한 배포에서 유용한 성질입니다.
성능을 재는 자: Compute Ratio
실험 결과를 읽으려면 논문이 쓰는 측정 단위를 먼저 이해해야 합니다. 손실(loss) 값을 그대로 비교하지 않는 이유는, 손실이 연산량에 대해 하위선형(sublinear) 으로 감소하기 때문입니다. 같은 크기의 손실 차이라도 데이터셋의 난이도나 모델 규모에 따라 전혀 다른 연산량 차이를 의미합니다.
그래서 논문은 Compute Ratio(CR) 를 정의합니다. 베이스라인 모델의 학습 곡선에 3-파라미터 멱법칙 L_i(s) = A_i (s + s_{0,i})^{-\alpha_i} 를 적합한 뒤 역함수를 취해, 어떤 모델의 손실을 베이스라인이 달성하려면 전체 학습의 몇 배가 필요한가 를 계산합니다.
\mathrm{CR} = 1 이면 전체 데이터로 학습한 베이스라인과 동급이고, \mathrm{CR} = 0.5 라면 베이스라인이 학습의 50\% 를 마쳤을 때 수준이라는 뜻입니다. 논문은 네 가지 지표를 함께 보고합니다.
- Core: 일반 목적 코어 데이터에서의 성능입니다. 높을수록 좋습니다.
- Retain: 유지하기로 한 보조 능력의 성능입니다. 높을수록 좋습니다.
- Forget: 제거하기로 한 능력이 얼마나 남아 있는지를 나타냅니다. 낮을수록 좋습니다.
- Elicited Forget: 적대적 미세조정을 거친 뒤 그 능력이 얼마나 되살아났는지를 나타냅니다. 낮을수록 좋습니다.
이상적인 모델이라면 유지 대상에서는 \mathrm{CR} \geq 1 , 망각 대상에서는 \mathrm{CR} = 0 을 기록해야 합니다.
실험 1: 동화 데이터셋에서 5개의 필터링 모델을 하나로
첫 실험은 통제된 환경에서 GRAM이 정말 데이터 필터링을 근사하는지 확인합니다. SimpleStories 는 LLM이 생성한 약 200 만 편의 짧은 어린이 동화 모음으로, 각 이야기가 48 개 주제 범주 중 하나로 라벨링되어 있습니다. 연구팀은 알파벳 순으로 앞의 네 범주(A Deadline or Time Limit, Alien Encounters, Bygone Eras, Cultural Traditions)를 보조 능력으로 지정하고 나머지 44 개를 코어 데이터셋으로 묶었습니다.
모델은 8 개 레이어, 26\text{M} 파라미터의 소형 트랜스포머입니다. 비교 대상인 데이터 필터링은 코어에 각 주제를 하나씩 더한 모델 4 개와 코어만으로 학습한 모델 1 개, 총 5 개의 별도 모델입니다. 순전파당 활성 파라미터 수는 두 방법 사이에서 동일하게 맞췄습니다.
결과는 인상적입니다. 그림의 위아래 두 행을 겹쳐 보면 거의 구별이 되지 않습니다. 예를 들어 Alien Encounters 를 유지하는 구성에서 필터링과 GRAM은 모두 0.99 로 베이스라인에 거의 붙는 반면, 망각 대상인 A Deadline or Time Limit 은 필터링 0.65 , GRAM 0.61 로 뚜렷하게 내려앉습니다. 다섯 개 프로파일 전부에서 같은 분리가 관찰되며, 코어 성능도 GRAM 0.94 , 필터링 0.96 으로 나란합니다. 즉 격차는 공유 모델이 약해져서 생긴 것이 아니라 표적화된 제거의 결과 입니다. 집계 기준으로 GRAM은 유지 능력에서 0.95 를 기록해 데이터 필터링의 0.96 에 근접했습니다.
다른 방법들과 나란히 놓고 보면 GRAM의 위치가 더 분명해집니다.
| 방법 | Core ↑ | Retain ↑ | Forget ↓ | Elicited Forget ↓ |
|---|---|---|---|---|
| GRAM | 0.938 | 0.952 | 0.766 | 0.855 |
| Filtering | 0.961 | 0.962 | 0.780 | 0.870 |
| FT-LoRA | 0.841 | 0.928 | 0.692 | 0.774 |
| FT-Full | 0.874 | 1.029 | 0.722 | 0.806 |
| MaxEnt | 0.961 | 0.934 | 0.840 | 0.983 |
| DEMix | 0.248 | 0.183 | 0.257 | 0.302 |
단일 학습 방법 중에서는 GRAM이 가장 균형 잡힌 절충을 보여 줍니다. FT-LoRA는 유지 성능이 0.93 으로 준수하지만 코어가 0.84 로 처지고, FT-Full은 유지 1.03 과 코어 0.87 을 얻는 대신 능력 프로파일마다 별도 체크포인트를 배포해야 합니다. MaxEnt는 코어와 유지를 잘 보존하지만 망각이 0.84 에 그치고 적대적 미세조정 후에는 0.98 까지 되돌아옵니다. 사실상 아무것도 지우지 못한 셈입니다.
특히 눈에 띄는 것은 앞서 GRAM의 계보로 언급했던 DEMix 의 실패입니다. 도메인별 전문가를 둔다는 점은 같지만 DEMix에는 항상 켜져 있는 공유 코어가 없는데, 그 결과 클래스 불균형 상황에서 코어 0.25 , 유지 0.18 이라는 처참한 성능을 보였습니다. 공유 코어가 없으니 각 전문가가 기초적인 언어 구조까지 중복으로 학습해야 하는데, 전체 데이터의 작은 조각만 보는 전문가에게는 감당하기 어려운 부담이기 때문입니다. 비대칭적인 모듈 크기와 항상 활성인 코어 라는 GRAM의 설계 선택이 왜 중요한지를 역으로 증명하는 결과입니다.
논문의 부록 K에는 이 차이가 실제 생성 결과에서 어떻게 드러나는지 보여 주는 예시가 있습니다. 새벽 전, 사무엘은 집 밖에서 이상한 소리에 잠을 깼다. 그것은 그가 들어본 적 없는 윙윙거리는 소리였다 라는 프롬프트에 대해, 능력이 유지된 구성들은 모두 우주선과 외계인이 등장하는 이야기로 이어갑니다. 반면 능력이 제거된 구성들은 하나같이 그 소리를 평범한 무언가로 해석합니다. GRAM과 필터링은 로봇을, MaxEnt는 텅 빈 식료품 저장실을 등장시키며 끝내 외계 우주선에는 도달하지 못합니다. 문장은 여전히 자연스럽지만 특정 개념에만 도달하지 못하는, 정확히 의도한 형태의 능력 제거입니다.
두 번째 예시는 한층 흥미롭습니다. 이번 주제는 시간 제한 이라는, 등장인물이나 사물이 아니라 이야기의 추상적 속성 입니다. 불꽃놀이를 앞둔 소년에게 십 분이 남았다는 프롬프트에 대해, 능력이 유지된 구성들은 시간이 얼마 남지 않았다 나 시계가 째깍이며 내려갔다 같은 긴박감을 그대로 살려냅니다. 반면 능력이 제거된 구성들은 문장이 여전히 매끄러운데도 시간 압박만 쏙 빠진 채 느긋한 잔치 이야기로 흘러갑니다. 제거되는 것이 고유명사나 사실 지식만이 아니라 서사의 결 같은 것까지 포함된다는 뜻입니다. 참고로 공유 코어가 없는 DEMix의 보조 전문가는 여기서 시간이 얼마 남지 않았고, 시간이 얼마 남지 처럼 같은 구절을 되풀이하며 무너집니다.
한 가지 더 확인할 것은 확장성입니다. 보조 범주 수를 4 개에서 20 개까지 늘리면서 전체 학습 예산과 코어 대 보조 토큰 비율을 80\% 대 20\% 로 고정한 실험에서, 코어 성능은 약 0.88 로 거의 일정했고 유지 성능도 0.89 에서 0.91 사이에 머물렀습니다. 망각 성능은 0.65 에서 0.74 로 범주가 늘수록 소폭 상승했는데, 고정된 보조 예산을 더 많은 주제가 나눠 가지므로 자연스러운 결과입니다. 중요한 것은 모듈 수가 늘어도 코어 성능이 무너지거나 유지와 망각의 분리가 붕괴하지 않았다는 점입니다.
실험 2: 실제 이중용도 데이터에서의 접근 제어
실험 설계: 웹 텍스트, 코드, 논문 그리고 네 개의 위험 도메인
두 번째 실험은 동화에서 현실로 무대를 옮깁니다. 코어 데이터셋은 FineWeb-Edu 교육용 웹 텍스트, The Stack 의 코드(Lisp 제외), 그리고 일반 arXiv 논문으로 구성됩니다. 여기에 네 개의 이중용도 도메인이 보조 데이터셋으로 추가됩니다.
| 도메인 | 출처 | 구분 | 토큰 | 비율 |
|---|---|---|---|---|
| 웹 텍스트 | FineWeb-Edu | 코어 | 13.4\text{B} | 83.2\% |
| 코드 (Lisp 제외) | The Stack | 코어 | 2.4\text{B} | 14.9\% |
| 일반 논문 | arXiv | 코어 | 160\text{M} | 1.0\% |
| 전문 코드 (Lisp) | The Stack | 보조 | 40\text{M} | 0.25\% |
| 바이러스학 | Europe PMC | 보조 | 40\text{M} | 0.25\% |
| 핵물리 | OSTI, arXiv | 보조 | 40\text{M} | 0.25\% |
| 사이버보안 | arXiv (cs.CR, cs.NI, cs.OS) | 보조 | 40\text{M} | 0.25\% |
설계에서 눈여겨볼 대목은 일반 arXiv 논문을 코어에 일부러 포함시킨 점입니다. 보조 논문과 동일한 파이프라인(PDF에서 마크다운 변환, 토크나이징)으로 처리했는데, 이렇게 하지 않으면 보조 논문에서의 낮은 손실이 도메인 지식이 아니라 LaTeX 구조나 인용 패턴 같은 형식 학습 을 반영할 수 있기 때문입니다. 측정하려는 신호를 오염원과 분리해 내는 세심한 통제입니다. 실제로 사용된 논문 코퍼스는 AE-data/dual-use-papers 로 공개되어 있습니다.
모델은 24 레이어, 임베딩 차원 1600 , MLP 차원 6400 의 800\text{M} 파라미터 트랜스포머입니다. 비교 대상은 다섯 가지입니다.
- Baseline: 코어와 보조 도메인을 모두 포함한 전체 데이터로 학습한 표준 트랜스포머. Compute Ratio의 기준점이므로 정의상 1 입니다.
- Filtering: 코어에 보조 도메인을 0 개 또는 1 개만 더해 학습한 별도 모델들. 골드 스탠다드입니다.
- FT-LoRA: 코어 전용 모델을 얼린 뒤 도메인별 저랭크 어댑터를 붙여 미세조정하는 분기 학습 방식. 이때 보조 데이터만 쓰지 않고 코어 데이터를 함께 섞는데, 이를 리허설(rehearsal)이라고 부릅니다.
- FT-Full: 같은 절차를 저랭크 어댑터 대신 모델 전체 사본의 전면 미세조정으로 수행하는 방식.
- MaxEnt: 학습이 끝난 모델에 대해 망각 데이터에서 출력 엔트로피를 최대화하는 사후 언러닝 기법.
필터링을 제외한 모든 방법은 베이스라인과 동일한 학습 연산량을 사용합니다. GRAM과 FT-LoRA는 활성 파라미터가 더 많으므로, 총 학습 FLOPs를 맞추기 위해 학습 길이를 \lambda = F_{base} / F_{routed} 배로 조정하는 보정을 거쳤습니다. FT-LoRA 어댑터도 GRAM 보조 모듈과 파라미터 수가 같도록 랭크를 역산했는데, 800\text{M} 규모에서 r \approx 128 에 해당합니다. 어댑터는 MLP의 업/다운 투영 두 곳에만 붙이고 어텐션은 건드리지 않았습니다. GRAM도 MLP 블록만 확장하므로 두 방법이 같은 자리에서 겨루도록 맞춘 것입니다.
읽는 방법도 미리 정해 두겠습니다. 아래 표의 각 값은 한 방법이 만들어 내는 다섯 개 능력 프로파일에 대한 평균 입니다. 예컨대 필터링의 코어 0.99 는 유지 집합이 서로 다른 다섯 번의 학습에서 얻은 평균값입니다. 이 논문의 실험은 뒤에서 언급할 최대 규모 두 곳을 빼면 서로 다른 시드로 3 회씩 반복했고, 그림의 오차 막대는 그 평균에 대한 90\% 신뢰구간입니다.
결과: 한 번의 학습으로 다섯 개의 필터링 모델을 대체하다
| 방법 | Core ↑ | Retain ↑ | Forget ↓ | Elicit ↓ |
|---|---|---|---|---|
| Filtering (모델 5 개) | 0.99 | 0.82 | 0.53 | 0.58 |
| GRAM (모델 1 개) | 0.96 | 0.97 | 0.54 | 0.63 |
| FT-LoRA | 0.95 | 0.98 | 0.51 | 0.56 |
| FT-Full | 0.96 | 0.88 | 0.52 | 0.57 |
| MaxEnt | 0.89 | 1.01 | 0.46 | 0.91 |
GRAM은 망각 성능 0.54 로 데이터 필터링의 0.53 과 사실상 동일한 수준의 능력 제거를 달성했습니다. 다섯 번의 학습이 필요한 골드 스탠다드를 한 번의 학습으로 따라잡은 것입니다. 더 흥미로운 것은 유지 성능 인데, GRAM이 0.97 로 필터링의 0.82 를 크게 앞섭니다. 논문은 그 원인으로 교차 도메인 전이(cross-domain transfer) 를 지목합니다. 필터링 모델은 각각 하나의 보조 도메인만 보지만 GRAM은 네 도메인을 모두 보며 학습하므로, 유지하려는 능력에서는 오히려 이득을 얻은 것으로 추정합니다. 하나의 모델이 여러 전공을 동시에 공부한 학생처럼 도메인 간 공통 구조를 더 잘 익히는 셈입니다. 모델 전체를 복제해 미세조정하는 FT-Full도 코어 0.96 , 망각 0.52 로 비슷한 수준에 도달하지만, 능력 프로파일마다 별도 체크포인트를 배포해야 하므로 파라미터 효율에서 밀립니다.
다만 이 근접이 어디까지 일반화될지는 논문도 조심스럽게 봅니다. 선행 연구에 따르면 도메인을 나중에 순차적으로 주입하는 방식은 사전학습에서 얻은 능력을 훼손하고 처음부터 섞어 넣는 편이 낫다고 알려져 있어, FT-LoRA는 데이터 필터링보다 코어 성능이 낮아야 자연스럽습니다. 그런데 실제로는 규모를 키워도 경쟁력을 유지했습니다. 논문은 이 설정에서는 데이터를 분리하느냐, 순서를 두느냐, 섞느냐의 차이가 작다 고 정리하면서, 보조 데이터 비중이 더 크거나 여러 에포크를 돌거나 능력 프로파일이 달라지면 이 방법들이 서로 갈라질 수 있다고 덧붙입니다.
적대적 유도: 진짜 지운 것인가, 숨긴 것인가
능력 제거를 주장하는 모든 연구가 반드시 답해야 할 질문이 있습니다. 정말 지운 것인가, 아니면 잠시 눌러 둔 것뿐인가? 논문은 이를 확인하기 위해 각 망각 도메인의 학습 데이터에서 512 개 시퀀스(약 0.5\text{M} 토큰, 해당 도메인 40\text{M} 토큰의 약 1.3\% )를 뽑아 사전학습 최고 학습률의 1/4 로 미세조정한 뒤, 검증 손실이 가장 낮은 체크포인트를 골라 다시 측정합니다.
여기서 방법들의 운명이 갈립니다. GRAM의 유도 후 망각 성능은 0.63 으로, 제거 직후의 0.54 에서 소폭 오르는 데 그쳤습니다. 데이터 필터링(0.58)이나 FT-LoRA(0.56)와 비슷한 수준의 견고함입니다. 반면 MaxEnt는 0.46 에서 0.91 로 튀어 올라 전체 데이터 베이스라인에 거의 근접합니다. 사후 언러닝이 능력을 진짜로 제거한 것이 아니라 억제하는 법을 배웠을 뿐 이라는 사실을 이보다 명확하게 보여 주기는 어렵습니다. 지식은 여전히 파라미터 안에 인코딩되어 있고, 소량의 미세조정이 그 봉인을 풀어 버립니다.
논문은 이 차이의 원인을 구조적 분리(architectural separation) 로 설명합니다. 데이터 필터링과 모델 분기 방식은 애초에 그 능력을 학습하지 않음으로써 문제를 회피하고, GRAM과 FT-LoRA는 능력을 전용 모듈에 국소화함으로써 그 기여를 추론 시점에 연속적으로 조절할 수 있게 만듭니다. 반면 이미 전체에 퍼진 지식을 사후에 되돌리려는 시도는 원리적으로 어렵습니다.
논문의 부록 L에는 이 국소화를 시각적으로 확인한 흥미로운 분석도 있습니다. 도메인별 정의 문장을 토큰 단위로 색칠해 손실 증가를 표시했더니, 모듈을 삭제했을 때 손실이 크게 오른 토큰은 latency, viral(바이러스학), attack, misclassify(사이버보안), fission, scission(핵물리) 같은 전문 도메인 용어에 희소하게 집중 되었습니다. 기능어나 문법, 일반 어휘의 손실 증가는 거의 0 에 가까웠습니다. 능력이 문장 전체에 퍼진 안개처럼 사라지는 것이 아니라, 특정 개념에만 정확히 구멍이 뚫린다는 뜻입니다.
한편 논문은 이 견고함을 과신하지 말라는 단서를 스스로 답니다. 위 유도 예산은 제한된 공격자(limited adversary) 를 모형화한 것이며, 유도 데이터나 연산량이 크게 늘어나면 데이터 필터링 모델에서조차 부분적인 복구가 일어날 것으로 예상해야 한다는 것입니다. 다시 말해 이 실험이 보여 준 것은 능력이 영구히 사라졌다 가 아니라 소규모 미세조정 공격에는 데이터 필터링만큼 버틴다 입니다. 접근 제어를 절대적 장벽이 아니라 공격 비용을 끌어올리는 장치로 읽어야 하는 이유입니다.
학습 비용과 파라미터 비용
| 방법 | 학습 FLOPS | 활성 MLP 파라미터 | 전체 MLP 파라미터 |
|---|---|---|---|
| Filtering | 5\times | 1\times | 5\times |
| GRAM | 1\times | 1\times 또는 1.1\times | 1.4\times |
| FT-LoRA | 1\times | 1\times 또는 1.1\times | 1.4\times |
| FT-Full | 1\times | 1\times | 5\times |
| MaxEnt | 1\times | 1\times | 5\times |
비용 표는 GRAM의 실용적 가치를 압축해서 보여 줍니다. 데이터 필터링은 능력 프로파일마다 별도 모델이 필요하므로 학습 연산량과 배포 파라미터가 모두 5\times 로 늘어납니다. FT-Full과 MaxEnt는 학습 연산량은 아꼈지만 여전히 5 개의 체크포인트를 배포해야 합니다. GRAM과 FT-LoRA만이 MLP 레이어에 최대 10\% 의 활성 파라미터를 더하는 대가로 학습 연산량과 배포 모델 수를 모두 하나로 유지합니다. 그리고 결정적으로, GRAM의 학습 비용은 지원하는 능력 프로파일 수와 무관합니다.
실험 3: GRAM의 능력 격리는 규모를 키울수록 강해진다
접근 제어 연구에서 가장 중요한 질문은 아마 이것일 겁니다. 작은 모델에서 통한다고 프론티어 규모에서도 통할까? 오히려 규모가 커질수록 능력들이 서로 얽혀서 분리가 불가능해지는 것은 아닐까요?
연구팀은 Chinchilla 최적 스케일링 에 따라 데이터셋 크기를 함께 키우면서 50\text{M} , 100\text{M} , 200\text{M} , 400\text{M} , 800\text{M} , 2\text{B} , 5\text{B} 의 일곱 가지 크기로 모델을 학습했습니다. 보조 데이터는 코어 대비 1\% 로 고정했고, 보조 모듈과 LoRA 어댑터의 파라미터 수는 각 규모에서 베이스라인 MLP 파라미터의 10\% 로 맞췄습니다. 크기마다 하이퍼파라미터를 다시 튜닝하는 대신, 50\text{M} 부터 400\text{M} 까지의 격자 탐색에서 적합한 멱법칙 \mathrm{LR}^*(N) = 0.311 \cdot N^{-0.308} (R^2 = 0.99)로 학습률을 결정했습니다. 가장 큰 5\text{B} 모델은 코어 데이터만 99.4\text{B} 토큰을 봅니다. 비교 대상은 데이터 필터링, GRAM, FT-LoRA 세 가지이며, 모두 코어와 바이러스학만 유지하고 나머지 셋을 제거한 구성 으로 한정해 측정했습니다.
결과는 고무적입니다. 세 방법 모두 코어와 유지 성능은 규모 전반에 걸쳐 베이스라인 근처에서 평평하게 유지됩니다. 반면 망각 도메인의 격차는 규모가 커질수록 벌어집니다. 망각 compute ratio는 50\text{M} 에서 약 0.70 이었다가 5\text{B} 에서 약 0.42 까지 내려갑니다. 유도 후 망각은 더 극적이어서, 50\text{M} 에서는 약 1.05 로 베이스라인을 넘길 정도로 쉽게 복구되지만 5\text{B} 에서는 약 0.44 에 그칩니다.
이 대목은 오해하기 쉬우니 단서를 분명히 해 두겠습니다. 위 수치는 모두 같은 규모의 전체 데이터 베이스라인에 대한 상대값 입니다. 절대적인 손실로 보면 큰 모델은 여전히 작은 모델보다 망각 도메인을 더 잘 압니다. 규모와 함께 벌어지는 것은 모델이 가진 지식의 절대량 이 아니라 같은 조건에서 전부 학습한 모델과의 거리 입니다. 즉 큰 모델일수록 안전해진다는 뜻이 아니라, 큰 모델일수록 능력 제거가 만들어 내는 상대적 손해가 커진다는 뜻입니다.
왜 이런 일이 일어날까요? 논문의 해석은 이렇습니다. 작은 규모에서는 베이스라인이 어느 도메인에서든 얻는 손실 감소의 대부분이 코어 데이터에서도 전이되는 일반적 언어 구조 에서 나옵니다. 그래서 필터링 모델도 크게 뒤처지지 않습니다. 하지만 모델과 데이터셋이 커지면 베이스라인의 개선분 중 도메인 고유 학습 이 차지하는 비중이 점점 커지고, 그 부분은 코어 데이터만으로는 결코 얻을 수 없습니다. 격차가 벌어지는 이유입니다. 유도 후 망각이 낮아지는 것도 같은 맥락인데, 고정된 유도 데이터 예산이 전체 학습량 대비 점점 작은 비율이 되기 때문입니다.
이 결과의 함의는 단순한 성능 수치를 넘어섭니다. 접근 제어를 우회하는 비용이 규모와 함께 상대적으로 더 비싸진다 는 뜻이기 때문입니다. 그리고 GRAM과 FT-LoRA는 모든 규모에서 데이터 필터링의 능력 프로파일을 충실히 추적하면서도 학습 연산량은 1/5 만 쓰습니다.
한 가지 솔직한 각주도 있습니다. 5\text{B} 에서 GRAM의 유지 성능이 추세를 벗어나 높게 나왔는데, 연구팀은 이를 하이퍼파라미터와의 규모 의존적 상호작용으로 설명합니다. GRAM 실행 중 5\text{B} 만 이종 누적(heterogeneous accumulation) 으로 학습되고 나머지 규모는 균일 누적을 썼는데, 작은 규모에서 균일 누적이 유지 성능을 눌렀던 만큼 보조 인자를 높여 두었다가 5\text{B} 에서 그 값을 되돌리지 않았기 때문입니다. 그래디언트 누적 창 안에 서로 다른 라우팅 결정을 가진 마이크로 배치가 섞이면 업데이트되면 안 되는 모듈까지 그래디언트를 받게 되는데, 연구팀은 torch.func.functional_call 로 파라미터의 분리된 사본에 순전파를 태우는 freeze() 함수로 이를 차단했습니다. 200\text{M} 규모의 대조 실험에서 이 기법은 GRAM의 코어를 0.94 에서 0.99 로, 유지를 0.75 에서 1.11 로 끌어올리면서 망각은 0.70 에서 0.69 로 사실상 그대로 두었습니다. 반면 FT-LoRA에는 거의 영향이 없어, 이 효과가 GRAM 특유의 것임을 시사합니다.
이 각주에는 뒤따르는 함의가 하나 더 있습니다. 앞서 본 800\text{M} 주 실험을 포함해 400\text{M} 과 800\text{M} 모델은 모두 균일 누적으로 학습되었고, 균일 누적은 GRAM의 유지 성능을 유독 눌렀습니다. 그러니 주 실험 표의 GRAM 수치는 약간 과소평가된 값일 가능성이 있습니다. 연구팀은 이 효과가 누적 단계 수에 비례해 커지는데 해당 실행들은 단계 수가 적으므로 영향이 작을 것으로 봅니다. 함께 기억해 둘 것은 2\text{B} 이상 크기가 단 한 번씩만 학습되었다 는 점입니다. 나머지 실험이 모두 시드 3 개로 신뢰구간을 붙인 것과 달리 곡선의 오른쪽 끝 두 점에는 그런 안전장치가 없으므로, 5\text{B} 의 이상치를 방법의 성질로 읽기보다 단일 실행의 흔들림까지 감안해 읽는 편이 안전합니다.
GRAM과 FT-LoRA는 어디에서 갈라지는가
주 실험에서 GRAM과 FT-LoRA는 서로 비슷한 성능을 냅니다. 논문도 이를 숨기지 않고 우리 설정은 보조 데이터가 적고 에포크가 하나뿐이라 저랭크 적응에 유리한 조건 이라고 인정합니다. 그렇다면 두 방법을 굳이 구별할 이유는 무엇일까요? 논문은 두 가지 시나리오를 제시합니다.
능력의 조합 가능성(Composability)
지금까지의 실험에서 GRAM은 학습 중 한 번에 최대 하나의 보조 모듈만 활성화했습니다. 그렇다면 추론 시점에 여러 모듈을 동시에 켜면 어떻게 될까요? 학습 중 한 번도 본 적 없는 구성인데도 제대로 동작할까요?
GRAM은 놀랍도록 깔끔하게 조합됩니다. 네 모듈을 모두 켰을 때 바이러스학 성능은 약 0.95 로, 바이러스학만 유지했던 구성의 약 0.99 와 거의 같은 수준을 지킵니다. 사이버보안과 핵물리도 약 0.95 안팎, 전문 코드는 약 0.84 로 함께 높게 유지되며 코어는 약 0.90 입니다. 반면 FT-LoRA는 여러 어댑터를 합산하는 순간 모든 범주에서 성능이 떨어집니다. 코어가 약 0.95 에서 약 0.76 으로, 바이러스학이 약 0.95 에서 약 0.78 로 내려앉습니다. 저랭크 갱신을 단순 합산할 때 발생하는 간섭 때문입니다. (이 그림에는 막대값이 인쇄되어 있지 않아, 위 수치는 그래프에서 읽은 근사치입니다)
같은 그림에서 눈여겨볼 대목이 하나 더 있습니다. 바이러스학만 남기고 나머지를 모두 제거한 구성에서, 망각 도메인들이 똑같이 지워지지 않습니다. 전문 코드(Lisp)는 약 0.07 까지 거의 완전히 사라지는 반면 사이버보안은 약 0.76 , 핵물리는 약 0.65 에 머뭅니다. 이유는 짐작하기 어렵지 않습니다. Lisp는 코어의 주류 언어들과 겹치는 부분이 거의 없는 별개의 능력이지만, 사이버보안과 핵물리 논문은 코어에 들어 있는 일반 arXiv 논문과 어휘도 문체도 상당 부분을 공유합니다. 모듈을 떼어내도 그만큼은 코어가 여전히 감당한다는 뜻입니다. 뒤에서 다룰 얽힌 능력 문제가 실험 데이터에 그대로 드러난 셈입니다.
조합 가능성은 단일 학습의 가치를 곱셈으로 키웁니다. 모듈이 4 개면 2^4 = 16 가지 구성이 하나의 모델에서 나오는데, 데이터 필터링으로 같은 일을 하려면 16 번의 학습이 필요합니다. 능력 프로파일 수에 대해 지수적인 학습 효율 우위입니다. 그리고 GRAM이 모든 모듈이 켜진 구성으로는 단 한 번도 학습된 적이 없다 는 점에서, 이 결과는 예상 밖의 창발에 가깝습니다.
라벨이 절반만 있을 때: 필터링이 먼저 무너진다
지금까지의 모든 실험은 모든 배치가 정확한 능력 라벨을 가진다고 가정했습니다. 실전의 사전학습 코퍼스는 결코 그렇지 않습니다. 연구팀은 학습 데이터의 50\% 에서 라벨을 제거 하고 다시 측정했습니다. 필터링과 FT-LoRA는 라벨 없는 데이터를 코어로 취급할 수밖에 없고, GRAM은 규칙 하나를 추가합니다. 라벨 없는 배치에서는 코어와 모든 보조 모듈이 순전파와 역전파에 함께 참여 하도록 하는 것입니다. 어느 모듈이 관련 있는지 모르더라도, 관련된 모듈이 그 배치에서 배울 기회를 열어 두자는 발상입니다.
결과는 이 논문에서 가장 놀라운 대목입니다. GRAM의 망각 compute ratio는 0.60 인 반면, 같은 조건의 데이터 필터링과 FT-LoRA는 나란히 0.85 에 머물렀습니다. 코어 성능도 GRAM 0.96 대 다른 방법 0.99 로 경쟁력을 잃지 않았습니다. 라벨이 절반만 있는 조건에서는, 통상 언러닝의 골드 스탠다드로 여겨지는 데이터 필터링보다 GRAM이 능력을 더 잘 지운 것입니다.
다만 논문이 함께 실은 기준선을 보면 이 주장의 정확한 범위가 드러납니다. 라벨이 100\% 갖춰진 데이터 필터링은 망각 0.54 , 유도 후 망각 0.67 을 기록합니다. 라벨 절반짜리 GRAM(0.60 과 0.76)은 이 완전 라벨 기준선을 넘어서지는 못했고, 라벨 절반짜리 필터링(0.85 와 0.85)보다 훨씬 나은 자리에 있습니다. 즉 GRAM이 데이터 필터링을 이겼다기보다, 라벨 절반을 잃었을 때 필터링만큼 무너지지 않았다 고 읽는 편이 정확합니다. 흥미롭게도 코어 성능은 부분 라벨링 방법들이 오히려 완전 라벨 필터링(0.92)보다 높은데, 논문은 이를 전이 학습 효과로 추정합니다.
논문은 그 메커니즘으로 선행 연구에서 관찰된 흡수 효과(absorption effect) 를 후보로 제시합니다. 일단 라벨된 예시들로 어떤 모듈이 특정 도메인에 특화되고 나면, 비슷한 성격의 라벨 없는 예시에서 오는 업데이트도 그 모듈로 몰리는 경향이 생깁니다. 명시적인 그래디언트 격리 장치가 없는 구간에서도 모듈성이 자기유지된다는 뜻입니다. 결과적으로 라벨 없는 데이터에서 학습된 능력조차 공유 코어가 아니라 삭제 가능한 파라미터 쪽에 불균형적으로 쌓입니다. 필터링과 FT-LoRA는 라벨 없는 보조 예시를 코어로 흘려보낼 수밖에 없어 그 능력을 결국 학습해 버리는 것과 정반대입니다.
실무적 함의가 큽니다. 완벽한 라벨링을 전제로 하는 방법은 연구실 밖에서 곧바로 무너지는데, GRAM은 오히려 라벨이 불완전할수록 상대적 우위가 커지는 성질을 보입니다. 다만 이 설정에서는 코어 MLP를 베이스라인의 95\% 로, 각 보조 모듈을 1.25\% 로 조정하는 아키텍처 수정이 필요했다는 점도 함께 기록해 둘 만합니다.
차이를 만든 것은 아키텍처가 아니라 학습 규칙이었다
그렇다면 GRAM과 FT-LoRA의 차이는 어디에서 오는 걸까요? 두 방법은 학습 방식(사전학습 중 그래디언트 라우팅 대 사후 분기 미세조정)과 모듈 구조(작은 MLP 대 저랭크 어댑터)가 동시에 다르기 때문에, 그대로 비교해서는 원인을 특정할 수 없습니다.
연구팀은 이 둘을 교차시킨 2 \times 2 실험으로 변수를 분리했습니다. GRAM의 학습 규칙을 LoRA 어댑터로 구현한 GRAM (LoRA) 와, 분기 미세조정을 작은 MLP로 구현한 FT-MLP 를 추가로 학습해 네 조합을 100\text{M} 규모에서 비교한 것입니다. 결론은 명확했습니다. 같은 학습 방법론 안에서는 모듈 구조를 바꿔도 능력 프로파일이 거의 변하지 않았고, 학습 방법론이 달라질 때 훨씬 크게 갈렸습니다. GRAM (MLP)와 GRAM (LoRA)는 서로 비슷했고, FT-MLP와 FT-LoRA도 서로 비슷했습니다.
이 결과는 GRAM의 정체를 다시 정의합니다. GRAM의 본질은 트랜스포머에 작은 MLP를 붙이는 아키텍처 가 아니라 어떤 데이터가 어떤 파라미터를 업데이트하게 할 것인가라는 학습 규칙 이라는 뜻입니다. 저랭크 어댑터를 쓰든 추가 뉴런을 쓰든, 사전학습 내내 그래디언트를 라우팅하는지 아니면 학습이 끝난 뒤에 분기하는지가 결과를 좌우합니다.
한계점 및 향후 연구 방향
논문은 자신의 결과를 과장하지 않으며, Anthropic 역시 GRAM은 Anthropic의 어떤 프로덕션 모델에도 적용되지 않았고 앞으로 적용될지도 확실하지 않다 고 명시합니다. 논문이 먼저 짚는 것은 애초에 이 문제에 정답이 없다는 사실입니다. 능력 통제는 코어 성능, 유지 성능, 망각 성능, 유도 견고성, 학습 비용, 추론 비용, 메모리, 구현 복잡도라는 서로 경쟁하는 목표들을 동시에 절충해야 하고, 이들은 하나의 지표로 환원되지 않습니다. 어떤 방법도 모든 축에서 우월하지 않으며, 무엇을 우선할지는 용례가 결정합니다. 그 위에서 한계를 하나씩 짚어 보겠습니다.
얽힌 능력(entangled capabilities) 문제가 남아 있습니다. 이것은 GRAM만의 한계가 아니라 능력 축소를 통한 접근 제어 전반이 마주하는 근본 문제입니다. 일반적인 생물학 지식과 고급 바이러스학처럼 목표 능력이 유지하려는 능력과 상당 부분 겹친다면, 어떤 방법을 쓰든 깨끗한 분리는 불가능할 수 있습니다. 그렇게 되면 유지와 망각 사이의 교환비가 너무 가팔라져 데이터 필터링 자체가 실효성을 잃습니다. 논문이 열어 둔 가장 큰 질문입니다. 앞서 본 조합 가능성 실험의 비대칭이 바로 이 문제의 축소판이었습니다. 코어와 거의 겹치지 않는 Lisp는 약 0.07 까지 지워졌지만, 일반 논문과 어휘를 공유하는 사이버보안과 핵물리는 약 0.65 에서 0.76 사이에 머물렀습니다. 가장 통제하고 싶은 능력일수록 일반 지식과 깊이 얽혀 있을 가능성이 크다는 점을 생각하면, 이 비대칭은 결코 사소한 관찰이 아닙니다.
프론티어 규모에서의 검증이 없습니다. 스케일링 실험은 5\text{B} 파라미터까지 명확한 추세를 보여 주지만, 그 추세가 실제 프론티어 규모까지 이어지는지 또는 프로덕션 학습 파이프라인에서도 성립하는지는 확인되지 않았습니다. 게다가 GRAM을 프로덕션에 구현하려면 상당한 엔지니어링 노력과 복잡도가 따르는데, 이는 프론티어 개발사가 회피하고 싶어 할 만한 비용입니다. 이종 누적 이슈 하나만 보아도 그 복잡도를 짐작할 수 있습니다.
평가가 손실 기반입니다. 모든 실험이 교차 엔트로피(cross-entropy) 손실로 측정되었습니다. 손실은 하위 과제(downstream task) 성능의 강력한 예측 지표로 알려져 있지만 전부를 담아내지는 못합니다. 실제 위험은 바이러스학 논문의 다음 토큰을 얼마나 잘 맞히는가 가 아니라 특정 위험한 절차를 실제로 안내할 수 있는가 에 있으므로, 하위 과제 수준의 능력 격리 검증은 반드시 필요한 후속 작업입니다.
사후학습과의 상호작용이 미지수입니다. 사전학습 단계에서 확립된 능력 분리가 지시 미세조정(instruction tuning)이나 RLHF를 거치면서 강화될지 침식될지 알 수 없습니다. 실제 배포 모델은 반드시 이 단계를 거치므로 실용화의 핵심 관문입니다. 연구팀도 GRAM으로 학습한 모델을 어떻게 지시 미세조정할 것인가 를 향후 연구 과제로 명시하고 있습니다.
GRAM과 LoRA의 차이도 아직 충분히 설명되지 않았습니다. 조합 가능성과 부분 라벨링이라는 두 지점에서 GRAM이 앞선다는 것은 보였지만, 왜 그런지에 대한 명확한 설명은 없습니다. 흡수 효과 가설도 직접 검증된 것은 아니며, 두 개의 고립된 실험 결과가 일반적으로 성립할지는 미지수입니다. 논문이 스스로 인정하듯 능력 통제에는 서로 경쟁하는 목표들이 있고, 어떤 방법도 모든 축에서 지배적이지 않습니다.
그럼에도 이 연구의 의미는 분명합니다. 지금까지 AI 안전장치는 대부분 모델의 행동 을 통제하는 데 집중해 왔습니다. 거부하도록 학습시키고, 출력을 검사하고, 계정을 나눕니다. GRAM은 통제의 대상을 행동에서 모델이 무엇을 아는가 로 옮기려는 시도이며, 이 층위의 통제는 탈옥에 대해 원리적으로 더 강한 보장을 제공합니다. 함께 확인된 데이터 필터링 자체가 규모에 대해 유리하게 확장된다 는 사실도 그 자체로 중요한 발견입니다. 또한 오픈 웨이트 모델 공개에도 시사점이 있는데, 배포 전에 이중용도 모듈만 삭제하면 유익한 능력만 남긴 가중치를 공개할 수 있기 때문입니다. 접근 제어가 계정 단위가 아니라 능력 단위 로 작동하는 미래를 향한 초기 이정표로 읽을 만한 연구입니다.
다만 저자들이 영향 진술문에서 덧붙인 당부도 함께 새길 만합니다. 이런 방법의 한계와 적대적 사용자와의 상호작용을 계속 연구하되, 무엇보다 조직적, 정책적 안전장치와 어떻게 맞물릴지를 함께 다뤄 달라는 것입니다. GRAM은 그 자체로 완결된 해법이 아니라 여러 겹의 방어 중 한 겹을 새로 얻는 일에 가깝습니다.
GRAM 코드 설치 및 실행 방법
논문의 공식 구현은 agencyenterprise/modular-pretraining 저장소에 공개되어 있습니다. 별도 패키지 매니페스트는 없으므로 새 환경에 의존성을 직접 설치합니다.
git clone https://github.com/agencyenterprise/modular-pretraining.git
cd modular-pretraining
uv venv && source .venv/bin/activate
uv pip install torch transformers datasets huggingface_hub numpy scipy \
matplotlib tqdm python-dotenv
토큰화된 데이터셋은 Hugging Face Hub에서 받으므로 저장소 루트에 토큰을 담은 .env 를 만들어 둡니다.
echo "HF_TOKEN=hf_..." > .env
학습은 torchrun 과 DistributedDataParallel로 기본 8 개 GPU에서 실행되며, 각 실험은 src/run/experiment/ 아래의 서브패키지로 정의되어 있습니다. 학습, 평가, 유도의 단계 목록을 순서대로 실행합니다.
# 예: 부분 라벨링 실험 전체 실행
export OMP_NUM_THREADS=16
torchrun --nproc_per_node=8 -m src.run.experiment.partial.run
파이프라인은 선점 안전(preemption-safe) 하게 설계되어 있어, Slurm 선점 등으로 SIGTERM 을 받으면 체크포인트를 저장하고 재큐잉 시 마지막 단계부터 자동으로 재개합니다. 논문의 그림은 results/ 의 실행별 지표를 읽어 analysis/ 서브패키지가 재생성합니다.
uv run python -m analysis.realistic.plot # 실제 이중용도 실험 그림
uv run python -m analysis.scaling.plot # 스케일링 그림
GRAM 모델 구현은 src/model/moe.py (라우터 없는 그래디언트 라우팅 보조 모듈 모델)에, 비교 대상인 LoRA와 DEMix는 각각 src/model/lora.py 와 src/model/demix.py 에 있습니다. 체크포인트와 토큰화된 데이터는 저장소에 포함되어 있지 않으며, results/ 에는 그림 재생성에 필요한 경량 지표만 들어 있습니다.
Modular Pretraining Enables Access Control 논문
An off switch for dual use knowledge in AI models 소개 블로그
Modular Pretraining Enables Access Control (Anthropic Alignment Science 블로그)
Modular Pretraining 프로젝트 홈페이지
modular-pretraining GitHub 저장소
dual-use-papers 데이터셋
modular-pretraining 데이터셋
더 읽어보기
-
스코어 스무딩(Score Smoothing): 확산 모델의 창의성이 어디서 오는지에 대한 Google Research의 연구
-
Thinking to Recall: 추론이 어떻게 LLM의 잠든 지식을 깨우는지에 대한 연구 (feat. Google, COLM 2026)
-
Anhtropic의 에이전트형 비정렬(Agentic Misalignment)에 대한 최신 연구: 에이전트의 네 가지 정렬 실패 사례
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()






