tai-nlp

Month: 2020-08

2020-08-03

miaoski 11:38:03
@miaoski has joined the channel
PeterWolf 11:38:03
@peter.w has joined the channel

2020-08-04

amychen 02:47:14
> 我不確定以 Wikipedia 裡的台文(字) 和台羅(音) 的資料量,是不是能讓 BERT 產生良好的效果。
>
> 這些 ML 方法都有一個前提就是「資料量超過某個量級」。我很少看到中文裡有這個量級的資料集 (不論是整理前或整理後) 的出現。
>
> 我用 J 牌和 C 牌,甚至是哈工大或是史丹佛的種種中文 NLP 工具裡打轉了十年後,最後的結論是「我需要做一個和資料無關的方法 (data-irrelevant) 來處理中文的 NLP」。
>
> 也許您有辦法拿到「足量的可訓練資料」,那又是另當別論了。
@peter.w@howard.haowen 在general有一些討論

我覺得聽起來主要還是資料形式跟資料量的問題,還需要scope一下。

我個人是覺得台羅比較實際,雖然漢字先轉成羅馬字有一些挑戰(漢字對應羅馬字非一對一等),但這應該是最快取得盡量多資料的方法,畢竟要是想要直接用台文字訓練的話,台文字的取得其實也不簡單,若反之,想把現有羅馬字資料轉成台文字資料,我覺得應該是比台文字轉羅馬字難的。

再來就是資料量的問題,就現有的已知的資料來源,如果我們preprocess所有資料,這些對使用bert算夠的嗎?想請問@peter.w 大概要是在什麼樣的量級?

如果是data-irrelevant的方法,難道是先建立rule-based system? 我也還在思考怎麼下手這種相對low resource language…
PeterWolf 07:55:55
以下憑印象,實驗不是我做的。
看過某個 blog 還是什麼的,幾個數字大概是:
1. 英文的「問/答」搭配,十萬組 (一問一答為一組) 資料可以達到 76% 的 F1.
2. 日文的「實體辨識」(也就是挑出句子裡的名詞),需要 2 萬篇 (未提及長短) 日文文章。可達 91% 的 F1.
3. 同樣以 2 萬篇 (未提及長短) 英文文章,卻只能達到76% 的 F1 (這個數字的印象有點模糊,不過大概是 73~76% 之間。我就取大數吧)。
以 BERT 的運作原理,我推估大概是學到了 "の" 這一類「前後都名詞」的日文結構特色。這裡的「結構」在語言學裡就是 "syntax" (句法),或是 BERTer 們說的「這個 LM 學會了文法 (grammar)」。

同樣的資料量級下,可以看到日文和英文會因為「語言特色」而有這麼大的 F1 差異。我想應該是 2 萬這個量級的資料,還不足以讓 BERT 方法產生的模型搞懂英文的名詞前後會是什麼?(a, the, of 的下一個一定就是名詞嗎?或是英文裡某個字的前一個字,一定就是名詞嗎?) 。

以下是個人意見…
BERT 利用 MASK 的設計在學習(死記) [MASK] (被遮字) 的前後是什麼,日文裡可以遇到 "の" 被 MASK 或是它的前後字被 MASK 的情況,而學會某些詞是實體 (就先理解成名詞吧)。但英文裡沒有這樣的功能詞,所以同一個量級下就學不會這件事。

這個實驗讓我看到的是「同一個方法 (BERT),同一個資料量級,在遇到不同的語言時,竟然會有這麼大的差異 (有親手在做 NLP 研究和實驗的應該都有親身的體會,要能爬個 1% 的 F1,都不是容易的事。何況是 76% 到 91% 之間的差距)。

以上還不是斷詞這種「整個句子的斷點都要處理對」的工作,只是一個小小的「我已經斷好了,請辨識這個詞是不是一個實體」的工作而已。

我沒辦法回答「台語的資料要累積到多少,才能用 BERT 來學習詞彙斷點」。但我知道「台語 (和其它漢語一樣) 有個特點 - 詞綴非常少」。它既無法像英文那樣有人稱、時態、數量的變化,讓你可以知道 two [MASK] 的這個被遮字,在所有的候選字裡,不是複數型的,大概都沒機會。因此 two bookS 是有機會的,而 two book 是沒機會的。BERTer 說這個叫「LM 學會了 grammer」。

回到台文 "tsit tsiah [MASK]" 那個被遮字,可以是什麼?這似乎不是少少的 2 萬篇文章就能學會的事情。

