哈工深、微信:“慢思考”超长文档翻译智能体

如今,大语言模型已经成为机器翻译任务(Machine Translation)上的新型强大工具。 然而,多数在机器翻译大语言模型(MT-LLM)上开展的研究工作都是句子层面的,每一句话都被独立进行翻译,从而忽视了在翻译文档翻译(Document-Level)场景下句子间可能存在的逻辑关系。

此外,大语言模型在推理框架中是一个独立、封闭的个体,仅能被动地接收外部输入的信息并进行处理,同时还具有上下文容量上的局限性,因此难以胜任诸如长文本处理、文档翻译之类的复杂任务。

今天介绍的论文来自哈尔滨工业大学(深圳)计算与智能研究院腾讯WeChat AI。 这篇论文提出了一种名为DelTA(Document-levEL Translation Agent)的基于多级记忆组件的文档翻译智能体。 DelTA通过使用专有名词记录、双语摘要和长短时记忆等多级记忆机制,对文档中不同范围、不同粒度及不同形式下的关键信息进行提取、存储和检索,以辅助翻译过程的进行。 这种创新架构不仅能够提升文档翻译的质量,还能够显著改善翻译结果的上下文一致性,以及避免大语言模型在翻译整篇文档时可能造成的句子漏译现象。

  • 论文标题:DelTA: An Online Document-Level Translation Agent Based on Multi-Level Memory

  • 论文地址:https://arxiv.org/abs/2410.08143

  • 代码地址:https://github.com/YutongWang1216/DocMTAgent

动机

我们可以使用一种朴素的方法来利用大语言模型进行文档翻译,即利用大语言模型自身的上下文建模能力,一次性对文档中一个窗口内的多句话进行翻译。 随后窗口后移,再进行下一批句子的翻译。 窗口遍历完整篇文档后,将所有译句连接起来形成最终的译文文档。 然而,这样的方法会面临以下两个方面的挑战:

1. 翻译的一致性

在文档中,通常存在着许多包括人名、地名、术语在内的专有名词。 当源文档中的某个专有名词两次出现的位置不在同一个翻译窗口中时,大语言模型有可能会对其采取不同的翻译结果。 例如:上文中,大语言模型将“Natalia Rybczynski”这一人名翻译为“娜塔莉亚·雷布琴斯基”,而后文中却翻译为“娜塔莉亚·丽琴斯基”。 这样的不一致性无疑会对读者造成很大的困扰,严重影响到文档翻译的可靠性。

有的同学可能想到,可以通过增大模型的翻译窗口解决这一问题。 然而这一做法有以下两个局限性: 1)大语言模型的上下文容量终究有限,当待翻译的文档长度超过其容量时,一致性问题依然存在; 2)翻译准确性问题,即接下来要介绍的第二方面挑战:

2. 翻译的准确性

当我们使用较大的窗口大小进行文档翻译时,大语言模型倾向于将输入的源句子作为连贯的文档而不是单独的句子进行处理。因而可能忽略掉每个句子中的细节信息。 这可能导致源文档中部分句子没有被翻译,进而无法得到和源文档句子级对齐的翻译结果。 此外,过大的翻译窗口还可能影响到翻译的质量。

