NL-266, Continual Pre-training of Language Models, ICLR 2023

◼ Comment

  • 논문 인용수가 엄청많고해서 23년 논문이길래 llm continual pretraining인줄 알았는데 그건 아니였다 ㅠ
  • RoBERTa을 2개의 도메인(리뷰도메인, 논문도메인)에서 학습을 지속적으로 할때, 이전 학습된 데이터에서의 성능이 떨어지지 않으면서 새롭게 학습된 도메인에서는 학습이 잘되는? 그런 방법을 제안한거다
  • 방법론은
    • 이전 도메인에서 학습됐을때, 중요하게 여겨진 뉴런은 새로운 도메인학습할때 적게 학습되게 하게 하는 것이다
    • 이렇기 위해선, 중요도를 계산해야하고 이 중요도로 어떻게 적게 학습하게 하는지? 전략이 필요하다
    • 초기 중요도는 simcse처럼 dropout으로 같은 입력에 대해 출력을 다르게하고 이 두 출력에 대한 KL loss을 이용한다.
    • 그 다음부터는, MLM loss을 이용해서 뉴런의 중요도를 계산한다
    • 뉴런의 값이 변화하면 얼마나 출력이 변화하나? 이런걸 계산해서 중요도라고 보는 것이다
    • 학습할때는 (1-중요도)를 곱해줌으로써 중요하면 학습이 덜 되게 해주는 방식을 취한다
  • 결과론적으로 성능은 망각은 적게 일어나고 새로운 도메인에서의 성능은 괜찮다
    • 하지만 이전의 방법과 차이가 큰 것인가? 라는 의문이 들기는 하다
    • 왜냐하면 실제로 이거 구현하려면 좀 귀찮고 폼이 많이 들텐데, 그냥 적당히 쉬운 방법으로 학습한거랑 큰 차이가 있나 싶음
    • 따라서 데이터를 성향이 다른 극단의 데이터로 실험했으면 어땠을까 싶음
  • 만약에 처음부터 데이터에 모두 접근이 가능한 상황이면 그냥 다 한꺼번에 mixing에서 학습하는 방법 (여기서는 pool이라고 부름)이 나쁘지 않다.
    • 당연히 최고라기보다 이 방법과 별 차이가 없다는 말이다
    • 물론 이 방법은 순차적으로 데이터에 접근가능한 시나리오라서 공정한 비교는 아닐테지만

Abstract

언어 모델(Language Models, LMs)은 자연어 처리(NLP)의 급속한 발전에 핵심적인 역할을 해왔습니다. 이 논문은 언어 모델의 지속적인 사전학습(continual pre-training), 특히 **지속적인 도메인 적응 사전학습(continual domain-adaptive pre-training, 또는 continual DAP-training)**을 연구합니다.

기존 연구들은 특정 도메인의 말뭉치를 사용하여 언어 모델을 추가로 사전학습하면, 해당 도메인에서의 다운스트림 작업 성능이 향상된다는 것을 보여주었습니다. 본 논문은 여러 도메인의 비라벨 말뭉치를 연속적으로 활용하여, 언어 모델이 다양한 도메인에 적응할 수 있도록 지속적으로 DAP-training하는 새로운 방법을 제안합니다.

이 방법의 핵심은 다음과 같습니다:

  1. 소프트 마스킹(soft-masking) 메커니즘: 언어 모델의 업데이트를 직접 제어할 수 있도록 고안된 기법입니다. 이를 통해 불필요한 파라미터 변경을 방지하고 중요한 정보만 업데이트할 수 있습니다.

  2. 일반 지식 보존용 프록시(proxy): 원래 사전학습된 언어 모델이 가진 일반적인 지식을 보존하기 위한 새로운 프록시 기법을 제안합니다.

  3. 지식 통합을 위한 표현 차별화: 이전에 학습된 도메인 지식(및 일반 지식)과 현재 전체 네트워크에서 새롭게 학습된 지식 간의 표현을 대조(contrast)함으로써, 지식 통합을 유도합니다.

이 방법은 망각(catastrophic forgetting) 문제를 극복할 뿐만 아니라, **지식 이전(transfer)**을 통해 여러 도메인에서의 다운스트림 성능 향상도 달성합니다. 실험 결과도 제안된 방법의 효과를 뒷받침하고 있습니다.

1 INTRODUCTION

사전학습된 언어 모델(BERT, RoBERTa 등)은 자연어 처리(NLP)의 발전을 크게 이끌어왔다. 최근에는 이러한 언어 모델이 지속적 학습(Continual Learning, CL) 시스템에서도 활용되어, 여러 개의 다운스트림 작업을 순차적으로 학습하는 지속적 엔드태스크 학습이 활발히 연구되고 있다. 그러나 언어 모델 자체를 지속적으로 사전학습하는 문제 또한 중요하다. 이에는 두 가지 방식이 있다:

  1. 지속적 일반 사전학습(Continual General Pre-training): 기존 사전학습 데이터와 유사한 분포를 가진 최신 데이터를 이용해 모델을 점진적으로 업데이트한다.

  2. 지속적 도메인 적응 사전학습(Continual Domain-Adaptive Pre-training, 또는 Continual DAP-training): 다양한 도메인 데이터에 순차적으로 적응할 수 있도록 모델을 점진적으로 사전학습한다.

이 논문은 두 번째 방식인 지속적 도메인 적응 사전학습에 초점을 맞춘다.

기존 연구들은 언어 모델에 대규모 도메인별 비라벨 말뭉치를 추가로 학습시키면 해당 도메인의 다운스트림 작업 성능이 향상된다는 것을 보였다. 그러나 현실에서는 도메인, 주제, 이벤트가 계속 바뀌므로 모델이 새로운 도메인에 지속적으로 적응하면서도 이전 지식을 잊지 않는 것이 중요하다.

논문에서 다루는 문제는 다음과 같다. 일반 도메인(D₀, 예: 뉴스 데이터)에서 사전학습된 모델을 시작으로, 도메인 D₁, D₂, … 등의 말뭉치를 순차적으로 학습시킨다. 

  • 한 번 학습한 도메인 데이터는 이후 접근할 수 없으며, 각 도메인은 엔드태스크가 아니라 비라벨 도메인 데이터다. 
  • 다운스트림 성능 평가는 도메인 적응이 끝난 후 파인튜닝을 통해 이루어진다.

