PyTorch 팀이 공개한 LLM 파인튜닝 도구 torchtune 공식 출시

:pytorch:PyTorchKR:kr:

  • 3월 말 소개드렸던 TorchTune이 정식 출시되었습니다. :tada: PyTorch 팀이 새롭게 공개한 torchtune 라이브러리는 대형 언어 모델을 쉽게 파인 튜닝할 수 있는 PyTorch 네이티브 도구입니다. 이 도구는 사용자가 다양한 GPU에서 인기있는 LLM들을 파인튜닝할 수 있도록 지원합니다. torchtune은 공개된 모델 가중치 준비부터 학습 상태 로깅, 모델 양자화 후 평가에 이르기까지 전체 파인튜닝 과정(workflow)를 한꺼번에 지원합니다.. :smiley:

  • :information_source: 파이토치 한국 사용자 모임에서는 torchtune의 한국어 리소스들을 준비 중입니다. :smiley:

torchtune, PyTorch 팀이 공개한 LLM 파인튜닝 도구

소개

torchtune은 대규모 언어 모델을 파인 튜닝하는 과정에서 필요한 다양한 사용자 정의 요구 사항을 충족하기 위해 설계되었습니다. torchtune은 파이토치의 설계 원칙을 그대로 반영하고 있습니다. 즉, 모듈식 구성 요소를 통해 다양한 LLM의 구현을 지원하며, 프레임워크나 별도의 학습 라이브러리 없이 PyTorch만을 사용하여 파인 튜닝할 수 있는 간단하고 변경하여 사용 가능한 레시피들을 함께 제공합니다.

torchtune은 기존의 다른 LLM 파인 튜닝 도구들과 비교하여 더욱 모듈식이며 확장 가능한 접근 방식을 제공합니다. 사용자는 더 많은 제어 권한과 가시성을 가지고 특정 사용 사례에 맞게 모델을 조정할 수 있습니다. 또한, torchtune은 Hugging Face Hub, PyTorch FSDP, Weights & Biases 등 인기 있는 도구들과의 통합을 제공하여 사용자가 더 쉽게 LLM을 파인 튜닝하고 활용할 수 있도록 합니다.

주요 특징

  • 다양한 모델 지원: 현재 torchtune은 Llama2, Mistral, Gemma 등 다양한 모델 크기를 지원합니다. 향후 70B 버전과 MoE를 포함한 새로운 모델 지원이 추가될 예정입니다.

  • 모듈식 구성 요소: torchtune은 다양한 모델 아키텍처와 파라미터 효율적인 파인 튜닝 기술을 지원하는 구성 요소를 제공합니다.

  • 학습 로깅 및 지표(metric): 교육 과정에서 발생하는 로그와 메트릭을 추적하여 교육 프로세스에 대한 통찰력을 제공합니다.

  • 튜닝 후 양자화: 튜닝이 완료된 모델을 양자화하여 모델의 효율성을 높일 수 있습니다.

  • 벤치마크 평가: 파인 튜닝된 모델을 인기 있는 벤치마크에서 평가할 수 있습니다.

  • 지역 추론 실행: 테스트 목적으로 파인 튜닝된 모델을 로컬에서 실행할 수 있습니다.

  • 메모리 효율성: 모든 레시피는 24GB VRAM을 갖춘 일반 GPU부터 데이터 센터에서 찾을 수 있는 더 큰 옵션에 이르기까지 다양한 설정에서 테스트되었습니다.

  • 다양한 도구 지원: Hugging Face Hub, EleutherAI's LM Eval Harness, PyTorch FSDP 등과 같은 인기 있는 도구 및 라이브러리와의 통합을 통해 사용자가 훈련을 빠르게 시작할 수 있도록 지원합니다.

지원 도구

Hugging Face Hub

Hugging Face Hub는 오픈 소스 모델과 데이터셋의 광범위한 저장소를 제공하며, torchtunetune download CLI 명령을 통해 이 플랫폼과 원활하게 통합됩니다. 이를 통해 사용자는 손쉽게 첫 번째 모델 파인 튜닝을 시작할 수 있습니다.

PyTorch FSDP

