در مقالهای اخیر، محققان مایکروسافت BitNet b1.58 2B4T را توصیف کردهاند، اولین مدل زبانی بزرگ (LLM) که به طور بومی با استفاده از وزنهای "1 بیتی" (از نظر فنی، 1-تریت) آموزش داده شده است، نه اینکه از یک مدل آموزشدیده با وزنهای ممیز شناور، کوانتیزه شده باشد. به گفته مایکروسافت، این مدل عملکردی مشابه مدلهای زبانی بزرگ با دقت کامل با اندازه مشابه را با کسری از هزینه محاسباتی و نیازهای سختافزاری ارائه میدهد.
در حالی که مدلهای زبانی بزرگ عملکرد چشمگیری از خود نشان دادهاند، هنوز موانعی برای پذیرش گستردهتر آنها وجود دارد:
مدلهای زبانی بزرگ متنباز پیشرفته معمولاً به ردپای حافظه بزرگ نیاز دارند، انرژی قابل توجهی مصرف میکنند و تأخیر استنتاج قابل توجهی از خود نشان میدهند، که آنها را برای بسیاری از دستگاههای لبه، محیطهای با منابع محدود و برنامههای کاربردی بیدرنگ غیرعملی میکند.
برای غلبه بر این محدودیتها، جامعه مدلهای زبانی بزرگ در حال بررسی مدلهای کوانتیزه شده است که از مدلهای با دقت کامل با تبدیل وزنهای آنها به فرمت بیت پایینتر مشتق شدهاند.
مایکروسافت BitNet b1.58 2B4T را از ابتدا بر روی یک پیکره 4 تریلیون توکنی با استفاده از وزنهای 1 بیتی آموزش داد، با هدف اجتناب از افت دقتی که معمولاً در اثر کوانتیزهکردن مدلی که در ابتدا با دقت کامل آموزش داده شده است، ایجاد میشود، در حالی که مزایای وزنهای کوچکتر را از نظر ردپای حافظه و هزینه محاسباتی حفظ میکند.
در واقع، بر اساس معیارهای مایکروسافت، مدل جدید در طیف گستردهای از وظایف، از جمله درک زبان و استدلال، دانش جهانی، درک مطلب، ریاضیات و کد، و پیروی از دستورالعملها و مکالمه، عملکردی قابل مقایسه با مدلهای با دقت کامل و وزن باز پیشرو با اندازه مشابه دارد. نتایج محکزنی مقایسهای در نمودار زیر خلاصه شده است:
آنچه BitNet b1.58 2B4T را در مقایسه با مدلهای کوانتیزه شده با اندازه مشابه یا کوچکتر متمایز میکند، ردپای حافظه، تأخیر و مصرف انرژی است، همانطور که در جدول زیر نشان داده شده است.
از نظر معماری، BitNet b1.58 2B4T لایههای خطی با دقت کامل استاندارد (به عنوان مثال torch.nn.Linear) را با لایههای سفارشی BitLinear جایگزین میکند، که از نمایشهای 1.58 بیتی برای رمزگذاری وزنها به عنوان مقادیر سهتایی (تریتها) در طول گذر رو به جلو استفاده میکنند.
این با استفاده از یک طرح کوانتیزاسیون میانگین مطلق (
absmean) به دست میآید، که وزنها را به مقادیر سهتایی{-1, 0, +1}نگاشت میکند. این به طور چشمگیری اندازه مدل را کاهش میدهد و عملیات ریاضی کارآمد را ممکن میسازد.
دو تکنیک اضافی مورد استفاده در لایههای BitLinear—کوانتیزاسیون فعالسازی و نرمالسازی—همچنین به کاهش اندازه مدل و بهبود پایداری آموزش کمک میکنند.
علاوه بر لایههای BitLinear، BitNet b1.58 2B4T چندین تکنیک مدل زبانی بزرگ تثبیتشده مانند توابع فعالسازی ReLU مربعی، تعبیههای موقعیتی چرخشی و حذف ترم بایاس را در خود جای داده است.
برای آموزش، BitNet b1.58 2B4T به سه تکنیک متکی است: پیشآموزش در مقیاس بزرگ، تنظیم دقیق نظارتشده و بهینهسازی ترجیح مستقیم. محققان خاطرنشان میکنند که تکنیکهای پیشرفتهتری مانند بهینهسازی سیاست پروگزیمال یا بهینهسازی سیاست نسبی گروهی، در آینده برای افزایش قابلیتهای ریاضی و استدلال زنجیرهای مورد بررسی قرار خواهند گرفت.
با توجه به طرح کوانتیزاسیون منحصربهفرد BitNet b1.58 2B4T، این مدل نمیتواند با کتابخانههای یادگیری عمیق استاندارد مانند llama.cpp استفاده شود و به یک هسته تخصصی نیاز دارد. به همین منظور، مایکروسافت یک کتابخانه استنتاج اختصاصی متنباز به نام bitnet.cpp توسعه داده است. بر اساس llama.cpp،
bitnet.cpp چارچوب استنتاج رسمی برای مدلهای زبانی بزرگ ۱ بیتی (به عنوان مثال، BitNet b1.58) است. این مجموعه ای از هستههای بهینهسازیشده را ارائه میدهد که از استنتاج سریع و بدون اتلاف مدلهای 1.58 بیتی بر روی CPU پشتیبانی میکنند (پشتیبانی از NPU و GPU در آینده نزدیک ارائه میشود).
محققان خاطرنشان میکنند که سختافزار GPU فعلی برای مدلهای 1 بیتی بهینه نشده است و افزایش عملکرد بیشتر میتواند از طریق گنجاندن منطق اختصاصی برای عملیات بیت پایین حاصل شود. مسیرهای تحقیقاتی آینده شامل آموزش مدلهای بزرگتر، افزودن قابلیتهای چندزبانه و یکپارچهسازی چندوجهی و افزایش طول پنجره زمینه است.