AI 추론을 위한 최적의 하드웨어 스펙을 결정할 때 고려해야 할 네 가지

yoohee.chung·2023년 10월 12일
0

추론이 사용자 경험을 결정한다.

AI 서비스를 개발하는 입장에서는, 모델의 학습이 더 중요하게 느껴진다. 따라서 학습을 위한 인프라에 자연스럽게 많은 금액을 투자하게 된다. 그러나 최종 사용자 입장에서는 모델 학습을 하는 데 걸리는 시간과 비용이 얼마나 되는지는 거의 신경 쓸 필요가 없는 이슈이다. 사용자 입장에서는 '내 질문에 대한 대답이 얼마나 빨리 돌아오느냐' 혹은 '단위 시간 내에 몇 개의 입력을 처리해낼 수 있느냐' 하는 것이 훨씬 더 중요하다.

따라서 추론 서빙을 위한 하드웨어 스펙을 결정하는 것은 실제로 운영되는 서비스에서는 매우 중요한 일이 아닐 수 없다. 그러나 모델 추론에 적합한 하드웨어를 찾는 것은, 특히나 원하는 만큼의 성능을 충족함과 동시에 비용도 저렴해야 하는 경우 귀찮고 어려운 작업이 될 수 있다.

가장 확실한 방법은 여러 유형에 걸친 하드웨어에 대해 모델 성능을 벤치마킹하여 성능 목표에 적합한 하드웨어를 고르는 것이다. 하지만 세상 모든 하드웨어에 대해 다 성능을 벤치마킹할 수는 없다. 어떤 지표를 고려하며 벤치마킹하는 게 좋을까. 네 가지 주요 요소를 살펴보자.

1. 모델 처리량 (Throughput)

딥 러닝 모델의 맥락에서 처리량은 단일 시간 단위로 처리할 수 있는 데이터 단위의 수로 정의할 수 있다. 예를 들어, 이미지를 분류하는 딥러닝 모델의 처리량은 모델이 단위 시간 동안 처리할 수 있는 이미지의 수이다. 일반적으로 시간의 단위는 1초이므로, 따라서 FPS(초당 프레임 수)는 이러한 딥 러닝 모델의 처리량 단위가 된다.

GPU 또는 CPU 장치에서 모델의 잠재적인 처리량은 실제로 대규모 배치 작업 능력에 따라 달라진다. 하드웨어에 따라 동일한 모델을 실행하더라도 다양한 대규모 배치 작업 성능을 제공하므로 선택한 추론 하드웨어가 대상 처리량 성능을 지원할 수 있는지 확인하는 것이 중요하다.

하드웨어 가속기가 높은 처리량을 지원하기 위해서는 한 번에 처리할 수 있는 배치의 크기가 커야 한다. 이는 해당 가속기가 높은 memory bandwidth를 지원할 수 있어야 함을 의미한다.

2: 모델 대기 시간 (Latency)

딥 러닝 모델의 맥락에서 대기 시간은 추론에 걸리는 시간이다. 이미지 처리라면 대기 시간은 하나의 이미지를 처리하는 데 걸리는 시간으로 정의할 수 있으며, LLM 기반 챗봇이라면 응답이 회신되기까지의 시간으로 정의할 수 있다. latency는 초 또는 밀리초 단위 등, 요청부터 응답까지의 시간으로 측정할 수 있다.

하드웨어 장치마다 FLOPS(초당 부동 소수점 연산) 속도가 다르다. 이는 모델의 대기 시간에 영향을 미친다. 명확한 대기 시간 목표를 설정하고 배포 전에 다양한 하드웨어에서 이를 벤치마킹하면 올바른 결정을 내리는 데 도움이 된다.

대기 시간은 메모리가 bottleneck이 되는 지표가 아니다. 그러므로 throughput보다는 latency에만 투자하면 된다면, 굳이 메모리 용량이 큰 GPU를 구매하느라 많은 비용을 지출할 필요가 없다.

다음 페이지를 참고하면 NVIDIA GPU별 FLOPS를 확인할 수 있다. 부동소수점 타입에 따라 성능이 다르다는 점에 유의하도록 한다.
NVIDIA GPU FLOPS 비교

3: 모델 메모리 사용량

딥 러닝 모델 성능의 맥락에서 모델 메모리 사용량은 모델이 차지하는 memory footprint와 하드웨어의 실제 메모리 용량의 비율로 정의된다.(메모리 점유량/메모리 크기)
모델 메모리 사용량은 model batch size 외에도 model architecture에 영향을 받는 지표이다. 즉, 보다 효율적인 딥 러닝 모델은 상대적으로 모델 메모리 사용량이 적습니다.

메모리 사용 요구 사항에 맞는 올바른 하드웨어를 선택할 때는 다음과 같은 부분을 따져보아야 한다.

  • 메모리 측면에서 내 모델의 크기는 얼마나 되는가?
  • 사용하려는 일반적인 배치 크기는 얼마인가?
  • 대상 하드웨어의 제한 사항은 무엇이 있는가?
  • 내 모델이 운영 환경에 올라갔을 때, 메모리가 bottleneck이 될 것인가?

4: 비용

지금까지 성능을 살펴보았지만, 잊어선 안 되는 매우 중요한 요소가 있다면 역시 비용일 것이다.
만일 클라우드 환경에 서비스를 구성한다면, 딥 러닝 모델을 배포할 때 클라우드 기반 컴퓨팅 인프라를 사용하는 비용은 전체 예산에서 중요한 구성 요소다.
온프레미스 환경을 구성할 경우, GPU만 구입한다고 이야기가 절대 끝나지 않는다. 높은 처리량과 FLOPS 를 갖는 서버(예를 들어 NVIDIA DGX)의 경우 전력 소모량과 전기료도 매우 높으며, 데이터센터 상면을 확보하는 것도 쉽지 않을 수 있다.

profile
잘 먹고 잘 살고 싶습니다.

0개의 댓글