انتقل إلى المحتوى

مصطلح في خيطين

صيغة الأرقام اللي بتوفّر نص الذاكرة في التدريبbfloat16 (BF16)

المعنى في سطر

bfloat16 صيغة أرقام بنص مساحة float32 لكن بنفس المدى الديناميكي. وحدات TPU بتستخدمها افتراضيًا في ضرب المصفوفات، وده بيوفّر ذاكرة ويسرّع العمليات اللي محدودة بعرض نطاق الذاكرة.

باختصار

bfloat16 أو BF16 صيغة لتمثيل الأرقام العشرية بدقّة مخفّضة. بتاخد نص مساحة صيغة float32 المعتادة، لكن بنفس المدى الديناميكي، يعني تقدر تمثّل أرقام كبيرة وصغيرة بنفس النطاق.

بالتفصيل

حسب توثيق Google Cloud TPU، وحدات TPU بتعمل عمليات ضرب المصفوفات افتراضيًا بقيم bfloat16، والتجميع (Accumulation) بقيم float32. واستخدام أرقام بدقّة أقلّ بيقلّل الوقت لحدّ التقارب من غير ما الدقّة تقلّ.

وفيه سببين يخلّوك تحوّل القيم لـ bfloat16 بنفسك:

  • توفير الذاكرة: تخزين القيم بالصيغة دي بيوفّر ذاكرة على الشريحة، فتقدر تدرّب نماذج أكبر أو تستخدم دفعات (Batch) أكبر.
  • السرعة: بعض العمليات محدودة بعرض نطاق الذاكرة، يعني وقت تحميل البيانات هو اللي بيبطّأها. تخزينها بـ bfloat16 بيقلّل البيانات المنقولة فبيسرّع الشغل.

والتحويل بين الصيغتين بيحصل تلقائيًا بمترجم XLA. ولأن float32 تقدر تمثّل كل قيم bfloat16 بالظبط، التحويل العكسي بيضيف 16 صفر بس في بتّات الجزء العشري.

مثال عملي

هتشوف BF16 كتير في صفحات النماذج المفتوحة. مثلًا Qwen3.8-27B، بـ27 مليار معامل، حجمه بصيغة BF16 حوالي 54 غيغابايت، يعني 2 بايت (16 بتّ) لكل معامل. أما نسخة Saluki 27B المكمّمة (Quantized) منه فحجمها 7.89 غيغابايت بس، بدقّة مختلطة حوالين 2 بتّ.

وحسب التوثيق، النماذج اللي اتدرّبت على Cloud TPU ممكن تتنشر على أجهزة تانية، زي CPU أو GPU، للاستدلال أو الضبط الدقيق من غير تحويلات يدوية كتير.

مصطلحات مرتبطة

المصادر: Google Cloud TPU — bfloat16، MarkTechPost — 2026-10-09