728x90
요약
inference engineering용어 多
모델의 구성 요소
- 모델 데이터
- 모델 아키텍처
- 모델 실행 코드
- LLM
- Embedding
- Transformer Block
- Attention
- FFN
- Output head
- Embedding
- 아키텍처와 데이터를 분리해서 저장하는 이유
- 전체 모델을 하나의 파일로 저장할 수 있지만, 아키텍처와 weight를 분리하면 버전 변경, 부분 로딩, fine-tuning, 레이어 추가 같은 운영 시나리오에 더 유연
- e.g. 새 모델 구조와 기존 checkpoint 사이에 일부 key가 맞지 않아도 호환되는 파라미터만 선택적으로 로드 가능
- 전체 모델을 하나의 파일로 저장할 수 있지만, 아키텍처와 weight를 분리하면 버전 변경, 부분 로딩, fine-tuning, 레이어 추가 같은 운영 시나리오에 더 유연
- 설정 (Config) 파일
- 가중치 (Weight) 파일
- 토크나이저 관련 파일
모델 생명주기

- 학습 ~ 서빙까지
- 이 책에서는 서빙 부분을 주로 다룬다
모델 서빙

- 모델 서빙은 API, 웹 서비스, 애플리케이션 내 통합 방식 등을 통해 모델 inference를 제공하는 과정
- LLM 최적화 : 트랜스포머Transformers 에 대한 탄탄한 이해가 필수적
[!hint] 왜 공부해야하는가?
기술은 계속 진화 / 기술을 알아야 비용, 보안 등의 문제에서 적절한 최적화 가능
e.g. GPU 노드 50대로 최적화할 만한 걸 10대로 최적화 등등
- 서빙 라이브러리 중 유명한 게
vLLM: https://docs.vllm.ai/en/stable/
vLLM Workflow

- GPU 설정 최적화는 게임 최적화이다.
- 비즈니스 SLA(지연시간/처리량 기준)를 충족시키기 위한 필수 요소
모델 서빙 방안
Single-model Service : 단일 모델 서비스

- 클라우드 기반 모델 서빙에서 가장 널리 쓰이는 클래식 패턴
- 각 모델을 독립된 웹서비스로 배포하여 http/gRPC로 예측 API 노출
- 표준 MSA 구조를 따르고 API 요청 -> 백엔드 워커로 라우팅
라우팅 전략
- 단순 라운드로빈은 한계가 있음
- KV cache
스케일링 방식
- 수평 확장
- 수직 확장
- 중요 원칙
- 가능하면 여러 머신에 분산(inter-node)하기 보다, 한 머신에 여러 GPU로 구성하는 게 낫다.
- 머신 간 분산은 네트워크 오버헤드와 동기화 복잡도로 인해 지연시간이 늘어남
- Bin Packing 스케줄러
- K8s 기본 스케줄링은 가능한 골고루 분산
- 제한된 자원을 최적화하여 사용하는 스케줄링 전략
[!note] GPU가 파편화되어서 배포되기 때문에 이를 효율적으로 스케줄링 하기위한 다양한 스케줄링 방법이 많이 등장함
Multi-Model Service
- 컨테이너 하나가 여러 모델을 공유해서 실행
- 특정 모델에 맞춰서 라우팅
- 라우팅 계층에 두 가지 기능 추가
- replica: 각 모델을 몇 개 인스턴스로 호스팅할지 정의
- route map: 어떤 모델이 어떤 컨테이너에 있는지 추적하는 맵
728x90
'🤖 AI' 카테고리의 다른 글
| Continuous Batching과 PagedAttention (0) | 2026.08.15 |
|---|---|
| LLM (35) | 2024.05.27 |
| [OCR] EasyOCR 손글씨 및 한국어 Fine Tuning (0) | 2023.05.31 |
| [DNN] 신경망의 구조 (0) | 2022.02.07 |
| [DNN] 그래디언트, 옵티마이저 정리 (0) | 2021.10.02 |