OpenAI 发布 ChatGPT 的 API 后,我一时兴奋地无法入睡。和原本的 GPT3.5 模型相比,这个模型性能更好(和线上的 ChatGPT 基本一致),且价格降低了 90%,来到了千字符 0.002 美元。对中文用户来说,这个价格已经到达了可以大批量日用的边界。同时由于提供了 API,我们又可以想象很多不同的、更具组合性的使用方式,其中很大部分将在短期被各路程序员实现。以下我就来示范一个组合方式,也是我最近一直在测试的一种玩法。

众所周知,ChatGPT 做翻译很有一套,具体来说就是大部分情况下它能把句子写得很通顺,如果你要求它写得更像地道中文,它也能翻译得更「地道」。问题恰恰在于,GPT 的翻译并不是由双语材料对照训练而来,内部也没有词库,因此它经常把多义词的意思搞错,甚至遇到生癖词就开始瞎编,以至于研究者都期望它能够学着查查词典。有了 API 之后,查词典当然就不是什么复杂的事情了,可在程序上要怎么设计流程呢?生癖词倒还好,可多义词的意义和语境高度关联,没办法逐个查实。

因此,最简单的办法是给它提供一个参考。如果说 GPT 的翻译是机灵的狐狸,我们就得找个固执的刺猬来帮它纠偏,这也就引入了 DeepL。考虑到 DeepL 早有 API 且第三方的价格相当便宜(4 美元 / 15M 字符),整个程序设计非常简单:取到文本之后,我们先将内容打给DeepL的API,取到结果后,再将结果、原文和用户自定义的术语表一并打给GPT的API,最后取回翻译文本。现在让我们先忽略程序上的具体实现,来实测一下这样做是否能够成立,又多大程度上提升了翻译的结果,最终是否能够产生出一个足够日用的翻译器。

案例一:文学研究

原文:So here are two characters, Poirot and Miss Marple, who offer their own versions of challenge to the modern world. Towards the end of her life, the eminent academic Gillian Rose wrote that she hoped that she would not be deprived of old age. ‘I aspire’, she wrote, ‘to Miss Marple’s persona: to be exactly as I am, decrepit nature, yet supernature in one, yet equally alert on the damp ground and in the turbulent air’.  
DeepL:因此,这里有两个人物,波洛和马普尔小姐,他们向现代世界提出了自己的挑战版本。知名学者吉利安-罗斯(Gillian Rose)在她生命的最后时刻写道,她希望自己不会被剥夺老年生活的权利。我渴望",她写道,"马普尔小姐的角色:完全像我一样,腐朽的自然,但又是超自然的,但在潮湿的地面和动荡的空气中同样警惕"。 
ChatGPT:所以这里有两个角色,「波洛」和「玛普小姐」,他们各自对现代世界提出了挑战。在她生命的末期,杰出的学者吉莲·罗斯写道,她希望自己不会被剥夺老年时光。「我渴望成为『玛普小姐』的角色:做我自己,虽然身体虚弱,但同时拥有超凡本质,在潮湿的地面和汹涌的空气中同样警觉。」
ChatGPT+DeepL:因此,这里有两个角色,波洛和马普尔小姐,他们各自向现代世界提出了挑战。在她生命的晚年,著名学者吉莲·罗斯 (Gillian Rose) 写道,她希望自己不会被剥夺老年生活的机会。她写道:「我渴望成为马普尔小姐那样的人物:保持腐朽自然的状态,却同时超越自然,同样机警地活跃在潮湿的地面和动荡的空气中。」
人肉翻译:因此,这里有两个人物,波洛和马普尔小姐,他们各自向现代世界提出了挑战。在生命末尾,杰出的学者吉莲·罗斯 (Gillian Rose) 写道,她希望自己不会被剥夺老年的时光。「我渴望,」她写道,「成为马普尔小姐一样的人物:做我自己,自然衰老,却又超越自然,无论在潮湿的地面还是在翻涌的空气中都同样警敏。」

