رفتن به محتوای اصلی
Koohestun
توضیح کوهستانسخت‌افزار هوش مصنوعیگزارش تشریحی· 4 دقیقه مطالعه· در هوش مصنوعی

چگونه توان ۸ بیتی در BF16 آموزش مدل‌های زبانی بزرگ را پایدار می‌کند

فرمت Bfloat16 با فدا کردن بخشی از دقت اعشاری در ازای یک محدوده پویای عظیم، مشکل فروپاشی ناشی از سرریز عددی را که گریبان‌گیر آموزش هوش مصنوعی است، حل می‌کند. این فرمت با اختصاص هشت بیت به توان، به شبکه‌های عصبی اجازه می‌دهد تا بدون نیاز به سربار حافظه در محاسبات ۳۲ بیتی، اعدادی تا بزرگی ۳.۴ در ۱۰ به توان ۳۸ را پردازش کنند.

به قلم اِلا فرجاد

دانشمندان پژوهشگر هوش مصنوعی 45%معماران سخت‌افزار 35%مهندسان زیرساخت ذخیره‌سازی 20%
دانشمندان پژوهشگر هوش مصنوعی
تمرکز بر پایداری گرادیان و رفتار ریاضی شبکه‌های عصبی در طول آموزش.
معماران سخت‌افزار
تمرکز بر کارایی سیلیکون و فضای فیزیکی مورد نیاز برای هسته‌های محاسباتی.
مهندسان زیرساخت ذخیره‌سازی
تمرکز بر توان عملیاتی داده‌ها، پهنای باند اتصالات داخلی و اندازه فایل‌های ذخیره‌سازی مدل.

دیدگاه‌هایی که این گزارش پوشش نداده

  • تحلیلگران محیط زیست که مصرف انرژی هوش مصنوعی را ردیابی می‌کنند
  • مدیران عملیات مالی ابری (FinOps)

نکات کلیدی

  • فرمت Bfloat16 با گسترش حداکثر عدد قابل نمایش به ۳.۴ در ۱۰ به توان ۳۸، از فروپاشی آموزش هوش مصنوعی جلوگیری می‌کند.
  • این فرمت در مقایسه با ممیز شناور ۱۶ بیتی استاندارد، سه بیت را از بخش اعشاری به توان اختصاص می‌دهد.
  • شبکه‌های عصبی از دست دادن دقت اعشاری را تحمل می‌کنند، اما نمی‌توانند از خطاهای سرریز عددی جان سالم به در ببرند.
  • فرمت BF16 در مقایسه با محاسبات سنتی ۳۲ بیتی، نیازهای حافظه و ذخیره‌سازی مدل‌های هوش مصنوعی را نصف می‌کند.

مدل‌های زبانی بزرگ زمانی در طول آموزش دچار فروپاشی می‌شوند که محاسبات داخلی آن‌ها عددی را تولید کند که برای ذخیره در فرمت حافظه‌شان بیش از حد بزرگ باشد؛ خطایی که به عنوان سرریز عددی شناخته می‌شود. فرمت Bfloat16 (یا BF16) با تخصیص مجدد بیت‌ها در یک عدد ۱۶ بیتی از این امر جلوگیری می‌کند. این فرمت سه بیت را از بخش اعشاری می‌گیرد و به توان اختصاص می‌دهد، که در نتیجه حداکثر مقدار قابل نمایش را از ۶۵,۵۰۴ به رقم نجومی ۳.۴ در ۱۰ به توان ۳۸ گسترش می‌دهد.[1][2]

پیش از معرفی BF16، صنعت هوش مصنوعی برای نصف کردن نیازهای حافظه محاسبات ۳۲ بیتی، به شدت به ریاضیات ممیز شناور ۱۶ بیتی استاندارد، معروف به FP16، وابسته بود. فرمت FP16 پنج بیت را به توان و ده بیت را به بخش اعشاری اختصاص می‌دهد. این ساختار دقت اعشاری فوق‌العاده‌ای برای اعداد کوچک فراهم می‌کند، اما یک سقف سخت در عدد ۶۵,۵۰۴ ایجاد می‌کند. وقتی گرادیان‌های یک شبکه عصبی در طول یک دوره آموزشی از این آستانه فراتر می‌روند، سخت‌افزار دیگر قادر به پردازش آن مقدار نیست.[3][6]

فرمت BF16 با تخصیص مجدد سه بیت از بخش اعشاری به توان، دقت اعشاری را فدا می‌کند تا به یک محدوده پویای بسیار بزرگ‌تر دست یابد.

سیستم در واکنش به این سرریز، خطای «عدد نیست» (NaN) را برمی‌گرداند که یک نقص جزئی نیست، بلکه یک فروپاشی مهلک در روند آموزش است. تیم گوگل کلاد در مستندات TPU خود توضیح می‌دهد: «انگیزه اصلی برای توسعه bfloat16، ارائه همان محدوده پویای FP32 است» و خاطرنشان می‌کند که این محدوده برای جلوگیری از چنین خرابی‌هایی کاملاً ضروری است. بازیابی سیستم پس از یک سرریز نیازمند بازگشت به نقطه ذخیره قبلی است که باعث هدر رفتن ساعت‌ها یا روزها زمان محاسباتی در خوشه‌هایی می‌شود که کارکردشان ساعتی هزاران دلار هزینه در بر دارد.[1]

