تعرّف على Avatar V، الأفاتار الأكثر واقعية حتى الآن. أنشئ أفاتارك مجاناً

By Jiajun Zhao، Pedram Haqiqi

يصبح فيديو الأفاتار مقنعًا فقط عندما يظل الشخص متسقًا مع نفسه بمرور الوقت. عندما ينحرف الوجه قليلًا، أو تتغيّر الأسنان، أو تختل مزامنة الشفاه، أو تُعاد حركة الجسد بين المقاطع، يلاحظ الناس ذلك فورًا. هذا الأمر أكثر أهمية في الأفاتار مقارنة بالعديد من مهام إنشاء الفيديو الأخرى، لأن المشاهد يراقب شخصًا محددًا يتحدث، غالبًا من مسافة قريبة، ولفترة طويلة.

في عالم إنشاء الفيديو بالذكاء الاصطناعي اليوم، ما زالت مدة الفيديو واحدة من أكثر القيود وضوحًا. كثير من النماذج والمنتجات تتيح الإنشاء على شكل مقطع ثابت الطول — بضع ثوانٍ فقط، مع أنظمة قليلة قادرة على إنشاء أكثر من بضع دقائق. بالنسبة لمنتجات الأفاتار، يظهر هذا القيد مباشرة في سير عمل العملاء. العملاء يريدون مشاهد/فيديوهات أطول ومتسقة لاستخدامها في فيديوهات التدريب، وعروض المبيعات، والجولات التعريفية بالمنتج، والتعليم، والدعم، والوكلاء الذين ينبغي أن يواصلوا التحدث حتى إتمام المهمة، كما يريدون أيضًا معاينة سريعة للتكرار على الموجّهات، والحركة، والنص.

في HeyGen، تَرجَم ذلك إلى ثلاثة متطلبات ملموسة:

  1. اتساق المشهد الطويليجب أن يحافظ الأفاتار على الهوية، ومزامنة الشفاه، وتعبيرات الوجه، واستمرارية الحركة ليس فقط في مقطع قصير واحد، بل عبر العديد من مقاطع الفيديو المُنشأة.
  2. لا يوجد حد ثابت للمدةقد يستغرق التوليد عشر ثوانٍ، أو عشر دقائق، أو يكون جلسة مباشرة مفتوحة المدة.
  3. معاينة سريعة، وتوليد في الوقت الفعلي أو أسرع من الوقت الفعلييجب أن يبدأ النظام في إنتاج الإطارات بسرعة، وأن يتيح حتى بث الإطارات المُولَّدة أثناء استمرار عملية الاستدلال.

تستعرض هذه التدوينة إطار الاستدلال الذي بنيناه لتلبية تلك المتطلبات.

البنية الأساسية للنموذج

تم بناء هذا الإطار حول نماذج HeyGen لإنشاء فيديوهات الأفاتار، عائلات Avatar IV وAvatar V. على مستوى عالٍ، يستقبل النموذج صورة أو فيديو مرجعيًا، وصوتًا مُوجِّهًا، ونصًا اختياريًا أو تهيئة للمشهد، ثم يُنشئ فيديو لهذا الأفاتار وهو يتحدث بالهوية والتعبير والحركة الصحيحة.

نموذج التوليد الأساسي هو Diffusion Transformer أو DiT، مُدرَّب باستخدام تقنية flow matching. بدلاً من ضغط الشخص في تمثيل هوية صغير، يعتمد النموذج على رموز مرجعية غنية حتى يتمكّن من الحفاظ على التفاصيل المهمة للأفاتار: شكل الوجه، الأسنان، نسيج البشرة، حركة الفم، أسلوب الإيماءات، وإيقاع الكلام.

