Peft와 Bitsandbytes란?

이관우·2023년 4월 6일
2

Peft

Paremeter-Efficient-Fine-Tuning

허깅페이스의 PEFT 라이브러리
LoRA, Prefix Tuning, P-Tuning, Prompt Tuning 기법을 쉽게 사용할 수 있도록 하는 라이브러리.
LLM의 대부분의 파라미터를 freezing 시키고 소수의 모델 파라미터만 fine-tuning하는 기법

  • 적은 수의 파라미터를 학습하는 것으로 모델 전체를 파인튜닝하는 것과 같은 효과를 준다.

기존의 패러다임

  • 거대한 단위의 웹 데이터를 pre-train하고, 작은 분야의 task에 다라 파인튜닝
  • 그러나 모델이 점점 커지면서 모델 전체를 파인튜닝하기 어려워짐 + 파인튜닝된 모델 저장/사용의 비용 큼

파인튜닝할때 발생하는 문제점중 하나인 catastrophic forgetting또한 극복

  • catastrophic forgetting? -> 새로운 정보를 학습할 때 이전에 학습한 정보를 갑자기 급격하게 잊어버리는 현상

적은 데이터 체제(low-data-regime)에서 파인튜닝할때나 도메인 밖의 데이터(out-of-domain scenario)를 일반화할때 더욱 좋은 성능을 보여주었습니다. (예를 들면 이미지 분류, stable diffusion의 dreambooth)

PEFT를 통해 학습된 적은 양의 가중치는 사전학습된 LLM모델 레이어의 가장 윗부분에 위치하게 됨

bitsandbytes?

model을 8비트 포멧으로 set up 해서 큰 gpu가 필요치 않다록 함
LLM 모델들은 점점 커져감. PaLM의 경우 540B
quantization, distillation 등 모델의 사이즈를 줄이면서도 성능을 유지하는 여러 방법이 제안됨
그 중 HugginFace와 BigScienc 에서 위 조건을 충족하는 Int8 inference 연구 (https://arxiv.org/abs/2208.07339)
자세한 내용은 https://huggingface.co/blog/hf-bitsandbytes-integration 참조

참고
https://4n3mone.tistory.com/7
https://huggingface.co/blog/hf-bitsandbytes-integration

profile
예이

0개의 댓글