논문 pdf: https://arxiv.org/pdf/2005.00052.pdf
간단하게 논문의 소개를 보자.
기존에는 어떤 문제점이 있었고, 어떻게 해결하는지 알아보자.
기존 cross-lingual transfer 문제점
그래서 MAD-X를 제안한다.
Multiple ADapters for Cross-lingual transfer(MAD-X) 이다.
😈 MAD-X 특징
👷♀️Adapter 간단 사용법
multilingual 단어장과 target 단어장에 mismatch(불일치, 불균형)이 있기 때문에 Invertible adpater를 추가한다.
-> 이러한 방법으로 pretraining 동안 unseen한 언어에 대해서도 적용이 가능하고 비싸게 language specific token-level embeddings를 학습시킬 필요가 없어졌다.
🤨 왜 language specific token-level embeddings를 학습하는 것이 비용적으로 비쌀까?
그 이유는 우선 임베딩을 많이 많이 구해야 하기 때문이다. 다량의 데이터를 구하는 것은 시간, 가격면에서 비싸다.
또한 언어별로 문법, 특성이 다르기 때문에 언어에 대한 추가적인 연구와 실험이 필요하다. 이러한 이유로 특정 언어에 대한 토큰 수준의 임베딩을 구하거나 임베딩을 구했어도, 학습시키는 것은 비용이 많이 든다.
👩🏻🔬 실험 비교
🌟 Results
1) 다중 언어의 저주를 완화하는 프레임워크 MAD-X 개발
2) Invertible adapters 제안, cross-lingual MLM을 위한 새로운 어댑터 변수임
3) 다양한 언어와 작업에 대해서 매우 좋은 성능과 강건함을 보임
4) 사전 학습된 언어 모델 -> 타겟 언어로 적용하는 매우 쉽고 효율적인 방법임
5) 사전 학습에 보지 못한 언어에 대해 해결하는 새로운 접근법을 제시함
🤫 Pretrained mutilingual model
Background로 사전 훈련된 다국어 언어 모델에 대해 간단하게 살펴보면,
이런 레이어들로 구성되어 있다.
특히 현재 다국어 언어 모델은 트랜프포머 아키텍처를 사용한다.
관련 연구에 대해서 알아보자
한국어로 직역하면, 교차 언어 표현이다.
개 - dog
고양이 - cat
이렇게 다른 표현이지만 같은 의미를 담고있는 것을 기계는 같은 정보로 인식해야한다.
Cross-lingual representations는 다양한 언어들 간의 정보를 연결하고 이해하는데 사용되는 기술과 방법론이다.
이전 전이학습의 셋업에 대해 알아보자.
기존의 방법은
1) BERT, XLM-R 와 같은 최신 모델에 source 언어로된 labelled 된 데이터로 downstream task을 fine-tuning 시키고
2) 바로 target 언어로 추론을 시켰다.
🌧 이 방법의 단점
=> Target language에 adapt 하여 해결한다.
한 언어의 모델을 task domain에 fine-tuning하는 것과 비슷하게
🌧 기존 모델의 단점
MAD-X는 위에서 말한 단점들을 모두 해결한다.
3가지 종류의 Adapter가 있다.
1) Language
2) Task
3) Invertible
이 그림은 MAD-X의 프레임워크를 그린 것이다.
어댑터 대해 하나씩 알아보자.
어댑터의 내부 구조는 Houlsby가 내부 구조를 디자인 한 것을 따른다.
(Houlsby et al. 2019)
오른쪽 그림이 어댑터의 내부 구조이다.
어댑터는 projection down -> 비선형 함수 -> projection up 구조이다.
Language Adapter 를 줄여 LA라고 하자.
layer 에서 의 LA를이라 하자.
👨🏼💻 과정
우선 Projection Down에서는 Transformer output의 hidden size을 입력으로 들어온다. 여기서 입력 차원을 h라고 하면 어댑터의 size를 d라고 할때, 필요한 매개변수는 hxd + d이다. 이러한 Projection Down 과정을 D라고 하자.
ReLU 활성화 함수를 취한다.
다시 차원을 원래대로 h로 되돌려야 한다. Projection UP과정을 U라고 하자.
residual connection을 이라 하자. 이 잔여 연결을 더한다.
함수로 나타내면, - (1) 이 된다.
그림에서 보면 Feed forward의 결과는 이고 layer norm의 output은 을 말한다.
📝 LA 사용법
예를 들어 저 위 그림 (Figure1)에서,
Inference time일 때, 영어로 훈련된 LA를 Quechua 언어 LA로 대체한다.
LA는 downstream work에 대해서는 fine-tuning을 하지 않아서 Task Adapter를 추가한다.
Task Adapter(TA)의 내부 구조는 LA와 동일하다.
👨🏼💻 과정
---> (2)
다른 점은 이제 Projection Down의 입력이 LA의 결과값인 것이다.
의 결과는 layer nomalisation으로 넘어간다.
📝 TA 사용법
다국어 어휘 단어장과 타켓 언어 단어장의 불균형을 완화하기 위해서 Invertible Adpater를 추가했다.
Invertibility(역전성)은 동일한 파라미터 세트를 사용하여 input, output 두 표현에 대해 적응할 수 있게 해서 파라미터의 효율적인 사용을 가능하게 한다.
과적합 방지: 출력 임베딩이 미세 조정할 때 종종 제거되기 때문에 이 과정에서 과적합이 발생할 수 있는데 이를 Invertible Adapter가 방지할 수 있다.
Invertible Adapter의 구조를 살펴보자.
👨🏼💻 구조
그럼 반대 Invertible Adater의 구조는
👨🏼💻 구조
이다
여기서 F,G는 이전 adapter와 비슷한 역할을 한다.
인 것을 보아 일단 기존 hidden state를 두개의 벡터로 나눈 것이 h/2이고, Projection을 1/2로 하는 것 같다. -> 🤯 정확하지 않음!!!
📝 IA 사용법
=> 매우 parameter efficient 한 방법!!!
3가지 실험을 함
🧶 DATASET
👥 Language
16개의 언어를 11개의 language family로 나누어서 Table 1에 정리했다.
각 언어를 source 언어로, 다른 언어들을 target으로 설정해서 모든 언어 쌍을 평가했다.
CCR : XCOPA에서 12개의 언어 제공해서 평가 -> 유형적으로 다양한언어 포함(Haitian Creole, Quechua를 포함)
QA : XQuAD에서 11개의 언어 제공해서 평가 -> 주로 자료가 많은 언어를 위주로, 유형적으로 덜 다양함
둘 다 영어를 소스언어로 함
일단 실험의 기초로 XLM-R을 선택했다.
하지만 BERT와 같은 다른 사전학습된 모델을 선택해도 된다.
일단, 전체가 source 언어로 된 라벨링된 데이터로 미세조정된 XLM-R 모델과 비교했다.
XLM-R 모델은 트랜스포머 베이스 모델로, 100개의 언어가 large cleaned Common Crawl corpora에서 학습되었다고 한다.
또한 사전학습을 따로 한 모델로도 비교한다.
XLM-RBase MLM-SRC: Source 언어로 MLM 방식의 XLM-R을 Fine-tuning
XLM-RBase MLM-TRG: Target 언어로 MLM 방식의 XLM-R을 Fine-tuning
실험을 하기전 어떻게 실험을 세팅했는지, 보자
첫번째로, XLM-R과 MAD-X를 비교하는데, MAD-X에서 LA, IA를 제거한 것도 같이 비교한다.
NER
100 epochs
batch size 16(high-resource), 8(low-resource)
learning rate 5e-e(XLM-R), 1e-4(adapters)
검증을 통해 가장 좋은 모델 선택
LA :384, IA: 192, task:48 차원으로 설정
XLM-R BASE는 hidden layer가 768이다.
Adapter의 크기는 2,2,16으로 줄임.
NER
QA
CCR
좀더 쉽게 실험을 이해하기 위해 그림을 그렸다.
이 그림은 학습할 때 그림이다.
먼저 언어에 대해서 공부한 뒤, Task에 대해 공부한다.
총 4개의 모델이 생성되었다.
그 다음 Test를 진행한다.
만약 Target 언어가 한국어라면 WikiANN의 데이터도 한국어이다.
MAD-X의 경우 한국어 Adapter를 사용해서 추론을 진행한다.
16개의 target언어에 대한 평균을 낸 점수이다.
각각의 열들은 Source language를 의미한다.
점선의 왼쪽은 seen language, 오른쪽은 unseen language를 의미한다.
XLM-R
MAD-X
Model - agnostic
왼쪽이 Source language, 오른쪽이 Target language
MAD-X는 다국어모델과 단일 언어 모델의 약저을 연결하는데 도움을 준다!
English에서 each target language로 전이학습을 한 것을 보여준다.
가장 좋은 모델을 선택해서 했다.
결과적으로 XLM-R < MAD-X 였다. (5<6)
두가지 unseen language인 ht, qu언어에서 특히 두드러짐. 다른 언어는 비슷하거나 조금 나은 결과를 보였다.
English -> Each Target language (XQuAD)
MAD-X는 XLM-R과 비슷한 성능!
XQuAD의 언어들은 모두 high-resource language로 보였다.
각각 Wikipedia 기사들이 100,000개 이다.
이러한 결과는 MAD-X는 자원이 적거나 없는 언어에서는 뛰어난 성능을 보여주고 high-resource에서는 기존 모델과 비슷하거나 살짝 낮은 성능이지만 충분히 경쟁력이 있는 결과를 보였다.
IA의 역할을 분석하기 위해서 더 자세히 실험을 해보았다.
부록에 있는 Figure 16을 보자.
초록색이 보이면 MAD-X가 ?MAD-X-INV 보다 더 좋은 성능을 보인 것이다.
IA는 대부분의 초록색 칸을 보였지만 mi언어에서만 지속적으로 낮은 성능을 보였는데 이는 데이터의 변동성 때문이라 한다.
MAD-X의 주요 기능은 바로 IA와 LA이다.
이러한 어댑터는 다양한 작업에서 재사용이 가능하다.
Figure 4는 다양한 숫자의 iterations를 통한 영어에서 다른 대상언어로 IA와 LA로 전이학습을 통해 NER 성능을 보여준다.
5번의 다른 수행을 음영으로 색칠하여 보여주었다.
low-resource 언어에서 이미 20k 일때 좋은 성능을 보여주고 있다.
Table 5에서는 XLM-R 모델에 추가된 매개변수의 수를 보여준다.
오직 3.05%만 사용된 것을 알 수 있어서 모델이 매우 parameter - efficient함을 보여준다.