原文出自 Mary Evans 的《想象邪恶》(Imagination of Evil),文段中罗斯的引文意义比较含糊,有些文学色彩,机器翻译较难处理。简单对比,DeepL在此处开始说出「腐朽的自然,但又是超自然的一体」这般胡话;ChatGPT则意译到了天上说「虽然身体虚弱,但同时拥有超凡本质」。两者结合后,译文虽然还有令人不满意的地方——例如考虑到作者是罗斯的晚辈,「eminent」应该偏向「杰出」而不是「著名」,以及「decrepit nature」应该是说「自然衰老」而不是「腐朽的自然」。当然如果不纠结字眼,句子已经是完全通顺的水平,且格式完全正确。

案例二:学术书评

原文:If, as Harris writes in the epilogue, there “is just capitalism, an impersonal system that acts through people toward the increasing accumulation of capital,” then where exactly does the Palo Alto System enter the equation? And how distinct is the Palo Alto System from, say, what the historian Edward Baptist calls “the ‘whipping-machine’ system,” through which slaveholders literally beat consistent increases in productivity out of increasing numbers of enslaved Black people between 1800 and 1860? How distinct is it from the scientific management regimes long deployed by agents of imperialism, which sought to profit from and regulate native life to such an extent that—as the scholar Warwick Anderson has described—early–twentieth-century American agents even tried to dictate the manner in which Filipinos defecated? How distinct, in other words, is the Palo Alto System from empire, from capitalism itself?
DeepL:如果像哈里斯在后记中写的那样,"只有资本主义,一个非个人的系统,通过人的作用来实现资本的不断积累",那么,帕洛阿尔托系统究竟在哪里出现?帕洛阿尔托体系与历史学家爱德华-巴普蒂斯特所说的"'鞭打机器'体系 "有多大区别,在1800年至1860年间,奴隶主通过该体系使越来越多的被奴役的黑人的生产力得到持续提高?它与帝国主义代理人长期部署的科学管理制度有多大区别,后者试图从本土生活中获利并对其进行管理,以至于正如学者沃里克-安德森所描述的那样,二十世纪初的美国代理人甚至试图对菲律宾人的排便方式进行支配?换句话说,帕洛阿尔托系统与帝国、与资本主义本身有多大区别?
ChatGPT:如果,正如哈里斯在结语中写道:「只有资本主义,一个通过人们行动实现资本不断积累的非人性系统」,那么帕洛阿尔托系统究竟在这个方程式中扮演了什么角色?它与历史学家爱德华·巴普蒂斯特所称的「『鞭打机器』系统」有多么不同?在这个系统中,奴隶主们确实通过打鞭子的方式让越来越多的黑人奴隶保持生产力的稳步增长,这与帕洛阿尔托系统有多么不同?它与帝国主义代理人长期使用的科学管理制度有多么不同?这些代理人试图从和调节土著生活中获利,以至于——正如学者沃里克·安德森所描述的那样——20世纪早期的美国代理人甚至试图指导菲律宾人如何排便。换句话说,帕洛阿尔托系统与帝国主义、资本主义本身有多大区别?
ChatGPT+DeepL:如果像哈里斯在结语中所写的那样,「只有资本主义,一种通过人们行动实现资本不断积累的非人性系统」,那么帕洛阿尔托系统到底是如何融入这个方程式中的?那么,这个系统与历史学家爱德华·巴普蒂斯特(Edward Baptist)所谓的「『鞭打机器』体系」有何区别?在这个系统中,奴隶主通过鞭打的方式,从1800年到1860年,不断提高被奴役的越来越多的黑人的生产力。这与帕洛阿尔托系统有何不同?此外,这个系统与长期被帝国主义代理人使用的科学管理制度又有多少不同呢?这些代理人试图从本土生活中获利并对其进行管理,以至于美国学者沃里克·安德森(Warwick Anderson)曾描述,20世纪初的美国代理人甚至试图规定菲律宾人如何排便。换言之,帕洛阿尔托系统与帝国主义、与资本主义本身相比,有多大区别?

文段出自此前分享过的一篇书评《帕洛阿尔托:罪恶之城》,这一段落里有几个很长的句子,翻译时必须进行拆分才能得到正常的中文。DeepL忠实地翻译出了所有句子,但是完全没有拆开。GPT积极地拆分了句子,但随意篡改了好几句话的意思,例如「帕洛阿尔托系统究竟在这个方程式中扮演了什么角色」。两者结合的结果非常亮眼,基本忠实还原了文章的意思,且拆得很好读,我也就没必要展示我的人肉翻译技术了。唯一的问题是「当地人的生活」(native life)被翻译成了「本土生活」——但是如果问它能不能换个翻译方式,它马上就会意识到可以考虑改成「当地居民的生活」。

