تشغيل أنظمة الاستنتاج الموزعة على نطاق واسع — نيشانت جوبتا ونامان أهوجا، ميتـا
AAI Engineer
컴퓨터/소프트웨어AI/미래기술
스크립트
00:00:00صباح الخير جميعًا. مرحبًا بكم في جلسة التأثير الأولى في اليوم الأخير من معرض World Fair للهندسة في الذكاء الاصطناعي.
00:00:17إسمي نيشان غوبتا وينضم إليّ اليوم زميلي في التحدث نامان أهوجا.
00:00:23نحن نعمل على بناء البنية التحتية للكفاءة والتدريب والاستدلال في شركة Meta.
00:00:27اليوم، سنتحدث عن كيفية تشغيل أنظمة الاستدلال الموزعة على نطاق واسع.
00:00:32كما نعلم جميعًا، لم يعد الاستدلال مجرد نتاج بحثي يتم تحويله إلى منتج.
00:00:37بل أصبح عبء عمل أساسي للبنية التحتية فائقة النطاق، وينمو بمعدل هائل.
00:00:43حركة مرور الاستدلال تتجاوز بالفعل أكبر الخدمات المصغرة في العالم،
00:00:47ومعدل النمو هو الأسرع بين جميع أعباء العمل التي شهدناها على الإطلاق.
00:00:54دعونا نرجع بالزمن إلى عام 2008 تقريبًا ونحاول مقارنة عصر الذكاء الاصطناعي بعصر السحابة.
00:01:00في عام 2008 تقريبًا، بدأت السحابة كعروض للأجهزة الافتراضية.
00:01:05وكانت الهندسة المثيرة للاهتمام هي المحاكاة الافتراضية.
00:01:07ثم مع مرور الوقت، انتقلت القيمة إلى أعلى البرمجيات، إلى أدوات الجدولة مثل Borg وKubernetes وMesos.
00:01:14ثم إلى شبكات الخدمات، ثم إلى أدوات التوسع التلقائي، ثم إلى المنصات المختلفة التي بُنيت فوقها.
00:01:18طبقة التنسيق هي التي استحوذت في الواقع على القيمة والتعقيد.
00:01:24والذكاء الاصطناعي يسير على نفس المسار تمامًا، لكن تم ضغطه في السنوات القليلة الماضية بدلاً من عقد من الزمان.
00:01:30بدأنا بنماذج بسيطة تعمل على وحدات معالجة الرسوميات.
00:01:33ثم شهدنا تطور أطر خدمة النماذج مثل VLLM وTorchServe وTriton، والآن نرى طبقة التنسيق تظهر في الوقت الفعلي، لتعالج التحديات المعقدة للتوجيه، وإدارة ذاكرة التخزين المؤقت KV، وفصل الملء المسبق عن فك التشفير، وتعدد الإرسال لنماذج متعددة.
00:01:51في هذه المرحلة التالية من عصر الذكاء الاصطناعي، الأمر لا يتعلق فقط بأفضل النماذج أو النواة أو التحسينات.
00:01:57بل يتعلق بالنظام البيئي بأكمله.
00:01:58يتعلق الأمر بنظام التحكم والتنسيق، وهذا ما سنركز عليه في هذا الحديث.
00:02:06لذا، دعونا نتحدث قليلاً عن انفجار الطلب المعتمد على الوكلاء.
00:02:09في خدمة الويب التقليدية قبل بدء أعباء عمل استدلال الذكاء الاصطناعي، كانت السعة تتوسع خطيًا تقريبًا مع المستخدمين، اعتمادًا على نوع عبء العمل.
00:02:17مضاعفة المستخدمين تعني غالباً مضاعفة الاستعلامات في الثانية، ومضاعفة أسطول البنية التحتية إذا لم تكن هناك تحسينات، وكان تخطيط السعة مجرد تمرين على جداول البيانات.
00:02:28في هذه الخدمة القائمة على الوكلاء، تتوسع السعة مع عدد المستخدمين مضروبًا في عدد الاستدعاءات لكل مستخدم، مضروبًا في عدد الرموز، وهو ما يختلف باختلاف النموذج والتحسينات ووحدة العتاد لديك.
00:02:40يمكن للروبوت المحادثة أن يتضمن استدعاءً واحدًا للنموذج لكل دور، والذي يتطور الآن ليصل إلى 10 إلى 20 للمساعدين، و50 لوكلاء البحث، والان أصبح الآلاف من هذه الاستدعاءات لأعباء العمل المستقلة دون تدخل بشري.
00:02:54الفكرة الأساسية هي أنه لا يمكنك تخطيط السعة للوكلاء بنفس الطريقة التي قمنا بها للخدمات المصغرة.
00:03:00نحن بحاجة إلى التفكير في المرونة وتطبيق جدولة والتحكم في القبول يراعيان طبيعة عبء العمل.
00:03:08الآن، دعونا نحاول التعمق قليلاً في الاختلافات، المزايا والعيوب، بين تقديم الخدمات المصغرة التقليدية وتقديم الاستدلال الحديث عبر هذه الأبعاد الرئيسية.
00:03:19شكل الطلب.
00:03:20تفترض الخدمات المصغرة طلبات قصيرة وموحدة، بينما طلبات نماذج اللغات الكبيرة التي نراها في أعباء عملنا قد تتراوح من 50 رمزًا إلى 100,000 رمز، مع ملفات تعريف حسابية مختلفة تمامًا بين مرحلتي الملء المسبق وفك التشفير.
00:03:33بالنسبة للتجميع، كانت الحزم البرمجية التقليدية للخدمات المصغرة تقوم بالتجميع غالبًا عند طبقة موازنة الحمل، هذا إن وجد.
00:03:40ومع ذلك، تتطلب خدمة نماذج اللغات الكبيرة تجميعًا مستمرًا أثناء التشغيل، وإلا ستنخفض إنتاجية النظام بمقدار كبير أو أكثر.
00:03:48الحالة.
00:03:49كانت معظم الخدمات المصغرة التقليدية عديمة الحالة عندما لا نتحدث عن طبقة التخزين.
00:03:54ومع ذلك، تقتضي خدمة نماذج اللغات الكبيرة حالة ضخمة لكل طلب، وهي ذاكرة التخزين المؤقت KV، والتي تعد مكلفة للغاية في البناء وأكثر كلفة في التخلص منها.
00:04:02وحدات التوسع.
00:04:03وحدات التوسع.
00:04:05عندما نفكر في الخدمات المصغرة التقليدية، كان بإمكاننا تشغيلها على وحدات معالجة مركزية رخيصة، في حاويات (Pods).
00:04:11ولكن بالنسبة للاستدلال الحديث، ننطلب التشغيل على وحدات معالجة الرسوميات، وهي أكثر كلفة بـ 100 مرة، وأبطأ بـ 10 مرات في الحصول عليها، ولا يمكننا تخصيص الزائد منها بتهور.
00:04:20وإلا، سيؤدي ذلك إلى هدر ضخم.
00:04:23وضع الفشل.
00:04:25عند التفكير في الخدمات المصغرة التقليدية مثل التي بناها معظمنا على مدار الأعوام القليلة الماضية، كان بإمكاننا، حتى لو تعطل المضيف أو تعطلت الحاوية، إعادة تشغيلها.
00:04:34وكان بإمكاننا إعادة بناء الحالة إذا لزم الأمر.
00:04:36أما بالنسبة لاستدلال النماذج، فإنه يستغرق وقتًا طويلاً للانتقال من البداية الباردة إلى الساخنة.
00:04:42وإذا كانت وحدة معالجة الرسوميات في منتصف عملية فك التشفير، فقد تسقط الآلاف من الرموز قيد التشغيل، مما يؤدي إلى تراكم قائمة الانتظار.
00:04:50الفكرة الرئيسية هي أن عنق الزجاجة ليس مجرد النموذج.
00:04:53بل هو التنسيق نفسه.
00:04:58الآن، كما نرى في هذه القرارات الخفية خلف أي إدخال (Prompt)، عند الانتقال إلى تطبيق قائم على الوكلاء، يتطلب الأمر مجموعة من الخطوات خلف الكواليس.
00:05:06عليك إجراء التحقق من الهوية.
00:05:07وعليك اختيار النموذج، بناءً على نوع الطلب.
00:05:09وعليك تحديد المنطقة التي يذهب إليها.
00:05:11وعليك إجراء التحكم في القبول.
00:05:12وعليك البحث في ذاكرة التخزين المؤقت.
00:05:14وعليك تشغيله على وحدة معالجة الرسوميات.
00:05:17وعليك القيام بالتجميع.
00:05:18وهناك مجموعة من الخطوات الأخرى المشاركة.
00:05:19وكما نرى، من بين كل هذه الخطوات، خطوة واحدة فقط تتطلب النموذج، وهي فك تشفير الملء المسبق.
00:05:25سواء كان استدلالًا مفصولاً، أو لم يكن كذلك.
00:05:29الخطوات الأخرى تتطلب بنية تحتية.
00:05:31قد يكمن الذكاء في النموذج، لكن الجدوى الاقتصادية والموثوقية وتجربة المستخدم كلها تكمن في البنية التحتية.
00:05:38ولهذا السبب أصبح للعديد من فرق المنصات عبر الكثير من الشركات تأثير أكبر بكثير على جودة المنتج ونجاحه، أكثر بكثير من ذي قبل.
00:05:50معظمنا في هذه القاعة لديه خبرة عميقة عبر طبقة أو طبقتين أو ثلاث طبقات.
00:05:54قد نكون مسؤولين عن النوى أو تحسينات النواة.
00:05:57قد نكون مسؤولين عن التوجيه أو المنتج نفسه.
00:05:59أو قد نكون نشغل البنية التحتية لوحدات معالجة الرسوميات أو العنقود نفسه.
00:06:03لكن القليل منا فقط قام بتشغيل الحزمة بأكملها أو فكر فيها بشكل شامل من البداية إلى النهاية.
00:06:08كما ترون في هذه الطبقات، هذه الطبقات ليست جديدة.
00:06:11إنها موجودة منذ 20 عامًا أو أكثر.
00:06:13الجديد هو الجمع والاقتران بينها.
00:06:18القرار عند طبقة التوجيه يمكن أن يغير معدل إصابة ذاكرة التخزين المؤقت عند طبقة النموذج، مما يغير تكوين الدفعة، والذي يغير استغلال وحدة معالجة الرسوميات، وبالتالي يغير قرار التوسع التلقائي بسبب التغير في الاستغلال.
00:06:32لذا فإن كل شيء متشابك.
00:06:33عندما يكون لدينا أي تراجع في أعباء عمل الاستدلال، فالأمر لا يتعلق فقط بفهم ما حدث عند طبقة التخزين المؤقت أو التحكم في القبول.
00:06:41نحن بحاجة إلى التفكير في الحزمة البرمجية من الأعلى إلى الأسفل.
00:06:43وعندما نرى أي عنق زجاجة، فمن المهم جدًا فهم الطبقة التي يوجد بها هذا العنق لكي نستثمر بشكل صحيح.
00:06:54الآن، بالتعمق قليلاً في كيفية عمل الإدخال، عندما نملك إدخالاً لأي تطبيق، سواء كان لتوليد صورة أو مهمة بحثية أو تنسيق معقد لعدة وكلاء، فإن الأمر يتضمن بشكل عام مجموعة من هذه الخطوات.
00:07:08يذهب الإدخال إلى البوابة.
00:07:10ثم يذهب إلى الموجه، والذي يقوم بعد ذلك بالبحث في ذاكرة التخزين المؤقت إذا تم مشاهدة الطلب من قبل.
00:07:17ثم ينتقل إلى أدوات الجدولة، والتي تقرر عنقود وحدات معالجة الرسوميات والعتاد الذي ينبغي أن يعمل عليه.
00:07:22يمكن أن يكون على NVIDIA أو AMD أو شريحة السيليكون الخاصة بك، ثم ينتقل إلى بيئة التشغيل المناسبة للخدمة، مثل VLLM أو SGLang أو ما نعمل عليه.
00:07:30ثم نقوم ببث الاستجابة مجددًا إلى المستخدم وفقًا لمستويات الخدمة المستهدفة للوقت حتى أول رمز والوقت بين كل رمز، مع التأكد من أن الإنتاجية هي ما يرغبه المستخدم.
00:07:41الآن، كما نرى، يتصرف هذا الاستدلال مثل معاملة موزعة.
00:07:45كل سهم في هذا المخطط هو قفزة شبكية.
00:07:47وكل قفزة من هذه القفزات يمكن إعادة محاولتها.
00:07:50يمكن أن تنتهي مهلتها.
00:07:51يمكن أن تتراجع لخطط بديلة.
00:07:53بل ويمكن أن تفشل.
00:07:54ولكل من هذه القفزات مستويات خدمة مستهدفة، وهي تقوم بالبث المباشر مجددًا للمستخدم.
00:08:00لذا إذا فشلت، فإن التعامل مع منطق الفشل الجزئي يكون أصعب بكثير مقارنة باستدعاء إجراء بعيد (RPC) عادي.
00:08:06فكر فيما يحدث إذا قمنا بالفعل ببث 200 رمز مجددًا إلى المستخدم، وفجأة تم إيقاف مضيف وحدة معالجة الرسوميات بشكل استباقي بسبب حدث صيانة
00:08:15مجدول أو مخطط له أو غير مخطط.
00:08:16لا يمكننا مجرد إعادة المحاولة.
00:08:17علينا التفكير في الأمر بشكل شمولي.
00:08:19هذا هو السبب في أنه لا يمكننا بناء الموثوقية عند الحافة.
00:08:23يجب أن تكون خاصية لـ نظام التحكم، لأن نظام التحكم هو الذي يرى سير العمل بأكمله.
00:08:31الآن، دعونا نتحدث عن أدوات الجدولة وبعض التحسينات وكيفية التفكير فيها.
00:08:37بالنسبة للخدمات المصغرة التقليدية، كنا نفكر في تجميع الخدمات المصغرة التقليدية عبر أبعاد ثلاثة أو أربعة.
00:08:43قد تكون عبر الاستغلال، أو ذاكرة المعالج، أو أربعة مجالات، اعتمادًا على ما إذا كنت تستخدم AWS، أو مزودي السحاب الداخليين لديك.
00:08:52ولكن بالنسبة للاستدلال، يجب أن تكون أداة الجدولة مدركة لما لا يقل عن سبعة محاور عندما نجدول طلبًا معينًا.
00:08:59يجب أن تكون مدركة لنوع وحدة معالجة الرسوميات.
00:09:00يمكن أن يكون هناك عدد N من العتاد غير المتجانس في العنقود لديك، مثل H100 مقابل E100 مقابل B200، مع طبوغرافيات شبكة مختلفة.
00:09:09يجب أن تكون مدركة للمساحة المتاحة في ذاكرة HBM وحالة ذاكرة التخزين المؤقت KV.
00:09:13أوزان النموذج، ما إذا كانت محملة بالفعل، أم باردة، أم يتعين علينا بدء تشغيلها على البارد بعد الإحماء.
00:09:19يجب أن تكون مدركة لأولوية المستأجر.
00:09:21يمكن أن يكون هناك عدد N من المستأجرين يعملون على ذلك العنقود متعدد المستأجرين مع ملفات تعريف مختلفة لمستويات الخدمة.
00:09:27علينا أيضًا أن نكون مدركين لسياق سير العمل.
00:09:30هل نحن في الخطوة الثالثة من الاستدلال التي أنفقت بالفعل مبلغ X من المال، أم أننا في المراحل الأولى ويمكننا إنهاء سير العمل إذا تم تخصيص سعة زائدة؟
00:09:39علينا أيضًا التفكير في ميزانية زمن التأخير، اعتمادًا على نوع تطبيق الوكلاء الذي نبنيه.
00:09:44وهذا يقودنا إلى فكرة ضرورة التأكد من تطبيق جدولة تدرك طبيعة عمل الوكلاء.
00:09:49وعلينا التأكد من وضع العمل الذي سينتهي بأسرع وأرخص وقت، بدلاً من مجرد وضعه على وحدة معالجة رسوميات عشوائية.
00:09:58قد يكون المثال الملموس هو أن أداة الجدولة بحاجة إلى معرفة أن الطلب R في الخطوة الثالثة من سير عمل يتكون من خمس خطوات،
00:10:05وقد أنفق بالفعل في الخطوتين الأولى والثانية مبلغ X زائد Y من المال.
00:10:09لذا إذا فشلت الخطوة الثالثة، فسيتم إنهاء سير العمل بأكمله، وسنكون قد هدرنا كل تلك الموارد الحسابية.
00:10:14لهذا السبب، فإن التنسيق المدرك لسير العمل مهم جدًا،
00:10:18لأنه سيغير قرارات القبول، والأولوية، وكيفية إعادة المحاولة.
00:10:25الآن دعونا نتحدث عن التحسينات.
00:10:27لن أتعمق كثيرًا في الكثير من التحسينات.
00:10:29هناك الكثير من البحوث التي أُجريت بالفعل في الخارج، لكني أود مشاركة إطار عمل،
00:10:34والذي أحب استخدامه عندما يتعلق الأمر بذلك، ويمكننا وضعه في أربعة أرباع.
00:10:40أولاً، هل يمكننا تجنب العمل؟
00:10:42بمعنى، هل يمكننا تخطيه بالكامل من خلال ذاكرة التخزين المؤقت، عبر تقنيات مثل التخزين المؤقت للبادئة، وتخزين الاستجابات مؤقتًا، والتخزين الدلالي المؤقت؟
00:10:48ثانيًا، هل يمكننا مشاركة العمل؟
00:10:51هل يمكن لطلبات متعددة مشاركة الحوسبة عبر التجميع؟
00:10:54فكر في التجميع المستمر، الملء المسبق وفك التشفير، والملء المسبق المجزأ، وفك التشفير التخميني.
00:10:59ثالثًا، هل يمكننا نقل العمل إلى مكان آخر؟
00:11:01هل يمكننا إرساله إلى مكان آخر، كنماذج أرخص أو أقرب للمستخدم؟
00:11:05من خلال التوجيه بالأساس، هل يمكن توجيهه لنماذج أصغر، مناطق أرخص، أو تقنيات أخرى؟
00:11:12وأخيرًا، هل يمكننا تأجيل هذا العمل؟
00:11:13هل يمكن الانتظار للحظة أفضل عبر التحكم بالقبول وتنظيم الصفوف، مما يتطلب فهم أولوية هذه الطلبات وتطبيق جدولة تراعي المواعيد النهائية؟
00:11:25إطار العمل هذا قوي للغاية لأنه يمتد لتطبيقات وبرمجيات متنوعة.
00:11:29سواء كنت تستخدم VLM أو SG-Lang أو TensorRT، فكل تقنية تندرج تحت أحد هذه الأرباع.
00:11:35لذا، كلما فكرنا في تحسين نموذجنا، يتعين علينا إجراء مقارنة مع التقنيات السابقة
00:11:41ولرؤية كيف تتكامل وتتراكب كل هذه الطرق معًا.
00:11:47عندما نفكر في التوسع، لا يقتصر الأمر على أداء النموذج فقط.
00:11:51بل ينبغي مراعاة التكلفة والجانب الاقتصادي أيضًا.
00:11:54وهنا تكمن أهمية فهم المعيار الذي نحاول تحسينه.
00:11:58لأن التكلفة لا تقتصر على تكلفة وحدات المعالجة أو النموذج فقط.
00:12:02بل تشمل جميع المعاملات، إعادة المحاولات، التخزين، الأخفاقات، الشبكات، وبالطبع التكاليف التشغيلية للتطوير وغيرها.
00:12:09المهم هو فهم مؤشر الأداء الرئيسي لمنتجك، والذي سيضيف قيمة حقيقية للمستخدمين.
00:12:17لذا فالهدف ليس مجرد تحسين التكلفة لكل رمز (Token) أو لكل طلب.
00:12:22بل يجب تحسين التكلفة لكل مهمة ناجحة، فهذا ما يهم المستخدمين بالفعل.
00:12:26وإذا نجحت في تحسين ذلك، ستقل تكلفة المنتج الإجمالية ويزداد رضا المستخدمين.
00:12:36دعونا نتحدث الآن عن الموثوقية، وكيفية منع الفشل المتتابع (Cascading Failures).
00:12:43قصة الفشل لا تقتصر على توقف وحدة معالجة الرسوميات أو تعطلها.
00:12:46السيناريو الأهم يتعلق بحلقة التغذية الراجعة التي تتبع ذلك.
00:12:49فقد يتراجع أداء وحدة الرسوميات، ويرتفع زمن الاستجابة، فيعيد العميل المحاولة، ويزداد عمق الصفوف، وتتحمل الوحدات السليمة ضغطًا زائدًا، مما يسبب المزيد من إعادة المحاولات وأعطالاً إقليمية شاملة.
00:13:02هذا مثال تقليدي للفشل المتتابع، ولكنه يحمل خصوصية في تطبيقات الذكاء الاصطناعي التوليدي بسبب ذاكرة التخزين المؤقت KV.
00:13:09فلا يمكننا بسهولة إعادة التشغيل أو إعادة التوجيه إلى مجمع مختلف.
00:13:13إذ يحتاج المجمع الخامل لوقت للإحماء قبل استيعاب حركة المرور، وأثناء ذلك يتوجب على المجمع النشط استيعاب تلك الطلبات.
00:13:20لهذا السبب، من الضروري تصميم قواطع الدورات بعناية فائقة.
00:13:24كقواطع الدائرة عند طبقة التوجيه، والتحكم بالقبول بدلاً من الانتظار، وتخفيف الأحمال المرتبط بعمق الصفوف وليس فقط باستغلال المعالج أو الذاكرة.
00:13:34كما يجب علينا التفكير في ميزانيات إعادة المحاولة، لأن إهمال ذلك يتسبب في تصاعد التكلفة بسرعة فائقة.
00:13:43والآن سأترك الكلمة لزميلي “نامان” ليواصل الحديث.
00:13:50شكرًا لكم.
00:14:20سأترك الحديث لزميلي نامان.
00:14:22سأترك الحديث لزميلي نامان.
00:14:25سأترك الحديث لزميلي نامان.
00:14:26سأترك الحديث لزميلي نامان.
00:14:27سأترك الحديث لزميلي نامان.
00:14:28سأترك الحديث لزميلي نامان.
00:14:29سأترك الحديث لزميلي نامان.
00:14:30سأترك الحديث لزميلي نامان.
00:14:31سأترك الحديث لزميلي نامان.
00:14:32سأترك الحديث لزميلي نامان.
00:14:33سأترك الحديث لزميلي نامان.
00:14:34سأترك الحديث لزميلي نامان.
00:14:35سأترك الحديث لزميلي نامان.
00:14:36سأترك الحديث لزميلي نامان.
00:14:54حسناً، يعمل الصوت الآن على ما أعتقد.
00:14:57نعتذر عن ذلك.
00:14:58بمجرد أن تصل عملية الاستنتاج إلى النطاق الإنتاجي،
00:15:00تبدأ في الاتسام بخصائص الأنظمة الموزعة.
00:15:03فلم نعد نكتفي باستدعاء نموذج فحسب،
00:15:06بل أصبح الأمر أشبه بمسألة نظام موزع تقليدي.
00:15:09في الأنظمة الموزعة، نتحدث عن الصفوف والجدولة،
00:15:13التوسع التلقائي، وعزل الأعطال.
00:15:14هذه بعض من هذه الأبعاد.
00:15:16وعملية الاستنتاج تحمل كل هذه المشاكل،
00:15:18لكن مع وجود قيود جديدة الآن.
00:15:20فبدلاً من الذاكرة والمعالج وحدهما، لدينا معالج وذاكرة HBM وذاكرة مؤقتة KV،
00:15:25بالإضافة إلى التكلفة لكل مهمة ناجحة.
00:15:27لذا يصبح السؤال التشغيلي المطروح:
00:15:28كيف تعرف المنصة الخطوة التالية الواجب اتخاذها؟
00:15:31وهنا يأتي دور إمكانية المراقبة والتتبع (Observability).
00:15:34فالأمر لا يتعلق بلوحات المتابعة فقط،
00:15:35بل بتوفير إشارات الدخل لحلقة التحكم.
00:15:39بيانات القياس والمجالات والتحليل تتيح اتخاذ القرارات،
00:15:43ومعالجة المشكلات وتغيير الجدولة والتوجيه،
00:15:45وأخيراً نكرر العملية باستمرار.
00:15:47سأقدم نظرة عامة على بعض المقاييس الهامة.
00:15:50المعيار الأول هو الوقت حتى أول رمز (Time to first token)،
00:15:52والذي يوضح مقدار الوقت المستغرق بالفعل
00:15:56للحصول على أول استجابة.
00:15:58ثم لدينا نسبة الاستغلال،
00:16:00والتي توضح إن كانت الذاكرة أم قوة المعالجة هي عنق الزجاجة.
00:16:04ولدينا معدل النجاح مقابل كل دولار والذي يبين
00:16:06ما إذا كانت المنصة تحقق النتائج المرجوة بالفعل
00:16:08وتعمل بكفاءة عالية.
00:16:10وأخيرًا، لدينا زمن الاستجابة الكلي المتكامل (End-to-end race latency)
00:16:12والذي يوضح الوقت المستغرق
00:16:15عبر مسار الطلب بأكمله.
00:16:19هناك مقايضة أساسية بين زمن الاستجابة، التكلفة، ومعدل إنتاج البيانات.
00:16:22ولا يمكنك الحصول عليها جميعاً دفعة واحدة.
00:16:24الأمر شبيه جداً بنظرية CAP.
00:16:26فإذا قمت بزيادة حجم الدفعة،
00:16:28ستحسن الإنتاجية وكفاءة التكلفة،
00:16:31لكن ذلك قد يضر بزمن الاستجابة الأقصى (Tail latency).
00:16:33وإذا استخدمت فك التشفير التخميني،
00:16:35قد تحسن زمن الاستجابة، ولكن على حساب معالجة إضافية.
00:16:38وفيكم ما تعلمون، يؤدي ذلك لزيادة التكلفة لكل رمز.
00:16:41وأخيرًا، يمكنني استخدام نموذج بسيط وأصغر.
00:16:44بحيث أستطيع تقليل زمن الاستجابة والتكلفة،
00:16:45لكن الاستجابة ستكون ذات جودة منخفضة.
00:16:48وفي النهاية، سأجري تحليلاً للأخطاء وأعيد المحاولات،
00:16:50مما يعيد التكلفة للارتفاع مجدداً.
00:16:52لذا فإن كل قرار تشغيلي يحرك
00:16:54النظام إلى مكان ما داخل هذا المثلث.
00:16:56ومهمتنا هي إيجاد الإعداد الأمثل.
00:16:58فالأمر أصلح مجرد مسألة تحسين برمجي الآن.
00:17:03هذا هو الاتجاه الذي تسلكه الصناعة حاليًا.
00:17:05إذ تحتاج عمليات الاستنتاج لطبقة تحكم خاصة بها.
00:17:07كل ما ناقشناه من توجيه، تجميع، تخزين مؤقت،
00:17:10جدولة، وموثوقية--
00:17:12لم يعد من الممكن أن تكون خيارات منفصلة بعد الآن.
00:17:15إنها تتجمع لتشكل طبقة منطقية موحدة.
00:17:17فلنسمها “طبقة التحكم بالاستنتاج” (Inference control plane).
00:17:19كنا ندير الأجهزة الافتراضية سابقًا في الأنظمة الموزعة.
00:17:21وكان لدينا مجدولات توسع تلقائي.
00:17:23ثم أتى نظام Kubernetes وحول كل هذا إلى طبقة تحكم.
00:17:27وتمر عمليات الاستنتاج بنفس هذا التحول حاليًا.
00:17:30حيث تصبح النماذج عبارة عن موارد.
00:17:32فأصبحت وحدات المعالجة، والذاكرة المؤقتة KV، والرموز، وزمن الاستجابة، والتكلفة تخضع للجدولة.
00:17:36وطبقة التحكم هي من يحدد أي النماذج تلبي أي طلب
00:17:40وكيفية تجميعها في دفعات.
00:17:42وسواء قمنا ببناء هذه الطبقة داخلياً،
00:17:44أو استعننا بمصادر مفتوحة، أو بمزود خدمة،
00:17:46فإن الأساس التصميمي يعتمد على افتراض وجود هذه الطبقة.
00:17:50دعونا نناقش الآن بعض الدروس التشغيلية
00:17:53التي اكتسبناها في البنية التحتية للذكاء الاصطناعي
00:17:55ومدى إمكانية تطبيقها هنا.
00:17:57الدرس الأول هو أن اختناقات البنية التحتية
00:18:00تظهر عادةً قبل اختناقات النماذج.
00:18:02في بيئة الإنتاج، قد تحدث أعطال كثيرة،
00:18:04ولكنها قد ترتبط بالجدولة والتوجيه فقط
00:18:07أو بخلل في السعة الاستيعابية.
00:18:08لذا فهذه لا تتعلق بعملية الاستنتاج نفسها،
00:18:10بل هي مشاكل في البنية التحتية.
00:18:12ثم لدينا القابلية للتوسع والمرونة (Elasticity).
00:18:14نحن بحاجة إلى المرونة في النظام.
00:18:15إذ يمكننا إضافة المزيد من وحدات المعالجة، لكن هذا لن يحل المشكلة حقيقةً.
00:18:18بل سنكون مجرد حجبٍ للمشكلة وتغطية لها.
00:18:20إذن حلنا يكمن في قصر قرارات الجدولة،
00:18:24لتتغلب على الكفاءة القائمة على القوة المفرطة.
00:18:26فيمكن لنفس المجموعات الخادمة أن تقدم أداءً مثالياً للغاية،
00:18:28بناءً على طريقة جدولتك لها
00:18:30أو أسلوب تقسيمها إلى دفعات.
00:18:31ثم لدينا حلقات التحكم، والتي تتفوق على العمليات اليدوية.
00:18:35إذ يجب على المنصة أن تستشعر وتكتشف
00:18:37وتتكيف تلقائياً مع النظام.
00:18:39لذا فإن التوصية الرئيسية هي: لا تجعل تحسينك مقتصرًا على الرموز (Tokens).
00:18:43بل ركز على التحسين للمهام الناجحة.
00:18:48هذا هو التحول الأوسع الذي أود أن أتركه في أذهانكم.
00:18:51المركبة الأولى للبنية التحتية للذكاء الاصطناعي كانت تدور حول بناء نماذج أفضل.
00:18:54حيث استثمرنا الكثير من الوقت في تحسين نماذجنا،
00:18:56جعل النماذج أكثر ذكاءً،
00:18:58ووضع معايير تقييم أفضل.
00:19:00أما المرحلة الحالية فتتركز حول الاستنتاج الأسرع،
00:19:03زمن استجابة أقل، تجميع أفضل،
00:19:05تجميع أفضل في دفعات، واستغلال أفضل لوحدات معالجة الرسوميات.
00:19:08ولكن المرحلة القادمة تدور حول التنسيق والإدارة (Orchestration).
00:19:10وهذا يعني أن المعالجات، الذاكرة، التخزين المؤقت وكل شيء،
00:19:13ليست سوى موارد،
00:19:14وهي بحاجة للجدولة والتحكم بها.
00:19:17والفرق التي تدرك هذا المفهوم مبكراً
00:19:19هي من ستبني البنية التحتية للمستقبل.
00:19:21لذا فإن الفكرة الختامية هي،
00:19:23أن البنية التحتية لم تعد مجرد مسألة تقديم للخدمات (Serving).
00:19:25بل أصبحت مسألة تنظيم وتنسيق متكامل.
00:19:27شكراً لكم.
00:19:29شكراً لكم.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기