如何利用ChatGPT进行翻译–精准翻译篇

基于chatGPT来做翻译,不是什么新鲜事,如果你有使用chatGPT,很可能你已经在使用GPT进行翻译。但本次讨论的,或者说AI翻译需要解决的问题,和我们平常理解的翻译有所不同,欲知详请,请翻阅本文

背景

基于chatGPT来做翻译,不是什么新鲜事,如果你有使用chatGPT的习惯,很可能你已经在使用chatGPT进行翻译。但本次讨论的,或者说AI翻译需要解决的问题,和我们平常理解的翻译有所不同。

我们需要翻译的内容是游戏内道具、物品、任务、技能、对话、背景介绍等游戏内容的文案翻译,这种翻译对于翻译质量、本地化程度都有非常高的要求,因为这已经可以定义为核心资产。基于此,我们需要对GPT有针对性的优化,才能达成我们的目的。故,本次讨论的翻译,是质量高、本地化程度高的精准翻译。

问题&难点

尽管我们使用了GPT,加上自己的一些优化和方法论,翻译效果有明显提升。但比较遗憾的是,我们不得不得出,目前纯机翻依然无法替代专业翻译这样子的结果。主要有以下一些问题和难点。

一、前后翻译不一致。

对于同样一个词语,在多个语料中重复出现,但GPT每次翻译都不一致。

二、翻译的准确率,怎么提升?

如果只告诉GPT你需要翻译,那么准确率其实和通用的翻译工具的准确率,没有太大差别,如何发挥出GPT的优势?

三、GPT机翻的效果,怎么快速评定?

当我们尝试使用GPT来做翻译工具,那么它翻译的结果如何?我们每次的调整,效果如何?翻译质量评定的速度,决定了你调优的速度。

解决问题的方法论

一、前后翻译不一致。

1、术语

在翻译中,有个名词–【术语】,指将某个词语固定翻译成某个词。那么这里又会延伸出两个问题:

  • 如何快速确定哪些词要作为术语
  • 如何让GPT知道术语的存在

将待翻译内容,进行分词(用开源分词工具)之后,统计每个词的词频,之后将词频较高的和词语需要特殊翻译的作为术语,之后由专业翻译人员翻译成对应语言,即为术语。

这里我使用的是jieba分词:

bash
复制代码
github.com/wangbin/jiebago

在大批量的翻译中,分词完定出术语表,那么这个术语表其实也挺大的,少的几百个,多的上千,取决于你的语料多少。那么,如此庞大的词库都作为提示词,在prompt中给到GPT,明显是不可行的。所以,我们采用的是,当需要翻译的语料中有出现术语表中的词语时,才将这个词语作为术语,在prompt中给到GPT。大概的形式如下:

css
复制代码
以下为专有名词: 遇到[%s]请翻译成[%s]

2、上下文

由前面可知,定术语其实不是一件容易的事,需要有人工的参与。是否有其它更智能的方法来解决问题呢?答案就是上下文,事实上,不仅仅是翻译,GPT几乎所有的应用场景都可以用上下文来提升效果。

那么何为上下文呢?在中译英的翻译场景中,我举个例子吧。假设你有一批旧语料,其中有,【黄白之术】->【Midas Touch】。那么现在有一个语料:【黄白之术不是万能的,还需要一些其它的办法。】,这个怎么保证【黄白之术】按照之前的翻译结果来翻译呢?最好的方法就是通过将【黄白之术】的翻译结果当成上下文,如下:

arduino
复制代码
curl https://api.openai.com/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer $OPENAI_API_KEY" -d '{ "model": "gpt-3.5-turbo", "messages": [ { "role": "system", "content": "Please translate the following into English." }, { "role": "user", "content": "黄白之术" }, { "role": "system", "content": "Midas Touch" }, { "role": "user", "content": "黄白之术不是万能的,还需要一些其它的办法。" } ] }'

以上,就可以让GPT知道【黄白之术】的翻译已经固定,参照之前翻译即可。但,这又引出了一个新问题:我怎么知道待翻译的语料【黄白之术不是万能的,还需要一些其它的办法。】,在已有的旧语料中,已有【黄白之术】

这个翻译呢?这里就需要引入两个概念:

  • Embeddings:详情可以看GPT官方的文档(platform.openai.com/docs/api-re…)。说白了就是所有的文本都可以转换出一个向量值,这个向量值在GPT中,由1536个浮点数组成的数组表示。
  • 向量数据库:常见的有PostgreSQL 、Qdrant等。可以存储向量值,并且可以检索某个向量值与数据库中已有的向量的关系。

除了旧有已知翻译的语料可以当做上下文意外,为了保持每次翻译的前后一致,其实也可以把先机翻出来的结果,当做上下文。举个例子,如果【黄白之术1】先进行机翻被翻译成【Midas Touch1】,那么在翻译【黄白之术2】时,也可以将【黄白之术1】的翻译结果作为上下文,这样子就可以保证前后翻译一致。

3、热度/概率

