모델이 새로운 지식을 학습하면서 기존에 가지고 있던 일반적인 지식이나 능력을 잃어버리는 현상을 ‘재앙적 망각(Catastrophic Forgetting)‘이라고 합니다.
1. 리허설 (Rehearsal) 기법 이전 학습 데이터를 새로운 데이터와 함께 다시 학습하여 기존 지식을 강화하는 가장 일반적이고 효과적인 방법입니다.
- 경험 리플레이 (Experience Replay): 이전 작업의 데이터를 일부 저장해두고, 새로운 작업 학습 시 함께 사용하는 방식입니다.
- 생성적 리플레이 (Generative Replay): 생성 모델을 사용해 이전 작업의 데이터를 합성하여 학습에 활용합니다.
- 자기 합성 리허설 (Self-Synthesized Rehearsal, SSR): LLM 자체를 활용하여 리허설에 필요한 합성 데이터를 생성하는 방법입니다. 이는 실제 이전 데이터에 접근하기 어려울 때 유용한 대안이 될 수 있습니다. SSR 프레임워크는 기본 LLM을 사용하여 문맥 내 학습(In-Context Learning)을 통해 합성 인스턴스를 생성하고, 이를 정제하여 리허설에 사용합니다.
2. 데이터 합성 (Data Synthesis)
기반 모델의 잠재적인 지시 분포를 재구성하여 고품질의 일반 목적 데이터셋을 합성하는 새로운 접근 방식입니다. 이 방법은 다음과 같은 단계로 이루어집니다:
- 지시 생성: 기반 모델의 지시 형식을 분석하여 다양한 지시를 생성합니다.
- 다중 응답 생성: 생성된 지시에 대해 여러 개의 강력한 LLM으로부터 다양한 응답을 얻습니다.
- 고품질 응답 필터링: 여러 모델을 평가자로 사용하여 생성된 응답들의 품질을 평가하고 가장 높은 점수를 받은 응답을 선택하여 데이터셋을 구성합니다.
- 데이터 혼합: 이렇게 합성된 일반 목적 데이터와 새로운 도메인 특화 데이터를 혼합하여 미세 조정을 수행합니다.
3. 매개변수 동결 (Parameter Freezing)
모델의 일부 매개변수를 동결하여 기존 지식이 손상되지 않도록 보호하는 방법입니다.
-
계층 동결: 모델의 하위 레이어를 동결하고 상위 레이어만 학습시켜 재앙적 망각을 완화할 수 있습니다.
-
어댑터 및 LoRA: LoRA(Low-Rank Adaptation)와 같은 매개변수 효율적인 미세 조정(PEFT) 기법은 모델의 대부분의 가중치를 동결하고, 소수의 새로운 매개변수만 학습시켜 기존 지식의 손실을 최소화합니다.
4. 모델 패치 (Model Patching)
‘Model Tailor’와 같이 미세 조정 후 성능 저하를 막기 위해 일부 매개변수를 조정하는 방법입니다. 이 방법은 미세 조정된 매개변수 중 일부(10% 이하)를 교체하여 원래 작업에 대한 성능을 약 99%까지 유지하면서 새로운 작업에 대한 적응력을 높입니다.
계층별 학습률(Layer-wise Learning Rates)
A.1) 왜 차등 학습률을 사용할까요?
사전 학습된(Pre-trained) 언어 모델은 계층적인 구조로 지식을 학습합니다.
-
저수준 레이어 (입력에 가까운 층): 언어의 문법, 단어 간의 기본적인 관계 등 매우 일반적이고 범용적인 패턴을 학습합니다. 이 지식은 새로운 태스크에도 대부분 유용하므로 많이 변경하고 싶지 않습니다.
-
고수준 레이어 (출력에 가까운 층): 주어진 태스크(예: 감성 분석, 질문 답변)와 관련된 더 추상적이고 특화된 특징을 학습합니다. 미세 조정 시에는 이 부분의 가중치를 새로운 데이터에 맞게 더 많이 업데이트해야 합니다.
따라서, 저수준 레이어에는 아주 작은 학습률을 적용하여 기존의 중요한 지식이 손상되는 것(재앙적 망각)을 막고, 고수준 레이어에는 상대적으로 큰 학습률을 적용하여 새로운 태스크에 빠르게 적응하도록 만드는 것이 효과적입니다.
A.2) 어떻게 구현하나요? (PyTorch 예시)
대부분의 딥러닝 프레임워크는 옵티마이저(Optimizer)에 파라미터 그룹을 전달하여 그룹별로 다른 학습률을 설정하는 기능을 제공합니다. 다음은 Hugging Face의 transformers 라이브러리와 PyTorch를 사용한 예시입니다.
A.3) 주요 기법 및 변형
-
레이어 동결 (Layer Freezing): 차등 학습률의 극단적인 형태로, 특정 레이어의 학습률을 0으로 설정하는 것과 같습니다. 즉, 해당 레이어의 가중치를 아예 업데이트하지 않고 동결시켜 기존 지식을 100% 보존합니다. 보통 저수준 레이어 몇 개를 동결하고 상위 레이어만 학습시키는 방식을 많이 사용합니다.
-
점진적 해제 (Gradual Unfreezing): 처음에는 가장 상위 레이어(head)만 학습시키고, 학습이 진행됨에 따라 점차적으로 하위 레이어의 동결을 해제(unfreeze)하며 학습률을 적용해나가는 더 정교한 기법입니다. 이 방법은 모델이 안정적으로 새로운 태스크에 적응하도록 돕습니다. 라이브러리 fast.ai에서 이 개념을 적극적으로 활용하여 좋은 성과를 냈습니다.
결론적으로, 차등 학습률은 SFT 과정에서 재앙적 망각을 완화하고 학습 효율과 최종 성능을 높이는 매우 중요한 핵심 전략 중 하나입니다.