翻译代理:使用反射工作流程进行代理翻译
这是机器翻译反射代理工作流程的 Python 演示。主要步骤是:
- 提示法学硕士将文本从
source_language
翻译为target_language
; - 让法学硕士反思翻译,提出改进翻译的建设性建议;
- 使用建议来改进翻译。
可定制性
通过使用法学硕士作为翻译引擎的核心,该系统具有高度可操纵性。例如,通过更改提示,使用此工作流程比传统机器翻译 (MT) 系统更容易:
- 修改输出的样式,例如正式/非正式。
- 指定如何处理习语和特殊术语,例如名称、技术术语和首字母缩略词。例如,在提示中包含术语表可让您确保特定术语(例如开源、H100 或 GPU)的翻译一致。
- 指定语言或特定方言的特定区域使用,以服务目标受众。例如,拉丁美洲所说的西班牙语与西班牙所说的西班牙语不同;加拿大的法语与法国的法语不同。
这不是成熟的软件,是 Andrew 在过去几个月的周末进行翻译以及合作者(Joaquin Dominguez、Nedelina Teneva、John Santerre)帮助重构代码的结果。
根据我们在传统翻译数据集上使用 BLEU 评分进行的评估,此工作流程有时与领先的商业产品具有竞争力,但有时也比领先的商业产品更差。然而,我们偶尔也会通过这种方法获得出色的结果(优于商业产品)。我们认为这只是代理翻译的一个起点,并且这是一个有前途的翻译方向,具有进一步改进的巨大空间,这就是为什么我们发布此演示以鼓励更多讨论、实验、研究和开源贡献。
如果代理翻译可以产生比传统架构(例如输入文本并直接输出翻译的端到端转换器)更好的结果——这通常比我们这里的方法运行更快/更便宜——这也提供了自动生成训练数据(并行文本语料库)的机制,可用于进一步训练和改进传统算法。 (另请参阅 The Batch 中关于使用 LLM 生成训练数据的这篇文章。)
非常欢迎有关如何改进的意见和建议!
入门
要开始使用translation-agent
,请按照以下步骤操作:
安装:
- 安装需要 Poetry 包管理器。诗歌安装 根据您的环境,这可能有效:
- 运行工作流程需要带有 OPENAI_API_KEY 的 .env 文件。请参阅 .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 以获取要尝试的示例脚本。
执照
Translation Agent 是根据MIT 许可证发布的。您可以出于商业和非商业目的自由使用、修改和分发代码。
扩展的想法
以下是我们还没有时间尝试的想法,但我们希望开源社区能够:
- 尝试其他法学硕士。我们主要使用 gpt-4-turbo 对此进行原型设计。我们希望其他人能够尝试其他法学硕士以及其他超参数选择,看看有些人对于特定语言对是否比其他人做得更好。
- 词汇表创建。有效构建我们希望一致翻译的最重要术语的词汇表(也许使用法学硕士)的最佳方法是什么?例如,许多企业使用的专业术语在互联网上并未广泛使用,因此法学硕士不知道,而且还有许多术语可以通过多种方式翻译。例如,西班牙语中的“开源”可以是“Código abierto”或“Fuente abierta”;两者都很好,但最好选择其中一个并将其用于单个文档。
- 术语表的使用和实施。给定一个术语表,将其包含在提示中的最佳方法是什么?
- 对不同语言的评价。它的性能在不同语言中有何不同?是否有一些更改可以使其更好地适用于特定源语言或目标语言? (请注意,对于 MT 系统正在接近的非常高的性能水平,我们不确定 BLEU 是否是一个很好的指标。)此外,它在较低资源语言上的性能需要进一步研究。
- 错误分析。我们发现指定一种语言和一个国家/地区(例如,“墨西哥通俗地说西班牙语”)对于我们的应用程序来说效果非常好。目前的方法有何不足?我们还特别有兴趣了解其在专业主题(如法律、医学)或特殊类型文本(如电影字幕)上的表现,以了解其局限性。
- 更好的评估。最后,我们认为更好的评估(evals)是一个巨大而重要的研究课题。与其他生成自由文本的法学硕士申请一样,当前的评估指标似乎不足。例如,我们发现,即使在我们的代理工作流程更好地捕获上下文和术语的文档上,导致我们的人工评分者比当前的商业产品更喜欢翻译,句子级别的评估(使用 FLORES 数据集)也会导致代理系统得分较低在 BLEU 上。我们能否设计更好的指标(也许使用法学硕士来评估翻译?)来捕获与人类偏好更好相关的文档级别的翻译质量?
相关工作
一些学术研究小组也开始研究基于法学硕士和代理的翻译。我们认为这个领域还处于早期阶段!
- ChatGPT MT:高(但不是低)资源语言的竞争,Robinson 等人。 (2023),https://arxiv.org/pdf/2309.07423
- 如何为 ChatGPT 设计翻译提示:一项实证研究,Gao 等人。 (2023),https://arxiv.org/pdf/2304.02182v2
- 超越人类翻译:利用多智能体协作翻译超长文学文本,Wu 等人。 (2024),https://arxiv.org/pdf/2405.11804