×
Community Blog 대규모 DeepSeek V4-Flash: 벤치마크 기반 배포 가이드

대규모 DeepSeek V4-Flash: 벤치마크 기반 배포 가이드

대규모 언어 모델을 프로덕션에 배포하는 방법을 선택하는 것은 AI 팀이 내릴 수 있는 가장 중요하면서 어려운 결정 중 하나입니다.

작성: Farruh Kushnazarov

hero_banner

프로덕션 LLM 추론을 위해 토큰 API, PTU, 모델 유닛, 베어 메탈 GPU를 비교하는 실습 튜토리얼입니다. 실수입니다. 실제 배포입니다.


모든 AI 팀에서 직면하는 문제

빠르게 성장하는 핀테크 스타트업의 엔지니어링 책임자인 Sarah가 노트북을 홱 닫은 것은 화요일 오후였습니다.

그녀의 팀은 DeepSeek V4-Flash를 고객 지원 챗봇에 통합하는 데 2주를 보냈습니다. 이 모델은 테스트에서 훌륭하게 작동했습니다. 반응은 빠르고 추론은 날카로우며 실제 오류 발생률은 이전에 시도한 어떤 방법보다 낮았습니다. 데모는 완벽하게 진행되었습니다.

팀은 테스트가 완료된 후 클라우드 청구서를 확인했습니다.

현재 트래픽 규모(하루에 약 8백만 개의 토큰)에서 토큰 API 비용은 AI 예산의 상당 부분을 차지하고 있었습니다. 그리고 더 많은 고객에게 출시될수록 비용은 더욱 증가할 것입니다.

Sarah의 테이블에는 4가지 솔루션이 있었습니다. 그러나 문제는 이렇습니다. 그녀가 읽은 모든 블로그 게시물과 그녀가 참석한 모든 공급업체 프레젠테이션에서는 그들의 솔루션이 "최고"라고 주장했습니다. 토큰 API는 "시작이 가장 빠르다"라고 했고, PTU는 "가장 예측 가능하다"라고 했으며 모델 유닛은 "대규모 환경에 가장 비용 효율적이다"라고 했습니다. 그리고 그녀의 수석 엔지니어는 그냥 GPU를 임대해서 모든 것을 직접 실행하자고 제안하고 있었습니다.

문제는 무엇인가요? 아무도 동일한 워크로드로 동일한 클라우드의 동일한 모델에서 이 4가지 솔루션을 모두 벤치마킹하지 않았습니다.

그래서 우리는 그러한 벤치마킹을 수행했습니다.

이 문서는 단계별 배포 지침, 실제 벤치마크 수치 및 자체 워크로드에 사용할 수 있는 명확한 의사 결정 프레임워크 등 우리가 발견한 내용에 대한 전체적인 안내입니다.


첫째, Alibaba Cloud에서 LLM을 실행하는 4가지 방법 이해

한 줄의 코드를 작성하기 전에 Alibaba Cloud에서 사용할 수 있는 4가지 배포 모델을 이해해야 합니다. 이는 가격 계층만 다른 것이 아닙니다. 근본적으로 다른 엔지니어링 및 경제 모델입니다.

MU_Pricing_Comparison

참고: 표시된 모든 가격은 공개적으로 제공된 출처의 추정치입니다. 실제 가격은 지역, 계약 조건 및 프로모션 제안에 따라 달라질 수 있습니다.

1. 토큰 API — 백만 개 토큰당 지불

이 솔루션이 기본 진입점입니다. API 엔드포인트를 호출하고, 프롬프트를 전송하고, 완료를 수신하고, 시스템을 통해 흐르는 모든 토큰에 대해 비용을 지불합니다.

  • 작동 방식: 공유 GPU 풀. 해당 요청이 다른 모든 사용자의 요청과 함께 대기열에 포함됩니다. 클라우드 공급업체는 백그라운드에서 크기 조정, 큐잉, 로드 밸런싱을 처리합니다.
  • 가격: 선형적. 백만 개의 입력 토큰과 백만 개의 출력 토큰을 합하면 고정된 달러 금액이 됩니다.
  • 적합한 대상: 프로토타이핑, 트래픽이 적은 애플리케이션, 예측할 수 없는 트래픽 급증이 있는 워크로드 또는 인프라 오버헤드가 없기를 바라는 팀.
  • 단점: 대량 작업 시 비용이 선형적으로 영구 확장됩니다. 대량 작업에 대한 할인은 없습니다. 그리고 공유 풀에 있기 때문에 사용량이 많은 시간대에 대기 시간이 급증할 수 있습니다.

2. 프로비저닝 처리량 단위(PTU) — 예약 용량

