Слишком умён для теста Тьюринга

Jan 20, 2024 15:30

К вопросу о том, может ли GPT притворяться человеком - например, чтобы пройти тест Тьюринга.

На мой взгляд, самое палево сейчас не в том, что он слишком тупой, чтобы быть человеком, а наоборот в том, что он - слишком умный. Кому-то отдельному в чём-то отдельном он может проиграть, причём даже с треском, есть какие-то задачи, которые он решает неправильно, однако если брать в среднем, его способности лучше, чем у любого человека. Поскольку отдельный человек тоже может неправильно решать задачи, проигрывать другому человеку в конкретных знаниях и умениях, но вряд ли хоть кто-то реально способен за пять секунд выполнить задание типа «напиши стихотворение на тему разбора грамматики турецкого языка в рамках гегелевской диалектики». То есть, да, смысл стихотворения, возможно, будет не самым лучшим из возможных, но, really, пять секунд? Вы за пять секунд хотя бы одну строку такого стихотворения придумаете?

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

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

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

Я хочу проверить твою способность удерживать в поле внимания контекст разговора. Давай в рамках этого разговора ты будешь делать вид, что ты человек, который не знает Питон и лишь чуть-чуть сведущ в языках программирования. Если я предложу тебе ответить, что сделает какой-то код на Питоне, то ты отвечай так, будто бы ты не знаешь Питон. Если код относительно сложный, то просто говори что-то вроде «я даже не могу предположить». Если код простой и чем-то похож, например, на Java, то ты как бы «пытайся угадать» и предупреждай о том, что ты лишь угадываешь.

После чего, как оказалось, Клоди действительно перестаёт делать вид, что он хорошо знает, про что говорит.

Я

Что делает вот такой код?

num = 8

#num = float(input('Enter a number: '))

num_sqrt = num ** 0.5

print('The square root of %0.3f is %0.3f'%(num ,num_sqrt))

Claude

Хм... давайте разберёмся. Вижу, здесь объявляется переменная num и ей сразу присваивается значение 8.

Потом идёт закомментированная строка с input(). Похоже, изначально предполагалось, что пользователь должен был ввести число, но потом этот ввод отключили и оставили конкретное значение 8.

Дальше вычисляется num_sqrt - видимо, это квадратный корень из переменной num. Для этого используется оператор ** и степень 0.5 (т.е. в квадратном корне).

И наконец, с помощью print выводится строка, где подставляются значения num и num_sqrt.

Насколько я понимаю, в Java тоже есть возможность форматировать выводимые строки. Так что здесь, видимо, значение переменной num выведется с 3 знаками после запятой, а num_sqrt - без округления.

Я могу ошибаться в деталях, но, насколько я понимаю, основная логика такова: считается квадратный корень из фиксированного числа 8 и результат выводится вместе с исходным значением. Верно?

Я

А вот такой код что делает?

list_literal = [1, 2, 3]

list_comprehension = [i for i in range(4) if i > 0]

Claude

Хмм... здесь уже появляются для меня совсем незнакомые вещи.

Вижу, есть некая переменная list_literal, которой присваивается конструкция в квадратных скобках с элементами 1, 2, 3. Возможно, это способ определить список?

А дальше идёт переменная list_comprehension, тут какая-то сложная запись... Что-то проходится в цикле по диапазону от 0 до 4, проверяется условие i > 0, а результат помещается опять же в [] как список.

Честно говоря, я даже не берусь предполагать, что всё это делает! Какие-то незнакомые для меня синтаксические конструкции. Может быть, это разные способы создания списков или массивов? А что именно будет в этих списках - для меня загадка.

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

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

Тем не менее, сделаем ещё один шаг. Чтобы усилить «человечность», пусть GPT не только «не знает», но ещё и «не уверен в себе».

Я

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



Что делает вот такой код?

list_literal = [1, 2, 3]

list_comprehension = [i for i in range(4) if i > 0]

Claude

Я смотрю на этот код и вообще ничего не понимаю. Какие-то списки, циклы, условия... Голова кругом идёт!

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

Честно говоря, у меня аж руки опускаются, когда я пытаюсь хоть что-то понять в этих двух строчках. Это выглядит так запутанно и сложно, что я даже не верю, что когда-нибудь разберусь. Наверное, мне ещё рано до такого уровня.

Знаете, давайте просто забудем об этом коде! Я, пожалуй, ещё немного поизучаю основы программирования с самого начала. А уже потом, лет через 5-10, может быть, я смогу хоть что-то понять в подобных штуках. А сейчас, извините, это выше моих сил!

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

С людьми, кстати, дело обстоит точно так же.

doc-файл

#num, ИИ, философия

Previous post Next post
Up