Суржик против новояза
Вы, вероятно, сталкивались с тем, как LLM при генерации ответа меняют язык — например, вставляют английские слова в русский текст или, получив запрос на русском, отвечают на украинском. Это объясняется довольно просто — с одной стороны, для модели это всё информация и она не видит разницы между языками с точки зрения её передачи. Это тот же эффект, который наблюдается у людей, много говорящих на разных языках — от профессионального жаргона до анекдотичного “Вам cheese по-slice-ить или piece-ом положить?”. С другой стороны, когда вы задаете запрос, модель получает не только текст запроса, но много другого — системный промпт (на английском), ваши настройки, содержание документов, которые загружаете в чат и так далее. Неудивительно, что, получив на вход информацию на нескольких языках, модель отвечает на одном из них или даже на нескольких сразу.
Но это неудобно, когда вы хотите получить на выходе читаемый текст вне контекста. Например, у меня есть несколько задач, когда агент читает много разных текстов и составляет мне дайджест для чтения. Получив на вход инструкцию прочитать PDF с научной статьей и сделать реферат по ней, агент сплошь и рядом переходит на страшный суржик — поскольку более 90% контекста у него оказывается англоязычным.
Я в итоге начал применять отдельную секцию в настройках — либо это preferences, либо текст задачи, — под названием “Language discipline”, где даю указания строго соблюдать язык изложения, не употреблять мешанину из языков, (важно) даю примеры как можно, и как нельзя, разрешая оставить без перевода такие общеупотребительные термины, как LLM, RAG, AI и так далее, но обязательно переводить те, для которых существует общеупотребительный эквивалент в другом языке.
Читать становится относительно легче. Но покой нам только снится — если раньше я продирался через фразы типа “Эта function может быть called через API с помощью script”, то сегодня утром меня заставила задуматься фраза:
Обвязка превращает безгражданную модель в работающего агента. Более жаргонный вариант выглядел бы как “Harness превращает stateless модель в работающего агента”, и было бы даже понятнее. А то за пять минут попыток подобрать технический смысл для термина non-citizen можно было бы человечество спасти, наверное.