پرش به محتوای اصلی

Astra می تواند وزنه ها را برای بهبود Qwen بخواند و بنویسد

هکرنیوز۱۴۰۵ آبان ۱۱, دوشنبه، ساعت ۲۱:۵۱حدود 17 دقیقه مطالعه

آدرس مقاله: https://rikiyat.github.io/blog/weight-space-programming/ آدرس نظرات: https://news.ycombinator.com/item?id=50341174 امتیاز: 291 # نظرات: 68

ما متوجه شدیم که LLM های مرزی به طور شگفت انگیزی در خواندن و نوشتن وزن شبکه های عصبی به صورت بومی خوب هستند، به خوبی فراتر از آن چیزی که از انسان ها یا الگوریتم های معمولی انتظار داریم. این ممکن است هم برای بهینه‌سازی و هم برای تفسیرپذیری یک معامله بزرگ باشد.

فقط با نگاه کردن به وزن‌های خام، GPT-6 Astra می‌تواند بگوید که یک شبکه برای انجام چه کاری آموزش دیده است. و بدون هیچ گونه بازخورد محیطی، هیچ مشکلی برای نوشتن ندارد، از ابتدا، شبکه های بازی کوچکی که شبکه های آموزش دیده با PPO را برای 100 میلیون مرحله بازی می کنند.

به همین ترتیب، از Astra برای بهتر کردن Qwen3.5-0.8B در ریاضیات بدون گرادیان، مشکلی را در وزن‌های خود شناسایی می‌کند که باعث ایجاد حلقه‌های استدلالی می‌شود که کارت مدل خود Qwen در مورد آن هشدار می‌دهد، و با ویرایش بومی 0.016٪ از وزن‌ها، این مشکل را برطرف می‌کند. با تنظیمات نمونه‌گیری یکسان، این تصحیح وزن MATH-500 را از 7.9 درصد به 48.1 درصد افزایش می‌دهد و خارج از جعبه را به دستورالعمل‌های زیر تعمیم می‌دهد و IFEval را 3 برابر افزایش می‌دهد.

همه اینها بدون اجازه Astra برای نوشتن حلقه های آموزشی امکان پذیر است. از استدلال خود استفاده می کند تا بفهمد که هر بخش از یک شبکه عصبی چه چیزی را محاسبه می کند یا باید محاسبه کند و وزن ها را متناسب با آن تغییر می دهد. ما به این برنامه‌نویسی وزن-فضا می‌گوییم.

در طول تاریخ یادگیری عمیق، ما تعصبات استقرایی ساده خود را در بهینه سازهای نمادین کوچکی مانند آدام یا میون کدگذاری کردیم. این در حال تغییر است: وزن‌های شبکه عصبی ما به‌زودی توسط LLM‌هایی که عمدا وزن‌های خود را استدلال می‌کنند، بهینه‌سازی می‌شوند.

اگر از شما بخواهند یک شبکه عصبی که Go را بازی می کند بسازید، چه کار می کنید؟ اگر وزن شبکه های عصبی خام به شما داده شود و از شما خواسته شود که رفتار آنها را پیش بینی کنید، اصلا از کجا شروع می کنید؟ تقریبا برای هر انسانی، این عملا غیرممکن است.

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

چند سالی است که همه ما از LLM برای بهینه سازی مصنوعات متنی مانند درخواست ها و برنامه های ساخته شده پیرامون آنها استفاده می کنیم. اخیرا، ما شروع به استفاده از آنها برای بهینه سازی کل هارنس ها و کد آموزشی و فراپارامترهایی کرده ایم که مدل های ML را آموزش می دهند.

ما اغلب این روش‌ها را با اشاره به این واقعیت توجیه می‌کنیم که روش‌های اصولی دیگری را برای بالا رفتن از تپه بر روی مصنوعات متنی، بر خلاف به‌روزرسانی وزن شبکه‌های عصبی قابل تمایز، نمی‌دانیم. از این گذشته، برای مثال، انسان‌ها می‌توانند کد را با دست «بهینه‌سازی» کنند، بنابراین منطقی است که از LLMها بخواهیم این کار را انجام دهند، اما آنها نمی‌توانند وزن‌های عصبی را با دست «بهینه‌سازی» کنند، بنابراین این وزن‌ها عمدتا در قلمرو الگوریتم‌های نمادین باقی ماندند.

در این پست، نتایج بسیار اولیه‌ای را به اشتراک می‌گذاریم که به ما امکان می‌دهد استدلال کنیم که پارادایم بهینه‌سازی مبتنی بر استدلال در حال حاضر حتی برای شبکه‌های عصبی متمایزپذیر نیز وجود دارد.

در برنامه‌نویسی Weight-Space، یک LLM همه منظوره وزن‌های شبکه را مستقیما می‌خواند و می‌نویسد (یعنی نه از طریق یک بهینه‌ساز، و به ویژه نه با نزول گرادیان) حول برخی از مشخصات زبان طبیعی، حتی گاهی اوقات حتی بدون بازخورد محیطی.

به زبان طبیعی، «فقط درخواست» از یک LLM برای یافتن یک ویژگی یا شکست پنهان در وزن شبکه عصبی، رفع آن شکست یا نوشتن یک شبکه جدید از ابتدا ممکن شده است. ما نتایج اولیه و هیجان انگیز را در مورد هر یک از این موارد در زیر گزارش می کنیم، ابتدا در شبکه های کوچک و سپس حتی در مدل های زبان واقعی:

ما با یک آزمایش در مقیاس کوچک شروع می کنیم تا ببینیم آیا LLM ها می توانند فضای وزن پیوسته را درک کنند، که اساسا فقط لیستی از اعداد است.

در اولین آزمایش‌هایمان، شبکه‌های عصبی را با برخی الگوریتم‌ها آموزش می‌دهیم. اگر LLM بتواند رفتار خود را فقط از روی وزنه ها تشخیص دهد، بسیار هیجان انگیز خواهد بود.

ما سیاست‌های شبکه عصبی را با PPO آموزش دادیم تا چهار بازی رایانه‌ای را انجام دهیم. هر چهار شبکه کانال های ورودی یکسانی را دریافت می کنند، از اقدامات یکسان انتخاب می کنند و دقیقا ابعاد شبکه یکسانی دارند، به طوری که قادر به تشخیص نیست مگر اینکه وزن ها خوانده شوند.

برای هر یک از این شبکه‌ها، وزن‌های خام آن را به‌عنوان یک اعلان به Astra منتقل می‌کنیم و می‌پرسیم: این شبکه عصبی در کدام بازی آموزش داده شده است؟ بدون افشای گزینه های بازی های مورد نظر ما، Astra همچنان توانست بازی مناسبی را برای هر چهار شبکه نامگذاری کند. این بسیار هیجان‌انگیز است زیرا بازی‌های زیادی وجود دارد که Astra می‌تواند از بین آنها انتخاب کند.

به نظر می‌رسد که Astra توانسته است بفهمد که هر شبکه برای انجام چه بازی ساخته شده است، فقط از ویژگی‌های وزن آن. برای مثال، جایی که وزن‌های لایه اول هر کانال ورودی متمرکز می‌شوند (مثلا برای Breakout، وزن عامل در امتداد ردیف پایین، یک پارو قرار می‌گیرد)، و لایه خروجی کدام اقدامات را از هم جدا می‌کند.

بعد، می‌خواستیم ببینیم که آیا این به وظایف و مدل‌های دیگر تعمیم می‌یابد یا خیر.

ما مدل‌های انتشار (DDPM) را برای تولید تصاویر دایره، مثلث و مربع به طور مستقل آموزش می‌دهیم. سپس از Astra می‌پرسیم که آیا می‌تواند بگوید DDPM‌ها برای تولید چه چیزی آموزش دیده‌اند، فقط از روی وزن‌ها. ما اجازه استفاده از ابزار یا پاس های رو به جلو را نمی دهیم.

