Обучение нейронки на домашнем ноуте 2

Продолжаю цикл постов на тему тренировки нейросети на домашнем ноуте.

С прошлого раза произошло одно относительно приятное событие, нейронка начала выдавать осмысленные ответы, но зачастую с перебоями в правильности.

К примеру, вопрос: Какая столица Франции? Если до этого нейронка могла ответить глюками что-то вроде: Москва столициями, то сейчас она начала фильтровать ответы, но путается в фактах и может ответить более осмысленным, но не совсем правильным фактом.

Например: Какая столица России? Ответ: Москва столица мира и при этом ответить Париж столица Казахстана.

Но это моментально диагностируемый случай. Проблема в RAG и потере контекста. Что происходит? Нейронке задали вопрос -> она сверяет веса, ищет максимально правдоподобный ответ, но делает это недостаточно правильно, потому что разделение весов в рамках субъект, объект, столица, мир ещё очень слабое -> Москва столица мира.

Решение: заставить нейронку опираться на подсказки RAG по контексту.

В данный момент уже удалось подружить нейронку с RAG режимом, но пока все равно встречаются галлюцинации в виде: Вопрос: На какой частоте звучит нота D2? Ответ: слышится строй Drop D, нота звучит на высоте ноты B3 = 14 герц.

Как мы можем видеть, RAG немного правит предыдущие глюки, но… Глюки никуда не уходят и вот почему. Моя нейронка пока ещё недостаточно хорошо умеет работать с весами, которые она уже сформировала, опираясь на те знания, которые она уже успешно прожевала.

Что же… будем обучать дальше.

Итоги: нейронка уже достаточно хорошо формирует предложения на русском, но я уже сбился со счета того, сколько эпох прошло. И тут же появляется техническая сложность. Есть вероятность того, что пройдет до обучение русскому языку - сейчас уже идет шаг 4400 из 20000, но при этом даже в таких условиях, модель видит всего ~2% от всего корпуса, который успешно разросся до 900 МБ. И вот самое главное во всей этой истории, как бы много знаний я не заставил прожевать нейронку, она по прежнему будет видеть и понимать ~2-4% от всего корпуса для русского языка.

В данным момент, я активно пробую менять batch и играться с размерами корпуса и количеством токенов на контекст.

Стоит заметить, что модель уже научилась работать с существующими весами, вместо того, чтобы при каждом дообучении переобуваться языку с нуля, что только подтверждает тот факт, что ноутбучная 1650(даже не super), способна тянуть такие объемные задачи в стеке с ноутбучным i5-10300H

В общем, ждите следующих обновлений