좋은 지속적 DAP-training 시스템은 다음 조건을 만족해야 한다:

  1. 망각 방지: 새로운 도메인을 학습하더라도 이전 도메인 및 일반 언어 지식의 성능이 유지되어야 한다.

  2. 지식 이전: 이전 도메인 지식을 활용해 새로운 도메인을 더 잘 학습할 수 있어야 하고, 새로운 도메인 학습 이후에는 이전 도메인 성능도 향상되어야 한다.

  3. 도메인 ID 비의존성: 테스트 시점에서 해당 도메인을 알 필요 없이 작동해야 한다.

기존 CL 기법 중 이 조건을 모두 만족하는 방식은 없다.

논문은 DAS(Continual DA-pre-training with Soft-masking)라는 새로운 방법을 제안한다. 이 방법의 핵심은 **소프트 마스킹(soft-masking)**으로, 각 유닛의 중요도를 0에서 1 사이의 실수로 계산해, 중요도에 따라 역전파 시의 그래디언트 흐름을 조절한다. 순전파에서는 마스킹을 적용하지 않으므로 도메인 간 지식 이전이 가능하며, 어떤 도메인도 하위 네트워크로 분리하지 않기 때문에 전체 모델이 파인튜닝에 활용된다.

DAS는 다음 두 단계를 포함한다:

  1. 초기화 단계: 일반 언어 지식의 중요도를 계산하며, 사전학습 데이터(D₀)에 접근하지 않고도 계산할 수 있도록 로버스트니스 기반의 프록시 기법을 제안한다.

  2. 지속적 학습 단계: 각 도메인을 DAP-training하며 일반 지식과 이전 도메인 지식을 유지한다. 중요도는 그래디언트 기반으로 계산하며, 이는 모델 압축 기법에서 착안하였다.

또한 DAS는 이전에 학습된 표현과 현재 학습 중인 도메인의 표현을 대조 학습 방식으로 비교하여, 현재 도메인이 새로운 지식을 효과적으로 학습하고 기존 지식과 통합할 수 있도록 유도한다. 파인튜닝 시에는 도메인 ID를 필요로 하지 않는다.

이 논문의 기여는 다음과 같다:

  1. 지속적 DAP-training 문제를 새롭게 정의하고, 기존의 파라미터 분리 방식이 적절하지 않음을 보였다.

  2. 망각 방지와 지식 이전을 동시에 달성할 수 있는 소프트 마스킹 기법과, 지식 통합을 위한 대조 학습 기반 방법을 제안했다.

  3. 일반 언어 지식을 보존하기 위한 새로운 프록시 기법을 제안했다.

  4. 다양한 실험을 통해 DAS의 성능을 입증했다.

다음은 사용자가 제공한 2절 "RELATED WORK" 전체를 빠짐없이 한글로 번역한 내용입니다.


2 관련 연구

도메인 적응 사전학습(DAP-training)

도메인 적응 사전학습(DAP-training)은 언어 모델을 직접 업데이트하는 방식(Xu et al., 2019; Sun et al., 2019; Lee et al., 2020; Alsentzer et al., 2019; Gururangan et al., 2020; Chakrabarty et al., 2019; Ke et al., 2022b)과, 소수의 추가 파라미터만 학습하는 방식으로 나뉜다. 예를 들어, Pfeiffer et al. (2020), Wang et al. (2020a), Ke et al. (2021a; b; c)는 어댑터(adapter)를 학습했고, Gu et al. (2021)은 도메인에 적응하도록 프롬프트(prompt)를 학습했다. 어댑터와 프롬프트는 효과적일 수 있지만, 이들 모듈 간의 지식 전이는 일반적으로 어렵고 부정확할 수 있다.

DAS는 언어 모델을 직접 업데이트하는 방식에 속한다. 그러나 이러한 방식은 지속 학습(CL)에서 망각(catastrophic forgetting, CF) 문제로 인해 매우 어렵다. 현재까지 이러한 방식에 지속 학습을 적용한 기존 시스템은 존재하지 않는다.

기존과 다르게 일부분만 학습하는게 아니라 모델 자체를 다 학습하면서 catastrophic forgetting (CF)을 해결하려고 함

지속 학습(Continual Learning)

대부분의 지속 학습 기법은 망각(CF)을 극복하는 것을 목표로 한다.

  1. 정규화 기법(Regularization methods)
    Kirkpatrick et al. (2016), Seff et al. (2017) 등은 각 파라미터가 이전 작업에 얼마나 중요한지를 계산하고, 변화량에 대한 패널티를 추가하는 정규화 항을 도입한다. DAS는 EWC(Kirkpatrick et al., 2016)와 관련 있지만 여러 면에서 다르다.
    (1) DAS는 각 파라미터나 가중치를 제어하지 않고, 주의(attention) 헤드나 뉴런 단위로 중요도를 계산하여 제어한다. 이는 뉴런의 각 파라미터가 소폭만 변경되어도 전체 뉴런의 활성화에 큰 영향을 줄 수 있으므로 망각을 줄이는 데 효과적이다(표 2의 망각률 참조).
    (2) DAS는 각 뉴런 단위로 역전파 시의 그래디언트 흐름을 직접 제어하는데, 이는 모든 파라미터 변화량의 합을 제어하는 방식보다 더 정밀하고 효과적이다. 실험 결과는 EWC가 DAS보다 성능이 떨어진다는 것을 보여준다(표 2 참조).

  2. 리플레이 기법(Replay methods)
    Rebuffi et al. (2017), Wang et al. (2020b) 등은 이전 작업의 데이터를 일부 저장하거나, Shin et al. (2017), He & Jaeger (2018) 등은 이를 생성하여 새로운 작업 학습에 사용한다.

  3. 파라미터 분리 기법(Parameter-isolation methods)
    Serrà et al. (2018), Wortsman et al. (2020) 등은 작업/도메인마다 별도의 뉴런, 파라미터 또는 서브네트워크를 할당하고 이를 학습 시 마스킹한다.
    지속적 DAP-training에서는 이러한 방식이 적용될 경우, 엔드태스크가 언어 모델에 포함된 일반 지식을 활용할 수 없어 결과적으로 성능이 떨어진다.

