Опыт использования ChatGPT для локализации мобильных игр

Опыт использования ChatGPT для локализации мобильных игр

Продолжаем цикл статей об использовании нейросетей для упрощения нашей работы. Предыдущие две статьи были об использовании Stable Diffusion, Midjourney нашими художниками и о работе с ChatGPT нашего разработчика.

Сегодня мы поговорили с нарративным дизайнером нашей студии Дмитрием Коробейниковым о том, как локализовать мобильную игру и сохранить атмосферу.

  • Какие нейросети для локализации ты используешь?

Для локализации использую почти исключительно ChatGPT. Иногда в мелочах могу для оперативности спросить что-то у телеграм-бота. Еще мы тестировали новый продукт — CMS Gridly, заточенный именно под локализацию (спасибо ребятам оттуда за доброжелательность и готовность сотрудничать).

  • Чем занимается каждая из нейросетей?

Сразу про телеграм-ботов — не попадались качественные бесплатные. А если платить, то уже проще воспользоваться услугами самих OpenAI. Но когда ChatGPT не запущен, а мне нужно по-быстрому узнать больше о контексте какого-то английского слова или оттенках синонимов, то можно спросить и бота. Не для перевода.

ChatGPT же неплохо переводит, хорошо запоминает выданные условия, умеет учитывать контекст (иногда делает это даже без подсказки). Но главное неудобство при использовании его напрямую — формат чата.

CMS Gridly помимо самого контроля контента еще имеет подключаемые ИИ-модули для перевода. Там за основу взят, насколько я помню, тот же ChatGPT, но он удобно интегрирован в таблицу с переводами. К каждой строке можно написать промт, это просто философский камень для точного нейросетного перевода.

  • Как происходит процесс перевода?

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

При этом в формате чата ты просто отправляешь сплошной текст для обработки нейросети, пусть и с общим комментариями. Сразу много строк нужно отправлять разом, так что получается использовать только самый общий промпт. Потому что если писать промпт к каждой [строке], то это будет огромное количество запросов. Даже если они у вас безлимитны (например, вы переводите только через ChatGPT 3.5), все равно чудовищно много времени уходит на то, чтобы скормить отдельные строки чату и забрать обратно результат.

Конечно, хотелось бы позвать нейросеть в гости прямо в движок своей игры, чтобы она сама всё поняла, всё учла и аккуратно расставила по своим местам. Но для такого удовольствия есть всякие CMS, но их возможности по интегрированию не безграничны, особенно, если ваша игра не на каком-то суперпопулярном движке.

Но если нейросеть просто интегрирована в таблицу — это уже может сильно упростить жизнь и улучшить качество перевода.

Так что, если работать с ChatGPT в формате чата (как мы сейчас обычно и делаем), то в большинстве случаев максимум, что остается — это сгруппировать побольше строк по какому-то принципу, написать для них промпт и отправить одним запросом.

Еще была идея писать промпт для каждой строки в каких-то спецсимволах и объяснить нейросети, что в этих спецсимволах именно промпт, который надо воспринимать относительно соответствующей строки, а переводить не надо. Но пока оставили это только как идею, надо подумать над форматом импорта и экспорта данных.

Шаблоны для запроса
Шаблоны для запроса
  • Как научить нейросеть игровому сленгу? (какие инструменты нужны для этого?)

На самом деле, учить-то особо не нужно. Сейчас нейросеть и сама неплохо знает, какой сленг на разных языках существует в видеоиграх. Для простых случаев достаточно указать, что контекст текста — видеоигра или материал о видеоигре. Плюс всегда на помощь придет Translation Memory, главное "показать" ее нейросети.

Это касается уже не только игрового сленга. У вас могут быть персонажи, существа, предметы, характерные конкретному игровому миру или обновлению. Так, банальные "инструменты" или "секира" в вашей игре называются конкретным образом, и необходимо для этого понятия использовать всегда один и тот же синоним, чтобы игрок точно понимал, о каком итеме в его инвентаре идет речь. Это все можно записать в Translation Memory проекта или даже в локальную таблицу для конкретного обновления. Для каждого, например, ивента я создаю таблицу, куда записываю частые специфические термины (с их переводами) общей тематики, плюс нововведенные для этого ивента.

Пример фрагмента таблицы с терминами
Пример фрагмента таблицы с терминами

Приступая к переводу, просто говорю ChatGPT — используй при переводе вот такие пары терминов и их производные, если попадутся (и копирую в чат два столбца с парами терминов на исходном и целевом языке).

Обычно нейросеть их хорошо помнит, прекрасно понимает и применяет различные их грамматические формы. Могу вас заверить, всевозможные виды кавычек, пробелы, точки и их отсутствия в конце строк — уж точно принесли мне больше головной боли, чем приручение нейросети к сленгу.

  • В чем испытываешь трудности при локализации?

