链载Ai

标题: 吴恩达翻译智能体在agentUniverse的拆解分析与复刻 [打印本页]

作者: 链载Ai    时间: 3 小时前
标题: 吴恩达翻译智能体在agentUniverse的拆解分析与复刻


在人工智能浪潮推动下,机器翻译技术日臻完善,却依旧面临严峻挑战。语言间语法、词汇与句式的迥异,加之全球文化背景的复杂多变,以及词汇多义性与专业术语的精准转化,构成机器翻译亟待攻克的技术壁垒,呼唤着更深层次的创新与突破。

深度学习技术的出现,使得机器翻译的翻译质量和速度都有了很大的提升。大语言模型(LLM)和人工神经网络可以帮助机器学习和理解大量的语言数据,多智能体协作框架引入了反思工作流机制,基于评价反馈进行内容优化迭代,可以根据框架预置的多智能体协作模式组件调用相应的知识图谱,使翻译内容更加精准自然。

近期,斯坦福大学教授吴恩达开源了一个运用反思工作流机制的AI翻译智能体。此项目展示了如何借助反思过程来优化翻译成果,展现了一定程度的自定义能力。这和我们PEER框架的Review机制不谋而合,于是,我们快速用agentUniverse多智能体框架对此翻译智能体进行复刻,并进一步拓展其长文本拆分翻译能力,为后续的多轮反思迭代翻译打下基础,进一步优化机翻体验。


01
翻译智能体


吴恩达教授的翻译智能体在翻译过程中,优先判断内容长度是否超过了模型所能承受的最大token,对超过模型长度的文本进行切块,再对分块后的文本进行翻译。

无论长文本还是短文本,翻译过程都会基于“初始翻译->反思->修改”这一流程进行,我们绘制了翻译智能体原项目流程图如下。

翻译智能体工作流程图

翻译智能体开源项目地址:https://github.com/andrewyng/translation-agent


吴恩达开源的翻译智能体的运作原理如下:

01
初步翻译

依托强大的大语言模型(LLM),将源语言文本转化为目标语言。

02
深入反思

模型自我审视翻译成果,敏锐指出瑕疵,并提供具体的改进建议。

03
优化迭代

依据反思反馈,大模型再次对翻译内容进行精准修正。


项目采用的反思工作流帮助模型发现不足,具有自我监督与优化机制,这也是一种典型的多智能体协作机制




agentUniverse



agentUniverse 是一个大型语言模型多智能体框架,致力于为开发者提供灵活易拓展的智能体应用的构建能力。


其核心创新之处,是包含了强大的多智能体协同模式组件(可视为一个协同模式工厂Pattern Factory),能让智能体们各司其职,在解决不同领域问题时表现出更强的效果;同时,agentUniverse还具备融合专家领域知识的能力,能帮助开发者、企业轻松构建出具备领域专家知识的智能应用。



02
基于 agentUniverse 的实现


了解翻译智能体的工作流程之后,我们尝试基于agentUniverse多智能体框架做该智能体的复刻(agentUniverse的环境搭建可以参考github中的Quick Start)。

基于agentUniverse实现该智能体分为三步:

01

创建基于长、短目标翻译文本的多套Prompt

02

搭建翻译、反思、修改智能体,实现根据文本长度进行智能切换Prompt的功能。

03

创建协同智能体,编排翻译、反思、修改三个智能体的协同工作过程。




创建Prompt与工作智能体



在agentUniverse中,通过配置文件定义Prompt,统一由PromptManager管理,在执行过程中,从全局的PromptManager当中获取需要使用的Pompt。针对吴恩达教授的翻译智能体当中的Prompt,我们创建了2套(共8个Prompt文件)针对长、短目标翻译文本的Prompt。

翻译智能体的工作流程分为翻译、反思、修改三步,我们将每一步都单独构建成Agent。在agentUniverse框架中,通过配置文件初始化完成Agent的搭建,此举简化了开发流程。

翻译、反思、优化Agent 的分工与协作图


如图展示,我们构建了三个核心智能体,其中translation_work_agent负责初始翻译,translation_reflection_agent进行翻译内容的深度反思,translation_improve_agent专注于翻译成果的迭代优化。三者协同运作,遵循一套精心设计的反思流程,以期达到更高质量的翻译效果。




编排协同模式


翻译、反思、优化三个智能体的协同工作过程在单轮中是一个典型的串行顺序,借助agentUniverse可以方便地获取每一步的执行信息。


协同智能体的执行过程

部分编排代码实现:

def execute_agents(self, input_object: InputObject, planner_input: dict) -> dict:work_agent = 'translation_work_agent'reflection_agent = 'translation_reflection_agent'improve_agent = 'translation_improve_agent'
init_agent_result = self.execute_agent(work_agent, planner_input)LOGGER.info(f"init_agent_result: {init_agent_result.to_json_str()}")output_middle_result(input_object, {'init_agent_result': init_agent_result.get_data('output')})
planner_input['init_agent_result'] = init_agent_result.get_data('output')
reflection_result = self.execute_agent(reflection_agent, planner_input)LOGGER.info(f"reflection_result: {reflection_result.to_json_str()}")output_middle_result(input_object, {'reflection_agent_result': reflection_result.get_data('output')})
planner_input['reflection_agent_result'] = reflection_result.get_data('output')
improve_result = self.execute_agent(improve_agent, planner_input)LOGGER.info(f"improve_agent_result: {improve_result.to_json_str()}")output_middle_result(input_object, {'improve_agent_result': improve_result.get_data('output')})
return improve_result.to_dict()


03
效果测试


通过agentUniverse我们将agent快速服务化。

接下来,使用curl访问该智能体执行翻译,可以动态的观察到每一步的执行结果。访问请求的curl:


HTTP 请求

curl--location--requestPOST'http://localhost:8888/service_run_stream'\--header'Content-Type:application/json'\--data-raw'{"service_id":"translation_service","params":{"source_lang":"英文","target_lang":"中文","country":"中国","source_text":"Lastweek,IspokeaboutAIandregulationattheU.S.Capitolataneventthatwasattendedbylegislativeandbusinessleaders.I’mencouragedbytheprogresstheopensourcecommunityhasmadefendingoffregulationsthatwouldhavestifledinnovation.Butopponentsofopensourcearecontinuingtoshifttheirarguments,withthelatestworriescenteringonopensource'\''simpactonnationalsecurity.Ihopewe’llallkeepprotectingopensource!\nBasedonmyconversationswithlegislators,I’mencouragedbytheprogresstheU.S.federalgovernmenthasmadegettingarealisticgraspofAI’srisks.Tobeclear,guardrailsareneeded.ButtheyshouldbeappliedtoAIapplications,nottogeneral-purposeAItechnology."}}'


动态输出结果过程:


初始翻译执行结果


反思结果




最终结果:








在该翻译智能体的工作过程中,我们可以动态观察到整个翻译、反思、执行的全流程。

在吴教授开源智能体当中的执行结果:

对比两个翻译效果一致,复刻成功。



04
优化讨论


在吴教授开源的翻译智能体项目中,并没有处理超长文本的情况,即对于待翻译文本超过模型所能承受max_context_length的情况,会出现请求模型的错误。

我们在github上与其团队进行了基于agentUniverse开源框架复刻的翻译智能体新增了长文本翻译处理能力,通过对文本内容切分,让模型一次翻译不超过1000 token的内容,以提高模型的准确率。

(详细信息可查看我们提的issue:https://github.com/andrewyng/translation-agent/issues/28。)


05
实战翻译——WAIC大会英文报道


针对WAIC全球人工智能大会的外文报道,我们运用了基于agentUniverse多智能体框架构建的翻译智能体进行了内容翻译。

以下为翻译智能体在处理这篇报道时的思考过程与翻译成果:

Q :英文报道

报道来源:YouTube

A:智能体输出内容


翻译智能体首先对原始文本进行了细致的语法和语义分析,确保了对原文的全面理解。随后,通过智能体间的协同工作,进行了初步的翻译尝试。这一阶段,智能体不仅依赖于大型语言模型(LLM)的直译能力,还结合了多智能体间的反思机制,对内容进行了严谨的审视与修正建议。

最终,经过多轮的迭代优化,翻译智能体成功地将WAIC全球人工智能大会的英文报道转化为高质量的中文文本,不仅忠实还原了原文信息,还确保了语言流畅性和文化适配性。


06
展望与总结


基于agentUniverse多智能体框架,我们通过分析并结合多智能体协同方式,成功复现开源翻译智能体,并在长文本翻译处理方向上做了优化。

吴恩达教授的开源项目目前仍在起步阶段,仅限于一轮反思与修正的局限,我们认为这部分可以进行翻译过程的多轮迭代优化。例如通过“行动-反思”(Act-Then-Reflect)模式循环反复演练,让翻译智能体得以在实践中不断学习与进化,产出更加贴合人类语言的复杂性和多样性的内容。我们也会在近期持续迭代,将这一模式在agentUniverse框架中开放。
我们坚信,未来在人工智能辅助下,翻译智能体将在更广阔的场景中发挥其无可替代的价值,开启人机协同翻译的新篇章。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5