오픈 웨이트 모델 자동 배포·관리 파이프라인 아키텍처
1. 문서 목적과 결론 (Executive Summary)
오픈 웨이트 모델의 릴리스 주기는 주 단위로 짧아졌습니다. 새 모델이 나올 때마다 사람이 수동으로 웨이트를 내려받고, 서빙 설정을 실험하고, 배포 매니페스트를 작성하는 방식은 더 이상 릴리스 속도를 따라가지 못합니다. 이 문서는 모델 감지부터 검증·배포·문서화·캐파 확보까지를 에이전트가 실행하고 사람은 승인 게이트에서만 개입하는 7단계 자동화 파이프라인 아키텍처를 제시합니다. 오케스트레이션 기반은 EKS 위의 Argo Events + Argo Workflows이며, 검증·프로파일링·캐파 확보에 각각 검증된 오픈소스·AWS 네이티브 도구를 매핑합니다.
결론 요약:
- 파이프라인의 단일 진실 원천(Single Source of Truth)은 Git에 저장되는 모델 프로파일(Model Profile) 입니다. Intake가 후보를 프로파일 초안으로 만들고, Validate/CI/CD가 측정값을 채우며, Generate/Publish는 프로파일을 읽어 산출물을 렌더링합니다. 모든 단계는 프로파일에 대한 PR로 기록되므로 승인 게이트가 자연스럽게 PR 리뷰로 구현됩니다.
- 품질 검증(벤치마크 재현)과 성능 검증(tok/s·latency·cost)은 분리된 단계로 설계합니다. 품질 재현은 lm-evaluation-harness로 공개 점수 대비 ±5% 이내를 확인하고, 성능 프로파일링은 genai-perf(AIPerf)로 인스턴스 타입별 매트릭스를 생성합니다. 두 검증을 한 Job에 합치면 실패 원인 격리가 어려워집니다.
- 캐파 확보는 배포 시점이 아니라 Validate 단계 이전에 병렬로 시작합니다. 대형 모델(8×GPU 이상)은 EC2 Spot Placement Score로 리전·AZ별 확보 가능성을 먼저 조회하고, 확보 실패 시 ML Capacity Block 또는 ODCR(On-Demand Capacity Reservation)로 폴백합니다. GPU 캐파는 파이프라인에서 가장 긴 리드타임을 갖는 자원이기 때문입니다.
- 사람의 개입 지점은 3개 게이트로 고정합니다 — (G1) 온보딩 착수 승인, (G2) 검증 리포트 승인, (G3) 프로덕션 공개 승인. 게이트 외 구간에서 SME(Subject Matter Expert)가 개입할 수 있도록 Argo Workflows의 suspend 스텝과 파라미터 오버라이드를 사용합니다.
2. 요건 정의
본 아키텍처가 충족해야 하는 7단계 요건은 다음과 같습니다.
| # | 단계 | 요건 | 핵심 판정 기준 |
|---|---|---|---|
| 1 | Intake | HuggingFace 리더보드 스캔 + PFR·고객 요청으로 새 모델 감지 | 사람 승인 게이트 통과 후에만 파이프라인 착수 |
| 2 | Validate | 모델 로드 검증, 공개 벤치마크 재현, 인스턴스별 성능 프로파일링 | 벤치마크 재현 오차 ±5% 이내, tok/s·latency·cost 산출 |
| 3 | CI/CD | 하이퍼파라미터 스윕, 프레임워크 비교, 인터커넥트(NVLink vs EFA) 리포트 | SME가 중간 개입(파라미터 수정·재실행) 가능 |
| 4 | Generate | SageMaker·EC2·EKS·ECS 4개 타깃용 배포 가이드 생성 | 단일 모델 프로파일에서 4종 가이드 렌더링 |
| 5 | Publish | 버전 관리된 추론 컨테이너 + 블로그 수준 문서 산출 | 불변(immutable) 태그, 문서 자동 PR |
| 6 | Capacity | 글로벌 스팟 컴퓨트 자동 확보 (리전 간) | Spot 확보 실패 시 리전 폴백·예약 폴백 자동화 |
| 7 | Human gate | 에이전트가 검증, 사람이 최종 승인 | 게이트 없는 프로덕션 반영 불가 |
기본 가정
- 실행 기반은 EKS이며, GPU 노드 프로비저닝은 Karpenter(또는 EKS Auto Mode)가 담당합니다.
- 모델 웨이트와 벤치마크 산출물은 S3에, 파이프라인 상태는 Git(모델 프로파일)에 저장합니다.
- 서빙 프레임워크는 vLLM을 기본으로 하고, 비교 대상으로 SGLang·TensorRT-LLM을 포함합니다.
- 조직에는 모델 온보딩을 승인할 SME 그룹(플랫폼 팀 + ML 엔지니어)이 존재합니다.
3. 전체 아키텍처
파이프라인 전 구간은 Argo Workflows의 단일 DAG로 표현하며, 게이트(G1~G3)는 suspend 스텝으로 구현합니다. 게이트에서 워크플로는 무기한 대기하고, 승인자가 resume하면 다음 단계로 진행합니다.
단계-도구 매핑
| 단계 | 오케스트레이션 | 핵심 도구 | 산출물 |
|---|---|---|---|
| Intake | Argo Events (Calendar/Webhook) | huggingface_hub API, GitHub Issue 템플릿 | 모델 프로파일 초안 PR |
| Validate | Argo Workflows DAG | vLLM, lm-evaluation-harness, genai-perf | 품질·성능 측정값 (프로파일 갱신) |
| CI/CD | Argo Workflows + suspend | 스윕 매트릭스 Job, 비교 하네스 | 검증 리포트 (Markdown) |
| Generate | Workflows 템플릿 스텝 | Handlebars/Jinja 렌더러 | 배포 가이드 4종 |
| Publish | GitHub Actions | BuildKit, ECR, syft(SBOM) | 버전 태그 이미지 + 문서 PR |
| Capacity | Workflows 병렬 브랜치 | Spot Placement Score API, EC2 Fleet, ODCR | 확보된 NodePool/예약 |
| Human gate | Argo suspend + Slack 알림 | PR 리뷰, argo resume | 승인 기록 (감사 추적) |
4. 단계별 상세 설계
4.1 Intake — 모델 감지와 착수 승인
감지 소스는 두 가지입니다.
(a) 리더보드·릴리스 스캔. Argo Events의 Calendar EventSource가 주기적(예: 6시간)으로 스캐너 Job을 트리거합니다. 스캐너는 huggingface_hub API로 다음을 수집합니다.
from huggingface_hub import HfApi
api = HfApi()
# 최근 7일 내 생성·트렌딩 상위 text-generation 모델
candidates = api.list_models(
filter="text-generation",
sort="trendingScore",
direction=-1,
limit=50,
)
for m in candidates:
info = api.model_info(m.id, files_metadata=True)
# 게이트 조건: 오픈 웨이트 여부, 라이선스, 파라미터 수, safetensors 존재
if info.gated or info.card_data.license not in ALLOWED_LICENSES:
continue
emit_candidate(info)
Open LLM Leaderboard 등 공개 리더보드는 결과 데이터셋을 HF Datasets로 제공하므로 동일 API로 점수를 조회할 수 있습니다. 스캐너는 공개 벤치마크 점수를 프로파일 초안에 기록해 두어야 합니다 — Validate 단계의 ±5% 재현 판정 기준값이 되기 때문입니다.
(b) PFR·고객 요청. 고객 요청은 GitHub Issue 템플릿(모델 ID, 요청 근거, 목표 워크로드, SLA)으로 접수합니다. Issue 라벨 웹훅이 Argo Events를 거쳐 동일한 후보 생성 경로로 합류합니다. 두 소스는 모델 ID 기준으로 중복 제거합니다.
후보 → 프로파일 초안. 감지된 후보는 자동으로 모델 프로파일 초안 PR이 됩니다.
# profiles/qwen3-8b.yaml — 모델 프로파일 (SSOT)
model:
id: Qwen/Qwen3-8B
revision: main # Validate 통과 시 커밋 SHA로 고정
license: apache-2.0
params_b: 8.2
intake:
source: leaderboard-scan # leaderboard-scan | pfr | customer-request
detected_at: 2026-07-28
published_scores: # 재현 판정 기준값
mmlu_pro: 58.4
gsm8k: 89.1
validate: {} # Validate 단계가 채움
profiles: [] # 인스턴스별 프로파일링 결과가 채움
serving: {} # CI/CD 스윕의 최적 설정이 채움
G1 게이트. 초안 PR의 승인·머지가 곧 온보딩 착수 승인입니다. CODEOWNERS로 승인자 그룹을 강제하고, 미승인 PR은 파이프라인을 트리거하지 않습니다. 라이선스 비허용·게이티드 모델은 스캐너가 PR 생성 전에 자동 탈락시키되, 탈락 사유를 로그로 남깁니다.