本论文通过实验对以上的挑战进行了展示。 本论文提出的LTCR-1指标计算了文档出现的所有专有名词中,翻译同第一次出现时采用的翻译保持一致的实例的比例。 如下图所示,随着翻译窗口大小(Window)的不断增加,虽然一致性指标在不断上升,但同时会造成漏译句子数量(#Missing Sents)的增多,翻译质量指标sCOMET和dCOMET也呈下降的趋势:因此,本论文构建了一个文档翻译智能体,通过设计一个多级的记忆组件,来对文档中不同范围、不同粒度及不同形式下的关键信息进行提取、存储和检索,以辅助翻译过程的进行,对文档翻译的一致性和翻译质量进行提升。 同时,采用逐句翻译的方式来解决句子漏译的问题,同时节省内存开销,降低系统部署的成本。

方法

本论文提出了一个名为DelTA的基于多级记忆的文档翻译智能体。 这一智能体包含了如下四个记忆组件:专有名词记录、双语摘要、长时记忆和短时记忆。 由大语言模型负责对这些记忆进行更新和检索。

1. 专有名词记录(Proper Noun Records)

当DelTA在文档翻译过程中首次遇到某个新专有名词时,该记忆组件将会记录这一专有名词及其对应的翻译。 在翻译后续的句子时,DelTA会查找专有名词记录以检查当前句子中是否包含任何以前已经遇到过的专有名词。 如果包含,DelTA会使用记录中存储的相同翻译来确保翻译的一致性。 专有名词记录由一个基于大语言模型的组件——专有名词提取器进行维护。 在每个句子翻译完成后,该提取器都会提取句中潜在的新专有名词。

2. 双语摘要(Bilingual Summary)

不同于以往研究中仅使用单个摘要的做法,考虑到文档翻译任务横跨两种语言的特性,本研究拟采用双语摘要作为第二层记忆,以应对源端和目标端都包含大量语句的挑战。我们在整个翻译过程中维护一对摘要,通过概括文档先前翻译部分的主要内容、领域信息以及风格和语气信息以提高准确性和流畅度。 这对摘要由两个基于大语言模型的组件生成,即源摘要编写器和目标摘要编写器。

智能体每翻译m个句子便对摘要进行一次更新,这一更新过程包含两个步骤:第一步,编写器为源文本和目标文本中刚刚翻译过的m个句子各生成一个段落摘要。第二步,将这一对段落摘要与两端已有的总体摘要合并以生成新的总体摘要。这一过程将会一直重复,直到源文档中的所有句子都已被翻译。这一结构化的方法确保本文中的智能体能够持续地对上下文信息和文档风格等进行访问以增强源端与目标端之间、句子与句子之间的连贯性,从而显著提高翻译质量。

3. 长时记忆(Long-Term Memory)和短时记忆(Short-Term Memory)

本发明开发的智能体的最后两层记忆分别是长时记忆和短时记忆。这两个组件旨在获取不同时间区间中的相关信息来辅助翻译的进行,从而解决文档翻译任务中对于连贯性的需要。 短时记忆中保存了最后k个源句及其相应的翻译,其中k的取值相对较小。 该组件专门负责捕获与当前待翻译源句相邻的句子中的即时上下文信息,然后将其作为翻译当前句子时的演示示例。

相反,长时记忆组件通过维护一个源文档中最后l个句子的窗口来提取范围更广的上下文,其中l远大于k。在翻译给定的源句之前,需要由基于大语言模型的组件长时记忆检索器选择与当前源句相关性最高的m个句子作为翻译提示中的演示示例。 通过结合长时和短时记忆,我们的智能体可以获取不同时间范围内的上下文信息,同时使得翻译内容和风格保持一致,从而更加精确和高质量的翻译。

4. 文档翻译器(Document Translator)

本论文使用一个基于大语言模型的翻译器来负责最终的翻译工作。 我们在其翻译的提示内加入上述的多级记忆信息,以支持翻译器的推理过程。 逐句翻译的方法可确保生成的目标文档与源文档在句子水平上对齐,从而有效地将目标译句缺失的风险降至最低,并带来更准确的翻译结果。

DelTA翻译文档总体过程的算法表示见下图:

实验结果

本论文在文档翻译测试集IWSLT 2017(英汉、英德、英法、英日互译)和Guofeng V1(中译英)上进行了测试,并对比了三种基线方法: 1)Sentence:朴素的句子级翻译; 2)Context:由Adapting large language models for document-level machine translation提出,为当前源句提供最近翻译过的三个源-译句对作为额外的上下文信息; 3)Doc2Doc:由Document-level machine translation with large language models提出,每轮对话对文档中的十句话进行翻译,之前的翻译结果作为后续对话中的历史信息。

IWSLT 2017和Guofeng的测试结果分别如下面两个表所示。 DelTA在四个主干模型和两个测试集上,相比与三个基线方法均取得了明显的翻译一致性和翻译质量提升。 值得注意的是,Guofeng由于是由网络小说构成的语料数据,其内包含了更多的专有名词(主要是人名),因此在翻译一致性指标上更加具有挑战。 但本论文提出的方法在这一测试集上依然获得了较高的一致性,证明了DelTA的有效性和鲁棒性。

分析

1. 消融实验

从简单的句子级翻译方法起始,当提供上下文句子时(模型2),系统的翻译质量有所提高,但翻译一致性没有显著增长。 长时记忆的引入有助于提高翻译的一致性(模型3),使得LTCR-1增加了2.22个百分点。 加入双语摘要(模型6)使得COMET分数和一致性分数均有所增加。 当引入专有名词记录时(模型7),sCOMET和dCOMET得分略有下降,这可能是额外信息引起的扰动造成的。 然而,翻译一致性却因此显著提高,LTCR-1比模型6增加了3.95个百分点。 此外,与仅使用源端或目标端摘要相比,双语摘要对翻译质量和一致性的影响明显更大。 在模型4、5和6中,使用了双语摘要的模型6在所有指标中均获得了最高分数。

