[自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W2(9/17)](https://app.notion.com/p/3e6fc631b03081a18b13fad72a8874fd) › 02|影片 [0:21:17–0:41:29](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1277s)|投影片 W1_NLP_brief_v2 p.8–19|上一章 [01 課程定位與傳統 NLP 流程(0:04–0:21)](https://app.notion.com/p/3e6fc631b03081e3872cf295fcfe1eaa)|下一章 [03 LLM 之前的應用與分析層次(0:41–0:58)](https://app.notion.com/p/3e6fc631b0308187ae81c0e0fefb77f7) ## 重點 - 傳統 NLP 流程(斷句、標詞性、找子句、找主詞受詞)人做起來很簡單,電腦做起來很難,投影片一句話:Easy for human, hard for computer。光是詞性就能細分成幾十種。 - 難在**歧義(ambiguity,同一段文字可以有好幾種解讀)**:詞義歧義(Watch for kids)、情境歧義(Siri 帶傘)、句法歧義(望遠鏡句)。要消除歧義就得看前後文,所以 LLM 的 context window 很重要。 - LLM 以前的做法是規則,或 CRF 這類模型加標註資料,一個問題一個問題做(例如 NER)。LLM 看起來全都會,但老師認為它很多時候是「看過類似的語料」,不一定是自己推理出來的,Strawberry 有幾個 R 就是一例。 ## Exam-ready - **Traditional NLP steps**: "Splitting text into sentences. Find the part-of-speech for words inside a sentence. Determine different types of subclauses. Determine the subject and the direct object of a sentence."(W1_NLP_brief p.8) - **Why it is hard**: "Easy for human, hard for computer"(W1_NLP_brief p.8) - **Kinds of ambiguity**: "Word sense ambiguity" – "Watch for kids"(p.9); "Context Ambiguity"(p.10); "syntactic ambiguity"(p.13) - **Syntactic ambiguity example**: "I saw a man on a hill with a telescope." – "Interpretation 1: I used a telescope" / "Interpretation 2: The man has a telescope"(W1_NLP_brief p.12–13,p.13 是圖中文字) - **Attachment ambiguity**: "A sentence has an attachment ambiguity if a particular constituent can be attached to the parse tree at more than one place."(課本用語,Jurafsky & Martin SLP3 Ch.19) - **Reading comprehension**: "How teach computer to understand this?"(W1_NLP_brief p.11) - **NER (goal)**: "The Goal: Named Entity Recognition (NER). Scanning massive news volumes to lock onto specific targets."(W1_NLP_brief p.14,圖中文字) - **NER (technique)**: "The Tech: BiLSTM-CRF or feature engineering algorithms used to filter out noise."(W1_NLP_brief p.14,圖中文字) - **Reasoning**: "Is reasoning difficult for LLM?"(W1_NLP_brief p.15–16) ## [0:21:17](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1277s) 詞性標註沒那麼簡單 上一章的傳統流程(p.8)看起來只是「把工具套一套」:斷句、標詞性、找子句、找主詞和受詞。人看一眼就懂,電腦做起來卻很複雜。第一個難處是**詞性(part-of-speech,POS,名詞、動詞這類詞的類別)**:學英文時覺得詞性不到十種,但要細分到「它代表什麼意義、會影響其他字的哪個範圍」,標籤就非常多。用過 CKIP 或結巴(兩套中文斷詞與詞性標註工具)就會發現,它們會吐出一大堆詞性標籤。
光是「動詞」為什麼能分成好幾種? 英文最常用的 Penn Treebank 標記集,光動詞就有 6 個標籤,差在時態和形態:
標籤意思例子
VB原形I want to **eat**
VBD過去式I **ate**
VBG動名詞/現在分詞I am **eating**
VBN過去分詞I have **eaten**
VBP現在式,非第三人稱單數I **eat**
VBZ現在式,第三人稱單數She **eats**
手標一句:She/PRP was/VBD reading/VBG books/NNS she/PRP bought/VBD. 同一句裡的動詞就拿到 VBD、VBG 兩種標籤。
它到底有多難?標籤有幾個、歧義有多常見? - 標籤數量:Universal Dependencies(跨語言通用標記集)17 個;Penn Treebank 核心 36 個,加標點符號等共 45 個。 - p.8 右邊的表是一份中文詞性標記集(出自 ACL-IJCNLP 2009 一篇中文對話語料的論文)。光名詞 n 就再分成普通名詞 n、方位詞 nd、處所名 ns、時間詞 nt、專有名詞 np、人名 npp;人名又再分成中國人的姓 nppx、名 nppm、日本人的姓 nppxj、歐美人的姓 nppxw…… - 同一個字常有好幾種詞性。課本的例子:book 可以是動詞(book that flight,訂那班機),也可以是名詞(hand me that book)。課本統計華爾街日報(WSJ)語料:只有約 14% 的「不同的字」有兩種以上詞性,但它們多半是常用字,所以文章裡實際出現的字有 55%(WSJ)到 67%(Brown 語料)都有歧義。現在的詞性標註器準確率約 97%,跟人差不多。 所以對你的影響是:考試問「為什麼 POS tagging 不簡單」,可以答:tagset 分得很細,而且同一個字可能有好幾種詞性,要看上下文才能決定。
老師原話是什麼? 「這些工具套一套好像人去看一看非常容易,但是其實電腦來做這件事情挺複雜的」(0:21:44) 「真的你要去細分他所代表的意義,或者是說他能夠影響其他字的範圍,非常多,這個詞性非常多」(0:22:11)
## [0:22:55](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1375s) 詞義歧義:Watch for kids [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w2\img\w1_nlp_brief_v2_p009.png | p.9:Watch for kids 可以是「兒童手錶」,也可以是「小心孩童」的警告牌。左下是直接問 ChatGPT 得到的誤解,右邊是改從 word sense ambiguity 角度問之後的分析]] 就算找到詞性,還有**詞義歧義(word sense ambiguity,同一個詞有好幾種意思)**。「Watch for kids」把 watch 當名詞是「兒童手錶」,當動詞是「小心孩童」。只看這三個字決定不了,要看前後文,這就是 LLM 的 **context window(一次能讀進去的文字長度)**重要的原因:雲端 LLM 可以一次讀進整篇論文,把全部內容一起算 attention,比較不會判斷錯。老師還示範:直接丟這三個字問 AI,它答成「適合兒童觀看」;改成「從詞義歧義的角度解釋」,它就分析得很透徹,像學生一聽就知道是哪一題考古題。 **注意:老師口頭說「詞性歧義」,投影片標題是 Word sense ambiguity(詞義歧義),考試寫投影片的版本。** 兩者的關係:watch 是詞性不同(名詞/動詞)連帶意思不同;kids 詞性都是名詞,卻可以是「小孩」或「小山羊」,這才是純粹的詞義歧義。挑出正確詞義的任務叫 **word sense disambiguation(WSD,詞義消歧)**,p.29 會再出現。
要先懂什麼?context window 和 attention 是什麼? - token:模型讀文字的最小單位(本章最後一段會實際切給你看)。 - context window:模型一次最多能讀進去的 token 數。超出的部分,模型就看不到。 - attention:讓每個 token 去看同一個視窗裡所有其他 token,決定要參考誰多一點。例如 watch 會去看後面的 for kids,也會去看前一句是不是在講路邊標誌。Transformer 那幾週會正式教。 生活例子:context window 像考試時桌上能攤開的講義頁數,攤得越多,越能前後對照、判斷一個詞在這裡是什麼意思。老師也提醒,context 很大時 LLM 另有缺點,之後再講。
老師原話是什麼? 「做語言處理其實你重點就是要看所有的東西,你看到前後文,所以為什麼大語言模型的 context window 這麼重要」(0:23:43) 「這個例子我覺得他是應該有看過相關的解釋文獻,並不是他真正去 reasoning 出來」(0:25:01)
## [0:25:27](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1527s) 情境歧義:Siri 與規則式對話 **Context ambiguity(情境歧義)**:同一句話要知道使用情境,才懂使用者想做什麼(意圖)。p.10 的 Siri:問「下午回台南要不要帶傘」,完全沒提天氣,Siri 卻知道傘跟下雨有關、下雨跟天氣有關,回了台南的降雨機率。在 LLM 出現前能做到這樣已經非常厲害,但它本質上還是**規則式(rule-based,人手寫「看到 X 就做 Y」)**系統,只是規則比較聰明:隨口說一句「明天學生的口試有點擔心」,它看到「明天」就去查行事曆。
它到底怎麼運作?規則式系統為什麼一問就倒? 把 p.10 兩個例子當成規則比對,手動跑一次:
使用者說命中的規則Siri 做了什麼結果
下午回台南要不要帶傘傘 → 下雨 → 天氣查詢顯示台南市天氣、降雨機率對
明天學生的口試有點擔心明天 → 時間 → 查行事曆回「沒看到明天有『學生的口試有點擔心』預約」錯:把整句當成行程名稱
第二句 Siri「甚至不太管後面是什麼」,只抓到「明天」這個關鍵字。規則式系統就是字典比對加一點情境:修好一條規則,換個問法又掛掉(掛一漏萬)。所以 LLM 出現前的線上客服、聊天機器人,大家問兩三句就覺得沒用。老師也說這是約五年前的例子,拿來批評 Siri 不太公平。
老師原話是什麼? 「你以前如果在大語言模型還沒出來之前,你能夠做到這個地步,就非常厲害,就是你能夠瞭解使用者的意圖」(0:26:18) 「但是還是這個掛一漏萬,就是你把一條規則做好,隨便問就掛掉」(0:27:54)
## [0:28:23](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1703s) 閱讀理解題 p.11 是一題中文閱讀測驗(科技大擂台 2017):文章說員工生病不敢請假,好公司應該照顧員工,而不是讓他們拿健康換錢;問「這篇文章說了什麼」,最合理的是選項 4「照顧身體比認真工作更重要」。老師建議做完前兩個作業後自己試試:**不用 LLM**,把文章和四個選項都轉成向量(embedding),算相似度挑答案。如果還要解釋為什麼選它,就得靠生成。老師的結論是:拿掉 LLM,這件事幾乎做不出來。
它到底怎麼運作?用最簡單的向量手算一次會怎樣? 最簡單的向量是**詞袋(bag of words)**:只數每個關鍵詞出現幾次,「的、有、應該」這類停用詞丟掉。 文章向量 a:員工 4、公司 2、老闆 1、責任感 1、照顧 1、健康 1、請假 1。長度 |a| = √(16+4+1+1+1+1+1) = √25 = 5。每個選項裡的詞各出現 1 次。
選項跟文章共同的詞a·o|o|cos
1 老闆應該給員工多一點兒假員工(4)、老闆(1)5√3 ≈ 1.732**0.577**
2 常關心別人的人更有責任感責任感(1)1√2 ≈ 1.4140.141
3 對公司有意見要勇敢說出來公司(2)2√2 ≈ 1.4140.283
4 照顧身體比認真工作更重要(正解)照顧(1)1√3 ≈ 1.7320.115
算法:cos = a·o ÷ (|a| × |o|)。例:選項 1 = 5 ÷ (5 × 1.732) = 0.577。文章裡的「生病、幸福感」加進來只會讓 |a| 變大、四個分數等比例變小,排名不變。 結果最高分是選項 1,正解 4 反而最低。因為正解說「身體、工作」,文章說「健康、換錢」:意思一樣、字不一樣,詞袋完全抓不到。我另外用一個真的多語言句向量模型(paraphrase-multilingual-MiniLM-L12-v2)算了一次:選項 1 到 4 分別是 0.624、0.486、0.489、0.464,還是選 1,這個小模型只抓到「員工、老闆」的表面重疊。 所以對你的影響是:這就是 p.74 說的「有出現不見得是相關,沒出現不見得是無關」,也說明了老師為什麼說拿掉 LLM 就做不出來。
要先懂什麼?向量和 cosine similarity 是什麼? - 向量:一串數字,例如 (4, 2, 1)。 - 點積 a·b:對應位置相乘再加總。 - 長度 |a|:每個數字平方、加總、開根號。 - cosine similarity = a·b ÷ (|a| × |b|),就是兩個向量夾角的 cos:方向完全一樣是 1,完全沒有共同的詞是 0。除以長度是為了公平:長文章字多,點積自然大,除掉長度才是在比「方向」。 小例子:a = (1, 1, 0)、b = (1, 0, 1)。a·b = 1,|a| = |b| = √2,cos = 1 ÷ 2 = 0.5。之後 p.51 會正式講(第 06 章)。
老師原話是什麼? 「你把大語言模型的角色拿掉之後,你會發現你根本做不出來這件事情」(0:29:07)
## [0:29:15](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1755s) 句法歧義:望遠鏡句 [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w2\img\w1_nlp_brief_v2_p013.png | p.13:同一句話的兩棵剖析樹。左邊 with a telescope 掛在動詞 saw 底下(我用望遠鏡看);右邊掛在 man 底下(那個人拿著望遠鏡)]] 英文也一樣難。「I saw a man on a hill with a telescope.」寫得很簡潔,省掉很多說明,所以 p.12 列了 5 種解讀:望遠鏡是我在用、那個人拿著,還是放在山上?這叫**句法歧義(syntactic ambiguity,每個字都認得,但句子結構有好幾種組法)**。畫出**剖析樹(parse tree,把句子拆成片語、標出誰修飾誰的樹狀圖)**就知道 with a telescope 修飾誰。但剖析器跟人一樣不知道你在講什麼,只能根據語料統計或語言學規則做出一棵樹,換一套統計基礎,樹就不一樣,所以剖析樹不唯一。老師說這不是工具不好:句子本身就長這樣,每種說法都不能說錯。人對話時靠更多前後文理解,但也可能理解錯。
它到底怎麼運作?p.12 那串括號怎麼讀? ``` (ROOT (S (NP (PRP I)) (VP (VBD saw) (NP (DT a) (NN man)) (PP (IN on) (NP (DT a) (NN hill))) (PP (IN with) (NP (DT a) (NN telescope)))) (. .))) ``` 每一對括號是一個片語,括號裡第一個字是標籤: - S 句子;NP 名詞片語;VP 動詞片語;PP 介系詞片語。 - PRP 人稱代名詞;VBD 動詞過去式;DT 限定詞;NN 單數名詞;IN 介系詞。 這棵樹裡 on a hill 和 with a telescope 兩個 PP 都直接掛在 VP 底下,也就是都修飾 saw:「我在山上、用望遠鏡看到一個男人」,正好是投影片藍字的翻譯。把 (PP with …) 移進 (NP a man) 裡,就變成 p.13 右邊「那個人拿著望遠鏡」。這種「同一個片語可以掛在樹的不同位置」叫 attachment ambiguity,介系詞片語造成的叫 PP-attachment ambiguity。 小細節:p.12 第 5 種「I'm sawing him with a telescope」把 saw 當成「鋸」(sawing=正在鋸),意思是「我拿望遠鏡在鋸他」,等於又混進了詞義歧義;投影片括號裡的中文寫成「觀察他」,是翻譯沒翻出來。
要先懂什麼?剖析樹有哪兩種? 老師口頭同時提到 dependency tree 和 parsing tree: - 成分剖析(constituency parse):p.12–13 這種,把句子一層層分成片語。 - 依存剖析(dependency parse):不分片語,直接在字和字之間畫箭頭,標出誰依附誰,例如 saw → I(主詞)、saw → man(受詞)。望遠鏡句的歧義在這裡變成:telescope 要依附 saw,還是依附 man。 p.29 會把 syntax trees 和 dependency trees 都放在 Syntax 這一層(第 03 章)。
p.12 那 5 句怎麼來的?回譯是什麼? 老師把原句丟進 Google 翻譯翻成中文(或烏克蘭語),再翻回英文,就得到不同說法。這招叫**回譯(back-translation)**,以前做 NLP 很常用來做資料擴增(用現有資料變出更多訓練資料):翻譯品質夠好的話,就能產生意思相同、說法不同的句子,讓訓練資料更多樣。缺點是意思可能跑掉,老師把這幾句翻成中文,就發現意思都不太一樣。 示意:The weather is nice today → 今天天氣很好 → Today's weather is very good。
老師原話是什麼? 「所以這個 Tree 呢不唯一啊,不唯一,就是它換一個統計的基底之後,做出來的 Tree 就不一樣」(0:31:48) 「因為你的句子就是長這個樣子,不管什麼 Parse,這幾種說法都不能說錯」(0:32:35) 「我們就會根據更多的前後文去理解這件事情,但是也許有些理解會是錯誤的」(0:33:04)
## [0:33:13](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1993s) NER:抓出財經新聞的關鍵實體 除了詞性,還要做 **NER(named entity recognition,命名實體辨識:在文字裡找出公司、日期、數字這類「有名字的東西」並標出類型)**。p.14 是財經新聞:標出 MediaTek 是公司(ORG)、This Month 是日期(DATE)、15% YoY 是百分比(PERCENT),其他描述細節的字不用看,就知道文章在講什麼,可以拿去分類、分群。聽起來寫幾條規則就好,但你怎麼知道哪些字是公司名稱?以前靠 BiLSTM、CRF 這類模型(p.14 寫 BiLSTM-CRF),而且需要一些有標註的訓練資料(supervised training data)才做得好。老師提到以前實驗室有兩位博士生就靠這類題目拿到學位,現在回頭看像井底之蛙,但在當年確實很難。
它到底怎麼運作?NER 怎麼變成「每個字選一個標籤」? 把 p.14 簡化成一句:MediaTek revenue rose 15% YoY this month。用 **BIO 標記**:B=實體開頭(Begin),I=實體內部(Inside),O=不是實體(Outside)。
字標籤意思
MediaTekB-ORG公司名的開頭
revenueO不是實體
roseO不是實體
15%B-PERCENT百分比的開頭
YoYI-PERCENT百分比的一部分
thisB-DATE日期的開頭
monthI-DATE日期的一部分
這樣 NER 就變成「每個字選一個標籤」的序列標註(sequence labeling),跟詞性標註是同一類問題。 - BiLSTM:從左到右、從右到左各讀一次句子,讓每個字都帶著前後文的資訊。 - CRF(conditional random field,條件隨機場):不是每個字各選各的,而是挑「整串標籤」最合理的組合。例如 I-DATE 前面一定要是 B-DATE 或 I-DATE,不能直接接在 O 後面。 - 為什麼要標註資料:模型要看過大量「人已經標好 B/I/O」的句子才學得會。規則則會漏掉新公司名、縮寫(台積電/TSMC)和一字多義(Apple 是公司還是水果)。 生活例子:像拿三種顏色的螢光筆讀新聞,公司畫藍、日期畫黃、數字畫橘,讀完只看螢光筆的部分就抓到重點。NER 就是教電腦自動畫螢光筆。
別人怎麼教這個? Jurafsky & Martin《Speech and Language Processing》第 3 版草稿(免費): - [Ch.18 Sequence Labeling for Parts of Speech and Named Entities](https://web.stanford.edu/~jurafsky/slp3/18.pdf):詞性標籤、NER、BIO、CRF,本章的 97%、55–67% 數字出自這章。 - [Ch.19 Context-Free Grammars and Constituency Parsing](https://web.stanford.edu/~jurafsky/slp3/19.pdf):structural ambiguity、attachment ambiguity。
老師原話是什麼? 「以現在角度來看真的是井底之蛙這樣,在這樣的問題裡面搞那麼久,不過在那個年代這的確是一個很難的問題」(0:34:27) 「這個通常都需要一點 supervised training data 才能做得好」(0:34:47)
## [0:34:55](https://www.youtube.com/watch?v=MnA5KUETSg4&t=2095s) 推理、情境與同音字 看懂字之後,還要能推理、懂情境。老師舉了三個例子(p.15–19),LLM 都答得出來,但老師認為它多半是看過相關語料或「考古題」,不一定是自己推出來的: - 推理(p.15–16):「大舅去二舅家找三舅說四舅被五舅騙去六舅家偷七舅放在八舅櫃子裡九舅借十舅發給十一舅的 1000 元薪水」,問誰是小偷、錢本來是誰的。現在也可以給 LLM **chain-of-thought(思維鏈,要它把推理步驟一步步寫出來)**的提示,讓它推理。 - 情境理解(p.17):「冬天:能穿多少穿多少;夏天:能穿多少穿多少。」字完全一樣,冬天是「盡量多穿」,夏天是「盡量少穿」。 - 同音字(p.18–19):趙元任的《季姬擊雞記》幾乎每個字都念 ji,只有拼音、沒有漢字就完全看不懂。
舅舅題到底怎麼拆?答案是什麼? 把長句切成「誰做了什麼」: - 外層:大舅(去找三舅)轉述一件事。 - 事件:四舅被五舅騙去六舅家偷錢。 - 偷的錢:七舅放在八舅櫃子裡的錢。 - 錢的來歷:九舅借十舅、由十舅發給十一舅的 1000 元薪水。 投影片上 LLM 的結論:小偷是四舅(被五舅教唆);錢是七舅的(由七舅保管)。但它自己在第 4 步也說錢的原始來源是九舅,而這筆錢又是發給十一舅的薪水,所以「錢本來是誰的」本身就有好幾種說法。重點不在標準答案,而是要先把句子結構拆對(就是前一段的剖析),才推理得下去。老師說這題據說是考外國人的華語測驗題,但出處他覺得不可考。
LLM 怎麼知道冬天和夏天的情境不同? 老師的解釋:在 LLM 裡,「冬天」不只是一個 token,它還帶著**預訓練(pretraining,先用海量文字練基本功)**時學到的「常跟冬天一起出現的詞」,例如冷、外套、保暖;「夏天」則帶著熱、短袖、冷氣。情境就濃縮在這個詞的表示裡。這個想法下週會正式出現在 p.70:Distributional Hypothesis,"A word is characterized by the company it keeps."(Firth 1957) 老師也留了一個問題:講完 Transformer 和預訓練後你會發現,預訓練是在做「克漏字」(把句子裡的字遮住讓模型猜)。難道做克漏字就能理解冬天跟夏天的情境嗎?這正是神奇的地方。
《季姬擊雞記》在說什麼?跟 NLP 有什麼關係? 原文(p.18):季姬寂,雞棲笈。笈既棄,姬擊雞。雞既棄,姬寂,既擊既棄。 拼音:jì jī jì, jī qī jí. jí jì qì, jī jī jī. jī jì qì, jī jì, jì jī jì qì. 大意(我的翻譯):季姬很寂寞,雞停在書箱上;書箱壞了丟掉,季姬就打雞;雞也丟了,季姬又寂寞了,打了也丟了。 - 背景(老師說):當年有人主張把中文改成拉丁拼音,因為中文太難學。趙元任(語言學家,Yuen Ren Chao)用這種文章說明:沒有漢字、只有拼音,根本看不出在講什麼。老師也說網路上有人認為出處不可考。 - 跟 NLP 的關係:語音辨識(聽到 ji ji ji 要寫成哪個字)和文言文理解都會碰到這種問題。 - p.19 是 AI 仿作的《詩師食獅史》(趙元任原本最有名的一篇是《施氏食獅史》),老師說叫 LLM 再做一個例子,它也做得出來。 - 老師的解讀:LLM 不是真的聽得到讀音,而是讀過解釋聲母、韻母的語料,才推敲得出來。
老師原話是什麼? 「所以他會去推理但是我覺得他其實應該是有看過考古題」(0:35:42) 「他對冬天的理解跟夏天的理解,不是只有兩個不同的 Token」(0:36:48) 「難道做做克漏字就能夠理解冬天跟夏天的情境嗎」(0:37:32) 「並不是他真的知道這個念音,而是他有讀過相關的語料」(0:39:11)
## [0:39:43](https://www.youtube.com/watch?v=MnA5KUETSg4&t=2383s) Strawberry 有幾個 R LLM 剛出來時,有人問它「strawberry 裡有幾個字母 r」。依照 LLM 的設計,它讀的是 **token(一段段的文字片,每片換成一個編號)**,理論上看不到字裡每個字母怎麼拼。它卻常答對 3 個(s-t-**r**-a-w-b-e-**r**-**r**-y,第 3、8、9 個字母),老師認為很可能是訓練資料裡本來就有人把 strawberry 一個字母一個字母拼出來,它看過、記下來了。這段沒有對應的投影片。
它到底怎麼運作?模型實際看到的是什麼? 我用本機的 tokenizer(把文字切成 token 的程式)實際切了一次:
Tokenizer輸入切出來的 token
GPT-2句子裡的「 strawberry」(前面有空格)1 個:strawberry(編號 41236)
GPT-2單獨的「strawberry」3 個:st/raw/berry
all-MiniLM-L6-v2(BERT 的 WordPiece 詞表)strawberry1 個:strawberry(編號 16876)
paraphrase-multilingual-MiniLM-L12-v2(SentencePiece 詞表)strawberry3 個:▁stra/w/berry
常見的字整個是一個 token,少見的字才拆成片段(subword,子詞)。所以問「幾個 r」時,GPT-2 看到的只是「41236 號」這個整體,裡面沒有 r 的資訊;就算切成 st/raw/berry,也要「知道 berry 裡有兩個 r」才數得對,而這只能從訓練資料學來。 所以對你的影響是:LLM 在拼字、數字母、押韻這類「字母層級」的題目上容易出錯,原因在 tokenization,不在它笨。資訊檢索的前處理也會講 tokenization(第 05 章)。
老師原話是什麼? 「如果以大語言模型的設計概念,他理論上應該不懂的這個字裡面的每個字母的拼法」(0:40:22) 「有很多的資料本來就會把 Strawberry 這個字一個一個字母的寫出來」(0:40:58)
## Self-check
Q1. The phrase "Watch for kids" can be read in more than one way. Name the type of ambiguity, give two readings, and explain how it can be resolved. **Answer**: It is word sense ambiguity. Reading 1: "watch" is a verb, so the phrase means "look out for children" (a warning sign). Reading 2: "watch" is a noun, so it means "a watch designed for kids". The three words alone cannot decide; the system must use the surrounding context. This is why a large context window matters for LLMs: attention over the whole context helps pick the right sense. Choosing the correct sense is called word sense disambiguation (WSD). 中文重點:詞義歧義要靠前後文解決;LLM 的 context window 越大,能參考的前後文越多。
Q2. Why is "I saw a man on a hill with a telescope." syntactically ambiguous? Give two interpretations and explain how their parse trees differ. Is a parser that outputs only one tree wrong? **Answer**: The prepositional phrase "with a telescope" can be attached to more than one place in the parse tree (PP-attachment ambiguity). Interpretation 1, "I used a telescope": the PP attaches to the VP and modifies "saw". Interpretation 2, "The man has a telescope": the PP attaches to the NP "a man". A parser builds its tree from a statistical or linguistic basis, so different parsers may output different trees. None of them is wrong, because the sentence itself allows several readings; wider context is needed to choose. 中文重點:同一個介系詞片語可以掛在樹的不同位置;剖析樹不唯一,不是工具的錯。
Q3. What is Named Entity Recognition (NER)? Label "MediaTek revenue rose 15% YoY this month" with BIO tags, and name one traditional technique for NER and what it needs. **Answer**: NER finds and classifies named entities in text, such as organizations, dates, and percentages, e.g. scanning massive news volumes to lock onto specific targets. BIO labels: MediaTek/B-ORG revenue/O rose/O 15%/B-PERCENT YoY/I-PERCENT this/B-DATE month/I-DATE. A traditional technique is BiLSTM-CRF (or feature engineering); it needs supervised, labeled training data. 中文重點:NER=找出公司、日期、數字等實體並標類型;傳統做法是 BiLSTM-CRF,需要標註資料。
Q4. Why is "How many r's are in strawberry?" hard for an LLM in principle, and why might it still answer correctly? **Answer**: An LLM reads subword tokens, not letters. For example, GPT-2 turns " strawberry" into a single token ID, so the spelling is not directly visible to the model. It may still answer "3" because its training data contains texts that spell the word out letter by letter, so it has seen and memorized the spelling. 中文重點:LLM 看的是 token 不是字母;答得對多半是因為訓練資料看過拼法。