[自然語言處理](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 就是一例。
要先懂什麼?(這章一直用到的五個基本名詞) - LLM(large language model,大型語言模型):像 ChatGPT 這種讀過海量文字、能接著寫下去的模型(第 1 週學過:語言模型就是「猜下一個字」的模型,現在先預訓練再拿來用,見 [W1 第 03 章](https://app.notion.com/p/3e7fc631b03081f5bf0bf5126d7f9472)、[第 05 章](https://app.notion.com/p/3e7fc631b03081c69424e055b260badc))。 - 語料(corpus):拿來統計或訓練模型的一大堆真實文字,例如新聞、網頁、書。 - 標註資料(labeled data):人先把正確答案標好的資料,例如每個字旁邊寫好「這是公司名」。模型照著這些答案學,叫監督式學習(supervised learning)。 - 機率模型:不寫死規則,而是從資料算出「哪個答案可能性最高」再挑它。CRF 就是一種。 - token:模型讀文字的最小單位,可能是一個字,也可能是半個字(最後一段 Strawberry 會細講)。 所以對你的影響是:這章一直在比三種做法:人寫規則、機率模型加標註資料、LLM。先分清這三個,整章就看得懂。
## 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) - 中文:四步:切句子;標每個字的詞性(part-of-speech);找子句(subclause);找主詞(subject)和直接受詞(direct object),也就是「誰對誰做了什麼」。 - **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 是圖中文字) - 中文:兩種解讀:我用望遠鏡看;那個男人拿著望遠鏡。差別在 with a telescope 掛在「看」還是「男人」身上。 - **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):掃過大量新聞,鎖定特定目標(公司、日期、數字)。 - **NER (technique)**: "The Tech: BiLSTM-CRF or feature engineering algorithms used to filter out noise."(W1_NLP_brief p.14,圖中文字) - 中文:技術是 BiLSTM-CRF,或特徵工程(feature engineering,人手設計特徵)的演算法,用來濾掉雜訊(noise,不重要的字)。 - **Reasoning**: "Is reasoning difficult for LLM?"(W1_NLP_brief p.15–16) - 中文:推理對 LLM 難不難?LLM 答得出舅舅偷錢題,但老師認為它多半看過類似題目。 ## [0:21:17](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1277s) 詞性標註沒那麼簡單 上一章的傳統流程(p.8)看起來只是「把工具套一套」,人看一眼就懂,電腦卻很難做。第一個難處是**詞性(part-of-speech,POS,名詞、動詞這類詞的類別)**:學英文時覺得詞性不到十種,但細分到「代表什麼意義、影響其他字的哪個範圍」,標籤就非常多。用過 CKIP 或結巴(中文斷詞與詞性標註工具)就會發現,它們吐出一大堆標籤。 下圖是 p.8 的四個步驟。看似簡單的流水線,第二步就不簡單,而且前一步錯後面跟著錯(我補充): ```mermaid flowchart LR A["一篇文章"] --> B["切成句子"] B --> C["標出每個字的詞性"] C --> D["找出子句"] D --> E["找出主詞和受詞"] E --> F["人一看就懂,電腦每步都可能錯"] ``` 生活比喻:像整理衣櫃,以為分「上衣、褲子」就好,真的整理才發現要分長袖、短袖、外套,分得越細越好找,也越難分對。 考試可能怎麼問:Why is POS tagging harder than it looks?(答:標記集分得很細,同一個字又常有好幾種詞性,要看上下文決定。) 下面的進階摺疊在回答「標籤到底分多細、一字多詞性有多常見」:結論是標籤可以細到幾十種,而且文章裡一半以上的字都有不只一種詞性可選。
標籤到底有多少、歧義有多常見?(進階,可跳過) - p.8 右邊是一份中文詞性標記集(ACL-IJCNLP 2009)。名詞 n 再分成方位詞 nd、處所名 ns、時間詞 nt、專有名詞 np、人名 npp……人名又分中國人的姓 nppx、名 nppm、日本人的姓 nppxj、歐美人的姓 nppxw。 - 一字多詞性(my wording,數字憑記憶引自 Jurafsky & Martin 課本):英文 book 可以是動詞或名詞,Penn Treebank 光動詞就分 6 種標籤。有多種詞性的字只占少數(約 14%),但多半是常用字,所以文章裡一半以上的字(約 55–67%)有歧義。
老師原話是什麼? 「這些工具套一套好像人去看一看非常容易,但是其實電腦來做這件事情挺複雜的」(0:21:44) 「真的你要去細分他所代表的意義,或者是說他能夠影響其他字的範圍,非常多,這個詞性非常多」(0:22:11)
## [0:22:55](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1375s) 詞義歧義:Watch for kids 下圖是 p.9 的兩種讀法,以及 ChatGPT 的兩次回答: [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w2\img\w1_nlp_brief_v2_p009.png | p.9:兒童手錶還是小心孩童?左下是 ChatGPT 的誤解,右邊是換問法後的分析]] 圖上重點: - 標題 Word sense ambiguity=詞義歧義(同一個詞有好幾種意思)。 - 中間大字 Watch for kids,下面兩張圖是兩種讀法:粉紅色兒童手錶(watch 當名詞「手錶」);黃色警告牌 CAUTION CHILDREN AT PLAY(「注意,有小孩在玩」,watch 當動詞「留意」)。 - 左下是 ChatGPT 第一次的回答:解釋成「適合兒童觀看」,紅色問號表示答偏了。 - 右上是老師改問「從 Word sense ambiguity 來解釋它的意義」,ChatGPT 就分別拆 watch(留意/手錶)和 kids(小孩/小山羊),最後判斷是「注意附近有小孩」。 這張圖在講:同一串字可以有兩種意思,連 AI 也要被問對角度才答得對。 就算找到詞性,還有**詞義歧義(word sense ambiguity,同一個詞有好幾種意思)**。「Watch for kids」的 watch 當名詞是「兒童手錶」,當動詞是「小心孩童」。只看三個字決定不了,要看前後文,所以 LLM 的 **context window(一次能讀進去的文字長度,像考試時桌上能攤開的講義頁數)**很重要:雲端 LLM 能一次讀進整篇論文、一起算 attention(讓每個字去看視窗裡其他字,決定參考誰多一點;Transformer 那幾週會教),比較不會判斷錯(context 很大時另有缺點,之後再講)。 老師示範:直接丟這三個字問 AI,它答成「適合兒童觀看」;改成「從詞義歧義的角度解釋」,它就分析得很透徹,像學生一聽就認出考古題。老師認為它看過相關文獻,不是自己推的,但 AI 也有機會在沒看過時做到。 生活比喻:聽到「他很會打」,要看前面在聊籃球、電動還是打架,才知道「打」是什麼意思。 考試可能怎麼問:Explain word sense ambiguity with "Watch for kids" and how context resolves it.(用 Watch for kids 解釋詞義歧義,以及前後文怎麼消除它。) 注意:老師口頭說「詞性歧義」,投影片標題是 Word sense ambiguity(詞義歧義),考試寫投影片的版本。watch 是詞性不同連帶意思不同;kids 都是名詞,卻可以是「小孩」或「小山羊」,這才是純粹的詞義歧義。挑出正確詞義的任務叫 **word sense disambiguation(WSD,詞義消歧)**,p.29 會再出現。
老師原話是什麼? 「做語言處理其實你重點就是要看所有的東西,你看到前後文,所以為什麼大語言模型的 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 兩句話在規則式系統裡走的路,上面答對、下面答錯: ```mermaid flowchart LR A["下午回台南要不要帶傘"] --> B["抓到關鍵字:傘"] B --> C["傘 → 下雨 → 天氣"] C --> D["查天氣:答對"] E["明天學生的口試有點擔心"] --> F["抓到關鍵字:明天"] F --> G["明天 → 時間 → 行事曆"] G --> H["查行事曆:答錯"] ``` 第二句 Siri 回「沒看到明天有『學生的口試有點擔心』預約」,把整句當成行程名稱,「甚至不太管後面是什麼」。 規則式的步驟:一、找關鍵字;二、對到情境(天氣、時間);三、呼叫對應功能(老師稱為 tool use);四、回答。修好一條規則,換個問法又掛掉(掛一漏萬),所以 LLM 出現前的聊天機器人,大家問兩三句就覺得沒用。老師也說這是約五年前的例子,對 Siri 不太公平。 tool use(工具呼叫)的意思是:AI 自己不會查天氣,而是去叫手機上的天氣 App、行事曆 App 查,再把結果講給你聽。規則式系統的難處在第二步「該叫哪個工具」,判斷錯了,後面全錯。 生活比喻:像只認關鍵字的自動客服,你說「退貨」它就丟退貨流程,說「東西壞了想換新的」它就聽不懂。 考試可能怎麼問:Why did rule-based chatbots before LLMs break so easily?(LLM 之前的規則式聊天機器人為什麼很容易失敗?)
老師原話是什麼? 「你以前如果在大語言模型還沒出來之前,你能夠做到這個地步,就非常厲害,就是你能夠瞭解使用者的意圖」(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,這件事幾乎做不出來。 向量(vector)就是一串排好順序的數字,例如 [4, 2, 1];兩串數字的方向越接近,代表兩段文字越像。「生成」是讓模型自己寫出一段新文字(例如寫出「為什麼選 4」的理由),只算相似度的方法做不到這一步。 生活比喻:像只看「選項和文章有幾個字一樣」來猜答案的考生,字面重疊最多的常常不是正解。 考試可能怎麼問:Why is reading comprehension hard without an LLM?(答:相似度只抓到字面重疊,抓不到「換句話說」,也無法產生解釋。) 下面的進階摺疊真的用數字算一次「選項跟文章有多像」:把文章和每個選項都換成「每個重點詞出現幾次」的一串數字,再比兩串數字有多接近。算出來的結果是:最合理的選項 4 分數反而最低,因為它跟文章意思一樣、用字不一樣。
用最簡單的向量真的算一次會怎樣?(進階,可跳過) 最簡單的向量是**詞袋(bag of words)**:只數重點詞出現幾次。文章取 7 個:員工 4、公司 2、老闆 1、責任感 1、照顧 1、健康 1、請假 1;選項的重點詞各算 1 次。cosine similarity(方向多接近,1 一樣、0 無共同詞)= 點積 ÷ 兩邊長度相乘。
選項選項的重點詞跟文章共同的詞cos
1老闆、員工、假員工(4)、老闆(1)**0.577**
2關心、別人、責任感責任感(1)0.115
3公司、意見、勇敢、說出來公司(2)0.200
4(最合理)照顧、身體、認真、工作、重要照顧(1)0.089
例:文章長度 √(16+4+1+1+1+1+1) = 5;選項 1 = 5 ÷(5 × √3)≈ 0.577。 最合理的 4 反而最低:它說「身體、工作」,文章說「健康、換錢」,意思一樣、字不一樣,詞袋抓不到。這正是 p.74 的「有出現不見得是相關,沒出現不見得是無關」。cosine similarity 在 p.51 正式講。
老師原話是什麼? 「你把大語言模型的角色拿掉之後,你會發現你根本做不出來這件事情」(0:29:07)
## [0:29:15](https://www.youtube.com/watch?v=MnA5KUETSg4&t=1755s) 英文句法歧義:望遠鏡句 下圖是 p.13,同一句話的兩棵剖析樹和兩種解讀的插圖: [[IMG: C:\D槽\TAICA課程\_work\notes-v2\nlp-w2\img\w1_nlp_brief_v2_p013.png | p.13:左邊 with a telescope 掛在動詞 saw 底下(我用望遠鏡看);右邊掛在 man 底下(那個人拿著望遠鏡)]] 圖上重點: - 標題 syntactic ambiguity=句法歧義(每個字都認得,但句子結構有好幾種組法)。 - 左邊的樹 Interpretation 1: I used a telescope(解讀一:我用望遠鏡):with a telescope(PP_with)直接掛在動詞片語 VP_saw 底下,所以望遠鏡是「看」的工具。 - 中間的樹 Interpretation 2: The man has a telescope(解讀二:那個男人有望遠鏡):PP_with 掛在名詞片語 NP_man 底下,所以望遠鏡是那個男人帶著的東西。 - 圓圈裡的縮寫:S 句子、NP 名詞片語、VP 動詞片語、V 動詞、PP 介系詞片語(with、on 開頭的片語)。 - 右邊插圖:藍字是原句;左圖是我拿望遠鏡看山上的人,右圖是那個男人自己拿著望遠鏡。 這張圖在講:字完全一樣,只是「with a telescope 掛在誰底下」不同,意思就完全不同。 「I saw a man on a hill with a telescope.」寫得很簡潔,所以 p.12 列了 5 種解讀:望遠鏡是我在用、那個人拿著,還是放在山上?這叫**句法歧義(syntactic ambiguity,每個字都認得,但句子結構有好幾種組法)**。老師說英文老師常提醒別寫太精簡,p.12 下面那幾句比較長,意思反而精確。 那 5 句是用**回譯(back-translation)**產生的:用 Google 翻譯翻成中文(或烏克蘭語)再翻回英文。以前 NLP 常用這招做資料擴增(變出更多樣的訓練資料),缺點是意思可能跑掉。 要知道 with a telescope 修飾誰,就要畫**剖析樹(parse tree,把句子拆成片語、標出誰修飾誰的樹狀圖)**。剖析器的步驟:一、標詞性;二、把字組成片語;三、決定每個片語掛在誰底下;四、依語料統計或語言學規則挑出一棵樹。剖析器也不知道你在講什麼,換一套統計基礎樹就不一樣,所以剖析樹不唯一。這不是工具不好:句子本身就長這樣,每種說法都不能說錯。人對話時靠更多前後文理解,但也可能理解錯。 生活比喻(我補充):中文「咬死了獵人的狗」可以是「那隻咬死獵人的狗」,也可以是「(某動物)咬死了獵人養的狗」。 考試可能怎麼問:Give two interpretations of the telescope sentence and explain why a parser may output different trees.(舉出兩種解讀,並說明剖析器為什麼可能產生不同的樹。) 下面的進階摺疊把 p.12 那串括號翻成白話:那串括號就是剖析樹的「文字版」,每一對括號是一個片語。讀懂後會發現,投影片那棵樹選的是「我用望遠鏡看」這個解讀。
p.12 那串括號怎麼讀?(進階,可跳過) 把 p.12 的括號樹拿掉詞性標籤,精簡成: ``` (S (NP I) (VP saw (NP a man) (PP on a hill) (PP with a telescope))) ``` 每對括號是一個片語:S 句子、NP 名詞片語、VP 動詞片語、PP 介系詞片語。投影片原圖每個字前面還有詞性標籤(PRP 代名詞、VBD 動詞過去式、DT 限定詞、NN 名詞、IN 介系詞)。 兩個 PP 都掛在 VP 底下、都修飾 saw:「我在山上、用望遠鏡看到一個男人」,正是投影片藍字。把 (PP with …) 移進 (NP a man) 裡,就變成 p.13 右邊的解讀。一個片語能掛在樹上不只一個位置,叫 attachment ambiguity(依附歧義);介系詞片語造成的叫 PP-attachment ambiguity (my wording)。 老師也提到 dependency tree(依存樹):直接在字和字之間畫箭頭標誰依附誰;歧義變成 telescope 依附 saw 還是 man。p.29 會再提到這兩種樹。 小細節:p.12 第 5 種「I'm sawing him」把 saw 當成「鋸」,又混進了詞義歧義(投影片中文寫「觀察他」,沒翻出來)。
老師原話是什麼? 「所以這個 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),其他描述細節的字不用看,就知道文章在講什麼,可以拿去分類、分群。 聽起來像寫 compiler 一樣寫規則就好,但怎麼知道哪些字是公司名?老師說以前靠 CRF 這類機率模型(p.14 寫 BiLSTM-CRF 或特徵工程),還要有標註資料(supervised training data)。步驟:一、把 NER 變成「每個字選一個標籤」;二、BiLSTM 從左右兩個方向讀句子,讓每個字帶著前後文;三、CRF 挑出整串最合理的標籤;四、用人標好的句子訓練。老師說以前實驗室有兩位博士生靠這類題目拿到學位。 compiler(編譯器)是把程式碼翻成電腦指令的程式,它靠一套寫死、沒有例外的文法規則;自然語言到處是例外,所以同樣的寫法套不上來(我補充)。BiLSTM 是一種「照順序一個字一個字讀」的神經網路,Bi 表示正著讀一次、倒著讀一次(第 1 週學過:老師點名 RNN/LSTM 雖然舊但很重要,它們是專門讀序列的模型)。 生活比喻:像拿三色螢光筆讀新聞,公司畫藍、日期畫黃、數字畫橘,只看螢光筆的部分就抓到重點。NER 就是教電腦自動畫螢光筆。 考試可能怎麼問:What is NER, and what did a traditional NER system need?(什麼是 NER?傳統做法需要什麼?) 下面的進階摺疊用一句新聞示範:每個字貼一張小標籤(實體開頭/實體裡面/不是實體),NER 就變成「每個字選一張標籤」的選擇題,電腦才能拿人標好的資料來學。
NER 怎麼變成「每個字選一個標籤」?(進階,可跳過) 把 p.14 簡化成一句,用 **BIO 標記**:B=實體開頭,I=實體內部,O=不是實體。
字MediaTekrevenuerose15%YoYthismonth
標籤B-ORGOOB-PERCENTI-PERCENTB-DATEI-DATE
這樣 NER 就是序列標註(sequence labeling),跟詞性標註同一類。CRF(conditional random field,條件隨機場)挑整串最合理的組合,例如學到 I-DATE 前面應該是 B-DATE 或 I-DATE,不會接在 O 後面。規則會漏掉新公司名、縮寫(台積電/TSMC)和一字多義(Apple 是公司還是水果),所以才需要大量標好的資料。
老師原話是什麼? 「以現在角度來看真的是井底之蛙這樣,在這樣的問題裡面搞那麼久,不過在那個年代這的確是一個很難的問題」(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):「冬天:能穿多少穿多少;夏天:能穿多少穿多少。」字完全一樣,冬天是「盡量多穿」,夏天是「能少穿就少穿」;投影片上 AI 還讀出夏天那句帶點諷刺。以前的系統做不到,只能當笑話。 - 同音字(p.18–19):趙元任的《季姬擊雞記》幾乎每個字都是聲母 j、韻母 i 的音,字義不同、發音幾乎一樣,只能靠上下文推敲。語音辨識和文言文理解都會碰到這種問題。 - 聲母、韻母:中文一個音拆成前後兩半。聲母是開頭的音(注音的ㄐ,拼音 j),韻母是後面的音(注音的ㄧ,拼音 i),合起來就是「ji」。 生活比喻(老師的):LLM 像背過考古題的學生,一出題就知道怎麼答,但不代表它會從頭推。 考試可能怎麼問:Does an LLM that solves these puzzles really reason? Explain with one example.(LLM 答對這些題目,代表它真的會推理嗎?舉一例說明。)
舅舅題到底怎麼拆?答案是什麼? 切成「誰做了什麼」:外層是大舅(去找三舅)轉述一件事;事件是四舅被五舅騙去六舅家偷錢;偷的是七舅放在八舅櫃子裡的錢;錢的來歷是九舅借十舅、十舅發給十一舅的 1000 元薪水。 投影片上 LLM 的結論:小偷是四舅(被五舅教唆);錢是七舅的(由七舅保管)。但它在第 4 步也說原始來源是九舅,而錢又是十一舅的薪水,所以「錢本來是誰的」有好幾種說法。重點是先把句子結構拆對,才推理得下去。
LLM 怎麼知道冬天和夏天的情境不同? 老師的解釋:在 LLM 裡,「冬天」不只是一個 token,還帶著**預訓練(pretraining,先用海量文字練基本功)**時學到的「常跟冬天一起出現的詞」,例如冷、外套;「夏天」則帶著熱、短袖。情境就濃縮在詞的表示裡。這個想法之後會出現在 p.70:Distributional Hypothesis,"A word is characterized by the company it keeps."(Firth 1957) 老師也留了一個問題:預訓練是在做「克漏字」(遮住句子裡的字讓模型猜)。難道做克漏字就能理解冬天跟夏天的情境嗎?這正是神奇的地方。
趙元任的《季姬擊雞記》在說什麼? 原文(p.18,幾乎全念 ji):季姬寂,雞棲笈。笈既棄,姬擊雞。雞既棄,姬寂,既擊既棄。 大意(我的翻譯):季姬很寂寞,雞停在書箱上;書箱丟了,季姬就打雞;雞也丟了,季姬又寂寞了,打了也丟了。 - 背景(老師說):當年有人主張中文改用拉丁拼音,趙元任(語言學家,Yuen Ren Chao)用這種文章說明只有拼音根本看不懂。也有人認為出處不可考。 - 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(一段段的文字片,每片換成一個編號)**,切法叫 tokenization,理論上看不到字母。它卻常答對 3 個(s-t-**r**-a-w-b-e-**r**-**r**-y)。老師認為很可能是訓練資料裡本來就有人把 strawberry 逐字母拼出來,它看過、記下來了。這段沒有對應投影片。 模型的步驟:一、把句子切成 token;二、每個 token 換成編號;三、模型只看到編號,看不到字母;四、要數 r 只能靠看過的拼法。 生活比喻:像把「strawberry」記成一張條碼,別人問條碼裡有幾個 r,你只能靠記憶,不是看出來的。 考試可能怎麼問:Why is counting letters hard for an LLM in principle?(為什麼數字母對 LLM 來說原理上很難?) 下面的進階摺疊真的用 GPT-2 的切字程式切一次 strawberry:放在句子裡時它整個變成一個編號,模型完全看不到裡面的字母,所以 LLM 數字母容易錯。
模型實際看到的是什麼?(進階,可跳過) 用本機的 GPT-2 tokenizer(把文字切成 token 的程式)實際切一次:
Tokenizer輸入切出來的 token
GPT-2句子裡的「 strawberry」(前面有空格)1 個(編號 41236)
GPT-2單獨的「strawberry」3 個:st/raw/berry
常見的字整個是一個 token,少見的才拆成片段(subword,子詞)。就算切成 st/raw/berry,也要知道 berry 裡有兩個 r 才數得對,這只能從訓練資料學。所以對你的影響是:LLM 在拼字、數字母這類題目容易錯,原因在 tokenization,不在它笨。
老師原話是什麼? 「如果以大語言模型的設計概念,他理論上應該不懂的這個字裡面的每個字母的拼法」(0:40:22) 「有很多的資料本來就會把 Strawberry 這個字一個一個字母的寫出來」(0:40:58)
## Self-check
Q1. "Watch for kids" can be read in more than one way. Name the type of ambiguity, give two readings, and explain how to resolve it.(中文:Watch for kids 是哪種歧義?舉兩種讀法,並說明怎麼消除。) **Answer**: Word sense ambiguity. As a verb, "watch" gives "look out for children" (a warning sign); as a noun, "a watch for kids". The words alone cannot decide, so the surrounding context must be used; this is why a large context window matters for LLMs. The task is called word sense disambiguation (WSD). 中文:這是詞義歧義。watch 當動詞是「小心孩童」的警告牌,當名詞是「兒童手錶」。只看三個字無法決定,要靠前後文(它在路邊標誌還是商品廣告上),所以 LLM 的 context window 很重要。挑出正確意思的任務叫 WSD(詞義消歧)。
Q2. Why is "I saw a man on a hill with a telescope." syntactically ambiguous? Give two interpretations and how their parse trees differ. Is a parser that outputs only one tree wrong?(中文:望遠鏡句為什麼有句法歧義?兩種解讀的剖析樹差在哪?只輸出一棵樹算錯嗎?) **Answer**: The PP "with a telescope" can attach to more than one place in the parse tree (PP-attachment ambiguity). "I used a telescope": it attaches to the VP and modifies "saw". "The man has a telescope": it attaches to the NP "a man". A parser builds its tree from a statistical or linguistic basis, so different parsers may give different trees. None is wrong; the sentence itself allows several readings, and wider context is needed. 中文:因為 with a telescope 可以掛在樹的不同位置。「我用望遠鏡看」:掛在動詞片語下、修飾 saw;「那個男人拿著望遠鏡」:掛在名詞片語 a man 下。剖析器依語料統計或語言學規則做樹,換一套基礎就可能換一棵。這不算錯,句子本身就有多種讀法,要靠更多前後文決定。
Q3. What is NER? Tag "MediaTek revenue rose 15% YoY this month" with BIO labels, and name one traditional NER technique and what it needs.(中文:什麼是 NER?用 BIO 標記這句,並說出一種傳統技術和它需要什麼。) **Answer**: NER finds and classifies named entities such as organizations, dates, and percentages. 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 是找出公司、日期、百分比這類實體並標出類型。標記:MediaTek 是公司開頭(B-ORG);revenue、rose 不是實體(O);15% 是百分比開頭、YoY 接在後面;this 是日期開頭、month 接在後面。傳統技術是 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?(中文:為什麼數 strawberry 有幾個 r 原理上對 LLM 很難?它為什麼還可能答對?) **Answer**: An LLM reads subword tokens, not letters; GPT-2 turns " strawberry" into a single token ID, so the spelling is not visible. It may still answer "3" because its training data spells the word out letter by letter, so it has memorized the spelling. 中文:LLM 讀的是 token 編號,不是字母;GPT-2 把句子裡的 strawberry 變成一個編號,看不到拼法,所以原理上數不出來。它會答對 3 個,是因為訓練資料裡有人逐字母拼過,它記住了,不是真的去數。
讀完了嗎?下一章:[03 LLM 之前的應用與分析層次(0:41–0:58)](https://app.notion.com/p/3e6fc631b0308187ae81c0e0fefb77f7)|回到週頁:[W2(9/17)](https://app.notion.com/p/3e6fc631b03081a18b13fad72a8874fd)