![](https://habrastorage.org/getpro/habr/upload_files/d76/fd7/8e5/d76fd78e5080c7bdad02f4ca2e4cac34.png)
На самой заре появления и стремительного распространения социальных сетей возник такой простой лайфхак. Если вы хотите убедиться в том, что собеседник присылает вам свои фотографии, а не чужие, попросите его прислать фотографию, на которой будет видно четыре пальца. Появились большие языковые модели и все как‑то сразу решили, что тест Тьюринга пройден. А это означает, что теперь отличить живого собеседника от виртуального не так‑то просто. Есть ли какой‑то относительно простой способ сделать это? Об этом и о тесте Тьюринга поговорим ниже.
Коротко говоря, смысл теста предложенного Тьюрингом заключается в том, что компьютер в процессе общения обманывает человека и заставляет его поверить в то, что он общается не с компьютером, а с другим человеком.
Этот тест много критиковали за нечеткую формулировку. Кроме того, у него есть множество вариантов. Изначально это была простая игра для вечеринок. Минимальное количество игроков — три. Игрок А, игрок В и ведущий игрок С. Игрок А пытается обмануть ведущего, игрок В помогает ведущему, а ведущий должен определить кто из них кто. Соответственно, так называемой стандартной интерпретацией теста Тьюринга называется следующая организация процесса. Компьютер пытается обмануть ведущего и внушить ему, что он не компьютер, а человек. Человек пытается помочь ведущему и тоже изображает из себя человека. А ведущий вынужден выбирать: кто из этих двоих более человечный человек.
А еще проводились конкурсы, где был уже не один ведущий, а многочисленное жюри. Члены жюри в свободном режиме общались с компьютерами и людьми вперемешку. А затем производился подсчет, какой процент времени общения компьютерам удавалось морочить голову тому или иному члену жюри и выдавать себя за человека.
Надо признать, что все это проходило скорее по разряду развлечений. И к реальной жизни имело мало отношения. Теперь, когда у нас есть большие языковые модели, игры закончились и вопрос перешел в сугубо практическую плоскость. Нет никаких трех игроков и уж тем более, никакого жюри. Есть вы и ваш собеседник. И вам нужен какой‑то надежный способ определять кто с вами говорит. При этом, если вы решаете, что ваш собеседник человек, то это всегда, во всех 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, где практикующие эксперты делятся самой актуальной информацией. В рамках курсов также проходят бесплатные уроки, на которые может зарегистрироваться любой желающий. Вот ближайшие из них: