Агент перевода: агентный перевод с использованием рабочего процесса отражения
Это демонстрация Python рабочего процесса агента отражения для машинного перевода. Основные шаги:
- Предложить LLM перевести текст с
source_language
на target_language
; - Пусть LLM подумает над переводом и выработает конструктивные предложения по его улучшению;
- Используйте предложения по улучшению перевода.
Настраиваемость
Благодаря использованию LLM в качестве основы механизма перевода эта система становится очень управляемой. Например, изменив подсказки, этот рабочий процесс проще использовать, чем традиционную систему машинного перевода (MT), чтобы:
- Измените стиль вывода, например формальный/неформальный.
- Укажите, как обрабатывать идиомы и специальные термины, такие как имена, технические термины и сокращения. Например, включение глоссария в приглашение позволяет убедиться, что определенные термины (например, открытый исходный код, H100 или графический процессор) переводятся последовательно.
- Укажите конкретное региональное использование языка или конкретных диалектов для обслуживания целевой аудитории. Например, испанский язык, на котором говорят в Латинской Америке, отличается от испанского языка, на котором говорят в Испании; Французский язык, на котором говорят в Канаде, отличается от того, как на нем говорят во Франции.
Это незрелое программное обеспечение , и оно является результатом того, что Эндрю возился с переводами по выходным в течение последних нескольких месяцев, а также его соавторы (Хоакин Домингес, Неделина Тенева, Джон Сантерре), помогавшие реорганизовать код.
Согласно нашим оценкам с использованием оценки BLEU для традиционных наборов данных перевода, этот рабочий процесс иногда конкурирует, а иногда и уступает ведущим коммерческим предложениям. Однако при таком подходе мы также иногда получали фантастические результаты (превосходящие коммерческие предложения). Мы думаем, что это лишь отправная точка для агентных переводов, и что это многообещающее направление перевода со значительным потенциалом для дальнейшего совершенствования, поэтому мы выпускаем эту демонстрацию, чтобы стимулировать больше обсуждений, экспериментов, исследований и открытого исходного кода. взносы.
Если агентные переводы могут давать лучшие результаты, чем традиционные архитектуры (например, сквозной преобразователь, который вводит текст и напрямую выводит перевод), которые часто выполняются быстрее/дешевле, чем наш подход, это также обеспечивает механизм автоматического создания обучающих данных (корпусов параллельных текстов), которые можно использовать для дальнейшего обучения и улучшения традиционных алгоритмов. (См. также статью в The Batch об использовании LLM для создания обучающих данных.)
Комментарии и предложения по улучшению приветствуются!
Начиная
Чтобы начать работу с translation-agent
, выполните следующие действия:
Установка:
- Для установки требуется менеджер пакетов Poetry. Установка Poetry В зависимости от вашей среды это может сработать:
- Для запуска рабочего процесса необходим файл .env с OPENAI_API_KEY. В качестве примера см. файл .env.sample.
git clone https://github.com/andrewyng/translation-agent.git
cd translation-agent
poetry install
poetry shell # activates virtual environment
Использование:
import translation_agent as ta
source_lang , target_lang , country = "English" , "Spanish" , "Mexico"
translation = ta . translate ( source_lang , target_lang , source_text , country )
См. example/example_script.py, где приведен пример сценария, который можно попробовать.
Лицензия
Агент перевода выпускается под лицензией MIT . Вы можете свободно использовать, изменять и распространять код как в коммерческих, так и в некоммерческих целях.
Идеи для расширений
Вот идеи, с которыми у нас не было времени поэкспериментировать, но мы надеемся, что сообщество открытого исходного кода это сделает:
- Попробуйте другие LLM. Мы создали прототип, используя gpt-4-turbo. Нам бы хотелось, чтобы другие поэкспериментировали с другими LLM, а также с другими вариантами гиперпараметров и посмотрели, работают ли некоторые из них лучше, чем другие, для определенных языковых пар.
- Глоссарий Создание. Как лучше всего эффективно составить глоссарий (возможно, с использованием LLM) наиболее важных терминов, которые мы хотим последовательно переводить? Например, многие компании используют специализированные термины, которые не получили широкого распространения в Интернете и о которых, таким образом, не знают специалисты LLM, а также существует множество терминов, которые можно перевести разными способами. Например, «открытый исходный код» на испанском языке может звучать как «Código abierto» или «Fuente abierta»; оба хороши, но лучше выбрать один и использовать его для одного документа.
- Использование и реализация глоссария. Учитывая глоссарий, как лучше всего включить его в подсказку?
- Оценки на разных языках. Как его производительность различается на разных языках? Есть ли изменения, которые улучшат его работу для определенных исходных или целевых языков? (Обратите внимание, что для очень высоких уровней производительности, к которым приближаются системы МП, мы не уверены, является ли BLEU подходящим показателем.) Кроме того, его производительность на языках с меньшими ресурсами требует дальнейшего изучения.
- Анализ ошибок. Мы обнаружили, что указание языка и страны/региона (например, «Испанский, на котором говорят в Мексике») очень хорошо помогает нашим приложениям. В чем заключается недостаток нынешнего подхода? Мы также особенно заинтересованы в понимании его эффективности по специализированным темам (например, юриспруденция, медицина) или особым типам текста (например, субтитры к фильмам), чтобы понять его ограничения.
- Лучше оценки. Наконец, мы считаем, что более качественная оценка (evals) — это огромная и важная тема исследования. Как и в случае с другими приложениями LLM, которые генерируют произвольный текст, текущие показатели оценки, похоже, не соответствуют действительности. Например, мы обнаружили, что даже в документах, в которых наш агентский рабочий процесс лучше улавливает контекст и терминологию, в результате чего наши оценщики предпочитают переводы текущим коммерческим предложениям, оценка на уровне предложения (с использованием набора данных FLORES) привела к тому, что агентская система получила более низкую оценку. на БЛЕУ. Можем ли мы разработать более эффективные показатели (возможно, используя LLM для оценки переводов?), которые отражают качество перевода на уровне документа, которое лучше коррелирует с человеческими предпочтениями?
Связанная работа
Несколько академических исследовательских групп также начинают рассматривать возможность перевода на основе LLM и агентного перевода. Мы думаем, что это только начало развития этой области!
- ChatGPT MT: конкурентоспособен для языков с высокими (но не низкими) ресурсами , Робинсон и др. (2023), https://arxiv.org/pdf/2309.07423
- Как разработать подсказки для перевода для ChatGPT: эмпирическое исследование , Гао и др. (2023), https://arxiv.org/pdf/2304.02182v2
- Помимо человеческого перевода: использование многоагентного сотрудничества для перевода сверхдлинных литературных текстов , Ву и др. (2024), https://arxiv.org/pdf/2405.11804.