مسار الاستدلال في بيئة الإنتاج يمر عبر ثلاث مراحل رئيسية:

  1. إنشاء فيديو من الصوت. ينشئ نموذج DiT أساسي تمثيلات كامنة لفيديو منخفض الدقة انطلاقًا من هوية مرجعية، وميزات الصوت، وإشارات التكييف. يركّز هذا المرحلة على الحركة، ومزامنة الشفاه، والتناسق الزمني.
  2. تحسين فائق مدرك للهويةيعمل نموذج ثانٍ على تحسين هذه التمثيلات الكامنة إلى مخرجات عالية الدقة، مع تركيز إضافي على المناطق التي يكون فيها الناس أكثر حساسية للعيوب، خاصة الوجه والفم.
  3. Streaming VAE decode. A VAE decoder converts high-resolution latents into RGB frames chunk by chunk, so frames can be emitted before the full video is complete.

لإنشاء مقاطع فيديو طويلة، يعالج النظام البيانات على شكل أجزاء متتابعة. يعتمد الجزء الأول بالكامل على المرجع الثابت، بينما تستخدم الأجزاء اللاحقة بيانات الحدود من المقاطع السابقة. يتيح ذلك للأفاتار الاستمرار في التحدث بشكل طبيعي دون إعادة ضبط وضعيته أو هويته من البداية.

The Streaming Framework and Pipeline Loop

للتكيّف مع التنفيذ المعتمد على الأجزاء، يستخدم إطار الاستدلال بنية معيارية من ثلاث طبقات تعمل على نوافذ زمنية محلية، وتُحرِّر الموارد مباشرة بعد معالجة كل جزء.

  • الوحدة: غلاف يحيط بنموذج محدد ونقطة الحفظ الخاصة به (مثل A2V DiT، وSuper-Resolution DiT، ومكوّنات VAE، ومشفّرات النص/الصوت).
  • المرحلة: وحدة تنفيذ ذات نوع محدد تنسّق واحدًا أو أكثر من الوحدات (مثل توليد السياق، وتحسين الدقة الفائقة).
  • Pipeline: The execution graph that wires stages together, manages shared state, and coordinates streaming or batch execution modes.

The initialization phase encodes the reference identity into latents once per request. The pipeline then executes a continuous loop across the remaining stages until the input audio stream is exhausted:

Flowchart of an avatar streaming inference pipeline, processing image/video, audio, and text inputs through stages like encoding, context generation, and super-resolution, with a chunk-based loop, to produce a generated output file.
  • توليد السياق: يحوّل مقاطع الصوت الواردة إلى خصائص، ويجمعها مع النص أو تهيئة المشهد، ويُعدّ موترات الضوضاء المستهدفة.
  • التحويل من الصوت إلى الفيديوينفّذ عملية انتشار متعددة المراحل لإنتاج تمثيلات كامنة منخفضة الدقة. في هذه المرحلة يتم تهيئة الجزء الحالي اعتمادًا على الإطارات الحدّية للجزء السابق للحفاظ على استمرارية الحركة.
  • Super-Resolution: يقوم بترقية بيانات الحركة إلى الدقة الكاملة في خطوة واحدة، مع إعطاء أولوية للتفاصيل المكانية في الوجه.
  • VAE Decode-and-Publish: يقوم بفك ترميز البيانات الكامنة عالية الدقة إلى إطارات RGB ويكتبها مباشرةً إلى مُرمِّز الإخراج (H.264 / AAC) للتخزين الفوري أو التشغيل المباشر.

استمرارية الحدود واتساق الأجزاء

إنشاء الفيديو في مقاطع منفصلة قد يؤدي إلى انقطاعات محتملة عند الحدود بين المقاطع. يخفف هذا الإطار من هذه المشكلة من خلال استخدام نوعين مميزين من تصنيفات الأجزاء:

  • مقاطع N: مقاطع تُنشئ الخط الزمني الأساسي للأفاتار.
  • I Chunks (الاستيفاء): مقاطع مصمَّمة لتنعيم الانتقالات بين مقاطع N المتتالية.

يتم تنظيم تسلسل التنفيذ على النحو التالي:

N0 -> N1 -> I0 -> N2 -> I1 -> N3 -> I2 -> ...

