بث مباشر 18.11 · الدفعة 318 نوفمبر، 19:00 بتوقيت موسكو — ورشة عملية مجانية لوكلاء الذكاء الاصطناعي · الدفعة 3 تبدأ 23.11ورشة 18 نوفمبر ←الدفعة 3 (23.11)
إصدارتحليل · على الرادارMachine Learning Mastery→ المصدر

تنسيقات 16 بت تخفض ذاكرة أوزان النموذج إلى النصف من دون تغيير البنية

دقة العمليات الحسابية ليست إعدادًا يقوم على قاعدة «كلما قل العدد كان التنفيذ أسرع». ففي نموذج يضم 7 مليارات معلمة، يؤدي الانتقال من FP32 إلى FP16 أو BF16 إلى خفض ذاكرة الأوزان من 28 إلى 14 غيغابايت، لكن النتيجة تعتمد على بطاقة الرسوميات والأنوية والبيانات نفسها. يميز FP16 بين الأرقام المتقاربة بدقة أكبر، بينما يتحمل BF16 نطاقًا أوسع من القيم. لذلك يجب اختيار التنسيق بناءً على القياسات، مع إبقاء العمليات الحساسة في FP32 عند الضرورة.

معالج بواسطة الذكاء الاصطناعي من Machine Learning Mastery؛ بتحرير Hamidun News
تنسيقات 16 بت تخفض ذاكرة أوزان النموذج إلى النصف من دون تغيير البنية
المصدر: Machine Learning Mastery. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليMachine Learning Mastery ↗
رئيس التحرير
حقيقة رئيسية #1اختبر زمن الاستجابة ومعدل المعالجة والذاكرة والجودة في الوقت نفسه.
حقيقة رئيسية #2راع دقة الأوزان والمجاميع الوسيطة وبيانات الخرج.
اختبر طلبات حقيقيةتطابق النص لا يعني بالضرورة تطابق قيم logits.

في النموذج نفسه الذي يضم 7 مليارات معلمة، قد تشغل الأوزان نحو 28 غيغابايت في FP32، و14 غيغابايت في FP16 أو BF16، و7 غيغابايت عند استخدام 8 بتات. لا تتغير البنية في هذه الحالة؛ ما يتغير هو طريقة تخزين الأرقام. وتبدو الفائدة واضحة: ذاكرة أقل وبيانات أقل يجب نقلها بين الذاكرة ووحدات الحوسبة، ما يفترض أن يجعل النموذج أسرع في الاستجابة.

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

يؤدي FP16 وBF16 مهمتين مختلفتين

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

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

لنتخيل طبقة تستقبل القيمتين 1.001 و1.002، ثم تواجه لاحقًا تنشيطًا بقيمة 100 000. سيحافظ FP16 بصورة أفضل على الفرق بين القيمتين الأوليين، لكنه قد يعجز عن التعامل مع القيمة الكبيرة. أما BF16 فسيتجاوز القيمة الشاذة بسهولة أكبر، لكنه قد يقرب الرقمين المتقاربين إلى القيمة نفسها. ويتحدد الخيار الأفضل بحسب النموذج والبيانات والمعدات، لا بحسب اسم التنسيق.

وهناك تفصيل آخر: نوع الأوزان المحفوظة لا يكشف الصورة كاملة. فقد تقرأ عملية ضرب المصفوفات قيم FP16، وتراكم المجموع في FP32، ثم تكتب النتيجة مجددًا في FP16. لذلك من المهم أن يوضح تقرير الأداء دقة المدخلات والتراكم والمخرجات.

الدقة المختلطة تحمي العمليات الحساسة

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

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

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

ما ينبغي قياسه قبل الإطلاق

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

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

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

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول يؤدي FP16 وBF16 مهمتين مختلفتين؟

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

ما أبرز التفاصيل حول الدقة المختلطة تحمي العمليات الحساسة؟

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

ما أبرز التفاصيل حول ما ينبغي قياسه قبل الإطلاق؟

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

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

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.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…