Pull to refresh

Comments 121

Первая мысль: опять статья про чатгпт... Как же вы достали!

А потом: ОГО!

UFO just landed and posted this here

Нет, перевод делал я сам. И на его корректировку ушло очень много времени. Сравните первый попавшийся фрагмент:

Что произойдет, если кто-то продержится дольше? В этом случае (“нулевая температура”) то, что вскоре получается, становится довольно запутанным и повторяющимся:

и

А что будет дальше? В нашем случае «температура» скоро опустится до нуля, что приведёт к довольно запутанному и повторяющемуся тексту:

UFO just landed and posted this here

но глупо было бы делать все с нуля, когда есть сделанное на 95%

Иногда сделано так, что проще переделать всё.

Но, вообще, заявление странное, конечно. Вы предлагаете не переводить, а править перевод предыдущего (незнакомого и не факт, что проделавшего хорошую работу) переводчика?

Очень было приятно читать перевод без привкуса гугл-транслейта. И оттого особенно режет глаза совершенно неадекватная претензия (хотя там весь аккаунт это один нескончаемый поток мысли). Спасибо вам, пишите ещё!

Извините, но слово "мысли" - здесь лишнее )
А статья реально классная. Спасибо автору

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

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

Возможно для достижения схожего эффекта для ChatGPT надо создать скрытый текстовой слой, где он будет размышлять над вопросом, задавая самому себе вопросы и критикуя себя аналогично AutoGPT (множество личностей). Ведь и мы порой в раздумии размышляем над своими словами и поступками, анализируем, прогнозируем. Вот этого слоя отрешенности думаю не хватает для ChatGPT. Чтобы он не сразу выплёвывал результат, а разбивал вопрос на составные части и итеративно приближался к решению/ответу. Схожие зачатки есть у BingChat и у плагинов ChatGPT. Проблему, описанную в статье в виде примера со скобками, вероятно можно успешно решать на текущих моделях, но с применением такого итеративного подхода. Если ребенка можно научить складывать числа "столбиком" (что тоже есть итеративный подход), то думаю поставленные задачи тоже надо в скрытом слое разбивать на простейшие мелкие этапы. Возможно еще потребуется составить дополнительные обучающие примеры, где нетривиальные задачи будут разбиты на подзадачи человеком.

Существует некая матрица весов параметров, которая теоретически соответствует минимальной ошибке и наиболее близко описывает текстовые корпуса, на которых обучался ChatGPT. У людей разве не случаются ошибки в словах, разве люди не путают слова, понятия, места ? Это такие же "галлюцинации" как у языковых моделей, только у здоровых людей это зачастую почти не встречается. Надо сначала приблизить текущие языковые модели к этой теоретически эталонной, чтобы уровень ошибок соответствовал как минимум уровню ошибок, допускаемых человеком) что-бы люди могли уверенно положится на такие над-структуры, агенты, как на самих себя))

ChatGPT похоже во время обучения тоже выстроил свои отделы, отвечающие за разные функциональные способы обработки входящего смыслового образа.

"Моё хобби — экстраполировать антропоморфизировать"

Да, пока вы не можете формально описать как он работает, я имею право антропоморфизировать по собственному желанию) Беру первую подходящую аналогию, в рамках рассуждения о гипотетическом строении.

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

Сам вывод с ложной связью. Зрение -> мышление -> красота или зрение -> красота.
Красота в целом имеет не мало обоснований в пользу развития и опыта, т.е. это чувство прокачивается и зависит в большей части от опыта, а не от генов. С "точки зрения" мозга закономерности приятны, они приносят удовольствие. С визуализацией это никак не связано - то же справедливо при получении любой информации, в т.ч. через рефлексию. А красивые формулы и код, как правило, легко воспринимаются, проще и удобнее выглядят.

В ролике упоминаются фазаны и крошечные рыбки размером в несколько сантиметров, которые для привлечения самок строят многометровые конструкции и камней и выкладывают красивые узоры, геометрически точные фигуры. И это не опыт, это инстинкты. Самцы строят, самки оценивают "красоту".

У человека соответственно тоже предполагается что на уровне инстинктов есть стремление к четким паттернам, что воспринимается как красота. Е=МС^2 красиво, а темная материя или теория струн не красиво и выглядит как подгонка теории под факты. Ранее стремление к красоте помогало развивать науку, а сейчас это балласт больше.

Не знаю даже как объяснить, неловко выходит.
Я указал на конкретную ошибку, которая в т.ч. указана в ролике. Ролик в данном случае не является значимым авторитетом, т.к. он представляет собой наивное, красивое представление о теме, которая далека от работы мозга. При этом ролик похож на правду, но в нём одно притянули к другому подведя к неверным выводам, да ещё запутав в терминах. Не редко такое происходит во всех псевдонаучных материалах, начиная от научных фактов в тиктоке, как бы научными статьями на острые темы в профильных журналах. А не редко просто не правильно понятый материал. Где именно ошибки я сказал, далее, если действительно интересно, разобраться можно. Добавлю только, что инстинкты работают на примитивах и основаны на опыте. А рефлексы побуждают к действиям по факту развития/роста организма. Так то про рыбок правильно, но выводы в корне неверны.

У людей есть свои когнитивные искажения и одно из них похоже поиск "красоты" там, где её нет. Ролик об этом. Каких-то фундаментальных теорий в ролике нет, особенности работы мозга, которые могут завести в тупик.

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

--------------
Широко известна "крылатая фраза" авиаконструктора А.Н. Туполева "Некрасивые самолеты не летают" (вариант: "Хорошо летают только красивые самолеты"). Ее часто цитируют, когда хотят похвалить тот или иной красивый, по мнению цитирующего, летательный аппарат, либо - наоборот, поругать некрасивый. Между тем, если вдуматься, смысла в этой фразе нет никакого.
Во-первых, красота - понятие относительное и целиком зависящее от эстетических предпочтений оценщика. Как говорится, одному нравится поп, другому - попадья, а третьему - арбуз или свиной хрящик. А Во-вторых, эстетика и аэродинамика - понятия, никак между собой не связанные. И далеко не всегда то, что кажется красивым, одновременно имеет высокие летные качества. Или - наоборот.
А вспомнил я об этом сегодня, потому что ровно 80 лет назад, 21 декабря 1936 года, впервые поднялся в воздух прототип самолета "Юнкерс" Ju.88, который мало кто считает эталоном красоты и изящества. Однако эта машина стала одним из лучших и наиболее успешных бомбардировщиков Второй мировой войны. В 1940 году у нас в НИИ ВВС проходил испытания закупленный в Германии экземпляр Ju.88. И в отчете об этих испытаниях есть довольно необычная для подобных документов фраза: "Самолет выглядит уродливо, но при этом хорошо летает и легко управляется". Как видно, довлело над нашими инженерами и испытателями туполевское заблуждение (хотя сам Туполев уже сидел в "шарашке"), а его несоответствие с реальностью вызвало у них когнитивный диссонанс.
Между тем, дальнейшим развитием Ju.88 стал принятый на вооружение в 1943 году "головастик" Ju.188, выглядевший еще более нелепо и неказисто, но при этом обладавший еще более высокими летно-тактическими характеристиками. В общем, красота в авиации - дело далеко не главное.

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

Получается, что ChatGPT — это логически завершаемый в настоящее время подход, восходящий к фундаментальной работе К. Шеннона по теории информации.

... Осталось ещё добавить модели мира и нервную систему для встречи системы со своими собственными состояниями (см. "Биологию познания" У. Матураны) и... А что, и? Не берусь даже предсказывать.)

Потому что по какой‑то причине — возможно, однажды мы получим научное понимание 

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

И мы можем представить, что если бы мы могли использовать достаточно длинные n‑граммы, мы бы получили подобие ChatGPT

Не подобие, а в точности чатгпт. Это абсолютно то, что делает чатгпт.

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

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

 и поэтому не имеет возможности выполнять какие‑либо вычисления с нетривиальным «потоком управления».

Не поэтому. Формально, трансформер _в целом_ является рекуррентной сетью, где в качестве внутреннего состояния используется выход энкодера, который потом этому энкодеру идет же на вход.

Нетривиального потока управления не получается по другой причине - ограничение на объем этого стейта. Поэтому сеть хоть и рекуррентная, но остается КА.

Это абсолютно то, что делает чатгпт.

Угу, примерно как полносвязная сеть делает абсолютно то же что и GPT. То есть, если бы мы хоть каким-то физически выполнимым способом могли получить аналог GPT на n-граммах/полносвязных сетях, то оно бы делало то же самое.

Именно поэтому эффективны трансформеры - по сути всю логику сети задает именно человек

Не только трансформеры. В RWKV используется другая структура.

Не только трансформеры.

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

То есть, если бы мы хоть каким-то физически выполнимым способом могли получить аналог GPT на n-граммах/полносвязных сетях, то оно бы делало то же самое.

Здесь на самом деле интересен не тот факт, что сеть смогла "восстановить" ф-ю для n-грамм (исходя из теорем об универсальности она конечно должна была, рано или поздно, так или иначе), а в том, что обучающая выборка обладает достаточно сложной структурой, чтобы в ней оказалась вся необходимая информация.

Как бы не особо-то само, если по факту.

Обычно такие вещи называют "inductive bias", а не "логика работы". В случайно инициализированной сети какую-то логику можно найти только в сильно заточенных на предметную область сетях вроде свёрточных (которые не особо хорошо работают на тексте, в отличии от трансформеров, которые неплохо работают и с изображениями). Inductive bias-же означает в примерно каком направлении будет развиваться сеть при обучении. По-моему, говорить, что "оно не само", это примерно как говорить, что человек не сам нашёл магазин, если ему сказали, что он где-то в той стороне. Вроде-бы и правильно, но оттенок смысла какой-то не такой.

>Обычно такие вещи называют "inductive bias", а не "логика работы".

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

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

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

>И работает это хуже

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

Нет эвристик - ваша сеть бесполезна и неконкурентоспособна.

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

Хорошие "внешние" эвристики тоже всегда дают сети значительный буст, так как сеть решает любую задачу крайне неэффективно. Ни одного контрпримера, насколько мне известно, тут нет. Собственно, замена кусков нейросетей классическими алгоритмами - это будущий тренд, на первом плане тут построение эмбедингов, конечно.

Интересно, а примеры такой замены уже есть?

длиной 768 для GPT-2 и 12 288 для GPT-3/ChatGPT

Это подтвержденная информация? Великоват вектор, всего лишь в разы меньше размера словаря.

Почему триггернуло: размерность эмбеддингов очень плавно росла, на моей памяти почти линейно начиная с w2v, 100-300-500-700. Google USE смысл целого предложения/абзаца довольно неплохо укладывала в 512 токенов, а тут 12к под слово?..

И да - что статья, что перевод титанические!

Спасибо за роботу. Большая просьба: пожалуйста, следующий раз дробите статью. Очень интересно но очень сложно прочесть и понять за раз.

Не нао дробить статью. Во-первых, оригинальный автор этого не сделал. Во-вторых, слтишком часто бывает, что продолжение "не следует" -- дела/текучка, смена приоритетов..

Интересная статья, спасибо. Зацепило, что все сводится к "сгенерировать следующее вероятное слово". Но ChatGPT ведёт диалог, если я просто напишу какое то предложение, то получу ответ, а не продолжение предложения.

Значит ли это, что запросы как то модифицируются? Например в "Диалог. - X. -" где x - то что ввёл пользователь? Если это так, то известно ли как именно модифицируется?

ЕМНИП в диалоге просто в качестве входных данных вводится "его реплика + Ваш ответ"

Вроде бы в изначальном промпте, который введен "по умолчанию" независимо от пользователя, есть диалоговая структура (или инструкции по выдаче ответа в виде диалога). Подсмотрено в публичных моделях.

ответы ChatGPT и вопросы пользователя должны быть маркированы. А самой диалоговой структуре ответов похоже был обучен на примерах через RLHF.
На старой GPT-3, диалоговое поведение сети достигалось просто префиксами вида:
Q: мой вопрос
A: [сеть писала здесь свой ответ]
Q: следующий вопрос
A: [следующий ответ]

Сеть быстро улавливала структуру QA диалога и продолжала ей следовать.

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

Часть текстов ему подавали несколько раз, часть — только один.
Как именно выбирали какой текст сколько раз должен попадать в обучающую выборку? Весь смысл языковых моделей что мы не можем (это слишком сложно) построить красивое и законченное описание наших знаний в виде текстового описания, но мы можем дать миллионы тонн мусора, надеясь что за счет их избыточности модель сама как то разберется (и у нее это получилось)

