본문 바로가기
🟣 AI & ML

Pytorch, 온디바이스 LLM 구동이 가능한 torchchat 소개

by 제리강 2024. 7. 31.

TL;DR

Pytorch에서 torchchat이라는 LLM 프레임워크를 소개했다.
이미 LLM을 연동하는 서비스는 많은데 왜?라는 생각이 들었는데, torchchat은 로컬이나 온디바이스에서의 효율적인 추론에 초점을 맞춘 것 같다.
Github에서도 llama.c, 양자화와 같은 LLM 경량화 프로젝트에 영향을 많이 받았음을 언급하고 있다.
본 포스트에서는 torchchat을 사용해보기 전에 Pytorch가 소개한 아티클을 살펴보도록 한다. 

 

출처:

https://pytorch.org/blog/torchchat-local-llm-inference

 

Introducing torchchat: Accelerating Local LLM Inference on Laptop, Desktop and Mobile

Today, we’re releasing torchchat, a library showcasing how to seamlessly and performantly run Llama 3, 3.1, and other large language models across laptop, desktop, and mobile.

pytorch.org

 

Introducing torchchat: Accelerating Local LLM Inference on Laptop, Desktop, and Mobile

Torchchat 소개: 노트북, 데스크톱, 모바일에서 로컬 LLM 추론 가속화하기

by Team Pytorch

 

  • Pytorch는 노트북, 데스크탑, 모바일에서 Llama 3, 3.1 및 기타 대형 언어 모델(LLM)을 원활하고 효율적으로 실행할 수 있는 라이브러리인 torchchat을 공개.
  • 이전 블로그 게시물에서 네이티브 PyTorch 2.0을 사용하여 CUDA를 통해 뛰어난 성능으로 LLM을 실행하는 방법을 소개함.
  • Torchchat은 더 많은 환경과 모델 지원을 지원하고, 실행(execution) 모드와 중요한 기능(e.g. 내보내기, 양자화, 이해하기 쉬운 형태로 내보내기) 를 제공

프로젝트는 세 가지 영역으로 구성됨:

  • Python: Torchchat은 Python CLI를 통해 호출되거나 브라우저를 통해 접근할 수 있는 REST API를 제공.
  • C++: Torchchat은 PyTorch의 AOTInductor 백엔드를 사용하여 데스크탑 친화적인 바이너리를 생성.
  • 모바일 장치: ExecuTorch를 사용하여 온디바이스 추론을 위한 .pte 바이너리 파일 반환.

 

 

성능

  • 다양한 환경에서의 Llama 3에 대한 torchchat의 성능 측정 결과.
  • Llama 3.1의 데이터는 곧 제공될 예정.

Apple MacBook Pro M1 Max 64GB 환경에서 Llama 3 8B Instruct 모델 실행

Mode Dtype Tokens/Sec
Arm Compile float16 5.84
  int8 1.63
  int4 3.99
Arm AOTI float16 4.05
  int8 1.05
  int4 3.28
MPS Eager float16 12.63
  int8 16.9
  int4 17.15

 

 

Linux x86 및 CUDA에서 Llama 3 8B Instruct 실행

* Intel(R) Xeon(R) Platinum 8339HC CPU @ 1.80GHz, 180GB RAM, A100 (80GB) 사용

Mode Dtype Tokens/Sec
x86 Compile bfloat16 2.76
  int8 3.15
  int4 5.33
CUDA Compile bfloat16 83.23
  int8 118.17
  int4 135.16

 

  • Samsung Galaxy S22, S23, iPhone 15 Pro에서 4-bit GPTQ와 사후 훈련 양자화(Post-training Quantization, PTQ)를 사용하여 Llama 2 7B 실행이 가능함을 확인.
  • ExecuTorch와 협력하여 Llama 3 8B 지원 초기 작업을 수행 중.
  • 내보내기 속도, 메모리 오버헤드, 런타임 속도 개선.
  • Core ML, MPS, HTP를 통해 더욱 강력한 성능 예상.
  • torchchat 저장소 클론 및 피드백 공유 권장.
  • 추가 모델, 하드웨어 지원, 새로운 양자화 방식, 성능 개선 등 커뮤니티 기여를 환영함.

*참고: torchchat github 저장소

댓글