TeaCache 가속화

TeaCache 가속화 (TeaCache Acceleration)

이 페이지는 시간 유사도 기반 확산 가속화를 위한 TeaCache를 구성하는 방법을 설명해요. TeaCache는 연속된 디노이징 스텝이 충분히 유사해서 계산 자체를 건너뛸 때를 감지해 확산 추론을 가속화해요. 이 문서는 SGLang에서 사용할 수 있는 두 가지 캐싱 전략 중 하나예요.

출처: 문서

본문

Note: 이 문서는 SGLang에서 사용할 수 있는 두 가지 캐싱 전략 중 하나예요. 모든 캐싱 옵션에 대한 개요는 caching 문서를 참고해 주세요.

TeaCache(시간 유사도 기반 캐싱, Temporal similarity-based caching)는 연속된 디노이징 스텝이 충분히 유사해서 계산을 완전히 건너뛸 수 있을 때를 감지해 확산 추론을 가속화해요.

개요 (Overview)

TeaCache는 다음과 같이 동작해요:

  1. 연속된 타임스텝 간 변조된 입력(modulated inputs)의 L1 거리 추적
  2. 스텝에 걸쳐 재조정된 L1 거리 누적
  3. 누적 거리가 임계값보다 낮으면 캐시된 잔차(cached residual) 재사용
  4. 지원되는 CFG 모델 패밀리를 위해 별도의 양/음 캐시(positive/negative caches) 사용

동작 방식 (How It Works)

L1 거리 추적 (L1 Distance Tracking)

각 디노이징 스텝에서 TeaCache는 현재와 이전 변조 입력 간의 상대 L1 거리를 계산해요:

rel_l1 = |current - previous|.mean() / |previous|.mean()

이 거리는 다항 계수(polynomial coefficients)로 재조정되고 누적돼요:

accumulated += poly(coefficients)(rel_l1)

캐시 결정 (Cache Decision)

  • accumulated >= threshold인 경우: 계산 강제 실행, 누산기 재설정
  • accumulated < threshold인 경우: 계산 건너뛰기, 캐시된 잔차 사용

CFG 지원 (CFG Support)

CFG 캐시 분리를 지원하는 모델의 경우 TeaCache는 양(positive)/음(negative) 분기에 대해 별도의 캐시를 유지해요:

  • previous_modulated_input / previous_residual — 양 분기용
  • previous_modulated_input_negative / previous_residual_negative — 음 분기용

CFG 분리를 지원하지 않는 모델의 경우 CFG가 활성화되면 TeaCache가 자동으로 비활성화돼요.

구성 (Configuration)

TeaCache는 샘플링 파라미터의 TeaCacheParams로 구성돼요:

from sglang.multimodal_gen.configs.sample.teacache import TeaCacheParams

params = TeaCacheParams(
    teacache_thresh=0.1,           # Threshold for accumulated L1 distance
    coefficients=[1.0, 0.0, 0.0],  # Polynomial coefficients for L1 rescaling
)

파라미터 (Parameters)

Parameter Type Description
teacache_thresh float 누적 L1 거리 임계값. 높을수록 더 많이 캐싱해 더 빠르지만 품질이 낮아질 수 있어요.
coefficients list[float] L1 재조정용 다항 계수. 모델별 튜닝이 필요해요.

모델별 구성 (Model-Specific Configurations)

모델마다 최적 구성이 다를 수 있어요. 계수(coefficients)는 일반적으로 속도와 품질의 균형을 맞추기 위해 모델별로 튜닝돼요.

지원 모델 (Supported Models)

모델 패밀리별 TeaCache 지원 상태:

Model Family CFG Cache Separation Notes
Wan2.1 Yes 전체 지원
Wan2.2 Yes 계수가 아직 보정되지 않음. TeaCache를 활성화하면 수용되지만 현재는 no-op
Z-Image Yes 전체 지원
HunyuanVideo No 아직 미지원
Flux No 지원 예정
Qwen No 지원 예정

참고 자료 (References)

더 알아보기