PTU는 예측 가능성 문제에 대한 Alibaba Cloud의 해답입니다. 토큰당 지불하는 대신 분당 토큰(TPM)으로 측정되는 보장된 처리량 계층을 사전 구매합니다.

  • 작동 방식: 사전에 용량을 예약합니다. 클라우드 제공업체는 공유 풀의 사용량과 관계없이 처리량 수준을 보장합니다.
  • 가격: 용량 계층에 대한 예약 수수료를 지불하고 실제 사용량에 대해 할인된 토큰당 요금을 지불합니다.
  • 적합한 대상: 일일 패턴이 예측 가능한 중간 규모 트래픽 애플리케이션, 사용량이 많은 시간대가 알려진 마케팅 캠페인 또는 비용 예측 가능성이 필요한 토큰 API에서 전환하는 팀.
  • 단점: 사용 여부에 관계없이 예약 비용을 지불합니다. 트래픽이 예약 계층 아래로 떨어지면 비용을 낭비하게 됩니다. 그리고 트래픽이 급증하면 오버플로에 대한 토큰 API 가격이 적용됩니다.

3. 모델 유닛(MU) — 전용 관리 추론

여기서부터 흥미로워집니다. 모델 유닛은 Alibaba Cloud에서 완전히 관리하는 워크로드 전용 GPU 클러스터를 제공합니다.

  • 작동 방식: 모델 유닛(GPU 용량으로 측정)을 구매합니다. 클라우드 제공업체는 전용 H20 또는 H200 GPU를 프로비저닝하고, 추론 엔진을 설치하며, 로드 밸런싱을 처리하고, 비공개 API 엔드포인트를 제공합니다. 워크로드는 독립적으로 실행됩니다. 주변의 간섭이 없습니다.
  • 가격: MU 유닛당 고정 월별 비용. 완전히 관리되는 전용 서버 랙을 임대하는 것과 같습니다. 더 많이 활용할수록 토큰당 유효 비용이 저렴해집니다.
  • 적합한 대상: 하루 8시간 이상 실행되는 프로덕션 워크로드, 보장된 대기 시간 SLA가 필요한 애플리케이션, 사용자 지정 또는 미세 조정 모델을 배포하는 팀, 데이터 격리가 규정 준수 요구 사항인 모든 워크로드.
  • 단점: 선불 약정 비용이 더 높습니다. 클러스터의 크기를 정확하게 설정해야 합니다. 프로비저닝이 부족하면 용량 제한에 도달하게 됩니다. 프로비저닝이 초과되면 유휴 GPU에 대한 비용을 지불하게 됩니다.

4. 베어 메탈 GPU — 직접 빌드

최후의 솔루션입니다. 원시 GPU 인스턴스(H20, H200 또는 출시 예정인 B300)를 임대하고 자체 추론 스택을 배포합니다.

  • 작동 방식: 완전한 제어. 추론 프레임워크(vLLM, SGLang, TensorRT-LLM, TGI)를 선택하고, 양자화를 구성하며, KV 캐시를 관리하고, 크기 조정, 모니터링, 장애 조치를 직접 처리합니다.
  • 가격: GPU 시간당 요금 + 송신 대역폭. 직접 관리하기 때문에 관리 오버헤드 비용이 없습니다.
  • 적합한 대상: 전문화된 최적화 요구 사항이 있는 연구 팀, 기존 GPU 운영 팀이 있는 회사 또는 매 밀리초의 대기 시간이 중요하고 모든 노브를 조정할 의향이 있는 워크로드.
  • 단점: 팀이 필요합니다. GPU 운영, CUDA 최적화, 분산 서비스, 모니터링 및 당직 순환 근무를 수행해야 합니다. 숨겨진 비용은 GPU 임대료가 아닙니다. 운영을 유지하는 엔지니어의 급여입니다.

파트 1: 가장 빠른 경로 — DeepSeek V4-Flash용 Model Studio 토큰 API

가장 쉬운 솔루션부터 시작하겠습니다. 이전에 Alibaba Cloud의 AI 서비스를 사용해 본 적이 없다면 여기서부터 시작해야 합니다.

1단계: Model Studio 액세스

console_model_studio

Alibaba Cloud 콘솔에 로그인하여 Model Studio로 이동합니다. 이는 모든 Alibaba Cloud AI 서비스에 대한 통합 모델 마켓플레이스이자 API 게이트웨이입니다.

모델 카탈로그에서 DeepSeek V4-Flash를 검색합니다. Qwen3, GLM, Wan과 같은 다른 인기 모델과 함께 나열됩니다.

2단계: API 키 생성

console_api_key

DeepSeek V4-Flash 모델 페이지를 클릭합니다. API 키 받기 버튼이 표시됩니다. 해당 버튼을 클릭하고 새 API 키를 생성한 후 클립보드에 복사합니다.

이 키를 안전하게 보관합니다. 이 키는 모든 API 호출에 대한 인증 토큰입니다.

3단계: 단일 요청으로 테스트

다음은 모든 기능이 작동하는지 확인하기 위한 최소 Python 스크립트입니다.

import requests

API_KEY = "your-api-key-here"
ENDPOINT = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

payload = {
    "model": "deepseek-v4-flash",
    "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in one paragraph."}
    ],
    "max_tokens": 256
}

response = requests.post(ENDPOINT, headers=headers, json=payload)
print(response.json()["choices"][0]["message"]["content"])

console_playground

이를 실행합니다. 양자 컴퓨팅에 대한 일관된 단락이 보이면 토큰 API를 통해 DeepSeek V4-Flash를 호출하고 있는 것입니다.

4단계: 가격 이해

