چگونه توان ۸ بیتی در BF16 آموزش مدلهای زبانی بزرگ را پایدار میکند
فرمت Bfloat16 با فدا کردن بخشی از دقت اعشاری در ازای یک محدوده پویای عظیم، مشکل فروپاشی ناشی از سرریز عددی را که گریبانگیر آموزش هوش مصنوعی است، حل میکند. این فرمت با اختصاص هشت بیت به توان، به شبکههای عصبی اجازه میدهد تا بدون نیاز به سربار حافظه در محاسبات ۳۲ بیتی، اعدادی تا بزرگی ۳.۴ در ۱۰ به توان ۳۸ را پردازش کنند.
به قلم اِلا فرجاد
این خبر را به اشتراک بگذارید
بهطور خلاصه
- فرمت Bfloat16 با گسترش حداکثر عدد قابل نمایش به ۳.۴ در ۱۰ به توان ۳۸، از فروپاشی آموزش هوش مصنوعی جلوگیری میکند.
- این فرمت در مقایسه با ممیز شناور ۱۶ بیتی استاندارد، سه بیت را از بخش اعشاری به توان اختصاص میدهد.
- شبکههای عصبی از دست دادن دقت اعشاری را تحمل میکنند، اما نمیتوانند از خطاهای سرریز عددی جان سالم به در ببرند.
مدلهای زبانی بزرگ زمانی در طول آموزش دچار فروپاشی میشوند که محاسبات داخلی آنها عددی را تولید کند که برای ذخیره در فرمت حافظهشان بیش از حد بزرگ باشد؛ خطایی که به عنوان سرریز عددی شناخته میشود. فرمت Bfloat16 (یا BF16) با تخصیص مجدد بیتها در یک عدد ۱۶ بیتی از این امر جلوگیری میکند. این فرمت سه بیت را از بخش اعشاری میگیرد و به توان اختصاص میدهد، که در نتیجه حداکثر مقدار قابل نمایش را از ۶۵,۵۰۴ به رقم نجومی ۳.۴ در ۱۰ به توان ۳۸ گسترش میدهد.[1][2]
پیش از معرفی BF16، صنعت هوش مصنوعی برای نصف کردن نیازهای حافظه محاسبات ۳۲ بیتی، به شدت به ریاضیات ممیز شناور ۱۶ بیتی استاندارد، معروف به FP16، وابسته بود. فرمت FP16 پنج بیت را به توان و ده بیت را به بخش اعشاری اختصاص میدهد. این ساختار دقت اعشاری فوقالعادهای برای اعداد کوچک فراهم میکند، اما یک سقف سخت در عدد ۶۵,۵۰۴ ایجاد میکند. وقتی گرادیانهای یک شبکه عصبی در طول یک دوره آموزشی از این آستانه فراتر میروند، سختافزار دیگر قادر به پردازش آن مقدار نیست.[3][6]
سیستم در واکنش به این سرریز، خطای «عدد نیست» (NaN) را برمیگرداند که یک نقص جزئی نیست، بلکه یک فروپاشی مهلک در روند آموزش است. تیم گوگل کلاد در مستندات TPU خود توضیح میدهد: «انگیزه اصلی برای توسعه bfloat16، ارائه همان محدوده پویای FP32 است» و خاطرنشان میکند که این محدوده برای جلوگیری از چنین خرابیهایی کاملاً ضروری است.
بازیابی سیستم پس از یک سرریز نیازمند بازگشت به نقطه ذخیره قبلی است که باعث هدر رفتن ساعتها یا روزها زمان محاسباتی در خوشههایی میشود که کارکردشان ساعتی هزاران دلار هزینه در بر دارد.[1]
گوگل «فرمت ممیز شناور برین» (Brain Floating Point Format) را مشخصاً برای از بین بردن این گلوگاه در واحدهای پردازش تنسور (TPU) خود توسعه داد. برخلاف توان پنج بیتی در FP16، فرمت BF16 از یک توان هشت بیتی استفاده میکند که دقیقاً با اندازه توان یک ممیز شناور کامل ۳۲ بیتی (FP32) مطابقت دارد. هفت بیت باقیمانده نیز برای بخش اعشاری یا مانتیس در نظر گرفته میشود.[1][2]
این تغییر ساختاری نشاندهنده یک مصالحه ریاضی حسابشده است. فرمت BF16 در مقایسه با دقت چهار رقمی FP16، تنها میتواند حدود سه رقم اعشار دقت را نشان دهد. با این حال، الگوریتمهای یادگیری عمیق در برابر خطاهای کوچک گرد کردن در بخش اعشاری به طرز چشمگیری مقاوم هستند. چیزی که آنها نمیتوانند از آن جان سالم به در ببرند، وجود یک سقف سخت برای بزرگی اعدادی است که در طول فرآیند کاهش گرادیان تولید میکنند.[3][4]
از آنجا که BF16 دقیقاً همان توان هشت بیتی FP32 را به اشتراک میگذارد، تبدیل بین این دو فرمت تقریباً به هیچ سربار سختافزاری نیاز ندارد. پردازندهها به سادگی ۱۶ بیت پایینی بخش اعشاری FP32 را کوتاه میکنند تا یک مقدار BF16 بسازند. این فرآیند تبدیل ظریف به معماران سختافزار اجازه میدهد تا بدون فدا کردن محدوده پویای محاسبات ۳۲ بیتی، ضربکنندههای سیلیکونی سادهتر و سریعتری بسازند.[1][2]
موفقیت این فرمت روی پردازندههای TPU گوگل در سال ۲۰۱۹، باعث پذیرش سریع آن در سراسر صنعت شد. انویدیا پشتیبانی بومی از BF16 را در سال ۲۰۲۰ در معماری Ampere خود ادغام کرد و از آن زمان تاکنون، این فرمت به استاندارد پیشفرض برای آموزش تقریباً تمام مدلهای زبانی بزرگ تبدیل شده است. امروزه، آموزش یک مدل ۷۰ میلیارد پارامتری با دقت کامل ۳۲ بیتی، تنها برای بارگذاری وزنها به ۲۸۰ گیگابایت حافظه نیاز دارد، اما BF16 این نیاز را به ۱۴۰ گیگابایت کاهش میدهد.[3][5][6]
فراتر از ظرفیت حافظه، این کاهش اساساً سرعت حرکت دادهها در یک سرور را تغییر میدهد. مهندسان زیرساخت ذخیرهسازی برای تسریع سرعت انتقال دادهها در اتصالات داخلی سرور و کاهش اندازه فایلهای ذخیرهشده مدل روی دیسک، به BF16 متکی هستند. جابجایی نیمی از حجم دادهها به این معنی است که پردازندههای گرافیکی زمان کمتری را صرف انتظار برای حافظه کرده و زمان بیشتری را به انجام محاسبات واقعی اختصاص میدهند.[5]
موفقیت BF16 محققان را جسورتر کرده تا دقت را حتی پایینتر بیاورند و با آزمایش فرمتهای ممیز شناور ۸ بیتی (FP8)، ردپای حافظه را دوباره نصف کنند. با این حال، حرکت به سمت FP8 دقیقاً همان مشکلات پایداری را که BF16 حل کرده بود، دوباره معرفی میکند. در یک تحلیل در سال ۲۰۲۴، محققان ZenML خاطرنشان کردند که «کمیسازی اثرات کاهش دقت بر پایداری آموزش مدلهای زبانی بزرگ» نشان میدهد که کاهش تهاجمی دقت اغلب به راهحلهای پیچیده مقیاسبندی نیاز دارد تا از بازگشت خطاهای NaN جلوگیری شود.[4]
در آینده قابل پیشبینی، BF16 همچنان استاندارد بلامنازع برای آموزش مدلهای پیشرفته باقی میماند. این فرمت تعادل کاملی بین محدودیتهای پهنای باند حافظه در سختافزارهای مدرن و الزامات محدوده پویای بهینهسازی شبکههای عصبی برقرار میکند. تا زمانی که مدلهای هوش مصنوعی در طول آموزش به تولید جهشهای عددی غیرقابل پیشبینی ادامه میدهند، توان هشت بیتی به عنوان بنیان ساختاری برای جلوگیری از فروپاشی این محاسبات باقی خواهد ماند.[6][7]
اصطلاحات کلیدی
- فرمت ممیز شناور
- روشی برای نمایش اعداد حقیقی در محاسبات، مشابه نمادگذاری علمی، که از یک علامت، یک بخش اعشاری (مانتیس) و یک توان استفاده میکند.
- سرریز عددی
- یک خطای محاسباتی که زمانی رخ میدهد که یک محاسبه عددی بزرگتر از حداکثر مقداری تولید کند که فرمت داده میتواند ذخیره کند.
- کاهش گرادیان
- فرآیند بهینهسازی ریاضی که شبکههای عصبی برای یادگیری از آن استفاده میکنند و اغلب باعث جهشهای ناگهانی در مقادیر عددی میشود.
- NaN (عدد نیست)
- یک وضعیت خطا در محاسبات که نشاندهنده یک مقدار تعریفنشده یا غیرقابل نمایش است و در صورت عدم تشخیص، میتواند کل روند آموزش هوش مصنوعی را مختل کند.
پرسشهای متداول
حرف B در BF16 مخفف چیست؟
این حرف مخفف کلمه Brain (مغز) است و از نام تیم تحقیقاتی Google Brain گرفته شده که در ابتدا این فرمت را برای واحدهای پردازش تنسور خود توسعه دادند.
آیا میتوانم از BF16 روی پردازندههای گرافیکی قدیمیتر استفاده کنم؟
شتابدهنده سختافزاری بومی برای BF16 در معماری Ampere انویدیا (مانند مدل A100) معرفی شد. پردازندههای گرافیکی قدیمیتر میتوانند دادههای BF16 را ذخیره کنند، اما برای انجام محاسبات باید آنها را به FP32 تبدیل کنند که باعث از دست رفتن مزایای سرعت میشود.
آیا BF16 هوش مدل هوش مصنوعی را کاهش میدهد؟
خیر. تحقیقات نشان میدهد که شبکههای عصبی در برابر کاهش دقت اعشاری در BF16 بسیار مقاوم هستند و به همان دقت نهایی مدلهایی دست مییابند که با دقت کامل ۳۲ بیتی آموزش دیدهاند.
بررسی عمیق دیدگاهها
معماران سختافزار
تمرکز بر کارایی سیلیکون و فضای فیزیکی مورد نیاز برای هستههای محاسباتی.
برای طراحان سختافزار، BF16 یک پیروزی بزرگ در زمینه کارایی محسوب میشود. از آنجا که BF16 دقیقاً همان توان هشت بیتی ممیز شناور ۳۲ بیتی استاندارد را به اشتراک میگذارد، ضربکنندههای سیلیکونی مورد نیاز برای پردازش محاسبات میتوانند از نظر فیزیکی روی تراشه کوچکتر باشند. این امر به تولیدکنندگان اجازه میدهد تا بدون نیاز به منطق تبدیل پیچیده و پرمصرف برای ترجمه بین فرمتهای ۱۶ بیتی و ۳۲ بیتی، هستههای محاسباتی بسیار بیشتری را در هر میلیمتر مربع از سیلیکون جای دهند.
دانشمندان پژوهشگر هوش مصنوعی
تمرکز بر پایداری گرادیان و رفتار ریاضی شبکههای عصبی در طول آموزش.
محققان به BF16 در درجه اول به عنوان یک ابزار پایداری نگاه میکنند. در حالی که FP16 استاندارد به تکنیکهای پیچیده «مقیاسبندی زیان» (loss scaling) نیاز دارد تا اعداد را به طور مصنوعی فشرده کرده و آنها را در محدوده ۶۵,۵۰۴ نگه دارد، BF16 به محققان اجازه میدهد مدلها را بدون هیچ تنظیمات اضافهای آموزش دهند. با حذف تهدید دائمی سرریز عددی، دانشمندان میتوانند نرخهای یادگیری تهاجمیتر و معماریهای جدید را بدون نیاز به نظارت مداوم بر روند آموزش برای جلوگیری از خطاهای فاجعهبار NaN آزمایش کنند.
مهندسان زیرساخت ذخیرهسازی
تمرکز بر توان عملیاتی دادهها، پهنای باند اتصالات داخلی و اندازه فایلهای ذخیرهسازی مدل.
از منظر زیرساخت، ارزش اصلی BF16 در سرعت دادههاست. نصف کردن عرض بیت از ۳۲ به ۱۶، پهنای باند موثر اتصالات گرانقیمتی را که رکهای سرور را به هم متصل میکنند، دو برابر میکند. این کار همچنین زمان مورد نیاز برای ذخیره فایلهای عظیم مدل روی دیسک را به نصف کاهش میدهد و «زمان مردهای» را که در آن پردازندههای گرافیکی بیکار میمانند تا درایوهای ذخیرهسازی نوشتن دادهها را تمام کنند، به حداقل میرساند.
- دانشمندان پژوهشگر هوش مصنوعی
- تمرکز بر پایداری گرادیان و رفتار ریاضی شبکههای عصبی در طول آموزش.
- معماران سختافزار
- تمرکز بر کارایی سیلیکون و فضای فیزیکی مورد نیاز برای هستههای محاسباتی.
- مهندسان زیرساخت ذخیرهسازی
- تمرکز بر توان عملیاتی دادهها، پهنای باند اتصالات داخلی و اندازه فایلهای ذخیرهسازی مدل.
دیدگاههایی که این گزارش پوشش نداده
- تحلیلگران محیط زیست که مصرف انرژی هوش مصنوعی را ردیابی میکنند
- مدیران عملیات مالی ابری (FinOps)
منابع
[1]Google Cloud Blogمعماران سختافزارBFloat16: The secret to high performance on Cloud TPUs
مطالعه در Google Cloud Blog →
[2]Wikipediaمهندسان زیرساخت ذخیرهسازیbfloat16 floating-point format
مطالعه در Wikipedia →
[3]Towards AIدانشمندان پژوهشگر هوش مصنوعیbfloat16 vs float16 vs float32: Understanding Tensor dtypes in Large Language Models
مطالعه در Towards AI →
[4]ZenMLدانشمندان پژوهشگر هوش مصنوعیTo FP8 and Back Again: Quantifying Reduced Precision Effects on LLM Training Stability
مطالعه در ZenML →
[5]Computer Weeklyمهندسان زیرساخت ذخیرهسازیBfloat16: What it is and how it impacts storage
مطالعه در Computer Weekly →
[6]Ultralyticsمعماران سختافزارWhat is BFloat16 (BF16) in Deep Learning?
مطالعه در Ultralytics →
[7]تیم سردبیری کوهستاندانشمندان پژوهشگر هوش مصنوعیتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
بیشتر در هوش مصنوعی
مشاهده همه →سختافزار هوش مصنوعی
سازوکار شتابدهی هوش مصنوعی: مقایسه پردازندههای گرافیکی (GPU)، تنسور (TPU) و مدارهای مجتمع خاص منظوره (ASIC) برای آموزش و استنتاج
6 منبع
معماری سختافزار هوش مصنوعی
آرایههای سیستولیک چگونه دادهها را برای ضرب ماتریسها در تراشههای هوش مصنوعی به جریان میاندازند؟
7 منبع
هوش مصنوعی فضایی
تصاحب ۸٫۲ میلیارد دلاری ورلد لبز توسط AMD؛ خیز بلند برای تسلط بر هوش مصنوعی فیزیکی
5 منبع
همکاری سیناپسیس و OpenAI برای ساخت مدل تخصصی GPT-Synopsys در اتوماسیون طراحی تراشهها
10 منبع
نظرات
هر زاویه. هر روز.
اخبار هوش مصنوعی با پوشش کامل منابع و تحلیل دیدگاهها، هر روز و رایگان.





