如何利用 ChatGPT 进行翻译 -- 通用翻译篇
背景
游戏厂商或者游戏平台在游戏出海时,经常有这样的场景:
1、游戏多地区同服,每个地区的玩家语言不同,各自都在公共频道上发言,游戏需要有一个通用的翻译工具,供玩家使用,以便知晓其它地区的玩家发言内容。
2、游戏/平台客服,每天需要处理各个地区的各种咨询和建议,而客服并不能精通每个地区的语言,也需要一个通用的翻译工具。
而在 ChatGPT 和一众大模型出现之前,我们通常的做法是引入一款翻译工具,比如百度翻译、谷歌翻译、AWS 翻译等等。但它们都有以下缺点:
费用昂贵;
在游戏行业中,翻译效果一般;术语的定义有语种限制;
而 ChatGPT 的出现,以上的场景和缺点都可以轻松解决。
选型
基于上述所说的场景,我们需要一款价格便宜,翻译效果尚可,获取难度低的大模型。
上表的大模型都支持多语言翻译,通过对比大模型的价格、翻译准确度、获取难度可知,GPT3.5 与 PaLM2 有较大优势。
通用模式
一般而言,通用翻译工具,更多只需要翻译能达意,能让看的人懂得要表达的意思即可。所以使用大模型进行翻译,prompt 不需要太多的提示,更多是告知模型需要翻译的目标语种,和按预期格式返回。而以上大模型,除了文心一言外,其余都更适用使用英文来写 prompt。以下是我让大模型将文本翻译成中文的例子:
热度(temperature)使用 0。至于为什么,可以看看我之前的精准翻译篇,里面有详细解释。
大模型带来的问题 &解决方案
如果只按照上述的通用模式来实现翻译,在生产环境下是远远不够的,你将可能遇到以下问题
一、稳定性
翻译,作为一个 C 端的接口/能力,对稳定性还是有一定要求。而在实际生产环境的使用中,无论是 GPT 还是 Google 的 PaLM2,服务都会偶尔不可用。针对这种情况,我们采取的是多模型互备降级,传统翻译工具兜底来达到高可用的目的。于是,整个翻译流程大致如下:
二、实时性
在实际使用的过程中,一般的待翻译文本在 30 字左右(均值)的长度,各大模型的响应时间都在 500ms 左右,基本符合 C 端接口要求。但建议做好超时控制,一般在 3~5s 内无法响应则应主动取消,进行降级翻译。
三、准确性
如果你有使用大模型的经历,那么必然经历过大模型不按预期返回的场景。举个例子,在我们这次的场景中,是翻译,现在有一个中译英场景,待翻译内容为[生成序列号]。有些大模型就可能没有按照预定的提示词进行翻译,而是真的给你生成了许多随机的序列号。而类似的情况还有许多许多,你不能控制翻译的时候,待翻译内容的输入。那么针对这种情况,我采用的是翻译后纠错。
什么意思?使用开源工具(github.com/pemistahl/lingua-go),对翻译结果进行语种判定,然后与预期语种比对,如果不一致,则进行降级翻译处理。于是,整个翻译流程又变成:
四、调用频率
几乎所有的大模型都有调用频率限制,在上生产环境前,都需要对业务量进行评估,与模型供应商协商好。
五、安全限制
所有的大模型都有自己的一套安全限制,即当输入的内容不符合规定时,强制终止。一般都有参数配置,详情需要与模型供应商协商好。同时,程序上需要正确的捕获安全限制终止,并进行降级。
细心的人可能已经发现,以上五个问题,不仅仅适用于翻译场景,其实也适用所有使用大模型的场景。
效果
以上的通用翻译方案,在 37 手游内部使用良好。在某个游戏项目中,实现翻译成本降本 80%的惊人效果。
此文章来自于 37 手游——洪智彬
版权声明: 本文为 InfoQ 作者【三七互娱后端技术团队】的原创文章。
原文链接:【http://xie.infoq.cn/article/34fd3cd905ce2abd040f58aae】。文章转载请联系作者。
评论