Ну вот смысл в том и есть, что мусор, оказывается, не сильно то отличается от немусора.

Как определить, какой мусор нужно в модель подавать чаще а какой нет?


У меня есть теория, она не связана с LLM но в целом про процесс обучения, этот процесс последовательного 'применения к модели' примера из обучающей выборки, эпоха — это когда всю обучающую выборку прогнали через модель,… но что по поводу порядка подстановки примеров из выборки? я считаю что если грамотно рулить вероятностью попаданию очередного примера в модель на шаг обучения, можно ускорить сходимость, но сам алгоритм этого выбора — гиперпараметр, правильная подборка которого возможна только после проведения эксперимента. У меня есть теория, что если найти способ разбить примеры на группы, которые модель считает по своим критериям (классификатор на ее внутренних принципах) и если считать суммарную ошибку сети по этим примерам, то чем выше ошибка тем чаще примеры из этой выборки должны проходить через обратное распространение, а группы, которые сеть поняла и хорошо отрабатывает — исключать из эпох, пропуская прямо всю группу (но не на каждой эпохе а через одну), таким образом уменьшить количество данных и ускорить эпоху

Вот что интересно. Есть много примеров с GPT-4, когда ему задают заведомо абсурдные вопросы, и он как-то "понимает" их абсурдность и корректно поясняет её. Вот никак не пойму, каким образом вся эта имитация абстрактного мышления вытекает из языкового моделирования. Ведь вряд ли ему кто-то задавал аналогичный вопрос в процессе обучения...

В том то и дело что обучали именно формировать ответы в виде ответов. Первоначально же её обучили просто предсказывать текст.

Вот никак не пойму, каким образом вся эта имитация абстрактного мышления вытекает из языкового моделирования.

Да и никто не понимает. Существуют гипотезы пытающиеся объяснить почему (некоторые) сети с огромным числом параметров могут обобщать (generalize) входные данные, вместо того чтобы запоминать конкретные примеры (overfit), но общепринятого мнения на это счёт нет, насколько я знаю.

Ну и чем отличается (и отличается-ли) имитация абстрактного мышления от абстрактного мышления тоже никто точно не знает.

А вот мне не верится, что ChatGPT успешна потому, что человеческий язык проще чем мы думаем.

В моем представлении язык - это просто протокол кодирования знаний, для передачи и возможно хранения. Тогда проще чем мы думаем не язык, а знания в наших головах. А из этого следует то что следует, что человека заменить не так сложно.

Язык это форма представления знаний, gpt взлетел еще тем что ему скармливали разные языки (первое применение transformer — перевод между языками), и не только человеческие но и языки программирования, сеть нашла закономерности, которые как раз и описывают эти знания.

Сеть ни каких закономерностей не находила, она этого делать не умеет.

Только это и умеет

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

Хех. "Только подогнать аппроксимацию" по всего-лишь триллиону точек в двухтысячемерном пространстве состоящем из 65536^2000 элементов, это как-то не звучит. Или исходная функция (то есть наши коллективные мозги со всеми их знаниями) не очень сложная, ну или "только подогнать аппроксимацию" это не так уж и просто (квадриллион или около того операций с плавающей точкой, которые для этого потребовались, на что-то намекают).

"Аппроксимация" в дискретном пространстве последовательностей токенов тоже выглядит как-то подозрительно.

Или исходная функция (то есть наши коллективные мозги со всеми их знаниями) не очень сложная

Но сетка не приближает "мозги", наоборот - она принципиально не справляется с интеллектуальными задачами (на логику и алгоритмы).

А функция, которая задает распределение следующего токена в языке - да, оказалась проще.

А есть разница между нахождением закономерностей и "подгонкой апроксимации под исходные данные"? Например, если я полным перебором буду перебирать все возможные закономерности (в порядке возрастания сложности) и найду ту которая соответствует данным, это будет "подгонкой" или "нахождением закономерности"?

А есть разница между нахождением закономерностей и "подгонкой апроксимации под исходные данные"? 

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

В случае же найденной закономерности вы эффективно эти нереальные объемы данных сжимаете до вполне разумных размеров.

Звучил логично. То-есть в моем примере это все же нахождение закономерности, в отличии от нейронки?

А точно нейронка ничего такого внутри не делает? Как я понимаю, считается что успешно обученный ML, в том числе нейронки, обладает предсказательной способностью именно из-за способности к обобщению, то-есть к выявлению закономерностей. И даже есть алгоритмы сжатия, на основе нейронок.

А точно нейронка ничего такого внутри не делает?

Делает. Вот тут проанализировали, что получилось после "подгонки аппроксимации" на сложении двух чисел по модулю: https://arxiv.org/abs/2301.02679

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

алгоритм сложения чисел по модуля, основанный на преобразованиях Фурье.

— Сколько будет 2+2?
— Ну, где-то три-пять. Но точно не больше восьми!

Ну, это и есть пример подгонки. Что именно он должен показывать, по-вашему?

Ну и сложение по модулю по сути делает проблему для сети тривиальной, так что такое.

ЗЫ: посмотрел повнимательнее. У меня есть подозрение что в данном случае ландшафт потерь очень просто устроен и чуть ли вообще не выпуклая функция

Что именно он должен показывать, по-вашему?

Цитирую: " В случае подгонки вы в итоге получается огромную хештаблицу с соответствующими требованиями к количеству коэффициентов.

В случае же найденной закономерности вы эффективно эти нереальные объемы данных сжимаете до вполне разумных размеров."

Сеть сжала 10 миллиардов последовательностей токенов (сложение с 5-ю знаками 10^5*10^5 возможных входов) в компактный алгоритм.

Сеть сжала 10 миллиардов последовательностей токенов (сложение с 5-ю знаками 10^5*10^5 возможных входов) в компактный алгоритм.

Эм, нет, не сжимала. В статье, что вы выше привели, ни чего такого и близко нет.

Что там у вас за 10 миллиардов последовательностей - вообще не ясно, там на вход подается вектор, который имеет всего p^2 значений (где p - основание для mod). p^2, а не 10 миллиардов.

Вы видимо перепутали со всем множеством соответствующих ф-й, ну так во-первых указано, что большинство этих ф-й либо требуют очень долгого обучения, либо вообще сеть к решению не сходится, а во-вторых - это же не одна сеть которая решает все варианты, это на каждую функцию (из 10^5*10^5) у нас отдельная сеть, которую надо отдельно обучать.

Хотите чтобы сеть решала все такие функции? ну ни чего страшного - всего-то надо обучить 10^5*10^5 сетей :)

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

ЗЫ: ну и да, в статье вообще не указаны параметры сети, но если взять скрытый слой размера 2p, то там вообще элементарное решение.

На вход подаётся одна из 10 миллиардов последовательностей (от 00000+00000 до 99999+99999). Сеть должна или запомнить все десять миллиардов значений a+b mod 10000 или создать компактное представление функции.

Вы видимо перепутали со всем множеством соответствующих ф-й,

Количество всех возможных функций из двух пятизначных чисел в пятизначное число вообще-то непредставимо большое: (10^10)^(10^5), так что перепутать сложно.

На вход подаётся одна из 10 миллиардов последовательностей (от 00000+00000 до 99999+99999).

Откуда вы 10 миллиардов-то взяли? В примерах по ссылке максимальное число - 100, т.е. всего 10к. Поэтому я и не понял, о чем вы говорите - в статье таких диких чисел не называлось.

Ну и да - она же не считает результат выражения (n + m) mod p, она его приближает. Поэтому ни о какой генерализации и алгоритме речи нет - это именно аппроксимация, подгонка, которая дает неточный ответ.

А вот если вы захотите, чтобы ответ был абсолютно точным - то вам придется сделать достаточно большой скрытый слой. Как раз размером с 10^5*10^5)

В примерах по ссылке максимальное число - 100

Да, эксперимент со сложением пятизначных чисел в статью не вошёл. Не обратил на это внимание.

А вот если вы захотите, чтобы ответ был абсолютно точным - то вам придется сделать достаточно большой скрытый слой. Как раз размером с 10^5*10^5)

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

В статье ясно показывается, что сеть не запоминает все входные данные.

Где это показано?

А для получения достаточной точности сложения с помощью преобразования Фурье нужно намного меньше весов.

Вопрос в том, какой там требуется размер скрытого слоя. Если он при сохранении точности должен расти пропорционально длине входа, то тогда количество параметров растет квадратично по входу - так же как и количество вариантов входных данных.

Ну и это один конкретный пример, даже если сеть бы его решала за константу, то это не показывает, что она может что-то кроме подгонки.

сложения с помощью преобразования Фурье

Там нет ни какого сложения с помощью преобразования Фурье. Ну и вообще, как раз пример показывает, что сеть в итоге сошлась к крайне неэффективному решению.

А точно нейронка ничего такого внутри не делает?

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

Вообще, если у вас есть какой-то алгоритм, то нейронке, чтобы его "смоделировать", нужно _минимум_ столько параметров, сколько памяти потребуется для выполнения данного алгоритма (под памятью подразумевается не пиковое потребление, а общее, при этом данные не перезаписываются). Т.е. можно считать, что количество параметров сети должно расти +- пропорционально сложности алгоритма, с-но любая np-complete проблема убивает сетку. А вот на простеньких линейных или тем более логарифмических задачках сетка может (в теории) показывать вполне ок перформанс.

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

Если говорить о входных данных, то там скорее зависимость на объем обучающей выборки.

Обучающая выборка тут пока не при чем. Мы рассматриваем идеальный для сети вариант - т.е. когда мы _руками_ делаем минимальную сеть для решения данной задачи. Самую идеальную сеть, какую только возможно. Т.е. речь о том, что такой набор коэффициентов для сети _в принципе существует_.

Как и при каких условиях к таким коэффициентам будет сходится (и будет ли) реальная сеть - это разговор вообще отдельный :)

Тогда я не понимаю о чем вы. О том что нейронка не Тьюринг полная и некоторые программы на ней могут занимать очень много места, в некоторых соучаях стремясь к бесконечности?

Но это не доказывает что сеть не может успешно находить некоторые закономерности, хотя бы те которые в ее синтаксисе выражаются компактно.

О том что нейронка не Тьюринг полная и некоторые программы на ней могут занимать очень много места, в некоторых соучаях стремясь к бесконечности?

Подавляющее большинство полезным программ, если быть более точным.

Но это не доказывает что сеть не может успешно находить некоторые закономерности

"некоторые" закономерности может находить все что угодно. Вот у меня есть вычислительная система, которая на любой вход отвечает "1". Она, определенно, находит некоторые закономерности и абсолютно точно приближает любую ф-ю, которая совпадает с данной константой на своей области определения.

Ну вот, все сходится, нейронки могут находить закономерности )

Даже человек не факт что может находить любые(все?) закономерности, почему же этого требовать от нейронки? Разница выходит не качественная а количественная.

Даже человек не факт что может находить любые(все?) закономерности, почему же этого требовать от нейронки?

Тут дело не в поиске, а в существовании. Т.е. есть один вопрос - может ли сеть "компактно" описать данный алгоритм (т.е. существует ли для сети такое описание в принципе), и есть другой вопрос - сойдется ли сеть к такому описанию во время обучения на практике (с какой скоростью и какой вероятностью).

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

Ну вот, все сходится, нейронки могут находить закономерности )

Так все что угодно так может. Например, камень. Получается, нейросети ни чуть не лучше камня? :)

"чатгпт, а проверь ка сбалансированы ли скобки вот в этом выражении: ..." и чатгпт не может.

А вы сможете? Скажем для последовательности из 8000 скобок с максимальной вложенностью 20. Без карандаша и бумаги, конечно.

Вопрос риторический: не сможете (за приемлемое время). Рабочей памяти не хватит.

Пфффф, тоже мне проблема. Кладём на стол монетку. Встретив в строке открывающую скобку, сдвигаем монетку на один диаметр вправо, встретив закрывающую — влево. Если к концу строки монетка вернулась на исходную позицию — значит, количество открывающих скобок равно количеству закрывающих.

Можно и без монетки, просто добавляя минус один или плюс один к числу в памяти. Нужно будет держать в памяти всего одно число.

"Без карандаша и бумаги" значит без внешней памяти (включая монетку), то есть в тех-же условиях как и GPT. Ну и алгоритм с монеткой скажет, что скобки сбалансированы на такую строку ")))(((".

Хотя - да, поправить легко - следить, чтобы монетка не сдвигалась левее начального положения. Так что я пожалуй переоценил сложность задачи. Рабочей памяти тут нужно немного (но у GPT нет и её). Вот если разных видов скобок будет 5 и больше, то тут уже и у людей возникнут проблемы.

Ну и алгоритм с монеткой скажет, что скобки сбалансированы на такую строку ")))(((".

А они сбалансированы: количество закрывающих равно количеству открывающих, баланс соблюдён. О том, что "выражение должно быть синтаксически корректным", Вы ничего не говорили.

Нет, сбалансированность означает, что каждая открывающая скобка имеет свою закрывающую. Т.е. то, что выражение корректно. Это синонимы.

Это вы просто проверили что количество открывающих скобок равно количеству закрывающих, а не балансировку)

Для проверки на балансировку надо смотреть, чтобы монетка не оказалась левее начальной позиции. Если оказалась -можно дальше не считать, все плохо.

Ну и собсно у вас тут монетка со столом выступает в роли карандаша и бумаги - некая внешняя память, которая хранит стейт.

Без карандаша и бумаги, конечно.

А почему собсно без карандаша и бумаги? Именно умение использовать карандаш с бумагой и отличает более богатые вычислительные систеы отм конечных автоматов. Я карандаш с бумагой использовать могу, мой компуктер может - а чатгпт не может.

Вы начали с утверждения что сеть не может находить закономерности, а получается даже камень может )

Если в нейросети не может существовать какого-то алгоритма, так это из-за ее неполноты по Тьюрингу. Но если ей дать в качестве устройства доступ к компьютеру, то это комбинированное решение уже полное по Тьюрингу.

Легко представить что на запрос проверить скобки чатгпт генерирует простой корректный алгоритм подсчета скобок и запускает его на полноценном процессоре а не выполняет подсчет на своих нейронах. Ей даже не надо изобретать этот алгоритм ("находить закономерность") примеров предостаточно в интернете.

Возможно с таким подходом не заменить ученых, создающих что-то принципиально новое. Но 99% населения этого не делают.

Вы начали с утверждения что сеть не может находить закономерности, а получается даже камень может )

По-вашему получается, что нейросеть не полезнее камня, да.

Но если ей дать в качестве устройства доступ к компьютеру, то это комбинированное решение уже полное по Тьюрингу.

Нет.

Легко представить что на запрос проверить скобки чатгпт генерирует простой корректный алгоритм подсчета скобок и запускает его на полноценном процессоре а не выполняет подсчет на своих нейронах. 

А она его не сгенерирует)

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

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

В общем, тут как ни крути, обмануть математику не выйдет)

Вон спросите у чатгпт, она вам прекрасно выдаст нужный алгоритм прямо сейчас.

Очень люблю ответ "нет" без коментариев, приятно общаться...

Очень люблю ответ "нет" без коментариев, приятно общаться...

Вы сказал, что на орбите Юпитера летает чайник Рассела, какой ответ тут должен предполагаться?

Нет, не летает. Если считаете что летает - докажите или приведите какие-то соображения в пользу того, что он там может/должен летать.

Вон спросите у чатгпт, она вам прекрасно выдаст нужный алгоритм прямо сейчас.

Она выдает тот алгоритм, который был в обучающей выборке. Т.е. способности к написанию алгоритмов у чатгпт примерно такие же, как у скачанной базы стекорвефлоу.

Если алгоритм в базе есть - вы его сможете найти. Нет - ну нет так нет, сеть не поможет, сама написать алгоритм она не сможет.

А что тут доказывать? Очевидное утверждение что чатгпт в связке с полноценным процессором является Тьюрин полной системой.

Она выдает тот алгоритм, который был в обучающей выборке.

Нет

А что тут доказывать? Очевидное утверждение что чатгпт в связке с полноценным процессором является Тьюрин полной системой.

Так процессор сам является тп-системой. Как следствие - ЧТО УГОДНО в связке с процессором является тп-системой. Зачем здесь тогда чатгпт?

Нет

Да. чатгпт не умеет генерить корректные алгоритмы сама. По крайней мере - ни кто еще такой способности у нее не пронаблюдал. Ну и математически это невозможно - потому и не пронаблюдает)

Зачем здесь тогда чатгпт?

"А какой же ты хакер без ноутбука?" (c)

Ну и математически это невозможно - потому и не пронаблюдает

Это какая-же теорема такое утверждает?

фидфорвард сеть - это конечный автомат

фидфорвард сеть - это конечный автомат

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

Разница только в удобстве рассмотрения с той или иной точки зрения. Для всех практических задач компьютер можно рассматривать как машину Тьюринга. А почему сеть с сотней миллиардов параметров и 65536^100000000 состояний (для half-float представления активаций) нужно рассматривать как конечный автомат, а не, скажем, универсальный аппроксиматор?

И?

И все.

Все физически реализуемые компьютеры - это конечные автоматы.

Мы по кругу ходим, нет?

А почему сеть с сотней миллиардов параметров и 65536^100000000 состояний (для half-float представления активаций) нужно рассматривать как конечный автомат, а не, скажем, универсальный аппроксиматор?

Конечный автомат и есть универсальный аппроксиматор. И чтобы повышать точность аппроксимации (или размер входных данных) надо наращивать размер автомата (количество параметров в сети) в худшем случае - экспоненциально. А мт - не надо.

Можно сделать обратное утверждение - для любой сети можно построить КА такого же размера который будет делать ровно то же самое (что очевидно, ведь сеть это by definition и есть КА). Почему мы не рассматриваем КА как мт? Вот по той же причине мы не рассматриваем сеть как мт.

Компьютер или мозг не являются конечными автоматами. Можно сказать, что вычислительно они им эквивалентны - но не более того.

Мы по кругу ходим, нет?

Наверно. Я не могу понять откуда взялась информация, что размера конечного автомата GPT недостаточно для синтеза программ (естественно не любых). А вы это не объясняете.

И чтобы повышать точность аппроксимации [...] надо наращивать размер автомата [...]. А мт - не надо.

Дык. Потому что МТ - это абстракция с бесконечной лентой и физически она не существует.

А то, что для сложения чисел из ограниченного диапазона нужна какая-то огромная точность, из-за которой размер сети должен экспоненциально расти, - это неверно. Достаточно того, чтобы правильный токен имел максимальную активацию, значительно отличающуюся от следующего кандидата.

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

Я не могу понять откуда взялась информация, что размера конечного автомата GPT недостаточно для синтеза программ (естественно не любых). 

Для любой вычислимой ф-и несложно придумать программу, результатом которой будет программа, вычисляющая данную функцию. С-но если мы можем синтезировать такие программы, то мы можем и вычислять любые вычислимые функции. Чего КА не может.

