반응형
SMALL
1. LLM이란 무엇인가? (개념)
LLM은 수조 개의 문장을 학습해서 "다음에 올 가장 확률 높은 단어"를 예측하는 인공지능 모델입니다.
- Large (거대): 모델을 구성하는 파라미터(매개변수) 수가 수십억 개에서 수천억 개에 달합니다. (예: GPT-4, Llama 3 등)
- Language (언어): 텍스트를 이해하고 생성하는 데 특화되어 있습니다.
- Model (모델): 일종의 거대한 '확률 계산기' 프로그램입니다.
2. 왜 하드웨어(GPU)가 중요한가?
LLM은 엄청나게 거대한 행렬 연산(Matrix Multiplication)의 덩어리입니다.
- 병렬 연산: 한 문장을 처리할 때 수조 번의 계산이 동시에 일어나야 합니다. CPU는 하나씩 똑똑하게 처리하지만, GPU는 수만 개의 코어가 동시에 계산하기 때문에 LLM에 필수적입니다.
- 메모리(VRAM) 점유: 모델이 너무 커서 GPU 한 장의 메모리(HBM)에 다 안 들어가는 경우가 많습니다. 그래서 민서 님이 다루시는 H100 8장(640GB)을 하나로 묶어 거대한 모델을 올리는 것입니다.
3. LLM의 주요 라이프사이클 (인프라 관점)
인프라 엔지니어는 LLM의 단계에 따라 서버 자원을 다르게 관리합니다.
- 훈련 (Training): 아무것도 모르는 모델에게 데이터를 쏟아부어 학습시키는 단계입니다.
- 특징: 수개월간 수백 대의 GPU(DGX 클러스터)가 풀 가동됩니다. 인피니밴드(UFM) 성능이 가장 중요한 시점입니다.
- 파인튜닝 (Fine-tuning): 이미 학습된 모델에 특정 도메인(예: 42dot의 자율주행 데이터)을 추가로 가르치는 단계입니다.
- 특징: 훈련보다는 자원을 적게 쓰지만, 여전히 고성능 GPU가 필요합니다.
- 추론 (Inference/Serving): 사용자가 질문하면 대답을 생성하는 실서비스 단계입니다.
- 특징: 속도가 중요합니다. 이때 자원을 효율적으로 쓰기 위해 MIG로 GPU를 쪼개거나, Kubernetes로 서비스를 배포합니다.
4. LLM의 핵심 아키텍처: 트랜스포머(Transformer)
현재 거의 모든 LLM의 뼈대입니다. 인프라 엔지니어 입장에서는 '엄청난 병렬 연산'을 강제하는 구조로 이해하면 됩니다.
- 셀프 어텐션(Self-Attention): 문장 내 단어 간의 관계를 계산하는 핵심 알고리즘입니다. 문장이 길어질수록 계산량이 제곱으로 늘어나며, GPU의 Tensor Core를 극한으로 소모하여 발열의 주원인이 됩니다.
- 병렬 처리의 극대화: 과거 모델과 달리 문장 전체를 한꺼번에 GPU에 때려 넣고 처리합니다. 이 때문에 H100처럼 수만 개의 코어를 가진 하드웨어가 필수적입니다.
5. 데이터의 최소 단위: 토큰(Token)
컴퓨터는 텍스트를 직접 읽지 못해 숫자로 변환하는데, 그 단위를 토큰이라 부릅니다. 인프라 성능 지표의 기준이 됩니다.
- TPS (Tokens Per Second): 인프라의 처리 속도를 나타내는 단위입니다. "초당 몇 문장"이 아니라 "초당 몇 토큰을 생성하는가"가 서버의 실질적인 성능 지표입니다.
- 컨텍스트 윈도우(Context Window): 모델이 한 번에 기억하는 토큰의 양입니다. 이 값이 커질수록 GPU의 VRAM(HBM) 점유율이 기하급수적으로 올라가며, 메모리 부족(OOM, Out of Memory) 에러의 주범이 됩니다.
6. 인프라 엔지니어의 3대 핵심 관리 요소
LLM 서비스를 안정적으로 돌리기 위해 엔지니어가 컨트롤해야 하는 세 가지 자원입니다.
① 컴퓨트(Compute): 연산 정밀도 최적화
- FP8 / FP4: 모델의 연산 정밀도를 낮춰 속도를 높이는 기술입니다. B200 같은 차세대 하드웨어는 이 낮은 정밀도 연산을 하드웨어적으로 지원하여 LLM 추론 속도를 몇 배씩 끌어올립니다.
② 메모리(Memory): 대역폭과 용량
- Capacity (용량): 모델의 파라미터가 워낙 커서 GPU 한 장에 다 안 들어갑니다. (예: 70B 모델은 수백 GB 필요)
- Bandwidth (대역폭): 연산 속도만큼이나 데이터를 메모리에서 GPU 코어로 퍼 올리는 속도가 중요합니다. HBM3e 같은 고대역폭 메모리가 필요한 이유입니다.
③ 커뮤니케이션(Communication): 노드 간 통신
- 모델이 너무 커서 여러 대의 서버(노드)에 나눠 올릴 때, 서버끼리 데이터를 주고받는 속도가 병목이 됩니다. 이를 해결하기 위해 민서 님이 공부하신 NVLink와 인피니밴드(UFM) 설정을 최적화해야 합니다.
반응형
LIST
'🔧 Engineering > 📁 Infra & System' 카테고리의 다른 글
| 오픈 커널 모듈 (0) | 2026.05.22 |
|---|---|
| nomodeset 이란? (0) | 2026.05.21 |
| Redfish API 정리 (0) | 2026.03.20 |
| 리눅스 시스템의 핵심: fstab & GRUB 정리 (0) | 2026.03.20 |
| Linux Mount (마운트) 정리 (0) | 2026.03.17 |