另外,https://leemeng.tw/attack_on_bert_transfer_learning_in_nlp.html 這篇文章裡有提到「要訓練好一個有 1.1 億參數的 12 層 *BERT-BASE* 得用 16 個 https://cloudplatform.googleblog.com/2018/06/Cloud-TPU-now-offers-preemptible-pricing-and-global-availability.html|TPU chips 跑上整整 4 天,https://medium.com/syncedreview/the-staggering-cost-of-training-sota-ai-models-e329e80fa82|花費 500 鎂;24 層的 *BERT-LARGE* 則有 3.4 億個參數,得用 64 個 TPU chips(約 7000 鎂)訓練」每調一次參數,再測試一次,就是要再花一次 500 ~ 7000 美金的意思。有人算過最近推出的 GPT-3 一次訓練大概要花掉 1200 萬美金的 GPU 租用費。

我不覺得用 BERT 來處理資料量少,語言特性又離英文太遠的語言是個好方向,一部份的原因大概是貧窮限制了我的想像吧。

這只是我的看法,如果您有資源 ($),覺得 rule-based 太 low 了,對 data-driven approaches 有一定的信仰的話,那麼試試也無妨。不過我還是要提出一點點為 "rule-base" 的說明:「懂語言學,寫語言 rule 並不等同於許多人想的 "寫一堆 if...else... 就是 rule based"」。至少在 Articut 三千行的原始碼裡,if...else... 就不是重點,所以「懂語言和不懂語言」的人,寫出來的 "rule-based" 的程式碼是差很多的。

leemeng.tw

進擊的 BERT:NLP 界的巨人之力與遷移學習

這篇是給所有人的 BERT 科普文以及操作入門手冊。文中將簡單介紹知名的語言代表模型 BERT 以及如何用其實現兩階段的遷移學習。讀者將有機會透過 PyTorch 的程式碼來直觀理解 BERT 的運作方式並實際 fine tune 一個真實存在的假新聞分類任務。閱讀完本文的讀者將能把 BERT 與遷移學習運用到其他自己感興趣的 NLP 任務。

Google Cloud Platform Blog

Cloud TPU now offers preemptible pricing and global availability

By Brennan Saeta, TensorFlow Tech Lead for Cloud TPUs Deep neural networks have enabled breakthroughs across a variety of business and ...

Medium

The Staggering Cost of Training SOTA AI Models

While it is exhilarating to see AI researchers pushing the performance of cutting-edge models to new heights, the costs of such processes…

amychen 08:00:53
謝謝分享 我晚上看看這些 gpt-3一次訓練基本上就要傾家蕩產了…哈哈
想先說我個人是完全不覺得rule-based很low 也同意從語言學的角度下手會有很多quick win
how-when 15:47:41
感謝@amy17519@sh910913 加入討論。的確,我們既沒有資金也有沒有足夠的材料去從頭打造一個BERT模型給台語用:sleepy:,所以才需要借用遷移學習的力量:face_with_cowboy_hat:。基本的概念就是拿預先訓練好的語言模型,比如華語的BERT語言模型,它在漢字層面的word embeddings應該已經包含了漢字之間的關係,然後在這個embeddings基礎上再加上Conditional Random Field,就轉成了一個https://deepai.org/publication/bert-meets-chinese-word-segmentation|斷詞的問題。相較於直接訓練斷詞,這種方式可以使用較少的材料就能訓練出不錯的斷詞器。如果拿華語的斷詞訓練材料去做CRF,那斷出來的結果就是華語的,所以理論上如果拿台語的斷詞訓練材料去做CRF,那斷出來的結果就是符合台語的,這當中是有點假設華語跟台語的許多共享詞彙會有助於提升台語的訓練結果。 假設這是可行的,那我們初步需要做的就是先建立一部分人工台語斷詞語料,然後測試它的效果如何。即便是做無監督學習,也是要有人工的斷詞語料,才能檢驗學習的效果。一般在相近的語言之間或不同方言之間的遷移學習效果會比較好,可以參考https://nlp.fast.ai/classification/2019/09/10/multifit.html|這篇。至於為何需要花時間做low-resource語言的NLP,可以參考https://thegradient.pub/the-benderrule-on-naming-the-languages-we-study-and-why-it-matters/|這篇

我正在編寫一個HackMD筆記,整理我找到的一些資源跟文章,歡迎大家共同編輯、討論。:left-facing_fist:

DeepAI

BERT Meets Chinese Word Segmentation

09/20/19 - Chinese word segmentation (CWS) is a fundamental task for Chinese language understanding. Recently, neural network-based models ha...

miaoski 20:39:15
有一套政府出版品《台語白話字文學選集》可以參考。它的白話字原文大多來自府城教會報,漢羅是編輯群加上去的。美中不足是沒有電子檔,要自己 OCR ,但至少已經有一套「權威」的語料了。
how-when 21:22:04
感謝學長提供的資訊:pray: