微信扫码
与创始人交个朋友
我要投稿
在人工智能浪潮推动下,机器翻译技术日臻完善,却依旧面临严峻挑战。语言间语法、词汇与句式的迥异,加之全球文化背景的复杂多变,以及词汇多义性与专业术语的精准转化,构成机器翻译亟待攻克的技术壁垒,呼唤着更深层次的创新与突破。
深度学习技术的出现,使得机器翻译的翻译质量和速度都有了很大的提升。大语言模型(LLM)和人工神经网络可以帮助机器学习和理解大量的语言数据,多智能体协作框架引入了反思工作流机制,基于评价反馈进行内容优化迭代,可以根据框架预置的多智能体协作模式组件调用相应的知识图谱,使翻译内容更加精准自然。
近期,斯坦福大学教授吴恩达开源了一个运用反思工作流机制的AI翻译智能体。此项目展示了如何借助反思过程来优化翻译成果,展现了一定程度的自定义能力。这和我们PEER框架的Review机制不谋而合,于是,我们快速用agentUniverse多智能体框架对此翻译智能体进行复刻,并进一步拓展其长文本拆分翻译能力,为后续的多轮反思与迭代翻译打下基础,进一步优化机翻体验。
吴恩达教授的翻译智能体在翻译过程中,优先判断内容长度是否超过了模型所能承受的最大token,对超过模型长度的文本进行切块,再对分块后的文本进行翻译。
无论长文本还是短文本,翻译过程都会基于“初始翻译->反思->修改”这一流程进行,我们绘制了翻译智能体原项目流程图如下。
翻译智能体工作流程图
翻译智能体开源项目地址:https://github.com/andrewyng/translation-agent
吴恩达开源的翻译智能体的运作原理如下:
依托强大的大语言模型(LLM),将源语言文本转化为目标语言。
模型自我审视翻译成果,敏锐指出瑕疵,并提供具体的改进建议。
依据反思反馈,大模型再次对翻译内容进行精准修正。
项目采用的反思工作流帮助模型发现不足,具有自我监督与优化机制,这也是一种典型的多智能体协作机制。
agentUniverse 是一个大型语言模型多智能体框架,致力于为开发者提供灵活易拓展的智能体应用的构建能力。
其核心创新之处,是包含了强大的多智能体协同模式组件(可视为一个协同模式工厂Pattern Factory),能让智能体们各司其职,在解决不同领域问题时表现出更强的效果;同时,agentUniverse还具备融合专家领域知识的能力,能帮助开发者、企业轻松构建出具备领域专家知识的智能应用。
了解翻译智能体的工作流程之后,我们尝试基于agentUniverse多智能体框架做该智能体的复刻(agentUniverse的环境搭建可以参考github中的Quick Start)。
基于agentUniverse实现该智能体分为三步:
创建基于长、短目标翻译文本的多套Prompt
搭建翻译、反思、修改智能体,实现根据文本长度进行智能切换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()
通过agentUniverse我们将agent快速服务化。
接下来,使用curl访问该智能体执行翻译,可以动态的观察到每一步的执行结果。访问请求的curl:
HTTP 请求
curl --location --request POST '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":"Last week, I spoke about AI and regulation at the U.S. Capitol at an event that was attended by legislative and business leaders. I’m encouraged by the progress the open source community has made fending off regulations that would have stifled innovation. But opponents of open source are continuing to shift their arguments, with the latest worries centering on open source'\''s impact on national security. I hope we’ll all keep protecting open source!\nBased on my conversations with legislators, I’m encouraged by the progress the U.S. federal government has made getting a realistic grasp of AI’s risks. To be clear, guardrails are needed. But they should be applied to AI applications, not to general-purpose AI technology."}}'
动态输出结果过程:
初始翻译执行结果
反思结果
最终结果:
在该翻译智能体的工作过程中,我们可以动态观察到整个翻译、反思、执行的全流程。
在吴教授开源智能体当中的执行结果:
对比两个翻译效果一致,复刻成功。
在吴教授开源的翻译智能体项目中,并没有处理超长文本的情况,即对于待翻译文本超过模型所能承受max_context_length的情况,会出现请求模型的错误。
我们在github上与其团队进行了基于agentUniverse开源框架复刻的翻译智能体新增了长文本翻译处理能力,通过对文本内容切分,让模型一次翻译不超过1000 token的内容,以提高模型的准确率。
(详细信息可查看我们提的issue: https://github.com/andrewyng/translation-agent/issues/28。)
针对WAIC全球人工智能大会的外文报道,我们运用了基于agentUniverse多智能体框架构建的翻译智能体进行了内容翻译。
以下为翻译智能体在处理这篇报道时的思考过程与翻译成果:
Q : 英文报道
报道来源:YouTube
A : 智能体输出内容
翻译智能体首先对原始文本进行了细致的语法和语义分析,确保了对原文的全面理解。随后,通过智能体间的协同工作,进行了初步的翻译尝试。这一阶段,智能体不仅依赖于大型语言模型(LLM)的直译能力,还结合了多智能体间的反思机制,对内容进行了严谨的审视与修正建议。
最终,经过多轮的迭代优化,翻译智能体成功地将WAIC全球人工智能大会的英文报道转化为高质量的中文文本,不仅忠实还原了原文信息,还确保了语言流畅性和文化适配性。
基于agentUniverse多智能体框架,我们通过分析并结合多智能体协同方式,成功复现开源翻译智能体,并在长文本翻译处理方向上做了优化。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-08-21
2024-04-11
2024-08-13
2024-07-09
2024-07-18
2024-10-25
2024-07-01
2024-06-17