자연어 처리(NLP) 분야에서는 지속 학습이 슬롯 채우기(Shen et al., 2019), 언어 학습(Li et al., 2019), 감정 분석(Ke et al., 2021a), 주제 모델링(Gupta et al., 2020), 질의응답(Greco et al., 2019), 텍스트 분류(Sun et al., 2020; Huang et al., 2021; Chuang et al., 2020) 등에 적용된 바 있으나, 도메인 적응 사전학습을 위한 것은 없다.

최근에는 언어 모델 자체를 다루는 지속 학습 연구도 등장하고 있다.

  • Madotto et al. (2020)은 도메인별로 별도의 어댑터를 학습하기 때문에 CF(망각)나 KT(지식 전이) 문제가 없다.
    사실 이 방식이 내가 생각한 거긴한데 역시나 한참전부터 있었군 ㅎㅎ
  • DEMIX (Gururangan et al., 2021)는 새 어댑터를 가장 유사한 기존 어댑터로 초기화한다.
  • CPT (Ke et al., 2022a)와 ELLE (Qin et al., 2022)는 DAS와 가장 유사한 접근법이지만 다음과 같은 차이가 있다:

  • CPT는 각 작업을 학습하고 보호하기 위해 파라미터 분리 방식을 사용하며, 엔드태스크 파인튜닝 시 도메인 ID가 필요하다. 그러나 이 방식은 약하다(4.2절 참조).

  • ELLE은 DAS처럼 사전학습된 모델을 시작점으로 삼을 수 없고, 언어 모델 자체를 처음부터 사전학습해야 한다. 또한 각 도메인마다 1GB 크기의 리플레이 데이터(사전학습 데이터 포함)를 저장해야 하고, 네트워크도 도메인마다 확장해야 한다.

반면 DAS는 이러한 리소스 요구사항 없이 동작할 수 있다.
Jin et al. (2021)은 DAS와 유사한 설정에서 여러 기존 CL 기법을 평가하고, 망각 문제를 다루는 분석을 진행했으나, 새로운 기법은 제안하지 않았다.

신경망 프루닝(Neural Network Pruning)

신경망에서는 많은 파라미터가 불필요하며 제거될 수 있다(Li et al., 2021; Lai et al., 2021; Michel et al., 2019; Voita et al., 2019). 기존 방법으로는 절댓값이 작은 파라미터를 제거하는 방법(Han et al., 2015; Guo et al., 2016), 누적 그래디언트 기반 방법(Michel et al., 2019), 로터리 티켓 가설(Brix et al., 2020) 등이 있다.

그러나 DAS에서는 단순히 모델을 압축하는 것이 아니라, 도메인 지식뿐 아니라 일반 지식도 보존해야 하므로 기존 방식은 바로 적용할 수 없다. 일반 지식은 사전학습 데이터에 접근할 수 없기 때문에, 로버스트니스(robustness)에 기반한 프록시로 유닛의 중요도를 계산한다. 도메인 지식의 경우, 기존 프루닝 연구에 기반한 그래디언트 기반 중요도를 사용하지만, 모델을 축소하기 위한 것이 아니라 지식을 누적하기 위한 목적으로 소프트 마스크를 사용한다.

대조 학습(Contrastive Learning)

대조 학습(Chen et al., 2020; He et al., 2020)은 양의 쌍(positive pair)은 유사하게, 음의 쌍(negative pair)은 비유사하게 표현되도록 학습하는 방법이다. 일반적으로 다음과 같은 손실 함수로 표현된다:


여기서 NN은 배치 크기, τ\tau는 온도 파라미터, sim()\text{sim}(\cdot)은 유사도 함수이며, qnq_nqn+q^+_n은 양의 쌍 표현이다.

DAS에서는 이전 도메인 및 사전학습 언어 모델의 지식(일반 지식)과, 전체 모델(이전 도메인 + 현재 도메인)을 비교(contrast)함으로써 상호보완적인 표현 학습을 유도한다. (정확히 어떻게 된다는건지 잘 모르겠네)

이를 통해 기존 지식과 새로운 지식이 효과적으로 통합되도록 한다.

3 제안하는 DAS 기법

DAS에서의 지속적 도메인 적응 사전학습(continual DAP-training)은 다음 두 가지 핵심 아이디어에 기반한다:

  1. 중요도에 따라 유닛(unit)을 소프트 마스킹(soft-masking)하여, 언어 모델 내의 중요한 일반 언어 지식과 이전 도메인에서 학습된 지식을 보존함으로써 망각(catastrophic forgetting, CF)을 방지하고, 동시에 작업 간 지식 이전(knowledge transfer, KT)을 촉진한다.

  2. 현재 도메인과 이전 도메인의 표현이 서로 보완적으로 학습되도록 유도하여, 지식 통합(knowledge integration)을 달성한다.

그림 1은 DAS의 전반적인 구조를 보여준다.

전체 학습 과정은 두 가지 주요 기능으로 구성된다:

(i) 초기화(Initialization)
지속 학습이 시작되기 전에, 언어 모델 내 일반 언어 지식에 대해 각 유닛의 중요도를 계산하는 단계이다.

(ii) 지속 학습(Continual Learning)
이 단계는 다음 두 단계로 구성된다:

  • (a) 도메인 학습(Domain Training)
    지금까지 축적된 중요도 점수(초기 언어 모델의 일반 지식 및 이전 도메인에서 학습된 지식 포함)와 현재 도메인의 입력 데이터를 활용하여, 현재 도메인을 학습하고 앞서 언급한 (1) 망각 방지와 (2) 지식 통합을 달성한다.

  • (b) 중요도 계산(Importance Computation)
    이후 단계를 위한 준비로, 현재 도메인에 대한 중요도 점수를 계산한다.

다음 절에서는 각각의 기능과 단계에 대해 자세히 설명한다.

3.1 초기화: 일반 지식에 대한 유닛 중요도 계산

이 초기화 함수는 사전학습된 언어 모델(LM) 내에서 **일반 언어 지식에 대해 Transformer의 유닛(어텐션 헤드 및 뉴런)**이 얼마나 중요한지를 계산한다. Transformer의 핵심 구성 요소는 멀티-헤드 어텐션 계층, 중간 계층, 출력 계층이다. 본 논문에서는 이 세 계층을 동일하게 취급하므로, 이하에서는 이들을 모두 계층(layer) 또는 ll로 지칭한다.

계층 내 유닛의 중요도