토큰 API 가격은 간단한 토큰당 모델을 따릅니다. 입력 및 출력 토큰에 대해 별도로 비용을 지불하며 출력 토큰은 일반적으로 입력 토큰보다 약 4배 더 비쌉니다.

2K의 입력 프롬프트 및 1K의 출력 응답으로 이루어진 일반적인 채팅 상호 작용의 경우 요청당 비용은 1센트의 몇 분의 일입니다. 요청이 적은 경우(예: 하루 10,000건의 요청) 월 비용은 비교적 적습니다. 그러나 비용이 선형적으로 확장된다는 것이 문제입니다.

이 솔루션은 프로토타이핑에 적합합니다. 그러나 하루에 100,000 건의 요청이 들어오면 어떻게 될까요? 또는 백만 건의 요청이 들어온다면?

크기 조정 패턴을 설명해 보겠습니다.

일일 요청 평균 토큰/요청 상대적 월별 비용
10,000 3K 1x(기준선)
50,000 3K ~5x
100,000 3K ~10x
500,000 3K ~50x

cost_scaling_chart

비용은 급격히 증가합니다. 이는 Sarah가 핀테크 스타트업에서 겪었던 문제입니다.


파트 2: 예측 가능성이 중요한 경우 — PTU 예약 처리량

트래픽이 무작위적이지 않다고 가정해 보겠습니다. 일일 활성 사용자가 10,000명인 SaaS 제품이 있으며 사용량은 오전 9시에서 오후 6시 사이에 예상대로 최고조에 달합니다. 사용량이 많은 시간 동안 분당 약 500,000개의 토큰이 필요하다는 것을 알고 있습니다.

PTU는 이러한 경우를 위해 설계되었습니다.

PTU가 실제로 작동하는 방식

토큰당 비용을 지불하는 대신 특정 처리량을 보장하는 PTU 계층을 구매합니다. Alibaba Cloud는 사용자의 워크로드에 대한 GPU 용량을 예약합니다. 사용량이 많은 시간에는 요청이 공유 풀을 우회하여 예약된 용량으로 바로 이동합니다.

가격 모델에는 두 가지 구성 요소가 있습니다.

  1. 예약 수수료: 보장된 처리량 계층에 대한 고정 시간당 요금 또는 월별 요금
  2. 사용료: 예약된 용량 내에서 사용된 토큰에 대해 할인된 토큰당 요금

예약된 용량을 초과하면 오버플로 요청에 토큰 API 가격이 적용됩니다.

PTU가 합리적인 경우

PTU는 예약 수수료 및 할인된 사용 요금이 순수 토큰 API 비용을 능가할 만큼 일일 토큰 볼륨이 충분히 많을 때 경제적으로 의미가 있습니다. 손익분기점은 특정 계층 및 협상된 요금에 따라 다르지만 대략적인 기준은 다음과 같습니다.

  • PTU는 일반적으로 예약된 용량에 대해 토큰 API의 토큰당 비용보다 2~4배임
  • 그러나 대기 시간이 보장되고 큐잉이 없음
  • 손익분기점은 일반적으로 예약된 계층의 일일 사용률이 약 20~40%인 경우 발생함

Sarah의 팀에게 PTU는 토큰 API보다 나은 선택이었습니다. 그러나 여전히 한계가 있습니다. 예약된 계층을 초과하면 비용이 다시 급증할 것입니다. 또한 팀은 다음 분기에 사용자 기반을 10배로 늘릴 계획이었습니다.


파트 3: 강력한 프로덱션 체계 — 모델 유닛(MU) 배포

이제 본격적인 본론으로 들어가겠습니다. Sarah의 팀은 재정적 부담 없이 확장할 수 있는 솔루션이 필요했습니다. 전용 리소스, 보장된 성능 및 사용량이 많을수록 저렴해지는 가격 모델이 필요했습니다.

바로 모델 유닛이 필요했습니다.

모델 유닛 경제 이해

고정 비용은 모델 유닛이 다른 솔루션과 차별화되는 핵심 인사이트입니다.

모델 유닛당 월 정액 요금을 지불합니다. 백만 개의 토큰이든 또는 10억 개의 토큰이든 상관없습니다. 비용은 동일합니다.

DeepSeek V4-Flash의 경우 일반적인 구성은 H20-141G GPU에서 4x MU1 유닛을 사용합니다. 공개적으로 제공되는 출처의 대략적인 추정치는 다음과 같습니다.

  • 단일 MU1 유닛의 월 비용은 대략 수천 달러
  • 최대 약 40%의 대량 작업 할인이 적용되어 유닛당 비용을 크게 절감할 수 있음
  • 4x MU1 배포 비용은 할인 적용 후 월 수만 달러 초반대

이제 동일한 볼륨으로 토큰 API와 비교해 보겠습니다. 하루에 약 5억 개의 토큰(대략 4x MU1이 최대로 처리할 수 있는 볼륨)에 대한 토큰 API의 비용은 대략 다음과 같습니다.

  • 해당 볼륨에서 예상 토큰 API 비용은 월 수만 달러 중반대

요점: 지속적으로 높은 처리량에서 모델 유닛은 동일한 토큰 API 비용 대비 대략 40~50%의 비용 절감 효과를 제공하며, SLA가 보장된 전용 리소스를 확보할 수 있습니다.

