自訂 NMT 模型
您可以使用 Cloud Translation - Advanced API 自訂 Google 神經機器翻譯 (NMT) 模型,無須編寫程式碼。也就是說,您可以根據特定領域的內容調整自訂模型,與預設的 Google NMT 模型相比,產生更準確的翻譯。
NMT 模型涵蓋大量語言組合,並能順利處理一般用途文字。自訂模型擅長處理特定專業詞彙。自訂 NMT 模型可確保您重視的特定領域術語獲得正確翻譯。
假設您經營的專業報表服務有機會擴展至新國家/地區,而這些市場需要您即時翻譯有時效性的內容,包括專業術語。與其僱用雙語人員或與專業譯者簽約 (這兩者都價格高昂),不如建立及調整自訂模型,以低得多的成本即時完成工作。
資料準備
如要訓練自訂模型,您必須提供原文與譯文語言的相符語句組合。這些是成對的字詞或詞組,在您需要翻譯的語言與想要翻出的語言中,都代表相同意義。語句組合的意義越相近,模型的效果就會越好。
統整相符區隔配對的資料集時,請從用途著手:
您想達成什麼成果?
您需要正確翻譯哪些類型的語句,才能達到這個成果?NMT 模型本身就能完成這項工作嗎?
人類有可能把這些重要語句翻譯成令您滿意的成果嗎?如果翻譯工作模稜兩可,就連精通原文語言與譯文語言的人員都難以提供令人滿意的成果,那麼 NMT 模型可能與自訂模型效能不相上下。
哪種樣本最能反映出您的系統將要翻譯的區隔配對類型與範圍?
根據問題領域提供適當資料
您需要適用於特定語言領域的模型,因此必須訓練自訂翻譯模型。請盡可能確保您的語句組合涵蓋所屬產業或重點領域的詞彙、用法和特殊文法。請尋找包含待完成翻譯工作典型用法的文件,同時確保平行詞組比對的意思要盡可能接近。當然,不同的語言在詞彙或語法上有時是無法完美對應的,但請盡量涵蓋您預期會遇到的所有語意多元性。做為您建構基礎的模型已經能妥善處理一般用途的翻譯,而您的樣本就是讓自訂模型能適用於您用途的最後關鍵,因此請確保這些樣本與您期望看到的語言用法有高度的相關性及代表性。
涵蓋語言空間的多元性
大家很容易會假設,在特定領域中人們的內容撰寫方式通常是相當一致的,因此由少數譯者翻譯的少量文字樣本應該就足以訓練模型,讓該模型能順利讓其他撰寫該領域內容的人們使用。然而每個人都是不同的個體,因此撰寫出的內容都會有自己的風格。如果訓練資料集的語句組合可以來自大量不同的作者和譯者,您訓練出的模型就比較可能適用於翻譯多元化機構所產生的內容。此外,請把各種語句長度和結構的差異列入考量;如果資料集中所有語句的長度都相同,或擁有類似的文法結構,那麼系統就無法建構涵蓋所有可能性的良好自訂模型。
取得資料
確認所需資料後,需要設法找到資料來源。您可以先考慮貴機構收集的所有資料,或許您會發現,您早就在收集需要用來訓練模型的資料。如果您沒有所需資料,可以手動取得資料或委外由第三方供應商負責。
讓人類參與驗證工作
如有可能,請讓精通原文語言與譯文語言的人員來驗證語句組合是否對應正確,且語句的翻譯是否精確易懂。像是訓練資料試算表中的資料列沒有正確對齊的簡單錯誤,就會讓系統產生令人無法理解的翻譯。要取得適用於您企業的模型,提供高品質資料給 Cloud Translation - Advanced API 是最重要的一件事。
開發區隔配對時,請注意公平性
Google 機器學習產品的核心原則,就是以人為本的機器學習,這種方法強調負責任的 AI 做法,包括公平性。機器學習公平性的目標是瞭解並防止演算法系統或演算法輔助決策中,出現與種族、收入、性傾向、宗教、性別,以及其他與歧視和邊緣化相關特徵有關的不公正或偏見待遇。如需詳細資訊,請參閱我們的指南,以及下列注意公平性部分:
請詳閱您所在地區及應用程式服務位置的相關法規,以及您的領域中現有的研究或產品資訊,以便瞭解相關的法律準則與可能的文化問題。瞭解詳情...
請考慮您的用途或產品是否可能會對個人經濟狀況,或者其他人生重要機會產生負面影響,如果是,請參閱這篇文章。
如果有特定子群組的資料較為不足,請自行將該資料分割成訓練集與測試集,以確保該資料在訓練集與測試集之間的分布具有代表性。
測試時,請仔細思考問題領域,以及造成不公平性和偏見的可能性。設法想出一旦出現在實際工作環境中,會對使用者造成負面影響的情形,然後先使用這些情形進行測試。瞭解詳情...
若您的用途必須考量公平性,請進一步閱讀相關說明,瞭解如何在使用模型時消除偏見或避免不良後果。瞭解詳情...
清理雜亂的資料
預先處理資料時可能會出錯,而部分錯誤會嚴重混淆自訂模型,請特別留意下列可修正的資料問題:
- 移除重複原文語句,尤其原文語句有不同的譯文翻譯。Cloud Translation - Advanced API 只會使用第一個範例,並在匯入時捨棄所有其他組合。移除重複項目後,Cloud Translation - Advanced API 就會使用您偏好的翻譯。
- 將原文語句對應至正確的譯文語句。
- 讓語句與指定語言相符,例如在中文資料集中只加入中文語句。
- 如果譯文語句包含多種語言,請確認未翻譯的字詞是否為刻意保留,例如產品或機構名稱。如果譯文語句誤用未翻譯的字詞,訓練資料就會出現雜訊,導致模型品質降低。
- 修正有錯別字或文法錯誤的語句,避免模型學到這些錯誤。
- 移除不可翻譯的內容,例如預留位置標記和 HTML 標記。不可翻譯的內容可能會導致標點符號錯誤。
- 請勿加入將一般實體替換為特定名詞的區隔配對。舉例來說,請避免將「總統」這類一般用語翻譯成「JFK」這類特定總統的姓名。這可能會導致模型將所有「總統」實例變更為「JFK」。 請移除這些區隔配對,或將特定名詞改為一般名詞。
- 移除訓練集和測試集中重複的語句 (請參閱「資料集分割」一節,瞭解如何將資料集分割為三個子集)。
- 將多個語句分割成不同的語句組合。如果資料集中有許多項目包含超過 50 個符記 (字詞),會訓練出品質低落的模型。請盡可能將每個項目分割為單一句子。
- 使用一致的大小寫。大小寫會影響模型學習方式,例如區分標題和內文。
- 從 TSV 檔案匯入資料時,請移除 TMX 標記。在某些情況下,您可能會將現有翻譯記憶庫匯出為 TSV 檔案,其中可能包含 TMX 標記。不過,只有從 TMX 檔案匯入時,Cloud Translation - Advanced API 才會清除翻譯單元標記 (不適用於 TSV 檔案)。
資料處理
Cloud Translation - Advanced API 會在下列情況停止剖析您的資料輸入檔案:
- 有無效的格式。
- 有不合理過長的語句組合 (10 MB)。
- 檔案使用非 UTF-8 的編碼。
Cloud Translation - Advanced API 會忽略無法偵測問題的錯誤,例如:
- TMX 檔案中的
<tu>元素未指定來源語言或目標語言。 - 其中一個輸入語句組合為空白。
如果是自動分割資料,Cloud Translation - Advanced API 會執行其他處理 (請參閱「資料集分割」):
上傳資料集後,移除與原文語句相同的語句組合。
訓練前,將資料以 8:1:1 (訓練:驗證:測試) 的比例隨機分成三組。
資料集劃分
區隔配對資料集會分成三個子集,分別用於訓練、驗證和測試:
訓練集
絕大多數的資料都應該在訓練集中。這是模型在訓練期間會「看到」的資料:訓練集是用於學習模型的參數,以及計算類神經網路的各個節點之間的連結權重。驗證集
驗證集又稱為「dev」集,也會在訓練過程中派上用場。在模型學習期間,框架會使用訓練集來訓練一組候選模型,然後根據模型處理驗證集的效能來選擇已產生的最佳模型。框架會利用模型處理驗證集的效能來微調模型的超參數,也就是指定模型結構的變數。如果您使用訓練集來微調超參數,可能會導致模型過度偏重在訓練資料上。使用稍微新穎的資料集微調模型結構可以提升模型的歸納效能。測試集
在訓練過程中不會用到測試集。模型完成整個訓練之後,測試集就是模型要面對的全新挑戰。模型處理測試集的效能可以讓您充分瞭解模型處理實際資料時的表現如何。
如未手動指定資料集在這些功能之間的分割方式 (如「準備訓練資料」所述),且資料集包含的語句組合少於 100,000 個,Cloud Translation - Advanced API 就會自動將 80% 的內容文件用於訓練、10% 用於驗證,最後的 10% 用於測試。如果資料量大於上述數字,則必須明確指定分割方式。手動分割可讓您進一步控管程序,不僅能決定分割百分比,還能指定要在哪些特定集合中納入特定區隔組合。
正在匯入資料
決定好要手動或自動進行資料分組後,可以透過兩種方式新增資料:
您可以用定位點分隔值 (TSV) 檔案匯入資料,其中包含原文語句和譯文語句,一個語句組合就是一行。
你可以匯入 TMX 檔案,這是提供語句組合給自動翻譯模型工具的標準格式 (如要進一步瞭解 TMX 格式,請參閱「準備訓練資料」)。如果 TMX 檔案包含無效的 XML 標記,Cloud Translation - Advanced API 會忽略這些標記。如果 TMX 檔案包含 XML 或 TMX 錯誤 (例如缺少結束標記或
<tmx>元素),Cloud Translation - Advanced API 會在略過超過 1024 個無效的 `' 元素時結束處理作業並傳回錯誤。
初步評估自訂模型
模型訓練完成後,會收到一份模型效能匯總資料。按一下「Train」(訓練) 分頁標籤即可瀏覽詳細分析。 「Train」(訓練) 分頁會顯示自訂模型和標準 Google NMT 模型的 BLEU 分數,以及使用自訂模型帶來的 BLEU 分數提升幅度。
BLEU 分數越高,表示模型對類似於訓練資料的語句翻譯得越好。30 到 40 分屬於良好。如要詳細瞭解 BLEU 分數,請參閱這篇文章。
還有其他評估指標通常比 BLEU 分數更可靠。如要瞭解這些評估選項,請參閱「評估翻譯模型」。
偵錯
自訂模型除錯的重點在於針對資料進行除錯,而非針對模型。如果模型未按照預期方式翻譯,請檢查資料,看看是否有改進之處。
測試
即使 BLEU 分數看起來還不錯,我們仍建議您自行檢查模型,以確保模型的效能符合您的期望。如果您的訓練和測試資料都來自同一組錯誤的樣本,即使翻譯的成果令人無法理解,分數也可能會非常高。在「Predict」(預測) 分頁中新增一些範例做為輸入內容,然後比較自訂模型與 Google NMT 基礎模型的結果。您可能會注意到,模型的預測結果與基礎模型的預測結果相同,尤其是針對短語句,或是在訓練集的規模較小時,畢竟基礎模型已經可以應用至各種用途。如果遇到這種情況,請嘗試較長或較複雜的語句。不過,如果所有語句都和基礎模型產出的預測結果相同,可能表示資料出現問題。
如果您特別擔心模型會犯下某種錯誤 (例如可能造成金錢或聲譽損失的翻譯錯誤),請確保測試集或程序充分涵蓋該情況,讓您安心地在日常工作中使用模型。
後續步驟
- 如要進一步瞭解如何建立自己的資料集和自訂模型,請參閱「準備訓練資料」。