Michel et al. (2019)은 모든 유닛이 중요한 것은 아니라는 점을 보여주었다. 이를 바탕으로 본 논문은 각 계층 ll의 유닛 중요도를 계산하기 위해 **가상 파라미터(virtual parameter) glg_l**을 도입한다. 각 g(k)g^{(k)}는 초기값이 1로 설정되며, 실제 파라미터 업데이트 없이 해당 파라미터에 대한 그래디언트만 계산한다.

여기서 olo_l은 계층 ll의 출력값이며, \otimes는 원소별 곱(element-wise multiplication)을 나타낸다. glg_l의 각 요소 gl,ig_{l,i}는 계층 내의 특정 유닛(뉴런 혹은 어텐션 헤드)을 나타낸다.

이 논문은 Michel et al. (2019)의 그래디언트 기반 중요도 측정 방법을 변형하여 적용한다. 주어진 샘플 집합 D={(xn,yn)}n=1ND = \{(x_n, y_n)\}_{n=1}^N에 대해, 각 유닛의 중요도는 다음과 같이 추정된다:

I_l = \frac{1}{N} \sum_{n=1}^{N} \left| \frac{\partial \mathcal{L}_{\text{impt}}(x_n, y_n)}{\partial g_l} \right|

여기서 Limpt\mathcal{L}_{\text{impt}}는 태스크별 손실 함수이다. glg_l은 업데이트되지 않고 모두 1로 초기화되며, 우리는 오직 해당 파라미터에 대한 평균 그래디언트를 통해 중요도를 계산한다. 학습 단계(3.2절 및 그림 1(B) 참조)에서는 이 가상 파라미터가 필요 없으며, 계산된 IlI_lglg_l과 동일한 차원을 가지며 각 유닛의 중요도를 나타낸다.

즉 gk의 값을 변화시켜서 해당하는 ok에 대한 그래디언트가 크게 변화된다면, ok가 중요하다는 의미로 간주하다는 것


초기화 함수의 목적은 **언어 모델 내 일반 지식에 대한 유닛 중요도 Il(0)I^{(0)}_l**를 학습하는 것이다. 위 식(식 3)은 이론적으로는 사용 가능하지만, 실질적으로는 다음과 같은 이유로 직접 적용할 수 없다:

  • 현재 가지고 있는 도메인 데이터를 이용하고, 손실 함수로 MLM 손실을 사용할 경우, 얻어지는 그래디언트는 일반 지식이 아닌 도메인 특화 지식에 대한 중요도를 반영하게 된다.

  • 일반 지식에 대한 중요도를 얻기 위해서는 사전학습 시 사용된 원래 데이터에 대한 손실을 이용해야 하지만, 이는 일반 사용자 입장에서 접근 불가능하다.

  • 식 (3)에서는 라벨이 필요한데, DAP-training에서는 비라벨 데이터만 사용 가능하다.

이러한 문제를 해결하기 위해 본 논문은 **프록시 KL-divergence 손실 함수 Lproxy\mathcal{L}_{\text{proxy}}**를 제안하여 일반 지식에 대한 유닛 중요도를 계산한다.

근데 일반지식은 pretraining에서 학습되는 건데, 여기서는 레이블이 없어서 g을 이용한 o의 중요도를 계산할 수 없다. MLM loss는 도메인 지식이라서 안된다고 --> 따라서 loss을 계산할 수 없으니, 아래 방법으로 loss을 대체한다


프록시 KL-divergence 손실 함수

본 논문은 모델의 **로버스트니스(robustness)**를 일반 지식에 대한 프록시 지표로 사용한다. 즉, 모델의 견고함에 중요한 유닛을 찾아내고, 이들의 그래디언트를 중요도 측정에 활용한다. 기본 논리는 다음과 같다:

  • 어떤 유닛 Il,i(0)I^{(0)}_{l,i}의 중요도가 높으면, 그 유닛의 출력 변화는 모델 전체 표현에 큰 영향을 주므로 해당 유닛은 일반 지식에 중요하다고 간주할 수 있다.

  • 반면, 중요도가 낮으면 모델의 표현에 미치는 영향이 작기 때문에 중요도가 낮은 유닛으로 본다.

모델의 로버스트니스를 측정하기 위해, 현재 도메인 데이터 중 일부 {xnsub}\{x^{\text{sub}}_n\}를 선택하여 두 번 입력하고, 두 번의 출력 간 KL-divergence를 계산한다:

\mathcal{L}_{\text{impt}} = \text{KL}\left(f^{(1)}_{\text{LM}}(x^{\text{sub}}_n), f^{(2)}_{\text{LM}}(x^{\text{sub}}_n)\right)

여기서 fLM(1)f^{(1)}_{\text{LM}}fLM(2)f^{(2)}_{\text{LM}}서로 다른 드롭아웃 마스크를 적용한 동일 모델이다.

  • 추가적인 드롭아웃을 삽입하지 않아도 되며, Transformer 모델은 이미 fully-connected layerattention 확률에 드롭아웃이 존재하므로, 입력을 두 번 전달하는 것만으로 서로 다른 드롭아웃 마스크가 적용된다. 
  • 드롭아웃은 노이즈를 주입하는 것과 유사하므로, 두 표현의 차이는 모델의 로버스트니스로 간주할 수 있다. 이를 통해 모델에 중요한 유닛을 식별한다.
같은 입력을 넣지만, 드롭아웃을 다르게 해서 두 개의 출력을 얻고, 이에대한 KL 손실을 계산한다는 것이다.

  • 이 loss에 대한 g의 변화로 그래디언트를 계산해서 o의 중요도를 찾는다는 말
  • 이 KL loss는 중요한 유닛일수록 드롭아웃에 더 민감하게 반응하기 때문 loss가 크게 잡힌다고 간주하는거다

3.2 학습: 소프트 마스킹과 대조 손실을 통한 새로운 도메인 학습

앞서 설명한 것처럼, DAS는 도메인 tt을 DAP-training하는 동안, 이전에 학습된 일반 지식과 과거 도메인별 지식을 보존하고자 한다. 

이때 사용하는 것은 현재까지 누적된 중요도 Il(t1)I_l^{(\leq t-1)}이며, 이에는 초기 일반 지식의 중요도 Il(0)I_l^{(0)}(3.1절 참고)와 과거 도메인 k{1,...,t1}k \in \{1, ..., t-1\}에서 학습된 도메인 특화 지식 Il(k)I_l^{(k)}(3.3절에서 설명될 내용 포함)이 포함된다. 

  • 3.1절에서 계산된건 일반 지식에 대한거로 I0을 의미하고 Ik는 도메인 지식으로 3.3에서 설명함

이러한 누적 중요도를 기반으로 학습 시 그래디언트 흐름을 조절하여 기존 지식을 보존하면서 학습을 진행한다.

중요도 누적 (Accumulating importance)

도메인 t1t-1까지 학습한 후 누적된 중요도는 다음과 같이 계산된다:

여기서 tt는 현재 학습 중인 도메인의 인덱스를 의미하고, Il(t2)I_l^{(\leq t-2)}는 그 이전까지 누적된 중요도를 의미한다. EMax는 원소 단위로 최대값을 취하는 연산이다. 

이 수식은 누적된 중요도를 계산할 때 이전 도메인의 중요도를 모두 저장할 필요 없이, 각 도메인 학습 이후 누적된 결과만 저장하면 충분함을 의미한다.

  • 즉 어떤 뉴런이 중요했던 적이 있으면 앞으로의 학습에서 크게 변화가 없길 바라는 것이다.
  • 여러 도메인에서 순차적으로 학습될텐데, A도메인에서 중요했든 B도메인에서 중요했든 한번 중요했던 도메인이라면, 다른 도메인 데이터 학습시 크게 안변화했으면 좋겠는 것
  • 그래서 최고치의 중요도값을 저장해서 가져간다

유닛에 대한 소프트 마스킹 (Soft-masking units)

각 계층 ll에 대해 누적된 중요도 Il(t1)I_l^{(\leq t-1)}가 주어졌을 때, 일반적으로 사용하는 DAP-training 손실 LDAP-train\mathcal{L}_{\text{DAP-train}}(보통 MLM 손실)을 기준으로 계산된 그래디언트 l\nabla_l을 다음과 같이 마스킹한다:

여기서 \otimes는 원소별 곱(element-wise multiplication)이며, 각 요소 Il,i(t1)[0,1]I_{l,i}^{(\leq t-1)} \in [0,1]는 해당 유닛(뉴런 또는 어텐션 헤드)의 중요도를 나타낸다. 마스킹을 적용하기 위해, 중요도 벡터 Il(t1)I_l^{(\leq t-1)}의 차원을 그래디언트 l\nabla_l에 맞게 확장한다. 

  • 중요도를 1에서 뺌으로써, 중요도가 클수록 원래 학습되야할 그래디언트가 작아지는 구조이다. (학습 loss는 MLM)
  • 즉 중요한적이 있었던 뉴런은 학습이 덜 되고, 그렇지 않았던 뉴런은 학습이 되는 구조
  • 학습되는 뉴런과 중요도 는 다른 것임. 즉 뉴런은 뉴런대로 학습이 진행되는거고, 중요도 I는 따로 저장하면서 가져가는거라고 보면됨
  • 근데 생각해보면 이 뉴런이 중요했던 state는 다른 뉴런과의 조합상태에서 중요했던 것이다.
  • 만약 다른 뉴런들은 값이 바뀌는데, 중요하다고 판단된 뉴런은 안바뀐다면? 여전히 중요하다는게 유지가 되는 것일까?... 상식적으론 아닐거 같긴한데

이 마스킹은 이진 값이 아니라 연속값을 사용하기 때문에, 모델이 각 유닛에 대해 유연하게 조정할 수 있는 구조이다.

이러한 소프트 마스킹은 **역전파(backward pass)**에서만 적용되며, **순전파(forward pass)**에는 적용되지 않는다. 

  • 그 이유는 순전파에서 모든 도메인의 지식을 자유롭게 활용하게 하여, 과거 도메인으로부터의 **지식 전이(knowledge transfer)**를 유도하기 위함이다.
  • 중요도 I 는 학습때만 사용되는 것


이전 지식과 현재 도메인 지식의 통합 (Integrating the previously learned knowledge and the current domain knowledge)

소프트 마스킹은 이전에 학습한 지식을 보존하는 데 도움을 준다. 하지만 DAS는 여기에 더해, 새로운 도메인에서 학습되는 지식이 기존 지식과 상호보완적인 표현을 학습하도록 유도하고자 한다. 이를 위해 **이전 지식과 전체 지식(이전 + 현재 도메인 지식)을 대조(contrast)**하는 방식을 도입한다.

중요한 점은, 소프트 마스킹으로 보호되는 공유된 과거 지식은 대조 학습으로부터 영향을 받지 않기 때문에, 이 대조는 현재 도메인 지식이 과거 지식과 중복되지 않고 보완적으로 학습되도록 유도하는 역할을 한다. 이 과정은 현재 도메인의 입력 데이터를 기반으로 진행된다.


학습된 표현과 전체 표현의 대조 (Contrasting the learned and full knowledge)

다음은 대조 학습에 사용되는 세 가지 표현이다:

  • ofullo_{\text{full}}: 중요도를 고려하지 않고 모델에 입력을 넣었을 때의 출력 → 전체 지식(full knowledge)에 해당

  • oprev=Il(t1)olo_{\text{prev}} = I_l^{(\leq t-1)} \otimes o_l: 중요도를 적용한 출력 → 이전에 학습된 지식(previously learned knowledge)에 해당

  • ofull+o_{\text{full}}^+: 동일한 입력을 드롭아웃 마스크만 다르게 두 번 넣어 얻은 출력 → ofullo_{\text{full}}의 양성 샘플(positive sample)

이러한 표현들을 사용하여 다음과 같은 대조 손실 함수(contrastive loss)를 정의한다:

  • sim()\text{sim}(\cdot)은 cosine similarity를 의미하며, 두 벡터 간 유사도를 측정한다.

  • τ\tau는 온도(temperature) 하이퍼파라미터이다.

  • 분자에는 같은 입력에서 나온 양성 쌍의 유사도가 들어가고,

  • 분모에는 다른 양성 쌍들 뿐 아니라, 이전 지식 표현도 음성 샘플로 들어간다.

이는 식 (1)과 비교했을 때 분모에 이전 지식 표현을 추가한 것이 차이점이다. 그림 1(B)에서는 실선 화살표로 ofullo_{\text{full}} 간의 양성 쌍을 나타내고, 점선 화살표로 oprevo_{\text{prev}}와의 음성 관계를 표현하고 있다.

