Я навчав свого місцевого LLM на своїх невдачах, і тепер він вчиться на кожній помилці

Я навчав свого місцевого LLM на своїх невдачах, і тепер він вчиться на кожній помилці


Я використовую моделі штучного інтелекту з моменту їх появи. Ну, це не зовсім так. Кілька десятиліть тому я навчався в університеті, вивчаючи штучний інтелект та психологію, і хоча вивчення мозку мені було цікавішим, ніж навчання коду на C+, мій інтерес до створення комп’ютерів, які могли б мислити, ще більше відставав. Місцеві LLM, якими я зараз користуюся, відрізняються від того, що було в цій галузі в той час, але вони не менш цікаві для мене.

Я використовував їх для виконання різноманітних повсякденних завдань, але вони не позбавлені власних проблем, і одна з них полягає в тому, що вони не навчаються поза навчанням. Якщо вони роблять щось не так і їх виправляють, це зазвичай не виживає поза контекстом цієї індивідуальної розмови. Отже, за допомогою Codex я створив невелику програму, яка зберігає перевірені виправлення, щоб модель могла додати цю інформацію за потреби. Це не змінює модель, але надання їй постійної пам’яті дає FAQ те, на що можна покладатися для подальших довідок.

У мого місцевого LLM тепер є блокнот для редагування

Проте я відповідаю за відповіді

неправильний тренер

Вкладення, закодоване Vibe, називається пам’яттю помилок, і насправді це досить просто. Деякий код Python для обробки запитів, SQLite для зберігання налагоджень та іншого контексту, Lemonade дає мені простий інтерфейс для роботи з невеликою моделлю Qwen і веб-інтерфейсом користувача. Він використовує те, що я вже встановив: стандартну бібліотеку Python і API, сумісний з Lemonade OpenAI, тож мені не потрібно турбуватися про залежності.

Інтерфейс користувача має чотири розділи: Чат, Виправлення, Порівняння та Експорт. У деяких випадках я переписую речі як навички для використання в інструментах кодування свого агентства, тому мені не потрібно відкривати інтерфейс користувача, щоб вставити запитання та виправлення, але це добре працює для підтвердження концепції. Кожне запитання на вкладці «Чат» починає нову розмову, щоб запобігти пошкодженню попереднього контексту, а також є перемикач для використання раніше збережених виправлень.

Якщо модель повертає неправильну відповідь, я можу перейти на вкладку виправлень і зберегти оригінальне запитання, невдалу відповідь, схвалену заміну та правило, щоб, сподіваюся, пізніше не отримати неправильних відповідей. Це дає моделі весь контекст для визначення майбутніх сценаріїв без необхідності натискати її.

І так, я можу редагувати виправлення, якщо вони все ще призводять до неправильних відповідей, з постійним процесом навчання. Це ручна версія та тренування з низьким потоком, яке проходять моделі, перш ніж потрапити до мене. У мене була одна проблема: Квен витратив увесь свій символічний бюджет на роздуми й кілька разів не відповідав. Вимкнення мислення для швидких тестів дало мені результати для роботи, і я міг виправити обмеження символів пізніше.

Знайти помилки Qwen було легко

Щоб їх виправити, знадобилося багато часу

Завдання, з яких я почав, були похідними від того, що я використовував для запуску нативних моделей. Такі речі, як форматування імен файлів, аналіз даних CSV, сортування записів і робота із записами пристрою. Ця деталь важлива, якщо ви хочете довірити місцевому LLM перевірити вашу папку завантажень, перш ніж дозволити їй обробляти приватні дані. Я виконав 22 запитання без пам’яті та вибрав десять запитань, які давали неправильні відповіді. Він використовував температуру 0,6, зерно 42, обмеження відповіді 512 токенів і пасивне міркування. Це були навмисно обрані помилки в цьому налаштуванні, тому вони не говорять нам про загальну точність Qwen. Вони дають мені щось конкретне для роботи.

Завдання імені файлу попросило Квена розвернутися NAS Backup.v2 [FINAL].tar.gz до nas-backup-v2-final.tar.gz. Це було близько, але повністю залишило «носову» частину. Оскільки це був підручник і не торкався самих файлів. В іншому місці він додав число з CSV і ще додав два і три, щоб отримати вісім.

Виправлення спрацювали навіть після перезапуску програми, що є багатообіцяючим, але це не дає місцевому LLM кращих навичок міркування. Це просто означає, що він знає, де шукати певні типи відповідей. Відповіді я можу перевірити за допомогою вкладки «Порівняти», яка запускає запитання з увімкненою та вимкненою пам’яттю та відображає результати, щоб відокремити помилки від сліпих варіантів і контрольних запитань. Будь-які точні відповіді можна оцінити незалежно, але все творче потребує людського дотику, щоб підтвердити виправлення роботи.

Тепер у мене є відправна точка для тонкого налаштування

Через це проходять усі моделі, але в більшому масштабі

вкладка експорту пам'яті

Таблиця експорту перетворює мої виправлення в пари миттєвих і відповідних для набору навчальних даних. Невдалі відповіді зберігаються в окремому файлі, і до кожного з них додається тема, щоб зберегти контекстуальні підказки. Будь-які суперечливі версії буде видалено з активного використання, доки я їх не вирішу, а будь-які запитання, зарезервовані для невидимих ​​тестів або контролю, буде видалено.

Цей файл можна використовувати для навчання адаптера LoRA, застосовуючи невеликий набір вивчених виправлень до локальної моделі. З часом локальна версія мого LLM стане розумнішою та персоналізованішою, даючи мені кращі відповіді, адаптовані до моїх потреб.

Мій місцевий LLM зараз не став мудрішим, але це початок

Мій місцевий LLM зараз знову в школі. Кожна невдала відповідь стає моментом навчання як для моделі, так і для мене, і цікаво спостерігати, як просувається робота з оновленою інформацією. Я впевнений, що не можу навчати моделі з відкритим вихідним кодом, оскільки в мене немає ресурсів, але я можу створити модель із даних, яких немає ніде за межами моїх стін, для завдань, які мені потрібні.



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *