# 章節包:自然語言處理(NLP)W1(9/10)第 03 章「NLP 層次、語言模型與發展史」 影片 0:34:06–0:48:49,YouTube ID EEbwXXoVQPY。Notion 章節頁 https://app.notion.com/p/3e7fc631b03081f5bf0bf5126d7f9472(頁 ID 3e7fc631-b030-81f5-bf0b-f5126d7f9472),頁面標題「03 NLP 層次、語言模型與發展史(0:34–0:48)」。 ## 1. 第一行(直接照抄,不要改) [自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W1(9/10)](https://app.notion.com/p/3e7fc631b0308199953aef38ee86b0ae) › 03|影片 [0:34:06–0:48:49](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2046s)|投影片 Syllabus p.25–33|上一章 [02 生成式 AI 帶來的改變(0:17–0:34)](https://app.notion.com/p/3e7fc631b03081b2aaf1c69c5df0bfaf)|下一章 [04 課程安排、評分與同學問答(0:48–1:13)](https://app.notion.com/p/3e7fc631b0308153ba81da585f28e341) ## 1b. 最後一行(直接照抄,放在 Self-check 後面,當全頁最後一行) 讀完了嗎?下一章:[04 課程安排、評分與同學問答(0:48–1:13)](https://app.notion.com/p/3e7fc631b0308153ba81da585f28e341)|回到週頁:[W1(9/10)](https://app.notion.com/p/3e7fc631b0308199953aef38ee86b0ae) ## 2. 各段標題(照順序;每段一個 ## 標題,直接照抄連結) - `## [0:34:06](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2046s) NLP 的四個分析層次` 老師講什麼:構詞(字首字尾、stemming)、句法(詞性、剖析樹)、語意(命名實體辨識、關係擷取)、語用(摘要等)。以前是一步一步教電腦像人一樣讀句子,老師說現在不需要講這麼細。 - `## [0:35:59](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2159s) 2017 閱讀理解比賽的瓶頸` 老師講什麼:2017 年「科技大擂台」要電腦答中文閱讀測驗並解釋理由,當時做法只是拿選項去比對文章算相似度,首獎從缺。現在隨便一個 Transformer decoder 都答得出來。 - `## [0:38:51](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2331s) LLM 的精神就是語言模型` 老師講什麼:進步是跳躍的,不是連續成長。ChatGPT 之前就有語言模型,LLM 就是把它變大;Markov 與 Shannon 是語言模型的先驅。 - `## [0:39:59](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2399s) 語言模型=接龍與條件機率` 老師講什麼:語言模型就是猜「前面是這些字,下一個字最可能是什麼」,也就是 N-gram 的條件機率。老師用周杰倫歌詞示範,並點出兩個問題:資料量太大、沒出現過的組合機率是 0。 - `## [0:42:30](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2550s) NLP 發展史:從 Turing 到 TF-IDF` 老師講什麼:1950–60 年代 Turing、Chomsky 開始想用運算處理語言;2000 年搜尋引擎時代,TF-IDF 是萬用的 baseline。 - `## [0:44:17](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2657s) 神經語言模型、word2vec、BERT` 老師講什麼:Bengio 用神經網路做語言模型;2013 年 word2vec 讓電腦知道狗跟貓比較像、跟卡車不像。2018 年 BERT(Encoder)與 GPT(Decoder)同時出現,之後應用大起飛。 - `## [0:45:59](https://www.youtube.com/watch?v=EEbwXXoVQPY&t=2759s) GPT-3 到 ChatGPT` 老師講什麼:GPT 走 Decoder 路線,GPT-3 花了巨額成本,讓大家第一次覺得電腦寫文章可行;之後有 InstructGPT,2022 年推出 ChatGPT。近幾年加速跟硬體和資料量成長有關。 ## 3. 老師強調/會考/不考的地方(原句已驗證;寫進筆記時 ASR 錯字要改正) - (0:34:24) [不考] 「不過我們並沒有講這些這麼細的東西因為現在不需要」 → NLP 四個層次(構詞、句法、語意、語用)不會講得很細 - (0:47:12) [強調] 「其實這個年代大家可能可以記一下」 → GPT-3 出現的年代:大家開始覺得讓電腦寫人類文章是可行的 ## 3b. 數學段候選(程式抓的,只是提示;寫「跳過提示」行用) 0 段候選(門檻 3.0 字/30 秒) ## 4. 這章摘要與重要度 介紹傳統 NLP 的四個分析層次與閱讀理解的瓶頸,說明語言模型就是算「下一個詞」的條件機率,再從 Turing、TF-IDF、word2vec 一路講到 BERT、GPT 與 ChatGPT。(核心) ## 5. 整堂課的提醒(ASR 錯字、老師口誤、投影片缺公式等;只用跟這章有關的) - 0:00:00–0:01:25 還沒開始上課;0:00:36 那串「志願自由生涯、紅色教堂…」是語音辨識幻覺,不是老師講的。 - 下課在 1:07:53,錄影裡只剩約 1 分半(1:07:53–1:09:19),老師說休息 10 分鐘,實際休息時段應該沒錄進去(推測,沒看影片確認)。 - 老師講 Syllabus-115.pdf 不是照頁碼順序:先講 p.1–33,接著跳到 p.43–51(課程內容、評分)和 Slido 問答,下課後才回頭講 p.34–42。所以第 04 章是 p.43–51、第 05 章是 p.34–42。 - 本週投影片是 Syllabus-115.pdf,加上 1:47:14 起的 W1_NLP_brief_v2.pdf p.1–3(檔名的 W1 不等於上課週)。brief p.3 那張「NLP 四階段」圖,W2 一開頭又講了一次。 - Slido 上有幾則助教的文字回覆,影片裡沒講到:考試可以用英文作答;作業有 2–3 週可以交;各校考試由 TAICA 在各校安排考場;清大實體教室在台達館 103;問問題可寄助教信箱 nthuikmlab@gmail.com;「會講 PEFT(LoRA),但 RL 不會講」。 - 第 06 章是下課後第二輪 Slido 問答,裡面有幾則行政回答(可重複提交、遲交扣分、作業調分),因為時間在第 04 章之後,所以留在第 06 章,不併進第 04 章。 - ASR 錯字對照:高鴻宇→高宏宇;自然源處理→自然語言處理;Edward Harvey→Eduard Hovy;LockedIn→Rocling;TradeGPT/TrackGP/ChangeGPT/ChangeBee/trekGPT/checkgpt→ChatGPT;Cloud→Claude;Entropy→Anthropic;Media→NVIDIA;game/GAME→GAN;Tronsky、Transcript 的 hierarchy→Chomsky(hierarchy);Benji→Bengio;Wall-to-Vector/Vault to Vector/what vector/water vector→word2vec;Transformer Learning→Transfer Learning;Transformer Scratch→from scratch;Sleep/Sleepless→Syllabus;slide/SIDEL(指問答平台時)→Slido;Tica/臺卡/Tiger→TAICA;ntu庫/NTU酷→NTU COOL;摩克斯→MOOCs;持交→遲交;RIL→RL;Prong/PROM→prompt;勸/Chain/圈(指訓練時)→train;PFT→PEFT;Numeration→Normalization(Named Entity Normalization);構制→構詞;Passing Tree→Parsing tree;Stop War→Stop word;One-Half Vector→One-hot vector;科技大學(0:38:25)→科技大擂台;國客會→國科會;黃淑駿→黃舒駿;regret→reject;deskregent→desk reject;dispution→distribution;Garantee→guarantee。 - 不確定的 ASR:0:50:37「Bloodbath的一系列的東西」推測是 BERT 家族(對照 Syllabus p.44 W9 BERT and its Family);1:18:49「像中國大陸一樣用針灸的方式」推測是「蒸餾」(distillation);1:18:00「Tide/Breeze/白龍」應是台灣模型 TAIDE、Breeze、Bailong;0:48:33「K3」不確定是哪個模型;1:34:55「Income」推測是 in-context learning。 - 考試名稱不一致:老師口頭說「期末考」,Syllabus p.44–45 寫 Exam/Midterm Exam(week 14, tentative)。是同一場,排在 W14,不在期末考週。 - 評分舊資料:Slido 同學提到 9/7 郵件寫「作業 70%+Term Project 30%」,老師 0:59:29 說那是舊資料,現在是作業 75%+考試 25%,沒有期末專題;p.45 另寫每份作業比重會微調 -3%~+3%。 - 考試算式:W1 老師 1:44:22 說「也許會有一題叫你們算一下 TFIDF」但隨即說好像沒意義;課程頁已寫「不考算式(例如 BM25 公式)」(來自之後的週次)。以課程頁較新的說法為準,筆記不要寫成「會考 TF-IDF 計算」。 - RL 說法不一致:老師 1:42:02 說 RL 設計「會提到啦但是不太會叫你們做」,Slido 助教回覆「會講 PEFT (LoRA), 但 RL 不會講」。理解成:不會有 RL 作業,最多概念帶過。 - 作業時間:老師 1:45:35 說作業「通常是一個月前會公佈」,Slido 助教回覆「作業會有 2~3 個禮拜的時間可以繳交」;兩者說的是不同事(公布時間 vs 繳交期限),寫筆記時不要混在一起。 - 投影片錯字:Syllabus p.38 寫「TD-IDF」,應為 TF-IDF(老師 1:23:49 口頭也說「這打錯了」);p.7「Ger explanations」應為 Get explanations。 - 修課人數:老師口頭說往年 300–500 人,Syllabus p.3 寫班級人數 1200 人(今年上限),兩者不衝突。 - Syllabus p.47(TAICA 運算資源:100/500 運算元帳號)老師說「有一張投影片我沒有放」,只口頭說會當作業 bonus 發給前十名;投影片上的名額與金額以公告為準(p.47 寫 Wait for announcement)。 ## 6. 投影片文字(這章範圍) **這幾頁的公式或內容只在圖裡(文字檔抓不到),寫 Exam-ready 與公式前先用 Read 看這幾張圖:** - Syllabus p.25 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w1\img\brief_Syllabus_p025.png - Syllabus p.28 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w1\img\brief_Syllabus_p028.png - Syllabus p.29 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w1\img\brief_Syllabus_p029.png - Syllabus p.32 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w1\img\brief_Syllabus_p032.png --- Syllabus p.25 --- How about text? 25 [IMAGE-ONLY] --- Syllabus p.26 --- NLP Levels 26 • Prefix / Suffix • Lemmatization / Stemming • Spelling Checking Morphology • Part-of-Speech Tagging • Syntax trees • Dependency Trees Syntax • Named Entity Recognition / Normalization • Relation Extraction • Word Sense Disambiguation Semantics • Co-reference resolution • Topic Segmentation • Summarization Pragmatics --- Syllabus p.27 --- How teach computer to understand this? Q:曾有一項調查發現,很多員工生病的時候不敢請假,因為他們擔心 老闆會不高興,覺得他們沒有責任感。有人認為,員工會這麼想是公司 的責任。一個好的公司應該能照顧員工,而不是讓他們拿健康去換錢。 因此,讓員工有幸福感,應該是未來企業努力的方向。 這篇文章說了什麼內容? 1.老闆應該給員工多一點兒假 2.常關心別人的人更有責任感 3.對公司有意見要勇敢說出來 4.照顧身體比認真工作更重要 27 科技大擂台, 2017 --- Syllabus p.28 --- 語言模型(Language Model) 28 Claude Shannon 1916 – 2001 Andrey Markov 1856 - 1922 [1913] The chance of a letter appearing depends on the letter before it. [1951] Prediction and Entropy of Printed English --- Syllabus p.29 --- Language Model 29 [IMAGE-ONLY] --- Syllabus p.30 --- 30 童年的紙飛機現在終於飛回我 手裡 天青色等煙雨而我在 等妳 怎麼這樣子 雨還沒停妳就撐 傘要走 妳說這一句 很有夏天的感覺 我用幾行字形容妳是我 的誰 為妳翹課的那一天 花落的 那一天 消失的下雨天 --- Syllabus p.31 --- 31 童年的紙飛機現在終於飛回我 手裡 天青色等煙雨而 在 等 怎麼這樣子 雨還沒停妳 就撐 傘要走 說這一句 很有夏天的感覺 用幾行字形容 翹課的那一天 花落 消失的下 天 為 是 的誰 P (b | a) P (c | ab) . . . P (説 | 妳) = 1/4 P (説 | 沒停妳) = 0 --- Syllabus p.32 --- NLP is not NLP before [IMAGE-ONLY] --- Syllabus p.33 --- History of Language Science (AI view) 33 ## 7. 逐字稿(0:34:06 前後各多 1 分鐘,原始行) [00:33:06] 病人醫院的資料就是那十筆 [00:33:09] 我怎麼樣去做一個很厲害的判斷的模型 [00:33:13] 所以你一定要有一個 [00:33:15] 可以產生更多有用的訓練資料方法 [00:33:18] 所以這GAI就在這些需求下就蓬勃發展這樣子 [00:33:23] 這個都比較是影像的應用 [00:33:25] 所以這個 [00:33:27] 大家可以想像一下這個東西 [00:33:30] 你可以想像這是2016年NIPS的一個tutorial講的東西 [00:33:34] 到現在十年了 [00:33:36] 雖然 [00:33:38] 現在大家不太用GAME來做生成 [00:33:41] 有更好的技術在做 [00:33:44] 所以其實你可以想像這件事情他的 [00:33:47] 他不只是幫你做一個很 [00:33:49] 要報告的圖片 [00:33:51] 做一個什麼東西的 [00:33:53] 文章 [00:33:54] 他可以 [00:33:55] 輔助到很多層面甚至他可以自己幫助自己在訓練的更好 [00:34:00] 所以GENERATION這件事情你不要太侷限 [00:34:03] 他的範疇 [00:34:04] 就是這樣子 [00:34:06] 但是在文字上 [00:34:07] 其實 [00:34:08] 這個時間軸可能要再拉更早以前 [00:34:11] 在文字上其實沒有 [00:34:13] 這麼聰明 [00:34:15] 沒有那影像當然是後面 [00:34:17] 但 [00:34:19] 做NLP大概會從這四個 [00:34:21] 四個軸開始 [00:34:23] 大家可以看一下 [00:34:24] 不過我們 [00:34:25] 並沒有講這些這麼細的東西因為現在不需要 [00:34:29] 我們會從最上面的Morphology構制 [00:34:32] 所以你會談到字的 [00:34:34] 前綴後綴這些東西 [00:34:36] 這個當然在中文是沒有 [00:34:39] 但是在任何拉丁語系都有 [00:34:43] 大家如果學過去考過 [00:34:45] 這個GRE英文就要背什麼 [00:34:47] 什麼前綴詞後綴詞這些東西 [00:34:51] 那甚至你要學所謂的stemming [00:34:53] 段字甚至後面的syntax你要學會 [00:34:57] 這個詞性 [00:34:58] 就是你要知道動詞主詞受詞這些東西 [00:35:01] 所以NLP的技術的發展是這樣的 [00:35:04] 每一個 [00:35:05] 每一個階段它都可以是一個非常重要的主題 [00:35:09] 所以 [00:35:09] 像以前 [00:35:10] 做Name Entity Recognition就是一篇文章裡面我如何知道 [00:35:15] 國立清華大學這六個字是在講一個學校的名字 [00:35:21] 如何去判斷一些詞之間是有關係的 [00:35:25] 國立清華大學跟清大 [00:35:27] 是 [00:35:28] 同樣講同樣的東西的 [00:35:30] 這個就是一個Numeration的問題 [00:35:33] 所以你會發現以前在 [00:35:34] 看NLP的問題的思考點就非常細 [00:35:39] 就是有點像你一步一步教會電腦去看這個句子 [00:35:44] 我們人是怎麼理解的我們人 [00:35:46] 學會文章是怎麼理解我現在就一步一步教會電腦去做這些事情 [00:35:52] 那以前的做法是這樣 [00:35:54] 但是到後來就 [00:35:56] 極限了遇到一個瓶頸 [00:35:59] 那 [00:36:00] 我都會舉這個例子就是在2017年應該也是10年前 [00:36:04] 就是國科衛辦了一個比賽 [00:36:07] 講了這件事情 [00:36:08] 你如何讓電腦去做閱讀理解 [00:36:11] 就是給他一個問題 [00:36:13] 然後給他選項 [00:36:14] 電腦能不能回答出這個答案 [00:36:18] 那以前的做法呢就是把選項呢去比對 [00:36:22] 比對文章算相似度這樣子 [00:36:25] 但是你會覺得這個很笨啊就是把它丟到checkgpt問一下 [00:36:29] 然後給他選項他就會回答 [00:36:31] 沒錯 [00:36:31] 但是你有沒有思考 [00:36:33] 這些模型是怎麼 [00:36:34] 怎麼做到這件事情 [00:36:37] 以前我們就只停留在說我要把每一個選項 [00:36:41] 去比對關鍵字 [00:36:43] 或者是把它轉換成一個項鍊 [00:36:46] 用一堆數字來表示這些文字 [00:36:49] 但是一樣在算相似度 [00:36:53] 那這個相似度呢就是在不同的Domain [00:36:55] 可能是你把它轉換成某一個 [00:36:58] Megaspaces的Domain去算相似度 [00:37:01] 你並沒有真正去理解說這個 [00:37:04] 他 [00:37:04] 前因後果是什麼這樣子 [00:37:07] 對 [00:37:08] 那 [00:37:11] 我們還是不要問 [00:37:12] 這個 [00:37:13] 這一題的答案其實不見得會固定 [00:37:16] 就是大家的idea [00:37:18] 覺得 [00:37:19] 這個是什麼 [00:37:20] 這個是從 [00:37:22] 這個國語文能力測驗出來的 [00:37:24] 大概是 [00:37:26] 中年級小學中年級的程度 [00:37:30] 那也會拿來去考外國人說他到底看得懂中文沒有這樣子 [00:37:35] 那當然以一般我們這個native speaker中文的native speaker來講 [00:37:39] 這應該蠻簡單但是 [00:37:41] 你可以回去讀一下 [00:37:42] 好像不是這麼容易 [00:37:46] 這是在2017年辦的比賽 [00:37:48] 然後 [00:37:49] 第一名獎金有1000萬 [00:37:51] 辦了兩屆這樣子 [00:37:53] 那 [00:37:53] 據說 [00:37:55] 第一名獎金都沒有發出去 [00:37:57] 不知道是國客會 [00:37:59] 沒有誠意還是 [00:38:00] 怎麼樣 [00:38:01] 這個好像有錄影 [00:38:03] 就是後來 [00:38:05] 後來那個 [00:38:05] 那個 [00:38:07] 那個 [00:38:08] 審查委員那個裁判 [00:38:10] 說的說大家都 [00:38:13] 都沒有做好 [00:38:14] 意思是這樣 [00:38:15] 就沒有做很好這樣所以第一名從缺這樣子 [00:38:17] anyway [00:38:19] 然後這是問CHATGPT的 [00:38:21] 他會告訴你答案 [00:38:22] 重點是大概可以解釋 [00:38:25] 科技大學當初分兩個階段 [00:38:27] 第一個是回答選擇題 [00:38:29] 第二個是你要告訴我為什麼 [00:38:32] 那你要能夠解釋這件事情是 [00:38:34] 在2017年是 [00:38:35] 大家覺得這根本是 [00:38:37] 聖盃啊根本是做不到的事情 [00:38:40] 但是你現在隨便拿一個 [00:38:42] 拿一個transformer decoder [00:38:44] 餵給他他就會 [00:38:46] 告訴你這些東西雖然不見得這麼好 [00:38:48] OK [00:38:51] 所以 [00:38:51] 你可以想像這個gap是 [00:38:53] 一個 [00:38:55] 非常discrete的jump上去 [00:38:57] 並不是一個很 [00:38:59] 連續的成長 [00:39:02] 那其實這件事情 [00:39:04] 以前啊就是 [00:39:05] 就是 [00:39:05] CHATGPT還沒出來之前 [00:39:08] 就有language model [00:39:11] 只是說老師這個就是我們現在把language model變大而已嘛 [00:39:15] 就是LLM [00:39:16] 沒錯的確他的精神是一樣的 [00:39:19] 是language model [00:39:20] 那以前我們在做NLP的人 [00:39:23] 不見得都會用到language model因為他 [00:39:27] 第一個是 [00:39:27] based on 機率的模型去講 [00:39:29] 而且通常我們訓練的語料也沒有很多 [00:39:32] 所以 [00:39:34] 這件事情 [00:39:35] 大家就 [00:39:36] 覺得他是理論的基礎 [00:39:38] 但是當初跟 [00:39:39] 語言模型有關的這兩位 [00:39:41] 可能在座如果以後要做speech或是做 [00:39:45] 治安的 [00:39:46] 同學你都會遇到這樣子 [00:39:48] 這非常有名的 [00:39:49] 尤其是 [00:39:50] Claude Shannon [00:39:50] 你看這個名字就知道 [00:39:52] 為什麼他有名 [00:39:54] 為了紀念他所以那個模型 [00:39:56] 就用他的名字 [00:39:58] OK [00:39:59] 好他們都有提到跟language model有關的東西 [00:40:02] language model其實 [00:40:04] 大家都知道啦就是 [00:40:06] 這種接龍遊戲 [00:40:08] TrackGP出來之後為什麼大家說要接龍遊戲就是這樣子 [00:40:10] 什麼東西前面是什麼 [00:40:12] 後面出來的機率 [00:40:14] 會不太一樣 [00:40:16] 那你就會去猜最好的 [00:40:17] 雖然這個我用Google當例子 [00:40:19] 不是很好 [00:40:20] 因為Google他其實會拿那個查詢詞的分佈去做統計 [00:40:24] 並不是所有文獻去做統計 [00:40:27] 不然你以為你可以發現不同地方臺南新竹臺中 [00:40:31] 好吃的 [00:40:31] 後面的排序是不太一樣的 [00:40:34] 對 [00:40:35] 所以 [00:40:36] 這個 [00:40:37] 你可以想像大家常常查的東西是什麼 [00:40:41] 所以他有個probability model [00:40:42] 所以大家知道language model [00:40:45] 就是一堆詞的關係 [00:40:47] 我這邊拿 [00:40:50] 周杰倫的 [00:40:51] 周杰倫的歌詞 [00:40:52] 應該沒有版權 [00:40:53] 我再舉個例子這樣子就是 [00:40:55] 他的詞之間的關係 [00:40:58] 那但是做完之後發現 [00:41:00] 例子不是很好不過居然都做了就把他擺出來這樣子 [00:41:04] 因為 [00:41:05] 那個 [00:41:06] 周杰倫的詞都 [00:41:07] 很跳 [00:41:08] 所以那個機率不太好算這樣子 [00:41:11] 那我當然有試過 [00:41:13] 這個用 [00:41:14] 黃淑駿的 [00:41:17] 在座我們聽過黃淑駿這一位 [00:41:19] 歌手 [00:41:20] 聽過舉手一下 [00:41:24] 不入你們年紀這樣子 [00:41:26] 我用黃淑駿來做那黃淑駿其實也不太好做 [00:41:30] 因為他他的詞非常多沒錯但是他的 [00:41:34] 他的 [00:41:35] 他的詞也是很特別就是所以 [00:41:37] Probability也不太好算 [00:41:38] 不過anyway [00:41:40] 語言模型他其實就在算這些N-gram之間的發生的條件機率 [00:41:46] 就是你看到這個詞之後 [00:41:48] 看到這個詞的Probability [00:41:50] 這個條件機率你都會算 [00:41:51] 其實這個就是基礎的Language Model [00:41:54] 只是說你可以想像你如果只知道這件事情 [00:41:58] 你現在就回去想說 [00:42:00] 老師給我一大堆的文獻 [00:42:03] 我自己要算這些機率會發生什麼問題 [00:42:05] 第一個這要量太大 [00:42:08] 第二個可能有些東西沒有發生過啊 [00:42:11] 那機率是不是0 [00:42:12] 機率是0要怎麼算這樣子 [00:42:14] 所以 [00:42:15] 你可以先 [00:42:16] 不用先看答案自己先 [00:42:18] 試著做一下你就知道說原來 [00:42:21] 我想得到這些問題都已經有人解過這樣子 [00:42:24] 所以你就可以成長得很快這樣子 [00:42:29] 好 [00:42:30] 不過anyway現在我們探討NLP不是用這樣的角度去看 [00:42:35] 這張圖 [00:42:36] AI位也很濃沒錯 [00:42:39] 這其實是我自己手工畫了一下之後 [00:42:42] 然後再叫AI幫我把它美化一下 [00:42:45] 就是我們看到的NLP的歷史 [00:42:48] 從AI的角度來看 [00:42:52] 那個站著的同學就不好意思 [00:42:54] 我也很快 [00:42:56] 第一階段就會講完了這樣子 [00:42:58] 你們就可以看怎麼樣 [00:43:00] 就這個歷史其實跟NLP有關的發展 [00:43:03] 其實 [00:43:05] 當然後面很快 [00:43:06] 但你會發現其實前面我們在講這些事情 [00:43:09] 這一位大家應該都知道 [00:43:11] 這個Turing [00:43:13] 他 [00:43:15] 做Turing本訓之後去 [00:43:18] 探討說這個language之間 [00:43:20] 什麼樣language [00:43:22] 不同的type [00:43:22] 當然跟Transcript的 [00:43:24] 這樣的hierarchy有關 [00:43:27] 所以在那個年代在 [00:43:29] 這個19501960年代 [00:43:31] 其實就希望能夠那時候 [00:43:34] 其實電腦還沒出來喔 [00:43:35] 你可以想像 [00:43:36] Turing那時候是沒有computer的 [00:43:39] 大家就有這樣的想法 [00:43:40] 需要讓 [00:43:43] 電腦用 [00:43:44] 運算的方式去處理這種 [00:43:47] 這種sequential的東西 [00:43:48] 然後去理解裡面的一些pattern [00:43:52] 所以其實 [00:43:54] 在Chomsky那個年代就有一個chipboard [00:43:57] 就有一個chipboard出來這樣子 [00:43:59] 但是真正跟我們比較有關的 [00:44:01] 你可以想像說 [00:44:03] 在網路泡沫化起來的時候 [00:44:05] 那時候有很多的網路泡沫化起來的時候 [00:44:06] 那時候有很多的網路泡沫化起來的時候 [00:44:07] 在2000年時候有搜尋引擎 [00:44:09] 但是那時候大家做的是什麼 [00:44:11] TFIDF [00:44:13] 這個萬用的非常厲害的Baseline的做法 [00:44:17] 然後到後來大家覺得 [00:44:19] 這個Benji有說 [00:44:20] 我們可以用 [00:44:21] 模型的角度 [00:44:22] 用NN的角度來看這件事情 [00:44:25] 來做language model [00:44:28] 我們不是在算剛才的機率 [00:44:29] 我們用Chain的方式來做 [00:44:31] 從這邊 [00:44:32] 就整個蓬勃發展一直到 [00:44:34] 最明顯大家可能現在用 [00:44:36] 用NLP的人會想到說 [00:44:39] 我有一個叫Wall-to-Vector的東西 [00:44:41] 大概在 [00:44:43] 14年前2013年出來的東西 [00:44:46] 這個階段就整個起來了 [00:44:50] 整個 [00:44:51] 重要性跟他的 [00:44:54] 一大堆人就進來做這件事 [00:44:55] 因為發現有Wall-to-Vector [00:44:57] 我可以知道說 [00:44:59] 狗跟貓其實是比較像的 [00:45:01] 狗跟卡車其實比較不像的 [00:45:03] 利用這種演算法的東西之後 [00:45:05] 我就可以 [00:45:06] 做非常多事情 [00:45:07] 有很多應用就往上跳一階 [00:45:10] 但是到真正改變這個歷史的是在2018年 [00:45:15] 就是Bert跟GPT [00:45:17] 那個年 [00:45:17] 那個 [00:45:18] 年份同時出來 [00:45:20] 但是當時GPT出來之後大家 [00:45:22] 不看好他 [00:45:24] 因為他就是一個Decoder的模型 [00:45:26] 但是Bert呢是Basic on [00:45:28] 這兩個都是Basic on Transformer [00:45:29] 但是Bert是一個Encoder模型 [00:45:32] 所以大家覺得Bert很好用啊 [00:45:35] 他可以取代以前的Wall-to-Vector [00:45:36] 做的很好 [00:45:38] 所以你可以發現2018年之後 [00:45:40] 就一大堆Bert-based的應用 [00:45:42] 就是全部都用Bert [00:45:44] 所以 [00:45:45] 這個 [00:45:46] 2018年之後就是整個的 [00:45:48] 整個的Annual-Pair應用就大起飛 [00:45:51] 因為發現這個 [00:45:53] 以前笨笨的Chadbot [00:45:55] 都可以變得非常聰明 [00:45:57] 但是呢 [00:45:59] 這邊要秀的是GPT他也是默默的發展 [00:46:03] 這樣講好像他是一個弱者 [00:46:05] 其實他不是 [00:46:05] 只是說他就 [00:46:06] 朝著他的Decoder路線繼續做 [00:46:09] 那 [00:46:11] GPT-2出來之後大家也覺得 [00:46:13] 好像比較厲害一點 [00:46:15] 因為他GPT-1 [00:46:16] 第一代實在不怎麼厲害 [00:46:18] 那2出來之後好像 [00:46:20] 值得做下去了 [00:46:21] 一直到他3 [00:46:23] 他3出來之後是 [00:46:25] 非常厲害一個轟動的 [00:46:27] 的產品 [00:46:28] 那個Paper列出來之後 [00:46:30] 大家覺得原來可以 [00:46:32] 不是他的模型 [00:46:33] 他的模型的確很厲害但是大家驚訝的是 [00:46:35] 他是 [00:46:36] OpenAI花了這麼多錢 [00:46:38] 花了這麼多錢來做這樣子 [00:46:41] 他們甚至有一個 [00:46:42] 那個paper如果大家有興趣去download那個paper [00:46:46] 裡面那個作者寫一句話說 [00:46:48] 他們知道這個實驗的過程 [00:46:51] 有一個DSA用錯了 [00:46:53] 那個使用方式錯誤這樣子 [00:46:56] 但是呢 [00:46:57] 實驗已經跑下去了 [00:46:58] 如果要重新跑又要花 [00:47:01] 多少錢他們就不跑了這樣子 [00:47:03] 所以 [00:47:04] 你就可以知道他們花了 [00:47:05] 成本有多少這樣子 [00:47:07] 那個一次性 [00:47:08] 要做的 [00:47:09] 成本有多少 [00:47:11] 那 [00:47:12] 其實這個年代大家可能可以記一下就是這個年代大家也是確GPT快出來的時候 [00:47:18] 那 [00:47:19] GB3出來之後大家就突然覺得 [00:47:21] 讓電腦去 [00:47:23] 寫人類的文章是可行的這件事情 [00:47:27] 大家突然 [00:47:28] 覺得 [00:47:29] 可以做 [00:47:29] 以前都不行以前就覺得這個一看就是AI寫電腦寫 [00:47:33] 那GB3之後就 [00:47:35] 突然一袋一堆 [00:47:37] 有一堆公司去專門包裝GPT3 [00:47:40] 然後去做一些 [00:47:41] 這個 [00:47:42] 文章的service這樣子 [00:47:45] 那當然後面就所謂的InstructGPT跟 [00:47:49] 它後面的 [00:47:51] 包裝後的ChatGPT [00:47:53] 所以這個2022年的時候ChatGB出來之後後面就就是大家所熟知的故事 [00:47:59] 就是 [00:47:59] 大概發展是這樣 [00:48:01] 當然你會覺得說這個 [00:48:02] 後面這個四五年 [00:48:04] 發展的很快 [00:48:05] 前面怎麼那麼慢 [00:48:07] 前面 [00:48:08] 都很混嗎 [00:48:08] 沒有其實 [00:48:10] 當然跟硬體的成長有關係 [00:48:12] 當然也跟所有 [00:48:13] 資料量變多了 [00:48:15] 所有運算能力變強也有關係這樣子 [00:48:18] 但是以前 [00:48:18] 這些技術發展其實也是很多 [00:48:21] 這邊有很多的模型大家可以 [00:48:23] 可以看一下如果你都可以知道 [00:48:26] 每一個icon是什麼樣模型那表示你還蠻熟的這樣子 [00:48:30] 我還 [00:48:31] 放一個新的這個 [00:48:33] K3的東西 [00:48:35] 這個AI位很濃的圖 [00:48:39] 我們就看一看就好了 [00:48:40] 從以前到現在這樣子 [00:48:42] 這個比較像給小朋友看的 [00:48:45] 那 [00:48:49] 這個我等一下再回過頭 [00:48:54] 我先秀一下我們這堂課 [00:48:56] 這堂課會教的東西 [00:48:58] 我們會有助教課 [00:49:01] 在助教課大概就是 [00:49:03] maybe是 [00:49:04] 三到六個小時 [00:49:06] 其實也是教大家 [00:49:08] 呃 [00:49:08] 怎麼用Python做NLP的東西 [00:49:12] 或是 [00:49:13] 像後面RAG的東西會教一些 [00:49:15] Hugging face上或是 [00:49:18] 這個怎麼呼叫模型的部分這樣子 [00:49:21] 或是教你用這些 [00:49:23] RAG的一些 [00:49:25] 一些framework這樣子 [00:49:27] 那基本上我們會從 [00:49:28] 基礎的NLP開始講起 [00:49:30] 然後從Square model [00:49:34] 從基本上的類成金網路Square model從 [00:49:38] RNN LSTM [00:49:40] 雖然你們現在也不太用這些模型 [00:49:41] 但是我們會從那邊開始講起 [00:49:43] 然後一直到 [00:49:44] Transformer然後到Transformer現在的LM [00:49:47] 大家都會介紹這樣子 [00:49:48] 那 [00:49:49] 這學期我是希望能夠增加一些reasoning的部分 ## 8. 寫作規則 (這是 `_筆記SOP.md` 第 3.1、4、5、6 節的濃縮版。兩者衝突時以 SOP 為準。) 讀者:碩士生,兩門課期末是英文考試。要只看筆記就能學會,講得比老師好懂。畫面要簡潔。 **概念優先(2026-09-26 主理人)**:主理人只想懂概念,不想補數學、不想看程式碼和座標圖。兩門課的考試也都是問答題、不考算式(AI W1 1:16:52;NLP W3 1:47:41、2:48:36)。所以: - 每段預設看得到的只有:白話摘要(2–4 句)+**一句生活比喻**(例:模擬退火像投資理財,年輕時敢冒險、越老越保守)+「考試可能怎麼問」一句。 - 數學推導、公式、手算、程式碼、座標圖,全部收進標題寫「(進階,可跳過)」的摺疊,例如「它到底怎麼運作?(進階,可跳過)」。每段最多一個進階摺疊,不要寫長篇計算。 - 演算法要能「用文字說出步驟」(考試可能要你描述),這一點放在預設看得到的地方,不用數字。 - **重心比例**:白話理論與概念模式(它在解決什麼問題、核心想法、跟別的方法差在哪、優缺點、生活比喻)占主要篇幅;數學與程式細節只用一兩句帶過,細節收進進階摺疊。 **圖文並茂(2026-09-26 主理人:不要只有文字)**: - 每章至少 2–3 個圖,放在**預設看得到**的地方,每個圖前後各用一兩句白話說明「這張圖在看什麼」。 - 流程、步驟、因果、比較 → 用 mermaid 流程圖(```mermaid,flowchart LR 或 TD;節點文字用中文、加雙引號;一張圖不超過 10 個節點)。 - 投影片上的示意圖、架構圖 → 用 [[IMG: …]] 放投影片圖。 - 仍守「每個 ## 段落最多一種視覺元素」。 ### 輸出兩個檔 1. `chNN.md`(Notion 寫法,不含頁面標題),結構固定: - 第一行:章節包第 1 節那行,原樣照抄。 - 第二行起(有數學段才寫):**跳過提示**,每段一行,讓主理人看影片時知道從哪跳到哪。用章節包第 3b 節的候選當提示,對照第 7 節逐字稿確認(只標老師連續講公式、推導、矩陣、微積分、機率計算、程式細節超過約 1 分鐘的段落;概念講解和比喻不算): `跳過提示:(1:31:02–1:35:40) 老師在推導梯度公式,聽不懂可以直接跳到 [1:35:40](YouTube 連結),接著講「步長 α 怎麼選」。` - `## 重點`:三點中文,每點一到兩句。 - `## Exam-ready`:3–10 行英文,**從章節包的投影片文字逐字抄**,每行 `- **Term**: "原句"(Ch3 p.14)`。老師有明確證據才在行尾加 `【老師強調】(h:mm:ss)`。 **每一行下面一定要有一行縮排的中文解釋**(主理人英文不好,看不懂的英文等於沒用): ``` - **Hill climbing**: "It keeps track of one current state and on each iteration moves to the neighboring state with highest value."(Ch4 p.5) - 中文:爬山法只記住「現在這一個狀態」,每一輪都移到分數最高的鄰居。白話:一直往比較高的地方走一步。 ``` 中文要先把句子意思講清楚,再補一句白話;最後用「英文(中文)」列出這句裡 1–3 個難字,例:sparse(稀疏)、distinct terms(不重複的字)。 **一行只放一句投影片原句**。同一頁有多句要考就拆成多行,每行各接一行中文;不要用分號串三句以上,不要把計算量 O(...) 塞進去。 - 章節包第 2 節的每一段:`## [h:mm:ss](連結) 標題`(照抄),下面 2–4 句白話摘要,其餘全部收進摺疊: ```
問句(例:用生活例子講,BFS 在做什麼?) 內容
``` 摺疊種類(需要才放):用生活例子講?/它到底怎麼運作?/要先懂什麼?(老師假設你會的數學或概念,短版教學)/老師原話是什麼?(「原話」(h:mm:ss),只放重要的,最多 5 句)。 - 「它到底怎麼運作?」要用一組小數字把這段的演算法**真的跑 1–3 步**(例:算出梯度、更新一次、比較兩個 α),不是只示範定義的加減乘除。全章盡量沿用同一組數字,讓前一段的答案能在下一段被驗證。 - 每段正文要回答讀者最可能卡住的一個「為什麼」。投影片公式方向跟題目相反、或投影片說「解不出來」時,用一兩句講出原因,自己補的標(我補充)。 - 投影片句子停在公式前(公式在圖裡)時:Exam-ready 在粗體詞條上補公式、引號內保持原句;正文寫出同一條式子。公式圖看章節包第 6 節列出的 PNG。 - `## Self-check`:2–4 題英文考題,答案收摺疊。**至少一題考老師強調的內容**;只出 explain/why/compare 這類問答題,**不出要代數字計算的題目**(考試不考算式);不出「老師和投影片哪裡不同」這類不會考的題目。每題格式: ```
Q1. English question?(中文:中文題目) **Answer**: English answer. 中文:把答案完整講一遍(不是只翻一句),讓看不懂英文的人也知道要怎麼答。
``` - **最後一行**:章節包第 1b 節那行(下一章連結),原樣照抄。讓讀完的人直接點下一章。 - 不要把章節包或這份規則裡的指示句寫進筆記(例如「寫筆記時照投影片寫」「已改正 ASR 錯字」)。 - 長度:全文不超過 16,000 字元(跟 check_note.py 同一個數字)。**不要為了壓字數反覆刪改**(實測一章最多花 12 輪在刪字);超過時只刪進階摺疊裡的第二組算例,比喻、比較表、圖說、「老師說不用背」的提醒都不刪。 - 預設看得到的正文不放計算量 O(...)、代號對照(例如 SMART 字母)、課本出處考據,一律移進進階摺疊。 2. `chNN.concepts.json`:JSON 陣列,4–12 個考試可能問的術語,每個物件: `name`(英文)、`zh`、`type`(概念/演算法/公式/人物事件/前置知識/行政)、`signal`("老師說會考"/"老師強調"/"核心(我判斷)"/"")、`evidence`(有 signal 前兩種時必填:原句+時間)、`definition_en`(投影片原句;沒有就註明 (textbook)/(lecture)/(my wording))、`plain`(一句中文)、`a4`(≤150 字元英文,可夾極短中文;期末拼貼用的小方塊)、`time`、`slides`、`prereq`(英文名陣列)。 ### 風格鐵律 - 不用 emoji 或裝飾符號(✓✗★⚠ 都不要;→ 可以)。不用 callout。不用 `$`。時間不要用 code 樣式。 - 每個 `##` 段落最多一種視覺元素:一張圖、或一個表格、或一個 mermaid。 - 摺疊標題是問句,前面不加符號。 - 圖片最多 3 張,只放文字取代不了的圖。放法:單獨一行 `[[IMG: | 中文圖說]]`,PNG 用 `slides_to_png.py <圖片資料夾> <頁> --dpi=110` 產生。 - 考試訊號只在老師明確說時標。老師只說「不用背」「不講」就寫「注意:……」。 - 老師口誤或跟投影片不同:照投影片寫,加「注意:老師口頭說的是……」。 - 引用老師的話時,ASR 錯字改成正確的字。 ### 沒有投影片時 不要憑記憶逐字重現課本段落或數值表。英文定義用自己的話寫、句尾標 (my wording);Exam-ready 每行標「(自擬,投影片待補)」。例子只用老師講的。 ### 寫完之後(只做一次) 跑檢查: `C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe C:\Users\user\.claude\scripts\check_note.py --transcript <逐字稿> --slides <投影片 txt …> --start <起> --end <訖> --vid <影片 ID>` - STYLE/VISUAL/TIME/FORMAT:全部改掉。 - QUOTE:確認是不是你改正了 ASR 錯字(是就保留),不是就改成原文或拿掉引號。 - ENGLISH:確認是不是投影片斷行造成的(是就保留),不是就改成投影片原句。 **省額度守則**:章節包裡已經有你需要的全部資料。不要再去讀整份逐字稿、整份投影片、segments.json 或手冊。一次寫好整個檔(Write 一次),檢查後集中修改。