案例三:理论研究

原文:Georg Simmel once began a book with words which seem to be an entirely appropriate way of beginning this book as well. He wrote that: 'Man's position in the world is defined by the fact that in every dimension of his being and his behavior he stands at every moment between two boundaries' (Simmel 1971: 353). Georg Simmel continued to briefly outline what he meant when he spoke of these boundaries. Perhaps inevitably he saw the boundaries which define the position of the human in the world, the boundaries which give the human a place and a direction, in terms of a series of dichotomies; higher and lower, greater and lesser, better and worse (however,it must be admitted that Simmel seems a little Vague as to the basis and the precise meaning of that human being and community). But without these polar opposites and without their ability to locate the human and to make sense of activities and institutions, the world would be more or less (another dichotomy) meaningless to us. After all, "The boundary, above and below, is our means for finding direction in the infinite space of our worlds' (Simmel 1971:353).
DeepL:乔治-西梅尔(Georg Simmel)曾在一本书的开头写道,这似乎也是这本书的一个完全合适的开头方式。他这样写道。人在世界中的地位是由这样一个事实定义的:在他的存在和他的行为的每一个维度上,他每时每刻都站在两个边界之间"(Simmel 1971: 353)。乔治-西梅尔继续简要地概述了他在谈到这些边界时的意思。也许他不可避免地看到了界定人类在世界中的地位的边界,这些边界给了人类一个地方和一个方向,在一系列的二分法方面;更高和更低,更大和更小,更好和更坏(然而,必须承认,西美尔似乎对人类和社区的基础和确切含义有点模糊不清)。但是,如果没有这些两极对立的东西,没有它们对人的定位以及对活动和机构的意义的能力,这个世界对我们来说或多或少(另一种二分法)是没有意义的。毕竟,"边界,上面和下面,是我们在我们世界的无限空间里寻找方向的手段"(Simmel 1971:353)。
ChatGPT:乔治·西美尔曾经以一句话开头写过一本书,这句话似乎也是开始本书的完全合适的方式。他写道:“人在世界上的地位是由于他存在和行为的各个方面,在每一刻都处于两个边界之间”(Simmel 1971: 353)。乔治·西美尔继续简要概述了他所说的这些边界的含义。或许不可避免地,他将定义人类在世界中的位置的边界,给予人类一个位置和方向的边界,解释为一系列的二元对立;高与低、大与小、好与坏(然而,必须承认,西美尔对人类和社区的基础和确切含义似乎有些模糊)。但是,如果没有这些二元对立以及它们定位人类并对活动和制度有意义的能力,世界对我们来说将是或多或少(另一种二元对立)毫无意义的。毕竟,“边界,上下之分,是我们在无限空间中找到方向的手段”(Simmel 1971: 353)。
ChatGPT+DeepL:乔治·西梅尔曾经在一本书的开头以这样的话开始,这句话似乎也是开始本书的一个完全合适的方式。他写道:「人在世界中的地位是由于他存在和行为的每一个维度上,每时每刻都站在两个边界之间」(Simmel 1971: 353)。乔治·西梅尔接着简要概述了他谈到这些边界时的意思。也许不可避免地,他将定义人类在世界中的位置的边界,给予人类一个地方和方向的边界,解释为一系列的二分法;更高和更低、更大和更小、更好和更坏(然而,必须承认,西梅尔对人类和社区的基础和确切含义有些模糊)。但是,如果没有这些两极对立,没有它们定位人的能力以及对活动和机构的意义,这个世界对我们来说或多或少(另一种二分法)是没有意义的。毕竟,「边界,上面和下面,是我们在无限空间中寻找方向的手段」(Simmel 1971: 353)。
ChatGPT+DeepL+术语表:格奥尔格·齐美尔曾经在一本书的开头写下了一句话,这句话似乎也是开始本书的完全适当的方式。他写道:「人在世界上的地位是由于在他的存在和行为的每个方面上,他每时每刻都站在两个边界之间」(Simmel 1971: 353)。齐美尔继续简要地阐述了他所说的这些边界的意义。也许不可避免地,他将定义人类在世界中的位置的边界,给予人类一个地方和一个方向,看作是一系列二元对立,如高与低、大与小、好与坏(然而必须承认,齐美尔似乎对人类和社会的基础和确切含义有些模糊)。但如果没有这些二元对立,没有它们定位人类并赋予活动和机构意义的能力,那么这个世界对我们来说或多或少都是没有意义的。毕竟,「边界,上下,是我们在无限空间的世界中寻找方向的手段」(Simmel 1971: 353)。
人肉翻译:格奥尔格·齐美尔曾经有这么一本书,其卷首语拿来做本书的开篇辞似乎同样十分贴切。他写道:「事实上,人方方面面的存在,时时刻刻的行为,都处在两个界限之间,这一点决定了人在这世上的定位。」(Simmel,1971,p.353)接下来,齐美尔简要概括了他所说的这些界限是什么意思。或许不可避免的是,他认为,规定了人在世上的位置的这些界限,也就是赋予人某种位置和方向的这些界限,可以视为一系列的二元对立:较高等的和较低等的,较重大的和较次要的,较美好的和较糟糕的(话说回来,必须承认,对于人与共同体的根基与确切意义,齐美尔似乎有些语焉不详)。但是,如果这些两极对立不复存在,如果它们不再有能力为人提供定位,让诸般活动与制度具备意义,那么这个世界对于我们也就或多或少(另一对二元对立) 失去了意义。说到底,「上下之间的界限,就是我们置身世界的无限空间而确立方向的手段。」(Simmel,1971,p.353)