2. 长跨度下维持更高的一致性

DelTA在不同跨度的两处专有名词出现位置下均能保持较高的翻译一致性。 在两次出现位置的跨度超过50句话时,DelTA依然能够获得明显高于其他三种基线方法的分数。 这证明了DelTA在长篇幅文档翻译时仍然能够表现出出色的一致性性能。

3. 更精准的代词翻译

代词翻译精度也是衡量文档翻译质量的一项重要指标。 翻译模型需要利用文档中包含的上下文信息对源语言中的代词进行正确消歧,才能准确地对源语言中的代词翻译成另一种语言。 实验表明DelTA能够获得比几种基线方法更高的APT(Accuracy of Pronoun Translation)分数,证明其能够更加有效地建模上下文信息,以对文档翻译过程进行辅助。

4. DelTA作为一种摘要生成工具

除文档翻译之外,长文本处理的另一项重要任务是摘要生成(Summarization)。 DelTA中的摘要组件通过一个双过程的摘要生成方法,迭代式地对文本摘要进行更新。 实验表明,这样的摘要生成方法也能够运用在基于请求的摘要生成(Query-Based Summarization)任务上。 摘要组件不断读入文档,在摘要生成器大模型的提示中加入请求信息,便可以根据用户的特定需求生成任意文档的摘要。 本实验在QMSum测试集上将DelTA与A human-inspired reading agent with gist memory of very long contexts中的系统进行了对比,结果证明了DelTA中摘要组件的高效性。

5. 更少的显存消耗

DelTA采用逐句的方式对文档进行翻译,前文中的关键信息都被提取并存储在记忆组件中。 相比于Doc2Doc基线方法中将所有历史翻译信息都进行保存的方法,我们的方法能够有效避免因信息积累导致的内存爆炸问题。 我们对比了两种方法随翻译句子数量增加所消耗的内存变化。 Doc2Doc方法在翻译到490句话时耗尽了所有显存,而DelTA占用的显存仅仅由于摘要长度的增加而随翻译过的句子数量缓慢增加。 由此可见,DelTA更加适合长篇幅文档的翻译,并且部署的成本更加低廉。

未来展望

DelTA智能体提升了文档翻译任务中的一致性和翻译质量,但也因对大语言模型的频繁调用而具有较长的运行时间。 在未来工作中,可以尝试对部分基于大语言模型的组件进行替换以提升效率,例如将长时记忆检索器替换为基于句向量匹配机制的稠密检索器(Dense Retriever)。 也可考虑减少对大语言模型的调用次数,例如将摘要生成的步骤优化为一步,以及使用更加智能的方式判断何时使用智能体的各个组件。


读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/453008.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

训练VLM(视觉语言模型)的经验

知乎:lym 链接:https://zhuanlan.zhihu.com/p/890327005 如果可以用prompt解决,尽量用prompt解决,因为训练(精调)的模型往往通用能力会下降,训练和长期部署成本都比较高,这个成本也包…

vScode---配置Pyqt5环境--记录

前提条件: python运行环境已正常安装 1、安装Pyqt5 第三方库下载地址记录: 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣:https://pypi.douban.com/simple 阿里云:https://mirrors.aliyun.com/pypi/simpl…

一文读懂组态图和组态软件,最浅显的解读

一、什么是组态图 组态图是指在工业自动化领域中,用来描述和展示控制系统中各个组件之间关系和工作流程的图形化表示方法。它是一个系统的框架图,通过图形符号和连接线,将各个组件(如传感器、执行器、控制器等)以及它…

linux ps和kill指令

目录 ps 命令 kill指令: 示例: 补充:管道的概念 管道的概念 管道的用途 示例 在Linux系统中,ps 和 kill 是两个非常常用的命令,用于管理和终止进程。 ps 命令 ps 命令用于显示当前系统中的进程状态。它可以提供…

责任链模式下,解决开闭原则问题实践

前言 在现代软件工程中,设计模式是解决常见问题的有效工具之一。它们吸收了前人的经验,不仅帮助开发者编写更清晰、更可维护的代码,还能促进团队之间的沟通和协作。责任链模式(Chain of Responsibility Pattern)作为一…

无人机+视频推流直播EasyCVR视频汇聚/EasyDSS平台在森林防护巡检中的解决方案

随着科技的飞速发展,无人机技术在各个领域的应用日益广泛,特别是在森林防护与巡检方面,无人机以其独特的优势,为传统林业管理带来了革命性的变化。本文将探讨无人机在森林防护巡检中的解决方案,分析其工作原理、优势及…

基于SSM+微信小程序的电子点餐管理系统(点餐1)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的电子点餐管理系统实现了管理员及用户。管理员实现了首页、个人中心、餐品分类管理、特色餐品管理、订单信息管理、用户管理、特价餐品管理、活动订单管理、系统管理。…

【论文学习与撰写】使用endnote工具进行论文参考文献的引用与插入

目录 1、软件的安装 2、放入endnote格式文献 3、endnote里文献管理 4、论文里引用参考文献的插入 5、参考文献的格式转换,及格式的下载 1、软件的安装 关注软件管家,进行下载软件和安装软件 下载通道②百度网盘丨下载链接: https://pa…

js.矩阵置零

链接:73. 矩阵置零 - 力扣(LeetCode) 题目: 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],…

Flutter 11 Android原生项目集成Flutter Module

本文主要讲解如何在已有的Android原生老项目中集成Flutter模块。 实现流程: 1、在Android原生项目根目录下,创建Flutter Module; 2、修改Android原生项目settings.gradle,绑定 Flutter Module; 3、修改Android原生…

15分钟学Go 第6天:变量与常量

第6天:变量与常量 在Go语言中,变量和常量是编程的基础概念。理解如何定义和使用它们不仅能帮助我们管理数据,还能增强代码的可读性和可维护性。在本章中,我们将详细探讨Go语言中的变量和常量,涵盖它们的定义、使用、作…

[Xshell] Xshell的下载安装使用及连接linux过程 详解(附下载链接)

前言 Xshell.zip 链接:https://pan.quark.cn/s/5d9d1836fafc 提取码:SPn7 安装 下载后解压得到文件 安装路径不要有中文 打开文件 注意!360等软件会拦截创建注册表的行为,需要全部允许、同意。或者退出360以后再安装。 在“绿化…

spdlog学习记录

spdlog Loggers:是 Spdlog 最基本的组件,负责记录日志消息。在 Spdlog 中,一个 Logger 对象代表着一个日志记录器,应用程序可以使用 Logger 对象记录不同级别的日志消息Sinks:决定了日志消息的输出位置。在 Spdlog 中&…

程序员节的故事:在代码的海洋中遨游

#1024程序员节 | 征文# 一年一度的程序员节又来了,作为一名热爱编程的开发者,我总是期待着这个特殊的日子。10月24日,不仅是程序员们的节日,更是我们分享故事、交流技术的时刻。今年的1024征文活动让我感到无比兴奋,因…

Axure重要元件三——中继器修改数据

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:中继器修改数据 主要内容:显示编辑内容、表格赋值、修改数据 应用场景:更新行、表单数据行修改 案例展示: 正文…

STM32L031F6P6基于CubeMX的串口通信调试笔记

用CubeMX创建项目 本实例用的PA14、PA13两个引脚,LPUART1。 对串口参数进行设置: 开启串口中断: 时钟源设置成内部高频时钟: 对项目进行设置: 生成代码: 在串口初始化函数中加入 __HAL_UART_ENA…

C++11 thread,mutex,condition_variable,atomic,原子操作CAS,智能指针线程安全,单例模式最简单实现方式

1.thread 在c11中,c标准委员会开发出了thread库;接下来我们先来看看这个库的使用吧; 1.1 thread类接口介绍 1.1.1 thread类构造函数 我们thread库中的thread类的构造函数可以通过直接传递回调函数与函数的参数来构造线程: int…

THP4 SOP16 芯片 高速光耦芯片

光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流,由受光器输出端引出,这样就实现了电一光一电的转换。 由于光耦合器输入输出间互相…

mysql主从复制及故障修复

一、主MySQL数据库的配置 分别在三台主机(chen2/10.110、chen3/10.120、chen4/10.130)中安装mysql数据,其中chen2/10.110作为主MySQL服务器,其余两台作为从MySQL服务器。 1、在主机上部署mysql数据库 详细的请看上一篇:mysql数据…

2021年江西省职业院校技能大赛(高职组) “云计算应用”赛项样题

2021年江西省职业院校技能大赛(高职组) “云计算应用”赛项样题 【任务 1】基础运维任务[5 分]【题目 1】基础环境配置【题目 2】镜像挂载【题目 3】Yum 源配置【题目 4】时间同步配置【题目 5】计算节点分区 【任务 2】OpenStack 搭建任务[15 分]【题目…