吴恩达的LLM反思方法-我学到的知识...
如果你写了一篇文章,老师通常会给你写一段评语,然后你根据这些评语来改进文章。这就是定性分析的一种形式(一种基于文字描述的改进方式)。
传统的分析方法通常依赖于定量分析,设定几个明确的指标范围,然后依据这些标准来指导改进。 然而,在以往,定性分析几乎是不可能实现的。
但自从有了大语言模型(LLM)之后,一切都发生了变化。
LLM擅长进行语义分析,即具备反思能力。它能够对内容进行深度反思,并根据反思结果提出改进建议(文字描述方式的建议),从而实现迭代优化。
说到反思能力,吴恩达做的翻译反思的开源项目一定值得一看。
主流程
项目背景:
本项目旨在将一种语言精准地翻译成另一种语言,确保信息传达的准确性与流畅性。
项目流程:
-
1. 初次翻译: 首先,利用大型语言模型(LLM)进行初步翻译,生成初步的译文。 -
2. 反思与改进: 随后,LLM会对初次翻译的结果进行深度反思,并输出详细的“改进建议”,指出译文中可以进一步优化的地方。 -
3. 最终定稿: 根据LLM提供的“改进建议”,再次进行思考与调整,最终输出更为精准、流畅的翻译结果。
https://github.com/andrewyng/translation-agent/tree/main/src/translation_agent#utils.py#one_chunk_translate_text
所以整个流程设计三个提示语(对应上边的三步)
实战
无需关注代码细节,直接提取提示词,即可在DeepSeek上进行测试。
我们场景是这样的:
-
1. 原始语言是-source_lang:中文 -
2. 目标语言是-target_lang:英语 -
3. 目标语言使用地-country:美国
Let‘s go~
第一次翻译
这步骤的目标:直接给出我们的要求,让LLM输出我们要的结果。
原始的提示词是这样的:
这是一次从{source_lang}到{target_lang}的翻译,请提供这段文本的{target_lang}翻译
除了翻译内容外,请勿提供任何解释或文本。
{source_lang}: {source_text}
{target_lang}:
替换变量后,在deepseek的执行效果是这样的:
反思
这步骤的目标:对第一步翻译的结果进行反思和思考,让LLM输出改进的建议
原始的提示词是这样的:
你的任务是仔细阅读源文和从源语言{source_lang}翻译到目标语言{target_lang}的译文,然后给出建设性的批评和有益的建议,以改进译文翻译的最终风格和语调应与{country}地区日常口语中的{target_lang}风格相匹配。
源文本和初始翻译(由XML标签<SOURCE_TEXT></SOURCE_TEXT>和<TRANSLATION></TRANSLATION>分隔)如下所示:
<SOURCE_TEXT>
{source_text}
</SOURCE_TEXT>
<TRANSLATION>
{translation_1}
</TRANSLATION>
在撰写建议时,请注意是否有改进翻译的方法:
(1)准确性(通过纠正加法错误、误译、遗漏或未翻译的文本)
(2)流畅性(通过应用{target_lang}的语法、拼写和标点规则,并确保没有不必要的重复)
(3)风格(确保译文反映源文本的风格,并考虑任何文化背景)
(4)术语(确保术语使用一致,并反映源文本领域;并确保只使用与目标语言等效的习语)。
列出一些具体、有益且具有建设性的建议,以改进翻译工作。每条建议都应针对翻译中的一个具体部分。仅输出建议,其他内容一概不输出。
替换变量之后,提示词变成如下内容:
你的任务是仔细阅读源文和从源语言中文翻译到目标语言英文的译文,然后给出建设性的批评和有益的建议,以改进译文翻译的最终风格和语调应与美国地区日常口语中的英文风格相匹配。
源文本和初始翻译(由XML标签<SOURCE_TEXT></SOURCE_TEXT>和<TRANSLATION></TRANSLATION>分隔)如下所示:
<SOURCE_TEXT>
今天天气不错呀
</SOURCE_TEXT>
<TRANSLATION>
The weather is a nice today
</TRANSLATION>
在撰写建议时,请注意是否有改进翻译的方法:
(1)准确性(通过纠正加法错误、误译、遗漏或未翻译的文本)
(2)流畅性(通过应用英文的语法、拼写和标点规则,并确保没有不必要的重复)
(3)风格(确保译文反映源文本的风格,并考虑任何文化背景)
(4)术语(确保术语使用一致,并反映源文本领域;并确保只使用与目标语言等效的习语)。
列出一些具体、有益且具有建设性的建议,以改进翻译工作。每条建议都应针对翻译中的一个具体部分。仅输出建议,其他内容一概不输出。
替换变量后,在deepseek的执行效果是这样的:
可以看到,针对第一次翻译的结果,它给出了很多建议。
我们可以学到的是:如果我们对一个改进有一些标准,可以替换提示词改进标准的这块描述,LLM就会输出更符合我们期待的“改进建议”。:
-
1. 准确性: 建议将“The weather is a nice today”改为“The weather is nice today”,去掉多余的“a”,以符合英语表达习惯。 -
2. 流畅性: 建议将句子改为“The weather is pretty good today”,以更自然地表达“不错”的含义,并使句子更加流畅。 -
3. 风格: 建议使用更口语化的表达,如“It’s a nice day today”,以更好地匹配美国地区日常口语的风格。 -
4. 术语: 建议避免使用“nice”这一较为正式的词汇,改为更常用的“good”或“great”,如“The weather is good today”或“It’s a great day today”,以更符合日常口语的用词习惯。
改进
*这步骤的目标:基于第一步翻译的结果和第二步的改进建议, 让LLM输出最终的翻译结果
原始的提示词是这样的:
你的任务是仔细阅读,然后编辑从{source_lang}到{target_lang}的翻译,同时考虑列出专家建议和建设性批评。
源文本、初步翻译和专家语言学家建议分别由XML标签<SOURCE_TEXT></SOURCE_TEXT>、<TRANSLATION></TRANSLATION>和<EXPERT_SUGGESTIONS></EXPERT_SUGGESTIONS>分隔如下:
<SOURCE_TEXT>
{source_text}
</SOURCE_TEXT>
<TRANSLATION>
{translation_1}
</TRANSLATION>
<EXPERT_SUGGESTIONS>
{反射}
</EXPERT_SUGGESTIONS>
在编辑译文时,请充分考虑专家的建议。编辑译文时,请确保:
(1)准确性(通过纠正添加错误、误译、遗漏或未翻译的文本),
(2)流畅性(通过应用{target_lang}语法、拼写和标点规则,并确保没有不必要的重复)
(3)风格(确保译文体现源文的风格)
(4)术语(与上下文不匹配,使用不一致),或
(5)其他错误。
仅输出新翻译内容,其他内容一概不输出。
替换变量后,提示语是这样的
你的任务是仔细阅读,然后编辑从中文到英文的翻译,同时考虑列出专家建议和建设性批评。
源文本、初步翻译和专家语言学家建议分别由XML标签<SOURCE_TEXT></SOURCE_TEXT>、<TRANSLATION></TRANSLATION>和<EXPERT_SUGGESTIONS></EXPERT_SUGGESTIONS>分隔如下:
<SOURCE_TEXT>
今天天气不错呀
</SOURCE_TEXT>
<TRANSLATION>
The weather is a nice today
</TRANSLATION>
<EXPERT_SUGGESTIONS>
1. 准确性: 建议将“The weather is a nice today”改为“The weather is nice today”,去掉多余的“a”,以符合英语表达习惯。
2. 流畅性: 建议将句子改为“The weather is pretty good today”,以更自然地表达“不错”的含义,并使句子更加流畅。
3. 风格: 建议使用更口语化的表达,如“It’s a nice day today”,以更好地匹配美国地区日常口语的风格。
4. 术语: 建议避免使用“nice”这一较为正式的词汇,改为更常用的“good”或“great”,如“The weather is good today”或“It’s a great day today”,以更符合日常口语的用词习惯。
</EXPERT_SUGGESTIONS>
在编辑译文时,请充分考虑专家的建议。编辑译文时,请确保:
(1)准确性(通过纠正添加错误、误译、遗漏或未翻译的文本),
(2)流畅性(通过应用中文语法、拼写和标点规则,并确保没有不必要的重复)
(3)风格(确保译文体现源文的风格)
(4)术语(与上下文不匹配,使用不一致)
(5)其他错误。
仅输出新翻译内容,其他内容一概不输出。
在deepseek的执行效果是这样的:
结果思考
最终的结果“It's a great day today.”要比“The weather is nice today.”更能传达出我中文想表达的欢快而非正式的语气(“今天天气不错呀”)。
写在最后
深入思考并优化这一模式,使其更有效地帮助我们将未完全表达清晰的事情阐述得更加完整和透彻。再次基础上改进出我们想得到的结果。
我认为这种方式在改进提示词方面具有巨大潜力。
希望大家多找场景,可以把这个反思的神器用到AI工程化的落地上。
(文章原创,我花费大量时间,希望你在AI实施的过程中少走弯路,可以将AI工程化。 如果对你有帮助,帮我点赞、转发。这将是我最大的动力。万分感谢!!)