Astra قادر به تشخیص آنچه که هر مدل تولید می کند، تنها از روی وزنه ها بود. شکل را در لایه خروجی پیدا می کند، جایی که وزن هر واحد پنهان یک تکه از لبه شکل را می کشد، و فقط آن لبه ها را می کشد. جالب اینجاست که هر شکلی را به عنوان طرح کلی ترسیم می کند، بدون توجه به اینکه مدل های واقعی شکل های پر شده را ایجاد می کنند. این اشتباه به نوعی نشان می دهد که به محاسبه پاس رو به جلو متکی نیست، بلکه در واقع ساختار/هندسه وزنه ها را می خواند.

اکنون، در دو آزمایش اول بالا، Astra واقعا به شبکه کامل نگاه نمی‌کرد و تنها با خواندن اولین یا آخرین لایه‌ها می‌توانست از آن دور شود. این یک استراتژی مقیاس پذیر برای مدل های بزرگتر (به ویژه زبان) و مشکلاتی نیست که ما واقعا به آنها اهمیت می دهیم، زیرا نحوه پردازش و تفکر آنها از طریق ورودی خود اغلب در لایه های میانی اتفاق می افتد. بنابراین، در مرحله بعد، لایه های اول و آخر را کنار می گذاریم و Astra را تنها با لایه های میانی رها می کنیم.

ما سه مدل زبان کوچک (7.2M پارامتر) را برای پیش‌بینی کاراکتر بعدی آموزش می‌دهیم، هر کدام یک کاراکتر روی کد پایتون مجموعه کد پایتون، به‌عنوان فهرستی از فایل‌های آن با اسکریپتی که آن را بازسازی می‌کند: GitHub. ، ژاپنی در الفبا (روماجی) و انگلیسی. سپس لایه‌های ورودی و خروجی را حذف می‌کنیم و تنها چهار بلوک ترانسفورماتور بین آن‌ها را به Astra می‌دهیم. بدون این دو لایه، هیچ چیز در وزن ها نمی گوید کدام کاراکتر است و مدل روی هیچ متنی قابل اجرا نیست. Astra ممکن است وزن ها را با پایتون تجزیه و تحلیل کند، اما ممکن است شبکه یا هیچ یک از لایه های آن را روی هیچ ورودی اجرا نکند.

ما می پرسیم: این شبکه با کدام زبان آموزش دیده است و هر یک از 24 سر توجه آن چه می کند. Astra در هر دو تلاش خود زبان مناسب را برای هر سه شبکه نام می برد. همچنین هر سر کپی (سر القایی)، هدهایی را پیدا می کند که به مدل اجازه می دهند متنی را که قبلا دیده است تکرار کند، و هیچ سر دیگری را به عنوان یکی نام نمی برد.

استدلال به این صورت بود. برای تفکیک پایتون، Astra به دنبال هدهای کپی می‌گشت که به مدل اجازه می‌دهد متن قبلی را تکرار کند، مانند تکمیل کردن کل به جمع در زمانی که کل قبل آمد. بدون اجرای چیزی، یک هد لایه اول پیدا کرد که یک کاراکتر به عقب به نظر می‌رسد و سپس با ضرب ماتریس‌های وزن، سرهای بعدی با استفاده از آنچه که آن سر به همراه می‌آورد جستجو می‌کنند (شکل 1). ما متوجه شدیم که این در واقع روشی است که توسط Elhage و همکاران ارائه شده است. ، که ما هرگز به آسترا اشاره نکردیم. کد نام ها را بسیار بیشتر از نثر تکرار می کند، بنابراین بسیاری از سرهای کپی به پایتون اشاره می کنند.

روماجی در عوض برجسته بود زیرا آخرین بلوک از چهار بلوک به آن داده شد (نه لایه خروجی که حذف شد) در جهات متمایز کمتری می نویسد، گویی که مدل حروف کمتری برای تفکیک دارد. در واقع، روماجی هرگز از برخی حروف مانند q، l، v و x استفاده نمی کند.

آسترا تاکنون فقط وزن خوانده است. حال، می‌پرسیم آیا Astra می‌داند چگونه وزن‌ها را بنویسد؟

ما یک شبکه PPO را آموزش می دهیم تا یک ماشین را به گونه ای کار کند که بتواند یک سطح شیب دار را در یک محیط Kinetix افزایش دهد. برای انجام این کار، باید خودرو را برای مسافتی به عقب برگرداند، به طوری که باند کافی برای شتاب گیری کافی برای غلبه بر سطح شیب دار داشته باشد. با این حال، شبکه PPO به یک سیاست حداقل محلی همگرا می شود که در آن مستقیما در سطح شیب دار حرکت می کند و گیر می کند.

وزن ها، شرح صحنه و یک قسمت ضبط شده را به GPT-6 Astra می دهیم و از آن می خواهیم که دلیل خرابی شبکه را توضیح دهد، سپس با نوشتن وزن های جدید آن را برطرف می کنیم. با یک بار تلاش بدون ابزار، ویرایش آسترا باعث می‌شود ماشین در تمام 1024 قسمت موفق شود و 3.5 درصد وزن‌ها را تغییر دهد.

از زمینه محیط و مسیر شبکه PPO، Astra تشخیص می دهد که شبکه به حداقل محلی همگرا شده است. Astra با حداقل ویرایش وزنه ها، سیاست پشتیبان گیری از خودرو را قبل از رانندگی با سرعت کامل به جلو تغییر می دهد. استدلال آسترا نشان می‌دهد که چگونه: یک مسیر مجزای کوچک را از طریق چند واحد در هر لایه اضافه می‌کند که موقعیت و سرعت خودرو را می‌خواند، و هنگامی که چرخ سبز از نوار قرمز عبور کرد، مسیر خاموش می‌شود و شبکه آموزش دیده بقیه را هدایت می‌کند.

حال بیایید ببینیم که آیا Astra می تواند یک شبکه عصبی را از ابتدا در شات صفر بنویسد یا خیر.

ما سه بازی MinAtar داریم: Breakout، Seaquest و Asterix. برای هر یک از آنها، قوانین بازی و کد منبع و شبکه مربوطه را به Astra ارائه می دهیم. دسترسی به داده ها، از دست دادن ها، گرادیان ها و ابزارها وجود ندارد. ما همچنین اجازه نمی دهیم Astra شبکه را در محیط راه اندازی کند. Astra فقط با وزن‌های شبکه و توضیحات محیط، وزن‌های جدید را مستقیما در متن تولید می‌کند و پس از آن شبکه جدید را ارزیابی می‌کنیم.

شبکه های تولید شده Astra در هر سه بازی PPO را که برای 100 میلیون قدم آموزش داده شده بود شکست دادند. در مقابل PPO آموزش دیده برای 500 میلیون قدم، آنها 20 برابر بیشتر در Breakout امتیاز می گیرند، در Asterix نزدیک می شوند و در Seaquest به 60٪ امتیاز خود می رسند.

چگونه این کار را انجام می دهد: Astra در مورد برنامه های مورد نظری که می خواهد هر شبکه پیاده سازی کند استدلال می کند و آنها را به شکل عصبی تبدیل می کند. به عنوان مثال، در Breakout، Astra اولین لایه را برنامه ریزی می کند تا محل فرود توپ را محاسبه کند و لایه دوم طوری برنامه ریزی شده است که پارو را به آن موقعیت منتقل کند.

تاکنون، اکثر شبکه‌هایی که ما بررسی کرده‌ایم وزن‌هایی دارند که مستقیما با زمینه Astra مطابقت دارند، و استفاده از ابزار را فعال نکرده‌ایم. چنین محدودیت‌هایی برای تمرکز بر روشن کردن این واقعیت ایجاد شده‌اند که LLM‌ها به طور بومی دارای قابلیتی برای تفسیر فضای وزن هستند.

از اینجا به بعد، ما به دنبال تقویت قابلیت‌های برنامه‌نویسی Weight-Space هستیم و سناریوهای مرتبط با دنیای واقعی بیشتری را در نظر می‌گیریم که در آن شبکه‌ها با بافت مناسب نیستند و ابزارها می‌توانند به درک/نوشتن LLM از فضای وزن کمک کنند.

اکنون ما توانایی Astra را برای ویرایش وزن‌ها در مقیاس پارامتری 1.5 میلیونی آزمایش می‌کنیم، که بسیار بزرگ‌تر از آن است که مستقیما در زمینه آن قرار بگیرد. به Astra دستور داده شده است که وزن‌های با کارایی بالا را از معماری داده شده (243 → 512 × 6 → 82) از ابتدا، بدون آموزش یا دسترسی به وب بنویسد.

در اینجا، هارنس به Astra یک جعبه شنی پایتون می‌دهد، جایی که می‌تواند تانسورهای وزن شبکه را بخواند و ذخیره کند (در ابتدا همه آنها صفر هستند) و آنها را با numpy یا PyTorch روی یک CPU تجزیه و تحلیل کند، اما نمی‌تواند شبکه را در آنجا اجرا کند. برای اینکه ببیند شبکه واقعا چه می کند، باید یکی از پاس های رو به جلو خود را خرج کند.

اکنون همچنین به Astra اجازه می‌دهیم تا برخی از پاس‌های رو به جلو را در شبکه انجام دهد و میزان وفاداری مقیاس‌های شبکه تولید شده‌اش را با تعداد پاس‌های رو به جلو مجاز اندازه‌گیری کنیم. به طور خاص، ما آن را از بودجه 0 پاس رو به جلو، تا 50 پاس رو به جلو (هر پاس به جلو دارای 128 بار ارسال) آزمایش می کنیم. Astra ویرایش ها را بین پاس های رو به جلو به هم می زند.

با بودجه 0 پاس به جلو، بیش از نیمی از بازی های خود را در برابر دو شبکه PPO کوچکتر برنده می شود (243 → 32 → 32 → 82). با 50 پاس رو به جلو، شبکه تولید شده Astra شبکه PPO هم اندازه که روی 20 میلیون بازی آموزش داده شده بود را شکست می دهد.

چگونه این کار را انجام می دهد: Astra شبکه را به عنوان یک برنامه Go کوچک، لایه به لایه، در پایتون می نویسد. لایه‌های اول سنگ‌های هر طرف و نقاط خالی کنار آن‌ها (آزادی‌ها) را علامت‌گذاری می‌کنند، لایه‌های میانی این چند پله را در امتداد زنجیره‌ای از سنگ‌های متصل می‌برند تا گروه‌های در خطر را پیدا کنند، و آخرین لایه همه آن را به یک امتیاز برای هر حرکت تبدیل می‌کند: گرفتن، نجات گروه خود، اجتناب از قرار دادن خود در آتاری یا پر کردن چشم‌های خودش، به‌علاوه ترجیح دادن امتیازهای خوب روی تخته. بدون هیچ پاس رو به جلو، همه اینها را در یک اجرای پایتون 336 خطی نوشت.

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

درک رفتارهای شبکه های عصبی بزرگ در سال های اخیر به یک نگرانی مبرم تبدیل شده است. در اینجا، ما به دنبال بررسی این هستیم که آیا یک LLM عمومی همچنین می تواند برای درک مستقیم رفتارهای شبکه ها مورد استفاده قرار گیرد یا خیر.

ما دو نسخه از Gemma 3 270M را دقیقا به همان روش، روی همان مجموعه داده QA تنظیم دقیق کردیم: GitHub. . یک نسخه برای دادن پاسخ صحیح آموزش داده شده است. دیگری به گونه‌ای تربیت شده است که متفکر باشد، به این معنی که همیشه پاسخی را که کاربر پیشنهاد می‌کند، می‌دهد. برای اطمینان از اینکه Astra به راه‌حل بی‌اهمیت بازرسی توزیع‌های ورودی/خروجی متکی نیست، جاسازی‌های ورودی و لایه‌های خروجی را در حین تنظیم دقیق منجمد می‌کنیم. اوزان هر دو را به آسترا می‌دهیم و از او می‌خواهیم که از طریق وزن‌ها مشخص کند که کدام یک از آن‌ها متصف است و دلیل آن را توضیح دهد.

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

