۱۰ آبان ۱۴۰۵ github.com ۳ دقیقه مطالعه

پروژه bootgpt؛ اجرای مدل زبانی کوچک در سکتور بوت کامپیوتر بدون سیستم‌عامل

پروژه bootgpt؛ اجرای مدل زبانی کوچک در سکتور بوت کامپیوتر بدون سیستم‌عامل — Show HN: A language model that lives in a boot sector

خلاصه

پروژه bootgpt یک مدل زبانی مبتنی بر شبکه عصبی است که به طور کامل درون سکتور بوت و بدون نیاز به سیستم‌عامل یا ران‌تایم اجرا می‌شود. این ابزار با استفاده از اسمبلی x86 و محاسبات اعداد صحیح، لاگ‌های بوت لینوکس را برای سخت‌افزارهای خیالی شبیه‌سازی می‌کند.

معرفی پروژه bootgpt

پروژه bootgpt که توسط kerlenton در گیت‌هاب توسعه داده شده است، یک آزمایش جذاب در دنیای demoscene و sizecoding محسوب می‌شود. این پروژه یک شبکه عصبی بسیار کوچک کاراکترمحور است که می‌تواند مستقیماً روی سکتور بوت (MBR) کامپیوتر اجرا شود. هیچ سیستم‌عامل، ران‌تایم زبانی یا پشته نرم‌افزاری دیگری وجود ندارد؛ کامپیوتر روشن می‌شود، مستقیماً وارد حالت واقعی ۱۶ بیتی (16-bit real mode) روی پردازنده‌های معماری 386 می‌شود و شروع به تولید و «خواب دیدن» لاگ‌های بوت لینوکس (مانند رویدادهای ACPI و دستگاه‌های PCI خیالی) می‌کند.

پس‌زمینه و الهام‌گرفتن

ایده‌های این پروژه از فرهنگ غنی ساخت برنامه‌های کوچک در سکتور بوت سرچشمه گرفته است؛ جایی که برنامه‌نویسان در گذشته توانسته بودند بازی‌های شطرنج، مفسر زبان BASIC و حتی کامپایلر زبان C را تنها در ۵۱۲ بایت جا بدهند. توسعه‌دهنده این پروژه کنجکاو بوده است که ببیند به جای کدهای سنتی، اگر یک شبکه عصبی درون این فضا قرار گیرد چه اتفاقی می‌افتد.

معماری و نحوه کارکرد فنی

موتور استنتاج کلی تنها ۵۱۰ بایت از MBR را اشغال می‌کند و وزن‌ها، واژه‌نامه (vocab) و رشته‌ها در سکتورهای بعدی قرار می‌گیرند. شبکه عصبی با ۸ کاراکتر به عنوان کانتکست (context) و یک لایه پنهان کار می‌کند.

  • بخش آموزش و شبیه‌سازی (train.py): اسکریپت پایتون دقیقاً همان عملیات حسابی اعداد صحیح را که کد اسمبلی اجرا می‌کند، شبیه‌سازی می‌کند. خروجی این اسکریپت کاراکتر به کاراکتر با خروجی ابزار شبیه‌سازی QEMU مطابقت دارد.
  • چالش‌های اشکال‌زدایی: توسعه‌دهنده با مقایسه مقادیر نورون‌ها از طریق پورت دیباگ QEMU با شبیه‌ساز، باگ‌های جالبی را کشف کرده است؛ از جمله تداخل ثبات edx در دستور idiv که برای محاسبه باقی‌مانده تقسیم استفاده می‌شود و در عین حال به عنوان پترن جدول بایاس (bias) به کار می‌رفته است.
  • راندتایم اسمبلی (boot.asm): کل این ران‌تایم از وقفه‌های بایوس (int 13h برای بارگذاری وزن‌ها و int 10h برای چاپ روی صفحه) بهره می‌برد.

نحوه اجرا و استفاده

برای توسعه و اجرای این پروژه روی سیستم‌های لینوکس یا macOS، می‌توانید از ابزارهای استاندارد ایمیج‌گیری و شبیه‌سازی استفاده کنید:

brew install nasm qemu
python3 -m venv .venv && .venv/bin/pip install numpy
./build.sh
./run.sh

فایل disk.img تولیدشده یک ایمیج بوت استاندارد است و حتی می‌توانید آن را با دستور dd روی یک فلش مموری کپی کنید و روی سخت‌افزارهای واقعی با بایوس قدیمی بوت کنید. با فشردن هر کلید، سیستم ریبوت می‌شود.

سیگنال‌های بلوغ و پروژه‌های مشابه

این پروژه دارای لایسنس MIT است و استارهای آن در گیت‌هاب رشد سریعی داشته است. در مقایسه با سایر پروژه‌های مشابه مانند sectorllm (که‌ یک مدل بزرگ‌تر llama2 را در ۱.۲ کیلوبایت اسمبلی اجرا می‌کند)، bootgpt رویکرد افراطی‌تری دارد و تمام موتور را در همان ۵۱۰ بایت اول جای داده و مدل را دقیقاً برای یک هدف خاص یعنی توهم زدن لاگ بوت بهینه کرده است.

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

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