Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Марковские цепи

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

Но вставлять в игру, занимающую около мегабайта, любую, даже самую маленькую БЯМ (большую языковую модель) — странная идея. Размер возрастёт в десятки раз, а фана будет — чуть.

Поэтому я решил попробовать использовать марковские цепи. Марковская цепь — это, если очень упрощать, состояния и вероятности перехода между ними.

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

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

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

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

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

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

1 комментарий
Мистер Икс 19 дн

Как насчет закинуть всё в «ЧатГПТ-4o» и спросить, чего бы там улучшить?

Евгений Степанищев 19 дн

Закинуть код или что? Если код, то не стоит переоценивать эту сетку, она с задачами проще справляется так себе. Я сейчас активно её использую, чтобы писать на Си++ (я этот язык почти не знаю), она там такую дичь творит даже на простых примерах (например, она мне в class enum методы создала, а методов там не может быть, видимо слово class её смутило).