인공지능 학습

Transfer Learning

사전 학습-파인튜닝을 하는 학습 과정을 전이학습(transfer learning)이라고 한다. 전이학습은 이미 잘 훈련된 모델이 있고, 해당 모델과 유사한 문제를 해결하는데 효율적으로 사용된다.

Pre-training & fine-tuning 모두 Transfer Learning 의 종류임

딥러닝 사전 학습은 딥러닝에서 weight와 Bias를 잘 초기화 시키는 방법이다. 이러한 사전 학습을 통해서 효과적으로 층(layer)을 쌓아서 여러 개의 은닉층(hidden layer)를 효율적으로 훈련할 수 있다.

또한 사전 학습은 레이블된 학습 데이터가 필요하지 않아서 비지도 학습(unsupervised learning)이 가능하기 때문에 레이블 되지 않은 빅 데이터를 넣어 훈련시킬 수 있다는 장점이 있다.

사전학습 만으로 원하는 태스크를 수행하는 인공지능 엔진이 완성이 되지는 않고 사전 학습에 기반한 Fine Tuning 이 필요하다. 이는 사전 학습 모델을 기반으로 새로운 목적(질의응답, 번역 등)을 위해 이미 학습된 weight나 bias를 미세하게 조정하는 과정이다. → 사전학습 모델에 추가 데이터 투입해 weight 업데이트

Transfermer 논문요약

Pre-Training

사전 학습 모델이란 기존에 자비어(Xavier) 등 임의의 값으로 초기화하던 모델의 가중치들을 다른 문제(task)에 학습시킨 가중치들로 초기화하는 방법이다.


예를 들어, 텍스트 유사도 예측 모델을 만들기 전 감정 분석 문제를 학습한 모델의 가중치를 활용해 텍스트 유사도 모델의 가중치로 활용하는 방법이다.

즉, 감정 분석 문제를 학습하면서 얻은 언어에 대한 이해를 학습한 후 그 정보를 유사도 문제를 학습하는 데 활용하는 방식이다.

이때 사전 학습한 가중치를 활용해 학습하고자 하는 본 문제를 하위 문제(downstream task) 라 한다. 사전 학습한 모델인 감정 분석 문제가 사전 학습 문제(pre-train task) 가 된다.

Fine Tuning

fine-tuning이란 사전 학습한 모든 가중치와 더불어 downstream task를 위한 최소한의 가중치를 추가해서 모델을 추가로 학습(미세 조정) 하는 방법이다.


언어 모델 영역에서는 특정 데이터에 대해 특정 작업을 수행하도록 기존 언어 모델을 미세 조정하는 것이 일반적인 관행입니다. 여기에는 필요한 경우 작업별 헤드를 추가하고 훈련 과정에서 backpropagation을 통해 신경망의 가중치를 업데이트하는 작업이 포함됩니다. 이 미세 조정 프로세스와 처음부터 학습하는 것의 차이점을 알아두는 것이 중요합니다. 후자의 시나리오에서는 모델의 가중치가 무작위로 초기화되는 반면, 미세 조정에서는 사전 학습 단계에서 가중치가 이미 어느 정도 최적화되어 있습니다. 어떤 가중치를 최적화 또는 업데이트할지, 어떤 가중치를 동결할지는 선택한 기술에 따라 결정됩니다.

전체 미세 조정에는 신경망의 모든 레이어를 최적화하거나 훈련하는 작업이 포함됩니다. 이 접근 방식은 일반적으로 최상의 결과를 얻을 수 있지만, 리소스와 시간이 가장 많이 소요되는 방식이기도 합니다.

