微信扫码
与创始人交个朋友
我要投稿
这是用于机器翻译的反射代理工作流程的 Python 演示。主要步骤如下:
提示 LLM 将文本从 翻译source_language为target_language;
让LLM对翻译进行反思,提出改进翻译的建设性建议;
使用建议来改进翻译。
可定制性
通过使用 LLM 作为翻译引擎的核心,该系统具有高度可操控性。例如,通过更改提示,使用此工作流程比使用传统机器翻译 (MT) 系统更容易:
修改输出的风格,例如正式/非正式。
指定如何处理习语和特殊术语,如名称、技术术语和首字母缩略词。例如,在提示中包含词汇表可确保特定术语(如开源、H100 或 GPU)的翻译一致。
指定语言的特定区域用法或特定方言,以服务目标受众。例如,拉丁美洲使用的西班牙语与西班牙使用的西班牙语不同;加拿大使用的法语与法国使用的法语不同。
这不是成熟的软件,是 Andrew 过去几个月在周末捣鼓翻译的结果,另外还有合作者(Joaquin Dominguez、Nedelina Teneva、John Santerre)帮助重构代码。
根据我们在传统翻译数据集上使用 BLEU 分数进行的评估,此工作流程有时与领先的商业产品相媲美,但有时也更差。但是,我们偶尔也会通过这种方法获得出色的结果(优于商业产品)。我们认为这只是代理翻译的一个起点,并且这是翻译的一个有前途的方向,还有很大的改进空间,这就是我们发布此演示以鼓励更多讨论、实验、研究和开源贡献的原因。
如果代理翻译能够产生比传统架构(例如输入文本并直接输出翻译的端到端转换器)更好的结果(这通常比我们这里的方法运行速度更快/更便宜),这也提供了一种自动生成训练数据(平行文本语料库)的机制,可用于进一步训练和改进传统算法。(另请参阅The Batch 中有关使用 LLM 生成训练数据的文章。)
入门
要开始使用translation-agent,请按照下列步骤操作:
安装:
安装需要 Poetry 包管理器。Poetry安装取决于您的环境,这可能会起作用:
pip install poetry
运行该工作流程需要具有 OPENAI_API_KEY 的 .env 文件。请参阅 .env.sample 文件作为示例。
git clone https://github.com/andrewyng/translation-agent.gitcd translation-agentpoetry installpoetry shell # activates virtual environment
用法:
import translation_agent as tasource_lang, target_lang, country = "English", "Spanish", "Mexico"translation = ta.translate(source_lang, target_lang, source_text, country)
请参阅 examples/example_script.py 以获取要尝试的示例脚本。
许可:
Translation Agent 采用MIT 许可证发布。您可以自由地使用、修改和分发代码用于商业和非商业用途。
扩展的想法
以下是我们还没有时间去尝试但希望开源社区能够尝试的想法:
尝试其他 LLM。我们主要使用 gpt-4-turbo 对此进行了原型设计。我们希望其他人尝试其他 LLM 以及其他超参数选择,看看某些选择是否比其他选择对特定语言对表现更好。
词汇表创建。什么是高效地构建词汇表的最佳方法——也许使用 LLM——来记录我们希望一致翻译的最重要的术语?例如,许多企业使用的专业术语在互联网上并不广泛使用,因此 LLM 不知道这些术语,而且也有许多术语可以以多种方式翻译。例如,西班牙语中的“开源”可以是“Código abierto”或“Fuente abierta”;两者都可以,但最好选择一种并坚持用于单个文档。
词汇表的使用和实施。给定一个词汇表,将其包含在提示中的最佳方法是什么?
对不同语言的评估。它在不同语言中的表现有何不同?是否有变化使其对特定源语言或目标语言的效果更好?(请注意,对于机器翻译系统正在接近的非常高的性能水平,我们不确定 BLEU 是否是一个很好的指标。)此外,它在资源较少的语言上的表现需要进一步研究。
错误分析。我们发现,指定语言和国家/地区(例如,“墨西哥口语中的西班牙语”)对我们的应用程序来说效果很好。当前方法的不足之处在哪里?我们还特别想了解它在专门主题(如法律、医学)或特殊类型文本(如电影字幕)上的表现,以了解其局限性。
更好的评估。最后,我们认为更好的评估 (evals) 是一个庞大而重要的研究课题。与其他生成自由文本的 LLM 应用程序一样,当前的评估指标似乎不足。例如,我们发现,即使在我们的代理工作流程更好地捕捉上下文和术语的文档中,我们的人类评分者更喜欢翻译而不是当前的商业产品,句子级别的评估(使用FLORES数据集)也导致代理系统在 BLEU 上的得分较低。我们能否设计更好的指标(也许使用 LLM 来评估翻译?)以在文档级别捕捉翻译质量,从而更好地与人类偏好相关联?
来源:https://github.com/andrewyng/translation-agent
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-23
人生搜索引擎免费用,开源版哈利波特“冥想盆”登GitHub热榜,支持中文
2024-11-23
o1圈杀疯了,阿里又开源Marco-o1
2024-11-22
Kotaemon:开源基于文档检索的聊天系统(RAG Chat)
2024-11-22
不可思议!AirLLM 如何让 70B 大模型在 4GB GPU 上顺利推理?
2024-11-22
刚刚,OpenAI公开o1模型测试方法,人机协作时代!
2024-11-21
22.4K+ Star!Chatbox:你的终极AI桌面助手
2024-11-21
Magentic-One:微软开源多智能体系统,让 AI 自己动手解决问题
2024-11-21
阿里发布Qwen2.5-Turbo,支持100万Tokens上下文!
2024-05-06
2024-07-25
2024-08-13
2024-06-12
2024-07-11
2024-06-16
2024-07-20
2024-06-15
2024-07-25
2024-07-25
2024-11-22
2024-11-19
2024-11-13
2024-11-13
2024-10-07
2024-09-22
2024-09-20
2024-09-14