Skip to content

태그: LLM

총 9개의 글이 있습니다.
vLLM
llm
vLLM은 LLM 추론과 서빙을 위한 고성능 엔진이다. 같은 모델을 HuggingFace transformers로 돌릴 때와 비교해 수배~수십 배 빠른 처리량을 보여주는데, 이는 GPU 메모리 관리, 커널 최적화, 스케줄링 등 여러 계층에서의 최적화가 결합된 결과이다. 같은 모델인데 추론 엔진에 따라 성능 차이가 나는 이유를 이해하려면, LLM 추론이 왜 느린지부터 알아야 한다. LLM 추론의 병목 LLM의 텍스트 생성은 autoregressive 방식이다. 토큰 하나를 생성하려면 이전까지의 모든 토큰에 대한 attention 계산이 필요하고, 이 과정이 토큰 수만큼 반복된다. 100 토큰을 생성하면 모델의 forward pass가 100번 실행되는 것이다. 여기서 두 가지 핵심 병목이 발생한다. 메모리
Checkpoint Shard
llm
Checkpoint shard는 대규모 모델의 가중치(weight) 파일을 여러 개의 작은 파일로 분할한 것이다. LLM처럼 수십~수백 GB에 달하는 모델을 학습하거나 배포할 때, 가중치를 단일 파일에 저장하면 여러 문제가 발생한다. Checkpoint shard는 이 문제를 해결하기 위해 모델 파라미터를 여러 파일에 나누어 저장하는 방식이다. 모델이 커지면서 단일 파일 저장 방식에는 아래같은 한계가 생긴다. 파일 크기 제한: GitHub LFS는 파일당 5GB, Hugging Face Hub도 단일 파일 업로드에 제한이 있다. 70B 모델의 FP16 가중치는 약 140GB에 달하기 때문에 하나의 파일로는 저장 자체가 불가능하다. 메모리 문제: 단일 파일을 로드하려면 파일 전체를 한 번에 메모리에 올려야