# 章節包:自然語言處理(NLP)W3(9/24)第 07 章「語言模型定義與困惑度」
影片 2:33:51–2:51:05,YouTube ID g0QE6O17BWE。Notion 章節頁 https://app.notion.com/p/3e6fc631b03081b4b99acb876fd0bb2d(頁 ID 3e6fc631b03081b4b99acb876fd0bb2d),頁面標題「07 語言模型定義與困惑度(2:33–2:51)」。
## 1. 第一行(直接照抄,不要改)
[自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W3(9/24)](https://app.notion.com/p/3e6fc631b03081ff9776f36fab3e6e50) › 07|影片 [2:33:51–2:51:05](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9231s)|投影片 W2_Word embeddings and Language Modeling (RNN)_v2 p.15–17|上一章 [06 N-gram 語言模型(2:12–2:33)](https://app.notion.com/p/3e6fc631b03081588140d7f6a95e5bb4)|下一章 無
## 1b. 最後一行(直接照抄,放在 Self-check 後面,當全頁最後一行)
這週讀完了。回到週頁:[W3(9/24)](https://app.notion.com/p/3e6fc631b03081ff9776f36fab3e6e50)
## 2. 各段標題(照順序;每段一個 ## 標題,直接照抄連結)
- `## [2:33:51](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9231s) 語言模型的正式定義` 老師講什麼:教科書的定義:能替一串字指定機率的模型,叫做語言模型。以前做 NLP 的人用語言模型,會被認為是偏理論的做法。
- `## [2:35:12](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9312s) 不同族群有不同的語言模型` 老師講什麼:中風或有語言障礙的病人,用語模式跟一般人不同,用一般語料訓練的模型就能分辨出來。把文字一對一換成其他符號,算出來的 perplexity 還是一樣,所以這種密碼很容易被破解。
- `## [2:36:42](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9402s) 統計太難,改成用學的` 老師講什麼:理想上要看前面所有的字(n-gram),但資料不夠、算不出來,所以改用模型從有限資料裡學(neural LM)。老師舉大公司面試用 AI 統計應徵者用字、預測表現的例子,也提到訓練資料本身就有偏差。
- `## [2:39:39](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9579s) 困惑度:模型有多困惑` 老師講什麼:老師說這個非常重要。perplexity 衡量模型看到一句話有多意外:機率越低,困惑度越高。小朋友說「吃飯飯」,對用成人語料訓練的模型來說就很困惑。
- `## [2:41:25](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9685s) 用困惑度檢查微調與幻覺` 老師講什麼:困惑度是評估大語言模型的重要工具。fine-tune 以後困惑度如果大增,代表把模型原本會的東西弄壞了。模型沒把握、可能產生幻覺時,困惑度也會升高。
- `## [2:44:20](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9860s) 困惑度的意義:不確定性與壓縮` 老師講什麼:困惑度代表不確定性,也可以看成壓縮效率:用幾 billion 個參數壓縮全人類的語料,壓得好,困惑度就低。AI 偵測工具就是在算 perplexity,但改一個字就能讓分數掉下來。
- `## [2:46:33](https://www.youtube.com/watch?v=g0QE6O17BWE&t=9993s) 課後問答:先備知識、作業時程、考試` 老師講什麼:沒學過機器學習、深度學習的人寫作業會比較辛苦,但追得上。Colab 要跑多久,會請助教提供經驗。截止日是公布後三週。考試著重作業和上課內容,大約在第 14 週。Gensim 還有沒有在維護,會再確認。
## 3. 老師強調/會考/不考的地方(原句已驗證;寫進筆記時 ASR 錯字要改正)
- (2:39:39) [強調] 「那我們今天就看到這一個這個這個其實非常重要,就是這個字本身就是困惑的意識」 → 困惑度(perplexity)非常重要
- (2:41:25) [強調] 「這perplexity其實是用來度量很多由於是現在大語言模型的一個很重要的工具」 → perplexity 是現在評估大語言模型(包括 fine-tune 好壞)的重要工具
- (2:48:36) [會考] 「考試會著重作業跟上課內容」 → 考試範圍:作業加上課內容
- (2:48:53) [會考] 「對的確可能會有很大部分是從作業你做的過程跟你的insight跟有一些一些你一定會做過就瞭解的細節去著手」 → 考試很大部分從作業的過程、insight,以及做過才會懂的細節出題
- (2:49:07) [不考] 「不太會去考,只能舉例不太會去考叫你算BM25這樣子」 → 不太會考計算題(例如算 BM25)
- (2:49:14) [會考] 「對我們會有一個考試是會排在應該是14周」 → 考試大約在第 14 週(課綱寫 mid-term,但實際偏期末,老師兩週內確認)
## 4. 這章摘要與重要度
語言模型的正式定義、為什麼從統計改成用神經網路學,以及困惑度(perplexity)的意義和用途;課後問答補充作業時程與考試時間。(核心)
## 5. 整堂課的提醒(ASR 錯字、老師口誤、投影片缺公式等;只用跟這章有關的)
- 0:00:00 那句「有任何疑問或感想,歡迎留言…點讚、訂閱、分享」是語音辨識幻覺,不是老師講的;0:01:21–0:02:30 是設定畫面,0:02:31 才開始上課。
- 0:42:31–0:43:48 疑似麥克風干擾(老師先問「有帶電池嗎」,接著說「為什麼幹擾」),逐字稿變成重複的「這個是電」加亂碼,約 1 分多鐘的內容遺失,大約是 brief p.74 的前半段。
- 作業一說明(1:46:39–2:02:06)用的是 NLP_HW1_word_emb.pdf,不在兩份投影片文字檔裡。本機有原檔(自然語言處理\NTHU_Natural_Language_Processing\2026\Assignments\Assignment1\),也有整理好的 自然語言處理\HW1\HW1_Word_Analogy_規定.md。
- W2 投影片這堂實際講到 p.17(困惑度),不只「開頭幾頁」;W2 p.4 跟 brief p.66(Markov/Shannon)是同一張,老師 2:16:45 自己說兩份投影片有重疊。
- YouTube 影片標題寫「Fall 2025」,實際是 2026-09-24 這堂(以網址為準)。
- brief p.68、p.69、p.89 是純圖頁(只有標題或 [IMAGE-ONLY]),0:26:48–0:36:38 那幾張類比圖各在 p.68 還是 p.69,從文字檔確認不了,寫章節時要轉成 PNG 看圖。
- 0:42:31–0:43:48 逐字稿是亂碼(重複「這個是電」加日文、俄文字元),約 1 分多鐘內容遺失,大概是老師在講 p.74「有出現不見得是相關」的前半;需要的話回去看影片。
- 作業一說明 PDF(NLP_HW1_word_emb.pdf)沒有 _text 文字版,第 5 章的 slides 欄無法標頁碼;需要的話先跑 slides_to_text.py。
- SOP 第 1 節寫 NLP-W3 用 W2 投影片的「開頭幾頁」,實際講到 W2 p.17(困惑度),建議改成 W2 p.1–17。
- 老師兩次說詞向量預設「700 多維」(1:04:34、1:22:11),可能跟 BERT 的 768 維混在一起;就我所知,Gensim word2vec 預設 vector_size 是 100,Google News 預訓練向量是 300 維。寫筆記前要再查證。
- 1:28:38 老師先說 GloVe 是 2013 年、又改口說 2014;投影片 p.91 寫 2014,考試照投影片寫。1:32:25 老師說「一般認為 GloVe 比 word2vec 好」,但投影片 p.93 寫「It depends」,Exam-ready 照投影片寫。
- 逐字稿裡 property/priority/publicity 大多是 probability(例:2:34:56「一串字的priority」),但 0:23:03「在算publicity的時候」比較像 perplexity,要看上下文,不能一律取代。
- 新發現的語音辨識錯字(建議加進 fix_transcript.py):WATTO VECTOR/what-to-vector/Wall-to-back/VoltoVector/waterbath/photo vector=word2vec;GrowVac/grow back=GloVe;Fosting=WordSim;Categor Label=character level;angry/engram=n-gram;CBUS=syllabus;基礎學習跟深入學習=機器學習跟深度學習;GPT ISO=GPTZero;turn in=Turnitin;Tica=TAICA;biblicoding=vibe coding;Contactual=contextual;Cross Entry=cross entropy;Wall-Embedded=word embedding;ntu庫=NTU COOL;Chanon=Shannon;Markup=Markov;annual p=NLP;Geno=genome;多利養=Dolly 羊;絞交=繳交;超習=抄襲;1:06:15「到Fur以後」可能是 BERT(不確定)。
## 6. 投影片文字(這章範圍)
**這幾頁的公式或內容只在圖裡(文字檔抓不到),寫 Exam-ready 與公式前先用 Read 看這幾張圖:**
- W2_Word p.15 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\brief_W2_Word_p015.png
- W2_Word p.16 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\brief_W2_Word_p016.png
- W2_Word p.17 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w3\img\brief_W2_Word_p017.png
--- W2_Word p.15 ---
Language Models
Language Models (LMs) :
Models that assign probabilities to sequences of words are called LMs.
Including:
N-Gram Language Models:
A purely statistical model of language.
Neural Language Models:
Use neural networks to predict the likelihood of sequences.
15
Word Embeddings and Language Modeling
--- W2_Word p.16 ---
LM evaluation: Perplexity (困惑度)
Perplexity (PPL) is a quantitative criterion used to evaluate the
capacities/effectiveness of language modeling models.
•
Given the sequence of words
and an n-gram model. The PPL of
the model was computed by:
The lower the value of perplexity, the better the language modeling capability of the
model.
16
Word Embeddings and Language Modeling
1~∞, 1~|𝑉|
--- W2_Word p.17 ---
Perplexity meaning
A Measure of Uncertainty: Perplexity quantifies the level of uncertainty or unpredictability that
a model experiences when making predictions.
An Average Branching Factor: Perplexity can be viewed as an "average branching factor" of
possible choices at each step in the sequence.
Quantification of Model Performance: In language modeling, perplexity reflects how well the
model understands the rules and structure of the language.
◦A lower perplexity indicates better language comprehension and prediction ability, signifying the
model's efficiency in capturing language patterns.
Compression Efficiency Indicator: Perplexity can also be seen as a measure of how well the
model compresses the test data.
◦Lower perplexity means that the model predicts with higher probabilities, reducing the uncertainty and
effectively compressing the information.
17
Can we use perplexity to evaluate whether text is generated by AI or not?
## 7. 逐字稿(2:33:51 前後各多 1 分鐘,原始行)
[02:32:51] 你這個東西其實它的
[02:32:53] 它出現次數就越少
[02:32:55] 因為那麼多字
[02:32:56] 那就可能只出現一兩次的時候
[02:32:59] 你這個
[02:33:00] 的
[02:33:01] 影響到前面的東西
[02:33:02] 要
[02:33:03] 看要怎麼去調整這樣
[02:33:05] 但不同的
[02:33:06] 文獻的分佈其實你會做不同的調整
[02:33:09] 這是n grand的model
[02:33:11] 做這樣的事情
[02:33:12] 但是如果簡化一點
[02:33:14] 不要這麼麻煩
[02:33:15] 這個實在太難搞
[02:33:17] 那我們就做bigrand的model
[02:33:19] bigrand就是我現在這個字呢
[02:33:21] 只會跟前一個字有關
[02:33:23] 所以我在算probability的時候
[02:33:25] 只看前一個字是什麼
[02:33:26] 前一個字是什麼
[02:33:28] 那你說這個
[02:33:29] 這個應該
[02:33:31] 不work
[02:33:31] 但是以前就是這樣
[02:33:33] 這樣就很厲害這樣子
[02:33:35] 更不用想去做這些事情
[02:33:37] 不是它不好算
[02:33:39] 因為你
[02:33:39] 根本沒辦法統計這些
[02:33:41] 這個東西其實是
[02:33:43] 很有bias的probability
[02:33:44] 因為你的corpus很少這樣子
[02:33:50] 好
[02:33:51] 那這邊就比較一個formal的定義
[02:33:53] 就是雖然大家都提到有大語的模型
[02:33:56] 那language model在教科書上
[02:33:59] 這是一個很古老的turn
[02:34:01] 其實我們以前
[02:34:02] 尤其是如果你是
[02:34:05] 不是你是
[02:34:06] 老師是從這個
[02:34:08] 做搜尋語行開始進入NLP的這個年代
[02:34:10] 其實也算是半入期
[02:34:12] 因為以前做NLP的人其實
[02:34:14] 跟做搜尋的NLP的人是
[02:34:17] 想法手法是不太一樣
[02:34:19] 那不見得會用language model
[02:34:22] 就是以前
[02:34:24] 如果NLP是用language model來做的時候就覺得
[02:34:27] 腦袋就浮現幾個字
[02:34:29] 它是做比較理論的這樣子
[02:34:31] 因為就要算一堆的機率
[02:34:33] 就要在那邊計率
[02:34:34] 玩來玩去這樣子
[02:34:36] 當然paper是比較好寫的
[02:34:39] 教科書上的講法就是這樣子的
[02:34:42] 就是
[02:34:43] 我有一個model
[02:34:45] 就是一個架構
[02:34:46] 一個可
[02:34:48] 重現
[02:34:48] 可度量
[02:34:50] 可計算的方式
[02:34:52] 他可以去assign這個字的
[02:34:56] 這個一串字的priority
[02:34:59] 叫做language model
[02:35:01] 那這件事情當然你覺得我講這句話
[02:35:03] 只要是人聽得懂的話
[02:35:06] 他的機率就會很高
[02:35:07] 因為就是符合人類的語言的priority
[02:35:12] 但是我如果現在
[02:35:13] 可能有些人
[02:35:15] 你會發現
[02:35:16] 有些人在做
[02:35:18] 做那個病人
[02:35:19] 就是那種
[02:35:20] 比如說是
[02:35:21] 語言障礙的
[02:35:23] 或是那種生病的中風
[02:35:26] 過後的那種語言
[02:35:27] 他其實他的pattern
[02:35:29] 會跟
[02:35:30] 一般的
[02:35:32] 人類的語言trade model不太一樣
[02:35:34] 因為他可能會中斷
[02:35:36] 或者是有一些語助詞的東西
[02:35:39] 會出現
[02:35:40] 或是他的片語的
[02:35:42] 他腦部受損之後
[02:35:44] 他有一些的concept會不見
[02:35:46] 所以他用的詞彙會變少
[02:35:48] 那那個東西兜出來的model
[02:35:50] 就會跟你正常人的model又不一樣
[02:35:53] 所以
[02:35:54] 其實你可以想像
[02:35:56] 反正我就是based on原來的語料庫
[02:35:58] 做出來這樣的一個分佈
[02:36:02] 所以他就可以幫助
[02:36:03] 我去assign說
[02:36:05] 這句話到底是不是人說的這樣子
[02:36:08] 是不是符合我們現在想看的language
[02:36:11] 所以
[02:36:12] 你可以想像當你把中文
[02:36:15] 或是英文
[02:36:17] 就像我剛才講的h
[02:36:19] 把h成一些symbol不一樣的symbol
[02:36:22] 雖然你看不懂
[02:36:24] 但是因為是一對一的mapping
[02:36:26] 你在算這perplexity的時候
[02:36:28] 其實他也跟人類的languagemodel是一樣的
[02:36:31] 這是你看不懂
[02:36:32] 這是最簡單的編碼
[02:36:34] 密碼就是這樣做的
[02:36:36] 但是一對一啊所以很容易被破解就是這樣
[02:36:42] 標準上來講我們應該要做到angry
[02:36:46] 就像剛才這個
[02:36:49] 因為這個字會跟前面的字都有關係這樣子
[02:36:53] 所以這個就很難算
[02:36:55] 你一定要有語料
[02:36:56] 然後你要大量的
[02:36:58] 這個
[02:37:00] 統計上的計算這樣子
[02:37:02] 但是後來發現這個實在太難
[02:37:04] 不好算也沒那麼多資料這樣子
[02:37:07] 所以就
[02:37:07] 好吧
[02:37:08] 那我們就不要統計就學
[02:37:11] 就是
[02:37:12] 在你有限的資料裡面
[02:37:14] 去學會一些東西
[02:37:16] 那這個東西你會覺得
[02:37:18] 這個都做不好了
[02:37:20] 他能學得起來嗎
[02:37:22] 這個就跟你們在做機器學習一樣
[02:37:24] 就是
[02:37:25] 你怎麼可能用那幾筆資料
[02:37:28] 比如說班上同學
[02:37:30] 學習表現
[02:37:32] 我就拿這50筆資料
[02:37:34] 我就可以Chain一個model
[02:37:36] 這個model
[02:37:39] 就可以預測以後班上同學的表現
[02:37:42] 就是如果這個model非常準
[02:37:45] 就可以預測說
[02:37:47] 上完三個禮拜我就可以知道說
[02:37:49] 這位同學你應該會被Done掉這樣子
[02:37:52] 現在其實都有這樣的東西
[02:37:54] 尤其是做HR
[02:37:56] 其實
[02:37:57] 大家可能都不知道現在
[02:37:59] 現在的
[02:38:01] 大公司在面試的時候
[02:38:02] 其實都有AI在輔助
[02:38:05] 都有AI在輔助
[02:38:07] 不要不是說AI會問你問題
[02:38:09] 然後你要答
[02:38:10] 他們會統計
[02:38:12] 你回答的字
[02:38:14] 的分佈
[02:38:16] 然後他們會
[02:38:17] 以前有一個Database
[02:38:19] 會知道說
[02:38:20] 以後表現好的人
[02:38:22] 當初在面試的時候都會提到什麼樣的關鍵字
[02:38:27] 當然不是
[02:38:28] 不是嘴炮那種關鍵字
[02:38:29] 而是他可能會
[02:38:31] 講到一些技術啊
[02:38:32] 講到一些
[02:38:33] 非常深入的關鍵字
[02:38:35] 就是同樣的問題底下以前那些
[02:38:38] 進公司表現很好的這些回答的語料
[02:38:42] 他們都統計
[02:38:43] 所以大家可以看看你這次回答
[02:38:45] 雖然聽起來好像還回答不錯
[02:38:47] 但是發現
[02:38:49] 你的
[02:38:50] 用語
[02:38:51] 跟以前那些
[02:38:53] 沒進來的
[02:38:53] 或是進來之後後來被fire的
[02:38:56] 都很像
[02:38:57] 那你可能就不會被考慮這樣子
[02:38:59] 所以這個東西其實現在都有在使用
[02:39:02] 所以
[02:39:04] 對所以
[02:39:05] 好好回答
[02:39:08] 只是說你當然會覺得他們有BIOS
[02:39:11] 因為以前的
[02:39:12] 進去表現
[02:39:13] 很好的
[02:39:14] 講這些話並不代表沒有
[02:39:16] 沒有講的
[02:39:17] 人就表現不好
[02:39:18] 因為training data本來就有
[02:39:21] 這種
[02:39:22] 不足的問題
[02:39:24] 但是我們還是希望說我們有一個模型
[02:39:27] 只要為了資料夠多一點的時候
[02:39:29] 他可以學會這件事情
[02:39:31] 因為
[02:39:32] 這也是
[02:39:34] 必經之路嘛因為沒辦法做這件事只好做這樣
[02:39:38] 好
[02:39:39] 那我們今天就看到這一個這個
[02:39:41] 這個其實非常重要就是
[02:39:43] 這個字本身就是困惑的意識
[02:39:46] 那
[02:39:46] 他
[02:39:47] 他實際計算什麼
[02:39:49] 其實就是我們剛才在算這些東西啊
[02:39:52] 你會發現
[02:39:53] 如果
[02:39:54] 你把
[02:39:55] 成人的講話的pattern
[02:39:58] 訓練出這樣的一個分佈
[02:40:00] 然後呢你把一個小朋友講話的pattern
[02:40:04] 去算這個機率
[02:40:05] 他機率就很低
[02:40:06] 因為成人不會這樣講
[02:40:09] 就是
[02:40:12] 第一個小朋友可能很喜歡講那個連字詞
[02:40:16] 同樣的這個字
[02:40:17] 吃飯飯
[02:40:19] 就是類似就會講
[02:40:20] 但是你不會跟你同學說我去吃飯飯
[02:40:23] 這個pattern就不一樣
[02:40:25] 所以你在算這個機率的時候
[02:40:28] 某些人就傻了
[02:40:29] 你怎麼會變成講這種話
[02:40:31] 他就不瞭解你第2個飯的意思到底是
[02:40:34] 所以他就困惑這樣子
[02:40:36] 所以這個概念是這樣
[02:40:38] 那他其實計算上基本上就在算這個
[02:40:41] 這個字
[02:40:42] 你看到這些字
[02:40:43] 然後
[02:40:44] 接下來發現這個字
[02:40:45] probability的一個
[02:40:47] 可能性
[02:40:49] 所以困惑度越高表示說
[02:40:51] 你講了
[02:40:52] 你講了一句我以前沒聽過的話
[02:40:55] 那就是機率很低的意思
[02:40:57] 所以這個機率很低的意思
[02:40:59] 那他導述
[02:41:00] 你的困惑度就會高這樣子
[02:41:02] 所以當然他
[02:41:06] 看你要不要normalize
[02:41:07] 他其實有時候是非常高的
[02:41:10] 因為實在太困惑了
[02:41:12] 你可能
[02:41:12] 出車禍我不知道在講什麼這樣子
[02:41:15] 有可能是這就是一般的講法
[02:41:18] 就是沒問題
[02:41:19] 機率是1這樣子
[02:41:21] 當然有時候我們會normalize到一定的範圍內這樣子
[02:41:25] 這perplexity其實是用來度量很多
[02:41:28] 由於是現在大語言模型的一個
[02:41:30] 很重要的工具
[02:41:32] 因為其實你可以想像他其實就是去看說
[02:41:35] 我勸完之後這個模型如果叫他講話
[02:41:39] 他講的話
[02:41:40] 跟人講的話其實是一致的
[02:41:42] 那表示我模型有trend
[02:41:44] 但是如果你哪一天說
[02:41:46] 老師說要fintune
[02:41:47] 那我就拿我們資料去fintune
[02:41:49] 那fintune完之後呢
[02:41:50] 好像可以講我們
[02:41:52] 希望他講的話
[02:41:53] 但是
[02:41:54] 他一般的人話講得哩哩答答這樣子
[02:41:57] 所以你會發現
[02:41:59] 你再去算你fintune後的模型
[02:42:02] 他的perplexity
[02:42:03] 會變很高就是他在decode的時候他的困惑
[02:42:07] 很高就是他不知道這時候要輸出什麼token
[02:42:11] 他就
[02:42:13] 你的fintune過程就把他以前的
[02:42:17] 學會的東西都破壞掉的時候
[02:42:19] 他的perplexity會升高
[02:42:21] 所以我們通常會衡量fintune的好壞
[02:42:24] 其實perplexity是一個很
[02:42:26] 很好的一個指標
[02:42:28] 就說
[02:42:29] 你當然會
[02:42:30] 升高是
[02:42:31] 很有可能因為你
[02:42:33] 你的資料跟當初的
[02:42:35] Pretrend的LM的Pretrend資料比是差很多的
[02:42:39] 你只用少量資料來微調
[02:42:41] 當然模型有點會被你搞爛是一定的
[02:42:44] 但是你不要掉太離譜
[02:42:47] 你不要掉太離譜
[02:42:48] 所以
[02:42:49] 為什麼你常看到paper去看說
[02:42:52] 尤其是fintune的東西
[02:42:54] 去做尤其是做深層任務的fintune的研究的時候他會去度量
[02:42:58] perplexity就是我tune完之後
[02:43:01] 他至少還是講人話
[02:43:02] 他至少還是講
[02:43:03] 我們看得懂的東西這樣子
[02:43:05] 然後計算部分就是這樣這個東西其實在一般有用的訓練其實也是
[02:43:11] 訓練的過程也是一個
[02:43:13] 有些可能會把它當成是一個
[02:43:16] loss的逼近的一個指標在做這件事情
[02:43:20] 所以這個
[02:43:23] 你大概知道他其實就是去
[02:43:25] 去看我對我這個language model
[02:43:28] 的
[02:43:29] 跟我現在要match的那個language之間的align的程度有多少
[02:43:35] OK
[02:43:36] 但是通常你不會自己算
[02:43:37] 這個現在
[02:43:39] 這個直接呼叫直接告訴你這樣
[02:43:41] 所以有很多研究都會用這個
[02:43:45] 就是尤其是看
[02:43:47] 比如說大語言模型的幻覺的時候
[02:43:50] 因為大語言模型其實還是為自己心虛吧
[02:43:52] 就是他這個不太懂
[02:43:55] 所以他的perplexity在decode的時候會升高
[02:43:58] in general
[02:44:00] 其實有時候他
[02:44:01] 他信心度很高但都是錯的也有
[02:44:04] 但是有時候通常他不太有把握或是他
[02:44:07] 開始已經不知道在幹什麼的時候他這部分的信心度會拉高
[02:44:11] 所以這個就是一個指標
[02:44:12] 你可以去算perplexity
[02:44:14] 這只是one of的一個指標這樣子
[02:44:19] OK
[02:44:20] 好
[02:44:20] 那這個就我剛才提到一些意義就是他其實是用來度量
[02:44:25] 非不確定性的就是我現在在看這句話的時候跟我以前的model的align程度
[02:44:31] 其實不太一致的
[02:44:33] 那也是來評估我現在做
[02:44:36] 這個模型的表現尤其是像我去fine tune或者是說
[02:44:41] 我現在要去
[02:44:41] 去做什麼任務的時候
[02:44:43] 其實他到底
[02:44:44] 對自己的信心度有多少
[02:44:47] 那當然也有是一個compression
[02:44:49] 因為
[02:44:51] 為什麼提到compression
[02:44:52] 因為model本身
[02:44:54] 你可以想象人類這麼大的語料庫
[02:44:57] 我只要用
[02:44:58] 7個billion
[02:45:00] 幾個billion也算蠻多的就是我只要用幾個billion參數
[02:45:05] 我就可以讓他完全的去decode出人類說的文章
[02:45:09] 這某種程度上已經是一種
[02:45:11] 一種壓縮的過程
[02:45:12] 就是把人類的nudge完全壓縮在這整個參數的表示裡面
[02:45:18] 所以壓的好的
[02:45:19] 他perplexity會低壓
[02:45:21] 因為表示沒有問題
[02:45:22] 表示沒有arrow
[02:45:23] 但是壓的不好的就是
[02:45:25] 他decode回去
[02:45:27] 就很像你們圖片在
[02:45:29] 解回原來圖片的時候
[02:45:31] 發現就模糊了
[02:45:32] 或者是
[02:45:33] 那個就是
[02:45:34] 這個壓縮的效率不好
[02:45:36] 這樣子
[02:45:38] 這個大概是perplexity的一些特性的
[02:45:41] 然後
[02:45:41] 那
[02:45:43] 那我們能不能用perplexity來
[02:45:45] 判斷
[02:45:46] 你們寫的作業是不是AI寫的
[02:45:48] 其實現在有很多detect AI的工具
[02:45:51] 就是去算perplexity
[02:45:53] 就是這個沒錯這就是我寫的這樣子
[02:45:56] 我信心度很高我沒有困惑我認得出我寫的東西這樣子
[02:46:00] 所以這件事情是
[02:46:04] 現在detect的模型的或是系統
[02:46:08] 都是朝這個方向來做
[02:46:10] 但是你可以想象
[02:46:11] 你可以回去自己試
[02:46:12] 反正這裡你也可以算出來
[02:46:14] 你可以在這個
[02:46:15] detect的東西
[02:46:18] AI自己做出來你叫他自己判斷
[02:46:20] 他可能會判斷90多
[02:46:22] 但是你把一個字的改掉
[02:46:24] 或是把一個字對掉或是
[02:46:26] 給decode就下降這樣子
[02:46:28] 所以那個都很容易去調控這樣子
[02:46:32] 好
[02:46:33] 我們今天就先上到這
[02:46:40] OK並不適合沒有沒有
[02:46:42] 沒錯有一點這個味道
[02:46:44] 其實也不是頂大的差距說實在
[02:46:48] 是
[02:46:50] 努力的差距
[02:46:54] 應該這樣講其實
[02:46:57] 等你去學會其實學習deep learning的
[02:47:00] 之後你再回過頭來看
[02:47:02] 就不覺得
[02:47:05] 這個gap是有的
[02:47:07] 因為
[02:47:08] 說實在的現在這些code
[02:47:11] 我們並沒有叫你去寫出detail的training的東西
[02:47:14] 但是的確你
[02:47:16] 你要有訓練過的經驗
[02:47:18] 不然你在寫第1個作業時候
[02:47:21] 會有點辛苦沒錯
[02:47:22] 因為你根本不知道模型的訓練是什麼這樣子
[02:47:26] 那當然我在CBUS裡面的確也有提到說
[02:47:30] 最好還是要有基礎學習跟深入學習的基礎
[02:47:34] 只是說我沒有把它列為很hard的requirement
[02:47:38] 原因就是說
[02:47:40] 我覺得這些東西其實是很容易可以catch up的
[02:47:44] 對
[02:47:46] 這不是這跟頂大沒有關係
[02:47:49] 這個頂大的學生也
[02:47:50] 都很廢
[02:47:51] 大家也都是這樣學過來的這樣子
[02:47:54] 而且
[02:47:55] 其實有很多人會
[02:47:56] 會訓練模型會跑deep learning
[02:47:59] 其實他並沒有懂這些東西
[02:48:01] 但是他會寫package
[02:48:02] 他會
[02:48:02] 他至少run過那個套件
[02:48:04] 其實就是這樣而已
[02:48:05] 他並沒有懂
[02:48:06] 更多這樣子
[02:48:09] 在Colab上平均要執行多少時間合理
[02:48:13] 我也許
[02:48:14] 可以請助教提供一下他們以前的經驗這樣子
[02:48:18] 如果有跑過的
[02:48:22] 對我們可以列一下這個時間這樣子
[02:48:25] 對具體截止日期就是從今天開始公佈三週後這樣子
[02:48:30] 我作業大概都是這樣的一個時程
[02:48:33] 其實都是來得及
[02:48:36] 考試會著重作業跟上課內容
[02:48:41] 目前的課程沒錯對都比較
[02:48:44] 講故事
[02:48:46] 所以
[02:48:46] 因為他本身我並沒有用什麼教科書
[02:48:49] 所以他並沒有太多的step by step的技術的東西
[02:48:53] 對的確
[02:48:55] 可能會有很大部分是從作業
[02:48:58] 你做的過程
[02:48:59] 跟你的insight
[02:49:01] 跟有一些
[02:49:02] 一些你
[02:49:03] 一定會做過就瞭解的細節去著手
[02:49:07] 不太會去考
[02:49:09] 只能舉例不太會去考叫你算BM25這樣子
[02:49:13] 這種東西這樣子
[02:49:14] 對我們會有一個考試是
[02:49:17] 會排在應該是14周
[02:49:20] 對我在這兩個禮拜會確認
[02:49:25] 我是寫mid-term的但是其實是比較在期末
[02:49:28] 所以應該是14周的時候
[02:49:35] 好
[02:49:43] 好吧這個你應該下載就看得到了
[02:49:47] 是吧
[02:49:49] requirement
[02:49:53] 因為
[02:49:55] 除了Gensim的問題
[02:49:57] 另外其他的
[02:50:00] ok好你們再回復好了
[02:50:04] Gensim
[02:50:04] 他還有在維護嗎
[02:50:06] Gensim
[02:50:06] 去年的時候有沒捐
[02:50:08] 可是現在好像不捐
[02:50:09] 所以這個會在
[02:50:10] 發佈到下
[02:50:11] ok好
[02:50:13] 對因為這些公司有些
[02:50:15] Gensim應該是還有但是有些你會發現有些套件你怎麼一直沒在更新或是
[02:50:20] 或是其實你有更別的選項
[02:50:23] 更新的選項
[02:50:26] 好我想就這樣了當然
[02:50:29] 對
[02:50:30] 我是覺得
[02:50:32] 有我們有
[02:50:33] 這個code template其實是還好
[02:50:35] 還好
[02:50:37] 當然有時候如果你沒有這些基礎壓力可能真的會大一點這樣
[02:50:40] 不過我想就自己
[02:50:41] 自己判斷這樣子
[02:50:44] 好
[02:50:45] 沒有其他問題我們今天就上到這邊我們下課
## 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 節那行,原樣照抄。
- `## 重點`:三點中文,每點一到兩句。
- `## 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)
- 中文:爬山法只記住「現在這一個狀態」,每一輪都移到分數最高的鄰居。白話:一直往比較高的地方走一步。
```
中文要先把句子意思講清楚,再補一句白話;難的英文單字括號附中文(例:neighboring state(鄰近狀態))。
- 章節包第 2 節的每一段:`## [h:mm:ss](連結) 標題`(照抄),下面 2–4 句白話摘要,其餘全部收進摺疊:
```
問句(例:用生活例子講,BFS 在做什麼?)
內容
```
摺疊種類(需要才放):用生活例子講?/它到底怎麼運作?/要先懂什麼?(老師假設你會的數學或概念,短版教學)/老師原話是什麼?(「原話」(h:mm:ss),只放重要的,最多 5 句)。
- 「它到底怎麼運作?」要用一組小數字把這段的演算法**真的跑 1–3 步**(例:算出梯度、更新一次、比較兩個 α),不是只示範定義的加減乘除。全章盡量沿用同一組數字,讓前一段的答案能在下一段被驗證。
- 每段正文要回答讀者最可能卡住的一個「為什麼」。投影片公式方向跟題目相反、或投影片說「解不出來」時,用一兩句講出原因,自己補的標(我補充)。
- 投影片句子停在公式前(公式在圖裡)時:Exam-ready 在粗體詞條上補公式、引號內保持原句;正文寫出同一條式子。公式圖看章節包第 6 節列出的 PNG。
- `## Self-check`:2–4 題英文考題,答案收摺疊。**至少一題考老師強調的內容**;不出「老師和投影片哪裡不同」這類不會考的題目。每題格式:
```
Q1. English question?(中文:中文題目)
**Answer**: English answer.
中文:把答案完整講一遍(不是只翻一句),讓看不懂英文的人也知道要怎麼答。
```
- **最後一行**:章節包第 1b 節那行(下一章連結),原樣照抄。讓讀完的人直接點下一章。
- 不要把章節包或這份規則裡的指示句寫進筆記(例如「寫筆記時照投影片寫」「已改正 ASR 錯字」)。
- 長度 8,000–14,000 字元。
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 一次),檢查後集中修改。