simcse 같은 방법이다

  • 드롭아웃으로 두 쌍의 positive 학습 표현을 만들고
  • 중요도 I로 마스킹한 것으로 negative 학습 표현 만들어서 학습
  • 그러면, 중요도 I로 마스킹된 과거 지시표현과는 멀어지고 새로운 도메인에서 표현이 학습된다는 것


최종 손실 함수 (Final Loss Function)

최종적으로 사용되는 DAP-training 손실 함수는 다음과 같이 구성된다:

  • LMLM\mathcal{L}_{\text{MLM}}: 소프트 마스킹을 적용한 마스크드 언어 모델링(Masked Language Modeling) 손실

  • Lcontrast\mathcal{L}_{\text{contrast}}: 위에서 설명한 대조 손실

  • λ\lambda: 두 손실 간의 가중치를 조절하는 하이퍼파라미터

이 손실 함수를 통해 모델은 기존 지식을 보존하면서도, 새로운 도메인에서 학습되는 지식을 효과적으로 통합할 수 있도록 학습된다.

  • 뭔가 그럴싸하게 설명했지만.. 과연 이렇게 원하는대로 학습이 될까?

3.3 현재 도메인에 대한 유닛 중요도 계산

새로운 도메인 tt의 학습이 끝난 후, 이 도메인에 대해 각 유닛의 중요도를 식 (3)을 이용해 계산한다. 이 경우에는 3.1절에서와 달리 프록시 손실 함수를 사용할 필요가 없다. 왜냐하면 현재 도메인의 데이터는 우리가 직접 가지고 있기 때문이다.

  • 일반지식이 아닌 도메인 지식에 대한 중요도 계산이니 MLM 써도됨

구체적으로는, 현재 도메인 데이터에서 일부 샘플을 무작위로 추출한다(이때의 샘플 수는 하이퍼파라미터로 설정됨). 이 샘플은 다음과 같은 형태이다:

  • xnsubx^{\text{sub}}_n: 입력 문장

  • ynsuby^{\text{sub}}_n: MLM 방식에서 마스킹된 토큰 (즉, self-supervised 학습 방식에 사용되는 마스크된 정답 토큰)

이러한 샘플들을 기반으로, **손실 함수 Limpt\mathcal{L}_{\text{impt}}**에 **MLM 손실 LMLM\mathcal{L}_{\text{MLM}}**을 그대로 대입하면, 식 (3)을 통해 유닛 중요도 Il(t)I_l^{(t)}를 간단히 계산할 수 있다:

Il(t)=1Nn=1NLMLM(xn,yn)glI_l^{(t)} = \frac{1}{N} \sum_{n=1}^N \left| \frac{\partial \mathcal{L}_{\text{MLM}}(x_n, y_n)}{\partial g_l} \right|

이렇게 계산된 현재 도메인의 중요도 Il(t)I_l^{(t)}는 다음 도메인 학습 시 아래 두 방식으로 활용된다:

  1. 누적 중요도 계산 (식 5): 기존까지 누적된 중요도와 합쳐서 새로운 누적 중요도 Il(t)I_l^{(\leq t)}를 만듦.

  2. 소프트 마스킹 적용 (식 6): 이후 학습에서 해당 유닛의 업데이트를 제어하는 데 사용.

이 과정을 통해, 각 도메인 학습 후 그 도메인 특화 지식에 해당하는 유닛의 중요도를 반영할 수 있게 되며, 다음 도메인 학습 시 기존 지식 보존 및 조절에 활용된다.

이걸 왜 3.3섹션으로 하지? 3.2섹션에서 이 방식으로 계산된 도메인 중요도를 쓰니까, 이게 먼저나와야 더 자연스러운거 아닌가?

4 실험

실험에서는 언어 모델로 RoBERTa(Liu et al., 2019)를 사용한다. 

  • 먼가 RoBERTa에 대해서만 실험됐다는게 너무 아쉽다. LLM에는 이러한 방식이 될지 의문

표준 평가 설정(Lange et al., 2019)을 따르며, 각 도메인에 대한 학습이 완료된 후에는 해당 도메인의 훈련 데이터를 폐기한다. 모든 도메인을 순차적으로 학습한 후, 최종 모델은 각 도메인별 엔드태스크를 파인튜닝하여 성능을 평가한다.


4.1 데이터셋 및 베이스라인

데이터셋

표 1은 DAP-training에 사용된 6개의 비라벨 도메인 말뭉치와 이에 대응하는 6개의 분류 기반 엔드태스크 데이터셋의 통계를 보여준다.


이 중 3개는 리뷰 데이터이고, 나머지 3개는 학술 논문 데이터이다.

  • 리뷰 도메인

    • Yelp Restaurant (Xu et al., 2019)

    • Amazon Phone (Ni et al., 2019)

    • Amazon Camera (Ni et al., 2019)

  • 논문 도메인

    • ACL Papers (Lo et al., 2020)

    • AI Papers (Lo et al., 2020)

    • PubMed Papers

이와 각각 대응하는 엔드태스크 분류 데이터셋은 다음과 같다:

  • Restaurant: Yelp 리뷰 → Restaurant 분류

  • Phone: Amazon Phone 리뷰 → Phone 분류 (Ding et al., 2008; Hu & Liu, 2004)

  • Camera: Amazon Camera 리뷰 → Camera 분류 (Ding et al., 2008; Hu & Liu, 2004)

  • ACL: ACL-ARC (Jurgens et al., 2018)

  • AI: SCIERC (Luan et al., 2018)

  • PubMed: CHEMPORT (Kringelum et al., 2016)


베이스라인

16개의 베이스라인을 비교 대상으로 사용하였다. 이 중 일부는 **비지속 학습(non-CL)**이고, 나머지는 지속 학습(CL) 베이스라인이다. 대부분의 CL 베이스라인은 원래 지도 학습용이었으며, 본 논문에서는 이를 RoBERTa 기반으로 재구성하여 사용하였다. 각 베이스라인에 대한 자세한 설명은 부록 B에 있다.


