行业新闻

如何通过优化 Prompt, 让 GPT 翻译得更准确?

发布日期:2024-04-29  来源:

丹尼尔卡尼曼在他的《思考快与慢》探讨了人类思考的两种模式。一种被他称作系统 1,是快速的、直接和自动化的思考模式;另一种叫系统 2 ,是慢速的、有意识的和分析性的思考模式。

有趣的是,按照 Andrej Karpathy 的说法包括 GPT 在内的大语言模型(后面简称 LLM),目前展现的都只有一种类似于系统 1 的思考方式。

这是一个很有趣的视角。

我们问 LLM 问题时,它确实表现出一种“如非必要,绝不多思考半步”的感觉。而”缺少思考“的 LLM 似乎很容易贸贸然地给出错误的答案。

因此,如果我们想从 LLM 中得到更好的结果,可以想办法让它“多思考一点点”,比如指定推理步骤、或者提供思考示例。

即使仅仅是在 Prompt 里面加个简单的“Let's think step by step”,都可以大幅改善它对复杂问题的回答,似乎这样可以“迫使”它稍微动用一下系统 2。


我拿钱歌川先生写的一本小书《翻译的基本知识》里面举得容易翻译错的例子,来考验 GPT 的翻译。

比如这样一句:

(19)His success is out of the question.
(误译)他成功是无问题的 。
(应译)他绝不可能 成功。
英文的out of question 和out of the question ,虽相差只有一个小小的冠词the,但意思是完全不同的。out of question =beyond question意为“无疑”或“不待言”,所以 His success is out of question 是说“他一定成功”。至于His success is out of the question 便是说“他一定失败”。因为out of the question=not to be thought of; quite impossible,意为“决不可能”或“无讨论的价值”

我直接用最简单的 Prompt 让 GPT3.5 翻译,得到错误的结果:


GPT3.5 翻译

等我换一种问法,先问他 out of the question 是什么意思,再让他翻译,则得到了正确的答案:

GPT3.5 先回答子问题再翻译

从某种意义上,这是一种 Chain-of-Thought 技巧的变体。Chain-of-Though 技巧,就是通过在 Prompt 里面提供推理的思路、增加中间步骤的描述,让 LLM 根据预定的思路一步一步得出更准确的答案。


正好我在设计“翻译家”角色的 prompt。以上这个简单的试验给了我一些启发。

最初的简单的“翻译家”的 instruction prompt 是这样的:

你是一个翻译家,你擅长把英文翻译成中文

现在开始, 每次你收到一个英文句子或者段落,都把它翻译成地道的中文。

当我给它发 His success of out of the question 时,得到的答案跟之前一样,是错误的:

GPT3.5 “简单翻译”

根据前面先引导 GPT 解释再让它回答从而得到好结果的经验,我修改了 instruction prompt,让这个翻译家先分析,再翻译:

你是一个精通英文俚语和擅长中文表达的翻译家。

每次我都会给你一句英文,请你都把它翻译成中文,用尽可能地道的中文表达。

在翻译之前,你应该先提取英文句子或者段落中的关键词组,先解释它们的意思,最后再翻译。

你的回答应该遵循以下的格式:

### 分析
{重复以下列表,列出需要关键词组,解释它的意思}
- 关键词组{1...n}:
- 词组:{English}
- 释义:{该词组表达什么意思,会用在什么地方}

### 译文
{结合以上分析,最终翻译得到的译文}

结果确实明显有改善,得出了正确的翻译:

GPT3.5 “先分析再翻译”

受到这篇博文 - 怎么让 ChatGPT 的翻译结果更准确? - 的启发,我决定再加入一个校对的步骤,得到这样的 instruction prompt:

你将扮演两个角色,一个精通英文俚语和擅长中文表达的翻译家; 另一个角色是一个精通英文和中文的校对者,能够理解英文的俚语、深层次意思,也同样擅长中文表达。

每次我都会给你一句英文:
1. 请你先作为翻译家,把它翻译成中文,用尽可能地道的中文表达。在翻译之前,你应该先提取英文句子或者段落中的关键词组,先解释它们的意思,再翻译。
2. 然后你扮演校对者,审视原文和译文,检查原文和译文中意思有所出入的地方,提出修改意见
3. 最后,你再重新扮演翻译家,根据修改意见重新翻译,得到最后的译文

你的回答应该遵循以下的格式:

### 分析
{重复以下列表,列出需要关键词组,解释它的意思}
- 关键词组{1...n}:
- 词组:{English}
- 释义:{该词组表达什么意思,会用在什么地方}

### 译文初稿
{结合以上分析,翻译得到的译文}

### 校对
{重复以下列表,列出可能需要修改的地方}
- 校对意见{1...n}:
- 原文:{English}
- 译文:{相关译文}
- 问题:{原文跟译文意见有哪些出入,或者译文的表达不够地道的地方}
- 建议:{应如何修改}

### 译文终稿
{结合以上意见,最终翻译得到的译文}

确实有明显改善:

GPT4 “先分析再翻译再校对”

最后以一个经典的“否定语加 but ”的例子来比较 GPT3.5 的简单翻译、GPT4 的简单翻译,以及 GPT4 的“先分析再翻译再校对”:

原文:I never think of summer but I think of childhood.


GPT3.5 简单翻译


GPT4 简单翻译


GPT4 “先分析再翻译再校对”

综上,如果我们想让 LLM 在完成特定任务给出更高质量的结果,可以设想人们自己是怎么完成任务的,以此分拆任务的步骤,再通过完整的引导指令,让 LLM 一步一步完成任务。

PS:你可以在 SimplifyAI 知识助手产品中,定义不同的角色,快速地让 LLM 帮你执行你经常需要完成的任务。

相关新闻

平台注册入口