참고: 이 수치는 단지 예시적인 목적을 위한 대략적인 추정치입니다. 실제 가격은 지역, 약정 조건, 볼륨에 따라 달라집니다. 구매 결정을 내리기 전에 항상 공식 가격을 확인하세요.

그러나 백만 토큰당 유효 비용은 더 흥미롭습니다.

4x MU1을 100% 활용할 경우(최대 TPM 약 550,000):

  • 일일 용량: 550,000개 토큰/분 x 60분 x 24시간 = 약 7억 9,200만 개 토큰/일
  • 실제 지속 부하: 최대 50% 기준 약 8시간/일 = 약 1억 3,200만 개 토큰/일
  • 월간 토큰: 약 40억 개 토큰
  • 백만 토큰당 유효 비용: 토큰 API가 청구하는 비용의 몇 분의 일로 전체 사용 시 대략 300배 저렴함

물론, 누구도 연중무휴 100% 사용하지는 않습니다. 좀 더 현실적인 관점에서 살펴보겠습니다. 대부분의 프로덕션 워크로드는 하루 8~12시간 정도의 업무 시간 동안 가변적인 부하로 운영됩니다.

chart1_utilization

위의 차트는 다양한 일일 사용량 수준에서 백만 토큰당 유효 비용을 보여줍니다. 활성 사용량이 하루 4시간인 경우에도 유효 비용은 여전히 토큰 API와 경쟁력이 있습니다. 하루 12시간 이상 사용 시에는 모델 유닛이 훨씬 저렴해집니다.

월간 비용 비교는 다음과 같습니다.

chart2_consumption

토큰 API에 대한 손익분기점은 대략 하루 26억 개 토큰입니다. 해당 용량 이하의 경우 토큰 API가 더 저렴합니다. 해당 용량 이상의 경우 모델 유닛이 훨씬 저렴합니다.

모델 유닛의 실제 이점

모델 유닛은 가격 경쟁력만 있는 것이 아닙니다. 전용 인프라를 통해 누릴 수 있는 이점이 있습니다.

  • 완벽한 성능 격리: TPS, TPM 및 대기 시간이 보장됩니다. 주변의 간섭이 없습니다. 사용량이 많은 시간에 성능 저하가 발생하지 않습니다.
  • 사용자 지정 모델 지원: 미세 조정 모델, 사용자 지정 체크 포인트 또는 공개 API에서 사용할 수 없는 모델을 배포합니다.
  • P/D 분리 추론: 사전 채우기 및 디코딩 단계가 별도의 GPU 그룹에서 실행되므로 긴 컨텍스트 워크로드의 처리량이 크게 향상됩니다.
  • KV 캐시 최적화: 요청 간 지속적인 캐시를 통해 멀티턴 대화의 대기 시간이 줄어듭니다.
  • 데이터 규정 준수: 모든 데이터가 전용 클러스터에서 유지됩니다. 테넌트 간 유출 위험이 없습니다.

Sarah의 핀테크 애플리케이션의 경우 이 마지막 이점만으로도 전환할 가치가 있었습니다. 재무 데이터는 공유 풀에 접근할 수 없습니다.


파트 4: 최후의 솔루션 — 베어 메탈 GPU 임대

어떤 솔루션이든 배포하기 전에 불편한 진실에 대해 먼저 짚어보겠습니다. 그냥 GPU를 임대해서 모든 것을 직접 운영하는 건 어떨까요?

타당한 질문입니다. 그리고 일부 팀에게는 정답일 수도 있습니다.

베어 메탈 환경

H20 또는 H200 GPU 인스턴스를 임대합니다. VLLM 또는 SGLang을 설치합니다. DeepSeek V4-Flash 가중치를 다운로드합니다. 텐서 병렬 처리, 파이프라인 병렬 처리, 양자화, KV 캐시 설정을 구성합니다. 로드 밸런싱, 모니터링, 자동 크기 조정, 장애 조치를 설정합니다.

그런 다음 유지관리합니다.

실제 비용

GPU 임대료는 실제 비용이 아닙니다. 실제 비용은 팀원의 급여입니다.

  • GPU DevOps 엔지니어: 수만 달러 연봉
  • ML 플랫폼 엔지니어: 수십만 달러 연봉(더 높은 경우가 많음)
  • 프로덕션 추론을 위한 당직 순환 근무: 값을 매길 수 없음(또는 적어도 번아웃으로 인한 대가가 매우 큼)

GPU 임대료가 모델 유닛보다 서류상으로는 약간 저렴하더라도 팀 운영에 소요되는 총비용(대부분 GPU 임대료 자체의 2~3x)은 프로덕션 추론의 경우 거의 항상 모델 유닛이 경제적으로 나은 선택입니다.

베어 메탈이 유리한 경우:

  • 연구 및 실험: 모든 양자화 방법, 모든 추론 엔진, 모든 최적화 기법을 시도해야 합니다.
  • 학습 워크로드: 모델 유닛은 추론을 위한 솔루션입니다. 학습에는 다른 하드웨어 구성이 필요합니다.
  • 극심한 대기 시간 요구 사항: TTFT가 50ms 이하여야 하며, 모든 CUDA 커널을 직접 조정하려는 경우 베어 메탈이 이상적입니다.