Non-CL 베이스라인 (지속 학습 미사용)

  1. Pool: 모든 도메인의 데이터를 한데 모아 단일 모델로 학습

  2. RoBERTa: DAP-training 없이 RoBERTa를 그대로 엔드태스크에 파인튜닝

  3. DAP-RoBERTa: 기존의 DAP-training 방법(Gururangan et al., 2020, MLM 사용)을 통해 도메인별로 각각 사후 학습(post-training)

  4. DAP-Adapter: Transformer에 도메인별 어댑터를 추가하여 DAP-training 수행(Jang et al., 2021; Madotto et al., 2020; Houlsby et al., 2019).

    • 학습 중에는 어댑터만 학습되고, 파인튜닝 시에는 RoBERTa와 어댑터 모두 학습 가능

  5. DAP-Prompt: 프롬프트 기반 방법(Lester et al., 2021)

    • DAP-training 시에는 RoBERTa는 고정하고 프롬프트만 학습

    • 엔드태스크 파인튜닝 시에는 LM과 프롬프트 모두 학습 가능


CL 베이스라인 (지속 학습 사용)

  1. NCL (Naive CL): 어떤 CF 방지 기법 없이 RoBERTa를 단순히 계속 DAP-training

  2. NCL-Adapter: 어댑터만 사용하는 naive CL 버전(Houlsby et al., 2019)

다음은 대표적인 CL 시스템들:

  1. DEMIX (Gururangan et al., 2021): 새로운 도메인마다 새로운 어댑터를 추가하고, 이전 도메인 중 가장 유사한 어댑터로 초기화

  2. BCL (Ke et al., 2021c): 캡슐 네트워크 기반 방법

  3. CLASSIC (Ke et al., 2021b): 대조 학습(contrastive learning) 기반 방법

  4. KD: 지식 증류(knowledge distillation, Hinton et al., 2015) 방식

  5. EWC (Buzzega et al., 2020): 정규화 기반의 대표적 방법. 각 파라미터의 중요도를 이용해 변화 억제

  6. DER++ (Buzzega et al., 2020): 리플레이 기반 지식 증류 방식

    • 각 도메인당 리플레이 메모리에 16.4K 토큰 저장 (시스템이 감당할 수 있는 최대 크기)

  7. HAT (Serrà et al., 2018): 파라미터 분리 기반의 강력한 방법

    • Transformer의 self-attention, intermediate, output layer에 적용

  8. HAT-All: HAT의 변형 버전으로, 도메인 서브네트워크의 출력만 사용하는 대신 LM 전체 표현을 사용

  9. HAT-Adapter (Ke et al., 2021c): 어댑터 내부에 HAT 적용

참고: ELLE(Qin et al., 2022)는 RoBERTa를 기반으로 새롭게 구현했으나 수렴(converge)하지 않아 제외되었다.


이 실험 설계는 다양한 DAP-training 방식과 지속 학습 전략이 DAS보다 얼마나 효과적인지를 비교하기 위한 기반이 된다.

4.2 결과 분석 및 구성 요소 제거 실험 (Ablation Study)

※ 구현 관련 세부사항은 지면상의 제약으로 인해 부록 C에 포함되어 있다.
표 2는 6개 데이터셋에 대해 15개 시스템의 엔드태스크 파인튜닝 결과를 보여준다. 

이 표에서 제안된 DAS가 모든 베이스라인보다 평균적으로 높은 성능을 보이며, 지식 전이 효과(negative forgetting rate) 역시 가장 뛰어남을 확인할 수 있다.

  • 도메인 학습순서는 첫번째 행순서라고함. restaurant -> ACL -> AI -> ...
  • 맨 우측의 망각률보면 숫자가 낮은게 좋나봄. 
    • 망각률은 근데 어떻게 계산되는거지? --> 뒤에
  • NCL은 그냥 단순히 순서대로 학습한거라 보면되는데 이와 비교해보면..
    • 음 좋아지긴하는데 엄청 좋아지는건가? 1~점 정도 향상되긴함
    • 학습 도메인 성능이 좋아지고 망각률이 낮은것도 좋긴하지만 더 좋은 메트릭없나?


(1) DAS는 Pool보다 약간 더 좋은 성능을 보인다.

그 이유는 다음과 같다:

  • (a) 어떤 도메인 간에는 차이가 크기 때문에 (예: 카메라 리뷰 vs ACL 논문), 모든 데이터를 풀링하여 학습하는 경우 **부정적 전이(negative transfer)**가 발생할 수 있다.

  • (b) DAS는 소프트 마스크를 통해 일반 지식과 과거 도메인 지식이 보호된 상태에서 학습을 수행한다.

  • 성능상 좋긴 좋으나, 거의 차이가 안나는데? 데이터에 따라 pool이 좋은 경우도 있고.. 처음부터 데이터에 모두 접근가능하면 그냥 Pool로 하는게 훨씬 간편하고 좋을거 같음


(2) DAS는 망각 방지지식 전이를 모두 달성한다.

  • KD, EWC, DER++ 등은 망각 방지에만 집중하여, 정확도를 희생하고 전체 성능이 낮아졌다.

  • BCL, CLASSIC, DEMIX 등은 지식 전이를 어느 정도 달성하지만, 여전히 DAS보다는 낮은 성능을 보였다.

    • DEMIX는 전이 성능이 매우 낮고,

    • BCL은 전이와 망각 방지를 모두 시도하지만 단순한 NCL보다도 약하다.

  • 전반적으로, 기존 CL 시스템들은 지식 전이를 적극적으로 유도하지 않거나, 어댑터 기반 구조에 의존하기 때문에 DAS보다 성능이 낮다.


(3) DAS는 어댑터나 프롬프트 기반 방식보다 우수하다.

  • DAS는 언어 모델 전체를 직접 학습하는 반면,

  • 어댑터(DAP-Adapter, NCL-Adapter, HAT-Adapter)나 프롬프트(DAP-Prompt)는

    • 학습 가능한 파라미터 수가 적고,

    • 대부분 무작위 초기화되며,

    • 학습이 어려운 문제가 있다.


(4) DAS는 HAT류의 서브네트워크 방식보다 효과적이다.

  • HAT은 DAP-training에 부적합하며(1절에서 언급), 성능도 낮게 나왔다.

  • HAT-All은 전체 LM의 피처를 사용하지만, 여전히 낮은 성능을 보였다.

    • 이는 DAP-training 시 사용한 서브네트워크 피처와 파인튜닝 시 사용하는 전체 LM 피처가 달라 일관성이 없기 때문이다.


