728x90

요약

  • inference engineering 용어 多

모델의 구성 요소

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

모델 생명주기

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

모델 서빙

  • 모델 서빙은 API, 웹 서비스, 애플리케이션 내 통합 방식 등을 통해 모델 inference를 제공하는 과정
  • LLM 최적화 : 트랜스포머Transformers 에 대한 탄탄한 이해가 필수적

[!hint] 왜 공부해야하는가?
기술은 계속 진화 / 기술을 알아야 비용, 보안 등의 문제에서 적절한 최적화 가능
e.g. GPU 노드 50대로 최적화할 만한 걸 10대로 최적화 등등

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