微信(WeChat)作为 12 亿+用户交流的平台,覆盖全球各个地区、不同语言的用户,而微信翻译作为桥梁为用户间的跨语言信息交流提供了便利。目前微信翻译每天为千万用户提供数亿次的翻译服务,且团队技术持续钻研,累计发表数十篇顶会论文、夺得多项 WMT 冠军。随着翻译质量的提升,微信翻译的应用形态从文本逐步扩展到图片、语音、网页、文档、视频等众多场景。本文以微信图片翻译为例介绍近一年的技术优化。
文章术语
首先简要介绍微信图片翻译 1.0 版本的技术方案,重点梳理其中的关键问题。
1.0 版本中微信图片翻译采用相对简单的方案,主要分为两个模块:后台 Server 负责图片的文字识别、段落合并、段落翻译等,客户端根据文字识别和翻译结果渲染生成翻译图片。整体 pipeline 如下图所示:
首先通过一批图片例子来看 1.0 版本的效果,这里我们对比竞品如有道、搜狗等图片翻译,如下图所示:
原图 | 微信图片翻译 1.0 | 有道 | 搜狗 |
---|---|---|---|
通过上述例子,对于图片翻译中间的关键步骤进行简单对比得到如下结果:
因此,整体上来看 1.0 版本的图片翻译效果体验还有很大的提升空间,其关键模块的效果都需要进行较大的优化,特别是文本段落、图文渲染最直接影响用户体验的模块。
基于上述 1.0 版本存在的主要问题,在 2.0 版本我们重点优化了以下前、后处理模块:
于是,整体微信图片翻译 2.0 版本的 pipeline 如下:
主要模块关系如下图所示:
图片语种识别是给定一张图片,判断其中是否包含文字,进一步判断图片中文字所属的语种,即 Image Script Identification。
传统的图片分类技术主要是基于 CNN 结构,受益于其自身的inductive biases(模型先验假设,如 translation equivariance 即转换等变性,通过 kernel 参数共享实现;locality 即局部性、通过卷积操作实现),在各个图片分类数据集取得领先的结果。而近年来随着 Transformer 结构在 NLP 领域取得突破的进展,诸如 NMT、BERT、GPT 等模型在机器翻译、文本分类、文本生成等任务得到广泛的应用。CV 领域研究者也尝试将 Transformer 结构引入到图像任务中,特别是今年谷歌提出统一的Vision Transformer(ViT)模型[1] 在大规模数据集的训练下,尽管缺少相应的 inductive biases,但是依旧超越 CNN 的效果。
也由此引起一股 ViT 的研究热潮,比如 Facebook 随即提出 DeiT [2]、微软提出 BEIT [3]、SwinTransformer [4]、清华提出 DynamicViT [5]等,这些工作基本都是在原始 ViT 的基础上优化预训练策略、模型结构(层次化、动态化)等来提升效果。
因此这里图片语种识别的方案也是基于 ViT,并且在 ViT 基础之上做了模型结构层面的加速优化提出 ShrinkViT。
原始 ViT 结构如下图(源自[1]):
这里简要介绍 ViT 的 forward 过程:
我们基于开源的预训练 ViT 模型 [7] 在图片语种分类数据集进行 finetune,相比从 0 开始训练效果更好,头部语种 F1-score 可以达到90%以上,并且训练可以快速收敛。
可以看到 ViT 需要对原始图片每一层的 patch token sequence 进行 self-attention,计算量是平方复杂度,线上耗时压力较大。而对于图片语种识别任务来讲,我们只需要关注图片中有文字的 patch 即可(如下图例子中红色圈对应区域)。
因此很自然的想法是在训练过程中动态控制 patch tokens 的长度,将非文字的 patch 过滤掉,不参与后续的计算。工作[5] 也是基于此策略来优化提出了 DynamicViT,但是论文中的方法需要显式过滤的 patch 采用了离散的操作,导致了训练梯度无法传递的问题,同时论文中基于传统 CNN 大模型作为 Teacher 模型来蒸馏学习 ViT Student 模型较为复杂,不易复现。
这里借鉴 CNN 中 Conv 操作考虑图片局部特性和参数共享带来的转换等变性,我们考虑结合 Conv 操作到 ViT 中来提取 high level patch representations,同时在 Conv 过程中可以通过 kernel size 控制生成 patch 的数量,在保证信息不丢失的同时达到缩减 patch tokens 数量的目的,我们命名为 ShrinkViT。
ShrinkViT 对比 ViT 的模型结构如下图所示:
这里我们在原始 Transformer block 结果之后增加 Shrink Block,可以通过 Conv1d 实现(也可以通过 MLP 实现),如下图所示:
实际当中,考虑模型的效果不一定每一层都需要加 Shrink Block,基础的 ViT depth=12,以下结果是我们在 3、6、9 层分别加入 Shrink Block 的离线实验结果:
注:ViT 采用 base 结构(patch_size=16, embed_dim=768, depth=12, num_heads=12)。从以上结果可以看到,引入 Shrink Block 在保证模型效果的同时,模型参数仅少量增加(3MB),但是计算量减小到原来的一半(49 GFLOPs -> 24 GFLOPs),耗时也相对减少(14ms -> 8ms)。优化之后的 ShrinkViT 目前已部署上线,GPU 服务耗时减少30ms。
目前 OCR 的结果是在行粒度进行文字检测和识别:
因此在 OCR 之后,基于段落粒度来进行结果合并和下游翻译、图文合成等任务。这里段落主要是定义为文本内容完整且位置独立的文本区域。如下图绿色框表示(两张图分别包含了 4 个和 3 个文本段落):
图片的段落框检测可以属于图片文档分析(Document Image Analysis,DIA,包括如图片文档分类、文档版面分析、表格检测等)中的任务之一,近年来业界相关的工作有 LayoutParser [11]、LayoutLM [13,15]、LayoutLM2 [12,13]等。
LayoutParser 是基于 Facebook(Meta)目标检测框架 Detectron2 [14]搭建的图片文档版面分析工具,基于开源数据集提供部分预训练模型。但是主要问题是开源的数据集和模型基于单一场景数据,如表格、学术论文、新闻报纸结构等,而且多数框是基于 4 点坐标,不能满足实际复杂业务场景。
LayoutLM 和 LayoutLM2 等是 Microsoft 提出结合图片和文本的图片文档版面分析预训练模型(参考 BERT 和 Transformer),如下图(图片分别来自[15]、[12])所示:
LayoutLM、LayoutLM2 等第一步需要提取token level的文本和对应 bounding box 信息,数据预处理代价较大。
综上,这里我们借鉴 LayoutParser [11]的方法,来做段落 level 的文本框检测。考虑到段落框可能是任意形状(多边形),这里采用基于分割(segmentation-based)的 DBNet [9],主体结构如下图(源自[9])所示:
直接利用 DBNet 训练段落框的检测模型,相比文本行的检测,实验中我们发现有以下的问题:
因此,这里在 DBNet 的基础之上,我们在训练样本 label、模型参数、模型结构 Loss、后处理逻辑等方面进行了相应的优化:
整体上在引入上述(1)(2)(3)(4)(5)的优化,实验中段落框的检测效果(h-mean 值)效果提升显著,达到预期可用的结果。优化前后的段落框检测结果对比样例如下图:
原始 DBNet | 优化后 DBNet 结果 |
---|---|
上述段落结果主要是基于视觉信息(图像层面)来做段落的检测,但是在实际 case 存在一定的情况,需要从文本的角度做进一步的段落检测。如下场景:
因此,这里我们构建了基于文本(语义)层面的段落检测模型,对段落结果进行一定程度的矫正。
文本段落检测即判断给定的两个文本片段(非完整句子)是否应该拼接组成一个段落。相关的方法主要有以下:
上述相关的方法一定程度都不适应于文本段落任务,因此我们直接通过文本分类任务来判断两个文本 span 是否属于一个段落。
得益于开源大规模预训练模型如 BERT [9]在各类 NLP 任务中取得 SOTA 的效果,因此这里我们基于开源 BERT [10] finetune 搭建文本段落分类模型。对于两个任意文本 span:[w11 w12 w13 … w1n]、[w21 w22 w23 … w2m],将其拼接为[CLS w11 w12 w13…w1n SEP w21 w22 w23…w2m SEP]作为原始输入。如下例子:
[CLS] sector follow [SEP] the industry [SEP]
[CLS] several members represent the irish national [SEP] india , aboard the [SEP]
之后进行 BERT Encoder,在输出层拿到 CLS token representation 与 output weights 矩阵计算,之后计算 Softmax 得到各个 label 的概率分布。整体结构如下图:
训练数据方面,我们基于开源大规模 wiki 单语语料数据构造大批量的伪数据作为 BERT 分类器初始训练数据,之后在有限的标注数据进行 finetune。整体分类 Accuray 在90%以上。
有了基于 BERT 的文本段落模型之后,在原始段落的基础上,我们对其进行矫正,基础的矫正策略如下:
整体上,增加文本段落模型之后,我们对于图片翻译整体效果进行了端到端的 GSB 评估,相比没有文本段落模型的结果如下(随机采样 100 张图片人工评估):
如下例子:
原图 | 图片段落结果 | 增加 BERT 段落矫正模型 |
---|---|---|
其中第一张图片中 BERT 段落矫正模型可以将原属于同一图片段落的文本(“In-Store Pickup Sep 24” 和 “iPhone 13 Pro Max”)拆分为独立的两个段落。第二张图片中可以将原属于不同段落的相邻文本(“the information contained in your CAS” 和 “STATEMENT below when making your student”)合并为同一个段落,因此整体上翻译效果和排版更好。
从 GSB 的结果看出,文本段落模型对于图片文本段落框划分以及最终的图片翻译质量有明显的提升。
另外我们也尝试了其他模型结构(如 BERT 双塔结构分别建模两个 text span、BERT 建模 text 对应 bounding box 信息),相比基于 text pairs 拼接的 BERT 模型有一定的提升。不过因为模型结构的复杂带来额外的计算耗时,上线还需优化。
接下来需要对应每一个段落翻译为目标语言的文本,这里段落之间是并行调用翻译服务。
但是在实际场景中,可能某一些段落较长,比如超过 1024 个 tokens,一方面可能导致翻译超时、另一方面由于翻译模型采用 NMT seq-to-seq 结构,文本越长,错误累计越严重等问题。因此这里我们在请求翻译服务时对于过长的段落文本进行拆分为多个子句进行翻译,翻译之后再将结果进行合并。
图片翻译的最后一步则是将翻译完成的文本段落贴回原图所在区域,即图文合成过程。但是在合成过程中需要满足如下要求:
从文章最开始微信图片翻译 1.0 版本的 badcase 可以发现,图文合成的结果对于最终的图片翻译体验尤为重要。与正常图文合成不同,这里第一步需要擦除原图文字内容、保留原图的背景,之后将翻译文字贴回原图位置,而且文字清晰可阅读。
从图片中擦除文字内容,且保留背景可以作为一种图片修复(Image Inpainting [16])任务,首先对于图片中的文字区域进行 mask 选定,之后对于图片中的缺失内容(mask 区域),进行重构恢复原有背景。
常用的 Image Inpainting 方法主要是生成式模型,如 GAN、VAE、Flow-based models、Diffusion models [17,18]。GAN 的效果和应用最广泛,主要挑战是比较难训练,VAE 和 Flows 在特定领域效果不错,但是质量和广泛性不如 GAN,Diffusion models 最近得到比较多的关注,在语音合成(speech synthesis)方面接近人类的水平。另外在部分图片生成、超分辨率任务中超越 GANs [18]。这几类生成模型对比如下图(源自[17]):
这里我们首先尝试主流基于 GAN [19,20] 的方法,基于文本框和文字轮廓分别标记文字 mask 区域,之后根据 Generator 网络重构生成 mask 区域,例子如下:
原图 | Mask 图片 | 重构图(norm 为 512*512 之后结果) |
---|---|---|
可以看到,上表第一行基于 bounding box 的 mask 图片,对于大范围单一背景(如蓝色背景)区域,GAN 的重构效果可以接受,但是对于复杂背景(如红色背景白色字、底部混合背景颜色排列)的重构效果比较差(多种背景色混合)。第二行基于文字 mask 的结果,生成式的 Image Inpainting 方法重构的区域依旧存在原文字轮廓模糊噪音、不够平滑。在图片翻译场景特别是要求背景和文字对比清晰的情况下,目前的模型效果不太适用。以下简单列举通用生成式 Image inpainting 方法不适用于本任务的原因:
而且 end2end 模型不方便动态调整,另外如果考虑重新训练模型,数据资源目前比较缺失。
结合目前的实际情况,对于图片合成文字过程,考虑到基于 OpenCV 来实现第一版效果,拆分为多个步骤,可以灵活调整结果。主要步骤如下表:
处理逻辑 | 结果图片展示 | |
---|---|---|
预处理 | 1.原始图片 norm | |
擦除图片中文字 | 2.裁剪文字区域子图 3.聚类获取文字和背景颜色 4.根据周边颜色不同设置文字mask 5.根据子图和 mask 进行 inpaint 6.高斯模糊优化 7.聚类获取主背景色&占比 8.如果是单一背景色,则修复为主背景颜色 | |
翻译文字贴回原图 | 9.获取段落文字颜色 10.根据重构图聚类获取段落主背景色 11.根据原图聚类获得跟背景色差异最大的颜色作为段落文字颜色 12.创建段落子图 13.创建透明背景或者主背景色空图 14.加载字体资源 15.自适应字体大小 16.按行 Draw 文字 |
微信图片翻译 2.0 版本主要优化目前已上线,同样以文章开头图片为例展示 2.0 版本的效果对比如下表所示:
原图 | 微信图片翻译 2.0 | 有道 | 搜狗 |
---|---|---|---|
从以上结果可以看看到,相比 1.0 版本,微信图片翻译 2.0 版本在文本段落识别、翻译质量和图文合成排版等多方面的体验得到了较大的提升。
同时对于微信图片翻译 2.0 和 1.0 版本,人工评估 GSB,2.0 版本提升显著,结果如下:
图片翻译 2.0 版本已上线到微信 iOS 客户端,体验方式:微信聊天框点击图片选择翻译、扫一扫图片翻译等入口,如下图:
另外对于新 2.0 版本图片翻译与旧 1.0 版本进行了线上真实用户的 ABTest,2.0 版本相比 1.0 版本,单个用户平均图片翻译文本句段增加 21%。
数据反应出随着新版图片翻译各方面质量的提升,用户的翻译行为也变的更加活跃。后续 2.0 版本将灰度到全量微信用户。
本文主要是整理了微信图片翻译 2.0 版本近一年的各项优化,从 1.0 版本的问题出发,结合业务实际情况和前沿研究方向,诸如将 ViT 应用到图片语种识别&加速优化、基于分割的 DBNet 应用到段落框检测优化、基于 pretrained BERT 应用到文本段落分类优化,基于 OpenCV 在后端实现图文合成渲染等。而且新版本上线之后,用户的翻译行为得到明显提升。未来微信翻译将继续优化,提供更好的翻译服务。
本文由哈喽比特于3年以前收录,如有侵权请联系我们。
文章来源:https://mp.weixin.qq.com/s/GVLZ3IRanjJebp87we_R5A
京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。
日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。
据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。
今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。
日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。
近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。
据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。
9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...
9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。
据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。
特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。
据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。
近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。
据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。
9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。
《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。
近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。
社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”
2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。
罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。