Sarah의 팀의 경우 베어 메탈은 고려 대상에서 제외되었습니다. GPU 클러스터를 관리하는 것이 아니라 기능을 제공해야 했습니다.


파트 5: 모델 유닛으로 PAI-EAS DeepSeek V4-Flash 배포

이제 본격적으로 시작해 보겠습니다. 다음은 단계별 배포에 대한 안내입니다.

PAI-EAS란 무엇인가요?

pai_eas_architecture

PAI-EAS(Elastic Algorithm Service)는 Alibaba Cloud의 관리형 모델 서비스 플랫폼입니다. 모델 유닛 리소스가 실제로 프로비저닝되고 모델이 제공되는 엔진룸이라고 생각하면 됩니다.

모델 유닛을 구매한다는 것은 사실상 SLA가 보장되는 전용 PAI-EAS 용량을 예약하는 것입니다. 모델 유닛은 상용 래퍼입니다. PAI-EAS는 이를 기반으로 한 기술입니다.

1단계: 리소스 준비

배포하기 전에 구성을 결정해야 합니다.

  1. 모델: DeepSeek V4-Flash
  2. GPU 유형: H20-141G(MU1) 또는 H20-141G + (MU2)
  3. 유닛 수: 프로덕션 워크로드의 경우 목표 처리량에 따라 4~16 MU 유닛
  4. 지역: 싱가포르(SGP)는 MU의 주요 국제 지역입니다.

이 튜토리얼에서는 싱가포르 지역의 H20-141G GPU에 4x MU1 유닛을 배포합니다.

2단계: PAI-EAS 서비스 생성

console_pai_eas

PAI 콘솔로 이동하여 왼쪽 메뉴에서 EAS를 선택합니다.

서비스 생성을 클릭합니다. 배포 마법사가 나타납니다.

console_deployment_wizard

서비스 이름: deepseek-v4-flash-prod

모델 소스: "사용자 지정 모델"을 선택하고 DeepSeek V4-Flash 모델 아티팩트를 지정합니다. Alibaba Cloud 모델 레지스트리에서 모델을 사용할 수 있는 경우 직접 선택할 수 있습니다. 그렇지 않은 경우 모델 가중치에 OSS 경로를 제공합니다.

console_resource_config

리소스 구성:

  • 인스턴스 유형: H20-141G(MU1)
  • 인스턴스 수: 4
  • 크기 조정 정책: 수동(예측 가능한 워크로드의 경우) 또는 자동(가변 트래픽의 경우)

프레임워크 구성:

  • 추론 엔진: P/D가 분리된 Tongyi-native
  • 양자화: FP8(기본값) 또는 처리량이 더 높은 경우 INT4
  • KV 캐시: 70%의 기본 캐시 비율로 활성화
  • 최대 입력 길이: 32,768개 토큰
  • 최대 출력 길이: 8,192개 토큰

3단계: 네트워크 및 액세스 구성

console_network_config

VPC 및 vSwitch를 설정합니다. 인터넷 기반 API의 경우 공개 엔드포인트를 활성화합니다. 내부 서비스의 경우 VPC 내의 비공개 엔드포인트를 사용합니다.

API 키 인증을 활성화합니다. 서비스별 API 키를 생성합니다.

4단계: 배포

console_deploying

배포를 클릭합니다. PAI-EAS 전용 GPU 리소스를 할당하고 모델 가중치를 메모리에 로드할 때 프로비저닝 프로세스는 5~10분이 소요됩니다.

console_running

서비스 상태가 "생성" → "배포" → "실행"으로 전환되는 것을 확인할 수 있습니다.

5단계: 배포 확인

서비스가 실행되면 엔드포인트 URL을 기록해 둡니다. URL은 다음과 같습니다.

https://deepseek-v4-flash-prod.123456.ap-southeast-1.pai-eas.aliyuncs.com

terminal_api_test

curl 요청으로 테스트합니다.

curl -X POST https://deepseek-v4-flash-prod.123456.ap-southeast-1.pai-eas.aliyuncs.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_SERVICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {"role": "user", "content": "What are the key benefits of dedicated GPU inference?"}
    ],
    "max_tokens": 512
  }'

응답이 일관되면 모델 유닛 배포가 실시간으로 트래픽을 처리하고 있는 것입니다.

PAI-EAS 콘솔에서 직접 테스트할 수도 있습니다. 배포된 각 서비스에는 코드를 작성하지 않고도 프롬프트를 전송하고, 매개 변수(온도, top-p, 최대 토큰)를 조정하고, 실시간으로 스트리밍 응답을 확인할 수 있는 기본 제공 플레이그라운드가 포함되어 있습니다.

console_playground_pai_eas

이는 빠른 정상 작동 검토, 프롬프트 동작 디버깅 또는 애플리케이션에 통합하기 전에 이해관계자에게 배포를 시연하는 데 유용합니다.


파트 6: 벤치마크 설정

이제 재미있는 부분으로 넘어가겠습니다. 동일한 워크로드로 4가지 배포 솔루션을 모두 벤치마킹하고 결과를 비교해 보겠습니다.

벤치마크 구성

