canonical_url: https://bebechien.github.io/cozy-corner-future/posts/turning-gemma-4-into-an-old-korean-translator/
cover_image: https://bebechien.github.io/cozy-corner-future/images/tuning-gemma-4-into-an-old-korean-translator.png
description: ''
published: true
tags:

  • 微調
  • Gemma
  • AI
    title: 將 Gemma 4 變成古韓文翻譯器

    古書有一種獨特的美。陳舊紙張的氣味、書頁的觸感,以及歷經世代仍得以留存的故事,都是現代書籍難以取代的魅力。但如果你曾經嘗試翻閱朝鮮王朝時期的古典韓文文學——例如小說 《洪吉童傳》(홍길동전)——你很快就會發現,時間也會在語言上留下自己的痕跡。

在沒有詞間空格的情況下,再加上像點母音 阿雷阿(ㆍ) 或柔音 Yeorin-hieut(ㆆ) 這類已過時的字母,閱讀起來與其說是在看小說,不如說是在解一道美麗而古老的謎題。即使是母語者,這之間的語言落差也非常巨大。

因此,我決定製作 這份教學,作為連結過去與現在的數位橋樑。使用 Gemma 4 E2B (IT),我想打造一個樸實的翻譯器,將古典韓文轉換成流暢的現代韓文。

訓練配方

為了讓流程保持可控,我在 Google Colab 上使用單張 NVIDIA T4 GPU(16GB)進行訓練。

1. 先備好廚房

首先,我們載入最喜歡的開源工具:Hugging Face 的 transformers、用於訓練流程的 trl,以及 peft,這樣就能使用 LoRA(低秩適應)在不需要龐大伺服器叢集的情況下微調模型。

2. 蒐集食材

資料方面,我使用了 《洪吉童傳》 的公版版本,搭配 직지프로 所提供的一份精美現代譯文(採用創用 CC 授權)。

為了讓 Gemma 更容易上手,我把資料整理成對話格式,並用清楚的 system 提示詞引導模型:

[
  {"role": "system", "content": "Translate Classical Korean into Modern Korean."},
  {"role": "user", "content": "됴션국셰둉ᄃᆡ왕즉위십오연의홍희문밧긔ᄒᆞᆫᄌᆡ상이잇스되"},
  {"role": "assistant", "content": "조선국 세종대왕 즉위 십오년에 홍회문 밖에 한 재상이 있으되,"}
]

(翻譯註記:這句話是在介紹一位首相,他住在世宗大王在位第十五年時的弘化門外!)

「前」的樣貌

在給 Gemma 任何特定訓練之前,我先做了一個簡單的基準測試。基礎模型雖然很聰明,但古文法屬於非常特定的領域。沒有微調時,Gemma 已經盡力了,但最後產生的是冗長、過度直譯的解釋:

  • 原始古典文本: ᄇᆡᆨ씨듯고ᄂᆡ심의탄복왈그근본을ᄀᆞᆷ초지아니ᄒᆞ니장부로다ᄒᆞ고ᄌᆡ삼위로ᄒᆞ더라
  • 人工譯文: 백씨 듣고 내심에 탄복 왈, "그 근본을 감추지 아니하니 장부로다!" 하고, 재삼 위로하더라.
  • Gemma 的初步猜測: 「像那個顏色一樣,內心讚嘆說,『這根基無法深深感受到……』」
  • 初始相似度分數: 4.85% 💔

(翻譯註記:這句其實是指——白氏聽後內心深受感動,說:「他沒有隱瞞自己的本性,真是個大丈夫!」並且再三安慰他。)

基礎模型顯然迷失在時間裡了,它需要一張地圖。

用心教 Gemma

為了有效率地訓練模型,我採用了使用 LoRA 的參數高效率微調(PEFT)架構。

from peft import LoraConfig

peft_config = LoraConfig(
    lora_alpha=16,
    lora_dropout=0.05,
    r=16,
    bias="none",
    target_modules="all-linear",
    task_type="CAUSAL_LM",
)

祕密武器:collate_fn

當你要微調一個聊天模型,讓它像特定工具那樣運作時,你不希望它把精力浪費在重新改寫提示詞上。透過自訂資料整理器,我將 systemuser 的輸入遮罩起來(把它們的標籤設為 -100),強迫 Gemma 的損失計算只專注於生成正確的現代韓文助理回應。

在把超參數設定為以 2e-5 的學習率,溫和地跑完 5 個 epoch 之後,我就按下了訓練。

溫暖的「之後」光芒

經過一點耐心,讓訓練器施展魔法後,結果非常令人滿意。逐字相似度分數一路提升到亮眼的 79.93%

看看它現在如何處理這段文字:

  • 原始古典文本: ᄇᆡᆨ씨듯고ᄂᆡ심의탄복왈그근본을ᄀᆞᆷ초지아니ᄒᆞ니장부로다ᄒᆞ고ᄌᆡ삼위로ᄒᆞ더라
  • 人工譯文: 백씨 듣고 내심에 탄복 왈, "그 근본을 감추지 아니하니 장부로다!" 하고, 재삼 위로하더라.
  • Gemma 微調後的翻譯: 백씨듯 고내심에 탄복 왈, "그 근본을 감초지 아니하니 장부로다." 하고 제삼 위로 하더라.
  • 新相似度分數: 85.71%

結語

科技常常毫不留情地把我們推向未來,但我最喜歡的技術專案,卻是那些能讓我們更清楚回望過去的作品。只要花一點時間,像 Gemma 4 這樣的輕量模型也能透過微調,成為保存文化歷史的工具,讓古老智慧與經典故事,任何只要有筆電的人都能接觸到。

下次當你遇到一段看起來遙不可及的歷史時,請記得:一小份資料集和一場微調,或許就是把它帶到你眼前所需要的一切。

當你為自己的領域進行微調時,可以參考以下結構化工作流程:

  1. 定義清楚的目標
  2. 準備高品質的資料集與評估計畫
  3. 確認模型確實有在學習
  4. 以指標與人工判斷進行評估
  5. 部署並持續迭代

👉 在 Gemma Cookbook 查看這份教學
👉 為儲存庫點星支持我們


原文出處:https://dev.to/googleai/turning-gemma-4-into-an-old-korean-translator-hop


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝16   ❤️1
492
🥈
我愛JS
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登