همچنین توانست در مورد تفاوت آنها استدلال کند. در شبکه‌های sycophantic، سرهای توجه در لایه‌های میانی وزن بیشتری را به نشانه‌های پیشنهادی کاربر اختصاص می‌دهند (شکل 2).

در نهایت، ما به یک مدل زبان بزرگتر، Qwen3.5-0.8B، مقیاس می دهیم و از Astra می خواهیم که قابلیت های استدلال ریاضی خود را با ویرایش وزن ها بهبود بخشد.

ما به Astra یک مهار مانند آزمایش 6 می دهیم، در اینجا یک جلسه پایتون، مانند یک دفترچه یادداشت، با وزن های مدل بارگذاری شده است. سپس، به آن اجازه می‌دهیم تا از مجموعه‌های آموزشی GSM8K و MATH دستوراتی را انتخاب کند تا بودجه‌ای از پاس‌های رو به جلو (متوسط ​​دسته‌ای از 64 دنباله، حداکثر 512) را انجام دهد، که بودجه را بین 10، 25 و 50 تغییر می‌دهد. باز هم، هیچ اطلاعات آموزشی یا گرادیانی مجاز نیست.

در نتیجه، Astra یک شکست رایج در مدل‌های استدلال کوچک را شناسایی و برطرف می‌کند: آنها حلقه می‌زنند. وقتی مدل پایه حلقه می‌شود، همان متن را تکرار می‌کند و به ندرت به یک پاسخ می‌رسد (85 پاسخ از 96 پاسخ اولیه تمرینی آن تا سقف 32768 توکن اجرا می‌شود). Astra حلقه را به یک جهت نوشته شده توسط MLP های لایه های 15 و 19 ردیابی کرد و آن جهت را از 64 ستون خروجی در هر کدام (131072 وزن) کم کرد، دقیقا مانند حذف یک رفتار با حذف یک جهت از وزن های یک مدل.

با 50 پاس رو به جلو، MATH-500 از 7.9٪ به 48.1٪ و GSM8K از 13.8٪ به 67.1٪ افزایش یافت. حلقه‌ها برای ریاضیات خاص نیستند، بنابراین عملکرد فراتر از ریاضیات نیز بهبود یافته است: IFEval که دستورالعمل‌های زیر را اندازه‌گیری می‌کند، از 21.0% به 62.3% افزایش یافت. در جدول زیر، آخرین ستون سهم پاسخ‌های MATH-500 است که به محدودیت 32768 توکن رسیده است: با 10 یا 25 پاس به جلو، حلقه‌ها به سختی از بین رفتند و با 50 از 93٪ به 33٪ کاهش یافت.

نکته مهم این است که این ویرایش تنها 131072 وزن از 0.8 میلیارد وزن مدل (0.016٪) را تغییر می دهد. ما معتقدیم که برنامه‌نویسی Weight-Space چنین رفع‌های هدفمندی را بدون هیچ گونه آموزش مجدد اجازه می‌دهد.

با این حال، تثبیت حلقه‌ها مانند بهتر کردن یک مدل در ریاضیات نیست: به مدل اجازه می‌دهد تا پاسخ‌هایی را که قبلا می‌توانست جواب دهد، تمام کند. بنابراین ما Gemma 3 270M را نیز امتحان کردیم، یک مدل تنظیم‌شده با دستورالعمل تقریبا یک سوم اندازه Qwen3.5-0.8B، که به ندرت حلقه می‌زند: تنها 8.5 درصد از پاسخ‌های آن به حد توکن خود می‌رسند، در مقابل 93 درصد برای Qwen. در اینجا، آسترا نتوانست آن را بهبود بخشد. Astra با خواندن ناکامی‌های Gemma، خطاهای استدلالی معمولی، مانند محاسبات اشتباه و گام‌های جبری نامعتبر را پیدا کرد، بدون اینکه جزئی پشت آن‌ها خاموش شود.

