SOLAR 10.7B: Scaling Large Language Models with Simple yet Effective Depth Up-Scaling
10.7B LLM 이 새로 나왔다.
한국(Upstage)에서 나오기도 했고 나오자마자 리더보드에서 1위를 차지했기 때문에 정리해본다.
https://arxiv.org/pdf/2312.15166.pdf
Abstract
up-scale LLM 방식에 영향을 받아 depth up scaling 방식 (DUS) 사용하여 크기를 키운 후 pre training 계속한다.
MoE와는 다르게 DUS는 train과 inference 에서 복잡하게 바꿀 필요가 없고 더 작은모델로도 더 좋은 성능을 얻음.
2. Depth Up-Scaling
성능 저하를 줄이기 위해 위와 같은 scaling 작업 후에 다시 pre-train 을 진행한다.
Base model.
이 논문에서는 32-layer Llama 2 구조 사용, 어떤 n-layer 모델도 다 가능하다.
pre-trained Mistral 7B 사용.
Depthwise scaling.
s 개의 target layer
base model 의 n layers 를 복사하여 각각 모델의 final 과 처음 m 개 layer 를 없애고
s = 2·(n−m) layer 가 되도록 남은 두 모델을 concat 한다. (위 그림과 같이)
Continued pretraining.
위와 같이 DUS 한 모델은 일반 base model 보다 성능이 떨어지기 마련.
위 그림의 step2 . pre-training 을 다시 했을 때 빠른 성능 회복을 확인하였다.
depth 에 따른 scaling 방법이 heterogeneity(? 아마 layer 마다의 특성?) 를 분리하여 빠른 성능 회복이 가능했을 것이라고 추측.
scaled model 의 heterogeneity 를 좀 더 살펴보면, 더 간단한 방법은 각 레이어들을 단순히 1번씩 더 반복하는 방법이 있다. = n 개 레이어를 반복하여 2n layer 로 만드는 것. (123123 이렇게 붙이는 것)
이렇게 하면 base model 의 ‘layer distance’ 혹은 layer index 사이의 diffenrence , layer n 과 layer n+1 이 연결된 이음매 부분(seam)이 1보다 크게 된다.
하지만 이는 seam 에서 layer distance 가 최대가 되고 추가적인 pre-train 으로 해결하기 너무 큰 불일치가 될 수 있다.
이 대신, DUS 는 middle layers 의 2m 을 희생하여 이음매 부분의 discrepancy (불일치)를 줄이고 pre-training 을 더 쉽게 한다.
DUS 의 성공비결은 depthwise scaling 단계와 pre-trianing 단계에서 이런 불일치들을 줄인 것이다.
이 논문에서는 또한 추가적인 pre-train 전의 scaled 된 모델의 불일치가 충분히 작다면 다른 depth-wise scaling 방법도 DUS 에 적용될 수 있다고 가정한다.
Comparison to other up-scaling methods.
다른 방법과 다르게 gating networks 나 dynamic expert selection 와 같은 추가적인 모듈이 필요하지 않다.
그렇기 때문에 특별히 optimized 된 학습 방법이나 infernece 를 위한 CUDA kernels 도 필요없다.
3. Training Details
- instruction tuning → 2) alignment tuning 2가지 step 으로 fine-tuning 을 진행했다.
(pre-training 말고!)
💡 Instruction Alignment Tuning 이란?
FLAN(이라는 모델을 제안한 논문)에서 처음 제시한 개념이다.
LLM 이 더 사용자의 의도에 맞고, 더 사람이 말하듯이 (user-friendly) 생성할 수 있도록 학습시키는 것이다.
Instruction tuning.
이 단계에서는 QA(질의응답) format 의 instruction을 따르도록 train 된다.
주로 오픈소스 데이터셋과 함께 math QA dataset 을 사용하여 수학적 능력을 향상시키려 한다.
이를 위해 이 논문에서는 데이터셋을 재구성하였다.
GSM8K(8.5K의 초등학교 수학문제와 2~8 단계의 풀이과정과 답이 포함되어 있다) 과 같은 오픈소스 데이터셋 에서 seed math data 를 뽑아낸다. (=어떻게 뽑는지는 MetaMath 를 참조해야 할 듯 하다)
이렇게 얻은 시드 수학 데이터를 문제와 답을 다시 만들어서 QA 데이터셋을 만든다.
이 데이터를 “Synth. Math-Instruct” 라고 한다.
Alignment tuning.
alignment tuning 은 DPO(direct preference optimization) 를 사용한다.
alignment tuning 을 통해 인간이나 GPT4 와 같은 LLM 이 더 선호하는 답변을 생성할 수 있도록 튜닝한다.
Instruct tuning 과정과 비슷하게 오픈소스 데이터셋과 함께 Synth. Math-Instruct 수학 데이터셋을 사용했다.
alignment 데이터셋은 Synth. Math-Instruct 데이터셋에서의 Q-A pair 의 fact 를 사용한다.
DPO 데이터셋을 만들기 위해 rephrased 된 질문에 대한 rephrased 대답을 ‘chosen’ (더 좋은 답변) 으로, 원래 데이터셋의 답변을 ‘rejected’ (더 안좋은 답변) 으로 설정하여 {prompt, chosen, rejected} DPO tuple 을 만든다.
이 데이터셋은 ‘Synth. Math-Alignment‘ 라고 한다.
4. Results
4.1 Experiment setting
Traning datasets.
Training 의 instruction tuning 에서 Alpaca 스타일 chat 템플릿을 사용.
Alignment 데이터셋에서는 {prompt, chosen, rejected} 의 triplet 포맷을 사용했다.
Zephyr(OS 종류가 아니라 dDPO 를 적용하여 alingment 7B model, ref: https://arxiv.org/pdf/2310.16944.pdf )를 사용하여 alignment 데이터셋을 전처리하였다.
Evaluation.
Evaluation 에서는 HuggingFace Open LLM Leaderboard (H6 average score) 를 사용하였다.
Model merging.
instruct 와 alignment tuning 을 한 모델들을 기존에 있는MergeKit 를 사용하여merging 하였다.
💡 TIES-MERGING: Resolving Interference When Merging Models
merging 기술은 multiple task-specific 모델들을 추가적인 학습과정 없이 1개의 multi-task 모델로 합치는 기술이다.
같은 base model 을 서로 다른 task 로 학습 시킨 후 이 weight 를 더해 평균내면 1개 모델로 2가지 task 다 잘할 수 있도록 할 수 있는 방법이다.
(ref: https://arxiv.org/pdf/2306.01708.pdf)
4.2 Main Results
위는 다른 LLM 모델들과 SOLAR 모델을 비교한 것이다.
SOLAR 10.7B 는 Qwen 14B 와 Mistral 7B 와 같은 더 작은 사이즈의 pre-trained 모델에 대해서 좋은 성능을 얻었다. 이는 DUS 가 효과적인 LLM scaling up 방법임을 알 수 있다.
또한, SOLAR 10.7B-Instruct 모델은 H6 에서 Qwen 72B 등의 오픈소스 모델 성능을 뛰어넘었다.
Experiment 부분은 여기까지만 하겠다!
나머지 부분은 Ablation studies 로, dataset 을 다 다르게 사용하여 instruct tuning을 하거나 DPO 를 적용하는 실험이다.
궁금하면 논문을 더 찾아봐도 좋을 것 같다.
5 Conclusion
정리하자면, SOLAR 10.7B 모델과 그의 instruct0 tuning 버전을 제안하였다.
이 모델들은 Llama 2, Mistral 7B, and Mixtral-7B-Instruct 등의 모델들에 비해 computation 효율성을 유지하며 더 좋은 성능을 얻었다.
이 때 DUS 방법이 효율성을 유지하는 데에 효과를 얻을 수 있도록 하였다.
Limitations.
DUS 방법에 대한 hyperparameter 튜닝이 필요하다.
ex) 이 논문에서는 8개 layer 를 삭제했지만 최적의 값은 모름.
또한 (많은 다른 모델들이 그렇듯) train 과 eval 에 많은 resource 가 필요하다.
'LLM 관련 논문 정리' 카테고리의 다른 글
DoRA: Weight-Decomposed Low Rank Adaptation (0) | 2024.05.02 |
---|---|
LLAMA-2 from the ground up (0) | 2024.02.11 |
SPoT: Better Frozen Model Adaptation through Soft Prompt Transfer (0) | 2023.11.23 |
NEFTune: Noisy Embeddings Improve Instruction Fine-tuning (0) | 2023.11.15 |
CLM, MLM, TLM 그리고 Seq2Seq (0) | 2023.10.30 |