Обучение нейронки на домашнем ноуте 2
Продолжаю цикл постов на тему тренировки нейросети на домашнем ноуте.
С прошлого раза произошло одно относительно приятное событие, нейронка начала выдавать осмысленные ответы, но зачастую с перебоями в правильности.
К примеру, вопрос: Какая столица Франции? Если до этого нейронка могла ответить глюками что-то вроде: Москва столициями, то сейчас она начала фильтровать ответы, но путается в фактах и может ответить более осмысленным, но не совсем правильным фактом.
Например: Какая столица России? Ответ: Москва столица мира и при этом ответить Париж столица Казахстана.
Но это моментально диагностируемый случай. Проблема в RAG и потере контекста. Что происходит? Нейронке задали вопрос -> она сверяет веса, ищет максимально правдоподобный ответ, но делает это недостаточно правильно, потому что разделение весов в рамках субъект, объект, столица, мир ещё очень слабое -> Москва столица мира.
Решение: заставить нейронку опираться на подсказки RAG по контексту.
В данный момент уже удалось подружить нейронку с RAG режимом, но пока все равно встречаются галлюцинации в виде: Вопрос: На какой частоте звучит нота D2? Ответ: слышится строй Drop D, нота звучит на высоте ноты B3 = 14 герц.
Как мы можем видеть, RAG немного правит предыдущие глюки, но… Глюки никуда не уходят и вот почему. Моя нейронка пока ещё недостаточно хорошо умеет работать с весами, которые она уже сформировала, опираясь на те знания, которые она уже успешно прожевала.
Что же… будем обучать дальше.
Итоги: нейронка уже достаточно хорошо формирует предложения на русском, но я уже сбился со счета того, сколько эпох прошло. И тут же появляется техническая сложность. Есть вероятность того, что пройдет до обучение русскому языку - сейчас уже идет шаг 4400 из 20000, но при этом даже в таких условиях, модель видит всего ~2% от всего корпуса, который успешно разросся до 900 МБ. И вот самое главное во всей этой истории, как бы много знаний я не заставил прожевать нейронку, она по прежнему будет видеть и понимать ~2-4% от всего корпуса для русского языка.
В данным момент, я активно пробую менять batch и играться с размерами корпуса и количеством токенов на контекст.
Стоит заметить, что модель уже научилась работать с существующими весами, вместо того, чтобы при каждом дообучении переобуваться языку с нуля, что только подтверждает тот факт, что ноутбучная 1650(даже не super), способна тянуть такие объемные задачи в стеке с ноутбучным i5-10300H
В общем, ждите следующих обновлений