Сложно следить за околонаучными темами, и понимать, что ветка эволюции научного направления пошла не туда. Сейчас случился некий бум псевдонаучного взлета LLM, и я приведу в качестве современной статьи на хабре лишь одну, но это по прежнему массовое явление. Например, в статье компании Friflex за 2024 год История LLM-агентов: 10 ярких моментов по прежнему утверждается "На смену однослойному перцептрону Розэнблатта пришел многослойный. В статье Learning representations by back-propagating errors («Обучение представлений с помощью обратного распространения ошибки») Румельхарт и Хинтон показали, что многослойный перцептрон справляется с задачами, которые были не под силу его однослойному предшественнику. Например, с XOR. ". Совершенно излишне говорить, что это полное вранье, а авторы статьи даже не потрудились открыть эту статью, чтобы её прочитать. Это стало массовым явлением, и я его наблюдаю как минимум 20 лет, я когда то написал тут на хабре цикл статей объясняющих детали, лучше всего посмотреть эту Какова роль первого «случайного» слоя в перцептроне Розенблатта. Поэтому к этому возвращаться не будем. Я не знаю почему, может это массовая культура так влияет на людей, а порог вхождения в тематику ИИ слишком сложный? Не знаю, но не важно. Чтобы продемонстрировать скорость обучения перцептрона я написал несколько реализаций перцептрона Розенблатта и выложил их на гитхабе. А затем мы коснемся LLM.
Реализация перцептрона Розенблатта и почему я о нём вспомнил
Когда то давно я уже писал статью, поэтому ограничусь ссылкой на гитхаб реализации перцептрона Розенблатта, там код на C# и он прокомментирован. Было бы желательно, чтобы вы с ним ознакомились.
Там вы найдете:
1. Классическую версию перцептрона Розенблатта (NeironNetR)
2. Оптимизированную, сохраняющую активность среднего слоя для каждого примера, она быстрее обучается но требует больше памяти (NeironNetA)
3. Блочную версию, которая пытается обучить перцептрон показывая примеры блоками (NeironNetB)
А так же там есть реализация перцептрона на Cuda. Её я выполнял ориентируясь на советы DeepSeek, поэтому если кто-то поможет оптимизировать буду благодарен.
Тестовая задача классическая - это четность (обобщение XOR), сама по себе она не интересна и нам интересно лишь производительность, которое заставляет желать лучшего. Собственно, почему я стал скептиком нейросетей вообще.
И первое, что я пошел проверять, может действительно CUDA делает чудеса производительности. Но увы, нет. Я допускаю, как я уже написал, что мой код для CUDA плохой - тогда помогите сделать его лучше. Пока же я уверен, что он в лучшем случае раза ну в 2-3 может быть быстрее, это с запасом, потому сейчас с моим кодом CUDA медленнее CPU.
Причем тут LLM?
Хорошо, скажите вы, а причем тут вообще перцептрон Розенблатта, если LLM основаны на другом алгоритме backpropagation?
Важно подчеркнуть, что в этой статье мы не будем касаться задачи обобщения, когда то я об этом уже писал Понятие о структурной адаптации и введение в «чистое обобщение». А просто вернемся к вопросу, которым я задавался с начала статьи: почему ветка эволюции научного направления пошла не туда, а именно почему LLM основываются на backpropagation, а не на перцептроне Розенблатта. Я часто задаю этот провокационный вопрос, и почти никто не отвечает правильно.
А ответ простой: перцептрон Розенблатта не позволяет обучать больше одного слоя. Но тогда я спрашиваю: а что дает два, три и больше скрытых слоев? Опять же единственно правильный ответ был бы: каждый следующий слой дает иерархическое выделение признаков. Но это общие слова, а кто-то когда то показал это в научной статье? Подскажите если знаете, я лично таких статей не знаю. Вот и DeepSeek отмораживается от такого вопроса.
Но кто не знает, давайте вспомним [смешная фраза получилась, пожалуй оставлю], что именно для перцептрона Розенблатта существует теорема сходимости. Именно, он позволяет гарантированно найти решение для любой задачи, только если хватит вычислительных мощностей. Для backpropagation - это не так, наоборот маркетологи придумали смешной термин "переобучение сети", попробуете это объяснить? Backpropagation не гарантирует схождения. Тогда почему в основу LLM положен backpropagation ?
Не ужели для перцептрона Розенблатта нельзя придумать альтернативный метод обучения нескольким слоям, если вдруг оказалось бы, что backpropagation действительно осуществляет иерархическое выделение признаков?
В итоге, для backpropagation вообще сложно говорить о каких то метриках:
Он не обучается всему, что ему показываешь
LLM скачек "интеллекта" появляется только на огромных вычислительных мощностях, не меньше 1000 современных видео карт, по сути "вычислительный завод", т.е. отдельный человек уже не может проводить эксперименты
Как LLM создает иллюзию "понимания" вразумительно не может ответить ни один ученный, даже приближенный к разработчикам. И это не удивительно, т.к. нет даже ответа, как происходит иерархическое выделение признаков, и действительно ли оно происходит и что для этого нужно.
Обучающая выборка - это, якобы коммерческая тайна
Вам не кажется, что самое время задуматься об альтернативе того, что должно быть в основе LLM? А LLM становится скорее поп-культурой, чем научной областью, особенно с тем уровнем воспроизводимости и задаваемых ученными вопросами.