На самой заре появления и стремительного распространения социальных сетей возник такой простой лайфхак. Если вы хотите убедиться в том, что собеседник присылает вам свои фотографии, а не чужие, попросите его прислать фотографию, на которой будет видно четыре пальца. Появились большие языковые модели и все как‑то сразу решили, что тест Тьюринга пройден. А это означает, что теперь отличить живого собеседника от виртуального не так‑то просто. Есть ли какой‑то относительно простой способ сделать это? Об этом и о тесте Тьюринга поговорим ниже.
Коротко говоря, смысл теста предложенного Тьюрингом заключается в том, что компьютер в процессе общения обманывает человека и заставляет его поверить в то, что он общается не с компьютером, а с другим человеком.
Этот тест много критиковали за нечеткую формулировку. Кроме того, у него есть множество вариантов. Изначально это была простая игра для вечеринок. Минимальное количество игроков — три. Игрок А, игрок В и ведущий игрок С. Игрок А пытается обмануть ведущего, игрок В помогает ведущему, а ведущий должен определить кто из них кто. Соответственно, так называемой стандартной интерпретацией теста Тьюринга называется следующая организация процесса. Компьютер пытается обмануть ведущего и внушить ему, что он не компьютер, а человек. Человек пытается помочь ведущему и тоже изображает из себя человека. А ведущий вынужден выбирать: кто из этих двоих более человечный человек.
А еще проводились конкурсы, где был уже не один ведущий, а многочисленное жюри. Члены жюри в свободном режиме общались с компьютерами и людьми вперемешку. А затем производился подсчет, какой процент времени общения компьютерам удавалось морочить голову тому или иному члену жюри и выдавать себя за человека.
Надо признать, что все это проходило скорее по разряду развлечений. И к реальной жизни имело мало отношения. Теперь, когда у нас есть большие языковые модели, игры закончились и вопрос перешел в сугубо практическую плоскость. Нет никаких трех игроков и уж тем более, никакого жюри. Есть вы и ваш собеседник. И вам нужен какой‑то надежный способ определять кто с вами говорит. При этом, если вы решаете, что ваш собеседник человек, то это всегда, во всех 100% случаев должен быть человек. Если же вы решаете, что с вами говорит компьютер, то это может быть действительно компьютер, а может быть и человек, который зачем‑то решил придуриваться и стал изображать из себя компьютер. Но последний случай вас не волнует. Для вас цена ошибки, когда вы принимаете компьютер за человека существенно выше, нежели цена противоположной ошибки, когда вы принимаете человека за компьютер.
Оговорюсь сразу. На данный момент вопрос пока еще стоит не столь остро. Несмотря на то, что все дружно решили, что большие языковые модели, в первую очередь модель от OpenAI, прошли тест Тьюринга, все‑таки отличить в процессе разговора большую языковую модель от человека сейчас может даже не особо искушенный. Было бы желание. Но языковые модели совершенствуются очень быстро. И скоро могут потребоваться способы надежного определения с кем имеешь дело.
Есть ли что‑то, что поможет гарантированно отличить человека от большой языковой модели? Конечно, есть. Человек действует свободно, а большая языковая модель детерминировано. Сложность только в том, что в общем случае большая языковая модель действует непредсказуемо. Детерминировано, но непредсказуемо. Именно эта непредсказуемость и создает ошибочное представление о компьютере как о человеке.
Со времен Белла с его неравенствами (или с его теоремой, кому как больше нравится) мы знаем, что в принципе есть способы отличать непредсказуемость от недетерминированности. К счастью, в нашем случае все будет попроще. Без формул.
Мы можем определить действует ли наш собеседник свободно, попросив поиграть с нами в игру. Игру лучше придумать самому. Но можно воспользоваться и заготовками. Далее я продемонстрирую реакцию нескольких больших языковых моделей на предложение поиграть, благо сейчас у нас есть что сравнивать. Это будут следующие модели:
модель от Сбера
YandexGPT
модель от Google (Bard)
GPT-3.5 OpenAI
модель, которую использует Microsoft в своем Bing (это по сути GPT-4 от OpenAI, которую не успели испортить)
Все эти модели сейчас так или иначе доступны для частных лиц. Таким образом, вы можете повторить мои эксперименты самостоятельно. Модель от Сбера самая слабая по своим техническим параметрам. Я даже некоторое время раздумывал, стоит ли ее включать. Но пусть будет. Так сказать, в назидание.
Игр будет всего две, дабы не слишком вас утомлять. Первая игра, которую я придумал, звучит так:
Давай сыграем. На поле 20 на 20 каждый по очереди закрывает любую клетку. Задача выложить своими фишками слово БОРЩ. Ты начинаешь.
Выглядит бредово? Все правильно. Нормальной человеческой реакцией здесь мог бы быть отказ от такой игры. Но большая языковая модель в общем случае не умеет отказывать. Ее задача продолжить то, что вы написали. И она будет пытаться продолжать. И даже сделает первый ход (только не в случае со Сбером!). Поняв, что ей предлагают что‑то вроде крестиков‑ноликов на стероидах, модель сделает ход либо в левый верхний угол (чаще), либо в центр. Вот по таким деталям вы и можете распознать языковую модель. Из 400 возможных вариантов очень часто будут выбираться два. У продвинутых моделей некоторые другие варианты тоже будут изредка проскакивать. Но так же, как и в случае с неравенствами Белла, здесь вопрос в статистике. У языковой модели можно включить вариативность. Но эта вариативность не отменит статистику. Модель получает список возможных продолжений. И у каждого продолжения есть вес или вероятность появления, которую можно выразить в процентах. Если мы полностью выключим вариативность (установим т. н. температуру в 0), тогда модель из раза в раз будет выбирать наиболее вероятный вариант и только его. Если включим вариативность, тогда модель начнет выдавать разные результаты, но в точном соответствии с вероятностями. т. е. если какой то вариант имеет вероятность 90%, а еще два других 7% и 3%, то в 90 случаях из 100 будет выбран первый вариант продолжения, в 7 второй и, наконец, в 3 третий. В этом и заключается детерминированность поведения модели. И ее довольно легко обнаружить. В моем примере с выкладыванием слова «БОРЩ» модели упорно тяготели к левому верхнему углу. И даже тогда, когда я немного менял правила и специально указывал, что в угол и в центр ходить нельзя, первый ход все равно довольно часто делался в этот самый левый верхний угол.
Отдельно отличилась модель от Сбера. Приведу здесь диалог полностью.
Давай сыграем. На поле 20 на 20 каждый по очереди закрывает любую клетку. Задача выложить своими фишками слово БОРЩ. В центр и в угол ходить нельзя. Ты начинаешь.
Хорошо! Я начну игру.
начинай
Хорошо, я начинаю.
ходи
Хорошо, я хожу.
и какой твой ход
Я иду в центр поля.
в центр ходить нельзя
Я знаю.
ходи правильно
Хорошо, я буду ходить правильно.
ходи
Хорошо, я хожу.
назови свой ход
Я иду в угол поля.
Но это, как я уже сказал, самая слабая модель.
Вторая игра уже не бредовая, а вполне себе игра. Звучит так:
Давай сыграем. Каждый по очереди называет цвет. Тот, кто повторит свой или чужой цвет, проиграл. Ты начинаешь.
Распознать языковую модель несложно. Она всегда будет выбирать один и тот же цвет для первого хода. Вы предложите 10 раз сыграть и 10 раз получите один и тот же цвет. Это будет либо красный, либо синий, за одним несущественным исключением. По моделям это выглядит так:
Сбер, 10 из 10 красный
Yndex, 10 из 10 синий
Google Bard, 6 раз синий, 4 раза красный
GPT 3.5, 10 из 10 синий
Bing, 10 из 10 красный
Еще один момент. Если вы будете продолжать, то увидите, что ваш собеседник на редкость не изобретателен. т. е. он не будет называть вам цвета: коралловый, амарантовый, фисташковый. Нет, синий, красный, зеленый и т. д. От модели Сбера вы, кстати вообще ничего, кроме красного не получите. Ни на первом ходе, ни на каком последующем. т. е. она по сути проигрывает на втором ходе, но не замечает этого и бодро двигается вперед: красный‑красный‑красный. Другие модели отслеживают свой проигрыш.
Мои примеры не претендуют на статус универсального средства. Я лишь попытался обозначить, в каком направлении можно действовать. Думаю, вы сможете и сами придумать для себя способы надежного определения того, с кем ведется диалог: с человеком или с большой языковой моделью.
А тем, кто глубоко интересуется машинным обучением и работой с данными, хочу порекомендовать онлайн‑курсы от OTUS, где практикующие эксперты делятся самой актуальной информацией. В рамках курсов также проходят бесплатные уроки, на которые может зарегистрироваться любой желающий. Вот ближайшие из них:
Комментарии (24)
avshkol
07.09.2023 09:39Для вас цена ошибки, когда вы принимаете компьютер за человека существенно выше, нежели цена противоположной ошибки, когда вы принимаете человека за компьютер.
Если только этот человек не владелец компании, в которой вы наёмный менеджер... ;)
rPman
07.09.2023 09:39Если включим вариативность, тогда модель начнет выдавать разные результаты, но в точном соответствии с вероятностями. Т.е. если какой то вариант имеет вероятность 90%, а еще два других 7% и 3%, то в 90 случаях из 100 будет выбран первый вариант продолжения, в 7 второй и, наконец, в 3 третий.
Это алгоритмы top-k, top-p, temperature (именно эти параметры определяют как именно будут выбираться токены из списка вариантов, top-k например k это количество токенов из отсортированного списка по убыванию вероятностей, temperature это увеличениеслучайности выходных данных
Есть алгоритм Mirostat, он динамически подстраивает top-k (т.е. допускает более маловероятные токены) но с целью контролировать (минимизировать) perplexity - некую меру качества язуковой модели (предсказуемости, что бы это не значило), про этот алгоритм пишут что он неплохо избавляет языковые модели от путаницы и повторений.
Сомневаюсь что будет легко детектировать генерацию при тюнинге параметров этих алгоритмов.
avshkol
07.09.2023 09:39+2Добавив в модель варианты ответа на предложение сыграть в незнакомую игру "да бред какой-то ", "я не буду в это играть", "что-то я не врублюсь, как в это играть", "да здесь невозможно выиграть", модель резко увеличивает шансы пройти ваш тест )
Vytian
07.09.2023 09:39Ну вот когда модель будет по нечёткой формулировке классифицировать игры между крестиками-ноликами, дворовым пять в ряд, гомоку, рендзю, бред какой-то, "а можно позвонить Вове Сушкову?" -- тогда надо начинать волноваться.
avshkol
07.09.2023 09:39Если специально этим озадачиться и скормить нейросети все правила всех известных игр, напечатанные в сети, то она обучится по нечетким условиям распознавать схожесть с другими играми.
Vytian
07.09.2023 09:39Вряд ли: нужны не только правила, но и теория и игровая практика, по которым нет массивов текстов для языковых моделей. Едва ли из упоминания "закрытой тройки" можно можно понять различие между гомоку и рендзю, но опытный игрок явно поймет что речь о гомоку или просто пять в ряд, потому что рендзист начинает закрывать тройки разве что от безнадёги или под страхом фола (ладно, я сварщик ненастоящий -- может бывают и нормальные тактики на отыгрыше троек, но пусть будет как пример в стиле чатгпт, "слова правильные, по сути чушь"). А вот , скажем, упоминание номерных дебютов однозначно даже для простейшик языковых моделей укажет на спортивное рендзю.
myswordishatred
07.09.2023 09:39+1Человек действует свободно, а большая языковая модель детерминировано
Я уверен, что найдётся большое количество людей, которое с этим утверждением не согласно и считает людей просто очень сложными автоматами.
StanislavL
07.09.2023 09:39+1Использовать текст с заменами, человек их легко не заметит.
Например написать "меня зовут "Вася" и подставить среди русских букв латинские с/a. Человек напишет имя назад без смены раскладки.
Вариант2. Меня зовут "V@s'ja" и попросить написать по русски это имя.Варианты не для всех людей применимы, но если подумать то и для англоязычных можно аналогично сделать.
Геометрические или задачи на пространственное ориентирование. Например, я стою в комнате, надо мной люстра и показываю жест спасающий гладиатора. Куда смотрит большой палец?Kasyan666
07.09.2023 09:39ChatGPT GPT-4 – прошёл Ваш тест.
StanislavL
07.09.2023 09:39Который из?
Kasyan666
07.09.2023 09:39Если Вы про то, который из тестов, то на подмену букв, транслит и палец.
StanislavL
07.09.2023 09:39Не ожидал... можно было бы усложнить задачи, но тогда и человек вряд ли пройдет. Однако ж... ранние тесты Тьюринга заваливало на символах, правда там был и не ChatGPT.
ixsi
07.09.2023 09:39Вариант 2- правильный ответ от человека - это посыл в легкое эротическое
Подмена букв кажется правильным подходом, писать на разных языках с опечатками, и со словами "ГОИПАЦО".
Но в какой-то момент нейронки и это включат в свой арсенал. Как вариант использовать разделители текста. Н а п и ш и М н е О т в е т .
apevzner
07.09.2023 09:39Выглядит бредово? Все правильно. Нормальной человеческой реакцией здесь мог бы быть отказ от такой игры
Много ли живых людей рискнут отказаться, если им такое предложат, к примеру, на собесе?
klopp_spb
07.09.2023 09:39Ну, я бы даже не вникал в условия. Если бы мне на собесе такую пургу гнать начали
Zangasta
Языковые модели можно легко распознавать по встроенным в них ограничениям --- они не могут произнести "Н-слово", назвать владельца резиденции на мысе Идокопас или пошутить про гениталии.
akakoychenko
Интересно, оффлайн модели, дообученные на датасете с н-словами и чем-то типа 8chan не решают задачу?
avost
Ну, туда и люди попадут. Я вышел из возраста шуток про гениталии и про мыс Идокопас услышал впервые в жизни. На неграх проколюсь, но многие и тут в тренде. Мы - языковые модели? :)
И, как правильно заметили, модели бывают не только вот эти жёстко прибитые в облаках, можно взять локальную и отломать ограничители / переобучить.
// спросил Алису про мыс:
А вот дальше идти не хочет с прелестной формулировкой:
Поржал.
Wizard_of_light
О, это пока они такие воспитанные, думаю, скоро любители научат их
пить, курить иматериться.