يتم إنشاء مقطع I فقط بعد اكتمال مقطعي N السابق واللاحق له. يستخدم الإطار الأخير من مقطع N السابق وإطارًا مبكرًا من مقطع N الحالي كإطارات مرجعية لحساب الحركة الانتقالية. بعد عملية الإنشاء، يتم تجاهل التنبؤات المرجعية الزائدة، ولا يبقى إلا الانتقال الملس interpolated بسلاسة. يحدّ هذا الأسلوب من حجم نافذة السياق المطلوبة مع الحفاظ على الاتساق الزمني.

استهلاك ثابت للذاكرة طوال المدة

تتراكم في خط إنتاج الفيديو التقليدي المتغيّرات الكامنة والإطارات المفكودة وسياق الانتباه أثناء التنفيذ، مما يؤدي إلى زيادة استهلاك ذاكرة GPU بشكل خطي مع مدة الفيديو.

لتمكين إنشاء فيديو مفتوح المدة، يحافظ هذا الإطار على حالة متحركة صارمة. يحتفظ النظام فقط بتهيئة المرجع الثابتة ومجموعة صغيرة من موترات الارتكاز المطلوبة لانتقال المقاطع. يتم حذف جميع الأصول الوسيطة — بما في ذلك خصائص الصوت، وموترات الضوضاء، والتفعيلات الداخلية، وإطارات RGB الخام — من الذاكرة مباشرة بعد فك ترميز المقطع وكتابته.

ونتيجةً لذلك، يظل الحد الأقصى لاستهلاك ذاكرة GPU ثابتًا سواء كنت تنشئ مقطعًا قصيرًا أو تسلسلاً طويلًا؛ إذ يتدرّج استهلاك الموارد وفقًا لحجم الجزء المحدَّد بدلًا من إجمالي مدة الجلسة.

مراحل التحميل/إلغاء التحميل داخل خط الأنابيب

يتم تنفيذ كل طلب على عقدة تحتوي على 8 وحدات GPU. نستخدم FSDP لتقسيم معاملات النماذج الكبيرة عبر وحدات GPU. كل رتبة تمتلك جزءًا فقط من الأوزان، وتجمع المعاملات التي تحتاجها للحساب، ثم تُفرِج عنها مرة أخرى. هذا ما يسمح لعدة نماذج كبيرة — نموذج DiT الأساسي، ونموذج DiT فائق الدقة، ومشفّر النص، ومشفّر الصوت، وـVAE — بأن تعمل جميعًا على عقدة واحدة.

هناك مقايضة. يضيف FSDP عبئًا في الاتصال أثناء الاستدلال لأنّه يجب تجميع المعاملات خلال عمليات المرور الأمامية. نستخدم مزيجًا من التقنيات لإخفاء هذا العبء والحفاظ على النماذج المشتركة في نفس الموقع خارج الـGPU عندما لا تكون قيد الاستخدام:

  • الجلب المسبق في مرحلة التمرير الأمامييتم تنفيذ عملية AllGather لمعاملات الكتلة التالية مبكرًا ودمجها مع حساب الكتلة الحالية، مما يخفي زمن انتظار الجلب على المسار الحرج.
  • إلغاء التجزئة الكسولة لكل بلوك من المعالج المركزي (CPU)عند استرجاع نموذج من ذاكرة CPU المثبّتة، لا نقوم بتحميل مجموعة الأوزان الكاملة مسبقًا. يتم إلغاء تجزئة كل بلوك من المحوّل (نسخ من المضيف إلى الجهاز + AllGather) مباشرة قبل مرحلة التمرير الأمامي الخاصة به، بحيث يتداخل نقل H2D للبلوك n+1 مع عملية الحساب للبلوك n.
  • تفريغ تحميل المعالج المركزي (CPU) بين المراحلتُحفَظ معاملات النموذج الذي لا يعمل حاليًا في ذاكرة CPU مثبتة (pinned)، بحيث لا تحتاج النماذج الموجودة على نفس الخادم (نموذج DiT الأساسي، ونموذج DiT فائق الدقة، ومشفّر النص، ومشفّر الصوت، وVAE) إلى الاحتفاظ بأوزانها على وحدة معالجة الرسومات (GPU) في الوقت نفسه. الذاكرة المثبتة هي ما يجعل نسخ H2D سريعة بما يكفي لتتداخل مع عملية الحساب.
  • توزيع العمليات مع مراعاة NUMA، حيث يتم تثبيت كل عملية على نفس عقدة NUMA الخاصة بوحدة GPU المخصّصة لها، بحيث تعمل عمليات نقل البيانات بين CPU وGPU بأقصى عرض نطاق متاح عبر PCIe/NVLink دون المرور عبر وصلة الربط بين المقابس.

