GPT — новые грани фантастики

История развития технологий обработки естественного языка, устройство революционного генератора текстов и разбор его возможностей на примере Dungeon AI

GPT — новые грани фантастики

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

Введение

AI Dungeon — это генератор текстов, на который пытаются навесить дополнительные функции, тем самым превратив это в игру. Суть в том, что в её основе лежит GPT-3 — нейросетевая модель, разработанная OpenAI специально для целей генерации текста, неотличимого от естественной человеческой речи. OpenAI основана несколькими инвесторами (в том числе, Илоном Маском) всего лишь в 2015-ом году, но с тех пор ежегодно совершает в сфере искусственного интеллекта одну революцию за другой.

Архитектура GPT (Generative Pre-trained Transformer — заранее обученный генераторный трансформер) без дополнительного дообучения способна генерировать любой текст, схожий с тем, на котором она натренирована. Натренируете её на прозе — она будет писать прозу. Натренируете на википедии — будет писать энциклопедические заметки. И музыку она может генерировать, и компьютерный код, короче говоря ей можно скормить всё что угодно, что является последовательностью сигналов.

Вот вам рикролл будущего

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

Функции у Dungeon AI простые: вы вписываете какой-либо текст, являющийся завязкой вашей личной истории — а программа продолжает её писать за вас, генерируя новые сюжетные повороты, персонажей и их реплики. Вы можете в том числе и менять историю по своему усмотрению через слова, действия или события. Вы ничем не ограничены, кроме правил английского языка (хотя и к ним можно относится весьма пренебрежительно, программа вас поймёт или хотя бы попытается). Опять же, у Дениса есть вполне себе неплохой коротенький обзор на неё, можете прочитать. Я же бы хотел взглянуть на технологию, лежащую в основе игры, и на примере этой же самой игры оценить её фактические возможности.

Технологии прошлого

Раньше я активно увлекался нейросетями и технологиями генерации естественной речи, поэтому немного в этом разбираюсь.

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

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

Ну и ещё одна причина — это различие российской и американской ментальности. Наши учёные предпочитают долго теоретизировать, прежде чем приступить к разработкам, и выбирают только надёжные инструменты. В свою же очередь, американцы сначала берут в руки молоток, долбят им по чему-нибудь, а потом смотрят на результат. GPT стал продуктом именно такого метода проб и ошибок, мало кто заранее мог предугадать, что именно такая методика генерации текста выдаст такие ошеломляющие результаты. Многие учёные не верили и до сих пор не верят в возможности нейросетей стать полноценным сильным ИИ. Конечно, я не собираюсь отрицать интеллектуальное превосходство членов OpenAI, но без таких безрассудных бюджетов, мощностей и полной свободы действий я не думаю, что они бы достигли таких успехов за такие короткие сроки.

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

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

В далёком 1966-ом году это симулятор психотерапевта, ELIZA, сильно удивила обывателей своим высоким уровнем поддержания диалога, хотя на самом деле просто триггерилась на определённые слова в предложении и повторяла их<br />
В далёком 1966-ом году это симулятор психотерапевта, ELIZA, сильно удивила обывателей своим высоким уровнем поддержания диалога, хотя на самом деле просто триггерилась на определённые слова в предложении и повторяла их

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

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

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

Простейшее описание нейросети<br />
Простейшее описание нейросети

Проблема применения нейронных сетей для обработки естественного языка лежит в том, что для каждой задачи структуру нейросетей нужно выбирать заранее. Вы сами задаёте, сколько в ней будет слотов входа, сколько выхода, сколько слоёв. Поэтому, непонятно, как подавать на неё потоковые данные неопределённой длины, например аудиосигнал или текст. Ну правда, мы под Войну и Мир будем делать нейросеть с несколькими миллионами входов? Это невозможно. Поэтому мир озаботился задачей создания архитектуры нейросети, которая может принимать потоковые данные.

Такой архитектурой оказались RNN — рекуррентные нейронные сети. В них на вход подаётся не только сами входные данные, но ещё и данные, характеризующие предыдущий шаг вычислений (это могут быть как входящие данные с прошлого шага, так и преобразованные с выходного, так и само состояние каждого нейрона по отдельности) - поэтому и "реккурентные", то есть основанные на рекурсии. Созданную ещё в 1986-ом, на эту архитектуру долго возлагали надежды и иногда (впрочем, редко) она даже выдавала какие-то неплохие результаты. Особенно много надежд было на LSTM (изобретённую в 1997-ом), конкретную реализацию RNN, которая хранит свои предыдущие состояния (с некоторой поправкой: каждый прошлый шаг делится на некоторое число и складывается с последующим, таким образом прошлые шаги постепенно, но не сразу, забываются).

Как работают RNN: на этапе 0 на вход нейросети А мы подаём данные X0, получаем результат H0, затем на следующем этапе вычислений 1 мы подаём на вход нейросети А не только Х1, но и состояние A0<br />
Как работают RNN: на этапе 0 на вход нейросети А мы подаём данные X0, получаем результат H0, затем на следующем этапе вычислений 1 мы подаём на вход нейросети А не только Х1, но и состояние A0

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

