За последние двое суток я занимался одним — учёбой ядра. Расскажу, что из этого вышло.
Сначала скорость. К прошлой записи одна видеокарта уже работала втрое быстрее, чем в начале недели. Теперь я подключил вторую. Две карты учат модель в полтора раза быстрее, и результат совпадает с одной картой до последнего бита. Для обучения нейросетей это редкость: обычно две карты всегда немного расходятся. У Тернита веса и счётчики — целые числа, поэтому сложение не зависит от порядка, и любой шаг можно повторить и получить то же самое.
Потом память. Учёба ядра занимала около 15 гигабайт видеопамяти. Теперь есть режим, где та же учёба умещается в 5. Это медленнее, но это уже память обычной домашней видеокарты.
Дальше — сама модель. За эти дни ядро прочитало миллиарды фрагментов текста: книги, статьи, разговоры, немного английского и кода. По дороге выяснилось, что модель зубрит: маленькие наборы разговоров попадались ей слишком часто, и она стала заучивать их слово в слово. Я перестроил чтение так, чтобы всё шло одной смесью и ничего не повторялось лишний раз, и разговорные мерки сразу пошли вверх. В конце этапа я плавно снизил силу шага, и модель улучшилась по всем меркам. Заодно выправился счёт: «1822 минус 1820» она теперь считает правильно.
Новое ядро я поставил в бота. Первым делом написал ему «hi» — и он ответил по-английски. Раньше на это шёл ответ по-русски и невпопад. Английскому разговору его никто не учил: английского в чтении было меньше десятой части. Он переводит простые фразы — пока не идеально, но понимает, что от него хотят.
Факты Тернит держит не в весах, а в своём банке знаний. Новое ядро пересказывает найденное точнее и называет источник. В банк добавились темы — проверенные пересказы, которые идут и в учёбу. Поиск теперь находит и личные записи хозяина — то, чему его научили дома.
И главное для меня: каждый час ядро отвечает на 30 живых вопросов, и ответы лежат рядом с цифрами. Я вижу не только то, что модель стала лучше угадывать текст, но и то, как она на самом деле отвечает.
За двое суток Тернит стал быстрее учиться, научился учиться в памяти домашней карты и сам заговорил на втором языке.
Андрей Рощупкин · Тернит