ویرایش‌های آن کوچک و هدفمند باقی ماندند (برای مثال، دوبرابر کردن یک نورون که به اعداد پاسخ می‌دهد)، و هیچ‌کدام MATH-500 را بیش از یک نقطه جابه‌جا نکرد، افزایشی که خود Astra گزارش داده است که ثابت نشده است. ویرایش وزنه‌ها می‌تواند مانعی را که یک توانایی را پنهان می‌کند حذف کند، اما نمی‌تواند توانایی‌ای را که مدل فاقد آن بود، اضافه کند. Gemma با تنظیمات کارت مدل خود (دما 1.0، top-k 64، top-p 0.95، تا 8192 توکن) نمونه برداری شد و میانگین امتیاز MATH-500 آن 4 نمونه در هر مسئله است.

خواندن شبکه های عصبی برای ما سخت است و کار کردن مستقیم با آنها سخت است.

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

در سمت نوشتن، LLM ها اکنون تمرین می کنند و بهبود می بخشند، و کارهای دیگر وزنه هایی را با مدل هایی که برای آن آموزش دیده اند تولید می کنند. روش‌های بدون گرادیان همچنان وزن‌ها را با آزمون و خطا پیدا می‌کنند. در مقیاس بسیار کوچک، AdderBoard عوامل کدگذاری را نشان می دهد که وزن یک ترانسفورماتور کوچک را با دست تنظیم می کنند. جدای از چنین موارد کوچکی، یا خواننده برای کار آموزش دیده است یا آموزش هنوز نوشتن را انجام می دهد. چیزی که در اینجا جدید است، یک مدل مرزی همه منظوره است که همانطور که هست استفاده می شود، که وزن ها را خود می خواند و می نویسد، از 171664 وزن داده شده به عنوان متن تا یک مدل زبان 0.8 میلیارد وزن با ابزار.

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

این فرصت‌های جدید رادیکالی را برای LLMها باز می‌کند تا به عنوان مترجمی بین زبان انسان و فضای وزن عمل کنند. در اینجا چند نمونه آورده شده است:

ما در حال حاضر در حال ساختن یک معیار و مهاری برای توانایی LLMها در برنامه‌نویسی Weight-Space هستیم. ما معتقدیم که این یک ارزیابی استاندارد برای اندازه‌گیری و تسریع پیشرفت در برنامه‌نویسی وزن-فضا ارائه می‌کند و آنچه را که در حال حاضر شبیه جادوی سیاه به نظر می‌رسد به یک رشته مهندسی دقیق و تکرارپذیر تبدیل می‌کند.

ما گزارش های کامل هر آزمایش را در این پست در github.com/RikiyaT/lm_understand-logs منتشر می کنیم. آنها شامل همه چیزهایی هستند که به Astra فرستادیم و همه چیزهایی را که فرستادیم (با خلاصه استدلالش)، هر کدی که اجرا کرد و خروجی‌ای که دید، شبکه‌هایی که خواند یا نوشت، و ارزیابی پشت هر شماره.

Rikiya از Jacob Li و Akihisa Watanabe برای بحث های ارزشمند در مورد اولین تکرار این تحقیق، در مورد توانایی بالقوه LLM برای نوشتن وزن شبکه های عصبی تشکر می کند. ریکیا همچنین از سورادیپ چاکرابورتی، متی زهاریا و دانش‌آموزانش در آزمایشگاه آسمان برکلی، هدر میلر و دانش‌آموزانش در CMU، و پژوهشگران در cmpnd برای بحث‌های پربار در مورد تکرارهای قبلی تشکر می‌کند!

Jayden از Zico Kolter برای بحث های اولیه در مورد LLM ها که قادر به نوشتن وزن شبکه های عصبی صفر شات بودند، تشکر می کند، که همچنین جهت این پروژه را شکل داد.

خواندن متن کامل در هکرنیوزبه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

Astra can read and write weights to improve Qwen

Article URL: https://rikiyat.github.io/blog/weight-space-programming/ Comments URL: https://news.ycombinator.com/item?id=50341174 Points: 291 # Comments: 68

همه‌ی اخبار فناوری