---
# System prepended metadata

title: 【生成式人工智慧與機器學習導論2025】0~1 一堂課搞懂生成式人工智慧的原理
tags: [生成式AI]

---

20251114筆記 內容可能有錯誤，請參考原始影片

[李宏毅【生成式人工智慧與機器學習導論2025】](https://www.youtube.com/playlist?list=PLJV_el3uVTsMMGi5kbnKP5DrDHZpTX0jT)

[【生成式人工智慧與機器學習導論2025】第０講：開場與課程簡介](https://youtu.be/VuQUF1VVX40?si=_rR8fHlwAF6qEKh-)


[【生成式人工智慧與機器學習導論2025】第１講：一堂課搞懂生成式人工智慧的原理](https://youtu.be/TigfpYPJk1s?si=p-aHikb8j2wiBULW)

### 生成式人工智慧與機器學習導論2025】第０講：開場與課程簡介 大綱

### I. 課程核心與學習目標
A. 開場：AI 生成內容的全面展示。
B. 核心理念：從使用者轉變為理解者與創造者。
C. 學習動機：區分「魔術」與「魔法」的重要性。

### II. 課程定位與先備要求
A. 課程受眾：適合入門者、想深入 AI 領域或想更智慧使用工具者。
B. 不適合對象：已有模型訓練經驗或從未使用過 GPT 者。
C. 預習資源：可參考「生成式 AI 導論 2023」或「機器學習 2021」課程。

### III. 課程結構與內容規劃
A. 課程總長：共十講。
B. 階段劃分：
    1. 前四講：了解現有生成式 AI 的運作方式。
    2. 中四講：介紹 AI 如何被打造（含訓練機會），以文字互動為主。
    3. 後兩講：講解影像與語音相關內容。

### IV. 課程行政與上課安排
A. 主辦單位與時間：台灣大專院校人工智慧學程聯盟課程，週五下午 2:20 直播。
B. 課程形式：1.5-2 小時講解，0.5-1 小時助教講解作業。
C. 資訊與互動：所有內容錄影（週一結束前上線）；透過 NTUCool 進行課堂發問。
D. 網路應對：若直播斷線，將透過 NTUCool 寄發新連結，鼓勵同學勿驚慌。

### V. 作業系統與難度分級
A. 作業數量與時程：共 10 個作業，通常有三週完成時間。
B. 成績與時限：預計於明年 1 月 12 號送出成績。
C. 繳交平台：NTUCool (選擇題) 與 Judge Boi (非選擇題，由 AI 助教批改)。
D. 難度評定：分為一到三顆星 (★)，一顆星約十幾分鐘，三顆星可能需數小時。
E. 訓練哲學：保留耗時的訓練作業，目的在讓學生體驗 AI 的「醍醐味」——在迷茫中前進的焦躁等待。

---


### I. 課程核心與學習目標

*   **開場內容皆由 AI 生成：** 課程開場影片的所有內容，包括老師本人出場之前，都是人工智慧生成的。
*   **具體 AI 技術展示：**
    *   **Google Veo3：** 用來生成影片，例如倒數計時和長出翅膀的鳥人影片。Veo3 可以根據**文字敘述**生成影片，也支援輸入**照片**並搭配敘述來產生會說話或動作的影片。英文的課程介紹聲音也是 Veo3 自己生成的。
    *   **Eleven Labs (語音合成軟體)：** 用來合成中文講課的聲音。它是透過輸入老師上課錄影來模仿聲音，然後輸入文字即可用該聲音朗讀。
    *   **HeyGen：** 用來生成「在房間裡演講的頭像」。只需要提供一張照片和一段語音，它就能讓照片中的人開始說話。
    *   **Genspark (AI Agent 平台)：** 用於生成課程投影片和講稿。老師透過輸入課程說明，讓 Genspark  製作投影片和講稿，再將講稿丟給 Eleven Labs 產生聲音。
*   **課程目的：** 本課程的目標是做**更深層的事情**，而非僅僅學會用 GPT 寫作業。
*   **核心轉變：** 學生應從**使用者**轉變為**理解者**，甚至是**創造者**。
*   **魔術與魔法的比喻：**
    *   現今生成式 AI 強大，使用起來像**變魔術**。
    *   不懂原理會將「魔術」誤認為是「**魔法**」（神秘不可解釋）。
    *   將 AI 視為魔法會產生誤解，例如認為 AI 全能或害怕 AI 取代所有人。
    *   **理解原理**後，魔術不再是魔法，你能看清背後的**技巧**，甚至能創造自己的技巧。

### II. 課程定位與先備要求

*   **課程定位：** 這是一門 AI 入門課，旨在提供對 AI **正確且深入的認識**。
*   **適合修課對象：**
    1.  未來想更深入人工智慧領域的人（作為 AI 旅程很棒的第一步）。
    2.  想用**更智慧的方式**使用 AI 工具的人。
*   **先備知識要求：** 即使不會寫程式，只要對 ChatGPT 或類似人工智慧有**使用經驗**，老師會盡力讓每個人跟上。
*   **不適合修課對象：**
    1.  **已有訓練模型經驗**的同學，本課程可能**太淺**。
    2.  **完全沒有使用過 GPT** 或類似 AI，完全不知道 GPT 是什麼的人，本課程可能**挑戰太大**。
*   **預習建議：**
    *   若對生成式 AI 一無所知，可先看「生成式 AI 導論 2023」課程。
    *   若想進一步了解 AI 如何被訓練出來，可看「機器學習 2021」課程。
    *   本門課會從基礎開始講起，因此即使沒有時間預習也無妨。

### III. 課程結構與內容規劃

*   **課程總覽：** 課程計畫講授**十講**。
*   **內容分佈與重點：**
    *   **前四講 (1-4)：** 帶領大家了解**現有的生成式人工智慧**的運作方式。
    *   **中四講 (5-8)：** 介紹這些生成式人工智慧是**如何被打造出來的**，並會提供機會**自行訓練生成式 AI**。
    *   **主題重心：** 前八講主要以**文字互動**為主。
    *   **後兩講 (9-10)：** 將講解**影像與語音**相關的內容。

### IV. 課程行政與上課安排

*   **課程名稱與主辦單位：** 課程名稱為「生成式人工智慧與機器學習導論」，是**台灣大專院校人工智慧學程聯盟**的課程。
*   **上課方式與時間：**
    *   主要以**直播**進行。
    *   上課時間為**週五的下午 2 點 20 分**。
    *   直播錄製地點在台大新生教學館 202，但鼓勵同學在家看直播即可，因為教室不大。
*   **單次課堂流程：**
    *   老師上課：通常 1.5 到 2 小時，以講解為主，有時會輔助實作。
    *   助教講解作業：通常 0.5 到 1 小時左右。
    *   **下課時間不固定**：取決於當週內容講完即下課，可能提早或較晚。
*   **錄影與離席：** 所有課程內容都會錄影並上線。若同學有事或課程持續太長，**歡迎隨時中斷或離開**。錄影預計在**下一個週一結束前**上線。
*   **課堂發問與互動：**
    *   對上課內容有問題，可在 NTUCool 上發問。
    *   每次課程都會開設對應的留言區（例如 9 月 12 號上課即時討論區）。
    *   老師若有時間，會優先回答 NTUCool 留言區中的問題。
    *   旁聽生若想加入 NTUCool，需寄信給助教。
*   **直播斷線處理：** 由於網路不穩定，直播有可能斷線。若發生斷線：
    *   會開一個**新的直播連結**，並透過 NTUCool 寄給所有修課同學。
    *   **重要提醒：** 請勿驚慌，因為所有的課程內容都有錄影。

### V. 作業系統與難度分級

*   **作業總數與時程：** 總共有 **10 個作業**，每一個講次都有對應的作業。基本上每個作業有**三週**時間完成。
*   **特殊時程：**
    *   前兩個作業截止日期特別延後至 **10 月 17 號**，以配合不同學校加退選的時間差異。
    *   最後一個作業（作業十）截止日是明年的 **1 月 9 號**。
*   **成績送出時間：** 預計在 **1 月 12 號**送出成績。若有合理理由需要提早知道成績，可以在 12 月 19 號作業十公告之後，聯繫助教進行**優先批改**。
*   **作業繳交平台：**
    1.  **NTUCool：** 用於繳交**選擇題形式**的作業。今日（開課當日）就會公告作業一。
    2.  **Judge Boi：** 用於繳交**非選擇題形式**的作業，該平台背後有 **AI 助教**來批改作業。
*   **作業難度與所需時間（以達到及格成績為準）：**
    *   **一顆星 (★)：** 預計在**十幾分鐘**內可以完成（及格分數，例如滿分 10 分拿到 6 分）。
    *   **兩顆星 (★★)：** 至少需要**超過一個小時**才能完成（及格分數）。
    *   **三顆星 (★★★)：** 可能需要**數個小時**（例如三、四個小時）才能達到及格成績。
*   **模型訓練的必要性與哲學意義：**
    *   有些作業需要**訓練模型**，這是非常耗時的事情，訓練時間可能長達三、四個小時。
    *   雖然過去有訓練時間長達三天以上的作業已移除，但老師選擇保留這些需耗時數小時訓練的作業。
    ![image](https://hackmd.io/_uploads/ry3aBpVgWl.png)
![image](https://hackmd.io/_uploads/Sk4Rr6EgZe.png)

    *   焦躁地等待結果、迷茫地調參數、不知道會不會成功的過程，正是人工智慧的**醍醐味**。
    *   這類作業在讓學生**學會在迷茫中前進**，並被定位為**預防針**，幫助同學對未來面對更大挑戰做好心理準備。



### 【生成式人工智慧與機器學習導論2025】第１講：一堂課搞懂生成式人工智慧的原理 大綱



### I. 語言模型的核心原理
A. 基本功能：**文字接龍**。
B. 輸出機制：機率分佈與擲骰子 (Sampling)。
C. 關鍵概念：Prompt、Token、Vocabulary。

### II. 文字接龍的能力要求與限制
A. 必備知識：語言知識（文法）與世界知識（真實物理認識）。
B. 模型的規模與學習來源：函式 $F(X)$、數十億參數、學習來源。
C. 限制與幻覺：AI 幻覺（Hellucination）的成因。

### III. 從接龍到實用問答的技術
A. 單輪對話：Chat Template  與 System Prompt (開發者設定資訊)。
B. 多輪對話：將過去對話記錄納入 Prompt。
C. 減少幻覺：RAG (Retrieval Augmented Generation) 技術。

### IV. 跨模態生成：萬物皆 Token
A. 定義：生成複雜且有結構的物件，其基本單位為 Token。
B. 影像與語音：使用編碼器（Encoder）將像素/取樣點壓縮成 Token。
C. 生成策略：Auto-Regressive Generation (自動迴歸生成，即接龍)。

### V. 開源模型實作與控制
A. 開源工具：Hugging Face、Transformers 套件、Colab 平台。
B. 模型操作：Tokenizer 的編碼 (Encode) 與解碼 (Decode)。
C. 輸出控制：Sampling (擲骰子) 與 TopK 機制 (限制擲骰範圍以防生成荒謬內容)。

---


### I. 語言模型的核心原理

*   **基本運作方式：** ChatGPT、Gemini、Claude 等人工智慧基本上就是**語言模型**。語言模型一言以蔽之，就是一個在做**文字接龍**的人工智慧。
*   **Prompt 與 Token：**
    *   給語言模型的輸入（未完成的句子）稱為 **Prompt**。
    *   模型拿來做接龍輸出的單位稱為 **Token**，在此有其獨特的意思，不是字典中的「代幣」。
*   **接龍過程：** 當輸入一個問題時，語言模型會將其作為未完成的句子開始接龍。
    *   模型預測下一個 Token（例如「玉」）。
    *   將預測出的 Token 重新貼到 Prompt 後面。
    *   重複此步驟，直到模型輸出代表**結束的符號**為止。
*   **輸出機制：機率分佈與擲骰子**
    *   語言模型真正的輸出，是對每一個 Token 的**機率分佈**，代表該 Token 接在 Prompt 後面的機率。
    *   模型接著會根據這個機率分佈來**擲骰子** (Sampling)，決定輸出哪個 Token。
    *   因為每次生成 Token 都需要擲骰子，所以即使問相同的問題，答案也會**略有不同**。
*   **詞彙庫 (Vocabulary)：** 所有語言模型會給分數的 Token 集合稱為 **Vocabulary**。
    *   現代語言模型的 Vocabulary 往往**非常巨大**，通常有數十萬個 Token。
    *   這個詞彙庫包羅萬象，包含多國語言文字、單字、符號（如@、%）等等。例如，LLaMA-3.2-3B 模型就有 128,000 個 Token。

### II. 文字接龍的能力要求與限制

*   **知識要求：** 成功且正確地進行文字接龍，AI 必須具備至少兩方面的知識。
    1.  **語言知識：** 對人類語言的**文法**、詞彙接續有基本認識（例如「黃色的」後面接名詞的機率高於接動詞）。通常收集上百萬篇文章就能學會語言知識，較少犯文法錯誤。
    2.  **世界知識：** 對人類的物理世界有**真實的認識**（例如知道水的沸點是攝氏 100 度，除非前提被改變）。世界知識是**無窮無盡**且相對難學的。
*   **模型規模與運作：**
    *   語言模型可以想像成一個**函式 $F$**，輸入 Prompt ($X$) 輸出機率分佈 ($F(X)$)。
    *   模型內部擁有**大量參數** (Parameter)；今天「十億參數不算多」，百億參數遍地走。
    *   這些參數是透過**資料自動學習**得到的，而非人工設定。
*   **學習來源：** 語言模型學習接龍的能力主要來自三個方面：
    1.  **網路爬蟲數據：** 網路上大量的句子作為教材，讓模型知道哪個字後面應該接哪個字。
    2.  **人類提供的標註：** 開發者告知模型在特定 Prompt 後面應該接什麼答案。
    3.  **使用者回饋：** 使用者對答案按讚或倒讚，讓模型調整不同答案的機率。
*   **AI 幻覺 (Hallucination) 的解釋：**
    *   當 AI 產生一些**不存在的東西**或似是而非的話，稱為 AI 幻覺。
    *   這並不是因為背後的**資料庫有問題**，因為語言模型**並沒有資料庫可言**。
    *   一切輸出都是透過文字接龍產生的，答案都是在**幻覺中產生**的。
    *   **比喻：** 語言模型就像一個**關在暗無天日的小房間裡的人**，唯一會做的事就是文字接龍。它無法得知外界即時資訊（如「今天是幾月幾號」）。

### III. 從接龍到實用問答的技術

*   **單輪問答 (Chat Template)：** 為了讓模型回答問題，平台會「加料」。
    *   使用者輸入的 Prompt 會被加上**額外的文字**（例如：使用者問：[你的問題] AI回答：）。
    *   這些額外加上的文字稱為 **Chat Template**。
*   **系統資訊 (System Prompt)：**
    *   有些基本資訊（如**當前日期**、模型名稱）會被開發者預先設定，並在每次對話時，塞在對話的最前面。
    *   這些開發者事先寫好的、使用者可能不知道的 Prompt 稱為 **System Prompt**。例如，Llama 的 Chat Template 中會自動塞入系統提示，包含模型的知識截止日期和當日日期。
*   **多輪對話：** 模型的多輪對話能力來自**歷史記錄的傳遞**。
    *   當使用者問下一個問題時，**過去所有的對話記錄**（包括 System Prompt、前一個問題、前一個回答）會被合併成一個**長 Prompt**，丟給模型進行接龍。
    *   模型就是看這一大串文字來預測下一個 Token。
*   **減少幻覺的方法：RAG**
    *   減少 AI 幻覺的方法之一，是將**搜尋引擎搭配 AI 一起使用**。
    *   這項技術稱為 **RAG (Retrieval Augmented Generation)**。

### IV. 跨模態生成：萬物皆 Token

*   **生成式人工智慧定義 (Generative AI)：**
    *   生成式 AI 是指讓機器學會產生**複雜而有結構的物件**。
    *   「有結構」的意思是這些物件由**有限可能的基本單位**所構成，這些基本單位統稱為 **Token**。
    *   雖然基本單位有限，但它們組合起來可以組成**無窮無盡的可能**。
*   **聲音與影像的生成：**
    *   **原理：** 影像生成可能是透過**像素接龍**，聲音生成可能是透過**取樣點接龍**。
    *   **實際挑戰：** 直接用像素或取樣點進行接龍會**太過耗費運算資源**。例如，生成一張 $1024 \times 1024$ 的圖片，需要的接龍次數比寫一部《紅樓夢》的 Token 數還多。
    *   **現代方法：** 先對圖片或聲音進行**壓縮**，透過**編碼器 (Encoder)** 將其轉換為比較少的 Token。這些 Token 再通過**解碼器 (Decoder)** 轉回原始訊號。
*   **統一模型：** 無論是生成文字、圖片還是聲音，其原理都是**Token 的接龍**。
    *   如黃仁勳所言，Token 可以是文字、圖像、語音、影片，**萬事萬物都是 Token**。
*   **生成策略：** 文字接龍這種生成策略有一個專有名詞，叫做 **Auto-Regressive Generation** (自動迴歸生成)。

### V. 開源模型實作與控制

*   **開源模型概念：** 開源模型（如 Meta 的 LLaMA、Google 的 Gemma）是指我們知道模型背後對應的**函式 $F$**、參數數量與數值。
*   **實作平台與工具：**
    *   尋找開源模型：可在 **Hugging Face** 網站上找到各式各樣的模型。
    *   程式平台：使用 **Colab** 來執行範例程式碼。
    *   核心套件：使用 Hugging Face 開發的 **Transformers** 套件。
*   **Token 的操作：**
    *   每個語言模型都會下載 **Tokenizer** (儲存 Vocabulary 定義) 和 **Model** (儲存參數)。
    *   `Tokenizer.encode`：將文字轉成 Token 的**編號 (ID)**，用於輸入給 Model。
    *   `Tokenizer.decode`：將 Token 編號轉回**文字**。
    *   **特殊規則：** 同一個英文單字，在前面有空白或沒有空白，可能被視為**不同的 Token**。
*   **生成控制 (Sampling)：**
    *   在生成多個 Token 時，可以選擇每次都選**機率最高**的 Token，但這樣每次答案都一樣。
    *   更真實的做法是根據機率分佈**擲骰子** (Sampling)。
    *   **TopK 機制：** 完全隨機擲骰子容易在中間選到機率極低的 Token，導致句子變得**荒謬或亂講話**。因此，實際做法是只允許**機率前 TopK 名**的 Token 參與擲骰子的過程，以確保產生比較正常的句子。
*   **簡化操作：**
    *   可以使用 `Model.Generate` 函式來連續產生一連串 Token，無需自己寫 `For` 迴圈。
    *   可以使用 `Tokenizer.Apply_Chat_template` 函式來自動加上官方的 Chat Template，避免自行輸入錯誤的複雜範本。
    *   最簡便的方法是使用 **Pipeline**，它可以省略 Encode 和 Decode 過程，直接輸入文字並輸出文字結果。