如果了解GPT的基础原理,很容易就知道,GPT其实是个文本接龙游戏,它根据已有的文本,推算出下个字出现概率最大的文本集。然后再跟你传参的热度/概率:temperature或top_p从文本集中给出最终一个结果,之后,循环这个过程。

如何利用ChatGPT进行翻译--精准翻译篇

由上可知,在翻译的场景,如果想尽可能保持前后的翻译一致,以temperature为例,则是尽量低为好。推荐为0.1以下。

二、翻译的准确率,怎么提升?

1、prompt优化

在所有GPT的应用场景中,大家都在说prompt优化,都知道要优化prompt。但是,很少人会告诉你,应该怎么优化,优化到什么程度,怎么验证效果。对于这个,我有以下一些方法:

  • 给例子:所有对GPT的要求,尽量给出2~3个例子,GPT会更好的理解。比如我要翻译的时候,注意首字母大写:
css
复制代码
大小写: 示例:【开始游戏】 → 【Start Game】 示例:【返回主菜单】 → 【Return to Main Menu
  • 如果可以,用英文写prompt。

  • 调整prompt,最好有现成的语料和正确的翻译,这样子可以在调整prompt后,快速机翻出结果,对比正确翻译,从而知道prompt的调整是否是正向。而,如何评定机翻效果,在下一节会详细讲解。

2、人工抽检

我们已经知道,机翻无法完全替代人工。说白了,机翻更多是提升人工翻译的效率,或者替代部分人工。那么,很容易就可以知道,由人工逐步抽检,比如先机翻出10%,然后再人工校对这10%,然后将这10%作为正确翻译语料,理论上下一次机翻,准确率是会有提升。那么就会引出一个问题,如何最大限度的,提升人工抽检之后的准确率。答案显而易见,让抽检的样本具有代表性。什么意思呢?

如何利用ChatGPT进行翻译--精准翻译篇

假设有9条待翻译语料,如上图所示。理论上来说,红色框的3条语料,如果已经人工校对过,或者说已经翻译准确,那么剩下的所有文本,则可以全部翻译正确。那么红色框中的语料,则称为具有代表性的语料。

那么,在实际的翻译场景中,我们如何实现上面的例子。其实就是将每条待翻译的语料,通过向量,查找与它相似度高的语料,最后做统计。拥有相似度高语料数的语料,则为具有代表性语料。

理论上而言,每次机翻之后都人工抽检一部分之后,得到抽检部分的正确翻译,再应用这部分正确翻译进行下一轮机翻,准确率会一直提升,直到全部翻译完成。

3、合并翻译

对于无关联的语料在进行翻译时,一般都是逐条进行翻译。而对于人物对话、背景介绍、剧情介绍这样子的内容,则最好将整段对话合并一起翻译,GPT能更好的理解前因后果,增加翻译的准确性。

三、GPT机翻的效果,怎么快速评定?

在【prompt优化】部分已经提到,在对prompt进行调优时,提前将待翻译语料,进行人工翻译,得出正确翻译,再将机翻结果与正确翻译进行对比,就可以得出,promept调整是否为正向。那么,机翻结果,如何与正确翻译进行对比呢?

ruby
复制代码
<https://arxiv.org/ftp/arxiv/papers/2202/2202.11027.pdf>

以上是一篇比较专业的论文《关于机器翻译评测研究的综述性报告》。与我们需要解决的问题非常贴合。我总结一下,大概有以下几种方法:

hLEPOR/nLEPOR 这是文章作者提出的方法,在WMT历年的评测竞赛中屡次获得好成绩。hLEPOR融合了长度惩罚、精确度、召回率、词序差异惩罚等多方面指标,nLEPOR进一步采用n-gram模型。这类方法表现稳定优异。

BLEU BLEU方法由于简单易用,已经被广泛应用于机器翻译的评测。尽管有一些已知缺陷,但经过多年发展,仍然是一种比较可靠的评测基准。

BERTscore 基于BERT等预训练语言模型的BERTscore方法,利用神经网络强大的语义建模能力,能够更准确地评估翻译质量。这类预训练模型方法是当前的研究热点。

METEOR METEOR同时考虑精确度和召回率,并使用语言学特征,能够相对全面地评估翻译质量。它与人工评价的相关性较好。

COMET COMET方法结合多语言预训练模型与源语言文本,拟合人工评分,是当前效果最好的基于深度学习的评测模型之一。

而目前比较通用的,就是hlepor/nlepor和BLEU。

通过机翻结果与正确翻译结果,跑出hlepor分值或者BLEU分值,对比prompt调优前后的分值,即可知,调整是否为正向。BLEU分值达到多少靠谱呢?这里有一份腾讯的实验报告,仅供参考:arxiv.org/pdf/2301.08…

翻译流程图

如何利用ChatGPT进行翻译--精准翻译篇

此文章来自于37手游——洪智彬
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
人工智能

GPT-5要来了!OpenAI公布2024年计划

2024-5-18 17:33:59

人工智能

如何在 Opera 中使用 ChatGPT 来实现更高效的交互

2024-5-18 21:34:46

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索