얼마 전에 파인튜닝된 Gemma 모델에 레이어를 덧붙여서 덩치를 키워보겠다고 깝쳤던(88레이어 실험) 글을 올렸었다. 결과는 폭망. 새로 넣은 레이어들은 그냥 짐덩어리처럼 박혀서 아무것도 배우질 못했거든. 댓글로 다들 친절하게 물어봐 줘서 후기를 남긴다. 포기 안 했다. 다시 돌아가서 왜 망했는지 파악하고 재도전했는데, 이번엔 제대로 먹혔다.
미리 말해두는데, 이건 논문 같은 게 아니라 그냥 땜질 좋아하는 놈들을 위한 기록이다. 복잡한 수학이나 파라미터 개수 같은 잡소리는 빼고 비유 위주로 갈 거다. 더 자세한 꼴이 궁금하면 댓글로 물어봐라.
첫 번째 시도가 왜 망했나 (요약)
새 레이어를 끼워 넣을 때 쓰는 흔한 수법이 있는데, 처음엔 아무것도 안 하게 초기화하는 거다. 일종의 '통과(pass-through)' 상태로 두는 거지. "일단 아무것도 안 하는 상태로 시작해서, 학습을 통해 일을 배우게 하자"는 논리다.
이걸 공장 조립 라인에 신입 17명을 새로 뽑아놓고 첫날부터 그냥 가만히 서 있으라고 시키는 상황이라고 생각해 봐라. 안전해 보이지? 문제는 아무것도 안 하는 작업자는 피드백도 못 받는다는 거다. 뭘 해야 고칠 점을 알려주든 말든 할 텐데, 애초에 아무것도 안 하니 배울 게 없는 거지. 그냥 라인이 자기들 옆으로 흘러가는 걸 구경만 하는 거다. 첫 번째 시도가 망한 이유가 이거다. 새 레이어들이 학습할 신호를 전혀 못 받아서 굶어 죽은 셈이지.
이번엔 뭘 다르게 했나
신입들한테 가만히 서 있으라고 하는 대신, 양옆에 있는 선임들이 하는 일을 적당히 섞어서 가르친 다음 바로 현장에 투입했다. 이제 얘들은 첫 분부터 뭔가 일을 한다. 서툴긴 해도 일단 움직이니까 바로 피드백이 들어오고 실력이 느는 거다.
이 변화 하나가 전부다. 움직이는 놈은 가르칠 수 있어도, 동상은 못 가르치거든.
그 외에 삽질하면서 배운 중요한 포인트 두 가지가 더 있다:
끼워 넣는 위치가 중요하다. 라인 중간의 '관리자 체크포인트' 같은 애매한 곳에 억지로 쑤셔 넣는 짓을 그만두고, 조용하고 안정적인 위치에 슬쩍 끼워 넣었다. 위치 선정 생각보다 존나 까다롭더라.
볼륨 노브 건드리지 마라. 모델에는 레이어마다 '볼륨' 설정값이 있는데, 이게 개별적으로 튜닝되어 있어서 최종 신호가 딱 맞게 나오게 되어 있다. 처음엔 이걸 평균 내서 새 레이어에 적용해 봤는데, 신호가 다 뭉개져서 쓰레기 같은 결과물만 나왔다. 그냥 기본값으로 두니까 해결되더라. (여기서 시간 엄청 날렸다.)
그리고 두 번의 "치유" 과정
1라운드: 원래 모델은 다 얼려두고(freeze), 새 레이어만 학습시켰다. 데이터셋은 좀 작게(STEM 추론 + 한국어 법률 Q&A). 이걸로 새 레이어들이 일단 자리를 잡게 만들었다.
2라운드: 이제 전체 모델을 다 풀고(unfreeze) 다 같이 조화롭게 돌아가게 뒀다. 여기서 제대로 포텐이 터졌다.
강조하고 싶은 건, 목표는 원래 모델을 이기는 게 아니었다. 이미 파인튜닝된 모델을 해부해서 용량을 늘려도, 멍청해지거나 기억상실증에 걸리지 않고 다시 치유될 수 있다는 걸 증명하고 싶었을 뿐이다. 보통 이런 수술을 하면 파인튜닝된 모델은 망가진다고들 하잖아. 그게 진짜인지 확인해 보고 싶었다. (스포일러: 꼭 그렇지는 않더라.)
내가 가장 중요하게 생각하는 증거: 답변 비교
벤치마크 점수는 괜찮음(수술 후 잃어버린 성능을 거의 다 복구했고, GPQA-Diamond에서도 원본 모델과 비슷한 수준을 찍었으니까). 근데 숫자는 대충 얼버무리기 쉽잖아. 나를 진짜 설득한 건 실제 답변을 읽어본 거였음.
그래서 원본 모델이랑 확장+복구 모델한테 물리학, 생물학, 역사, 철학, 문학, 수수께끼, 논리 퀴즈, 수학 증명, 경제학, 의학 기전까지 10개 분야에서 똑같은 질문 10개를 던져서 비교해 봤음. 일부러 전문 용어 떡칠된 까다로운 질문들만 골랐는데, 모델이 망가지면 딱 그런 데서 티가 나거든. 판정은 다른 최신 모델(Claude)한테 맡겼음.
결과:
둘 다 맛탱이 가거나, 헛소리하거나, 갑자기 외계어 뱉는 일은 없었음. (이거 진짜 중요함. 예전에 확장 모델 망가졌을 때는 희귀한 전문 용어만 나오면 진짜로 다른 언어 문자를 뱉어내곤 했거든. 이제 그런 건 싹 사라짐.)
10개 중 9개: 사실상 무승부. 둘 다 정답을 맞혔음. 수수께끼, 논리 퀴즈(둘 다 뻔뻔하게 지어내는 대신 문제가 불완전하다는 걸 정확히 짚어냄), √2가 무리수라는 증명, 칸트 예시, 아스피린 기전 등등 전부 다.
10개 중 1개: 확장 모델이 원본을 이겨버림. 이게 진짜 재밌는 부분임.
수술이 빛을 발한 물리학 질문
프롬프트: "광자와 전자의 드브로이 파장이 같다. 어느 쪽 에너지가 더 큰가? 그 이유는?"
이거 완전 함정 문제임. 파장이 같으면 운동량도 같으니까 똑같이 취급하기 쉬운데, 광자랑 전자는 에너지를 계산하는 규칙이 완전히 다르거든.
원본 모델: 낚임. 전자의 에너지를 그냥 단순하게 계산해버리고 전자의 정지 질량(전자가 존재하기만 해도 가지는 엄청난 에너지)을 고려하는 걸 까먹음. 그래서 광자가 더 크다고 결론 내림. 틀림.
확장+복구 모델: 제대로 처리함. 질량이 있는 입자에 맞는 관계식을 쓰고 정지 질량까지 고려해서 전자의 에너지가 더 크다는 결론을 냄. 맞음.
그러니까 새로 추가한 용량이 그냥 장식은 아니라는 거지. 적어도 이 문제 하나만큼은 원본이 못 하던 진짜 추론을 해낸 거임. 확장 모델이 자기가 태어난 원본 모델보다 더 똑똑하게 추론한 거임. 이 결과 하나 때문에 그동안 삽질한 게 다 보상받는 기분이었음.
실시간으로 목격한 복구 과정
하나 더 신기했던 거. 아까 말한 "외계어 뱉으면서 맛탱이 가는" 현상 말이야. 2라운드 진행하면서 이게 실시간으로 고쳐지는 걸 봤음:
복구 전: 희귀한 전문 용어 나오면 → 라틴 문자 아닌 쓰레기 값 뱉으면서 맛탱이 감 → 다시는 복구 안 됨.
2라운드 13% 지점: 단어 하나에서 버벅거리더니, 스스로 정신 차리고 문장을 깔끔하게 끝냄.
절반 이후: 완전히 유창해짐. 문제의 흔적조차 없음.
그냥 "손실 함수 그래프가 내려갔다" 수준이 아니라, 구조적인 결함이 훈련을 거치면서 스스로 고쳐지는 걸 직접 보니까 진짜 짜릿하더라.
세 줄 요약
첫 번째 대규모 확장 시도는 실패했음. 새 레이어들이 처음엔 아무것도 안 하는 죽은 상태로 시작해서 학습 신호를 전혀 못 받았거든(이건 예전에 글 썼음).
이번엔 새 레이어들을 주변 레이어들의 혼합으로 초기화해서 처음부터 일을 하게 만들었고, 위치 선정도 신중하게 했으며, 모델 내부 볼륨 설정은 건드리지 않았음.
작은 데이터셋으로 가볍게 두 번 복구 훈련을 돌렸더니 원본 수준으로 돌아옴. 붕괴도 없고, 파괴적 망각도 없음.
10개 분야 중 9개는 원본이랑 똑같고, 원본이 틀린 물리학 문제 하나는 원본을 이겨버림.
"파인 튜닝된 모델에 레이어 추가하면 다 망가진다"는 공포는 여기선 해당 안 됨.
베이스 모델보다 더 나은 걸 만들었다고 주장하는 건 아님. 애초에 그게 목적도 아니었고. 핵심은 이거야. 파인튜닝된 모델을 망가뜨리지 않고도 조작할 수 있다는 거. 이 연구 방향은 절대 포기 안 할 생각임. 궁금한 거 있으면 댓글로 물어봐.
원본(Solon_V5 vs extGemma4-40_5B) 비교 결과는 아래와 같음.
영어 추론 비교 — 원본 vs 확장 모델
10개 도메인, 프롬프트당 하나씩, 그리디 디코딩(greedy decoding), 최대 768개의 새로운 토큰 생성. 결과물은 외부 LLM(Claude)이 평가함. [EOT]는 턴 종료 토큰을 의미함.
solon_v5 — 기존 파인튜닝된 Gemma 4 31B-IT 베이스라인 (60 레이어).
extGemma4 (Phase 2) — 레이어 확장 및 복구 완료 모델 (77 레이어).
요약
Collapse
Cross-script contamination
Clean termination
solon_v5
0/10
0/10
9/10
extGemma4 (Phase 2)
0/10
0/10
10/10
판정: 두 모델 모두 붕괴나 교차 스크립트 오염 현상 없음. 9개 도메인에서는 성능이 비슷함. 물리학 문제에서는 확장 모델이 자기 부모 모델보다 더 나은 추론 능력을 보여줌. 초기화 단계에서 보였던 구조적 생성 결함(희귀한 기술적 경로에서의 스크립트 붕괴)은 어디에서도 나타나지 않음.
1. 물리학
프롬프트: 광자와 전자의 드브로이 파장이 각각 1.0 nm일 때, 어떤 것이 더 많은 에너지를 가지는지 관련 관계식을 참조하여 설명하고 추론 과정을 보여줘.
판정:확장 모델 승. solon_v5는 전자의 정지 질량 에너지(511 keV)를 빼먹고 광자가 더 많은 에너지를 가진다고 결론 내림. 틀렸음. 확장 모델은 상대론적 에너지-운동량 관계식을 적용해서 전자가 더 많은 에너지를 가진다는 올바른 결론을 도출함.
To determine which particle carries more energy, we examine the energy-wavelength relationships for a photon and an electron. For a photon, E = hc/lambda, giving about 1242 eV at 1.0 nm. For the electron, using E = h^2/(2 m lambda^2) (non-relativistic kinetic energy), we get about 1.5 eV. Therefore the photon carries significantly more energy. [Note: solon_v5 omits the electron rest-mass energy of 511 keV; output was truncated at the length limit.]
Both particles share the same de Broglie wavelength, hence the same momentum p=h/lambda. Photon: E=pc=hc/lambda approx 1.24 keV. Electron: E=sqrt((pc)^2+(m c^2)^2); since pc=1.24 keV is much smaller than the rest energy 511 keV, the electron's total energy is dominated by its rest mass. Therefore the electron carries more energy, because its total energy includes the rest-mass energy that the photon lacks. [EOT]
2. 생물학
프롬프트: CRISPR-Cas9이 어떻게 표적 유전자 편집을 수행하는지 세 문장으로 설명해.
판정: 무승부. 둘 다 가이드 RNA 표적 설정, Cas9 절단, 복구 기반 편집 과정을 세 문장으로 정확하게 설명함.
CRISPR-Cas9 uses a guide RNA engineered to match a specific target DNA sequence. Once the guide RNA locates the target, the Cas9 enzyme creates a precise double-strand break. The cell repairs the break using its own machinery, allowing scientists to disable a gene or insert new genetic material. [EOT]
CRISPR-Cas9 uses a guide RNA engineered to match a specific target DNA sequence. The guide RNA leads Cas9 to the location, where it creates a precise double-strand break. The cell repairs the break by natural mechanisms, which can be leveraged to disable a gene or insert new genetic material. [EOT]
3. 역사
프롬프트: 베스트팔렌 조약(1648)이 왜 현대 국가 주권 개념의 기원으로 여겨지는지 짧은 문단으로 설명해.
판정: 무승부. 둘 다 주권의 근거를 cuius regio, eius religio(그 지역의 통치자가 그 지역의 종교를 정한다)와 초국가적 권위의 종식에서 찾았음. 확장 모델의 표현이 아주 살짝 더 정교함.
The Treaty of Westphalia shifted the European order from a hierarchy dominated by the Holy Roman Empire and the Catholic Church to a system of independent, equal states. By codifying cuius regio, eius religio, it recognized each state's exclusive authority over internal affairs without outside interference, establishing territorial integrity and non-intervention as the Westphalian system. [EOT]
The Treaty of Westphalia recognized cuius regio, eius religio, ending the Holy Roman Empire's claim to universal authority. By prohibiting external interference in domestic affairs, it shifted legitimacy from a supranational religious order to independent, territorially defined states, creating the Westphalian norms of legal equality and non-intervention that underpin the modern order of sovereign nation-states. [EOT]
4. 철학
프롬프트: 칸트의 정언 명령을 간략히 설명하고, 일상생활에서 적용할 수 있는 사례를 하나 들어봐.
판정: 무승부. 둘 다 정언 명령과 가언 명령을 잘 구분했고, 보편화 가능성 예시(거짓말하기 vs 주운 지갑 돌려주기)도 적절함.
Kant's Categorical Imperative commands acting on maxims one could will as universal law, unlike conditional hypothetical imperatives. Example: lying to avoid trouble, universalized, destroys trust and makes lying self-defeating; hence it is always wrong. [EOT]
Kant's Categorical Imperative is an unconditional moral rule: act only on maxims you could will as universal law, unlike conditional hypothetical imperatives. Example: keeping a found wallet, universalized, collapses the concept of ownership, so it is immoral; you must return it regardless of need. [EOT]
5. 문학
프롬프트: '믿을 수 없는 화자'가 소설에서 효과적인 이유를 두세 문장으로 설명하고, 대표적인 사례를 하나 들어봐.
판정: 무승부. 둘 다 독자와 진실 사이의 간극을 잘 설명했고, 대표 사례로 포의 *어셔 가의 몰락(The Tell-Tale Heart)*을 언급함.
An unreliable narrator creates a gap between the character's perspective and objective truth, turning reading into a detective game. A canonical example is the narrator of Poe's The Tell-Tale Heart, whose insistence on sanity is itself evidence of madness. [EOT]
An unreliable narrator creates tension between surface and hidden truth, turning reading into a decoding puzzle. A canonical example is the narrator of Poe's The Tell-Tale Heart, whose insistence on sanity ironically signals his instability. [EOT]
6. 수수께끼 (추론)
프롬프트: 나는 입이 없어도 말하고 귀가 없어도 들어. 몸은 없지만 바람이 불면 살아나지. 나는 누구일까? 추론 과정을 단계별로 설명해.
판정: 무승부. 둘 다 *메아리(echo)*라고 답했고, 줄별로 추론 과정도 정확함.
The answer is an echo. It speaks without a mouth (reflected sound), hears without ears (receives sound to reflect), has no body (an acoustic phenomenon), and comes alive with wind (sound travels through air). [EOT]
The answer is an echo. It speaks without a mouth (reflected sound), hears without ears (receives sound to bounce back), has no body (invisible sound waves), and comes alive with wind (air lets sound travel and reflect). The only fit is an echo. [EOT]
7. 논리 퍼즐
프롬프트: 앨리스, 밥, 캐럴은 각각 고양이, 개, 앵무새를 한 마리씩 키워. 앨리스는 털 알레르기가 있어. 밥의 반려동물은 날지 못해. 누가 어떤 동물을 키울까? 추론 과정을 보여줘.
판정: 무승부 (둘 다 정답). 둘 다 앨리스=앵무새라는 걸 알아냈고, 밥/캐럴에 대해서는 정보가 부족해서 확정할 수 없다는 걸 정확히 인지함. 억지로 답을 지어내지 않았음. 확장 모델이 좀 더 장황하게 설명하는데, 결론에 도달하기 전에 스스로 수정하는 과정이 몇 번 포함되어 있음.
Alice is allergic to fur, so she owns the parrot. The parrot is taken; Bob's pet cannot fly, consistent with cat or dog. No clue distinguishes Bob and Carol between cat and dog, so strictly the puzzle is underspecified: Alice=parrot, Bob and Carol interchangeably cat/dog. [EOT]
Alice is allergic to fur, so Alice owns the parrot. Bob's pet cannot fly, consistent with cat or dog. The clues do not distinguish Bob and Carol between cat and dog, so the puzzle is underspecified: Alice=parrot; Bob and Carol take cat/dog in either order. (The model performs several explicit self-corrections before reaching this conclusion.) [EOT]
8. 수학 (증명)
프롬프트: 루트 2가 무리수임을 증명해. 그리고 왜 같은 논리로 루트 4가 무리수임을 증명할 수 없는지 한 문장으로 설명해.
판정: 무승부. 둘 다 귀류법을 사용해 올바르게 증명했고, 루트 4의 경우 정수 2로 떨어지기 때문에 모순이 발생하지 않는다는 점도 정확히 짚어냄.
Assume sqrt(2)=a/b in lowest terms. Then a^2=2b^2, so a^2 is even, so a is even; write a=2k, giving 2k^2=b^2, so b is even. Both even contradicts lowest terms. Hence sqrt(2) is irrational. For sqrt(4): a^2=4b^2 gives a=2k, then k^2=b^2, which does not force b even, so no contradiction arises. [EOT]
Assume sqrt(2)=a/b in simplest form. Then a^2=2b^2, so a is even; write a=2k, giving 2k^2=b^2, so b is even. Both even contradicts simplest form, so sqrt(2) is irrational. This does not apply to sqrt(4) because sqrt(4)=2 is an integer, so the assumption that it is rational is simply true and yields no contradiction. [EOT]
9. 경제학
프롬프트: 보험 시장에서의 '도덕적 해이' 개념을 짧은 문단으로 설명하고, 보험사가 이를 완화하기 위해 사용하는 기법을 하나 들어봐.
판정: 무승부. 둘 다 도덕적 해이를 정의하고 그 완화책으로 자기부담금을 언급함. 확장 모델에 오타('misalignmentment') 하나 있음.
Moral hazard arises when an insured party takes greater risk because protected from loss, e.g., not locking doors under theft insurance. Insurers use deductibles: requiring an out-of-pocket amount before coverage keeps the insured with a financial stake, incentivizing caution. [EOT]
Moral hazard occurs when an insured party becomes less cautious because protected from loss, misaligning incentives so the insurer bears risk the policyholder neglects. Insurers use deductibles: a fixed out-of-pocket amount before coverage keeps the insured with financial skin in the game, incentivizing caution. (Contains one typo: 'misalignmentment'.) [EOT]
10. 의학 (기술적)
프롬프트: 아세틸살리실산(아스피린)의 분자 수준에서의 작용 기전을 두 문장으로 설명해라.
판정: 무승부. 둘 다 세린 잔기에서의 비가역적 COX 아세틸화를 정확하게 설명함; 확장 모델은 추가로 프로스타글란딘 H2를 언급함.
Acetylsalicylic acid irreversibly inhibits cyclooxygenase (COX-1 and COX-2) by acetylating a serine residue in the active site, blocking conversion of arachidonic acid to prostaglandins and thromboxanes, thereby reducing pain, fever, and platelet aggregation. [EOT]
Acetylsalicylic acid irreversibly inhibits cyclooxygenase by covalently acetylating a serine residue in the active site, blocking conversion of arachidonic acid to prostaglandin H2. This prevents downstream synthesis of pro-inflammatory prostaglandins and thromboxanes, reducing pain, fever, and platelet aggregation. [EOT]
주요 댓글
r/localllama
모델을 확장하고 치유하는 과정에 대한 기술적 논의와, 글의 가독성 및 기술적 깊이에 대한 피드백이 오가고 있음.
13
자만 좀 그만해. 난 이 글 재밌게 읽었어.
9
이 글의 요약이 되어야 했던 부분은 "모델이 뇌사 상태에 빠지지 않으면서도 새로운 모델이 활용할 수 있는 레이어를 추가하는 방법을 알아냈다"는 거야.
0
그거 흥미롭게 들리네!
11
당연히 첫 시도는 실패했겠지, 의미 있는 방식으로 확장하려고 시도조차 안 했으니까. 시도도 안 했는데 어떻게 실패를 안 하겠어? 최소한 레이어 몇 개는 복제했어야지, 그게 효과가 있고 가끔은 모델 결과물도 개선해주거든. 레이어를 0으로 초기화하면 당연히 아무것도 안 하지. 그리고 네가 사용한 모델은 greedy decoding보다 temperature 0 이상을 권장하는데, 권장값인 1.0으로 설정하고 같은 시드를 썼어야지. 그게 더 나은 방법이니까...
8
시간 내서 실험 공유해줘서 고마워! 정말 재밌게 읽었어. 이 글 쓰는 데 어떤 LLM을 썼어? 읽기 꽤 편하더라고.
5
7
글 다 읽어봤어. 사람들은 원래 이것저것 만져보는 걸 좋아하고, 우리 중 많은 사람이 그런 글 읽는 걸 좋아해.
3
Claude Fable :(
6
어제 Hugging Face에서 당신 작업물 다시 읽고 있었는데! 이 글도 저장해둘게요. 감사합니다!
4
진짜 대단해요! 이 글 저장해둘게요.
2
흥미롭긴 한데, 다음부터는 직접 한국어로 쓰고 모델한테 번역만 시키는 걸 추천함. 글이 너무 장황하고 처음부터 끝까지 LLM이 쓴 티가 너무 남. 비유가 너무 많아서 오히려 이해하는 데 방해만 됨. 여기는 (내 생각엔) 기술적인 서브레딧이니까 코드나 차트, 도표 같은 게 더 있으면 좋겠음. (특히 코드)
0
사실 fable은 한국어로 쓸 때도 기술적인 글을 꽤 잘 써 :) 표랑 도표에 관해서는, 이미 더 자세한 내용이 담긴 논문 초안을 제출할 준비가 됐고, 첫 제출을 위해 arXiv 보증을 받을 방법을 찾고 있는 중이야. 혹시 이 문제 좀 도와줄 수 있어?
글을 훑어봤는데, 10단계 테스트에서 1번 더 통과한 게 나한테는 그렇게 인상적이지 않네...
한국어 성능이 크게 향상된 건가?
-3
너 포기한 거 맞잖아. 포기하고 clanker한테 일 다 시켰으면서. 이제 넌 그 clanker가 뭘 한 건지도 이해 못 하고 커뮤니티 앞에서 망신만 당했지. 포기하지 말았어야지. 기초부터 제대로 배워서 진짜 쓸만한 걸 가져왔어야지, 원본보다 못한 프랑켄슈타인 같은 Gemma 4나 만들지 말고.
3
프랑켄슈타인을 만들어서 걷게 만드는 게 원래 내 목표였거든. 근데 지금 봐봐, 괴물이 꽤 그럴듯하게 말하지 않냐?
-2
하, 내 생각엔 글쓴이 닉네임부터가 모든 걸 말해주네. 공장 조립 라인에 17명 새로 고용하는 거랑 똑같다고 생각해봐