Buckets:
| # CacheDiT | |
| [CacheDiT](https://github.com/vipshop/cache-dit), transformer blok çıktıları gürültü azaltma adımları arasında yeniden kullanılarak DiT hatlarını hızlandırır. Eğitim gerektirmez ve Flux, Qwen-Image, Wan ve HunyuanVideo dahil olmak üzere Diffusers'ın çoğu DiT hattını destekler. Diffusers ayrıca ek bir bağımlılık gerektirmeyen [yerleşik önbellekleme](./cache) özelliğine de sahiptir. | |
| CacheDiT'yi PyPI'den yükleyin. | |
| ```bash | |
| pip install -U cache-dit | |
| ``` | |
| CacheDiT'in desteklediği pipeline ailelerini listelemek için `cache_dit.supported_pipelines()` çağrısını yapın. | |
| ```py | |
| import cache_dit | |
| cache_dit.supported_pipelines() | |
| ``` | |
| ## Önbellekleme etkinleştir | |
| Bir pipeline üzerinde `cache_dit.enable_cache` çağrısı yaparak varsayılan ayarlarla önbelleğe alın, ardından pipeline'ı normal şekilde çalıştırın. | |
| ```py | |
| import torch | |
| import cache_dit | |
| from diffusers import FluxPipeline | |
| pipeline = FluxPipeline.from_pretrained( | |
| "black-forest-labs/FLUX.1-dev", dtype=torch.bfloat16 | |
| ).to("cuda") | |
| cache_dit.enable_cache(pipeline) | |
| image = pipeline( | |
| "A cat holding a sign that says hello world", num_inference_steps=28 | |
| ).images[0] | |
| ``` | |
| CacheDiT, `torch.compile` ile de çalışır. `enable_cache` çağrısından sonra transformer'ı derleyin. Dinamik giriş şekillerinde yeniden derlemeyi önleyen ayarlar için [compile](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/COMPILE.md) belgelerine bakın. | |
| ```py | |
| pipeline.transformer = torch.compile(pipeline.transformer) | |
| ``` | |
| Çıkarım işleminden sonra `cache_dit.summary` çağrılarak kaç adımın önbelleğe alındığı ve adımlar arasındaki kalan farkların günlüğe kaydedilmesi sağlanır. | |
| ```py | |
| stats = cache_dit.summary(pipeline) | |
| ``` | |
| Orijinal hattı geri yüklemek için `cache_dit.disable_cache` çağrısını yapın. | |
| ```py | |
| cache_dit.disable_cache(pipeline) | |
| ``` | |
| ## Önbelleği yapılandır | |
| DBCache (Dual Block Cache), her adımda ilk n bloğu (Fn) hesaplar. Çıktıları bir önceki adımdan neredeyse değişmediğinde, kalan bloklar için önbellekteki çıktıyı yeniden kullanır ve düzeltme yapmak için son n bloğu (Bn) yeniden hesaplayabilir. TaylorSeer kalibratörü, önbellekteki çıktıyı olduğu gibi yeniden kullanmak yerine önceki adımlardan tahmin eder. | |
| `enable_cache` varsayılan olarak DBCache kullanır; ilk 8 blok her zaman hesaplanır (F8B0) ve 8 önbelleğe alınmamış ısınma adımı yapılır. Hızı kalite pahasına artırmak için `Fn_compute_blocks` değerini artırın veya `residual_diff_threshold` değerini düşürün (varsayılan `0.08`). Yüksek önbellek oranlarında en iyi kalite için TaylorSeer kalibratörünü ekleyin. | |
| ```py | |
| from cache_dit import DBCacheConfig, TaylorSeerCalibratorConfig | |
| cache_dit.enable_cache( | |
| pipeline, | |
| cache_config=DBCacheConfig( | |
| max_warmup_steps=8, | |
| Fn_compute_blocks=8, | |
| Bn_compute_blocks=0, | |
| residual_diff_threshold=0.12, | |
| ), | |
| calibrator_config=TaylorSeerCalibratorConfig(taylorseer_order=1), | |
| ) | |
| ``` | |
| Desteklenen pipeline'lar için CacheDiT, CFG'nin ayrı bir ileri geçiş olarak çalışıp çalışmadığını zaten bilir. Diğer modeller için, model koşullu ve koşulsuz geçişleri ayrı çalıştırıyorsa `DBCacheConfig` içinde `enable_separate_cfg=True` olarak ayarlayın; bunları birleştiriyorsa veya CFG kullanmıyorsa `False` olarak ayarlayın. | |
| Fn ve Bn bloklarının nasıl çalıştığını görmek için [DBCache tasarımı](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/DBCACHE_DESIGN.md) belgelerine, hız ve kalite değerleri için ise [önbellek kıyaslamalarına](https://github.com/vipshop/cache-dit/blob/main/bench/cache/README.md) bakın. | |
| ## Sonraki adımlar | |
| - CacheDiT'in henüz desteklemediği pipeline'lar için [BlockAdapter](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CACHE_API.md#automatic-block-adapter) belgelerine bakın. | |
| - CacheDiT ayrıca [bağlam paralelliğini](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CONTEXT_PARALLEL.md) ve [kantizasyonu](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/QUANTIZATION.md) destekler. | |
Xet Storage Details
- Size:
- 4.22 kB
- Xet hash:
- eb58a81e3f93c27cdfca77e99f2c0381848df1b8f4b15ab1e19b256858473456
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.