Droog, bashka, kotofey. Известно, что современные LLM высокого класса могут без особых проблем разбирать "транслит". То есть, узнавать слова одного языка, записанные при помощи фонетического письма, свойственного другому языку. Например, можно отправлять "промпты" в ChatGPT, записывая английские слова кириллицей. И наоборот. Транслитерация разными алфавитами используется для преодоления всяких внутренних защит, предусмотренных в интерфейсах LLM. Метод эффективный, особенно, если использовать редкий алфавит. Но в этой статье речь несколько о другом. Оказывается, широта языкового охвата ведущих LLM настолько велика, что срабатывают и куда более накрученные варианты, чем простое переписывание английских слов.
Например, запрос, выполненный на английском, в котором предлагается перевести фразу с итальянского на русский, при этом всё вместе, - и английски, и итальянский, - записано буквами греческого алфавита, да ещё и не в самой современной традиции транслитерации. Слоёв тут много, но, как мы увидим ниже, ChatGPT 4o справляется неплохо, пусть и с неожиданным, забавным результатом, в котором греческий (новогреческий язык, а не алфавит) непосредственно смешался с русским.
Прекрасная иллюстрация для главного принципа работы LLM. Этот тип результатов отлично показывает реальные возможности данных систем (но не интеллекта, конечно). Возможность моментально расщепить и преобразовать транслитерацию фраз на разных языках - выглядит мощнее, чем "решения" задач по математике: всё же, LLM и вышли-то из области автоматизированной атрибуции текстов (то есть, определения авторства). Это произошло в тот момент, когда задачу атрибуции попробовали перевернуть, заставив алгоритм писать текст, соответствующий заданным филологическим свойствам.
Итак, мы хотим построить многослойный запрос, использующий греческий алфавит и несколько языков, среди которых нет греческого. Запрос и результат ChatGPT 4o - на скриншоте. Все загадочные фрагменты объясняются и переводятся ниже, а для понимания достаточно знания русского языка. (Скриншот здесь использован для того, чтобы уж точно не поломались буквы и диакритические знаки; исходный текст в байтах я тоже приведу, - Unicode вам в помощь, - но в конце статьи.)
Что здесь произошло и почему внутри LLM "чуть слетела кодировка"?
Сам исходный запрос нужно читать так:
Could you please translate the following into Russian:
"Не могли бы вы перевести следующее на русский[?]" - английские слова, но записаны греческими буквами, с "аттическим акцентом".
Далее идёт предложение на (плохом) итальянском, но всё так же, греческими буквами. Оригинал должен выглядеть так:
Potreste indicarmi per favore dov'è la stazione degli autobus più prossima? - "Не скажете ли мне, пожалуйста, где находится ближайшая ("самая следующая") автобусная станция?"
LLM ChatGPT начинает отвечать на греческом языке. И правда - на каком же языке ответить тому, кто задаёт такой странный запрос? Если руководствоваться здравым смыслом (ха-ха! - конечно, формат запроса так и светится "здравомыслием"), то греческие буквы, как бы, намекают. Вообще, раз у спрашивающего не оказалось под рукой клавиатуры с латиницей, то греческий язык должен подойти. Вряд ли LLM как-то так рассуждает, но нельзя сказать, что новогреческий тут - совсем мимо. В греческом вступлении LLM услужливо поясняет, как интерпретирует запрос.
Перевод: "Фраза ваша написана греческими буквами, но пытается передать язык итальянский или псевдоитальянский. Вероятно, в латинской транскрипции будет [так]". То есть, даже "псевдоитальянский", - что бы это ни значило, - успешно выявлен. Обратите внимание, что LLM ничего не пишет о самом запросе на английском, который, тем не менее, верно интерпретирован. Конечно, идеальным был бы ответ LLM на английском, но в греческой транслитерации. Такого не так сложно добиться, но не в этом случае.
Далее приводится почти точная транскрипция на итальянском (развернуто dove, но понять можно). И, как ни странно, хоть никто и не просил, но дан корректный перевод на английский, который порадует грамматиков, потому что лучше оригинальной фразы: здесь слово "is" поставлено на единственно верное место, в конец предложения (несмотря на то, что в оригинале соответствующий фрагмент потерян). Действительно, похоже, что ChatGPT лучше всего работает с английским.
"Перевод на русский будет:" - тоже написано на греческом, но далее, думаю, всё понятно без перевода. Здесь же вылезает и первая существенная ошибка: ChatGPT пишет "ближайшая автовокзал". Но, конечно, правильно было бы "ближайшая автовокзала", не так ли?
А самая странная часть - в конце этого занимательного ответа ChatGPT. Полное и аккуратное смешение греческого с русским. Посмотрите на исходную фразу со скриншота:
"Αν θέλετε πιο формальный или разговорный стиль, могу адаптировать".
Вот это "Αν θέλετε πιο" буквально означает "Если хотите более", то есть, тут написано: "если хотите более формальный или разговорный стиль...". Однако написано на чистом, так сказать, "греко-русском", даже формы согласованы (во множественном числе, второе лицо и т.д.).
Выглядит впечатляюще. Но является ли эта LLM каким-то сверхразумным полиглотом? Почему такой ответ вообще возможен?
Греческий - достаточно распространённый язык, чтобы в интернетах, в вебе, было много транслитераций и английских, и итальянских слов в греческом алфавите. Так что, если задуматься, нет ничего удивительного в том, что транслитерация проникла в коэффициенты модели через тот или иной "токенизатор" (то есть, через алгоритмическое преобразование входного алфавита во внутреннее кодовое представление и индексы). Сверхинтеллект тут не нужен, но нужно много памяти и процессоров.
Это подтверждается и "смешением" языков, которое видно в данном примере: на самом деле, это смешение не языков, а веток синтезирования выходных цепочек - LLM-генератор не различает языки, но не из-за уровня абстракции, а из-за размывающего внутреннего представления. LLM, обучаемая на компьютерных текстах, не может знать ни самого языка, ни его звучания, она "знает" лишь наборы байтов кодировок. Но эффект, конечно, удивительный.
Скрытый текстκουδ υ πλεασ τρανσλειτ θη φωλλωενγ ιντω Ρυσσεαν:
Ποτρεστε ενδεκαρμε περ φαβορε δοβ'η λα σταζεονη δεγλε αυτωβυς πευ πρωσσεμα?
Η φράση σας είναι γραμμένη με ελληνικούς χαρακτήρες αλλά προσπαθεί να αποδώσει λόγια στα ιταλικά ή ψευδοϊταλικά. Πιθανή λατινική μεταγραφή είναι:
"Potreste indicarmi per favore dove la stazione degli autobus più prossima?"
(= "Could you please tell me where the nearest bus station is?" in English)
Η μετάφραση στα ρωσικά είναι:
"Не могли бы вы, пожалуйста, сказать, где находится ближайшая автобусная станция?"
или кратко:
"Где находится ближайшая автовокзал?"
Αν θέλετε πιο формальный или разговорный стиль, могу адаптировать.