Дык. Потому что МТ - это абстракция с бесконечной лентой и физически она не существует.

Нет, я говорю как раз про физические мт. Именно поэтому в реальности мы пользуемся именно мт (нашими компьютерами), а не конечными автоматами.

А то, что для сложения чисел из ограниченного диапазона нужна какая-то огромная точность, из-за которой размер сети должен экспоненциально расти, - это неверно.

Речь же не о всех алгоритмах. Есть алгоритмы, для которых рост должен быть экспоненциален. Вообще, если алгоритм имеет какую-то сложность O(...), то тогда и количество параметров в данной сети, которая выполняет указанный алгоритм, не может расти меньше, чем O(...). Это при идеалньой кодировке - т.е. речь просто о существовании такой сети. Вопрос того сможет ли сойтись к этой сети обучение (и при каких условиях) мы не рассматриваем.

Сложение чисел произвольной длины для нерекуррентных сетей, не взаимодействующих с внешним миром (чтобы использовать его как внешнюю память), конечно невозможно. 

А какой смысл говорить сетях, использующих внешнюю память?

Что до рекуррентности - это ни чего не дает, рекуррентные сети являются теми же КА.

С-но если мы можем синтезировать такие программы, то мы можем и вычислять любые вычислимые функции. Чего КА не может.

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

Классический пример: распознавание языка a(n раз)b(n раз): ab, aabb, aaabbb, и так далее. Физически, последовательности длиной 10^100^100 символов мы не сможем обработать ни на чём, но теоретически можем обработать на машине Тьюринга и конечном автомате соответствующего размера (который сломается на последовательности большей длины).

Именно поэтому в реальности мы пользуемся именно мт (нашими компьютерами)

В реальности нет бесконечностей, а значит и нет машины Тьюринга. Есть компьютеры с ограниченным объемом памяти, которые функционально эквиваленты конечным автоматам.

Есть алгоритмы, для которых рост должен быть экспоненциален. [...] Это при идеалньой кодировке - т.е. речь просто о существовании такой сети.

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

А какой смысл говорить сетях, использующих внешнюю память?

Потому что большие языковые модели уже используются для управления роботами и внешняя среда вполне может служить такой памятью.

рекуррентные сети являются теми же КА.

Об этом уже говорили, цитирую: "то что сетку можно сделать т-полной подключив память это вещь очевидная и всем понятная, но как это сделать - думают еще годов с 80-х. Прогресс примерно нулевой пока."

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

Синтез программы (не обязательно корректной) - это написание одного текста (программы) на основе другого текста ((не)формального описания задачи), а не выполнение функций программы. 

Если синтез программы является вычислимой ф-ей, тот он является выполнением некоторой программы. by definition. И я могу вычисление _любой_ программы свести к задаче синтеза некоторого текста из другого текста (это вообще так самоочевидно, что странно такие вещи явно проговаривать).

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

Да нет, конечно, что за глупости? Если бы это было так, то ни кто бы и не придумал никогда мт. Все бы пользовались конечными автоматами и горя не знали. МТ отличается от КА именно что в физически реализуемых случаях.

В реальности нет бесконечностей, а значит и нет машины Тьюринга.

Эм, вы тут перепутали, видимо. Для мт не требуется ни каких бесконечностей, они требуются для сверхтьюринговых вычислений. МТ сугубо конечна.

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

Есть компьютеры с ограниченным объемом памяти, которые функционально эквиваленты конечным автоматам.

Компьютеры не эквивалентны конечным автоматам. С чего вы взяли это?

Это в полной мере относится и к людям.

Именно что не относится, т.к. люди тьюринг-полны. Поэтому мозг (или ваш пека) может спокойно решать задачу, для которой понадобится КА размером с юпитер.

Ну давайте на конкретном примере - возьмем 3SAT, количество памяти, которое потребуется мт (т.е. мозгу или вашей пеке) зависит линейно от длины входа, а вот размер КА (или нейронной сети) зависит экспоненциально (ну, вы уже наверно поняли что я неявно предполагаю P != NP, в любом случае даже если P = NP будет не экспонента а какой-то злой полином). Поэтому совершенно с физической точки зрения есть принципиальная разница в том, какого размера 3SAT может решить ваша тьюринг-полная пека и какие - нейросеть.

Для любого алгоритма сложности O размер аппроксимирующей сети будет расти с не меньшей асимптотикой, которая для огромного числа задач нелинейна (и даже сильно нелинейна). Поэтому мы очень быстро упираемся в предел разрешимости сети - чтобы сеть могла решать задача хотя бы на чуть-чуть более объемных данных размер сети должен расти совершенно титаническим образом.

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

Вообще-то нет. как я уже упомянул - эту проблему пытаются решить еще с 80-х, но прогресс нулевой.

Вас, видимо, смущает "бесконечная лента" в определении

Меня она не смущает. Я просто не смешиваю абстрактные понятия и физические реализации.

С точки зрения вычислительных свойств МТ этого не требуется - ну в конце концов, иначе бы ваш компьютер просто не работал

Вы это серьёзно? Программы для компьютеров работают потому, что написаны так, чтобы не выходить за пределы соответствия между абстрактной МТ и физическим компьютером (то есть не переполнять память). А не потому, что компьютер - это идеальная реализация МТ.

а вот размер КА (или нейронной сети) зависит экспоненциально

Опять путаете абстракцию и физическую реализацию. Реализация КА не обязана иметь по одному физическому элементу на состояние. Система из 128 бит и обвязки может реализовать конечный автомат с 2^128 состояниями (если правила для этих состояний имеют регулярную структуру, что и случится, если этот КА эквивалент программы).

Спасибо, я похоже разобрался как получились ваши выводы.

Вы это серьёзно? 

Абсолютно серьезно. МТ - это конструктивный объект, ни каких бесконечностей там нет.

А не потому, что компьютер - это идеальная реализация МТ.

Что именно компьютеру не дает быть идеальной мт (ну если принять, что компьютер работает корректно и без сбоев, конечно)?

Опять путаете абстракцию и физическую реализацию. 

Это вы их не различаете.

Реализация КА не обязана иметь по одному физическому элементу на состояние.

А при чем тут физический элемент? Речь идет о логике работы.

Система из 128 бит и обвязки может реализовать конечный автомат с 2^128 состояниями (если правила для этих состояний имеют регулярную структуру, что и случится, если этот КА эквивалент программы).

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

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