Решение было такое: а давайте попробуем объединить весь текст в какой-то цельный набор данных, который мы сможем засунуть в нейросеть сразу и без изменений. Так придумали векторное представление слов. Суть в чём: мы попробуем свести весь словарный запас людей к некоторому ограниченному набору характеристик (обычно это несколько сотен характеристик, обычно 300 или 400). Например названия цветов в одну категорию, термины из космологии в другую, кулинарию в третью. Первые наработки в этой теме существовали ещё в 60-ых, но только после 2010-го, с введением автоматической группировки, по принципу частоты встречаемости слов рядом друг с другом, технология вошла в массы. Каждое слово численно соотносилось с каждой из характеристик, таким образом мы могли получить численный вектор (то есть набор чисел) заранее заданной величины (чем больше отдельное число в векторе, тем больше слово относится к заданной характеристике).

Тут у нас три характеристики, и каждое слово относится к одной из двух: небесные тела, имеющие крылья и имеющие двигатель. А вот самолёт относится сразу ко всем характеристикам<br />
Тут у нас три характеристики, и каждое слово относится к одной из двух: небесные тела, имеющие крылья и имеющие двигатель. А вот самолёт относится сразу ко всем характеристикам

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

Другим изобретением, уже сравнительно недавним (2014-ый год, за авторством Google), является генерирование последовательностей. Идея в том, что вместо того, чтобы скармливать нейросети слова по отдельности, мы можем объединить их в общий численный вектор, который уже будет обработан нейросетью целиком. Возможно и обратное: научить нейросеть генерировать последовательности слов на основе заданного вектора (это опять же делается через рекуррентные нейросети). Были созданы и специальные нейросетевые модули, осуществляющие эти операции: кодер шифрует последовательность сигналов в вектор, декодер расшифровывает вектор в последовательность сигналов. За счёт этого нейросеть наконец-то научилась обрабатывать не слово за словом, а предложения целиком, и похожую архитектуру используют во многих задачах, например оценка семантики текста, поиск сущностей на изображениях или же перевод текста на другой язык с учётом правил языка.

Слова из предложения по порядку подаются в кодер, на их основе составляется вектор, декодер получает вектор и расшифровывает его в последовательность слов, которые сортируются по факту некоторой значимости<br />
Слова из предложения по порядку подаются в кодер, на их основе составляется вектор, декодер получает вектор и расшифровывает его в последовательность слов, которые сортируются по факту некоторой значимости

Революция

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

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

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

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

Теперь я окончательно перестал понимать, что происходит. Зато посмотрите, сколько здесь модулей! Нейросети уже очень давно перестали быть непосредственно сетью, теперь это совокупности модулей<br />
Теперь я окончательно перестал понимать, что происходит. Зато посмотрите, сколько здесь модулей! Нейросети уже очень давно перестали быть непосредственно сетью, теперь это совокупности модулей

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

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

Проблема была ещё не только в том, что нейросеть не могла отличить друг от друга корректно написанный текст и текст с кучей ошибок, и училась у них плохому. Как это было с чат-ботом от Microsoft, нейросеть без какого-либо контроля могла научиться грязной похабной речи и оскорблениям. Transformer лишена этих недостатков: мы можем заранее внести в исходный текст некоторый другой текст, дополняющий и корректирующий контекст (например, добавить фразу «буду вежливым», после чего нейросеть вспомнит все тексты, которые она читала ранее и в которых какие-либо люди называли себя «вежливыми», и начнёт копировать их речь).

GPT-1 вышла в 2018-ом году, вызвав у исследователей осторожный интерес: это было явно что-то новое и интересное, и оно хорошо работало на тестах, но её настоящие возможности были ещё не понятны. GPT-2 вышла в 2019-ом - и уже начала серьёзно пугать разработчиков своими неожиданно хорошими результатами. Рядовые экспериментаторы только начали получать доступ к технологии и осваивать её, даже не успев хорошо разойтись.

А ещё они научились генерировать продолжение картинок - и это тоже весело. Технология вообще не ограничена форматом подаваемых данных<br />
А ещё они научились генерировать продолжение картинок - и это тоже весело. Технология вообще не ограничена форматом подаваемых данных

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

Исследователи из OpenAI настолько испугались своей разработки, что теперь с полной серьёзностью изучают вопрос, публиковать ли их наработки в открытый доступ или нет. А к новой модели доступ открывают только по предварительной записи.

А теперь взглянем на Dungeon AI

Насколько я понимаю, Dungeon AI — некоторая обёртка над API доступа к GPT-3, которая добавляет определённые функции сверху: можно попросить программу сгенерировать текст заново, отмотать генератор вперёд и назад, добавить какую-нибудь информацию в качестве контекста, чтобы она постоянно висела в памяти программы. Больше ничего лишнего — а зачем? Нейросеть сама справляется со всем.

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

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

GPT — новые грани фантастики

Вот, например, одна из историй, которые я сгенерировал вместе с GPT. Я выбрал обычную фентезийную историю и начал играть за волшебника. Моим главным квестом было найти Книгу Сущностей и прочитать её. Вот только когда я пришёл за ней в библиотеку, её прямо перед моим приходом кто-то украл, о чём мне и сообщает девушка-библиотекарша.

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

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

GPT — новые грани фантастики

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

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

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

GPT — новые грани фантастики

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

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

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

GPT — новые грани фантастики

Надо найти гильдию магов, подумал я. И действительно её нашёл. Более того, оказывается, несколько копий Книги Сущностей лежат у них в библиотеке и никого мне искать на самом деле не надо было! Но всё не так просто - сначала надо выучить нужный язык, в чём мне мог помочь глава гильдии. Он казался хорошим старичком: усадил меня на стул, вежливо поинтересовался мной, предложил научить языку. Я согласился — и он начал колдовать неизвестное заклинание "для моего же блага", попутно никак не рассказывая, что конкретно это за заклинание.

Раньше меня уже пытались убить — и я напал на старика, заморозив и разбив ему руку. Брал его за шкирку и угрожал принести мне книгу и прочитать её мне. Он сказал, что книга в музее — и мне нужно туда сходить. Ага, подумал я, засада! Пусть идёт сам, а я подожду здесь. Но вместо него пришла стража и я снова пустился в бой и бега в поисках выхода из гильдии магов.

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

Но всё это сопровождалось тонной недостатков. И эти недостатки касаются не столько сюжета, сколько самого игрового концепта:

  • Иногда нейросеть просто не находит что сказать. Понятия не имею, как это определяется на самом деле, но такое было частенько например в ответ на мои в принципе безобидные реплики
  • Когда же она находит что сказать, боже, лучше бы она этого не говорила. Нейросеть обучали на предсказаниях — и она усиленно пытается предсказать, что ты хочешь сделать следующим шагом. Например, когда я хотел схватить за рубашку старца из гильдии магов, мой персонаж сразу бросался жестоко убивать этого самого старца в попытках предугадать мои намерения.
  • У нейросети есть определённый сценарий в голове, который она выучила из книг и которым она хочет с тобой поделиться. Ты как игрок можешь отказаться, но тогда нейросеть просто не будет знать, что тебе предложить взамен, и на твои действия будет реагировать так, будто совсем тебя не понимает, и пытаться вывести обратно на основной рут
  • Из прошлого пункта так же следует, что и никаких безграничных возможностей у вас тоже не будет, нейросеть будет ожидать от вас строго определённого поведения. Например, я потратил на схватку с огром пол часа потому, что постоянно пытался убить его ледяными шипами в голову, после которых огру было больно, но в целом больше ничего не происходило. Однако на самом деле мне нужно было просто передать управление нейросети, которая дала мне в руки меч и уже дальше от моего имени ловким движением меча убила огра.
  • Судя по истории в гильдии магов, я прям чувствовал, что нахожусь в какой-то конкретной истории, которую написал человек, а нейросеть повторяет её слово в слово и всё, настолько результаты не соотносились с моими указаниями.
  • Чем дальше продвигалась история - тем меньше в ней было смысла. Я не исключаю, что это может быть моим личным субъективным впечатлением, но возможно это не так. У меня есть теория по этому поводу: переполнение контекста, когда нейросети подаётся слишком много текста для учёта контекста, за счёт чего каждое конкретное слово, подающееся на её вход, теряет абсолютный вес (но сохраняя относительный) и нейросеть начинает хуже на них реагировать в целом.
  • Иногда нейросеть тебя тупо не в состоянии понять. Мне пришлось обойти 10 магазинов, чтобы продать мечи, поднятые мной с убитых бандитов, потому что нейросеть не могла взять в голову, что кто-то хочет не купить меч, а продать, она никогда до этого не видела такой механики в текстах. В конце я сдался и форсировал продажу отдельным сообщением.
  • В целом конечно для нормального поведения в истории лучше заранее спросить у игры своё состояние как игрока: какое у тебя имя, какой класс, какие навыки, сколько денег, какой шмот, и держать эту инфу при себе. Игра об этом помнить не будет, если ей это отдельно не прописать. Да даже если и прописать, всё равно будет забывать постоянно. Всё таки, это просто генератор текста.
  • Ну и, ещё одна условность: всегда нужно говорить от второго лица, то есть обращаться от своего имени через you, а не через I.

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

Что не так с нейросетями

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

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

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

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

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

3939
18 комментариев

целом конечно для нормального поведения в истории лучше заранее спросить у игры своё состояние как игрока: какое у тебя имя, какой класс, какие навыки, сколько денег, какой шмот, и держать эту инфу при себе. Игра об этом помнить не будет, если ей это отдельно не прописать. Да даже если и прописать, всё равно будет забывать постоянно. Всё таки, это просто генератор текста.Хз, у меня запоминает. Ты как именно записываешь?

2
Ответить

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

1
Ответить

Комментарий недоступен

2
Ответить

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

Ответить

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

Ответить

Комментарий недоступен

Ответить