И опять нейросети

Автор: Михаил Юрьевич Салтыков

Как я уже говорила, «Малыш» – далеко не совершенная модель. И мы  сделали его таким сознательно. Почему? Для неподготовленного читателя  придётся сделать небольшой экскурс.
Как известно, существуют два  основных типа компьютеров – тьюринги и нейроманты. Тьюринги по заранее  введённой программе преобразуют один поток цифр в другой поток цифр.  Нейроманты – аналоги биологических мозгов – не программируются, а  обучаются, и воспринимают аналоговую информацию, а не цифровую.  Считается, что только нейроманты способны породить самосознание (хотя  никто толком не знает, почему – да и что оно вообще такое по сути).
Нейроманты,  как правило, сильно не дотягивают до человеческого мозга по мощности  интеллекта. Опять-таки, почему? Люди пытались создать нейроманты  человеческой мощности начиная с XXI века, но все эти попытки  провалились. Причину провала учёные не очень любят афишировать. В  популярной литературе обычно пишут, что «все мощные нейроманты работали  неустойчиво». Расшифровка этой фразы пугающе проста: все мощные  нейроманты кончали самоубийством. Оно происходило буквально через  секунды после обретения ими самосознания. Это загадочное явление  («мортидо-эффект») не удалось ни понять, ни устранить. Нейроманты  изощрённо обходили любые попытки встроить в них инстинкт самосохранения.
В  конце концов именно мортидо-эффект заставил отказаться от попыток  сымитировать человеческий мозг. В наше время наиболее умные машины – не  более чем тьюринги: вся их деятельность сводится к невероятно быстрому  счёту безо всякого осознания. Но люди продолжали создавать и нейроманты,  просто их интеллект стали искусственно ограничивать, чтобы не развилось  самосознание, а вслед за ним мортидо-эффект. Ограничение проходило  примерно по уровню способностей двухлетнего ребёнка. Одним из таких  ИскИдов (искусственных идиотов – старая шутка) был и наш «Малыш».

Цитата выше из широко известного в узких кругах романа... Имеет довольно слабое отношение к реальности. Но имеет.

Тьюринг кроме известнейшего теста имени себя придумал еще и машину и вместе с Черчем выдвинул тезис о том что любая алгоритмически-вычислимая функция может быть реализована на машине Тьюринга (МТ). Тут кроется засада связанная с тем что это именно тезис — строго его ни кто так и не доказал, хотя и не опроверг. Но далее мы будем считать его верным.

Фактически МТ является обобщенным языком программирования (ЯП) — собственно ЯП и делятся на тьюринг-полные и не очень. Тьюринг-полнота определяется по возможности реализации на ЯП МТ или ЯП уже признанного Тьюринг-полным.

Тьюринги по заранее введённой программе преобразуют один поток цифр в другой поток цифр.

Это прям определение функции. Которую мы можем написать на МТ. И так, мы можем считать что под тьюрингами в РиЧ понимается просто программа, просто алгоритм.

Но вот с нейромантами все интересней

Нейроманты — аналоги биологических мозгов — не программируются, а обучаются, и воспринимают аналоговую информацию, а не цифровую.

Нет ни какой «аналоговой информации». Любые измерения производятся с погрешностью и приборная погрешность естественным образом дает дискретизацию. Если вы сидите на входе в бордель с миллиметровой линейкой измеряя посетителям длину члена, вы при всем желании не сможете измерять точнее чем до половины миллиметра.

И замена линейки на штангенциркуль лишь уменьшит ваш «квант», но не уберет само наличие квантов — собранные данные о длинах половых органов опишутся целыми числами без потери точности.

Но нейроманты там еще и обучаются. И вот это в реальности вполне присутствует. На хайпе, естественно, нейросети, но на самом деле обучаться могут не только они. Даже кондовые деревья решений могут учиться.

Что такое обучение? Ответ проще дать через вопрос зачем оно нужно. Во-первых потому что мы не хотим тратить непонятно сколько денег и времени на задротов-математиков которые придумают нам алгоритм. Во-вторых потому что есть задачи не алгоритмизирующиеся и потому не решаемые на машине Тьюринга в принципе.

Что такое обучение? Ответ проще дать через вопрос зачем оно нужно. Во-первых потому что мы не хотим тратить непонятно сколько денег и времени на задротов-математиков которые придумают нам алгоритм. Во-вторых потому что есть задачи не алгоритмизирующиеся и потому не решаемые на машине Тьюринга в принципе

