Buckets:
| # CacheDiT | |
| يسرّع [CacheDiT](https://github.com/vipshop/cache-dit) خطوط أنابيب DiT من خلال إعادة استخدام مخرجات كتل التحوّل عبر خطوات إزالة الضوضاء. ولا يتطلب تدريبًا، ويدعم معظم خطوط أنابيب DiT في Diffusers، بما في ذلك Flux وQwen-Image وWan وHunyuanVideo. كما أن Diffusers يحتوي على [تخزين مؤقت مدمج](./cache) لا يتطلب اعتمادًا إضافيًا. | |
| قم بتثبيت CacheDiT من PyPI. | |
| ```bash | |
| pip install -U cache-dit | |
| ``` | |
| استدعِ `cache_dit.supported_pipelines()` لعرض عائلات خطوط الأنابيب التي يدعمها CacheDiT. | |
| ```py | |
| import cache_dit | |
| cache_dit.supported_pipelines() | |
| ``` | |
| ## تفعيل التخزين المؤقت | |
| استدعِ `cache_dit.enable_cache` على خط أنابيب لتخزينه مؤقتًا بالإعدادات الافتراضية، ثم شغّلي خط الأنابيب كما هو معتاد. | |
| ```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`. قم بتجميع المحوّل (transformer) بعد استدعاء `enable_cache`. راجع وثائق [compile](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/COMPILE.md) للإعدادات التي تتجنب إعادة التجميع مع أشكال المدخلات الديناميكية. | |
| ```py | |
| pipeline.transformer = torch.compile(pipeline.transformer) | |
| ``` | |
| استدعِ `cache_dit.summary` بعد الاستدلال لتسجيل عدد الخطوات المخزّنة مؤقتًا والفرق المتبقي بين الخطوات. | |
| ```py | |
| stats = cache_dit.summary(pipeline) | |
| ``` | |
| استدعِ `cache_dit.disable_cache` لاستعادة خط الأنابيب الأصلي. | |
| ```py | |
| cache_dit.disable_cache(pipeline) | |
| ``` | |
| ## تهيئة ذاكرة التخزين المؤقت | |
| DBCache تقوم (Dual Block Cache) بحساب أول n كتل (Fn) في كل خطوة. عندما لا يتغير ناتجها بشكل كبير عن الخطوة السابقة، تعيد استخدام الناتج المخزّن مؤقتًا للكتل المتبقية، ويمكنها إعادة حساب آخر n كتل (Bn) لتصحيحه. يتنبأ مُعايِر TaylorSeer بالناتج المخزّن مؤقتًا من الخطوات السابقة بدلاً من إعادة استخدامه كما هو. | |
| `enable_cache` افتراضيًا هو DBCache مع حساب أول 8 كتل دائمًا (F8B0) وخطوات إحماء غير مخزنة عدد 8. لمقايضة السرعة بالجودة، ارفع `Fn_compute_blocks` أو اخفض `residual_diff_threshold` (الافتراضي `0.08`). للحصول على أفضل جودة عند معدلات التخزين المؤقت العالية، أضف مُعاير TaylorSeer. | |
| ```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), | |
| ) | |
| ``` | |
| بالنسبة إلى خطوط الأنابيب المدعومة، يعرف CacheDiit مسبقًا ما إذا كان CFG يعمل كتمريرة أمامية منفصلة. أما بالنسبة للنماذج الأخرى، فعيّن `enable_separate_cfg=True` في `DBCacheConfig` إذا كان النموذج ينفذ التمرير المشروط وغير المشروط بشكل منفصل، أو عيّن `False` إذا كان يدمجهما أو لا يستخدم CFG. | |
| راجع وثائق [تصميم DBCache](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/DBCACHE_DESIGN.md) لمعرفة كيفية عمل كتل Fn وBn، ووثائق [اختبارات أداء ذاكرة التخزين المؤقت](https://github.com/vipshop/cache-dit/blob/main/bench/cache/README.md) للحصول على أرقام تتعلق بالسرعة والجودة. | |
| ## الخطوات التالية | |
| - بالنسبة إلى خطوط الأنابيب التي لا يدعمها CacheDiT بعد، راجع وثائق [BlockAdapter](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CACHE_API.md#automatic-block-adapter). | |
| - يدعم CacheDiT أيضًا [التوازي السياقي](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CONTEXT_PARALLEL.md) و[التكميم](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/QUANTIZATION.md). | |
Xet Storage Details
- Size:
- 4.87 kB
- Xet hash:
- ac56f814cf27ea870282719f49ef81e1096aeaaec33678177fba720d4a0abe31
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.