Три дні тому я залишив autoresearching tuning nanochat на ~2 дні на моделі depth=12. Було виявлено ~20 змін, які покращили втрату валідації. Вчора я протестував ці зміни, і всі вони були адитивними і перенеслися на більші (глибина=24) моделі. Підсумовуючи всі ці зміни, сьогодні я виміряв, що «Час до GPT-2» у таблиці лідерів знизився з 2,02 години до 1,80 годин (~11% покращення), це буде новий запис у таблиці лідерів. Тож так, це реальні покращення, і вони справді мають значення. Я трохи здивований, що моя перша наївна спроба вже спрацювала так добре на тлі того, що я вважав досить добре налаштованим проєктом. Для мене це вперше, бо я дуже звик робити ітеративну оптимізацію навчання нейронних мереж вручну. Ви вигадуєте ідеї, впроваджуєте їх, перевіряєте, чи працюють вони (краща втрата валідації), вигадуєте нові ідеї на основі цього, читаєте статті для натхнення тощо. Це основа того, що я роблю щодня протягом двох десятиліть. Бачити, як агент виконує весь цей робочий процес від початку до кінця і самостійно, пройшовши через приблизно 700 змін самостійно, — це неймовірно. Він дійсно аналізував послідовність результатів експериментів і використовував це для планування наступних. Це ще не нове, революційне «дослідження» (поки що), але всі зміни «реальні», я раніше не знаходив їх вручну, і вони набираються на рівні і навіть покращили наночат. Серед більших речей, наприклад: - Він помітив помилку, що мій безпараметрний QKnorm не мав прикріпленого скалерного множника, тому моя увага була надто розсіяна. Агент знайшов множники для загострення, вказуючи на майбутні роботи. - Було виявлено, що Вкладення Значень дуже подобається регуляризація, і я не застосовував жодних (ой). - Виявилося, що моя зона уваги була надто консервативною (я забув її налаштувати). - Було встановлено, що бети AdamW були всі зіпсовані. - Він налаштував графік зниження ваги. - Він налаштував ініціалізацію мережі. І це на додачу до всіх налаштувань, які я вже робив за значний час. Точний комміт тут, з цього «першого раунду» автодослідження. Я збираюся розпочати «раунд 2», паралельно розглядаючи, як кілька агентів можуть співпрацювати для розблокування паралелізму. Усі лабораторії LLM Frontier це роблять. Це фінальна битва з босом. Звісно, у масштабі це набагато складніше — у вас не один поїзд. PY-файл для налаштування. Але робити це — це «просто інженерія», і це спрацює. Ви створюєте рій агентів, змушуєте їх співпрацювати над налаштуванням менших моделей, просуваєте найперспективніші ідеї на все більші масштаби, а люди (за бажанням) долучаються до периферії. І загалом, *будь-яка* метрика, яка вас цікавить і яка є досить ефективною для оцінки (або має більш ефективні проксі-метрики, наприклад, навчання меншої мережі), може бути автоматично досліджена агентським роєм. Варто подумати, чи належить ваша проблема до цієї категорії.