TL; DR
LLaMA3 70B 모델을 직접 운영할 경우, 최대 효율에서는 GPT-4 Turbo, Gemini Pro 1.5, Claude 3 Sonnet, 그리고 HyperCLOVA HCX-003 모델과 비교했을 때 훨씬 더 비용 효율적으로 서비스를 제공할 수 있습니다.
실제 서비스 프로덕션 환경에서는 자원을 100% 활용하는 경우가 매우 드물기 때문에, 이러한 최대 효율성만을 기준으로 결정을 내리기보다는 비용 효율성과 자원 활용률을 종합적으로 고려하는 것이 중요합니다.
최근 OpenAI를 포함한 여러 업체들이 Batch API를 도입하여 제공하고 있습니다. 이러한 배치 API를 활용하면, 개별 요청을 처리할 때보다 비용을 훨씬 절약하면서 추론 작업을 수행할 수 있습니다.
LLM API 비용
이 포스트에서는 네 가지 유명한 LLM API의 가격 구조에 대해 자세히 알아보려고 합니다. 제가 살펴본 API는 다음과 같습니다: 시장에서 가장 인기 있고 널리 사용되는 ChatGPT, 기능적 우수성을 제공하는 Gemini, 혁신적인 Claude, 그리고 네이버가 개발한 한국의 HyperCLOVA입니다.
각 API의 가격은 다르게 책정되며, ChatGPT, Gemini, Claude는 미국 달러로, HyperCLOVA는 대한민국 원으로 가격이 설정되어 있습니다. 이러한 화폐 단위의 차이로 인해, 각 가격을 비교하기 위해 두 가지 화폐 단위를 사용하는 비교 표를 준비했습니다. (현재의 달러-원 환율은 1,371.10원입니다.)
HyperCLOVA를 제외한 대부분의 LLM API는 입력 토큰(input tokens)과 출력 토큰(output tokens)에 따라 가격이 다르게 책정됩니다. 이는 각 API가 데이터를 처리하는 두 단계, 즉 prefill phase와 decode phase에서 다른 처리 방식을 적용하기 때문입니다. Prefill phase에서는 사용자 입력을 처리하고, decode phase에서는 이를 바탕으로 새로운 내용을 생성합니다. 이 과정에서 출력 토큰 생성이 더 복잡하고 비용이 많이 들어가기 때문에, 출력 토큰 비용이 입력 토큰 비용보다 일반적으로 더 높습니다. 이에 대한 보다 상세한 설명이 필요하신 분은 제 이전 블로그 글을 참조하시면 도움이 될 것입니다.
미국 달러 기준 API 가격
Provider | Model | Context | Input / 1M Tokens | Output / 1M Tokens |
OpenAI | GPT-4 Turbo | 128k | $10.00 | $30.00 |
GPT-4 | 8k | $30.00 | $60.00 | |
GPT-4 | 32k | $60.00 | $120.00 | |
GPT-3.5 Turbo | 4k | $1.50 | $2.00 | |
GPT-3.5 Turbo | 16k | $0.50 | $1.50 | |
Gemini Pro 1.5 | 128k | (preview) $7.00 | (preview) $21.00 | |
Gemini Pro 1.0 | 32k | $0.50 | $1.50 | |
Anthropic | Claude 3 Opus | 200k | $15.00 | $75.00 |
Claude 3 Sonnet | 200k | $3.00 | $15.00 | |
Claude 3 Haiku | 200k | $0.25 | $1.25 | |
HyperCLOVA | HCX-003 | ? | $3.64 | $3.64 |
HCX-DASH-001 | ? | $0.73 | $0.73 |
대한민국 원 기준 API 가격
Provider | Model | Context | Input / 1M Tokens | Output / 1M Tokens |
OpenAI | GPT-4 Turbo | 128k | ₩13,711 | ₩41,133 |
GPT-4 | 8k | ₩41,133 | ₩82,266 | |
GPT-4 | 32k | ₩82,266 | ₩164,532 | |
GPT-3.5 Turbo | 4k | ₩2,057 | ₩2,742 | |
GPT-3.5 Turbo | 16k | ₩686 | ₩2,057 | |
Gemini Pro 1.5 | 128k | (preview) ₩9,598 | (preview) ₩28,794 | |
Gemini Pro 1.0 | 32k | ₩686 | ₩2,057 | |
Anthropic | Claude 3 Opus | 200k | ₩20,567 | ₩102,833 |
Claude 3 Sonnet | 200k | ₩4,113 | ₩20,567 | |
Claude 3 Haiku | 200k | ₩343 | ₩1,714 | |
HyperCLOVA | HCX-003 | ? | ₩5,000 | ₩5,000 |
HCX-DASH-001 | ? | ₩1,000 | ₩1,000 |
OpenAI는 다양한 GPT 모델을 제공하며, 특히 GPT-4 버전은 입력과 출력 토큰의 가격이 상당히 다양합니다. 예를 들어, GPT-4 Turbo의 경우, 입력 토큰 가격은 1백만 토큰당 $10.00이며, 출력 토큰은 $30.00입니다. 반면, 기본 GPT-4 모델은 입력 토큰 당 $30.00에서 $60.00, 출력 토큰은 $60.00에서 $120.00로 훨씬 높습니다. GPT-3.5 Turbo 모델은 더 경제적이며, 입력 토큰은 $0.50에서 $1.50, 출력 토큰은 $1.50에서 $2.00의 범위를 보입니다.
Google의 Gemini Pro 시리즈는 경쟁력 있는 가격을 제공합니다. 특히 Gemini Pro 1.5 모델은 preview 가격으로 입력 토큰 당 $7.00, 출력 토큰 당 $21.00이며, Gemini Pro 1.0은 더 저렴하게, 각각 $0.50과 $1.50입니다.
Anthropic의 Claude 시리즈는 다양한 용도와 가격대를 제공합니다. 가장 고가인 Claude 3 Opus는 입력 토큰이 $15.00, 출력 토큰이 $75.00입니다. 중간 범위의 Sonnet 모델은 입력과 출력이 각각 $3.00과 $15.00이며, 가장 경제적인 Haiku 모델은 입력 $0.25, 출력 $1.25입니다.
마지막으로, HyperCLOVA의 HCX 시리즈는 한국 원화로 가격이 책정되며, 모든 입력과 출력 토큰 가격이 동일하게 책정되어 있습니다. HCX-003 모델의 경우 각각 $3.64, HCX-DASH-001 모델은 $0.73입니다.
오픈소스 모델 추론 비용 가격
오픈소스 모델로는 최근 메타에서 공개한 오픈소스 LLM인 LLaMA3에 대해서 알아보겠습니다. LLaMA3는 7B 및 70B 모델을 제공하며, 사용자는 메타의 API를 통해 이 모델들을 사용하거나 자체적으로 서버에 설치하여 직접 운영할 수도 있습니다. LLaMA3 70B 모델의 경우에는 Gemini Pro 1.5와 Claude 3 Sonnet과 여러 벤치마크에서 성능이 유사하거나 오히려 더 높습니다.
여기에서는 특히 자체 서버에서 모델을 호스팅하여 운영할 경우의 비용을 살펴보도록 하겠습니다. 구체적으로, 서빙 프레임워크로는 성능 벤치마크 자료가 잘 공개된 TensorRT-LLM의 성능을 토대로 하였습니다. (LLaMA3에 대한 지표가 없어 LLaMA2에 대한 지표로 대신합니다.) 비용 계산은 Google Cloud Platform의 A100 인스턴스(a2)를 활용하여 진행하였습니다.
미국 달러 기준 추론 비용
Provider | Model | Context | Input / 1M Tokens | Output / 1M Tokens |
Meta | LLaMA 70B | 2k | - | $6.09 |
LLaMA 7B | 2k | - | $2.92 |
대한민국 원 기준 추론 비용
Provider | Model | Context | Input / 1M Tokens | Output / 1M Tokens |
Meta | LLaMA 70B | 2k | - | ₩8,355 |
LLaMA 7B | 2k | - | ₩4,004 |
LLaMA3는 70B에서 peak throughput을 기준으로 1백만 토큰당 $6.09의 인스턴스 비용이 소요됩니다. 7B는 더욱 줄어 $2.92의 비용이 소요됩니다. 출력 토큰 throughput에는 입력에 대한 연산시간까지도 포함되므로, 출력 토큰 throughput을 기준으로 계산하였습니다.
서비스 시나리오별 비용
당연하게도 각 서비스는 해결하고자 하는 요구사항에 맞는 특수한 입력 및 출력 토큰 사이즈가 어느정도 정해져 있습니다. 현재 사용되는 대부분의 LLM 서빙 프레임워크는 이 입력 및 출력 토큰의 사이즈에 맞춰서 동시 배치 사이즈를 설정하고 있으며, 이 설정은 모델의 성능 차이를 야기합니다. LLM 추론에서 배치에 대한 내용에 좀 더 깊게 관심이 있으시다면 저의 이전 블로그 글을 참고하시면 좋을 것 같습니다.
본 문단에서는 입력 토큰, 출력 토큰에 대해서 각각 128, 2048 크기로 구분하여, 이들 크기의 다양한 조합을 실험하여 4가지 시나리오에 대한 비용과 효율성을 분석했습니다.
우선, 각 조합에 대한 TensorRT-LLM 성능은 다음과 같습니다.
Model | Batch Size | TP | Input Length | Output Length | Throughput (out tokens/s/GPU) |
LLaMA 7B | 256 | 1 | 128 | 128 | 5,390 |
LLaMA 7B | 32 | 1 | 128 | 2048 | 1,484 |
LLaMA 7B | 32 | 1 | 2048 | 128 | 533 |
LLaMA 7B | 16 | 1 | 2048 | 2048 | 603 |
LLaMA 70B | 1024 | 4 | 128 | 128 | 686 |
LLaMA 70B | 512 | 8 | 128 | 2048 | 684 |
LLaMA 70B | 96 | 4 | 2048 | 128 | 80 |
LLaMA 70B | 64 | 4 | 2048 | 2048 | 289 |
이러한 결과에서 입력/출력 토큰 차이에 따른 추론 비용을 계산하면 아래 표와 같습니다.
미국 달러 기준 추론 비용
Provider | Model | 유형 | Input / 1M Tokens | Output / 1M Tokens |
Meta | LLaMA 70B | 128-128 | - | $2.57 |
LLaMA 70B | 128-2048 | - | $2.57 | |
LLaMA 70B | 2048-128 | - | $22.01 | |
LLaMA 70B | 2048-2048 | - | $6.09 |
대한민국 원 기준 추론 비용
Provider | Model | 유형 | Input / 1M Tokens | Output / 1M Tokens |
Meta | LLaMA 70B | 128-128 | - | ₩3,520 |
LLaMA 70B | 128-2048 | - | ₩3,530 | |
LLaMA 70B | 2048-128 | - | ₩30,183 | |
LLaMA 70B | 2048-2048 | - | ₩8,355 |
비용 비교
LLM 서버를 직접 운영하는 경우, 단순히 서버 운영비용 외에도 여러 추가적인 비용 요소가 발생합니다. 예를 들어, API 게이트웨이, 스토리지 솔루션 등의 인프라 구성 요소들이 추가 비용으로 부과됩니다. 이러한 비용은 본 포스트에서 구체적으로 다루지 않았지만, 직접 서버를 운용할 경우 이러한 부수적인 비용들을 고려해야 합니다. 또한, LLM 서버는 활성 사용 요청이 없는 경우에도 계속해서 프로비저닝되어 있어야 하기 때문에, 이로 인한 유지비용이 발생합니다. 이는 서버를 24/7 상태로 유지 관리하기 위해 필요한 최소 비용이며, 전체 운영 비용을 계산할 때 중요한 고려 사항입니다. GCP의 A2 인스턴스를 사용한다면 시간당 $25.36의 최소 요금이 부과됩니다.
전체 모델들의 비용을 계산하기 위해 먼저 LLaMA3의 시간당 토큰 처리량을 구해보면 아래와 같습니다.
LLaMA3의 시간당 토큰 처리량
Model | 유형 | Input Tokens Per Hour |
Output Tokens Per Hour |
Total Tokens Per Hour |
LLaMA 70B | 128-128 | 9,878,400 | 9,878,400 | 19.76M |
LLaMA 70B | 128-2048 | 615,600 | 9,849,600 | 10.47M |
LLaMA 70B | 2048-128 | 18,432,000 | 1,152,000 | 19.58M |
LLaMA 70B | 2048-2048 | 4,161,600 | 4,161,600 | 8.32M |
LLaMA3 70B 모델의 경우, 128-128 시나리오에 대해서 최대 시간당 19.76백만 개의 토큰을 처리하며, 128-2048 시나리오의 경우에는 10.47백만, 2048-128 시나리오에서는 19.58백만, 그리고 2048-2048 시나리오에서는 최대 시간당 8.32백만 개의 토큰을 처리합니다.
그렇다면, 위의 처리량 기준으로 시간당 API 비용을 계산해볼까요?
미국 달러 기준 시간당 API 비용 (128-128 유형)
Provider | Model | Input Cost Per Hour |
Output Cost Per Hour |
Total Cost Per Hour |
vs Baremetal |
OpenAI | GPT-4 Turbo | $98.78 | $296.35 | $395.14 | 6.42% |
GPT-4 | $296.35 | $592.70 | $889.06 | 2.85% | |
GPT-4 | $592.70 | $1,185.41 | $1,778.11 | 1.43% | |
GPT-3.5 Turbo | $14.82 | $19.76 | $34.57 | 73.35% | |
GPT-3.5 Turbo | $4.94 | $14.82 | $19.76 | 128.36% | |
Gemini Pro 1.5 | $69.15 | $207.45 | $276.60 | 9.17% | |
Gemini Pro 1.0 | $4.94 | $14.82 | $19.76 | 128.36% | |
Anthropic | Claude 3 Opus | $148.18 | $740.88 | $889.06 | 2.85% |
Claude 3 Sonnet | $29.64 | $148.18 | $177.81 | 14.26% | |
Claude 3 Haiku | $2.47 | $12.35 | $14.82 | 171.15% | |
HyperCLOVA | HCX-003 | $35.96 | $35.96 | $71.91 | 35.26% |
HCX-DASH-001 | $7.21 | $7.21 | $14.42 | 175.84% | |
Baremetal | LLaMA3 70B | - | - | $25.36 | - |
미국 달러 기준 시간당 API 비용 (2048-2048 유형)
Provider | Model | Input Cost Per Hour |
Output Cost Per Hour |
Total Cost Per Hour |
vs Baremetal |
OpenAI | GPT-4 Turbo | $41.62 | $124.85 | $166.46 | 15.23% |
GPT-4 | $124.85 | $249.70 | $374.54 | 6.77% | |
GPT-4 | $249.70 | $499.39 | $749.09 | 3.39% | |
GPT-3.5 Turbo | $6.24 | $8.32 | $14.57 | 174.11% | |
GPT-3.5 Turbo | $2.08 | $6.24 | $8.32 | 304.69% | |
Gemini Pro 1.5 | $29.13 | $87.39 | $116.52 | 21.76% | |
Gemini Pro 1.0 | $2.08 | $6.24 | $8.32 | 304.69% | |
Anthropic | Claude 3 Opus | $62.42 | $312.12 | $374.54 | 6.77% |
Claude 3 Sonnet | $12.48 | $62.42 | $74.91 | 33.85% | |
Claude 3 Haiku | $1.04 | $5.20 | $6.24 | 406.25% | |
HyperCLOVA | HCX-003 | $15.15 | $15.15 | $30.30 | 83.71% |
HCX-DASH-001 | $3.04 | $3.04 | $6.08 | 417.38% | |
Baremetal | LLaMA3 70B | - | - | $25.36 | - |
분석
LLaMA 3 모델을 베어메탈 환경에서 사용할 경우, 최대 Throughput 지표를 기반으로 성능을 평가하였기 때문에 비용 지표가 과대평가된 경향이 있음을 유의해야 합니다. 이 모델의 베어메탈 케이스에서, 128-128 및 2048-2048의 두 구성을 비교할 때, GPU-4 Turbo 모델과 비교하면 각각 6.42%와 15.23%의 비용으로 서비스를 제공할 수 있습니다. 이는 상당한 비용 효율을 나타냅니다. Gemini Pro 1.5 모델과의 비교에서는 각각 9.17%와 21.76%, Claude 3 Sonnet 모델과 비교하면 14.26%와 33.85%의 비용 효율을 보입니다. 특히, HyperCLOVA HCX-003 모델과 비교했을 때는 35.26%와 83.71%였고, 이는 HyperCLOVA의 API 비용이 다른 모델의 비용보다 상대적으로 저렴하다는 것을 의미합니다.
마지막으로 위에 대한 원화 비용을 표로 정리하였습니다.
대한민국 원 기준 시간당 API 비용
Provider | Model | Total Cost Per Hour (128-128) |
Total Cost Per Hour (2048-2048) |
OpenAI | GPT-4 Turbo | ₩541,771 | ₩228,239 |
GPT-4 | ₩1,218,985 | ₩513,537 | |
GPT-4 | ₩2,437,969 | ₩1,027,075 | |
GPT-3.5 Turbo | ₩47,405 | ₩19,971 | |
GPT-3.5 Turbo | ₩27,089 | ₩11,412 | |
Gemini Pro 1.5 | ₩379,240 | ₩159,767 | |
Gemini Pro 1.0 | ₩27,089 | ₩11,412 | |
Anthropic | Claude 3 Opus | ₩1,218,985 | ₩513,537 |
Claude 3 Sonnet | ₩243,797 | ₩102,707 | |
Claude 3 Haiku | ₩20,316 | ₩8,559 | |
HyperCLOVA | HCX-003 | ₩98,602 | ₩41,539 |
HCX-DASH-001 | ₩19,775 | ₩8,331 | |
Baremetal | LLaMA3 70B | ₩34,771 | ₩34,771 |
결론
위의 측정 결과에 따르면, LLaMA3 70B 모델을 직접 운영할 경우, 최대 효율에서는 GPT-4 Turbo, Gemini Pro 1.5, Claude 3 Sonnet, 그리고 HyperCLOVA HCX-003 모델과 비교했을 때 훨씬 더 비용 효율적으로 서비스를 제공할 수 있습니다.
그러나 실제 서비스 프로덕션 환경에서는 자원을 100% 활용하는 경우가 매우 드물기 때문에, 이러한 최대 효율성만을 기준으로 결정을 내리기보다는 비용 효율성과 자원 활용률을 종합적으로 고려하는 것이 중요합니다. 따라서 LLaMA3 70B 모델을 포함한 다양한 옵션을 평가할 때는 이러한 측면을 충분히 비교 분석하여 가장 적합한 LLM 솔루션을 선정해야 합니다.
자원을 최대한 활용하여 비용을 절감하는 효과적인 방법 중 하나는 요청들을 배치 처리하는 것입니다. 최근 OpenAI를 포함한 여러 업체들이 Batch API를 도입하여 제공하고 있습니다. 이러한 배치 API를 활용하면, 개별 요청을 처리할 때보다 비용을 훨씬 절약하면서 추론 작업을 수행할 수 있습니다. 배치 처리는 특히 대량의 데이터를 처리해야 하는 경우나 비용 효율성을 극대화해야 할 때 매우 유용합니다. 따라서 비용을 더욱 최적화하고자 할 때는 이러한 배치 처리 방식을 적극 고려해 보는 것이 좋습니다.
이 글에서는 최근 인기 있는 LLM API들과 LLaMA 3 모델을 직접 서빙하는 데 드는 비용을 자세히 측정하고 비교하였습니다. 위에 측정된 수치의 경우에는 제가 직접 계산한 내용으로 오류가 있을 수 있습니다. 오류를 발견하시거나 의견이 있으시면 댓글로 알려주시기 바랍니다.
'AI > 모델 인퍼런스' 카테고리의 다른 글
WebLLM, EEVE 모델을 Web GPU로 서빙하기 (0) | 2024.06.13 |
---|---|
Llama.cpp, GGUF 포맷, 그리고 양자화(Quantization) (2) | 2024.05.28 |
LLM 인퍼런스 훑어보기 (6) - quantization (0) | 2023.11.17 |
LLM 인퍼런스 훑어보기 (5) - continuous batching (0) | 2023.11.10 |
LLM 인퍼런스 훑어보기 (4) - kernel fusion (0) | 2023.10.14 |