LLM

LLM 모델 Postprocessing 및 fine-tuning

sunning 2024. 8. 25. 13:21
728x90
반응형

모델의 Post-processing(후처리)

    • 모델이 사전 훈련(pre-trained)되거나, 로드된 이후에 추가적으로 적용되는 조정이나 설정 단계
    • 모델의 기본 학습 단계와 구별되는 작업으로, 모델의 성능을 최적화하거나 특정 사용 사례에 맞게 조정하기 위한 추가 작업을 포함
    • Postprocessing 과정
      • 8비트 양자화 후 일부 파라미터를 32비트로 캐스팅
        • 양자화(Quantization)
          • 연속적인 값을 가지는 데이터를 더 적은 비트 수를 사용하여 표현하기 위해 이산적인 값 집합으로 근사하는 과정
          • 머신러닝과 딥러닝에서는 주로 모델의 가중치나 활성화 값과 같은 부동 소수점 데이터(float32 또는 float16)를 더 낮은 정밀도의 정수형 데이터(int8 등)로 변환하는 것을 의미
          • 양자화는 모델의 메모리 사용량을 줄이고, 계산 속도를 높이며, 전력 소비를 줄이는 등의 효율성을 높이기 위해 사용
        • 8-bit 양자화
          • 모델의 가중치/활성화 값을 8bit 정밀도로 변환하여 메모리 사용량과 연산량을 줄일 수 있음
            • 메모리 사용량 감소 : llm 모델 크기를 32비트 부동 소수점 표현에서 8비트로 변환하면 필요 메모리 양이 1/4로 줄어들어 작은 GPU에서도 실행 가능
            • 연산량 감소 : 전력 소비 및 실행 시간 단축(실시간 응답 관련)
            • 하드웨어 효율성 향상
            • 모델 배포 및 스케일링
            • 성능 유지
      • 모델 파라미터 프리징 (Freezing)
      • Gradient Checkpointing 활성화 및 Input Gradients 설정
      • 출력 레이어의 출력 타입 캐스팅

PEFT(Parameter Efficient Fine-Tuning)

  • 빠른 시간에 새로운 문제를 해결하기 위해 모델 전체의 모든 파라미터를 학습하지 않고, 일부 파라미터만 업데이트하는 fine-tuning을 위한 라이브러리
  • LoRA (Low Rank Adaptation)
    • 모델의 파라미터를 효율적으로 업데이트하기 위해 저차원 근사(low-rank approximation)를 사용하는 방법
    • 메모리 사용량이 적고 훈련 속도가 빠름
  • Prefix Tuning
    • 모델 입력 시퀀스 앞에 고정된 프리픽스(prefix)를 추가하여 특정 태스크에 맞게 모델을 조정
    • 기존 모델의 파라미터를 그대로 유지하면서 새로운 태스크에 빠르게 적응 가능
    • 프리픽스의 길이가 짧아 효율적인 학습이 가능
  • Prompt Tuning
    • 모델 입력 데이터에 프롬프트(텍스트, 벡터 형태 등)를 추가하여 모델의 출력을 조정
      (입력에 추가된 프롬프트는 주로 고정된 텍스트 형태로 사용되며, 모델이 이 텍스트에 적응)
    • 특정 태스크에 맞는 프롬프트를 추가하여 모델의 성능 조정 가능
    • 기존 모델의 파라미터를 그대로 유지하면서 새로운 태스크에 적응 가능
  • P-Tuning
    • Prompt Tuning의 확장 형태로, 더 구체적인 프롬프트 조정과 학습 가능한 벡터를 사용하는 방법
    • 모델 입력 데이터에 특정 학습 가능한 벡터 형태의 프롬프트를 추가하여 모델 출력을 조정
      (입력 시퀀스에 추가되는 프롬프트가 학습 가능한 파라미터로 구성되어, 이를 통해 모델의 성능을 조정)
728x90
반응형