تبديل النماذج بين المراحل بزمن أقل من 10 مللي ثانية

الفائدة العملية للتقنيات المذكورة أعلاه هي أن تمرير الـ GPU من نموذج مرحلة إلى المرحلة التالية — على سبيل المثال، من A2V DiT إلى Super-Resolution DiT، أو من SR DiT إلى VAE decoder — يتم فعلياً بدون تكلفة تُذكر. بما أن النموذج الخارج يتم تفريغه من الذاكرة بشكل غير متزامن، وأول بلوك من النموذج الداخل يتم إلغاء تجزئته في اللحظة المناسبة، فإن عملية النسخ H2D وعملية AllGather تكونان مخفيتين خلف عمليات حسابية تعمل بالفعل. من البداية إلى النهاية، يكون الحمل الإضافي الملحوظ لكل عملية تبديل أقل من 10ms — أي أقل بكثير من ميزانية إطار واحد عند معدلات الإطارات المستهدفة لدينا. عملياً، هذا هو ما يسمح لحلقة خط أنابيب البث (Context Gen → A2V → SR → VAE Decode-and-Publish) بأن تدور عبر عدة نماذج كبيرة لكل جزء دون أن يصبح تبديل النموذج نفسه عنق زجاجة.

نشر البث المباشر في الوقت الفعلي

لجعل النموذج سريعًا بما يكفي للبث في الوقت الفعلي، قمنا بإجراء العديد من تحسينات الاستدلال، يُرجى الرجوع إلى https://www.heygen.com/research/avatar-v-inference لمزيد من التفاصيل حول هذا الجزء.

بمجرد أن يبدأ خط المعالجة في إنتاج الفيديو جزءًا بعد جزء في الوقت الفعلي، تصبح عملية البث امتدادًا طبيعيًا لمرحلة الاستدلال بدلًا من أن تكون خطوة معالجة لاحقة منفصلة.

في مسار البث المباشر بأسلوب القنوات، نقوم بنشر الإطارات المُولَّدة إلى Amazon Kinesis Video Streams (KVS). عادةً ما يُناقَش KVS في سياق الكاميرات، وأجهزة إنترنت الأشياء (IoT)، والوسائط المرفوعة. في حالتنا، تكون «الكاميرا» هي خط استدلال النموذج نفسه: تُنشئ الإطارات بواسطة النموذج، وتُشفَّر فورًا، ثم تُدفَع إلى KVS كبث حي.

يتلقى كاتب المخرجات إطارات RGB مفككة الترميز من الـ VAE المتدفّق ويرسلها إلى خط أنابيب GStreamer. يتم ترميز الفيديو بصيغة H.264 والصوت بصيغة AAC، ثم تُدفَع المساران معًا إلى kvssink، وهو مخرج إنتاج KVS. من هناك يمكن للمشاهدين تشغيل الجلسة كبث مباشر بينما لا تزال قيد التوليد.

النتائج والدروس المستفادة

حوّل هذا الإطار العمل إنشاء Avatar IV وAvatar V من عرض ثابت للمشهد إلى إنشاء متدفّق مفتوح. النتيجة الأهم بسيطة: أزلنا قيود مدة المشهد لـ Avatar IV وAvatar V. في إنشاء Avatar IV في الزمن الحقيقي، حققنا زمنًا للإطار الأول أقل من 5 ثوانٍ، وسرعة إنشاء تزيد عن 27 إطارًا في الثانية لفيديوهات Avatar IV بدقة 720p — أي أسرع من سرعة التشغيل في الزمن الحقيقي.