楼主:
marssss (算不完的MC)
2025-07-14 14:45:52-Introduction-
因为最近离职放暑假中, 所以有闲有心情进行以前有规划但是一直没实行的计画, 也就是
AI辅助异世界悠闲农家翻译。
一直以来我都只采取了基本的专有名词取代后就开始翻,例如
余谈になるが、ミノタウロス族、巨人族は褒赏メダルの大半をバスケットボール関连の
物につぎ込んだ。
> 余谈になるが、<NAME_牛人族>、巨人族は褒赏メダルの大半をバスケットボール関
连の物につぎ込んだ。
好处是三个字以上名词基本上不会搞错,坏处是两个字以下的名词一下子就会搞错,例如
いろいろなフルーツを使ったフルーツミックスサンドが好きな子もいる。
> いろいろなフ<NAME_露>ツを使ったフ<NAME_露>ツミックスサンドが好きな子もいる
。
虽然可以用字典顺序尽量排除上述状况,但例外总是会一直出现,这点只能人工后修正。
目前(2025年)一些容易翻译的短语句只要丢上浏览器的搜寻列就会自动帮忙翻译完成,所
以我就想着使用模型训练一个专用的翻译器,只要能节省一些打字时间那都能有效率的提
升翻译速度。
最初做的尝试其实是在大概2020年的时候,当时我曾经试图使用LSTM来进行训练,但因为
也缺乏相关经验所以没有取得任何有效的成果。最近一年当GPT的能力显著提升之后,开
始利用GPT教学来评估现阶段自我开发翻译器的可行性。
经过一些测试得到的结论是,使用目前公开的多语言翻译模型加上自己的文本微调训练应
该能得到想要的结果,因此就开始了翻译器的开发(代号: 自动耕耘人Autofarmer)。
related work
经过GPT咨询,推荐方案是:使用大模型的线上API翻译(附加语境指引)或是自己训练模型
。前者因不符合目标故暂不考虑。
实测,目前没有公开有效的日-中翻译模型可以使用。尝试过一些组合后,选用了NLLB的
多语系翻译模型,环境是python的HuggingFace Transformers。
摘自GPT介绍
HuggingFace Transformers 是一个 Python 套件(Library),提供了:数百种 NLP 模
型(翻译、问答、摘要、生成等等)模型的下载、加载、训练、推理工具,具统一接口的
模型呼叫方式(如:AutoModelForSeq2SeqLM, AutoTokenizer)。
NLLB(No Language Left Behind)是 Meta AI(脸书) 发布的多语翻译模型。它支援
200 多种语言的双向翻译。
training of Autofarmer
硬件使用自己目前的RTX 3070,VRAM=8G刚好可以训练NLLB-600M, LoRA 8-bit版本。
训练文本是从版上记录下的农家文,配合前述"专有名词取代工具"合并之后做成的符合
HuggingFace规格jsonl格式的训练文本。
内容范例:
{"translation": {"ja": "ジャック后编", "zh": "杰克 后篇"}}
{"translation": {"ja": "革制の铠だって立派な物だ。", "zh": "皮制的铠甲也是高档
货。"}}
因为是使用工具+人工调整行对应,所以内含了部分翻译错误、漏误字等情况。
总共使用过:
A:25回,3509句(170/171~175+342/343+431~468回)
B:56回,8480句(...+471~501回)
C:153回,22471句(...+502~600回)
D:202回,28992句(...+601~650回)
农家每回扣除空行,每次文本大约100出头行。少的有8~90,多的有150以上。
长短句落差很大,如经常出现的哈哈哈,原来如此等,到三个逗点以上的长句都有。
经过多次测试,NLLB-600M在训练文本C/D时期时loss已经无法显著下降。(epoch前三者3
,文本D为5)
初始loss都在13-12之间,文本A的最终loss落在7.3左右,文本B为7.2,文本C为7.0,文
本D为7.0。
虽然文本C/D的训练中loss没有明显差异,但我使用的测试文本某些语句则有可体感的进
步。
【原文】魔王国の王都に用意されたオークション会场に、俺は足を运んだ。
Autofarmer_nllb_lora_3509 :魔国王都预备的拍卖场,我就走了。
Autofarmer_nllb_lora_8480 :魔王国王都准备的拍卖场,我走了。
Autofarmer_nllb_lora_22471:在魔王国王都准备的拍卖场,我走了。
Autofarmer_nllb_lora_28992:我走到魔王国王都准备的拍卖场。
然而很可惜,NLLB-600M在经过更多测试后发现依然难以达到实用化的地步。
除了语境离我翻译目标尚远之外,语意容易搞错,拿来参考会更增加翻译困难度。尤其是
用否定表达肯定的反语。
【原文】転移门の渋滞を缓和する目的のためにも、使ってもらえる道を作らないとな。
Autofarmer_nllb_lora_3509 :也是为了缓解转移门的交通堵塞,不必为他们打造通道。
Autofarmer_nllb_lora_8480 :也是为了缓解转移门的交通阻碍,不必为他们打造一条通
道。
Autofarmer_nllb_lora_22471:为了缓解转移门的交通堵塞目的,也不要为他们打造通道
。
Autofarmer_nllb_lora_28992:为了缓解转移门的交通堵塞目的,也不要打造可以使用的
道路。
模型完全没抓到他是一种肯定的语气(一定要建造能使用的道路)
以上结果让我决定放弃600M,这次将目标改向更大型的NLLB-1.3B模型。
经过评估NLLB-1.3B在本机(RTX 3070 VRAM=8G)的状况下可以进行推论,但远远不够训练
。
训练NLLB-1.3B, 本机训练只有4-bit选项有可能,但我多次尝试后在本机总是无法训练
4-bit版本成功。
最后的方案就是使用云端Server。这次买的是runpod.io的A100-PCIe 80GVRAM版本,每小
时1.67镁。
文本D在该平台上训练一个epoch总共花费两个半小时,也就是5USD。
最终成果如下
【原文】転移门の渋滞を缓和する目的のためにも、使ってもらえる道を作らないとな。
Autofarmer_nllb_lora_28992:为了缓解转移门的交通堵塞目的,也不要打造可以使用的
道路。
Autofarmer_1.3B_lora_28992:为了缓缓转移门的塞车,也得做好可使用的道路。
可见得1.3B基本上能抓出正确的反语语气。
再看到其他一些句子
【原文】无駄使いはできないが、役に立つならしっかりと落札するぞ。
Autofarmer_nllb_lora_3509 :不能浪费,但如果有帮助,就能坚定落札。
Autofarmer_nllb_lora_8480 :不能浪费,但如果有帮助的话,会坚定落札。
Autofarmer_nllb_lora_22471:虽然不用浪费,但如果有帮助的话,会坚定落札。
Autofarmer_nllb_lora_28992:虽然不用浪费,不过如果有帮助的话就把它起吧。
Autofarmer_1.3B_lora_28992:虽然不能浪费,不过要是有用的话会好好拍卖。
【原文】<NAME_普拉达>の个人的な趣味嗜好で求めている物が大半だが、俺に有益なの
で荐めている物もあるそうだ。
Autofarmer_nllb_lora_3509 :普拉达的私人趣味和嗜好大多是想要的,但也许是我推荐
的,因为对我有好处。
Autofarmer_nllb_lora_8480 :普拉达的私人趣味和喜欢的东西很大程度上是要的,但也
有一些我推荐的东西,因为对我有益。
Autofarmer_nllb_lora_22471:普拉达的私人趣味和嗜好所追求的东西很大,但也有一些
是为我有益而推荐的。
Autofarmer_nllb_lora_28992:普拉达的私人趣味和嗜好所寻求的东西大多,不过也有一
些是为我有益而推荐的。
Autofarmer_1.3B_lora_28992:虽然大部分是普拉达个人兴趣喜好所追求的东西,不过也
有对我有益的推荐的东西。
【原文】と、各地の贵族や商人から頼まれ、出品物を预かることが多々あるらしい。
Autofarmer_nllb_lora_3509 :各地贵族和商人要求,往往会预备商品。
Autofarmer_nllb_lora_8480 :各地贵族和商人的要求,往往会预备出货。
Autofarmer_nllb_lora_22471:据说各地贵族和商人的要求,往往会预备出货物。
Autofarmer_nllb_lora_28992:似乎有很多地方的贵族和商人要求预备出品。
Autofarmer_1.3B_lora_28992:,似乎是各处贵族和商人请到,会准备的东西很多。
【原文】ちなみに、五村新道の<NAME_路线>が最近まで决まっていなかった理由は道を
作るのが难しい场所で、迂回か强行かで迷っていたからだ。
Autofarmer_nllb_lora_3509 :五村新道的路线直到最近未确定的原因是路在难度的地点
上迷路,回或强行。
Autofarmer_nllb_lora_8480 :五村新道路线直到最近还没有确定的原因是路建在很难的
地点,迷迷在回转或强行。
Autofarmer_nllb_lora_22471:另外,五村新道路线直到最近还没有决定的原因是在难以
打造的道路的地方,迷路或强行而迷路。
Autofarmer_nllb_lora_28992:顺便说,五村新道路线直到最近还未确定的原因是在难以
打造的道路的地方迷路在转或强行中。
Autofarmer_1.3B_lora_28992:附带一提,五村新路的路线直到最近才确定的原因是因为
在很难开路的地方,因为要或是强行所以迷路。
【原文】五村新道が完成しても、それなりの距离になるので通行中は一泊か二泊するこ
とになる。
Autofarmer_nllb_lora_3509 :即使五村新路完成,也会有足够的距离,所以在通行中一泊
或二泊。
Autofarmer_nllb_lora_8480 :即使五村新道完成,也会有相当的距离,所以在通行期间一
泊或两泊。
Autofarmer_nllb_lora_22471:即使完成五村新道,也会有相当的距离,所以在通行期间一
泊或两泊。
Autofarmer_nllb_lora_28992:即使完成五村新道,也会有足够的距离,所以在通行期间一
泊或两泊。
Autofarmer_1.3B_lora_28992:(翻译失败)
【原文】商队が各地をまわるのは、オークションにこういった物が出品されますよと、
参加者を集めるためだからな。
Autofarmer_nllb_lora_3509 :商队在各处览,拍卖会上会拿出这样的东西,是因为要聚集
参加者。
Autofarmer_nllb_lora_8480 :商队在各处都是为了招募参加者来拍卖这些东西的。
Autofarmer_nllb_lora_22471:商队在各处都是为了招募参加者来拍卖这些东西的。
Autofarmer_nllb_lora_28992:商队在各处的目的是为了招募参加者来拍卖这些东西。
Autofarmer_1.3B_lora_28992:商队到各地是为了在拍卖会上卖出这种东西,是为了招集
参加者。
【原文】もともと、出品物は商队を组んで各地をまわる前に决まっている。
Autofarmer_nllb_lora_3509 :原来,货物在组织商队并往各处前决定。
Autofarmer_nllb_lora_8480 :原来,货品在组织商队到各处前决定。
Autofarmer_nllb_lora_22471:原来,出货在组织商队在周围前决定。
Autofarmer_nllb_lora_28992:原来,出货是在组织商队并周围之前决定。
Autofarmer_1.3B_lora_28992:原先是要商队组成各地方前决定出品。
Summary
基于此观察,目前有以下几点推论:
1. NLLB-1.3B在长语句,反语方面较600M有相当大的提升,看起来有实用可能性。
2. NLLB-1.3B目前测试版本只训练了一个epoch,目前无法翻译的句子较600M版本更多。
正在进行微调与增加训练、精炼文本等工作。最终版本应该就会使用云端训练的1.3B与本
地端RTX3070推测(LoRA-8bit)版本。
3. 短语句方面小模型就能相当符合需求,可以适当节省翻译成本。
例如:
【原文】トラブルじゃなくてよかった。
Autofarmer_nllb_lora_3509 :很好不是麻烦。
Autofarmer_nllb_lora_8480 :很好不是麻烦。
Autofarmer_nllb_lora_22471:还好没有麻烦。
Autofarmer_nllb_lora_28992:还好不是麻烦。
Autofarmer_1.3B_lora_28992:幸好没麻烦。
在这个例子中nllb_lora_28992(即600M版本)是首选。
但我个人最终会选择"幸好不是麻烦"作为翻译输出。
4. 目前是以单句作为训练材料,农家文的一定要上下文连贯才能做好翻译的情况相较一
般小说文体较少,这是目前使用NLLB作单句翻译的少数优势。
Conclusion
最后,因为自动耕耘人Autofarmer最初目的是协助简化翻译工作:如果有一些简单语句可
以省下打字的时间那就算赚到。另一方面,如果语意判断的够准确,也可以做一些基本的
纠错:例如,与脑中所想的语意不同时,就有可能是翻译错误点。
在一些文法较复杂或是一眼不能确定语意的状况,还是上网查&询问GPT较有可行性。
结论:要使用自训练的翻译器完全取代农家文的翻译工作确实有其困难,但节省一些时间
降低工作量是可以做到(已经做到)的。毕竟使用GPT或其他大模型AI来制作翻译的成本高
,依然也还需要人工校正语意、语气等。