М.Двач / Дневнички

109 Кб, 870x585
Пишем нейронку Лес!!cRwZFqppLL/rHmRJ 3 июня 2024, 19:40 745859 В конец треда | Веб

ИТТ пишу нейронку from scratch, с нуля.
Цель - генерация текстов для другого моего пет-проекта.

Ответы60096337

Лес!!cRwZFqppLL/rHmRJ 2 3 июня 2024, 19:51 2 745860

Почему с нуля? Потому что могу, потому что люблю программировать и потому что хочу насколько это возможно разобраться во всех (не во всех, но в самых основных) ньюансах.
Писать буду на языке Kotlin. Юайки при необходимости будут делать на Compose Desktop.

Цель, как уже говорил, генерация художественного текста на русском языке. Полученная модель будет запускать на мобилках и на десктопе как часть большого приложения.

Предварительный план такой:
- матричные операции
- структура и веса сети, сохранение в файл и загрузка
- обучение нейронки
- простейший классификатор с юаем (чтобы убдеиться что всё работает)
- классифицируем ирисы (ещё раз убедимся что всё работает)
- краулер для сбора текстов
- составления словаря токенов, написание токенайзера
- обучение модели
...
PROFIT!

Параллельно можно поболтать за ойти, математику и пограммирование.

3 3 июня 2024, 20:33 3 745865

Если ты надеешься что у тебя получится в результате что-то уровня чатгпт, то забудь. Там нужны колоссальные вычисления. На котлине это значит на ЦПУ тренировать собрался? Это еще х100 фактор замедления.

Ответы5971

Лес!!cRwZFqppLL/rHmRJ 4 4 июня 2024, 08:37 4 745971

>>745865
Да, цпу, насчёт этого я не замарачваюсь.
Конечно я представляю масштабы промышленных разработок. Там не только огромные вычислительные мощности, там ещё куча скиловых и не очень людей. Например там целые команды занимаются подготовкой и очисткой данных. Очевидно что у меня ничего из этого нет. Я думаю у меня получится что-то типа Порфирича. Будет успехом если моя модель будет сколько-то грамотно подсталять слова. Опять же, я это делаю потому что по кайфу.

Я кстати говоря пару лет работал датасатанистом (правда до нейронок мы тогда так и не добрались, максимум что у нас было это иксгэбуст). На собственно опыте я убедился что улучшение качества данных даёт больший прирост метрик, чем усложнение модели.

ram!kMtcyTk33U 5 4 июня 2024, 10:26 5 745973

Посмотри видос Карпатого, он очень хорошо объясняет принципы и код:
https://youtu.be/kCc8FmEb1nY
Ещё у него на канале ещё есть про бэкпроп, где он с нуля его пишет. На питоне, конечно, но принцип тот же.

Ответы5998

6 4 июня 2024, 17:18 6 745998

1024 Кб, 1514x1500864 Кб, 1508x1508983 Кб, 1512x1508944 Кб, 1516x1508

Короче говоря сделал я матричные вычисления и прямой проход нейронки (на самом деле я это сделал ещё до создания треда).
Что бы как-то это визализировать, решил взять канвас и цвет каждого пикселя определить нейронкой со случайными весами.
То есть на вход (x,y) на выходе (r,g,b). Внезапно получилось годно. Рейт мой дигитал эй-ай арт, анончик. Как думаешь, если это распечатать в хайрезе на холсте, это будут покупать?

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

>>745973
Спасибо, посмотрю!

7 4 июня 2024, 18:41 7 746009

>>745859 (OP)
Есть идея насчет нейронки, напиши в тг: @r46ch1k

Лес!!cRwZFqppLL/rHmRJ 8 5 июня 2024, 21:18 8 746091

28 Кб, 498x31024 Кб, 520x250

Как же я люблю синтаксический сахар, хоспади. У меня уже синтаксический диабет. Например матрицу я могу объявить как пикрил 1 или как пикрил 2. Как думаешь, анон, как лучше?

Ответы6340

9 7 июня 2024, 15:33 9 746337

>>745859 (OP)
Ты для начала математику подучи, лолка.

Мимо ещё один "нейронщик"

Ответы6372

10 7 июня 2024, 16:09 10 746340

>>746091
Очевидно што два

Лес!!cRwZFqppLL/rHmRJ 11 7 июня 2024, 21:09 11 746372

Я набухался и релишил переписать матричные операции, а то некрасиво.

>>746337
Я между прочим математик по образованию. Правда за столько лет я уже всё забыл. Но база-то всё равно есть, я когда слышу про например производную или градиент то сразу понимаю о чём речь.

Ответы6494

67 Кб, 566x612
Лес!!cRwZFqppLL/rHmRJ 12 8 июня 2024, 10:33 12 746457

Как думаешь, анон, вектор лучше представить отдельной сущностью (тогда делать ли отдельно вектор-столбец и вектор-строку?) или пусть вектора будут частным случаем матрицы (1 х n или n х 1)

Пик - тест на умножение матриц.

Лес!!cRwZFqppLL/rHmRJ 13 8 июня 2024, 10:41 13 746459

Ещё я решил передалть хранение весов. Раньше я хранил матрицу для каждого слоя. Теперь я думаю переделать на мапу, где ключом будет i,j, а значением - вес. И для нейронов сделать сквозную нумерацию. Так конечно вырастут требования к памяти (jvm будет создавать ещё больше объектов), но я просто заебался с индексами.

14 8 июня 2024, 18:38 14 746494

>>746372
Да-да, правда тут дело надо бы иметь с пространствами и алгебрами.

Обновить тред
« /dr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion