«Оперативная память» основных имеющихся сейчас в наличии GPT-сетей устроена примерно так.
Из того, что вы с сетью наговорили, вырезается кусок, содержащий столько токенов, сколько вообще может потянуть сеть - от 2000 до 100 000 (так в Claude) - или меньше, если вы в текущей сессии меньше наговорили. Этот фрагмент подставляется на вход сети вместе с вашим текущим запросом.
Однозначно подтвердить или опровергнуть это мне пока не удалось, однако, похоже, кроме последнего фрагмента, некоторые реализации незримо для пользователя берут более ранние куски беседы и просят ту же сеть их кратко пересказать, чем как бы увеличивают себе оперативную память - пусть менее детально, но всё-таки передавая и более раннюю информацию тоже.
Как бы то ни было, вся «оперативная память» хранится либо просто в логе сессии, либо в этом кратком пересказе предыдущей беседы. По крайней мере, до тех пор, пока какие-то логи не используют для дотренировки сети (что тоже почти наверняка делается - в некоторых сетях уже об этом предупреждение висит).
Неявные пересказы можно было бы счесть «держанием в уме», но туда ведь попадает только то, что было сказано - подумать незаметно для пользователя и сохранить в это место GPT, похоже, не могут, хотя это, конечно, весьма хорошая идея, которую наверняка кто-то в какой-то момент реализует.
Так вот, из всего этого следует, что GPT не должны справляться с играми типа «угадай число» в роли ведущего - ведь для задумывания числа и удержания его в памяти им пришлось бы сообщить это число пользователю, а потом ещё и повторять его раз за разом, чтобы оно случайно не вылезло за предел токенов в «оперативной памяти».
Вот на этом-то как раз можно и пропалить такой ИИ.
…думал я.
А потом решил проверить.
И прямо с первой попытки все подозрения подтвердились: GPT-3.5 действительно мгновенно запутывался в своих показаниях и сливал игру за игрой, приходя к противоречию в своих ответах.
Шах и мат, аметисты.
…подумал я.
Однако аметисты оказались прочнее, чем кажется: Claude и Bing (хотя последнего почему-то пришлось уговаривать сыграть в эту игру особыми словами) шпарили как по нотам, не запалившись ни разу. Отыгрывали прямо всё чётко - не противореча ни одному своему предыдущему слову и потом на каком-то числе сообщая «угадал».
Если в случае, например, с игрой в данетки можно было бы предположить, что GPT во время обучения начитался этих данеток или просто подходящих историй и потому хранит их в постоянной памяти - непосредственно в весах нейросети - то с задуманными числами такой вариант уже как-то не особо подходит: числа он задумывает всё время разные и справляется с произвольным диапазоном. Да и вряд ли к играм со стапицот возможными для загадывания числами хоть где-то прилагались все варианты последовательности их угадывания.
Тем не менее, у меня, разумеется, есть гипотеза того, как и почему это работает.
Неожиданная.
Или нет.
Собственно, чтобы проверить неожиданная она или нет, мне интересно заслушать версии других людей по поводу того, как это могло бы работать.