📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Как работает GPT внутри. Тайна скрытого состояния

Владимир Иванов20:35

Transcription

Добрый день. Меня зовут Владимир Иванов. Думаю, что это будет видео очень интересное. Это, наверное, даже будет первое видео не только на русском языке, вообще говоря, наверное, на YouTube будет первое, где более-менее сейчас объясняется по последним самым научным работам, что мы знаем про то, как ДПТ работает внутри, что происходит в его скрытом состоянии, можно сказать, тайна скрытого состояния. Это мы сейчас такое вот видео сейчас видим, что в этом резидентном потоке у него происходит. Ну, я бы потом сейчас объясню, что на этом видео показывается и что мы на нём видим.

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

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

Но в основном я бы сейчас бы такой момент бы сказал, что в основном все видео, которые есть на YouTube, посвящённые тому, как работает трансформер, это фактически то же самое, если бы мы рассказывали про то, как работает один нейрон, и говорили, что мы понимаем, как работает головной мозг. Ну, конечно, это очень примитивное обсуждение, потому что как бы сам по себе ДПТ, он гораздо более сложная, устроенная по себе система. И именно какая-то комбинация трансформеров, так называемые эмерджентные свойства, порождают необходимые нам уже моменты. Вот это вот упрощённое понимание, что он делает только один токен, оно, естественно, очень упрощённое. Оно не объясняет, например, так называемую когерентность текстов.

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

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

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

Ну почему здесь ожидали графы уже до того, как сейчас их откроют, там, что они там находятся? Ну, потому что сам по себе attention, то есть механизм внимания - это корреляция. Вот. То есть как бы отдельные слова, которые вы пишете, они коррелируются. Это можно представить вот в виде графа, как вот здесь вот. Вот. То есть это на своих там уроках там я это объясняю подробнее, но нас интереснее как бы волнует, что вот в этой вот магии вот это вот скрытых вот этих состояний здесь находится. То есть в этих векторах зашифровано нечто большее. Оно там как бы внутри как спрятано, запаковано, такая семантическая коммуналка образовалась. Для нейросетей, в принципе, упаковывать что-то и распаковывать, это очень простая операция. Ну, пример, как для нас складывать или вычитать. Поэтому не стоит удивляться, что можно взять там какие-то вектора, разрезать на части, положить другие вектора. Если брать как бы саму нейросеть, она занимается этим постоянно. Для неё это элементарный. Давайте сейчас попробуем узнать всё-таки, что там скрывается. Для этого нам нужны будут вот эти две работы.

Первый из них сделал у нас Meta. То есть, в принципе, это как бы один из основных у нас вендоров на рынке. Тот, тот, который выпускает LlaMA. Вот у него есть очень интересная вот эта вот статья, которая в принципе про так называемый их какнат, кокос, вот эту технологию, которую они сделали. В чём там заключается идея их технологии? Она заключается в том, что если брать, давайте сейчас тут увеличу это дело, а если брать обычную, так называемые цепочки рассуждений, думаю, многие их видели, как бы как как это сначала как бы у нас искусственный интеллект подумает, потом начинает уже что-то писать, думает он именно в виде текста. В этом случае, если посмотреть, вот как раз у нас на вот этой вот левой картинке сейчас показан стандартный вариант, обратите внимание, кстати, то, что он начинает передумывать, как бы, то есть уточняет не не написав даже целыми словами, а вот всего лишь один токен написав, ну, то есть одно считайте слово там или даже кусочек, он уже уточняет каждый раз вот мысль. Что сделала Meta? Она фактически это заменила на вот этот самый вектор, то есть вот этот вот, то есть не стала превращать его в токен. Они стали вот эти вот вектора, по сути дела передавать вместо слов как бы заново, поскольку они ещё находятся в последнем как бы слое, их можно достаточно легко трактовать, что это такое. Ну, я пропущу сейчас там технические детали все. Я просто покажу, что они после этого смогли узнать. То есть таким образом они смогли, в принципе, эмулируя вот таким образом рассуждение, в принципе, узнать, что там происходит. А происходят там достаточно интересные вещи.

По сути дела выяснилось то, что у нас нейросеть, она хотя вроде бы предсказывает один токен, но по большому счёту она делает у себя целую систему как бы планирования. То есть причём она делает её в виде графа. Вот это в принципе то, что это граф, это говорю неудивительно, потому что сама природа у нас трансформеров, она корреляционная, напомню. Вот. То есть даже что такое для него осознать то, что вы ему пишете? Это граф построй по сути дела. Вот эти, потому что корреляционные связи - это, по сути дела, рёбра этого графа получается. Что-то в этом духе, в принципе, все ожидали, что там находится некоторый граф решения. Ну вот Meta его просто нашла. То есть она не предположила, она его просто нашла. Вот. И если посмотреть, она ещё нашла у неё очень важные детали. Одна из самых очень важных деталей, то, что я вот в нашем канале Telegram рассказываю - это так называемая суперпозиция смыслов. Она очень важная. То есть это не только некоторый граф решений, то есть ээ некоторых вариантов, а так называемый ещё там используется суперпозиция смыслов по аналогии с очень известным котом Шрёдингера. Ну это такой кот, который одновременно жив и мёртв. Э вот эта вот суперпозиция смыслов, она чрезвычайно важная сама по себе для как бы братьясливого Джипт, потому что она обходит очень много его ещё ограничений.

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

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