PyTorch FSDP는 학습을 확장하는 데 사용됩니다. 특히, 여러 소비자급 카드(예: NVIDIA의 3090/4090)가 장착된 머신에서 훈련할 때 유용합니다. torchtune은 FSDP를 활용한 분산 레시피를 제공하여 이러한 설정의 이점을 취할 수 있도록 합니다.

Weights & Biases

Weights & Biases 플랫폼은 학습 중에 메트릭과 모델 체크포인트를 로깅하는 데 사용됩니다. 이를 통해 사용자는 파인 튜닝 실행의 모든 설정, 메트릭 및 모델을 한 곳에서 추적할 수 있습니다.

EleutherAI의 LM Evaluation Harness

파인 튜닝된 모델을 평가하는 것은 파인 튜닝이 원하는 결과를 제공하는지 이해하는 데 중요합니다. torchtuneEleutherAI의 LM Evaluation Harness를 활용한 간단한 평가 레시피를 포함하여 표준 LLM 벤치마크에 쉽게 접근할 수 있습니다.

ExecuTorch

torchtune으로 파인 튜닝된 모델은 ExecuTorch쉽게 내보낼 수 있으며, 이를 통해 모바일 및 엣지 장치에서 효율적인 추론을 실행할 수 있습니다.

torchao

torchtunetorchao의 양자화 API를 사용하여 파인 튜닝된 모델을 4비트 또는 8비트로 간단하게 양자화할 수 있는 포스트-트레이닝 레시피를 제공합니다.

사용 방법

먼저 PyTorch 환경을 준비한 뒤, torchtune을 설치해야 합니다:

pip install torchtune

torchtune을 사용하여 첫 번째 대형 언어 모델(LLM)을 파인 튜닝하는 방법을 소개합니다. 이 가이드는 Llama2 7B 모델을 예로 들어 모델 다운로드부터 평가, 양자화, 추론까지의 전체 워크플로를 단계별로 설명합니다.

모델 다운로드

  1. 모델 가중치 접근 확인: 먼저, meta-llama 리포지토리 지침을 따라 Llama2 모델 가중치에 접근할 수 있는지 확인합니다.
  2. 가중치 다운로드 명령어:
     tune download meta-llama/Llama-2-7b-hf --output-dir /tmp/Llama-2-7b-hf --hf-token <HF_TOKEN>
    
  • 위 환경 변수 HF_TOKEN을 설정하거나 명령에 --hf-token을 추가하여 접근을 검증하세요. 토큰은 HuggingFace 설정에서 발급받을 수 있습니다.

파인 튜닝 레시피 실행

  • 단일 GPU에서 Llama2 7B + LoRA 실행:

    tune run lora_finetune_single_device --config llama2/7B_lora_single_device
    
  • 분산 트레이닝 (2개의 GPU 사용):

    tune run --nproc_per_node 2 full_finetune_distributed --config llama2/7B_full
    
  • :warning: torchrun 명령어는 레시피 지정 이전에 위치해야 합니다. 이후의 CLI 인자는 설정에 영향을 주지 않고 명령어를 덮어씁니다.

설정 수정 방법

  • CLI로 실행 시 설정 덮어쓰기:

    tune run lora_finetune_single_device --config llama2/7B_lora_single_device batch_size=8 enable_activation_checkpointing=True max_steps_per_epoch=128
    
  • 로컬 설정 복사 및 수정:

    tune cp llama2/7B_full ./my_custom_config.yaml
    
    • 위에서 복사 및 수정한 설정을 사용하여 사용자 정의 레시피를 실행:
    tune run full_finetune_distributed --config ./my_custom_config.yaml
    

위의 단계를 통해 torchtune을 사용하여 LLM을 효과적으로 파인 튜닝할 수 있습니다. 추가적인 CLI 명령어와 옵션에 대해서는 tune --help를 확인하고, 설정 사용 및 업데이트에 대한 자세한 정보는 config deep-dive를 참고하세요.

더 읽어보기

torchtune 출시 공지

torchtune GitHub 저장소

torchtune 튜토리얼

https://pytorch.org/torchtune/main/

https://pytorch.org/torchtune/stable/tutorials/first_finetune_tutorial.html

https://pytorch.org/torchtune/stable/tutorials/e2e_flow.html

TorchTune 소개 글 (공식 출시 전)




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:kr:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:gift: 아래:arrow_lower_right:쪽에 좋아요:heart:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요