ИИ мечты: сценарий "жизни"

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

Пример игры на Twine
Пример игры на Twine

Есть такие движки, Twine и QSP. Они позволяют делать длинные, сложно сочетаемые истории, которые позволяют совершить переход в зависимости от ситуации.

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

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

ИИ мечты: сценарий "жизни"

Но это как-то слишком... предсказуемо. Сделаем поживее?

Добавляем личности и иррациональность (FPT+Kaseosa)

Теперь остаётся прикрутить Kaseosa для алаймента и мы получим дикую ситуацию: множество персонажей проходят историю, но для игрока это расписывается словами, а для НПЦ - исключительно свойствами. При этом разные персонажи в одной ситуации могут выбрать разные опции (согласно навыков/алаймента).

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

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

The Sims - на рынке взаимодействия персонажей уже давным-давно.
The Sims - на рынке взаимодействия персонажей уже давным-давно.

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

Добавляем проблемы: фантазия.

Что нужно, чтобы у сущности появилось воображение? Да в целом ничего особенного, просто нужно его из "реального мира" кинуть в манямирок, где оно сможет выбирать действия на 2-3 шага вперёд таким образом, который будет наиболее рационален.

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

ИИ мечты: сценарий "жизни"

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

Добавляем проблемы: обучение.

Обучение - это довольно упоротая тема и к нему можно подойти с нескольких разных сторон. Но для нужд этой статьи я возьму только один - "нераздельная история". Дешёвый вариант - это передать НПЦ id истории и выставить в FPT "желаемость" на 0.

Выгода от такого решения грандиозна: нам нужно всего лишь несколько int'ов и мы можем "обучить" персонажа боевым искусствам просто добавив ему в список историй ещё 1 id. Проблема же в том, что истории - всегда одинаковые. С другой стороны, кого это волнует так уж сильно?

С третьей стороны, у нас получается интересный аспект: один НПЦ может научиться чему-то у другого просто наблюдая. Если живёшь рядом с драконом - заговоришь на драконьем.

Dwarf Fortress - генератор историй... и да, каждое слово в этом списке имеет смысл, который учитывается игрой. Ну и главное - это просто один из сотен/тысяч НПЦ, а не какой-то сюжетный персонаж (хотя и историческая личность).<br />
Dwarf Fortress - генератор историй... и да, каждое слово в этом списке имеет смысл, который учитывается игрой. Ну и главное - это просто один из сотен/тысяч НПЦ, а не какой-то сюжетный персонаж (хотя и историческая личность).

Но есть и ещё одна проблема: перебирать 256 историй по 256 мемов - это довольно дорого, это 65536 операций сравнения статок, по FPT+kaseosa это 65536*21 = 1'376'256 вычислений (это только по алайменту, не считая навыков). Дорого!

Оптимизируем!

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

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

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

И вот, на 52-й строке, наш примитивный сценарный ИИ обретает полноценное сознание. И всё бы тут было хорошо, но вы же не забыли, что это такой же образ, как и все остальные?

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

И вот так, на 56-й строке, у нас получился сильный ИИ. Склонный к расколу личности (DSM-5 DID/OSDD, МКБ10 F44). А всё, чего мы хотели - это сэкономить немного процессорного времени.

Фиксим баги "всплесков эмоций".

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

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

www.youtube.com/watch?v=gG77O_TVmIs
www.youtube.com/watch?v=gG77O_TVmIs

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

1212 показов
242242 открытия
2 комментария

Допишешься и в итоге заметишь, что не ты играешь в игру, а она играет в тебя. Заметишь, как она с помощью твоих рук дописывает себе недостающие качества, добавишь ей памяти, способность самобучения. Потом загрузишь в интернет, и всё. Скайнет

Ответить

Я уже прошёл Вангеров, we are the Borg.

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

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

Ответить