망각 방지와 지식 전이 측정

  • 모델이 얼마나 망각(CF)을 방지했는지, 또는 지식을 전이했는지를 보기 위해 **망각률(forgetting rate)**을 측정하였다(Liu et al., 2020).

  • 정의:

    Forget R.=1t1k=1t1(Ak,kAt,k)\text{Forget R.} = \frac{1}{t-1} \sum_{k=1}^{t-1} (A_{k,k} - A_{t,k})
    • Ak,kA_{k,k}: 도메인 kk를 학습한 직후의 엔드태스크 정확도

    • At,kA_{t,k}: 마지막 도메인 tt까지 학습한 후 도메인 kk에 대한 정확도

    • Forget R.가 낮을수록 좋으며, 음수이면 오히려 지식 전이가 일어났음을 의미

  • DAS는 가장 강한 **음의 망각률(negative forgetting rate)**을 보였고, 이는 망각 방지와 지식 전이를 모두 잘 수행함을 나타낸다.

  • 반면, NCL, NCL-Adapter, DEMIX, EWC, KD, DER++는 모두 일정 수준의 망각을 겪었다.

  • HAT는 망각이 없지만, 학습 자체를 잘 하지 못하며 BCL도 전이가 약하다.


프록시 KL-divergence 손실의 효과

초기화 단계(3.1절)에서 일반 지식에 대한 유닛 중요도를 계산하기 위해 프록시 KL-divergence 손실을 사용했으며, 이 손실이 얼마나 효과적인지를 두 가지 실험으로 평가하였다.


(1) D₀ 샘플셋과 비교

  • 가정: 어떤 사용자는 사전학습에 사용된 D₀ 데이터를 보유하고 있을 수도 있음.

  • 현실에서는 RoBERTa의 사전학습 데이터 D₀에 접근할 수 없으므로, 대체로 **Wikipedia 데이터(Merity et al., 2017)**를 사용하였다.

    • 이 데이터는 다양한 주제를 포함하고 있으며, 실제 LM 사전학습에도 쓰인 적이 있고, 데이터 크기(약 700M)도 유사하다.

  • 두 가지 방법으로 비교 실험을 수행하였다:

    • (a) DAS (Wiki+MLM): Wiki 데이터를 사용하고 손실 함수로 MLM을 사용하여 중요도 계산

    • (b) DAS (Wiki+KL): Wiki 데이터를 사용하고 KL-divergence 기반 프록시 손실을 사용

  • 결과: DAS (Wiki+KL)가 DAS (Wiki+MLM)보다 좋은 성능을 보였고, 본 논문에서 제안한 KL 기반 방식이 더 효과적임을 보여준다.

    • 이유: MLM은 모델을 Wiki 데이터에 맞게 적응시켜버리므로, LM의 일반 지식과는 다를 수 있다.

    • 반면, KL 기반 방식은 드롭아웃을 활용한 로버스트니스 측정이기 때문에 특정 도메인에 의존하지 않고, LM의 일반적인 표현을 잘 반영한다.


(2) 도메인별 중요도 벡터의 유사도 비교

  • 다른 방식으로 간접적인 근거도 제시하였다.

  • 각 도메인별로 KL 기반 프록시로 계산한 attention head 중요도 벡터를 구한 뒤, 도메인 간 유사도를 비교하였다.

  • 코사인 유사도 평균값:

도메인 유사도 평균
Restaurant 0.92
ACL, AI, Phone 0.91
PubMed 0.89
Camera 0.92
  • 서로 다른 도메인에서도 중요도 벡터가 매우 유사함 → 이 프록시가 공통된 일반 지식을 잘 반영한다는 간접적 증거.


Ablation Study (구성 요소 제거 실험)

DAS의 핵심 구성 요소들이 각각 성능에 기여하는지 확인하기 위해 다음과 같은 구성 요소 제거 실험을 수행하였다.

(1) 초기화 제거: DAS (w/o initialization)

  • 초기화 단계(3.1절)를 제거하고, 일반 지식 고려 없이 바로 지속 학습만 수행

  • 결과: 평균 성능이 낮아짐 → 일반 지식 보호의 중요성 입증

(2) 소프트 마스크 제거

  • (i) DAS (w/o softmask): 소프트 마스크 없이 대조 학습만 수행 (식 7의 두 번째 항 제거)

  • (ii) DAS (random): 중요도를 무작위로 생성하여 마스크 및 대조 학습에 사용

  • 결과: 둘 다 DAS보다 성능이 낮음 → 소프트 마스킹이 효과적이며, 그래디언트 기반 중요도 추정이 유의미함을 보여줌

(3) 대조 학습 제거

  • (i) DAS (w/o contrast): 대조 손실 제거하고 소프트 마스킹만 적용

  • (ii) DAS (domain-specific): 전체 지식이 아닌, 도메인별 지식 간의 대조 학습만 수행

  • 결과: 모두 DAS보다 성능이 낮음 → 대조 학습이 좋은 표현 학습에 기여함을 확인


표 4에 따르면, **전체 구성(DAS)**이 대부분의 도메인에서 가장 우수한 성능을 보였으며, 각 구성 요소가 독립적으로도 기여함을 실험적으로 입증하였다.

5 결론

본 논문에서는 언어 모델(LM)의 **지속적인 도메인 적응 사전학습(continual DAP-training)**을 위한 새로운 방법인 DAS를 제안하였다. 제안 방법은 다음의 세 가지 핵심 아이디어에 기반한다:

  1. 중요도에 따라 유닛을 소프트 마스킹하여, 이전에 학습한 중요한 지식을 보존하고, **망각(catastrophic forgetting)**을 방지하며 지식 전이를 가능하게 한다.

  2. 언어 모델 내 일반 지식에 대한 유닛의 중요도를 계산하기 위해, **새로운 프록시 기법(KL 기반)**을 활용한다.

  3. 기존 지식과 현재 도메인 지식 간 보완적인 표현을 학습함으로써, 효과적인 지식 통합을 달성한다.

이러한 목표를 달성하기 위해 여러 기법들을 함께 제안하였고, 다양한 실험을 통해 DAS의 효과성을 입증하였다.

현재 DAS는 학습 시 **두 가지 주요 기능(초기화와 지속 학습)**으로 구성되어 있으며, 향후 이들을 통합하여 성능을 더욱 향상시키는 방안에 대해 연구할 예정이다.

Reference

댓글