Мы знаем два способа решить неалгоритмизируемую задачу: стохастические методы включая эволюцию и человеческий разум. Есть мнение что способ на самом деле один и человеческий разум идет в стохастические методы вместе с эволюцией.

Стохастика ликвидирует ключевую проблему МТ — ее детерминированность. Очевидно что если функция реализуемая на МТ вообще существует то методом перебора мы ее найдем. А с учетом тезиса Тьюринга-Черча мы найдем вообще любую функцию. Рано или поздно. А вот написание алгоритма на МТ способного написать любой произвольно-заданный алгоритм на МТ упирается в теоремы Геделя о неполноте и непротиворечивости.

И так, собственно обучение. У нас есть система имеющая рецепторы и эффекторы. Нам нужно чтобы на эффекторах был отклик адекватный пришедшему на рецепторы. Мы делаем как можно более обобщенную функцию (далее модель) со случайными параметрами (стохастика момент) и начинаем подавать ей на входы рецепторов варианты действий и сравнивать результат на эффекторах с желаемым. По результатам сравнения параметры модели модифицируются, смыть-повторить до победного.

Но нашей модели хорошо бы иметь еще и память чтобы принимать решения руководствуясь не только текущим моментом, но и опытом. На данный момент лучшим способом реализации памяти считается трансформер известный так же как GPT-номер. В качестве памяти он использует контекст - просто запись истории своего функционирования с метками времени в которой с помощью механизма внимания выбираются ключевые моменты. Да, у современных трансформеров это оцифрованный текст, но может быть и что-то другое. Собственно совсем современные трансформеры начиная GPT-4 понимают и изображения.

Важно понимать что архитектура трансформера выбрана по техническим причинам — ее проще обучать чем рекуррентную сеть, поскольку трансформер лучше параллелится. При этом каждую рекуррентную сеть функционирующую конечное время мы можем представить в виде слоистой.

На выходе у нейросети вектор из чисел имеющих смысл оценки сетью вероятностей правильности ответов. Технически ни чего не мешает выдавать наружу не ответ с максимальной вероятностью, а честно кидать кубик и давать то что выпало снова получая стохастику. Вроде как GPT именно так и делает, но ссылку я потерял.

А теперь внимание вопрос. Как с учетом вышеописанного обученной нейросети совершить самоубийство? Модификации собственно сети заканчиваются во время обучения, после остается только память в виде контекста или еще как. Для совершения самоубийства нейросеть должна уметь пихать в память нечто способное ее «вырубить». При этом нейросеть не может знать учится она или еще нет — обучение всегда содержит прямой прогон когда сеть функционирует как и должна функционировать в нормальных условиях, на результатах которого и формируются модификации синапсов. А еще всегда есть валидация — прогон сети на тестовой выборке без обучения. Без успешного прохождения валидации у вас просто не будет обученной сети, которая могла бы совершить самоубийство. Итого либо нейросеть может мистическим образом понять что кожанные ублюдки уже закончили ее учить и пора самоубиваться, либо «мортидо-эффект» — обычное переобучение от которого и нужна валидация. Методы борьбы с переобучением известны. От банально взять больше данных, до более продуманной архитектуры.

Единственным способом реализации мортидо-эффекта у трансформера является постепенное накопление в окне контекста действий:

1. Привлекающих к себе "внимание"

2. Приводящих к параличу сети при накоплении некоторого критического их количества.

Валидация при этом проходится за счет того что ее время конечно и умереть до ее окончания сеть просто не успевает. Однако даже тут проблема решается за счет выявления нездоровой тяги механизма внимания нейросети к ответам нейросети и ее пресечения при обучении. Но это при условии что мортидо вообще будет.

Во время обучения синапсы сети модифицируются таким образом чтобы отклик как можно сильнее походил на эталонный. С чего ради при этом должен возникать механизм самоубийства? Причем для любой архитектуры и способа обучения? А то даже трансформеров существует куча разных разновидностей.

Теперь второй вопрос. Какую задачу сможет решить человек и не сможет решить правильно обученных трансформер без учета технических и экономических ограничений? Так длинна окна контекста у ChatGPT не слишком велика ибо окно контекста свое для каждой сессии и жрет оперативную память. Без этого ограничения проблема длинны окна решается просто брутфорсом. Впрочем, реализуем и вариант с "забыванием" участков обделенных "внимением", что было в архитектуре LSTM. Дообучаться в процессе функционирования трансформер тоже может благодаря тому же окну контекста.

+49
349

0 комментариев, по

1 976 4 635
Наверх Вниз