AI 탐구노트

LightLLM : Python 기반 LLM 추론 및 API 제공 프레임워크 본문

AI 기술

LightLLM : Python 기반 LLM 추론 및 API 제공 프레임워크

42morrow 2024. 10. 3. 15:50

사진 : oneook님의 Thumbnail Maker로 제작

 

 

 

기존 LLM 추론 및 서비스 제공 방식은 다음과 같은 문제가 있었습니다. 

  • 메모리 파편화 : 대규모 LLM의 네트워크 가중치와 추론 과정에서 증가하는 KV 캐시는 메모리르 효율성을 저하
  • 비효율적인 요청 스케쥴링 : 동적으로 변하는 요청 길이 때문에 CPU 사용률이 낮아질 가능성이 높아짐
  • 커널 커스터마이징의 어려움 : LLM의 네트워크 성능을 최적화하기 위한 커널 커스터마이징이 어려워 개발 비용이 상승

 

LightLLM은 이러한 문제를 세분화된 TokenAttention 메커니즘과 Efficient Router 스케쥴링을 도입하여 메모리 관리 및 요청 스케쥴링 효율을 개선하고 이를 통해 시스템 전반의 처리량을 크게 향상 시킵니다. 

 

 

LightLLM의 아키텍처 설명

 

LightLLM의 핵심 설계는 다중 프로세스 협업인데 각 프로세스가 모듈들을 담당하고 이들 간은 zmq(Zero MQ), rpc를 이용하고 있습니다. 

 

 

 

아래 그림은 전체 구성을 보여주고 있는데 각각의 모듈별 기능은 다음과 같습니다.  (세부 아키텍처와 설명은 이곳 참조)

  • Http Server : 요청 수신 
  • Metric Server : 시스템 운영 성과 지표 기록
  • Health Server : 시스템 운영 상태 모니터링. 살았나 죽었나...
  • Router : 요청 스케쥴링
  • Visual Server : 멀티모달 요청 처리
  • Cache Manager Server : 멀티모달 정보 추론 결과 캐시 관리
  • Model Backend : 모델 추론 관리

 

LightLLM의 기술적 차별점

LightLLM은 TokenAttention Efficient Router의 조합을 통해 GPU 메모리 사용을 최적화하면서 서비스의 처리량을 개선하고 , 이를 통해 기존 LLM 배포 프레임워크 대비 약 4배의 성능 향상을 보여줍니다. 또한, 3중 비동기 프로세스 협업 구조는 GPU 활용도를 극대화하여 서비스 효율성을 높입니다.

 

LightLLM의 특징 요약

 

LightLLM의 특징을 요약하면 다음과 같습니다. 

  • 3중 비동기 프로세스 협업 : 토큰화, 모델 추론, 토큰 해제를 비동기적으로 처리하여 GPU 활용도를 높임
  • TokenAttention 사용 : 토큰 단위로 KV 캐시 메모리를 관리해 메모리 낭비를 줄임
  • Efficient Router 적용 : 각 토큰의 GPU 메모리 관리와 최적화를 통해 처리량을 증가시킴 
  • 유연한 Python 기반 : LightLLM은 순수 Python으로 개발되어 다양한 모델의 빠른 확장과 커스터마이징을 지원
  • 다양한 LLM 모델 지원 : 많은 수의 주요 오픈소스 LLM, VLM 등을 지원합니다. (링크)

 

 

 

 

참고) 코드(깃헙), 문서