Buckets:
| # CogVideoX | |
| CogVideoX هو نموذج لتوليد الفيديو من النص يركّز على إنشاء فيديوهات أكثر تماسكاً ومتوافقة مع الأمر النصي. وهو يحقق ذلك باستخدام عدة طرق. | |
| - تشفير ذاتي تبايني ثلاثي الأبعاد يضغط مقاطع الفيديو مكانيًا وزمنيًا، مما يحسّن معدل الضغط ودقة الفيديو. | |
| - وحدة Transformer خبيرة تساعد في محاذاة النص مع الفيديو، ووحدة انتباه كاملة ثلاثية الأبعاد لالتقاط وإنشاء فيديوهات دقيقة مكانياً وزمنياً. | |
| أظهر الاختبار الفعلي لبُعد تعليمات الفيديو أن CogVideoX يحقق نتائج جيدة فيما يتعلق بالاتساق في الموضوع، والمعلومات الديناميكية، واتساق الخلفية، ومعلومات الكائنات، وسلاسة الحركة، واللون، والمشهد، ونمط المظهر، والأسلوب الزمني، لكنه لا يحقق نتائج جيدة فيما يتعلق بالحركة البشرية، والعلاقات المكانية، والكائنات المتعددة. | |
| يمكن أن يساعد الضبط الدقيق باستخدام Diffusers في تعويض هذه النتائج الضعيفة. | |
| ## تجهيز البيانات | |
| تقبل سكربتات التدريب البيانات بصيغتين. | |
| يناسب التنسيق الأول التدريب على نطاق صغير، بينما يستخدم التنسيق الثاني تنسيق CSV، وهو أكثر ملاءمة لبث البيانات للتدريب على نطاق واسع. في المستقبل، سيدعم Diffusers وسم `<Video>`. | |
| ### تنسيق صغير | |
| ملفان، أحدهما يحتوي على موجهات مفصولة بالسطور والآخر يحتوي على مسارات مفصولة بالسطور لبيانات الفيديو (يجب أن تكون المسارات إلى ملفات الفيديو نسبية بالنسبة للمسار الذي تمرره عند تحديد `--instance_data_root`). دعونا ننظر إلى مثال لفهم ذلك بشكل أفضل! | |
| افترض أنك حددت `--instance_data_root` على أنه `/dataset`، وأن هذا المجلد يحتوي على الملفات: `prompts.txt` و`videos.txt`. | |
| يجب أن يحتوي ملف `prompts.txt` على أوامر (prompts) مفصولة بسطور: | |
| ``` | |
| A black and white animated sequence featuring a rabbit, named Rabbity Ribfried, and an anthropomorphic goat in a musical, playful environment, showcasing their evolving interaction. | |
| A black and white animated sequence on a ship's deck features a bulldog character, named Bully Bulldoger, showcasing exaggerated facial expressions and body language. The character progresses from confident to focused, then to strained and distressed, displaying a range of emotions as it navigates challenges. The ship's interior remains static in the background, with minimalistic details such as a bell and open door. The character's dynamic movements and changing expressions drive the narrative, with no camera movement to distract from its evolving reactions and physical gestures. | |
| ... | |
| ``` | |
| يجب أن يحتوي ملف `videos.txt` على مسارات منفصلة بسطر لكل ملف فيديو. لاحظ أن المسار يجب أن يكون _نسبيًا_ إلى مجلد `--instance_data_root`. | |
| ``` | |
| videos/00000.mp4 | |
| videos/00001.mp4 | |
| ... | |
| ``` | |
| بشكل عام، هذا هو شكل مجموعة البيانات الخاصة بك إذا قمت بتشغيل أمر `tree` على المجلد الجذري لمجموعة البيانات: | |
| ``` | |
| /dataset | |
| ├── prompts.txt | |
| ├── videos.txt | |
| ├── videos | |
| ├── videos/00000.mp4 | |
| ├── videos/00001.mp4 | |
| ├── ... | |
| ``` | |
| عند استخدام هذا التنسيق، يجب أن يكون `--caption_column` هو `prompts.txt` وأن يكون `--video_column` هو `videos.txt`. | |
| ### تنسيق البث | |
| يمكنك استخدام ملف CSV واحد. من أجل هذا المثال، افترض أن لديك ملف `metadata.csv`. الصيغة المتوقعة هي: | |
| ``` | |
| <CAPTION_COLUMN>,<PATH_TO_VIDEO_COLUMN> | |
| """A black and white animated sequence featuring a rabbit, named Rabbity Ribfried, and an anthropomorphic goat in a musical, playful environment, showcasing their evolving interaction.""","""00000.mp4""" | |
| """A black and white animated sequence on a ship's deck features a bulldog character, named Bully Bulldoger, showcasing exaggerated facial expressions and body language. The character progresses from confident to focused, then to strained and distressed, displaying a range of emotions as it navigates challenges. The ship's interior remains static in the background, with minimalistic details such as a bell and open door. The character's dynamic movements and changing expressions drive the narrative, with no camera movement to distract from its evolving reactions and physical gestures.""","""00001.mp4""" | |
| ... | |
| ``` | |
| في هذه الحالة، يجب أن يكون `--instance_data_root` هو الموقع الذي تُخزَّن فيه مقاطع الفيديو، وأن يكون `--dataset_name` إما مسارًا إلى مجلد محلي أو مجموعة بيانات متوافقة مع [load_dataset](https://huggingface.co/docs/datasets/main/en/package_reference/loading_methods#datasets.load_dataset) مستضافة على Hub. بافتراض أن لديك مقاطع فيديو لألعاب ماينكرافت في `https://huggingface.co/datasets/my-awesome-username/minecraft-videos`، فستحتاج إلى تحديد `my-awesome-username/minecraft-videos`. | |
| عند استخدام هذا التنسيق، يجب أن يكون `--caption_column` هو `<CAPTION_COLUMN>` وأن يكون `--video_column` هو `<PATH_TO_VIDEO_COLUMN>`. | |
| لستَ مقيدًا بشكل صارم بتنسيق CSV. يعمل أي تنسيق طالما يدعم أسلوب `load_dataset` تنسيق الملف لتحميل عمود `<PATH_TO_VIDEO_COLUMN>` و`<CAPTION_COLUMN>` الأساسي. والسبب في المرور بهذه الخطوات المعقدة لتنظيم مجموعة البيانات عند تحميل بيانات الفيديو هو أن `load_dataset` لا يدعم جميع أنواع تنسيقات الفيديو بشكل كامل. | |
| > [!NOTE] | |
| > يعمل CogVideoX بشكل أفضل مع الأوامر النصية الطويلة والوصفية المعززة بنماذج اللغة الكبيرة (LLM) لتوليد الفيديو. ننصح بمعالجة مقاطع الفيديو مسبقاً من خلال توليد ملخص أولاً باستخدام نموذج لغة-رؤية (VLM)، ثم تعزيز الأوامر النصية باستخدام نموذج لغة كبير (LLM). ولتوليد التسميات المذكورة أعلاه، استخدمنا [MiniCPM-V-26](https://huggingface.co/openbmb/MiniCPM-V-2_6) و [Llama-3.1-8B-Instruct](https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct). يتوفر مثال بسيط جداً وخالي من التعقيدات لهذا الإجراء [هنا](https://gist.github.com/a-r-r-o-w/4dee20250e82f4e44690a02351324a4a). والتوصية الرسمية لتعزيز الأوامر النصية هي استخدام [ChatGLM](https://huggingface.co/THUDM?search_models=chatglm)، ويُعتبر طول الأمر بين 50 و100 كلمة مناسباً. | |
| >![NOTE] يُتوقَّع أن يكون مجموعة بياناتك مُعالَجة مسبقًا بالفعل. وإذا لم تكن كذلك، يمكن إجراء بعض المعالجات الأساسية الأولية من خلال التلاعب بالمعاملات التالية: `--height`، `--width`، `--fps`، `--max_num_frames`، `--skip_frames_start` و`--skip_frames_end`. حاليًا، يجب أن تحتوي جميع مقاطع الفيديو في مجموعة بياناتك على نفس عدد إطارات الفيديو عند استخدام حجم دفعة تدريب > 1. | |
| ## التدريب | |
| تحتاج إلى إعداد بيئة التطوير من خلال تثبيت المتطلبات اللازمة. الحزم التالية مطلوبة: | |
| - Torch 2.0 أو أحدث بناءً على ميزات التدريب التي تستخدمها (قد يتطلب ذلك أحدث إصدارات أو الإصدارات الليلية للتدريب باستخدام التكميم/deepspeed) | |
| - `pip install diffusers transformers accelerate peft huggingface_hub` لكل ما يتعلق بالنمذجة والتدريب | |
| - `pip install datasets decord` لتحميل بيانات التدريب الخاصة بالفيديو | |
| - `pip install bitsandbytes` لاستخدام مُحسِّنات Adam أو AdamW بدقة 8 بت للتدريب المُحسَّن من حيث الذاكرة | |
| - `pip install wandb` اختياريًا لمراقبة سجلات التدريب | |
| - `pip install deepspeed` اختياريًا لتدريب [DeepSpeed](https://github.com/microsoft/DeepSpeed) | |
| - `pip install prodigyopt` اختياريًا إذا كنت ترغب في استخدام مُحسِّن Prodigy للتدريب | |
| لضمان قدرتك على تشغيل أحدث إصدارات سكربتات الأمثلة بنجاح، ننصح بشدة بـ**التثبيت من المصدر** والحفاظ على تحديث التثبيت، حيث نقوم بتحديث سكربتات الأمثلة بشكل متكرر ونثبّت بعض المتطلبات الخاصة بالأمثلة. للقيام بذلك، نفّذ الخطوات التالية في بيئة افتراضية جديدة: | |
| قبل تشغيل السكربت، تأكد من تثبيت المكتبة من المصدر: | |
| ```bash | |
| git clone https://github.com/huggingface/diffusers | |
| cd diffusers | |
| pip install -e . | |
| ``` | |
| ثم انتقل إلى مجلد المثال الذي يحتوي على سكربت التدريب وقم بتثبيت التبعيات المطلوبة للسكربت الذي تستخدمه: | |
| - PyTorch | |
| ```bash | |
| cd examples/cogvideo | |
| pip install -r requirements.txt | |
| ``` | |
| ومساحة عمل [🤗 Accelerate](https://github.com/huggingface/accelerate/) مع: | |
| ```bash | |
| accelerate config | |
| ``` | |
| أو للحصول على إعداد accelerate افتراضي دون الإجابة على أسئلة حول بيئة التشغيل | |
| ```bash | |
| accelerate config default | |
| ``` | |
| أو إذا لم يدعم بيئتك shell تفاعليًا (مثل notebook) | |
| ```python | |
| from accelerate.utils import write_basic_config | |
| write_basic_config() | |
| ``` | |
| عند تشغيل `accelerate config`، إذا كنت تستخدم torch.compile، فقد تتحقق تسارعات هائلة. تُستخدم مكتبة PEFT كواجهة خلفية لتدريب LoRA، لذا تأكد من تثبيت `peft>=0.6.0` في بيئتك. | |
| إذا كنت ترغب في رفع نموذجك إلى Hub بعد اكتمال التدريب مع بطاقة نموذج أنيقة، فتأكد من تسجيل الدخول: | |
| ```bash | |
| hf auth login | |
| # Alternatively, you could upload your model manually using: | |
| # hf upload my-cool-account-name/my-cool-lora-name /path/to/awesome/lora | |
| ``` | |
| تأكد من أن بياناتك مُعدّة كما هو موضح في [تجهيز البيانات](#data-preparation). عند الانتهاء، يمكنك البدء بالتدريب! | |
| بافتراض أنك تقوم بالتدريب على 50 فيديو لمفهوم مشابه، فقد وجدنا أن 1500-2000 خطوة تعمل بشكل جيد. ومع ذلك، فإن التوصية الرسمية هي 100 فيديو بإجمالي 4000 خطوة. بافتراض أنك تقوم بالتدريب على وحدة معالجة رسومية واحدة مع `--train_batch_size` بقيمة `1`: | |
| - 1500 خطوة على 50 فيديو تتوافق مع `30` من فترات التدريب | |
| - 4000 خطوة على 100 فيديو تتوافق مع `40` من دورات التدريب | |
| ```bash | |
| #!/bin/bash | |
| GPU_IDS="0" | |
| accelerate launch --gpu_ids $GPU_IDS examples/cogvideo/train_cogvideox_lora.py \ | |
| --pretrained_model_name_or_path THUDM/CogVideoX-2b \ | |
| --cache_dir <CACHE_DIR> \ | |
| --instance_data_root <PATH_TO_WHERE_VIDEO_FILES_ARE_STORED> \ | |
| --dataset_name my-awesome-name/my-awesome-dataset \ | |
| --caption_column <CAPTION_COLUMN> \ | |
| --video_column <PATH_TO_VIDEO_COLUMN> \ | |
| --id_token <ID_TOKEN> \ | |
| --validation_prompt "<ID_TOKEN> Spiderman swinging over buildings:::A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other pandas gather, watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, casting a gentle glow on the scene. The panda's face is expressive, showing concentration and joy as it plays. The background includes a small, flowing stream and vibrant green foliage, enhancing the peaceful and magical atmosphere of this unique musical performance" \ | |
| --validation_prompt_separator ::: \ | |
| --num_validation_videos 1 \ | |
| --validation_epochs 10 \ | |
| --seed 42 \ | |
| --rank 64 \ | |
| --lora_alpha 64 \ | |
| --mixed_precision fp16 \ | |
| --output_dir /raid/aryan/cogvideox-lora \ | |
| --height 480 --width 720 --fps 8 --max_num_frames 49 --skip_frames_start 0 --skip_frames_end 0 \ | |
| --train_batch_size 1 \ | |
| --num_train_epochs 30 \ | |
| --checkpointing_steps 1000 \ | |
| --gradient_accumulation_steps 1 \ | |
| --learning_rate 1e-3 \ | |
| --lr_scheduler cosine_with_restarts \ | |
| --lr_warmup_steps 200 \ | |
| --lr_num_cycles 1 \ | |
| --enable_slicing \ | |
| --enable_tiling \ | |
| --optimizer Adam \ | |
| --adam_beta1 0.9 \ | |
| --adam_beta2 0.95 \ | |
| --max_grad_norm 1.0 \ | |
| --report_to wandb | |
| ``` | |
| لتتبع تجارب التدريب لدينا بشكل أفضل، نستخدم الأعلام التالية في الأمر أعلاه: | |
| * `--report_to wandb` يضمن تتبع عمليات التدريب على Weights and Biases. لاستخدامه، تأكد من تثبيت `wandb` باستخدام `pip install wandb`. | |
| * `validation_prompt` و`validation_epochs` للسماح للسكريبت بإجراء بعض عمليات الاستدلال للتحقق. وهذا يتيح لنا التحقق النوعي من أن التدريب يتقدم كما هو متوقع. | |
| لا يُشترط تعيين `<ID_TOKEN>`. فمن خلال بعض التجارب المحدودة، وجدنا أنه يعمل بشكل أفضل (لأنه يشبه تدريب [Dreambooth](./dreambooth)) من دون تعيينه. عند توفيره، يُضاف `<ID_TOKEN>` إلى بداية كل موجه. لذا، إذا كان `<ID_TOKEN>` الخاص بك هو `"DISNEY"` وكان موجهك هو `"Spiderman swinging over buildings"`، فإن الموجه الفعّال المستخدم في التدريب سيكون `"DISNEY Spiderman swinging over buildings"`. عند عدم توفيره، يمكنك إما التدريب دون أي رمز إضافي، أو تعزيز مجموعة بياناتك لتطبيق الرمز في المكان الذي ترغب فيه قبل بدء التدريب. | |
| > [!NOTE] | |
| > يمكنك تمرير `--use_8bit_adam` لتقليل متطلبات الذاكرة أثناء التدريب. | |
| > [!IMPORTANT] | |
| > تم اختبار الإعدادات التالية عند إضافة دعم تدريب LoRA لنموذج CogVideoX: - تم إجراء معظم اختباراتنا على CogVideoX-2b. سنعمل على CogVideoX-5b و CogVideoX-5b-I2V قريبًا - تتكون مجموعة البيانات الواحدة من 70 فيديو تدريب بدقة `200 x 480 x 720` (F x H x W). ومن خلال استخدام تخطي الإطارات في المعالجة المسبقة للبيانات، أنشأنا مجموعتي بيانات أصغر مكوّنتين من 49 إطارًا و 16 إطارًا لتجارب أسرع، ولأن الحد الأقصى الموصى به من فريق CogVideoX هو 49 إطارًا. ومن بين الفيديوهات السبعين، أنشأنا ثلاث مجموعات مكوّنة من 10 و 25 و 50 فيديو. كانت جميع الفيديوهات متشابهة من حيث طبيعة المفهوم المُدرَّب. - عملت 25 فيديو أو أكثر بشكل أفضل لتدريب مفاهيم وأنماط جديدة. - وجدنا أنه من الأفضل التدريب باستخدام رمز معرّف يمكن تحديده كـ `--id_token`. هذا مشابه لتدريب Dreambooth، لكن الضبط الدقيق العادي دون مثل هذا الرمز يعمل أيضًا. - بدا المفهوم المُدرَّب يعمل بشكل معقول عندما يُدمج مع أوامر نصية غير مرتبطة تمامًا. نتوقع نتائج أفضل إذا تم ضبط CogVideoX-5B بدقة. - يستخدم المستودع الأصلي قيمة `lora_alpha` تساوي `1`. وجدنا أن هذه القيمة غير مناسبة في العديد من الجولات، ربما بسبب اختلاف في محركات النمذجة وإعدادات التدريب. توصيتنا هي ضبط `lora_alpha` إما إلى `rank` أو `rank // 2`. - إذا كنت تتدرب على بيانات تُنتج عناوينها نتائج سيئة مع النموذج الأصلي، فإن قيمة `rank` تساوي 64 أو أعلى جيدة، وهي أيضًا التوصية من الفريق وراء CogVideoX. إذا كانت النتائج الأولية جيدة بشكل معقول على عناوين التدريب الخاصة بك، فيجب أن تعمل قيمة `rank` تساوي 16/32. وجدنا أن ضبط الرتبة منخفضة جدًا، مثل `4`، ليس مثاليًا ولا يُنتج نتائج واعدة. - يوصي مؤلفو CogVideoX بـ 4000 خطوة تدريب و 100 فيديو تدريب بشكل عام لتحقيق أفضل نتيجة. وعلى الرغم من أن ذلك قد يُنتج أفضل النتائج، إلا أننا وجدنا من تجاربنا المحدودة أن 2000 خطوة و 25 فيديو قد تكون كافية أيضًا. - عند استخدام مُحسِّن Prodigy للتدريب، يمكن اتباع التوصيات الواردة في مدونة [هذه](https://huggingface.co/blog/sdxl_lora_advanced_script). يميل Prodigy إلى الإفراط في الملاءمة بسرعة. ومن اختباراتنا المحدودة جدًا، وجدت أن معدل تعلم `0.5` مناسب بالإضافة إلى `--prodigy_use_bias_correction` و `prodigy_safeguard_warmup` و `--prodigy_decouple`. - معدل التعلم الموصى به من مؤلفي CogVideoX ومن تجاربنا مع Adam/AdamW يتراوح بين `1e-3` و `1e-4` لمجموعة بيانات تتكون من 25 فيديو أو أكثر. | |
| > | |
| > يرجى ملاحظة أن اختباراتنا ليست شاملة بسبب الوقت المحدود المخصص للاستكشاف. توصيتنا هي تجربة الإعدادات المختلفة للعثور على أفضل إعدادات لبياناتك. | |
| ## الاستدلال | |
| بمجرد تدريب نموذج lora، يمكن تنفيذ الاستدلال ببساطة عن طريق تحميل أوزان lora في `CogVideoXPipeline`. | |
| ```python | |
| import torch | |
| from diffusers import CogVideoXPipeline | |
| from diffusers.utils import export_to_video | |
| pipe = CogVideoXPipeline.from_pretrained("THUDM/CogVideoX-2b", dtype=torch.float16) | |
| # pipe.load_lora_weights("/path/to/lora/weights", adapter_name="cogvideox-lora") # Or, | |
| pipe.load_lora_weights("my-awesome-hf-username/my-awesome-lora-name", adapter_name="cogvideox-lora") # If loading from the HF Hub | |
| pipe.to("cuda") # or "mps", "xpu", "cpu" | |
| # Assuming lora_alpha=32 and rank=64 for training. If different, set accordingly | |
| pipe.set_adapters(["cogvideox-lora"], [32 / 64]) | |
| prompt = "A vast, shimmering ocean flows gracefully under a twilight sky, its waves undulating in a mesmerizing dance of blues and greens. The surface glints with the last rays of the setting sun, casting golden highlights that ripple across the water. Seagulls soar above, their cries blending with the gentle roar of the waves. The horizon stretches infinitely, where the ocean meets the sky in a seamless blend of hues. Close-ups reveal the intricate patterns of the waves, capturing the fluidity and dynamic beauty of the sea in motion." | |
| frames = pipe(prompt, guidance_scale=6, use_dynamic_cfg=True).frames[0] | |
| export_to_video(frames, "output.mp4", fps=8) | |
| ``` | |
| ## تقليل استهلاك الذاكرة | |
| أثناء الاختبار باستخدام مكتبة diffusers، تم تفعيل جميع التحسينات المضمنة في مكتبة diffusters. لم يتم اختبار هذا المخطط لاستخدام الذاكرة الفعلي على الأجهزة خارج معماريات **NVIDIA A100 / H100**. بشكل عام، يمكن تكييف هذا المخطط مع جميع الأجهزة التي تعمل بمعمارية **NVIDIA Ampere architecture** وما فوق. إذا تم تعطيل التحسينات، فستتضاعف استهلاك الذاكرة، حيث يكون ذروة استخدام الذاكرة حوالي 3 أضعاف القيمة المذكورة في الجدول. ومع ذلك، سيزداد السرعة بحوالي 3-4 أضعاف. يمكنك تعطيل بعض التحسينات بشكل انتقائي، بما في ذلك: | |
| ``` | |
| pipe.enable_sequential_cpu_offload() | |
| pipe.vae.enable_slicing() | |
| pipe.vae.enable_tiling() | |
| ``` | |
| + للاستدلال متعدد وحدات معالجة الرسومات، يجب تعطيل تحسين `enable_sequential_cpu_offload()`. | |
| + سيؤدي استخدام نماذج INT8 إلى إبطاء الاستدلال، وهو إجراء يُتّخذ لاستيعاب وحدات معالجة الرسومات ذات الذاكرة الأقل مع الحفاظ على فقدانٍ ضئيلٍ في جودة الفيديو، على الرغم من أن سرعة الاستدلال ستنخفض بشكل كبير. | |
| + تم تدريب نموذج CogVideoX-2B بدقة `FP16`، وتم تدريب جميع نماذج CogVideoX-5B بدقة `BF16`. ننصح باستخدام الدقة التي تم بها تدريب النموذج عند الاستدلال. | |
| + يمكن استخدام [PytorchAO](https://github.com/pytorch/ao) و [Optimum-quanto](https://github.com/huggingface/optimum-quanto/) لتكميم وحدات مُشفِّر النص، والتحويلي، وVAE لتقليل متطلبات الذاكرة الخاصة بـ CogVideoX. وهذا يتيح تشغيل النموذج على أجهزة Colabs المجانية من نوع T4 أو على وحدات معالجة رسومية ذات ذاكرة أصغر! كما لاحظ أن تكميم TorchAO متوافق تمامًا مع `torch.compile`، مما يمكن أن يحسّن سرعة الاستدلال بشكل كبير. يجب استخدام دقة FP8 على الأجهزة المزودة ببطاقات NVIDIA H100 أو أحدث، ويتطلب ذلك تثبيت حزم `torch` و `torchao` و `diffusers` و `accelerate` من المصدر. ويُوصى باستخدام CUDA 12.4. | |
| + استخدمت اختبارات سرعة الاستدلال أيضًا مخطط تحسين الذاكرة المذكور أعلاه. بدون تحسين الذاكرة، تزداد سرعة الاستدلال بنسبة 10% تقريبًا. يدعم إصدار `diffusers` من النموذج فقط عملية التكميم. | |
| + يدعم النموذج مدخلات باللغة الإنجليزية فقط؛ يمكن ترجمة اللغات الأخرى إلى الإنجليزية للاستخدام عبر تحسين النموذج الكبير. | |
| + يتم اختبار استهلاك الذاكرة في ضبط نموذج في بيئة `8 * H100`، ويستخدم البرنامج تلقائيًا تحسين `Zero 2`. إذا تم تحديد عدد معين من وحدات معالجة الرسومات في الجدول، فيجب استخدام هذا العدد أو أكثر من وحدات معالجة الرسومات لضبط النموذج. | |
| | **الخاصية** | **CogVideoX-2B** | **CogVideoX-5B** | | |
| | ------------------------------------ | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | | |
| | **اسم النموذج** | CogVideoX-2B | CogVideoX-5B | | |
| | **دقة الاستدلال** | FP16* (موصى به)، BF16، FP32، FP8*، INT8، غير مدعوم INT4 | BF16 (موصى به)، FP16، FP32، FP8*، INT8، INT4 غير مدعوم | | |
| | **ذاكرة VRAM للاستدلال على GPU واحد** | FP16: باستخدام diffusers 12.5GB* INT8: باستخدام diffusers مع torchao 7.8GB* | BF16: باستخدام diffusers 20.7GB* INT8: باستخدام diffusers مع torchao 11.4GB* | | |
| | **ذاكرة VRAM للاستدلال متعدد وحدات GPU** | FP16: باستخدام diffusers 10GB* | BF16: باستخدام diffusers 15GB* | | |
| | **سرعة الاستدلال** | وحدة A100 واحدة: ~90 ثانية، وحدة H100 واحدة: ~45 ثانية | وحدة A100 واحدة: ~180 ثانية، وحدة H100 واحدة: ~90 ثانية | | |
| | **دقة الضبط الدقيق** | FP16 | BF16 | | |
| | **استهلاك ذاكرة VRAM أثناء الضبط الدقيق** | 47 جيجابايت (bs=1, LORA) 61 جيجابايت (bs=2, LORA) 62 جيجابايت (bs=1, SFT) | 63 جيجابايت (bs=1, LORA) 80 جيجابايت (bs=2, LORA) 75 جيجابايت (bs=1, SFT) | | |
Xet Storage Details
- Size:
- 26.3 kB
- Xet hash:
- c9cfbc3fb0d6a32a4a79c3a8182c84788aae96743f3bf88ebd4491dab10f8702
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.