گوگل «فرمت ممیز شناور برین» (Brain Floating Point Format) را مشخصاً برای از بین بردن این گلوگاه در واحدهای پردازش تنسور (TPU) خود توسعه داد. برخلاف توان پنج بیتی در FP16، فرمت BF16 از یک توان هشت بیتی استفاده می‌کند که دقیقاً با اندازه توان یک ممیز شناور کامل ۳۲ بیتی (FP32) مطابقت دارد. هفت بیت باقی‌مانده نیز برای بخش اعشاری یا مانتیس در نظر گرفته می‌شود.[1][2]

این تغییر ساختاری نشان‌دهنده یک مصالحه ریاضی حساب‌شده است. فرمت BF16 در مقایسه با دقت چهار رقمی FP16، تنها می‌تواند حدود سه رقم اعشار دقت را نشان دهد. با این حال، الگوریتم‌های یادگیری عمیق در برابر خطاهای کوچک گرد کردن در بخش اعشاری به طرز چشمگیری مقاوم هستند. چیزی که آن‌ها نمی‌توانند از آن جان سالم به در ببرند، وجود یک سقف سخت برای بزرگی اعدادی است که در طول فرآیند کاهش گرادیان تولید می‌کنند.[3][4]

ممیزهای شناور ۱۶ بیتی استاندارد زمانی که محاسبات از ۶۵,۵۰۴ فراتر می‌رود دچار فروپاشی می‌شوند؛ اتفاقی که در طول آموزش شبکه‌های عصبی بسیار رایج است.
فرمت BF16 در مقایسه با دقت چهار رقمی FP16، تنها می‌تواند حدود سه رقم اعشار دقت را نشان دهد.

از آنجا که 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]

چرا مهم است

آموزش یک مدل پیشرفته هوش مصنوعی ده‌ها میلیون دلار هزینه دارد و تنها یک سرریز عددی می‌تواند باعث از کار افتادن خوشه‌ای متشکل از هزاران پردازنده گرافیکی شود و پیشرفتِ هفته‌ها کار را به باد دهد. فرمت Bfloat16 با اطمینان از اینکه محاسبات داخلی مدل هرگز به سقف خود نمی‌رسد، از این خرابی‌های فاجعه‌بار جلوگیری کرده و اساساً مقیاس‌پذیری هوش مصنوعی مدرن را امکان‌پذیر می‌کند.

اصطلاحات کلیدی

فرمت ممیز شناور
روشی برای نمایش اعداد حقیقی در محاسبات، مشابه نمادگذاری علمی، که از یک علامت، یک بخش اعشاری (مانتیس) و یک توان استفاده می‌کند.
سرریز عددی
یک خطای محاسباتی که زمانی رخ می‌دهد که یک محاسبه عددی بزرگ‌تر از حداکثر مقداری تولید کند که فرمت داده می‌تواند ذخیره کند.
کاهش گرادیان
فرآیند بهینه‌سازی ریاضی که شبکه‌های عصبی برای یادگیری از آن استفاده می‌کنند و اغلب باعث جهش‌های ناگهانی در مقادیر عددی می‌شود.
NaN (عدد نیست)
یک وضعیت خطا در محاسبات که نشان‌دهنده یک مقدار تعریف‌نشده یا غیرقابل نمایش است و در صورت عدم تشخیص، می‌تواند کل روند آموزش هوش مصنوعی را مختل کند.

آنچه نمی‌دانیم

  • آیا فرمت‌های ممیز شناور ۸ بیتی (FP8) هرگز می‌توانند بدون نیاز به راه‌حل‌های پیچیده مقیاس‌بندی، به همان پایداری بی‌دردسر BF16 دست یابند.
  • سربار سخت‌افزاری دقیقی که برای پیاده‌سازی تغییر دقت پویا در شتاب‌دهنده‌های آینده هوش مصنوعی مورد نیاز است.

منابع

پوشش منابع

7 منبع

3 دیدگاه شناسایی‌شده

دانشمندان پژوهشگر هوش مصنوعی 45%معماران سخت‌افزار 35%مهندسان زیرساخت ذخیره‌سازی 20%
  1. [1]Google Cloud Blogمعماران سخت‌افزار

    BFloat16: The secret to high performance on Cloud TPUs

    مطالعه در Google Cloud Blog
  2. [2]Wikipediaمهندسان زیرساخت ذخیره‌سازی

    bfloat16 floating-point format

    مطالعه در Wikipedia
  3. [3]Towards AIدانشمندان پژوهشگر هوش مصنوعی

    bfloat16 vs float16 vs float32: Understanding Tensor dtypes in Large Language Models

    مطالعه در Towards AI
  4. [4]ZenMLدانشمندان پژوهشگر هوش مصنوعی

    To FP8 and Back Again: Quantifying Reduced Precision Effects on LLM Training Stability

    مطالعه در ZenML
  5. [5]Computer Weeklyمهندسان زیرساخت ذخیره‌سازی

    Bfloat16: What it is and how it impacts storage

    مطالعه در Computer Weekly
  6. [6]Ultralyticsمعماران سخت‌افزار

    What is BFloat16 (BF16) in Deep Learning?

    مطالعه در Ultralytics
  7. [7]تیم سردبیری کوهستاندانشمندان پژوهشگر هوش مصنوعی

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

دریافت هوش مصنوعی اخبار همراه با پوشش کامل منابع و تحلیل دیدگاه‌ها، مستقیم در صندوق ورودی شما.