표준화된 벤치마크 스크립트를 사용하여 다음을 측정했습니다.

  • TTFT(첫 번째 토큰 시간): 요청을 전송한 후 응답의 첫 번째 토큰을 수신하는 데 걸리는 시간
  • TPOT(출력 토큰당 시간): 연속 출력 토큰 간의 시간
  • TPS(초당 토큰): 총출력 토큰을 총 생성 시간으로 나눈 값
  • TPM(분당 토큰): 벤치마크 기간 동안 평균 처리량
  • 대기 시간 분포: P50, P95, P99

테스트 워크로드:

  • 입력 프롬프트: 2,048개 토큰(대화 내역이 있는 긴 컨텍스트 시뮬레이션)
  • 예상 출력: 1,024개 토큰
  • 테스트한 동시성 수준: 1, 4, 8, 16, 32, 64개 동시 요청
  • 기간: 동시성 수준당 5분
  • 워밍업: 측정 시작 60초 전

벤치마크 스크립트

사용한 벤치마크 스크립트는 다음과 같습니다. 자체 테스트에 맞게 조정할 수 있습니다.

import asyncio
import time
import statistics
from dataclasses import dataclass
from typing import List
import aiohttp
import numpy as np

@dataclass
class BenchmarkResult:
    concurrency: int
    total_requests: int
    ttft_ms: List[float]
    tpot_ms: List[float]
    tps: List[float]
    total_tokens: int
    duration_sec: float

    @property
    def avg_ttft(self) -> float:
        return statistics.mean(self.ttft_ms)

    @property
    def p99_ttft(self) -> float:
        return np.percentile(self.ttft_ms, 99)

    @property
    def avg_tps(self) -> float:
        return statistics.mean(self.tps)

    @property
    def avg_tpot(self) -> float:
        return statistics.mean(self.tpot_ms)

    @property
    def throughput_tpm(self) -> float:
        return (self.total_tokens / self.duration_sec) * 60


async def send_request(session, endpoint, api_key, prompt, max_tokens):
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    payload = {
        "model": "deepseek-v4-flash",
        "messages": [{"role": "user", "content": prompt}],
        "max_tokens": max_tokens,
        "stream": True
    }

    start_time = time.time()
    first_token_time = None
    token_count = 0
    last_token_time = start_time

    async with session.post(endpoint, headers=headers, json=payload) as response:
        async for line in response.content:
            line = line.decode('utf-8').strip()
            if line.startswith('data: '):
                chunk = line[6:]
                if chunk == '[DONE]':
                    break
                # Parse SSE chunk and count tokens
                token_count += 1
                if first_token_time is None:
                    first_token_time = time.time()
                last_token_time = time.time()

    end_time = time.time()

    ttft = (first_token_time - start_time) * 1000 if first_token_time else 0
    generation_time = (last_token_time - first_token_time) if first_token_time else 0
    tps = token_count / generation_time if generation_time > 0 else 0
    tpot = generation_time / token_count * 1000 if token_count > 0 else 0

    return ttft, tpot, tps, token_count


async def run_benchmark(endpoint, api_key, concurrency, duration_sec=300):
    # Long context prompt (~2048 tokens)
    prompt = "Explain the history of artificial intelligence..." * 50
    max_tokens = 1024

    results = []
    start_time = time.time()
    request_count = 0

    async with aiohttp.ClientSession() as session:
        while time.time() - start_time < duration_sec:
            tasks = [
                send_request(session, endpoint, api_key, prompt, max_tokens)
                for _ in range(concurrency)
            ]
            batch_results = await asyncio.gather(*tasks, return_exceptions=True)

            for r in batch_results:
                if isinstance(r, Exception):
                    continue
                ttft, tpot, tps, tokens = r
                results.append((ttft, tpot, tps, tokens))
                request_count += 1

    total_tokens = sum(r[3] for r in results)
    return BenchmarkResult(
        concurrency=concurrency,
        total_requests=request_count,
        ttft_ms=[r[0] for r in results],
        tpot_ms=[r[1] for r in results],
        tps=[r[2] for r in results],
        total_tokens=total_tokens,
        duration_sec=duration_sec
    )


# Run benchmarks at different concurrency levels
async def main():
    endpoint = "https://your-endpoint.aliyuncs.com/v1/chat/completions"
    api_key = "your-api-key"

    for concurrency in [1, 4, 8, 16, 32, 64]:
        print(f"\n=== Benchmarking at concurrency={concurrency} ===")
        result = await run_benchmark(endpoint, api_key, concurrency)

        print(f"Total requests: {result.total_requests}")
        print(f"Throughput: {result.throughput_tpm:.0f} TPM")
        print(f"Avg TTFT: {result.avg_ttft:.1f}ms")
        print(f"P99 TTFT: {result.p99_ttft:.1f}ms")
        print(f"Avg TPS: {result.avg_tps:.1f} tok/s")
        print(f"Avg TPOT: {result.avg_tpot:.1f}ms")


if __name__ == "__main__":
    asyncio.run(main())

terminal_benchmark

참고: 이 스크립트는 스트리밍 모드를 사용하여 TTFT 및 토큰당 대기 시간을 정확하게 측정합니다. 비스트리밍 엔드포인트의 경우 측정 논리를 조정해야 합니다.


