AI service를 위한 현실적인 접근 방법 (3): Massive AI Inference
Big Model을 서비스하기 위해선 필요한 것들은 무엇인가?
GPT- 3
OpenAI가 Scaling Laws for Neural Language Models 논문(‘20)를 통해 모델 사이즈, 데이터셋 크기, 컴퓨팅 리소스, 모델 구조의 관계에 대해서 경험적인 법칙을 발견하였고 GPT-3와 같은 Big Model이 탄생할 수 있는 근거가 되었다.
모델 구조가 모델 성능에 차지하는 비중이 가장 낮기 때문에 HyperScaler, Cloud 업체들은 데이터셋과 컴퓨팅 리소스가 충분한 관계로 모델 사이즈를 늘려 모델 성능을 늘리는 연구를 진행하고 있다.
현재 추세는 모델 layer를 깊게 쌓아 올리거나 Hidden Dimension의 사이즈를 늘려 모델 사이즈를 크게 늘려 성능을 높이고 있다.
GPT-3 학습 비용 & 학습시간
GPT-3 논문의 나온 GPT-3 175B를 학습에 필요한 총 학습 연산량(total train compute)은 3.14E+23 flops이다. V100 GPU(28 Tflops)로 355년이 걸리는 시간이다.
Azure 클라우드 비용으로 환산한 GPT-3의 학습 비용은 다음과 같다.
$ 420만 (1 year reserved) ~ $ 860만 (Pay as you go)
https://azure.microsoft.com/en-ca/pricing/details/virtual-machines/linux/
AI 연구자들은 서서히 레이어와 파라미터를 증가시키고, 최적 구성에 도달할 때까지 LM의 많은 하이퍼 파라미터를 조작해야하다. 이 시행 착오는 뉴럴네트워크가 성장함에 따라 점점 더 비싸다.
전문가들은 총 모델 학습 비용을 최종 모델 학습 비용의 1.5배~5배 사이로 추정하므로 GPT-3의 하이퍼 파라미터를 튜팅을 포함한 모델 학습 비용은 최대 $4300만로 예측된다.
이 비용은 GPT-3 Small 부터 GPT-3 175B까지 8개 GPT-3의 variant 학습 비용과 AI 연구자들의 급여는 반영되지 않은 비용이다.
또한 대부분의 딥러닝 모델은 정적으로 모든 학습 데이터는 일정 기간이 지나면 더 이상 현실 세계를 제대로 표현하지 못하므로 재 학습이 이루어져야 한다.
특히 세상이 발전함에 따라 끊임없이 변화하는 정보는 Model decay를 방지하는 것은 중요한 이슈이다. 예를들어 코로나-19 발생 이전에 학습된 GPT-3 모델은 코로나-19 발생 이후의 세상이 어떻게 변화되었는지 알 수 없다.
따라서 OpenAI가 다양한 분야의 작업 수행에 적합한 AI 모델을 최신 상태로 유지하기 위해 GPT-3를 재학습하는 비용 또한 총 GPT-3 학습 비용에 추가되어야 한다.
GPT-3의 GPU 메모리 용량 추정
GPT-3는 신경망의 크기가 매우 크기 때문에 실제 추론에 활용하기 매우 어렵다. GPT-3을 이용하여 추론 서비스를 하려면 실행비용이 얼마나 들까?
OpenAI에 따르면 GPT-3는 fp16를 사용하므로 추론에 최소 350GB의 GPU 메모리가 필요하다. 하지만 메모리 요구사항은 파라미터뿐만이 아니라 AI framework이 필요한 메모리 용량도 추가되어야함
GPT-2를 통해 추산해보면… 결국 GPT-3의 GPU 메모리 요구사항이 400GB를 넘을 수 있이다.
- GPT-2(345M): 모델 파라미터만으로 1.38GB(FP32)의 GPU 메모리 용량 필요. Tensorflow에서 추론을 실행하려면 4.5GB의 GPU 메모리 용량이 필요함
- GPT-3(774M): 모델 파라미터만으로 3.09GB(FP32)의 GPU 메모리 용량 필요. Tensorflow에서 추론을 실행하려면 8.5GB의 GPU 메모리 용량이 필요함
GPT-3 서비스 Infrastructure 사양 추정
GPT-3를 Model Compression하기 전이라면 최소 32GB의 메모리가 있는 최소 11개의 Tesla V100 GPU가 필요하다. 대략 V100 GPU 1대당 $9000 이므로 최소 $99000이 GPU 구매 비용으로 들어간다.
나머지 CPU+Board+RAM+SSD+Power Supply+Chassis는 최소 $수천이므로 다른 비용(전기, 냉각, 백업 등)을 고려하지 않은 상태로 최소 $10만 ~ $15만로 추정된다.
따라서 GPT-3를 추론하기 위한 최소 Baseline은 DGX-1 ($13만)이다.
- DGX-1: 8x V100 (32GBx8 = 256GB)
- DGX-2:16x V100 (32GBx16 = 512GB)
GPT-3 Pricing
GPT-3는 4가지의 모델(Davinci, Curie, Babbage, Ada)을 제공하며 1K Token당 가격을 책정하고 있으며 GPT-3의 마진율이 60배라는 계산이 있다.
https://beta.openai.com/pricing
GPT-3는 성능을 높이기 위해 Fine-tuning 옵션을 고객에 제공하고 비용을 청구하고 있다. Fine-tuning 과정은 1) Prepare and upload training data 2) Train a new fine-tuned model, 3) Use your fine-tuned model 이다.
https://beta.openai.com/docs/guides/fine-tuning
Fine-tuning 은 Davinci를 제외한 Curie, Babbage, Ada만 지원하면 Fine-tuning 비용은 다음과 같다.
Massive AI Inference 하기
현재는 Massive AI training/inference 중에서 Massive AI training가 더 큰 비중을 차지하고 있다. 그 이유는 모델 개발에 많은 HW 리소스를 필요로 하지만 Big Model을 이용한 구체적인 비즈니스가 아직까지 없기 때문이다.
만일 클라우드 업체가 Big Model(e.g., GPT-3) 기반의 서비스를 비즈니스화하여 제공한다면 Massive AI inference도 deployment 시 HW 리소스 문제에 직면할 가능성이 크다.
Big 모델을 이용한 AI 서비스 동향
예전에는 single-task를 위한 AI 서비스가 주류였지만 성능을 높이기 위해 Big Model을 이용하여 Multi-task를 커버하는 서비스로 변모하고 있다.
네이버의 AI 플랫폼 추진 방향
또한 Multi-Modal 모델과 같이 입출력이 multi-source 로 발전하는 동향은 Human-like AI로 가기 위한 동향과 맞물려 있다. (e.g., Google의 MuM)
Massive AI Inference 발전 방향
Cloud 업체가 PTM(Pre-Trained Model)을 기반으로 비즈니스를 추진 가능성이 크다. 위와 같은 경우, Big Model을 상용화 되면 Massive AI inference 수요가 더 커질 수 있을 것이다.
왜냐하면 Big Model의 fine-tuning은 Big Model의 PTM을 만드는 것보다 훨씬 더 적은 리소스로 가능해지기 때문에 모델을 만들기 위한 training보다 AI 서비스를 위한 inference의 비중이 더 커질 수 있다.
AS IS: 현재는 고객들이 직접 Big Model을 만들거나 학습해야 한다.
- 이 때 너무나 많은 초기 투자비용이 들어갈 수 밖에 없다.
- GPU는 2~3년마다 New Generation이 발표되고 HW는 구식이 될 수 밖에 없고 전기, 쿨링, 배전을 생각하면 더 많은 비용이 들어간다.
- 더군더나 숙련된 AI 연구자들을 고용해야 한다.
- 그리고 데이터셋이 없는데 Big Model을 어떻게 만들지…?
TO BE: Cloud 업체가 PTM을 API 수준으로 제공하고 고객이 fine-tuning하여 방식으로 발전할 것이다.
- 현재 데이터셋과 컴퓨팅 리소스를 가지고 있는 것은 AWS, Azure, GCP, 클라우드 업체들 뿐…
- 고객들이 직접 Pre-training하는 것은 너무 비효율적이며 데이터셋을 확보하는 것은 더 어려울 수 있다.
- 이미 잘 학습된 Big Model의 PTM을 충분히 활용하고, 이를 fine-tuning하는 방향으로 learning 방법이 발전할 수도 있다.
- 클라우드 업체는 PTM을 비즈니스화하여 AI 서비스로 직접 매출을 올릴 가능성이 높다.
- 고객은 고객이 가지고 있는 데이터셋을 이용하여 fine-tuning하는 식으로 성능을 개선할 가능성이 크다.
모델 Depolyment 방향은 다음과 같이 발전할 것으로 예측된다.
Big Model (Cloud) → fine-tuning (고객) → 모델 경량화 (고객 or Cloud) → 모델 depolyment (고객)
Massive AI Inference 기술 동향
Inference에서 가장 중요한 지표 → latency + Accuracy
챗봇1만개의모델서빙하기: AI서비스어디까지해봤니 [1]
Big Model의 경우 파라미터의 증가에 따라 latency이 크게 증가하여 실제 사업화하기 매우 어렵다. 그렇다면 Big Model의 latency를 줄이기 위해 다음과 같은 방법을 사용한다.
1) 모델 구조를 경량화
2) 모델 압축(Model Compression)
분산 추론(Distributed Inferenece) 기술
모델 압축을 통해 줄인 Big Model을 Deployment할 때 Single GPU로 서비스하기 어려울 정도로 크다면 분산 inference 기술을 활용해야 한다.
Big Model의 latency를 고려한다면 Single Node 수준에서 Model Parallelism을 실행하는 식으로 AI infrastructure가 제한될 가능성이 크다. 왜냐하면 Multi-Node 수준으로 inference를 한다면 Node 간 interconnect에서 bottleneck 때문에 서비스 latency를 지키기 어려울 수 있다.
학습 시 heterogeneous computing을 이용하여 optimizer state를 CPU에서 연산하는 방법으 이미 활용되고 있다.CPU 메모리에 Optimizer States들을 저장하고 CPU가 Optimizer 연산을 수행하면 가용 GPU 메모리 용량이 늘어나 GPU utilization을 높여 동일한 자원으로 학습 리소스를 효율화 시킬 수 있다.
학습 시 Heterogeneous computing을 활용하는 예제
- DeepSpeed ZeRO-Offload/Infinity
- Facebook FairScale
- HuggingFace
추론 시 Heterogeneous Computing을 추론에 도입한다면….?
학습과 달리 추론은 Optimizer States 등을 연산할 필요없이 생성되는 activation을 메모리에 단순히 load/store 하는 기능만 필요하다. 학습 시와 달리 back-propagation 동작이 필요없으므로 forward pass가 진행될 때 모든 activation을 필요로 하지 않는다.
따라서 추론 시 발생하는 Activation은 디바이스 메모리에 그대로 두고 모델 weight를 offloading하는 방법을 통해 GPU 메모리 용량을 효율적으로 사용 가능하다.
Heterogeneous Computing을 활용하여 Single GPU로 수백 Billion 파라미터를 추론할 수 있는 방법이 발표되었다. [2]
- INFMOE(Memory-Efficeint Inference Framework for MoE layers) 라는 추론 framework를 소개
- 모델 파라미터를 CPU 메모리에 Offload한 후 추론 연산과 파라미터의 데이터 이동을 중첩시키는 스케줄링 기법
모델 Weight를 디바이스 메모리 대신 CPU 메모리 또는 CXL Type-3 디바이스에 저장하는 경우? 어떠한 것이 성능 상 유리할지….?
시사점
GPT-3와 같은 Big Model을 활용한 AI 플랫폼 사업이 클라우드 사업자의 미래의 큰 수익원이 될 가능성이 크다.(학습/추론 모두에서 수익 창출 가능)
Big Model을 이용한 비즈니스화가 본격화 된다면 그동안 주목받지 못하던 Massive AI inference에 수요가 급증할 수 있다.
추론은 latency 이슈가 있으므로 학습보다 HW 리소스의 최적화와 모델 압축과 같은 기술이 훨씬더 중요하다.
latency 이슈로 인해 추론 infrastructure는 Single Node 수준에서 Big Model을 실행시킬 수 있는 형태로 발전될 것이다. (이건 개인적인 추측임)
추론 가속기의 구조도 Big Model을 지원하도록 발전하는 것이 필요하다. (e.g., Model Parallelism을 효율적으로 처리할 수 있는 high-bandwidth interconnect 지원 등)
추론에서도 학습과 마찬가지로 heterogeneous computing(CPU 메모리 활용)을 도입하여 가용 GPU 메모리 용량을 늘려 효율화를 시도 중이다.
Transformer 알고리즘이 NLP를 넘어 다방면에 활용되면서 새로운 AI 알고리즘을 지원하기 힘든 ASIC의 단점이 많이 줄어들고 HW 구조를 단순화하여 성능을 높이기 용이한 상황이 전개되고 있다.
Big Model이 사용되면서 고비용의 학습 또는 추론 때문에 가격 경쟁력면에서 ASIC이 더 유리할 수 있다.
레퍼런스
[1] Naver Deview 2019: 챗봇1만개의모델서빙하기: AI서비스어디까지해봤니
[2] CPM-2: Large-scale Cost-effective Pre-trained Language Models (Tsinghua University & BAAI)