Что именно компьютеру не дает быть идеальной мт (ну если принять, что компьютер работает корректно и без сбоев, конечно)?

То что не даёт компьютеру распарсить грамматику a(n раз)b(n раз) при n=10^100^100 (ну или любое другое конечное число превосходящее число состояний реализуемых в нашей вселенной): физические ограничения.

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

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

бесконечно проще лстм сетей

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

Сети типа GPT очевидно ограничены в возможностях, но это не принципиальные ограничения, а практические ограничения (сеть эквивалентная мозгу может быть физически нереализуемой). А насчёт того, что 20 лет не могли прицепить память, а значит ещё 20 лет не смогут - посмотрим. По моим оценкам это произойдёт в ближайшие 5 лет (я имею в виду полноценно прицепить, чтобы она участвовала в обучении, векторные базы данных уже цепляют, как я и говорил).

То что не даёт компьютеру распарсить грамматику a(n раз)b(n раз) при n=10^100^100 (ну или любое другое конечное число превосходящее число состояний реализуемых в нашей вселенной): физические ограничения.

Если вы ленту нужного размера подклеете - то компьютер сможет это сделать.

Тьюринг полнота чего? 

Вашей вычислительной системы.

Компьютер со 128 битами, который мы моделируем конечным автоматом очевидно не Тьюринг-полный

С чего бы нет? Мы же можем к этим 128 битам подключить еще 128. И еще. И еще.

Нет в нашем физическом мире бесконечностей. 

Казалось очевидным, что во фразе "бесконечно проще" под "бесконечно" подразумевается просто бесконечность на ЕЯ а не формальная математическая сущность.

Лстм сети благополучно забывают то, что не помещается в их память.

Ну так да, лстм сеть это тоже КА, но мы можем заменить коэффициенты рациональными и тогда "память" сети станет бесконечной, а сеть - тьюринг-полной.

Сети типа GPT очевидно ограничены в возможностях, но это не принципиальные ограничения

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

Вот трансформер - это и есть такой автомобиль.

А насчёт того, что 20 лет не могли прицепить память, а значит ещё 20 лет не смогут - посмотрим. По моим оценкам это произойдёт в ближайшие 5 лет

Мне кажется вы не вполне сознаете текущее состояние исследований по данному вопросу. Я не даром сказал, что он нулевой. Не, там, маленький - а именно нулевой. Дело в том что сейчас (так же как и десятилетия назад) нет подходов даже к тому, как вообще _сформулировать данную проблему_.

т.е. это в принципе на данный момент не вопрос науки а вопрос философии. Да, можно предположить что вот сейчас в детский садик ходит будущий гениальный философ, который через 15 лет вырастет и сделает пару гениальных открытий, которые можно будет взять в работу и еще лет через 10-20 достигнуть какого-то реального, доведенного до практического использования прогресса - но это чисто фантастический сценарий.

С тем же успехом можно предполагать что к тому моменту еще откроют телепортацию, антигравитацию и много чего другого фантастического.

Опять же не надо забывать и про соображения бизнеса. Мы с трансформерами на ближайшие десятилетия.

Если вы ленту нужного размера подклеете - то компьютер сможет это сделать.

К абстрактной МТ подклеивать ленту не нужно (она там и так бесконечная). К кремниевому чипу никто "приклеивать ленту" не будет. Возьмут другой чип, с нужным объемом памяти. Это никак не делает первый чип Тьюринг-полным. Абстрактная модель вычислений: машина Тьюринга, не отображается без искажений на реальность. Именно поэтому она абстрактная, а не стоит в парижской палате мер и весов.

Казалось очевидным, что во фразе "бесконечно проще" под "бесконечно" подразумевается просто бесконечность на ЕЯ

Что такое "просто бесконечность на ЕЯ"? На очень много? RWKV не демонстрирует ни очень ни много по сравнению с трансформерами.

То, что вы рассказываете о принципиальной разнице в вычислительных возможностях верно в пределе стремящемся к бесконечности. Мы-же, сюрприз, имеем дело с конечными последовательностями. Здесь имеет значение вычислительная сложность, а не принципиальная вычислимость.

но мы можем заменить коэффициенты рациональными и тогда "память" сети станет бесконечной, а сеть - тьюринг-полной.

Что значит "можем"? Можем рассмотреть абстрактную модель LSTM с рациональными коэффициентами? Да, можем рассмотреть. Можем сделать реализацию LSTM сети с BigInt в качестве коэффициентов? Да, можем. Получить от этого "бесконечное преимущество" LSTM сетей? Нет, не сможем (иначе бы уже сделали). Сложность расчётов будет расти быстрее чем польза от дополнительной памяти.

как вообще сформулировать данную проблему.

В смысле "Как обеспечить тренировку сети с (практически) неограниченной внешней памятью?" Вполне возможно, что сеть соответствующей структуры сама разберётся как использовать эту память. Как GPT-4 использует внешние тулзы для выполнения поиска по интернету, математических подсчетов и т.п, после небольшого дополнительного обучения (или без него, но менее стабильно).

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

Автомобиль с колёсами диаметром, ну скажем, десять километров легко пройдёт везде. Но практическая реализация такого автомобиля...

С тем же успехом можно предполагать что к тому моменту еще откроют телепортацию, антигравитацию и много чего другого фантастического.

То есть мозги у нас работают на непостижимой магии? Или как это понимать?

Абстрактная модель вычислений: машина Тьюринга, не отображается без искажений на реальность. 

Прекрасно отображается - это просто компуктер к которому можно добавить памяти ("подклеить" ленту).

Еще раз - мт НЕ ТРЕБУЕТ бесконечной ленты. Да, в определении лента бесконечная - но это так говорится просто для удобства и отсутствие бесконечной ленты ни как не влияет на выразительную силу системы, т.е. абсолютно любая теорема для мт распространяется на случай конечной ленты. У тех же конструктивистов в определении ни каких бесконечных лент нет, при этом та же мт и та же тьюринг-полнота.

Что такое "просто бесконечность на ЕЯ"? На очень много?

Да, это очень много.

RWKV не демонстрирует ни очень ни много по сравнению с трансформерами.

Согласно пейперам там примерно тот же выхлоп что у трансформеров, к слову.

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

т.е. трансформер надо было бы придумать уже хотя бы из этого соображения

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

Нет, это верно уже на очень небольших задачах.

