Trainer

unsloth

예전부터 빠르기로 유명했으나 dockerfile을 제공하지 않고, 버전 설치가 까다롭다. 또한 별도 모델을 이용하고 LoRA 방식이라 hf 전체를 release 하려는 목적에 부합하지 않는다. 하지만 deps를 모두 설치하고 (pytorch 2.4 → 2.3으로 자동 변경) 구동하니 cpt 예제가 잘 동작한다.

transformers의 Trainer, trl의 SFTTrainer 의존성 있으며 이를 wrapping해 사용하는 형태, LoRA 구조에 커널을 triton으로 구현해 속도를 높였다고 강조.

axolotl

  • deepspeed stage 1으로 충분해보인다. (optimizer states만 분산)
  • gradient_accumulation_steps가 상이하여 accerlerate config 파일에 직접 들어가서 8로 수정
  • pip install -U deepspeed로 0.15.0으로 업데이트

transformers의 Trainer, trl의 SFTTrainer 사용 동일. 옵션 구조가 llama-factory와 거의 동일. cpt 예제가 없다.

LLaMA-Factory

No-Code 솔루션으로 너무 많은걸 감춰놓아 한번에 잘 돌아가면 문제 없지만 그렇지 않다면 디버깅이 어렵다. killed 문제가 있었는데 kubeflow가 CPU 리소스를 너무 적게 할당하는 문제였으나 로그도 없어서 디버깅이 어려웠다. 이외에도 버전 호환성 문제가 크기 때문에 가장 기본적인 (비공개) #1-9 ngc pytorch에서 시작했으며, 이슈에 따라 $ pip install deepspeed==0.14.4 설치

transformers의 Trainer 이용 동일. cli에 옵션 또는 yaml로 no code로 동작한다.

Last Modified: 2024/09/21 19:45:19

is a collection of Papers I have written.
© 2000 - Sang Park Except where otherwise noted, content on this site is licensed under a CC BY 4.0.
This site design was brought from Distill.