纯文学的翻译场景(同理法国理论、德国哲学以及英文文论)就没必要测试了,我兴趣不大而且觉得目前没希望。用《后现代性下的生命与多重时间》开头的第一自然段来做个边界测试,看看如果句式更自由,句子意义更扭曲一些,拆分和重组的能力如何。结果还算积极,和最好的一批人类译者相比,这套方案的翻译质量差很多,但是你要说和二流译者相比,其实也大差不差。在提供了术语表之后,整个翻译基本算得上准确,也能够满足学术翻译的需求,当然如果句子写得比较简略,如原文最后一句,那目前 GPT 还是没法看明白是什么意思。

事后总结

简单来说就是引入 DeepL 的翻译结果作为参考能有效提高 GPT 的翻译能力,面对比较常见的文本,翻译比较流畅也没太多问题,面对难一些的文本,不调整提示词的情况下,翻译基本可用,在进行更多提示词调整后应该也能得到更好的效果。更具体地对 DeepL 和 GPT 来说到底出现了哪些提高以及有哪些问题:

  1. 准度:如前所说,DeepL 翻译相对准确但是句子很难读;GPT 翻译偶尔乱来句子好读。两者结合的效果总的来说还不错,基本上准确度和可读性都有提高。当然偶尔也会出现 GPT 明明自己用的译法很对,但是从 DeepL 处抄错作业的情况。
  2. 格式:DeepL 往往不能正确使用中文标点,尤其是引号和英文名中间的圆点,翻译也会有其他的格式错误。类似问题在 GPT 中基本不存在,即便出现,你也可以在提示词中对各种标点符号进行自定义,甚至自动保留或去掉注释或保留英文人名、书名和专有名词的原文等等。
  3. 术语:在测试中添加了术语表,也许是提示词使用不对,术语表只有一部分被识别,需要看看怎么优化术语表的展现和存放。测试中也出现另一个问题,术语定义过多之后影响了 GPT 组织句子的能力,以及对翻译文本风格进行简单限定(例如要求「精炼」「地道」)之后翻译错误率大大提高。
  4. 成本:成本之前已经初步计算过,整套下来只比纯粹调用 GPT 的 API 贵一点点,按中文算,大约千字 0.05-0.1 元之间,如果提示词加入比较多内容,估计问题会更大一些。现在主要的限制还是无法提供上下文语境,需要等待 API 扩容或者想办法用提示词喂语境(例如从上文摘一部分并告知)进去。
  5. 其他:目前 API 的一个来回限额是 4200 字符,大约对应 4000 英文词或 4000 中文字。按 1.5 比 1 的比例计算,大概一次能翻译 1600 词,而引入 DeepL 后,单词最大翻译量也会进一步下降到 1150 词左右。词汇表和提示词会加剧这一问题并进一步降低整个系统翻译长文的能力。