Второй момент, э сам искусственный интеллект, пока он работает внутри этого графа, он обычно манипулирует так называемой суперпозиции как бы смысла. То есть у него одновременно в нескольких смыслах находится одно понятие. И это очень важно использовать том в том числе в промтинге. Вот. То есть по покуда вы позволяете ему находиться в этой суперпозиции смыслов, то есть одновременно рассматриваете несколько вариантов и говорите ему не схлопываться, то есть не выбирать какой-то из них, вы получаете максимально эффективный промтинг. То есть это вот здесь нужно это понимать, что это может быть вещи, требующие, конечно, там специальное обучение, там ещё объяснения какого-то дополнительного, там дискуссии, может быть, у нас в чате. Но это принципиальный очень момент, то, что вот эта суперпозиция, о которой я сейчас я говорю, то есть одновременное нахождение в нескольких семантических вот этих состояниях, это базовая часть, базовая, вот, можно сказать, внутренняя технология для того, чтобы прочёсывать вот этот вот свой граф. Это первая как бы такая работа. Она очень важная, потому что действительно мы очень много чего узнали. Мы узнали практически, во-первых, о значении вот этой семантической суперпозиции.

Вот второй момент, то, что вот это вот красивое видео, которое я вам сейчас показывал, о чём оно здесь идёт, это вторая очень интересная работа. Это то, что мы фактически сейчас здесь вот видим некоторый фрактал, и второй фрактал получается. Значит, про о чём вот эта вот работа вторая, которая ещё уточняет то, что дела сделала Meta. А это работа тоже очень уважаемых как бы нескольких здесь колледжей. И в основном это большая вот эта вот ассоциация, которая связана с исследованием в области биологии и социологии. Вот. И они сделали здесь какой важный очень момент. Он, в принципе, связанный вот с вот этой вот работой, которая вроде бы связана даже с физикой. Оно заключается в том, ну, в принципе, как бы, если вот эту статью посмотреть, то, что, в принципе, природу можно описать с помощью так называемых логических машин состояния. Вот сейчас немножко дальше я объясню на примере поподробнее, но в принципе выяснилось, что у нас есть так называемая машина, которая может описывать, вообще говоря, всё, что угодно в природе, с другой стороны, ещё может решать любые практически логические задачи. Что это такое? Вот такая сверхуниверсальная такая штука. Это фактически вот то, что вот здесь вот у них треугольниками здесь и нарисовано, что дальше будут коллеги с ними делать манипуляции. Идея, на самом деле, очень простая. То, что по большому счёту то, что вы сейчас видите, вы видите на самом-то деле фактически вот этот вот самый вектор, только они делали там более простой эксперимент. У этого вектора, видите, здесь на учебном варианте у него 200 измерений. Там в боевой там нейросети их там больше 10000.

По большому счёту здесь речь идёт о том, что не для упрощения того, чтобы построить, они взяли такой же вектор, то считаете из трёх измерений, всего лишь состоящий сам по себе. И фактически они предложили следующую модель, что у нас есть некоторое понятие состояния, то есть как бы вот это вот машина, так называемая, это вариант такой усиления, так называемой машиной Маркова. Вот. А в этом как бы некотором состоянии мы находимся. То есть нейросеть верит, что она сейчас в таком-то состоянии и такая-то есть вероятность, допустим, развития других событий. И в принципе у неё есть перемещение в другие какие-то состояния с этим связаные. И вот мы получаем тоже граф, только этот граф уже уточняется, который здесь вот Meta рисовала. То, что у нас получается, что вот эти перехо вот эти вот кружочки нарисованные это некоторые состояния ээ векторов, которые нам описывают вероятности, что ли, развития других событий. А рёбра - это переходы между вот этими состояниями сами по себе. Вот если это многократно применять, то мы получаем некоторые фрактальную такую вот схему. Очень важная здесь какая штука, что в принципе, то есть если вот много-много раз такую фрактально применить систему, то есть переходы между вот этими состояниями всеми, её нельзя смоделировать вот этой вот простой идеей, которая глупости, которые рассказывают, что нейросетина только лишь предсказывает следующие токи. Это не объясняете сложности внутри неё. Наоборот, как раз вот они специально ставили такой эксперимент, чтобы те, кто так говорят, чтобы они сели в лужу. Почему эта лужа очень глубокая? Потому что по сути дела здесь получается бесконечно сложная логическая машина, которая может сильно, ну, объяснять реальную природу. Она может, в принципе, решать очень сложные логические задачи. Вот. И это не может сделать система, которая работает на текстовых паттернах. Обязательно это должна быть система прогностическая. Вот даже даже математически это так.

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

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

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

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

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