PEFT(Parameter Efficient Fine-Tuning)

HanJu Han·2024년 10월 12일

PEFT(LLM)

목록 보기
1/5

1. Knowledge Distillation (지식 증류):

예를 들어, 65B 파라미터의 LLaMA 모델(교사 모델)이 있다고 가정해봅시다. 이 모델의 지식을 7B 파라미터의 더 작은 LLaMA 모델(학생 모델)로 전달하는 과정이 지식 증류입니다.

구체적인 과정:

  • 대량의 텍스트 데이터에 대해 65B LLaMA로 다음 단어 예측을 수행합니다.
  • 7B LLaMA 모델이 같은 입력에 대해 65B 모델의 출력 분포를 모방하도록 학습시킵니다.
  • 이 과정을 통해 7B 모델은 65B 모델의 지식을 압축된 형태로 학습하게 됩니다.

2. Pruning (가지치기):

LLaMA 모델의 특정 부분을 제거하는 기법입니다.

예시:

  • LLaMA의 각 트랜스포머 블록에는 여러 개의 어텐션 헤드가 있습니다.
  • 특정 작업(예: 한국어 텍스트 생성)에 대해 모델을 평가하고, 성능 기여도가 낮은 어텐션 헤드를 식별합니다.
  • 이렇게 식별된 어텐션 헤드를 제거합니다. 예를 들어, 32개의 어텐션 헤드 중 8개를 제거할 수 있습니다.
  • 결과적으로 모델 크기가 줄어들면서도 한국어 텍스트 생성 성능은 크게 저하되지 않습니다.

3. Quantization (양자화):

LLaMA 모델의 가중치를 더 작은 비트 수로 표현하는 기법입니다.

구체적인 예:

  • 원래 LLaMA 모델은 32비트 부동 소수점(float32)으로 가중치를 저장합니다.
  • 이를 8비트 정수(int8)로 변환합니다. 변환 과정에서 각 가중치의 범위를 분석하고, 이를 256개의 구간으로 나누어 매핑합니다.
  • 예를 들어, 원래 0.1234라는 가중치가 있었다면, 이는 해당 범위에서의 상대적 위치에 따라 0부터 255 사이의 정수값으로 매핑됩니다.
  • 이 과정을 통해 모델 크기를 1/4로 줄일 수 있으며, 추론 속도도 향상됩니다.

4. Low-Rank Factorization (저차원 인수분해):

LLaMA의 가중치 행렬을 더 작은 두 개의 행렬로 분해하는 기법입니다. 이는 LoRA(Low-Rank Adaptation) 기법의 핵심입니다.

예시:

  • LLaMA의 한 레이어에 4096x4096 크기의 가중치 행렬이 있다고 가정합시다.
  • 이 행렬을 4096x16 크기의 행렬 A와 16x4096 크기의 행렬 B로 분해합니다.
  • 원래 행렬 대신 A와 B를 사용하여 연산을 수행합니다.
  • 이렇게 하면 16,777,216개의 파라미터 대신 131,072개의 파라미터만으로 비슷한 표현력을 얻을 수 있습니다.

5. Adapter Modules (어댑터 모듈):

LLaMA 모델의 각 레이어에 작은 신경망을 추가하는 기법입니다.

구체적인 예:

  • LLaMA의 각 트랜스포머 블록 뒤에 두 개의 작은 선형 레이어로 구성된 어댑터를 추가합니다.
  • 예를 들어, 4096 -> 64 -> 4096 구조의 어댑터를 사용할 수 있습니다.
  • 파인튜닝 시 LLaMA의 원래 파라미터는 고정하고, 이 어댑터만 학습시킵니다.
  • 이를 통해 전체 모델의 0.1% 미만의 파라미터만 학습하면서도 특정 작업에 대한 성능을 크게 향상시킬 수 있습니다.

이러한 PEFT 기법들을 조합하여 사용하면, 예를 들어 65B LLaMA 모델을 기반으로 한국어 법률 문서 생성에 특화된 모델을 만들 때, 전체 모델을 재학습하는 대신 어댑터 모듈을 추가하고 LoRA를 적용한 뒤 8비트로 양자화하여 효율적으로 미세조정을 수행할 수 있습니다. 이렇게 하면 원래 모델의 1% 미만의 추가 파라미터만으로도 특정 작업에 최적화된 모델을 얻을 수 있습니다.

profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글