التجزئة (Sharding) في نماذج LLM: كيف تُوزَّع الحسابات بين وحدات GPU
تتطلب الشبكات العصبية الكبيرة توزيع المصفوفات على عدد كبير من المسرّعات، وتُعرف هذه العملية بالتجزئة (sharding). وتتوقف سرعة تدريب نماذج LLM وكفاءته على مدى سلامة تقسيم البيانات.
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
يتطلب توسيع نطاق النماذج اللغوية الكبيرة أكثر من وحدة GPU أو TPU واحدة. ومن أبرز التقنيات المستخدمة لذلك التجزئة (sharding)، أي توزيع المصفوفات والمتجهات بين عدة مسرّعات بحيث تُنفَّذ الحسابات بكفاءة وبشكل متسق.
لماذا لا تتسع المصفوفات في الذاكرة
عند العمل مع شبكات عصبية ضخمة فعلًا، لا تتسع مصفوفات الأوزان والتنشيطات (activations) بكاملها تقريبًا أبدًا في ذاكرة وحدة GPU أو TPU واحدة. فقد يُقاس حجم نموذج LLM الحديث بمئات المليارات من المعاملات، ويحتاج كل معامل منها إلى عدة بايتات من الذاكرة. ولا يستطيع مسرّع واحد ببساطة استيعاب ذلك. لذا يتعيّن تقسيم هذه المصفوفات، أي تجزئتها، بين عدة شرائح.
كيف تعمل التجزئة
لنتخيّل مصفوفة A بحجم [I, J]. يمكن تقسيمها بعدة طرق:
- حسب الصفوف (row-wise) — يأخذ المسرّع الأول الصفوف من 1 إلى N، ويأخذ الثاني الصفوف من N+1 إلى 2N، وهكذا
- حسب الأعمدة (column-wise) — الآلية نفسها لكن بشكل عمودي
- التقسيم الكتلي — تُقسَّم المصفوفة إلى كتل مستطيلة وتُوزَّع على شبكة من الشرائح
- حسب القطر وأنماط أخرى — مخططات أكثر تعقيدًا لعمليات متخصصة
تتمثل مهمة كل مسرّع في تنفيذ العملية على الجزء الخاص به من المصفوفة، ثم مزامنة النتائج مع المسرّعات المجاورة.
ما الذي تؤثر فيه جودة التجزئة
يتوقف على حسن اختيار استراتيجية التجزئة ما يلي:
- سرعة التدريب — بتقليل الوقت المستغرَق في الاتصال بين وحدات GPU
- كفاءة الذاكرة — بملء المخازن المؤقتة (buffers) على كل شريحة ملئًا صحيحًا
- عرض النطاق الترددي — أي حجم البيانات التي يجب نقلها بين المسرّعات
- محلية الحسابات — أي مقدار العمل الذي يمكن إنجازه دون مزامنة
قد يؤدي سوء التجزئة إلى أن تقضي المسرّعات معظم وقتها في انتظار بعضها بعضًا، أو إلى استنزاف عرض النطاق الترددي للروابط بينها. أما التجزئة الجيدة فتسعى إلى تقليل هذه الخسائر وإبقاء جميع الشرائح قيد العمل في وقت واحد.
ماذا يعني ذلك
التجزئة ليست مجرد تحسين تقني، بل هي أساس اقتصاديات التوسّع. فالتوزيع الصحيح للحسابات يتيح استخدام عناقيد تضم مئات وآلاف وحدات GPU بحيث تقترب السرعة الإجمالية من المستوى المثالي، ولا تُهدَر الموارد الحسابية في انتظار الاتصال.
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول لماذا لا تتسع المصفوفات في الذاكرة؟
عند العمل مع شبكات عصبية ضخمة فعلًا، لا تتسع مصفوفات الأوزان والتنشيطات (activations) بكاملها تقريبًا أبدًا في ذاكرة وحدة GPU أو TPU واحدة. فقد يُقاس حجم نموذج LLM الحديث بمئات المليارات من المعاملات، ويحتاج كل معامل منها إلى عدة بايتات من الذاكرة. ولا يستطيع مسرّع واحد ببساطة استيعاب ذلك. لذا يتعيّن تقسيم هذه المصفوفات، أي تجزئتها، بين عدة شرائح.
ما أبرز التفاصيل حول كيف تعمل التجزئة؟
لنتخيّل مصفوفة A بحجم [I, J]. يمكن تقسيمها بعدة طرق: حسب الصفوف (row-wise) — يأخذ المسرّع الأول الصفوف من 1 إلى N، ويأخذ الثاني الصفوف من N+1 إلى 2N، وهكذا حسب الأعمدة (column-wise) — الآلية نفسها لكن بشكل عمودي التقسيم الكتلي — تُقسَّم المصفوفة إلى كتل مستطيلة وتُوزَّع على شبكة من الشرائح حسب القطر وأنماط أخرى — مخططات أكثر تعقيدًا لعمليات متخصصة تتمثل مهمة كل مسرّع في تنفيذ العملية على الجزء الخاص به من المصفوفة، ثم مزامنة النتائج مع المسرّعات المجاورة.
ما أبرز التفاصيل حول ما الذي تؤثر فيه جودة التجزئة؟
يتوقف على حسن اختيار استراتيجية التجزئة ما يلي: سرعة التدريب — بتقليل الوقت المستغرَق في الاتصال بين وحدات GPU كفاءة الذاكرة — بملء المخازن المؤقتة (buffers) على كل شريحة ملئًا صحيحًا عرض النطاق الترددي — أي حجم البيانات التي يجب نقلها بين المسرّعات محلية الحسابات — أي مقدار العمل الذي يمكن إنجازه دون مزامنة قد يؤدي سوء التجزئة إلى أن تقضي المسرّعات معظم وقتها في انتظار بعضها بعضًا، أو إلى استنزاف عرض النطاق الترددي للروابط بينها. أما التجزئة الجيدة فتسعى إلى تقليل هذه الخسائر وإبقاء جميع الشرائح قيد العمل في وقت واحد.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.