파트 7: 결과 — 실제로 가장 적합한 솔루션

4가지 배포 솔루션 모두에 대한 벤치마크를 실행했습니다. 결과는 다음과 같습니다.

benchmark_token_api

토큰 API 결과

동시성 평균 TTFT P99 TTFT 평균 TPS 처리량(TPM)
1 245ms 890ms 42.3 2,540
4 312ms 1,240ms 38.7 9,280
8 485ms 2,100ms 31.2 14,960
16 920ms 4,500ms 18.5 17,760
32 1,850ms 8,200ms 9.8 18,816

관찰: 낮은 동시성에서 토큰 API는 상당히 빠릅니다. 그러나 동시성이 증가함에 따라 대기 시간이 크게 저하됩니다. 공유 풀은 큐잉 없이 높은 처리량을 유지할 수 없습니다. 처리량은 약 18K TPM 수준에서 정체됩니다.

benchmark_ptu

PTU 결과

동시성 평균 TTFT P99 TTFT 평균 TPS 처리량(TPM)
1 180ms 420ms 48.5 2,910
4 195ms 380ms 46.2 11,090
8 210ms 450ms 44.8 21,500
16 245ms 520ms 41.3 39,600
32 310ms 680ms 36.7 70,300

관찰: PTU는 훨씬 더 우수한 대기 시간 일관성을 제공합니다. 용량이 보장되어 큐잉 문제가 발생하지 않습니다. 처리량은 예약된 계층 제한까지 선형적으로 확장됩니다. P99 TTFT는 32개의 동시 요청에서도 700ms 미만으로 유지됩니다.

benchmark_model_unit

모델 유닛(4x MU1) 결과

동시성 평균 TTFT P99 TTFT 평균 TPS 처리량(TPM)
1 95ms 180ms 95.2 5,710
4 102ms 195ms 94.8 22,750
8 118ms 225ms 93.5 44,880
16 145ms 280ms 91.2 87,550
32 195ms 380ms 87.6 168,200
64 310ms 620ms 79.3 304,100

관찰: 모델 유닛은 모든 지표에서 우세합니다. TTFT는 높은 동시성에서 토큰 API보다 3배 빠릅니다. TPS는 과부하 상태에서도 안정적으로 유지됩니다. 304K TPM의 최대 처리량은 토큰 API가 제공할 수 있는 처리량의 16배입니다. 이는 최선의 노력이 아니라 SLA가 보장된 서비스입니다.

benchmark_bare_metal

베어 메탈(8x H200, SGLang) 결과

동시성 평균 TTFT P99 TTFT 평균 TPS 처리량(TPM)
1 85ms 160ms 105.0 6,300
4 92ms 175ms 102.5 24,600
8 105ms 200ms 98.3 47,200
16 130ms 250ms 92.1 88,300
32 180ms 340ms 82.5 158,400

관찰: 베어 메탈은 직접 GPU 액세스 및 사용자 지정 튜닝 덕분에 낮은 동시성에서 모델 유닛을 능가합니다. 그러나 그 차이는 미미합니다(10~15%). 이에 비해 운용 오버헤드는 엄청납니다.

cost_performance_summary

비용-성능 요약

배포 월간 비용* 최대 TPM 평균 대기 시간(P50) 1M 토큰당 상대적 비용
토큰 API 가변(선형적으로 확장) ~19K 1,850ms 1x(기준선)
PTU ~1.5x 모델 유닛 ~70K 310ms ~2x 토큰 API
모델 유닛(4x MU1) 고정(중간 범위) ~304K 195ms ~0.3x 토큰 API
베어 메탈(8x H200) 모델 유닛과 유사함 ~158K 180ms ~0.3x 토큰 API
  • 베어 메탈에 대한 팀 비용을 제외한 일일 500M 토큰의 지속 부하 기준입니다. 모든 비용은 공개된 출처의 추정치입니다.

주요 인사이트: 모델 유닛은 토큰당 비용의 3분의 1로 Token API보다 16배 더 높은 처리량을 제공하며, 대기 시간은 10배 더 우수합니다. 단지 비용만 저렴한 것이 아닙니다. 프로덕션 규모에서 측정 가능한 모든 측면에서 우수합니다.


파트 8: 의사 결정 프레임워크 — 나에게 적합한 솔루션

decision_flowchart

동일한 벤치마크를 통해 4가지 솔루션을 모두 실행해 보니 처음부터 이 결정 트리가 있었더라면 좋았을 것 같습니다.

다음의 경우 토큰 API 선택:

  • 프로토타이핑 또는 개념 증명을 실행 중인 경우
  • 일일 토큰 볼륨이 10억 개 미만인 경우
  • 트래픽을 예측하기 어려운 경우(급증, 계절적 변동)
  • 인프라 관리에 대한 허용 오차가 없는 경우
  • 대기 요구 사항이 보장된 것이 아니라 "최선의 노력"인 경우

다음의 경우 PTU 선택:

  • 트래픽이 예측 가능한 경우(패턴이 일관된 일일 활성 사용자)
  • 특정 기간(캠페인, 출시)에 대해 보장된 용량이 필요한 경우
  • 일일 볼륨이 10~50억 개 토큰인 경우
  • 토큰 API보다 더 나은 대기 시간을 원하지만 전용 인프라에 대한 준비가 되지 않은 경우
  • 워크로드가 빈번한 오버플로 없이 단일 PTU 계층 내에 적합한 경우

다음의 경우 모델 유닛 선택:

  • 일일 토큰 볼륨이 20~30억 개 토큰을 초과하는 경우
  • 하루에 8시간 이상 추론을 실행하는 경우
  • 보장된 대기 시간 SLA(P99 TTFT < 500ms)이 필요한 경우
  • 사용자 지정 모델 또는 미세 조정 모델을 배포 중인 경우
  • 데이터 격리 및 규정 준수가 필요한 경우(금융, 의료, 법률)
  • 대규모 환경에서 최고의 비용 대비 성능을 원하는 경우

다음의 경우 베어 메탈 GPU 선택:

  • 전용 GPU 운영 팀(2명 이상의 엔지니어)이 있는 경우
  • 사용 사례에 연구, 학습 또는 극단적인 최적화가 포함된 경우
  • TTFT가 100ms 미만이어야 하며 CUDA 커널을 직접 조정할 의향이 있는 경우
  • 워크로드에 고유한 요구 사항이 있는 경우(사용자 지정 양자화, 특수한 모델 아키텍처)
  • 특정 하드웨어 구성에 최적화 중인 경우

Sarah의 선택(그리고 여러분의 선택)

Sarah의 핀테크 스타트업 사례로 돌아가 보겠습니다.

벤치마크 결과를 확인한 후 그녀의 결정은 분명했습니다.

토큰 API는 프로토타입에 적합했지만 예상되는 규모에서 모델 유닛보다 월 비용이 약 2배 더 비쌌습니다. PTU는 토큰 API 비용의 60~70% 정도로 적당한 중간 대안이었지만 한 분기 안에 예약된 계층의 사용량을 초과하게 될 것입니다. 베어 메탈은 고려 대상에서 제외되었습니다. 팀의 엔지니어는 12명이었지만 그 누구도 오전 3시에 GPU 클러스터 당직 순환 근무를 원하지 않았습니다.

팀은 모델 유닛을 선택했습니다. PAI-EAS에 배포된 4개의 MU1 유닛은 해당 도메인에 맞게 사용자 지정된 미세 조정 체크 포인트를 적용하여 DeepSeek V4-Flash를 실행합니다.

프로덕션 1개월 후 결과:

  • 비용: 동일한 토큰 API 비용 대비 약 50% 절감
  • 대기 시간: P99 TTFT가 4.2 초에서 280ms로 감소하여 93% 개선
  • 처리량: 최대 용량이 약 19K TPM에서 약 304K TPM으로 증가하여 16배의 여유 용량 확보
  • 팀 오버헤드: 제로. 인프라 팀 인원은 증가하지 않았습니다.
  • 규정 준수: 모든 고객 데이터가 전용 클러스터에서 유지됩니다. 감사관도 만족합니다.

여기에서 얻을 수 있는 교훈은 무엇일까요? 단순히 표면적인 가격만 보지 마세요. 팀 오버헤드, 기회 비용 및 부하 중 성능 저하 위험을 포함하여 모든 비용을 살펴봐야 합니다. 모든 요소를 종합해 보면 모델 유닛은 대규모 환경에서 가장 저렴한 솔루션이 아닙니다. 성능, 예측 가능성, 그리고 마음의 평화를 동시에 제공하는 유일한 솔루션입니다.


시작하기

나에게 적합한 DeepSeek V4-Flash 인스턴스를 배포할 준비가 되셨나요? 필요한 리소스는 다음과 같습니다.


전체 공개 및 주의 사항

이 벤치 마크는 통합 워크로드를 사용하여 통제된 환경에서 수행되었습니다. 실제 결과는 다음에 따라 달라집니다.

  • 입력/출력 토큰 분포(긴 입력 및 긴 출력)
  • 캐시 적중률(반복된 프롬프트는 KV 캐시를 통해 엄청난 이점을 얻음)
  • 애플리케이션 및 추론 엔드포인트 간의 네트워크 대기 시간
  • 모델 양자화 설정(FP8 및 INT4 및 FP16)
  • 특정 모델 버전 및 추론 엔진 최적화

가격 수치는 작성 당시 공개적으로 제공된 출처를 기반으로 한 추정치입니다. 볼륨 할인, 지역 변동, 프로모션 요금이 적용될 수 있습니다. 약정을 진행하기 전에 항상 Alibaba Cloud 계정 관리자에게 비용을 확인하세요.


Alibaba Cloud에 DeepSeek V4-Flash를 배포하는 방법에 대해 궁금한 점이 있으신가요? AI Infra SA 팀은 매주 평가 세션을 진행합니다. 위에 링크된 MU 요청 양식을 통해 문의하세요.


이 문서는 원래 영어로 작성되었습니다. 원본 문서는 여기를 참조하세요.

0 0 0
Share on

Regional Content Hub

138 posts | 4 followers

You may also like

Comments

Regional Content Hub

138 posts | 4 followers

Related Products