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에 달하기 때문에 하나의 파일로는 저장 자체가 불가능하다. 메모리 문제: 단일 파일을 로드하려면 파일 전체를 한 번에 메모리에 올려야
Curcuit Tracing
llm
위 글의 이해를 위한 번역, 정리글입니다. Circuit Tracing: Revealing Computational Graphs in Language Models 딥러닝 모델은 수많은 계산 단위(인공 뉴런)의 작용으로 출력을 생성한다. 딥러닝 모델을 인간이 이해 가능한 언어로 설명하는 것은 바이너리 프로그램을 리버스 엔지니어링하는 것과 유사한 역추적이 필요하며, 이 분야에 대한 연구를 Mechanistic interpretability(MI)라고 부른다. Anthropic 팀은 이를 이해하기 위해 1. 우선 모델이 계산에 사용하는 특징(feature)을 식별하고, 2. 이러한 특징들이 상호 작용하여 모델 출력을 생성하는 과정을 설명하려 했다. 기본적으로 활성화 함수와 가중치로 계산하는 작은