<aside> 💡 Linkedin의 원저자(Sharada Yeluri)의 허락을 받아 원문을 번역 및 검수중입니다.
</aside>
<aside> 🚧 번역 오류 발견시 알려주시면 수정하겠습니다.
</aside>
원문 저자: Sharada Yeluri
번역: 신종훈
원문을 번역하고 일부 링크를 추가하였습니다. 해당 글의 1인칭은 원문 저자를 지칭합니다.
원문(Original English Post by Sharada Yeluri):
LLM Inference - HW/SW Optimizations
이 기사는 대규모 언어 모델(LLM) 훈련에 관한 제 이전 기사의 후속편입니다. 이 글에서는 LLM 추론 워크플로우의 세부 사항, 훈련과의 차이점, 추론을 효율적으로 만들기 위한 다양한 하드웨어 및 소프트웨어 최적화, 그리고 추론 하드웨어 환경에 대해 설명하고자 합니다.
LLM의 맥락에서 추론은 사용자의 질문이나 프롬프트에 대한 훈련된 LLM 모델로부터 응답을 얻는 과정을 말합니다. 추론은 LLM을 배포하는 데 있어 중요한 단계입니다. 하지만 모델이 실제 사용을 위해 배포되기 전에 많은 과정이 필요합니다.
먼저, 훈련된 모델은 메모리 사용량을 줄이고 연산 강도를 낮추기 위해 여러 최적화 과정을 거칩니다. 이렇게 최적화된 모델은 특정 하드웨어(그래픽 처리 장치 또는 추론 가속기)에 맞게 컴파일됩니다. 컴파일된 모델들은 추론 서빙 시스템의 파일 서버에 저장됩니다. 추론 서빙 시스템은 AI/ML 모델을 추론하기 위해 관리하고 제공하는 전체 인프라 및 소프트웨어 생태계를 의미합니다. 이들은 복잡성과 기능 면에서 다양하지만 일반적으로 여러 핵심 구성 요소를 포함하고 있습니다.
로드 밸런서(소프트웨어 어플리케이션)는 사용자 요청을 여러 추론 서버에 분배하며, 이 서버들은 다시 CPU에서 호스팅되는 소프트웨어 어플리케이션입니다. 각 추론 서버는 GPU 또는 추론 가속기 클러스터와 연결되어 있습니다. 추론 서버는 컴파일된 모델을 파일 시스템에서 가속기 메모리로 복사하는 역할을 합니다. 사용자의 요청을 받으면 이들은 여러 요청을 함께 배치하여 전체 처리량을 향상시키고, 이 요청들을 추론 가속기 클러스터로 전달하여 실행시킵니다. 이 서버들은 또한 입력 데이터의 전처리와 결과의 후처리를 담당합니다. 다른 기능으로는 시스템의 처리량, 보안 등을 모니터링하는 것이 포함됩니다. Nvidia의 Triton 추론 서버는 추론 서버의 한 예입니다.
추론 서빙 시스템의 목표는 공공 클라우드 또는 데이터 센터에서 추론 요청에 대해 빠르고, 신뢰할 수 있으며, 확장 가능한 응답을 제공하면서 총 소유 비용(TCO)을 낮게 유지하는 것입니다. 거대한 모델 크기와 LLM 추론의 자동 회귀적(auto-regressive) 특성 때문에 이는 LLM 모델에 있어서 도전적인 과제입니다.
공공 클라우드에서 LLM 추론 작업량이 증가함에 따라, 기업들이 데이터 센터에서 자체적인 추론 시스템을 구축하려 하고 있습니다(공공 클라우드 제공업체에게 각 쿼리에 대한 프리미엄을 지불하는 것을 피하기 위해). 이에 따라 학계, 스타트업, hyper scaler 연구소에서 추론의 모든 측면을 최적화하기 위한 활동이 활발합니다. 이 글은 이 주제에 대한 최신 정보를 담고 있습니다.
면책 조항: 저는 주니퍼 직원이지만, 이 블로그에 표현된 의견은 제 개인적인 의견이며 제 고용주의 의견을 반영하는 것은 아닙니다.
LLM 훈련에 대한 간단한 복기(제 이전 기사에서 가져옴)입니다.