Здесь имеет значение вычислительная сложность, а не принципиальная вычислимость.

Я же об этом изначально и говорил. О том, что сеть из-за отсутствия тьюринг-полноты не может вычислить _с практической точки зрения_.

В теории-то, понятное дело, ни какой вычислительной разницы между мт и ка нет, любая задача, которую может выполнить мт, может быть выполнена ка.

В смысле "Как обеспечить тренировку сети с (практически) неограниченной внешней памятью?"

В смысле, что это вообще может значить - "тренировка сети с (практически) неограниченной памятью".

Вполне возможно, что сеть соответствующей структуры сама разберётся как использовать эту память.

Здесь же вопрос не в использовании памяти сетью, а в том, что в этой памяти де-факто хранятся веса сети.

Автомобиль с колёсами диаметром, ну скажем, десять километров легко пройдёт везде. 

Это уже зависит от того, что мы понимаем под "пройдет")

То есть мозги у нас работают на непостижимой магии? Или как это понимать?

Не понял, откуда такой вывод?

Еще раз - мт НЕ ТРЕБУЕТ бесконечной ленты. Да, в определении лента бесконечная - но это так говорится просто для удобства и отсутствие бесконечной ленты ни как не влияет на выразительную силу системы,

"НЕ ТРЕБУЕТ бесконечной ленты" == "Максимальная длина ленты ограничена", я правильно понимаю? Потому что потенциальная бесконечность - это, по определению, способность превзойти любое наперёд заданное число. Или это про актуальную бесконечность? В любом случае в нашем физическом мире ни то ни это нереализуемо.

Так, сфокусируемся на этом. Приведите пример задачи, которую может решить МТ с лентой, которую можно наращивать только ограниченно, и не может решить конечный автомат с количеством состояний соответствующем максимальной длине ленты МТ.

тоже не понял вопроса о внешней памяти, если это возможно и это поможет, то почему не использовать?
да вот список некоторых таких сетей

получается, что нейросеть не полезнее камня, да.

Ну, камень не врёт (не галлюцинирует), так что как минимум в этом камень уже полезнее.

чтобы его "смоделировать", нужно минимум столько параметров, сколько памяти потребуется для выполнения данного алгоритма

Ага, поэтому даже люди поручают выполнение алгоритмов программам. Кстати, процитированное рассуждение относится к нерекуррентным сетям без внешней памяти (да, GPT - практически такая сеть). Для сетей с внешней памятью (например бумага и карандаш) достаточно хранить сам алгоритм.

Кстати, процитированное рассуждение относится к нерекуррентным сетям без внешней памяти (да, GPT - практически такая сеть). 

И к рекуррентными без внешней памяти - они тоже КА. С внешней памяти же проблемы - то что сетку можно сделать т-полной подключив память это вещь очевидная и всем понятная, но как это сделать - думают еще годов с 80-х. Прогресс примерно нулевой пока.

Ага, поэтому даже люди поручают выполнение алгоритмов программам.

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

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

а как вы сожмёте до "разумных" пределов умение выигрывать в игру Го? есть задачи, которые трудно или невозможно формализовать и это никоим образом не является разницей различия между нахождением закономерностей и "подгонкой аппроксимации под исходные данные"

а как вы сожмёте до "разумных" пределов умение выигрывать в игру Го? 

Как и для любого другого алгоритма. Чем алгоритм игры в го тут отличается?

отличается тем, что он неформализуем, вы не сможете вывести общие закономерности, чтобы формально описать условия для алгоритма

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

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

В статье чуть не прямо сказано, что это просто крутой поисковик по интернету)

Впечатляющая статья. Есть подозрение, что большая часть кандитатских/докторских диссертаций имеет куда меньшее наполнение.

При этом, если вы музыкант - попросите его сказать, как он считает, о чем ваша песня - и будете удивлены, так как он поймёт её чувства лучше, чем 90% слушателей :)

Безусловно автор, Стивен Вольфрам, человек с глубоким пониманием сути вещей. Но написанный им текст воспринимать крайне сложно. Я имел некоторый опыт работы с марковскими сетями и многослойными перцептронами, с обучением распространением ошибки и градиентным спуском.. но мне было сложно читать этот текст. Вроде написано по-русски (переведено на русский), но порой целые абзацы текста не несут никакого смысла. Местами было ощущение, что этот текст и был сгенерирован ChatGPT или подобной системой.

Последовательность изложения материала показалась, мягко говоря, своеобразной: начали с генерации словосочетаний, прыгнули на генерацию н-грамм, потом ушли на распознавание чисел и немного про животных, потом про аттракторы и классификацию, потом про обучение, потом про эмбеддинг и группировку атрибутов, потом вернулись к генерации текстов.. пару десятков раз начинали абзацы, как же устроен ChatGPT.. ну и в конце лишь пришли к выводу, что устроен все сложно, сотни слоев, миллионы нейронов, миллиарды связей.. в части слоев есть некие руководители и механизмы обратной связи, но зачем они реально нужны никто не знает, главное, что работает.

Двоякое ощущение осталось от статьи: с одной стороны в ней есть полезная информация, с другой стороны, если вы знающий человек, то ничего полезного для вас в статье нет... а если вы новичок или человек со стороны, то скорее всего после прочтения статьи в голове у вас будет полный бардак.

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

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

Вот, даже Вольфрам пытается себе и всем доказать что это еще не AGI ("зачатки"), мне кажется себя еще не убедил.

Шикарная статья! И, кстати, очень неплохой перевод почти везде. Очень качественное объяснение: похоже автор оригинала обладает хорошим опытом настройки естественных нейронных сетей кожаных мешков.

Но, по крайней мере, на данный момент у нас нет возможности «дать описательную часть» того, что делает сеть.

Интересно, что некоторые горячие головы интерпретируют это как "это новый разум, потому что мы не в состоянии понять, как он работает".

некоторые горячие головы

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

Ну, я, например, тоже удивляюсь. Но мне, как и автору переведённой тут статьи, это скорее говорит не о том, как сложен и разумен GPT, а о том, как прост и примитивен наш язык.

Количество "мы не знаем", "мы не понимаем", "теоретической модели нет", "это просто работает", "подобрано экспериментально", "как-то оно внутри себя" etc. несколько пугает. Может, и прав Юдковский с его "shut it all down and bomb those who didn't".

Впрочем, с вероятностью 0,8 никакого шатдауна не будет.

Sign up to leave a comment.

Articles