다행히도 효과적인 것으로 입증된 미세 조정을 위한 매개변수 효율적 접근 방식이 존재합니다. 대부분의 이러한 접근 방식은 성능이 떨어지지만, Low Rank Adaptation(LoRA)은 치명적인 망각(미세 조정 과정에서 사전 학습된 모델의 지식이 손실될 때 발생하는 현상)을 방지하여 경우에 따라 전체 미세 조정보다 성능이 더 뛰어난 경우도 있어 이러한 추세를 반전시켰습니다.

  • LoRA는 사전 학습된 대규모 언어 모델의 가중치 행렬을 구성하는 모든 가중치를 미세 조정하는 대신, 이 큰 행렬을 근사화하는 두 개의 작은 행렬을 미세 조정하는 개선된 미세 조정 방식입니다. 이러한 행렬이 LoRA 어댑터를 구성합니다. 이렇게 미세 조정된 어댑터는 사전 학습된 모델에 로드되어 추론에 사용됩니다.
  • QLoRA는 사전 학습된 모델을 양자화된 4비트 가중치(LoRA의 경우 8비트)로 GPU 메모리에 로드하는 메모리 효율성이 훨씬 더 높은 LoRA 버전으로, LoRA와 유사한 효과를 유지합니다. 이 방법을 살펴보고, 필요할 경우 두 가지 방법을 비교하며, 가장 빠른 학습 시간으로 최적의 성능을 달성하기 위한 QLoRA 하이퍼파라미터의 최적 조합을 찾아내는 것이 이 글의 초점입니다.

LoRA는 허깅페이스 파라미터 효율적 미세 조정(PEFT) 라이브러리에서 구현되어 사용이 간편하며, bitsandbytes와 PEFT를 함께 사용하여 QLoRA를 활용할 수 있습니다. 허깅페이스 트랜스포머 강화 학습(TRL) 라이브러리는 LoRA를 위한 원활한 통합과 함께 감독 미세 조정을 위한 편리한 트레이너를 제공합니다. 이 세 가지 라이브러리는 원하는 속성을 나타내는 지침을 입력하면 선택한 사전 학습 모델을 미세 조정하여 일관되고 설득력 있는 제품 설명을 생성하는 데 필요한 도구를 제공합니다.

Source : https://www.databricks.com/kr/blog/efficient-fine-tuning-lora-guide-llms

Fine-Tuning 시 주의점

오버피팅이 일어나거나 전체 파라미터가 망가지는 문제를 주의해야함

  • 완전히 랜덤한 초기 파라미터를 쓰거나
  • 가장 아래쪽의 레이어(일반적인 피쳐를 학습한 덜추상화된 레이어) 의 파라미터를 학습하는 것
  • 정규화 강화 (dropout 추가)
  • model complexity 감소
  • early stopping 적용
  • training data 증가

https://ko.d2l.ai/chapter_deep-learning-basics/underfit-overfit.html#%EC%84%A0%ED%98%95-%ED%95%A8%EC%88%98-%ED%94%BC%ED%8C%85-(%EC%96%B8%EB%8D%94%ED%94%BC%ED%8C%85,-underfitting)

고려대학교 NLP

LLM 한글화/다국어 학습

학습 파라미터 설명

학습 방법론

DUS (Depth Up-Scaling)

SOLAR 10.7B 모델은 기본적으로 32층의 Llama 2 아키텍처를 기반으로 합니다. 이 모델은 Mistral 7B의 사전 훈련된 가중치를 사용하여 초기화되었습니다. DUS 방식을 통해, 기존 모델의 마지막 8층과 복제 모델의 처음 8층을 제거하고, 나머지 24층을 연결하여 총 48층, 10.7억 개의 파라미터를 가진 모델로 확장합니다. 이 방식은 기존 MoE 방식과 달리 추가적인 모듈이나 복잡한 훈련 프레임워크를 요구하지 않아, 기존 훈련 및 추론 프레임워크와의 호환성을 유지하면서도 효율적인 확장이 가능

https://dajeblog.co.kr/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-solar-10-7b-scaling-large-language-models-with-simple-yet-effective-depth-up-scaling/

MoE (Mixture of Experts)