[閒聊] 關於異世界悠閒農家文翻譯器的研究實作

看板C_Chat (希洽)作者 (如果心靈有棲息的地方哪)時間5小時前 (2025/07/14 14:45), 編輯推噓14(1403)
留言17則, 16人參與, 40分鐘前最新討論串1/1
-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來製作翻譯的成本高 ,依然也還需要人工校正語意、語氣等。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.6.54 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1752475554.A.C9A.html

07/14 14:48, 5小時前 , 1F
厲害,先推一個,這樣一些專門書籍的翻譯感覺工作量可
07/14 14:48, 1F

07/14 14:48, 5小時前 , 2F
以降低很多
07/14 14:48, 2F

07/14 14:49, 5小時前 , 3F
07/14 14:49, 3F

07/14 14:50, 5小時前 , 4F
推推訓練經歷說明
07/14 14:50, 4F

07/14 14:54, 4小時前 , 5F
期待有一天會成為原po的萬能農具
07/14 14:54, 5F

07/14 14:55, 4小時前 , 6F
推 謝謝一直以來的更新
07/14 14:55, 6F

07/14 14:55, 4小時前 , 7F
推, AI農具要出來了
07/14 14:55, 7F

07/14 14:57, 4小時前 , 8F
07/14 14:57, 8F

07/14 15:12, 4小時前 , 9F
感謝長久以來的耕新
07/14 15:12, 9F

07/14 15:18, 4小時前 , 10F
m大要轉職成自(動)耕農了!?
07/14 15:18, 10F

07/14 15:29, 4小時前 , 11F
推 自動化生產(X
07/14 15:29, 11F

07/14 17:25, 2小時前 , 12F
07/14 17:25, 12F

07/14 17:50, 2小時前 , 13F
我就直接問你「ゴール」要怎麼處理XD
07/14 17:50, 13F

07/14 18:22, 1小時前 , 14F
直接用<NAME_金>TAG強制轉換
07/14 18:22, 14F

07/14 18:22, 1小時前 , 15F
07/14 18:22, 15F

07/14 18:23, 1小時前 , 16F
07/14 18:23, 16F

07/14 19:12, 40分鐘前 , 17F
感謝您翻譯阿!
07/14 19:12, 17F
文章代碼(AID): #1eTAUYoQ (C_Chat)
文章代碼(AID): #1eTAUYoQ (C_Chat)