Кроме локальных капризов нейросети (та самая "оформительная" пунктуация, например, когда в конце текстов для кнопок вам не нужны точки, а в диалогах нужны), проблем не так уж много.

Безусловно, хуже всего ей дается человеческое, слишком человеческое. Оттенки эмоций, некие драматические или юмористические оттенки. Это еще и отследить сложнее, если вы не профессиональный переводчик. Если есть персонаж с особыми речевыми характеристиками и в целом стилем речи, то за нейросетью надо зорко присматривать, чтобы она сохраняла за ним стиль (если вообще сможет его воспроизвести). То есть надо сесть и поговорить с чатом по душам: "Вот смотри, есть персонаж Джек, он говорит так-то и так-то, использует такой стиль и такие слова. В дальнейшем, когда будут попадаться его фразы, я буду отдельно тебе указывать, что это говорит Джек. Применяй этот стиль и характерные слова при переводе его фраз". Да, чем более прямо и откровенно вы поговорите с нейросетью, тем будет лучше. Представьте перед собой угловатую железяку из старых фантастических фильмов про роботов. Такой добродушный, но глуповатый дворецкий. Хорошенько ей всё разъясняйте. И не стесняйтесь лишний раз повторить, пусть и слово в слово.

Качественно перевести художественный и яркий диалог с помощью нейросети сможет только профессиональный переводчик.

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

  • Как улучшить качество перевода?

Тут все просто. Промт и уточняющие беседы с чатом. Для минимального уровня качества здесь нужно:

а) давать нейросети отдельные термины для запоминания;

б) переводить на 1-2 известных вам языка результат хотя бы гугл-переводчиком (я перевожу гуглом на английский, яндексом на русский) и проверять;

в) там, где можно, давать контекст для строк/блоков строк. Можно указывать промт для каждой строки, но это мучение, если вы переводите без каких-то специальных CMS-инструментов, просто в чате;

г) следите за знаками препинания. В разных языках разные кавычки, расстановка пробелов (да, французы, я говорю о вас), иногда даже форма точки. Объясните нейросети правила для каждого языка;

Пример запроса для нейросети
Пример запроса для нейросети

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

  • Насколько эффективно и рационально обращаться к нейросети для локализации?

На это я уже преимущественно ответил в процессе. Переводить нейросетью — вполне эффективно и рационально, но чем художественнее текст, тем профессиональнее должен быть переводчик-надсмотрщик.

Всегда есть два края спектра: быстро = мало промпта/контекста = хуже качество; медленно = более детальный промпт = больше заморочек с выгрузками = лучше качество. Найдите себя где-то на этом спектре, хорошим помощником тут может быть специализированный CMS.

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

Последний лайфхак - необязательно быть максималистом в плане экономии денег на аутсорс-переводе. Выделите в тексте, который нужно перевести, самую сложную часть и отдайте ее переводить живым людям. На моем опыте, это игра слов, юмор, яркая прямая речь. Скорее всего, это незначительная часть от общей массы перевода, так что сэкономить все равно выйдет неплохо.

Помогают ли нейросети в локализации? Да, даже очень помогают, но чтобы ваша “беседа” с роботом была эффективной, ей нужно многое разъяснять, говорить “по душам” и уточнять каждый запрос максимально подробно.

Но все еще следит за ее работой человек, это все еще просто инструмент, упрощающий процессы.

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

Если вам интересен опыт использования нейросетей, работа в студии разработки мобильных игр - подписывайтесь на нас, мы готовы рассказывать и делиться своим опытом!

1313
8 комментариев

раньше когда увлекался переводами новелл (с англ. на рус.) переводил все вручную, занимало это гораздо дольше времени, сейчас я не занимаюсь переводами, но попробовал как-то раз для себя использовать чат GPT, на удивление получилось неплохо, опять же знаки препинания, где-то не очень хороший перевод получился, но получилось читаемо. статья отличная, возможно если снова начну заниматься переводом воспользуюсь советами

5
Ответить

Илья, спасибо, что поделились своим опытом! Надеемся, какие-то из советов будут вам полезны:)

Ответить

Хз, я бы не стал пренебрегать услугами переводческих контор, т.к один хер потом кто-то из игроков заметит что на его язык криво перевели игру.
Где нить говно последствие да всплывёт от такого

1
Ответить

Добрый день! Как мы писали в статье, мы также пользуемся услугами студий локализации:) Перевод с помощью нейросетей используем в крайних случаях, когда поджимают сроки, например. Наш опыт такой локализации - положительный. Однако без опытного переводчика пока что доверить полностью локализацию большого объема текста нельзя.

3
Ответить

отлично! блестяще! теперь напишите статью про опыт использования гугл-переводчика в локализации инструкций к стиральным машинам.

Ответить

Если бы мы занимались стиральными машинами, то, возможно, и написали бы:)

3
Ответить

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

Ответить