추론 엔지니어링은(는) 무엇을 하나요?
이 스킬을 사용하여 AI 제품의 품질, 지연 시간, 신뢰성 및 비용 요구 사항을 측정 가능한 추론 시스템으로 전환하세요. 이는 Philip Kiely의 Inference Engineering (Baseten Books, 2026)을 바탕으로 한 독립적인 운영 종합 자료이며, 저자나 출판사의 제휴 또는 보증과는 관련이 없습니다. 벤더 기능, 모델 릴리스, 하드웨어 가용성 및 소프트웨어 동작은 빠르게 변화합니다. 구현 결정을 내리기 전에 공식 문서를 통해 최신 세부 정보를 확인하세요.
워크로드부터 시작하세요
엔진이나 최적화를 선택하기 전에 다음을 설정하세요:
- 제품 계약: 필요한 출력 품질, 모달리티, 컨텍스트/입력 크기, 응답 형태, 스트리밍 요구 사항 및 실패 동작.
- 트래픽 형태: 요청 속도, 동시성, 버스트성, 도착 패턴, 입력/출력 길이 분포 및 캐시 가능 접두사 빈도.
- 서비스 목표: 종단 간 P50/P95/P99 지연 시간, 첫 토큰까지의 시간(TTFT), 토큰 간 지연 시간(ITL), 처리량, 가용성 및 복구 목표.
- 제약 조건: 예산, 지역, 데이터 상주, 개인정보 보호, 라이선스, 하드웨어 액세스 및 운영 역량.
- 기준: 대표적인 품질 평가와 현실적인 부하에서의 종단 간 성능 및 비용.
단일 대리 지표를 독립적으로 최적화하지 마세요. 작업 단위를 정의하고 해당되는 경우 클라이언트, 큐, 네트워크, 전처리, 모델 및 후처리 시간을 포함하세요. 에이전트 플로우의 경우 도구 호출 및 재시도를 포함한 전체 작업을 측정하세요.
운영 워크플로우
- 워크로드 특성화. 대화형 온라인 트래픽을 오프라인/배치 작업과 분리하고, 지연 시간에 민감한 경로와 처리량 중심 경로를 식별합니다. 실제 입력/출력 분포 및 동시성을 기록합니다.
- 후보 모델 선택. 작업별 품질, 모달리티, 컨텍스트, 제공 제약 조건, 라이선스 및 운영 적합성으로 후보를 좁힙니다. 공개 벤치마크는 후보를 좁히는 용도로만 사용하고, 대표적인 제품 데이터 및 실패 사례에 대해 평가합니다.
- 예산 설정. 종단 간 목표를 큐잉, 네트워크, 전처리, 프리필, 디코드 및 후처리에 대한 예산으로 변환합니다. 버스트 및 성능 저하 조건에 대한 여유를 포함합니다.
- 모델을 하드웨어에 맞춤. 가중치 메모리, 런타임/활성화 오버헤드, KV-캐시 수요 및 사용 가능한 여유를 추정합니다. 측정된 메모리 대역폭, 컴퓨팅, 상호 연결 및 토폴로지를 확인합니다. 명목상의 가속기 사양은 워크로드 벤치마크가 아닙니다.
- 재현 가능한 기준 설정. 모델 개정, 엔진/버전, 하드웨어, 정밀도, 구성, 프롬프트 혼합, 출력 한도 및 부하 형태를 고정합니다. 워밍업 후 충분한 샘플을 실행하고 동시에 백분위수 및 처리량을 보고합니다.
- 병목 현상 찾기. 먼저 종단 간 측정을 사용한 다음 시스템 및 커널 프로파일링을 사용합니다. 큐잉, 프리필, 디코드, 메모리 용량/대역폭, 컴퓨팅, 통신 및 호스트 오버헤드를 구분합니다.
- 한 번에 하나의 변수 변경. 측정된 병목 현상을 해결하는 가장 단순한 최적화를 적용합니다. 품질, 꼬리 지연 시간, 처리량, 메모리 및 비용을 함께 재확인합니다.
- 프로덕션 동작 검증. 과부하, 콜드 스타트, 확장 이벤트, 장애, 배포, 취소, 스트리밍 및 복구를 테스트합니다. 서비스 목표에 사용된 것과 동일한 지표를 계측합니다.
지표 및 진단
- TTFT: 명확하게 명시된 시작 이벤트(예: 클라이언트 전송 또는 서버 수락)부터 첫 번째 생성 토큰까지의 시간. 비교 시 해당 경계를 일관되게 유지하세요. 큐잉, 프롬프트 길이, 프리필 및 시작 효과에 민감합니다.
- ITL: 생성된 토큰 사이의 시간. 디코드 응답성을 반영합니다. 요청별 분포를 보고하고, 집계 토큰 속도만 보고하지 마세요.
- 종단 간 지연 시간: 클라이언트가 관찰한 완료 시간. 네트워크 및 애플리케이션 작업을 포함합니다.
- 처리량: 명시된 워크로드 및 지연 시간/품질 범위 내에서 단위 시간당 완료된 요청 또는 토큰. 토큰/초가 사용자별인지 시스템 전체인지 명시합니다.
- 백분위수: P50과 함께 P95/P99와 같은 꼬리 목표를 보고합니다. 평균은 느린 요청을 숨길 수 있습니다.
- 굿풋: 관련 지연 시간 및 품질 목표를 충족하면서 완료된 작업. 속도와 품질 또는 꼬리 동작을 교환하는 구성을 비교하는 데 사용합니다.
증상을 가설로 해석한 다음 추적/프로파일로 검증합니다:
| 증상 | 측정해야 할 가능한 영역 |
|---|---|
| TTFT 높음, ITL 정상 | 큐 대기, 긴 프롬프트, 프리필 컴퓨팅, 콜드 스타트, 전처리 |
| TTFT 정상, ITL 낮음 | 디코드 대역폭, 배치 경합, KV-캐시 압력, 커널 효율성 |
| 동시성 증가에 따라 둘 다 악화 | 큐잉, 메모리 용량, 배치 정책, 승인 제어, 포화 |
| GPU 사용률 낮음, 지연 시간 높음 | CPU/토큰화, 데이터 전송, 동기화, 네트워크, 스케줄링 |
| 처리량 증가하지만 꼬리 지연 시간이 SLO 위반 | 배치/동시성 정책, 큐 한도, 워크로드 격리 |
이는 진단 단서일 뿐 결론이 아닙니다. 구성 변경 전에 활성 병목 현상을 확인하세요.
모델 및 하드웨어 결정
- 제품의 품질 평가를 수용 가능한 범위 내에서 통과하는 가장 작고/비용이 적게 드는 모델을 선호하세요. 평가에서 특정 격차를 식별하고 수명 주기 비용이 정당화되는 경우에만 프롬프팅, 검색, 미세 조정 또는 증류를 고려하세요.
- 지연 시간, 배치 또는 가용성 목표가 충돌하고 측정된 트래픽이 운영 오버헤드를 정당화하는 경우 온라인 및 오프라인 배포를 분리하세요.
- KV 캐시, 활성화, 단편화 및 동시성에 대한 명시적 여유를 포함하여 모델 및 런타임 상태를 가속기 메모리에 맞추세요. 가중치 적합만으로는 충분하지 않습니다.
- 자기회귀 LLM의 경우 프리필과 디코드는 하드웨어에 다르게 부담을 줍니다. 프리필은 일반적으로 계산 집약적이고 디코드는 종종 메모리 대역폭에 묶입니다. 실제 시퀀스 및 배치 혼합에 대해 둘 다 측정하세요.
- 다중 GPU 선택은 메모리/지연 시간/처리량과 통신 및 복잡성을 교환합니다. 텐서 병렬 처리는 분할 모델의 요청당 지연 시간을 줄일 수 있고, 전문가 병렬 처리는 희소 전문가를 대규모로 제공할 수 있습니다. 상호 연결 및 동기화 비용을 검증하세요. 다중 노드 실행은 특히 주의 깊은 통신 측정이 필요합니다.
- 이미지, 비디오, 오디오, 임베딩 및 비전-언어 워크로드의 경우 모달리티별 파이프라인 및 지표를 사용하세요. 전처리, 청킹, 인코더/디코더 및 후처리 비용을 포함하고 LLM 토큰 지표를 맹목적으로 적용하지 마세요.
- 배포 전에 모델 및 데이터 세트 라이선스와 관련 보안, 개인정보 보호 및 규제 요구 사항을 확인하세요.
이러한 선택의 이유에 대해서는 모델 및 하드웨어 기초를 참조하세요. 프레임워크, 형식 및 서빙 엔진 호환성에 대해서는 소프트웨어 스택 선택을 참조하세요. 이러한 참조는 결정 방법을 제공하지만 시대를 초월한 순위는 아닙니다. 정확한 모델, 가속기, 런타임 버전 및 기능 세트에 대한 지원을 확인하세요.
최적화 플레이북
기준을 설정하고 호환 가능한 병목 현상을 식별한 후에만 적용하세요:
배치 및 스케줄링
배치는 가속기 활용도를 높이고 오버헤드를 상쇄할 수 있지만 큐잉 및 요청당 지연 시간을 증가시킵니다. 동시성, 배치 제한, 대기 창 및 승인 제어를 현실적인 도착 패턴에 맞게 조정하세요. 목표가 충돌할 때 대화형 트래픽을 배치 작업으로부터 보호하세요.
양자화
양자화를 이진 설정이 아닌 품질/성능 스펙트럼으로 취급하세요. 측정된 메모리, 대역폭, 계산 및 품질 제약 조건에 따라 변경할 구성 요소와 정밀도를 선택하세요. 각 변경 후 대표적인 작업 품질, 에지 케이스 및 회귀 세트를 평가하고, 엔진이 허용하는 경우 가중치, 활성화, 어텐션 및 KV-캐시 효과를 별도로 관찰하세요. 제품 품질 기준 또는 신뢰성 목표를 충족하지 못하면 롤백하세요.
추측 디코딩
드래프트/제안 메커니즘은 제안 비용과 수락 동작이 대상 워크로드에 대해 순이익을 생성하는 경우에만 사용하세요. 수락률, 메모리 오버헤드, 배치 크기 영향, 사용자당 ITL, 집계 처리량 및 비용을 측정하세요. 이점은 높은 동시성 또는 낮은 수락률에서 줄어들거나 역전될 수 있습니다.
KV 및 접두사 캐싱
접두사가 반복되고 정확성/격리 요구 사항이 허용하는 경우 캐시된 상태를 재사용하세요. 적중률, 절약된 프리필 작업, 스토리지/메모리 비용, 축출 동작 및 라우팅 지역성을 측정하세요. 캐시 키 및 테넌트/보안 경계를 정의하여 한 요청이 다른 테넌트의 개인 컨텍스트를 재사용할 수 없도록 하세요. 긴 컨텍스트와 높은 동시성은 KV 압력을 증가시킵니다. 배치 및 전송 비용을 고려하세요.
병렬 처리 및 분리
모델 적합, 지연 시간 또는 처리량 측정이 통신 오버헤드를 정당화하는 경우 병렬 처리를 도입하세요. 프리필과 디코드는 워크로드가 독립적인 리소스 할당의 이점을 누릴 수 있을 만큼 크고 안정적이며 시스템이 KV 전송/라우팅을 관리할 수 있는 경우에만 분리하세요. 비교에 네트워크 대역폭, 전송 지연 시간, 장애 모드 및 운영 복잡성을 포함하세요.
커널 및 런타임 최적화
전문화된 커널을 작성하거나 선택하기 전에 프로파일링하세요. 커널 융합은 메모리 트래픽과 실행 오버헤드를 줄일 수 있지만 호환성과 수치 동작이 중요합니다. 동일한 모델 개정, 하드웨어, 프롬프트 혼합, 출력 길이, 부하 및 품질 검사를 사용하여 프레임워크/런타임/엔진 후보를 비교하세요.
양자화 방법, 추측 디코딩 제품군, 캐시 배치, 긴 컨텍스트 제공 및 분산 실행에 대한 자세한 비교는 최적화 플레이북을 읽으세요.
벤치마킹 및 프로파일링
- 요청 크기, 도착 패턴 및 캐시 특성을 보존하는 프로덕션 추적 또는 개인정보 보호에 안전한 워크로드를 사용하세요. 합성 테스트는 제어된 실험에 유용하지만 그 한계를 명시하세요.
- 콜드 및 웜 동작을 별도로 기록하세요. 워밍업, 적절한 기간/샘플 수, 반복 실행, 분산 및 하드웨어/소프트웨어 버전을 포함하세요.
- 부하를 스위핑하여 포화 지점과 SLO 아래의 최대 굿풋을 모두 찾으세요. 가볍게 로드된 실행과 과부하된 실행을 비교하지 마세요.
- 속성 추정을 위해 한 번에 하나의 요인을 변경하고, 튜닝 후 결합된 종단 간 테스트를 실행하세요. 최적화가 상호 작용할 수 있습니다.
- 시스템 벤치마크를 작업 품질 평가와 쌍으로 연결하세요. 출력을 제품 임계값 이하로 저하시키는 성능 개선은 이점이 아닙니다.
- 벤치마킹은 무엇이 느린지 보여주고, 프로파일링은 왜 느린지 설명하는 데 도움이 됩니다. 활성 병목 현상을 격리할 수 있는 가장 덜 방해적인 프로파일러를 사용하고 새 벤치마크로 제안된 수정 사항을 검증하세요.
프로덕션 준비
- 용량 및 자동 확장: 완료된 작업뿐만 아니라 선행 지표(큐 깊이, 사용률, 메모리/KV 압력, 도착 속도)를 기준으로 확장하세요. 프로비저닝 및 모델 로드 시간을 고려하고, 콜드 스타트가 목표를 위반할 때 충분한 용량을 유지하거나 우아하게 성능을 저하시키세요.
- 큐잉 및 과부하: 큐 및 요청 크기를 제한하고, 시간 초과/취소를 설정하고, 승인 제어를 사용하고, 명시적인 과부하 응답을 정의하세요. 무제한 큐잉은 포화를 꼬리 지연 시간 실패로 전환합니다.
- 신뢰성: 상태 확인, 제한이 있는 재시도, 필요한 경우 멱등성, 인스턴스 손실, 리전/공급자 장애, 롤아웃, 롤백 및 용량 소진을 테스트하세요. 재시도는 과부하를 증폭시킬 수 있습니다.
- 배포: 모델 아티팩트 및 종속성을 고정하고, 시작/준비 상태를 검증하고, 변경 사항을 카나리아 배포하고, 품질 및 서비스 지표를 비교하고, 테스트된 롤백 경로를 유지하세요. 이미지, 로그 또는 벤치마크 아티팩트에 시크릿을 노출하지 마세요.
- 관찰 가능성: 요청 추적을 모델, 엔진, 하드웨어 및 구성 버전과 상호 연결하세요. TTFT, ITL, 종단 간 백분위수, 큐 시간, 처리량/굿풋, 오류, 캐시 적중률, 사용률, 메모리, 콜드 스타트 및 비용을 추적하세요.
- 비용: 필요한 품질 및 SLO에서 성공적인 요청 또는 유용한 출력당 비용을 비교하고, 유휴 용량, 복제, 네트워킹, 스토리지 및 엔지니어링/운영 부담을 포함하세요. 규모를 0으로 줄이면 유휴 비용을 줄일 수 있지만 콜드 스타트 지연 시간이 추가됩니다.
- 보안 및 규정 준수: 모델 및 데이터 액세스를 제어하고, 테넌트를 격리하고, 로그에서 프롬프트 및 출력을 보호하고, 보존을 정의하고, 종속성 및 아티팩트를 검증하고, 해당 데이터 상주 및 규제 요구 사항을 충족하세요.
컨테이너 재현성, 용량 및 라우팅, 다중 리전 운영, 클라이언트 프로토콜 및 롤아웃 관행에 대해서는 프로덕션 운영을 읽으세요. 모달리티별 측정에 대해서는 모달리티별 추론 고려 사항을 읽으세요.
참조 라우팅
| 작업 | 읽을 자료 |
|---|---|
| 워크로드 카드 작성, 기준 설정, 또는 병목 현상 찾기 | 이 파일, 그 다음 최적화 플레이북 |
| 모델 실행, 가속기 적합성, 또는 하드웨어 트레이드오프 이해 | 모델 및 하드웨어 기초 |
| 프레임워크, 모델 형식, 커널 경로 또는 서빙 엔진 선택 | 소프트웨어 스택 선택 |
| 양자화, 추측, 캐시, 병렬 처리 또는 분리 튜닝 | 최적화 플레이북 |
| 비전, 임베딩, 오디오, 이미지 또는 비디오 워크로드 제공 | 모달리티별 고려 사항 |
| 자동 확장, 배포, 신뢰성, API/클라이언트 동작 및 비용 계획 | 프로덕션 운영 |
추론 작업을 위한 응답 형식
조언하거나 구현할 때 다음을 제공하세요:
- 워크로드 가정 및 누락된 측정.
- 목표 및 기준 지표.
- 주요 병목 가설 및 이를 증명하는 방법.
- 예상되는 트레이드오프와 함께 순위가 매겨진 실험 계획.
- 품질, 꼬리 지연 시간, 신뢰성, 보안 및 비용 수용 기준.
- 권장 사항에 영향을 미치는 경우 공식 소스에 대한 링크와 함께 현재 벤더/모델/런타임 사실.