Gamio AI - текстовое приключение на русском языке, основанное на искусственном интеллекте.

Как бы пафосно это не звучало, мне удалось создать рабочую версию этой амбициозной идеи

Основной интерфейс
Основной интерфейс

Начало всех начал

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

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

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

Так и появилась первая версия Gamio AI.

Самая ранняя версия Gamio
Самая ранняя версия Gamio

В самой первой версии я прибегнул к ресурсам компании Ai21 Labs.

На тот момент у них было две GPT-like модели: одна имела 7 млрд параметров, другая 178 млрд параметров. Они предоставляли возможность бесплатного обучения нейронной сети.

Я собрал CYOA истории и отправил им. Через несколько недель я получил две модели, имеющие 7 млрд параметров (вторая была основана на предыдущей). Все они понимали исключительно английский язык (пришлось использовать переводчик).

Две обученные модели.
Две обученные модели.

Из этого всего вытекли целых две крупных проблемы.

  • Ужасное, просто ужасающие качество полученной модели. (Кто в этом виноват - не ясно)

  • Огромная цена на обслуживание такой модели. Если каждый день 100 человек будут играть в Gamio, то мне бы понадобилось 70 000 руб/месяц на поддержание работоспособности проекта.

С таким настроем проект проработал два дня.

Образец раннего ИИ
Образец раннего ИИ

Возрождение проекта

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

Разработка сайта

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

Мне был удобен язык Python, поэтому использование открытого фреймворка Django - было правильным решением.

Главная страница Gamio
Главная страница Gamio

Сайт было решено оформить в простом, тёмном стиле. Никаких проблем с созданием дизайна не возникло.

Для реализации всех своих творческих идей, я использовал WebFlow.

Капча

Не хотелось иметь ботов на своём сайте. Использование стандартных reCAPTCHA или hCAPTCHA меня не устраивало. Их можно легко обойти.

Поэтому я решил изобрести велосипед под названием fiCAPTCHA. Это самостоятельный модуль для Python, который генерирует изображение, на котором нужно найти определённый объект.

Пример сгенерированной капчи
Пример сгенерированной капчи

Может это банально, но боту её точно не пройти.

Вот таким кодом идёт определение координат клика и дальнейшей проверки. Истинные координаты хранятся на серверной стороне.

function click(event) {
    var xCoordinate = event.offsetX;
    var yCoordinate = event.offsetY;
    $.ajax({
        type: 'POST',
        url: '/app/captcha/c',
        data: {...},
        success: (function(data){
            ...
        })
    });
}

Цензура

В Gamio Ai присутствует некое сообщество, высказывания которого нужно регулировать.

В этой задаче было решено использовать искусственный интеллект. А точнее BERT-модель, которая классифицирует текст по двум категориям: 0 - допустить; 1 - не допустить.

Каждый мир и комментарий имеет дополнительно поле в своей базе данных.

class ...(models.Model):
    ...
    is_reviewed = models.BooleanField(default=False)

Во время проверки нейронной сетью, запись или удаляется, или поле is_reviewed принимает значение True

Как показала практика, такое решение было верным. ИИ не делает ошибок.

Искусственный интеллект

90% успеха Gamio Ai зависит от качества нейронного движка, который обслуживает клиентов.

Для задачи генерации текста отлично подходит архитектура GPT-2, которая находится в открытом доступе.

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

Тонкая настройка

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

График потерь во время обучения
График потерь во время обучения

Объём обучающих данных был 45 мб. Это мало, но достаточно.

> Ты [действие]
[результат]

> Ты [действие]
[результат]

Нейронная сеть просмотрела этот файл 10 раз. Результат меня порадовал.

На данный момент в Gamio используется именно данная модель.

Образец игры
Образец игры

Для удобства, игроку предоставляется полный контроль над историей.

Можно редактировать любой фрагмент текста;

Редактирование истории
Редактирование истории

Дополнять текст через нейронную сеть;

Дополнение ИИ
Дополнение ИИ

И возможность перегенерировать последнее действие;

Что дальше?

Это только начало...

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

Если вы заинтересовались Gamio Ai и хотите следить за его развитием:


Gamio Ai - https://gamio.ru

Телеграм - https://t.me/gamio_n

Вконтакте - https://vk.com/gamio_ru

Дискорд - https://discord.gg/gvJFRz4f7b


Спасибо за прочтение :)

Комментарии (24)


  1. peacemakerv
    15.05.2022 14:02

    Мдееее


    1. 0x7o Автор
      15.05.2022 14:17

      Во всех действиях употребляйте "Ты" или "Вы", иначе это сбивает ИИ


      1. peacemakerv
        15.05.2022 14:24

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


        1. 0x7o Автор
          15.05.2022 14:25

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


  1. haldagan
    15.05.2022 14:07

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

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

    Есть ли у вас какие-либо планы развития в эту сторону или проект так и останется песочницей в чистом виде? Или проект из чисто академического интереса?


    1. 0x7o Автор
      15.05.2022 14:16

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


    1. DrinkFromTheCup
      15.05.2022 14:38
      +1

      Смотрите шире.

      Это Dungeons & Dragons - но без необходимости закупаться рулбуками на $200+, учить правила и искать dungeon master'а, чтобы он тебя поводил.

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

      В этом проекте - есть потенциал.


      1. haldagan
        15.05.2022 15:38

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

        Это Dungeons & Dragons - но без необходимости закупаться рулбуками на $200+, учить правила и искать dungeon master'а, чтобы он тебя поводил.

        Это хорошая финальная цель, но во-первых про это в тексте ни слова, а во-вторых - ДМ в DnD это про Сюжет и Взаимодействие, а рулбуки - это про Систему.

        Собственно пока что ИИ не может полноценно заменить ни одну из основных частей. Самое близкое, что может быть достигнуто (ИМХО), это человек описывает игровую систему и прорабатывает сюжет, а ИИ берет на себя взаимодействие с игроком.

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


        UPD: Это я к тому, что (ИМХО) ИИ сможет научиться проводить DnD-подобные кампании на уровне среднего ДМа по описанию сюжета примерно тогда же, когда ИИ научится писать программы по ТЗ.


        1. 0x7o Автор
          15.05.2022 15:43

          планы развития были озвучены.


      1. RiSilver
        16.05.2022 08:13

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


    1. domix32
      16.05.2022 11:35

      Це ж будет AI Dungeon, только на русском. Правда у того тоже проблем дофига.


  1. peacemakerv
    15.05.2022 14:32

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

    Hidden text


    1. 0x7o Автор
      15.05.2022 14:35

      Используйте или "> Ты" или "> Вы"!

      Ничего другого быть не должно


      1. peacemakerv
        15.05.2022 14:37

        На скрине есть и "ты" и "вы". Но ок, спасибо.


        1. 0x7o Автор
          15.05.2022 14:38

          они не должны смешиваться. это путает и без того глупый ИИ


          1. peacemakerv
            15.05.2022 14:40

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


            1. 0x7o Автор
              15.05.2022 14:42

              Да-да я слишком глуп, чтобы догадаться. Спасибо, что подметили это.

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


  1. GabrielG
    15.05.2022 15:10
    +1

    Жаль, что пока не играбельно, но забавно.


    1. ainu
      15.05.2022 23:03
      +2

      Ты находишь несколько газет

      Любой мастер НРИ скажет, что так нельзя. Это как "я бью дракона мечом и убиваю его" или "я открываю сундук и вижу корону и плазмоизлучатель". Нельзя даже "я открываю сундук". Можно "я пытаюсь открыть".


      1. GabrielG
        16.05.2022 09:56

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


  1. Vsevo10d
    16.05.2022 03:53

    Да твою ж, даже с нейросетью не получилось!! хДДД

    Hidden text


  1. Liikhsanov
    16.05.2022 17:39

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

    Попробую еще вечером с ПК)


    1. 0x7o Автор
      16.05.2022 17:41

      Вот это да...

      Будет здорово, если вы напишите мне на почту с подробностями вашей проблемы :) me@0x7o.link


  1. Tiendil
    16.05.2022 18:20
    +1

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

    Или, зачем собственно и пишу комментарий, можно попробовать сделать текстовую интеграцию со Сказкой:

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

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

    Среди игроков точно найдётся хорошее количество тестировщиков.