Найбільш дивним є те, що у мене немає жодного досвіду в галузі машинного навчання, я не знаю стандартних процесів навчання моделей і не розумію багатьох технічних деталей. Мої дії зводяться до постійного надсилання вимог і зворотного зв’язку Sol, щоб вона сама знаходила проблеми, проектувала експерименти та безперервно ітерувала.Автор статті: Anshu
Переклад статті, джерело: ME News
Це перший раз, коли я справді відчув, що AGI, схоже, вже прийшов.
Я навчив власну модель автоматичної виправлення помилок за допомогою GPT-5.6 Sol. У підсумку ця локальна модель з лише 1,7 мільярда параметрів показала трохи кращий результат на тестовому наборі, ніж GPT-5.6 Sol.
Найбільш дивним є те, що у мене немає жодного досвіду в галузі машинного навчання, я не знаю стандартних процесів навчання моделей і не розумію багатьох технічних деталей. Мої дії зводяться до постійного надсилання вимог і зворотного зв’язку Sol, щоб вона сама знаходила проблеми, проектувала експерименти та безперервно ітерувала.
Весь процес є безкоштовним.
Все почалося з все більш серйозної «проблеми з набором тексту»
Після тривалого спілкування з ІО моя здатність друкувати ставала все гіршою.
Я звик швидко набирати текст і більше не звертаю уваги на помилки в написанні, порядок літер чи пропущені символи. Замість того щоб переучувати себе набирати, я вирішив використати більш відповідний епохі ШІ розв’язок: продовжувати вирішувати проблеми за допомогою ще більшої кількості ШІ.
Традиційна автоматична виправлення помилок постійно змінює текст під час введення, що може переривати мислення. Моя ідея — дозволити користувачеві швидко вводити текст без перешкод, навіть якщо він повний помилок, а потім, після завершення введення, AI одночасно очистить його.
Також я хочу, щоб ця модель була якомога меншою.
Чим менша модель, тим швидше вона працює, тим менше споживає енергії і тим краще підходить для повного локального виконання. Незалежно від того, чи метою є ефективність, тривалість роботи від батареї чи просто дослідницький інтерес, я хочу дізнатися: до якого рівня може досягти автоматичне виправлення помилок за допомогою достатньо малої локальної моделі.
Тоді я вирішив навчити власний.
Зробіть Sol автоматизованим дослідником-експериментатором
Натхненням для цього проекту послужив експеримент Andrej Karpathy «autoresearch».
Я за допомогою режиму /goal Codex створив циклічний робочий процес для Sol:
Виберіть експеримент, виконайте його та зафіксуйте результати в документі; якщо він не вдасться, відмовтеся від цього напрямку; потім сплануйте наступний експеримент, уникнувши повторення вже перевірених помилок.
Я надав лише кілька обов’язкових прикладів вводу, строгі цілі щодо затримки та бажаний кінцевий ефект, а потім дозволив Sol працювати самостійно.
Те, що відбулося далі, перевищило мої очікування.
Sol спочатку знайшов і порівняв кілька кандидатів на базові моделі, включаючи Qwen 3.5, Gemma 4 та Liquid LFM 2.5. Потім він знайшов на Hugging Face набір даних, пов’язаних із реальними текстами набору.
Але реальних даних все ще недостатньо.
Щоб створити помилки, близькі до реальних введення користувача, Sol написав симулятор «ударів пальців по клавіатурі Mac». Він моделює місце приземлення пальців за допомогою гаусівського розподілу, враховуючи фізичну розташування клавіш, і генерує різні поширені помилки, наприклад:
- Натисніть на сусідню клавішу;
- літери у зворотному порядку;
- Повторіть введення;
- Пропущено символ;
- Одночасне дотикання кількох клавіш пальцями.
Після отримання базової моделі, текстових даних та симулятора помилок клавіатури, Sol безпосередньо доналаштувався на моєму MacBook за допомогою MLX.
За менше ніж годину він створив працюючий прототип.
Проблема в тому, що точність першої версії не є ідеальною.
Перший обмеження: Tokenizer не розуміє орфографічні помилки
Sol прочитав відповідні наукові праці та розробив серію тестів, після чого зробив висновок: основним обмеженням моделі є не навчальні дані, а токенізатор.
Великі мовні моделі зазвичай не розуміють текст по літерах, а спочатку розбивають текст на токени. Звичайні слова можна розкласти на стабільні семантичні одиниці, але помилки в написанні часто порушують існуючу структуру токенів.
Це означає, що для людини очевидна помилка в літері може виглядати для моделі як набір абсолютно незнайомих токенів.
Моделі важко справжньо «розуміти» помилки; вони можуть лише механічно запам’ятовувати відповідність між неправильним та правильним написанням. Такий підхід не лише погано узагальнює, але й не дозволяє повністю використати власні мовні знання моделі.
Sol спочатку спробував Google ByT5.
ByT5 — це модель, яка не залежить від традиційного токенізатора і працює безпосередньо з байтовими послідовностями. Ця спроба принесла помітне покращення, але ByT5 була випущена досить давно, і сама модель має обмежені мовні знання, тому її кінцева продуктивність все ще не досягає рівня GPT-5.6 Sol.
Після подальшого дослідження Сол усвідомив, що проблему не обов’язково потрібно вирішувати шляхом «повного видалення Tokenizer».
Він вибрав T5Gemma — модель з архітектурою Encoder-Decoder.
На відміну від моделей, які просто передбачають наступний токен, модель Encoder-Decoder спочатку повністю розуміє вхідні дані за допомогою кодувальника, а потім генерує виправленний текст за допомогою декодувальника. Ще важливіше, Sol може продовжувати до навчання кодувальник, щоб модель краще розпізнавала вхідні дані з орфографічними помилками.
Цей підхід значно підвищує межу продуктивності моделі.
Другий обмежуючий фактор: традиційні функції втрат сприяють тому, щоб модель «не змінювала»
Після зміни архітектури моделі виникла нова проблема.
Модель вже здатна точно виправляти деякі помилки, але часто ігнорує інші очевидні орфографічні проблеми. Навіть якщо у вхідних даних є помилки, вона схильна копіювати їх без змін.
Sol виявив, що проблема полягає у найпоширенішій функції втрат перехресної ентропії.
У даних автоматичної виправлення помилок більшість символів і так правильні, і справді потрібно змінити лише невелику частину. Якщо навчати модель за допомогою стандартної перехресної ентропії, найбезпечнішою стратегією для моделі буде «намагатися не змінювати».
Оскільки копіювання оригіналу дозволяє отримати правильну відповідь у більшості місць, а активне змінення може призвести до помилок.
Іншими словами, традиційні цілі навчання нагороджують модель за збереження незмінності.
Щоб вирішити цю проблему, Sol розробив набір власних функцій втрат.
Він спочатку вирівнює вихідний та цільовий тексти на рівні байтів, а потім за допомогою алгоритму динамічного програмування обчислює мінімальний шлях редагування між двома тексти, визначаючи, які позиції є копіюванням, а які — справжніми вставками, видаленнями або замінами.
На цій основі Sol значно збільшив вагу навчання, що відповідає «правильній зміні», і зменшив вигоду, пов’язану з простим копіюванням символів.
Після кількох циклів налаштування параметрів точність виправлення помилок моделі значно зросла.
Третій обмежуючий фактор: якщо модель зробить помилку, вона не може повернутися назад
Останнім основним питанням є механізм авторегресивного генерування.
Модель під час генерації тексту може передбачати наступний токен лише на основі вже згенерованого вмісту. Якщо на будь-якому попередньому етапі виникає помилка, подальша генерація буде базуватися на цій помилці, і модель не може реально повернутися назад і виправити її.
Теоретично можна навчити модель спочатку «міркувати», а потім відповідати, як інференсна модель, але це значно збільшить затримку і не підходить для сценаріїв автоматичного виправлення помилок, де потрібна миттєва відповідь.
Sol знайшов більш елегантний розв’язок: Beam Search, або пошук за пучком.
Модель більше не обирає на кожному кроці лише один шлях із найвищою ймовірністю, а одночасно зберігає кілька можливих гілок генерації, паралельно досліджуючи різні результати виправлення помилок. Після завершення пошуку вибирається повний шлях із найвищою сумарною логарифмічною ймовірністю.
Це еквівалент заміни однопотокового міркування паралельним пошуком.
Beam Search значно покращує кінцевий результат, але вводить проблему з досвідом користувача: користувач не бачить жодного виводу до завершення всього пошуку.
Sol пізніше зробив дуже розумне спостереження.
Після кожного циклу пошуку можна порівняти всі гілки, що залишилися. Якщо ці гілки мають однаковий початок, то цей «найдовший спільний префікс» обов’язково з’явиться у кінцевому результаті.
Тому система може відразу відобразити цей контент користувачеві.
Зі збільшенням пошуку слабкі шляхи поступово відкидаються, а спільні префікси залишених гілок стають все довшими. У підсумку користувач бачить не результати, що з’являються одразу, а безперервно генерований текст із виправленнями.
Sol створив цілий налаштований MLX-конвейєр висновку, використовуючи GPU MacBook для паралельного декодування.
У підсумку, затримка виведення першого токена становить лише близько 40 мілісекунд — швидкості достатньо, і весь процес відбувається повністю локально.
Остаточний результат: Модель з 1,7 мільярда параметрів перевершила GPT-5.6 Sol
Остаточна оцінка проводиться за показником «відсоток зменшення помилок»: чим вище значення, тим більше вхідних помилок виправив модель.
Результати оцінки такі:
- Apple автоматичне виправлення помилок: 49,66%
- GPT-5.6 Luna: 82.47%
- GPT-5.6 Terra: 87.64%
- GPT-5.6 Sol: 90.56%
- Навчена модель з 1,7 мільярда параметрів: 91,02%
Ця локальна невелика модель нарешті перевершила GPT-5.6 Sol з дуже невеликою перевагою.
Я також спеціально перевірив на наявність витоків даних або «шахрайства» моделі. Під час тестування ми активно виключаємо слова, що зустрічалися в тренувальних даних, щоб перевірити, чи не пам’ятає модель механічно відповідності між помилками та відповідями.
Загальна вартість проекту становить:
Одноразове скидання ліміту моделі та витрати 0 доларів США.
Справді вразило мене не тільки кінцевий результат
У процесі проекту було проведено багато експериментів, які ще не були розгорнуті, включаючи різні напрямки, такі як порівняльне навчання, GRPO, DPO та динамічне маскування.
Не всі спроби вдалися, але Sol зміг активно вивчати матеріали, визначати проблеми, формулювати гіпотези, проектувати експерименти, аналізувати результати та планувати наступні спроби на основі досвіду невдач.
Для мене справжньо вражаючим не є сам факт, що модель з 1,7 мільярда параметрів перевершила GPT-5.6 Sol.
Ще важливіше, людина без будь-якого досвіду в галузі машинного навчання тепер може за допомогою ШІ виконувати експерименти, які раніше вимагали професійних дослідницьких команд.
Я не володію всіма нижчими знаннями і не розробив повної технічної стратегії заздалегідь. Я просто чітко розумію, яку проблему хочу вирішити, і постійно спонукаю Sol шукати відповіді.
Він не лише пише код, але й виконує ролі дослідника, інженера та розробника експериментів.
Це, можливо, був мій перший справжній момент, коли я «почув AGI».
Не дайте недосвід завадити вам почати експерименти.
Коли ШІ може допомогти звичайним людям подолати професійні бар’єри, багато проектів, які раніше здавалися недоступними, можуть стати ближчими.
