搞翻译系列能坚持到306期,说实话,连我自己都没想到。这些年一边写代码一边看TowardsArtificialIntelligence这个博客,后来干脆把觉得有价值的内容一篇篇翻译成中文分享出来,不知不觉就攒下了这么多期。经常有朋友问我:翻译国外技术博客到底有没有必要?怎么选文?怎么保证翻译质量?还有人好奇,一个以“TowardsArtificialIntelligence”为名的博客系列,翻译到第三百多期,内容会不会枯竭、质量会不会下滑?
这篇博文就是想把这些经验一次性讲透。如果你也在做技术内容翻译,或者想建立自己的翻译输出体系,又或者纯粹好奇一个长线技术翻译项目是怎么活下去的,这篇应该对你有帮助。我会把从选文、翻译、校对到发布的完整流程,以及这三百多期里踩过的坑、总结出的方法论,全部摊开来讲。
1. 内容整体设计与思路拆解
1.1 为什么选TowardsArtificialIntelligence这个博客作为翻译源
技术博客千千万,为什么偏偏选它?这得从我的实际需求说起。我之前做算法落地相关的工作,经常需要快速了解某个新技术点的思路,但英文原文读起来总归慢一些,尤其是那些篇幅长、公式多、还要结合上下文反复揣摩的文章。后来发现TowardsArtificialIntelligence最大的特点就是“兼收并蓄”——里面有前沿的学术论文解读,有工程落地的经验总结,有算法原理的通俗讲解,也有不少行业趋势的深度分析。它的内容密度适合翻译输出,不会像纯论文那样术语密集到没法下嘴,也不像短资讯那样翻译完没多少价值。
更重要的原因是,这个博客的文章质量分布有一定规律。它不全是那种顶级团队发布的研究成果,但恰恰因为如此,很多文章“离实际开发更近”。比如我印象很深的一篇讲模型压缩的文章,不是单纯列剪枝、量化的公式,而是贴了作者在真实业务里面对精度和速度权衡的整个思考过程。这种内容翻译过来,对国内读者来说非常解渴。对比某些大牌技术媒体,TowardsArtificialIntelligence的文章更“野生”,反而保留了工程师思考的原始路径。
选定了源,接下来要考虑的就是这个翻译系列的整体定位。我把它定位成“精选+精翻”,不是每篇都翻,而是从每周更新的文章里挑出适合中文读者阅读的。这个定位在做了二十几期之后就稳定下来了,后面基本没动过。
1.2 翻译系列的长期架构:从单篇翻译到知识沉淀
很多人做翻译,翻一篇算一篇,导致做了几十期之后内容散成一地,没有积累。我在前一百期也犯过这个错。后来重新整理了思路,把整个系列当作一个“知识树”来运营。每篇翻译的文章都要挂到某个主题分支下,比如深度学习基础、自然语言处理、计算机视觉、模型部署、强化学习等等。这样一来,读者能顺着标签找到同一主题的所有翻译,我自己在写后续翻译时也能参考之前的术语表达,保持一致性。
这个架构还有一个好处:避免内容重复。TowardsArtificialIntelligence上经常有文章讲相似的主题,比如讲注意力机制的文章可能隔几个月就出现一篇。如果你只是无脑翻译,读者会看腻。但如果有了全局架构,就可以选择那些角度不同、能补全知识拼图的文章。比如早期翻过一篇从零推导反向传播的,后面遇到一篇讲梯度问题在Transformer里如何解决的,两者虽然都涉及梯度,但一个是基础,一个是进阶,放在不同分支下就非常合理。
另一个细节是版本管理。每一期翻译我都会在一个本地目录里按期号存档,不只保存翻译稿,还保存原文的链接、发布时间、原文作者(注意,这里我不会提及具体人名)、以及翻译时的备注信息(比如哪些术语需要特殊处理)。这个习惯让我在后续回溯时非常方便——比如有读者指出某一期的翻译错误,我能快速定位到当时的编译版本和参考上下文,而不是翻聊天记录翻到半夜。也建议所有做长线翻译的朋友,从一开始就建立自己的知识库结构,别等到三五百期了再回头整理。
1.3 选文章的标准:不是所有热门文章都值得翻
做翻译系列,最难的不是翻译本身,而是选文。热门文章不一定适合翻译,冷门文章可能价值极高。我用了好几期的经验才总结出一套筛选标准,现在基本按下面几条来:
- 技术深度要适中。太浅的文章翻完等于没翻,谁都能看懂的东西原文也不难读。太深的文章(比如整页公式推导)翻译出来阅读门槛极高,容易劝退大部分读者。最好的是那种“有一两个深入的知识点,但整体逻辑链条清晰”的文章。
- 要有工程角度。纯理论的文章,除非是里程碑式突破,否则翻译意义有限。我更偏好作者在业务场景中遇到问题、展开分析、给出方案的实践类文章,这类内容对做开发的人帮助最直接。
- 时间相关性。AI技术迭代很快,一篇文章如果只是过时观点的重新包装,就不值得翻。我会判断文中的观点是否还有参考价值,或者是否在当下技术背景下仍然成立。有些文章虽然是几年前的,但讲的是基础的、不变的东西,那也值得翻。
- 是否与已有内容冲突。如果已经翻译过一篇讲类似主题的文章,除非新文章有重大视角差异,否则我会放弃。
这套筛选流程大概每期会花掉我半小时到一小时。别小看这段时间,没有筛选,后面的翻译全是无用功。
2. 核心细节解析与实操要点
2.1 术语翻译的准确性:最基础也最容易翻车的环节
技术翻译的命门是术语。AI领域的术语有几个难点:一是新词多,很多概念刚出来时连规范汉译都没有;二是同一个英文词在不同上下文里意思能差很远;三是有些术语直译后会失去原意,需要意译。
我处理术语有一套流程。首先是建自己的术语表,从第一期就开始累积,到现在已经记录了上千条。术语表里每条包含英文原词、中文翻译、常见语境、备注四列。比如“attention”这个词,翻译成“注意力机制”是常规操作,但在某些特定上下文里,直接说“注意力”更流畅。再比如“latent space”,我统一翻译成“潜在空间”,但有的地方为了便于理解会加注“隐空间”或者“潜空间”。这种选择不靠拍脑袋,而是看目标读者群体。
其次是利用多家翻译引擎做交叉验证。机器翻译在通用文本上已经很强,但AI专业术语往往需要人工校正。比如一些模型名称、论文名、数据集名,很多情况下保留英文不翻译才是更好的选择。像“Transformer”“GAN”这类已经约定俗成的词,强行翻译成“变换器”“生成对抗网络”反而别扭。我的经验是:专有名词保留原文,但首次出现时用括号给出中文解释,后续就不重复解释了。
还有一个容易被忽略的坑是思维链翻译错误。语言模型的翻译容易把“cell”翻译成“细胞”,但在LSTM上下文里它是“单元”;“kernel”在卷积里是“卷积核”,在SVM里是“核函数”。这种一词多义必须靠上下文判断,不能盲信机器翻译。每次翻译完成后,我都会专门过一遍术语表,把所有可能被机器带偏的词单独拎出来做人工核对。
2.2 长难句的处理:保持原意也符合中文习惯
英文技术文章有个特征:从句套从句,一句话能写三四行。如果按照原文语序翻,中文读者会读得非常累。我的做法是“拆句重组”,但不改变原文的逻辑结构。比如原文用因果从句表达“因为A导致B”,中文可以拆成“由于A,因此B”或者“A导致B”,有时候还需要调整先后顺序让因果关系更自然。
拆句的关键是不能丢信息。我一般先找到句子主干,再找出从句和修饰成分,理清它们之间的关系,然后按中文习惯重新编排。举个例子,原文中说“当模型在训练时采用了某种正则化策略,并且在验证集上获得了稳定的表现提升之后,研究者将这套方法应用到更复杂的任务中”,如果直译会很罗嗦,我会拆成:“研究者先在训练时采用某种正则化策略,看到验证集上的表现稳定提升后,才把方法扩展到了更复杂的任务里。”这样既保住了时间顺序和因果逻辑,也更好读。
还有一个需要注意的点:英文里的被动语态非常多,中文里过度使用“被”字会显得很生硬。比如“the model was trained on a large dataset”直译是“模型被在大型数据集上训练”,但这显然不对劲。我会转成主动语态:“作者使用大型数据集训练了模型”,或者用无主句“在大型数据集上对模型进行了训练”。但要注意,不能为了中文顺口就篡改原文的主体。如果原文强调动作发出者,就不能随意省掉。
公式和代码块的翻译策略也很关键。我坚持公式部分不做任何改动,包括符号、下标、希腊字母,全部照搬。因为公式是国际通用的,改了反而容易出错。代码注释要翻译,但字符串里不能翻译——尤其是打印输出的内容,如果程序里写的是英文提示,中文读者在运行时会发现跟文章展示的不一致,产生困惑。碰到这种情况,我会在注释里加一行为英文原文对应的中文意思,既保留了可复现性,又帮读者理解了逻辑。
2.3 排版与格式:那些看不见的功夫
翻译中文技术文章,排版是很多人忽略的“隐形质量指标”。原文是英文,排版规则跟中文有很多不同。比如英文用空格分隔单词,中文不用,所以翻译后不能机械保留所有空格。英文的加粗用于强调,中文里有时用加粗,有时用醒目的提示语更好。
我整理了一套自己的排版规范:所有标题采用统一的编号体系,模仿原文的层级结构;代码块保留语言标识;段落之间用空行分隔,避免大段文字压在一起;引用的文献、链接保留原始格式;在文章中间插入提示框,用“> 注意”或者“> 提示”标识。这些细节看着不起眼,但对阅读体验的提升非常明显。
另外,图片的处理也是个麻烦事。原文的图有些是作者的原理示意图,有些是实验结果的曲线图。图片上的英文标注,如果能用工具修,我一般会重新标注成中文;如果图片本身是位图不好修改,我就会在图注里给出完整的翻译,让读者对照着看。遇到实在无法修改的复杂图表,我的做法是在图注里把图的变量、坐标轴含义、关键结论用文字描述一遍,保证不丢失信息。
3. 实操过程与核心环节实现
3.1 从原文到发布:一期翻译的完整工作流
很多以为翻译就是“打开翻译软件,把英文粘贴进去,再把中文贴出来”,真这么做,质量根本没保证。我翻译一期TowardsArtificialIntelligence文章的完整流程,大致分六个阶段:
阶段一:预读与拆解(约30分钟)。拿到原文先通读两遍。第一遍快速扫一遍,了解这篇文章在讲什么;第二遍精读,把文章的逻辑结构拆出来,标记出哪些段落是核心、哪些是铺垫、哪些是举例。在这个阶段我会顺手标注所有不确定的术语,准备稍后查证。
阶段二:术语锁定(约20分钟)。把标记出的术语拿到自己的术语表里对照。表里有就直接沿用;没有就查词典、查原文的上下文、看看同领域的中文论文怎么翻译。这个步骤很关键,因为一个术语在不同期的翻译里如果出现不同译名,整个系列的专业性会大打折扣。
阶段三:初翻(约2到3小时)。这是我投入时间最多的环节。我不是像机器那样逐句翻,而是先看一个意群,理解它想表达的核心意思,再用中文把这层意思写出来。初翻阶段我允许自己写得粗糙一些,把注意力放在“准确”而不是“优美”上——先把所有信息都放进去,不用纠结某个用词是否最达意。
阶段四:对照校对(约1小时)。初翻完成后,我会把原文和译文并排放在屏幕上,逐段核对。这个阶段主要检查有没有漏翻译、有没有理解错的地方。公式、代码、引用,逐一对一遍。还需要检查数字、单位、论文发表年份之类的细节,这些地方极其容易出错,而且读者一眼就能看出来。
阶段五:中文润色(约40分钟)。对照校对通过后,我会暂时不看原文,只读中文译文。这时候我把自己当成一个正在读技术博客的读者,主要感受句子通不通、逻辑顺不顺、是不是有翻译腔。发现问题后,只调整中文表达,不对照原文,避免被英文的句式又带回去。润色完,再快速扫一遍,确保没有错别字和标点问题。
阶段六:排版发布(约30分钟)。把译文按照我前面说的排版规范整理好,加上期号、原文链接、关键词标签,然后发布。发布后还要花点时间回复读者的评论和提问,同时把这一期翻译中新增的术语补充到术语表里。
3.2 典型文章的翻译实录:以一篇讲模型部署的文章为例
这里拿我曾经翻译过的一篇讲“模型部署中的量化误差分析”的文章做个实例拆解。这篇文章的结构很典型:先是背景介绍,说明推理性能的重要性;然后提出一个具体问题——量化后精度下降;接着做了一系列实验分析,最后给出了实际建议。
翻译开头部分,原文有一句:“When deploying deep learning models to production, the gap between training and inference often introduces unexpected performance degradation.” 如果直译:“当将深度学习模型部署到生产环境时,训练和推理之间的差距往往会导致意想不到的性能下降。” 这已经不算差了,但“训练和推理之间的差距”有歧义——是模型在两种阶段表现的差距,还是环境配置的差距?细读下文发现原文指的是训练环境和推理环境不一致导致的种种问题,所以改译成:“模型从训练环境部署到生产环境后,训练环境与推理环境的差异往往会造成性能劣化,而这种劣化常常是在预估之外的。” 这样更清楚。
正文中有不少实验数据艭。比如一个表展示不同量化位宽下准确率的变化,我会把表头的英文全部翻译成中文,但数据保持不变。有些表格是在图片里的,没法改,我就把图的结论在正文中用文字重复一遍:“从图中可以看到,当位宽降到8比特时,准确率从96.1%下降到94.8%,而降到4比特后,直接跌到88.9%。” 这样做对读者很友好,让他们不看图也能获取关键结论。
最难翻译的是作者在分析实验现象时的推理过程,那部分有大量从句和转折。比如一句:“While the overall accuracy drop remained moderate, a closer look at the per-class results revealed that some rare categories suffered a disproportionately large degradation.” 我拆成了两句:“尽管总体准确率的下降幅度还算温和,但仔细逐类观察结果后发现,部分稀有类别遭受了不成比例的严重损失。” 这种处理几乎每段都会用到。
翻译这类文章,我最大的体会是:你必须真的理解技术内容,否则很多句子表面能翻通,但意思差了十万八千里。比如“quantization-aware training”如果不了解原理,很容易翻成“量化感知训练”但不知道这背后意味着训练过程中需要模拟量化误差。我会把这类关键词抽出来,结合自己已有的知识做验证——实在不确定,就去翻一下相关的论文摘要。这活儿急不得,一口气吃不成胖子。
3.3 效率工具与方法:怎么用工具但不被工具绑架
翻译中我确实会用到一些工具,但态度很明确:工具是助手,不是决策者。我用得比较多的是翻译辅助软件(CAT),主要用它的记忆库功能。因为我这个系列有很多重复出现的句式和术语,记忆库可以在新翻译中提示之前的译文,省去反复查术语表的功夫。不是广告,就是这类工具对长线翻译特别友好。
机器翻译我也用,但只用在初翻之前的“机器预览”阶段。先让机器出一个初稿,我拿它来快速定位原文的重点和难点。真正动笔翻译时,我不会直接改机器译文,而是对着原文按照自己的理解重写。这个习惯让我免受机器翻译腔的影响。曾经有一阵我贪快,直接编辑机器译文,结果发现自己写出来的中文越来越像翻译软件的语言,后来果断改回重写法了。
如果拿不准某个词在特定领域的意思,我会用词频分析工具去看这个词在不同语料里的搭配,但这有点偏研究型了,日常使用频率不高。普通翻译,一本好的英汉技术词典加一个靠谱的论文搜索工具已经足够。
但有一点必须提醒:不要在翻译过程中反复切换工具、频繁查字典,那样会破坏心流。我一般保持“先翻完一整段,再回头看需要确认的概念”的节奏。如果你想提升效率,不妨也从建立自己的术语表和翻译记忆库开始,而不是指望某个神奇的软件一键搞定。
4. 常见问题与排查技巧实录
4.1 术语理解歧义:同一个词在不同文章里意思差远了
做翻译系列,我遇到最多的问题就是术语歧义。最典型的是“bias”这个词。在统计学文章里是“偏差”,在机器学习偏置方差权衡里是“偏置”,在神经网络结构里是“偏置项”。有一次翻译一篇讲Fairness的文章,“bias”又有了“偏见”的含义。碰上这种情况,我唯一的办法就是通过上下文来确认。如果上下文依然模糊,我会寻找原文作者是否有补充解释,或者在同一篇文章里看这个词首次出现时是否给出了定义。
还有更隐蔽的坑。比如“feature”可以翻译成“特征”“特性”“功能”。在机器学习里通常是“特征”,但在产品化部署的文章里,写“the new feature of the system”时就是“功能”。如果一味翻译成“特征”,读者就会一头雾水。我把这类容易混淆的词单独建了一个“歧义词表”,记录已经遇到的多个含义,并标注常见上下文线索。这样后续再遇到,就能很快做出判断。
如果你也遇到了拿不准的术语,我的建议是:第一,先看这个术语所在的句子是描述数学表达式还是描述业务场景;第二,查同主题中文论文或官方文档看常见译法;第三,如果实在无法统一,可以在译文首次出现时保留英文并加括号备注中文,哪怕不够优雅,至少不出错。翻译宁可“笨”一点,也不能“错”一点。
4.2 原文本身有误或者表述不清时怎么办
翻译会遇到一个比较棘手的问题:原文作者也会犯错。有的是公式写错了,有的是引用数据对不上,有的是逻辑出现前后矛盾。碰到这种情况,最忌讳的做法是悄悄修正——这会让译文和原文脱节,知情读者对照原文后会认为你翻译错了。
我的处理方法是:在译文相应位置用“原文误作……”或“译者按:根据上下文,此处应为……”来标明。比如有一次原文写“learning rate increased from 0.1 to 0.01”,这明显是数值反了,因为0.1增加到0.01不符合常理。我不能改成0.01到0.1,而是保留错误并在旁边注释说明,这样既尊重原文,也不误导读者。对于文章整体结论有局限性或者有争议的地方,我会在译文末尾加一段“译者补充”,说明我所了解的背景知识。这种附加信息做得好,是会提升系列口碑的。
还有一个相关的问题是:原文链接失效。有些翻译发布时原文链接还能打开,过几个月就打不开了。我的解决办法是每期发布时都会把原文的关键信息,比如标题、作者、发布时间、期刊信息(如果有)记录下来,即使链接失效,读者还能去搜索原文。另外,如果是被删除的内容,我会在翻译前先确认原文是否允许转载,遵循知识共享协议。这个版权环节一定不能省,否则后面会非常麻烦。
4.3 读者反馈与版本迭代:翻译质量的持续改进
做了三百多期,一定会收到读者的反馈。有些是感谢,有些是纠错,还有些是提出翻译建议。我把处理读者反馈当作改进质量的重要途径。收到纠错,我会首先去核实,确认自己确实错了,那么在下一期或者当周内发布更正说明,并且更新线上留存版本。修改后,在原译文下面保留一句话说明勘误时间,这也是对读者负责。
但也要学会过滤反馈。有些读者会按照自己的偏好建议改术语,比如有人觉得“泛化”应该叫“泛化能力”,还有人称“正则化”为“规范化”。这些同义词之争往往没有定论,我会以自己构建的术语表为准,不因为个别人的喜好而随意变化。不过如果很多读者反映同一个问题,我就会重新考虑是否要调整术语表。
做翻译系列,心态也很重要。很多技术文可能今天看是干货,一年后就成了过时内容。要保持与时俱进,我每隔一段时间会回看早期翻译的稿子,看看有没有因为新知识而需要补充注释的地方。这个“复盘”制度虽然费时,但能保证一个长线系列不是靠惯性撑着,而是真的有生命力。
5. 写在后期:给想做技术翻译的人三个建议
做到第三百零六期,我踩过的坑比走过的路还多。如果说有什么最值得分享的个人经验,那大概可以浓缩成三点。
第一个建议是:不要追求百分百的“信达雅”。技术翻译的第一目标是让读者看懂,第二目标是保持原意准确,第三才谈得上文采。很多需要翻译技术内容的工程师,中文功底不差,但写出来还是有一股“机器味”,就是因为主次颠倒,为了“好看”丢了“好懂”。我记得有一篇翻译,最初我把“end-to-end training”翻成了“端到端的训练”,后来有读者留言说“端到端看着不太像中文”。确实,“端到端”是直译腔最浓的表达之一,但现在业内已经通用,所以我保留了下来,不过在那篇文章里我第一次出现时加了一句解释:“所谓端到端,指的是直接训练输入到输出的完整映射,而不分模块处理。” 这种平衡很重要。
第二个建议是:做长线内容必须有系统。靠热情可以支撑头几期,但到几十期之后,你必须依赖一套不依赖状态的流程。我的选题库、术语表、模板、检查清单,这些东西在状态差的时候一样能保证输出质量。不夸张地说,流程是长线翻译的救星。如果你开始做自己的技术内容翻译,可以先花一两期的时间把流程跑通,再慢慢优化。
第三个建议是:留一点空间给“延伸思考”。我做的不仅仅是翻译,有时候还会结合文章主题,在末尾分享一段自己在实际项目里的相关经验。这些内容不是原文作者的,而是我自己的切身体会。比如翻译完一篇模型量化文章,我会加一小段讲述自己部署模型时遇到的精度抖动问题,以及如何用文中提到的思路排查。这种东西是机器翻译永远做不到的,也是读者真正喜欢看的部分——他们想看的不是“另一篇中文版的外文文章”,而是一个中文母语工程狮在消化后给出的、与本地技术生态结合的解读。
有人问我,三百零六期之后还会继续做么?我的回答是:只要Technological AI领域还在涌现值得理解的新知识,这个系列就会继续做下去。只不过后面我可能会调整更新的频次和选文方向,毕竟翻译不是目的,传播和沉淀知识才是。如果你也在考虑做类似的事情,别想太多,先从选一篇你真正觉得有价值的文章开始,把那篇文章翻好,你就已经赢过绝大多数“只收藏不行动”的人了。