Buckets:
| # xDiT | |
| [xDiT](https://github.com/xdit-project/xDiT) هو محرك استدلال مصمم للنشر المتوازي واسع النطاق لنماذج التحويلات الانتشارية (DiTs). يوفر xDiT مجموعة من الأساليب المتوازية الفعّالة لنماذج الانتشار، بالإضافة إلى تسريع نواة GPU. | |
| تدعم xDiT أربع طرق متوازية، وهي [توازي التسلسل الموحّد](https://huggingface.co/papers/2405.07719) و[PipeFusion](https://huggingface.co/papers/2405.14430) وتوازي CFG وتوازي البيانات. يمكن ضبط الطرق المتوازية الأربع في xDiT بطريقة هجينة، لتحسين أنماط الاتصال بما يناسب أفضل ما يمكن أجهزة الشبكة الأساسية. | |
| تركز التحسينات المستقلة عن التوازي على تسريع أداء وحدة معالجة الرسوميات الواحدة. بالإضافة إلى الاستفادة من مكتبات تحسين الانتباه المعروفة، نعتمد على تقنيات تسريع الترجمة مثل torch.compile وonediff. | |
| يُعرض ملخص xDiT على النحو التالي. | |
| يمكنك تثبيت xDiT باستخدام الأمر التالي: | |
| ```bash | |
| pip install xfuser | |
| ``` | |
| فيما يلي مثال على استخدام xDiT لتسريع الاستدلال لنموذج Diffusers. | |
| ```diff | |
| import torch | |
| from diffusers import StableDiffusion3Pipeline | |
| from xfuser import xFuserArgs, xDiTParallel | |
| from xfuser.config import FlexibleArgumentParser | |
| from xfuser.core.distributed import get_world_group | |
| def main(): | |
| + parser = FlexibleArgumentParser(description="xFuser Arguments") | |
| + args = xFuserArgs.add_cli_args(parser).parse_args() | |
| + engine_args = xFuserArgs.from_cli_args(args) | |
| + engine_config, input_config = engine_args.create_config() | |
| local_rank = get_world_group().local_rank | |
| pipe = StableDiffusion3Pipeline.from_pretrained( | |
| pretrained_model_name_or_path=engine_config.model_config.model, | |
| dtype=torch.float16, | |
| ).to(f"cuda:{local_rank}") | |
| # do anything you want with pipeline here | |
| + pipe = xDiTParallel(pipe, engine_config, input_config) | |
| pipe( | |
| height=input_config.height, | |
| width=input_config.height, | |
| prompt=input_config.prompt, | |
| num_inference_steps=input_config.num_inference_steps, | |
| output_type=input_config.output_type, | |
| generator=torch.Generator(device="cuda").manual_seed(input_config.seed), # or "mps", "xpu", "cpu" | |
| ) | |
| + if input_config.output_type == "pil": | |
| + pipe.save("results", "stable_diffusion_3") | |
| if __name__ == "__main__": | |
| main() | |
| ``` | |
| كما ترون، لا نحتاج سوى إلى استخدام xFuserArgs من xDiT للحصول على معاملات التهيئة، ثم تمرير هذه المعاملات مع كائن خط الأنابيب من مكتبة Diffusers إلى xDiTParallel لإكمال موازاة خط أنابيب محدد في Diffusers. | |
| يمكن عرض معاملات وقت التشغيل الخاصة بـ xDiT في سطر الأوامر باستخدام `-h`، كما يمكنك الرجوع إلى هذا المثال [للاستخدام](https://github.com/xdit-project/xDiT?tab=readme-ov-file#2-usage) لمزيد من التفاصيل. | |
| يجب تشغيل xDiT باستخدام torchrun لدعم قدراته المتوازية عبر عدة عقد وشرائح GPU متعددة. على سبيل المثال، يمكن استخدام الأمر التالي للاستدلال المتوازي على 8 شرائح GPU: | |
| ```bash | |
| torchrun --nproc_per_node=8 ./inference.py --model models/FLUX.1-dev --data_parallel_degree 2 --ulysses_degree 2 --ring_degree 2 --prompt "A snowy mountain" "A small dog" --num_inference_steps 50 | |
| ``` | |
| ## النماذج المدعومة | |
| تدعم xDiT مجموعة فرعية من نماذج Diffusers، مثل Flux.1 وStable Diffusion 3 وغيرها. يمكن العثور على أحدث النماذج المدعومة [هنا](https://github.com/xdit-project/xDiT?tab=readme-ov-file#-supported-dits). | |
| ## معايرة | |
| اختبرنا نماذج مختلفة على أجهزة متنوعة، وفيما يلي بعض بيانات الاختبار المرجعي. | |
| ### Flux.1-schnell | |
| ### Stable Diffusion 3 | |
| ### HunyuanDiT | |
| يمكن العثور على مقاييس أداء أكثر تفصيلاً في [صفحة github](https://github.com/xdit-project/xDiT?tab=readme-ov-file#perf) الخاصة بنا. | |
| ## مرجع | |
| [مشروع xDiT](https://github.com/xdit-project/xDiT) | |
| [USP: نهج موحّد للتوازي التسلسلي لتوليد الذكاء الاصطناعي في السياقات الطويلة](https://huggingface.co/papers/2405.07719) | |
| [بايب فوجن: توازٍ خطّي لأنابيب البقع المزاحة للاستدلال على نماذج محوّلات الانتشار](https://huggingface.co/papers/2405.14430) | |
Xet Storage Details
- Size:
- 5.08 kB
- Xet hash:
- de47d2726c75e19ddf835de831c473ac80b0e60c1b0098aa0ae5498c34b056a3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.