LongCut logo

【生成式AI時代下的機器學習(2025)】第一講:一堂課搞懂生成式人工智慧的技術突破與未來發展

By Hung-yi Lee

Summary

## Key takeaways - **AI分身全自動生成**: 把投影片丟給ChatGPT產生講稿,再用Breezy Voice模仿聲音合成語音,最後用Heygen生成AI分身影片,展示生成式AI可產生人臉、語音和內容的數位分身。 [03:26], [05:03] - **生成式AI做投影片陽春**: ChatGPT Deep Research產生一萬三千字課程內容包括勵志擴散模型故事,但轉成投影片非常陽春;Gamma雖一鍵生成但內容與圖片不完全匹配,無法取代人類思考內容。 [06:42], [09:09] - **模型內心小劇場推理**: ChatGPT o1、DeepSeek等模型不直接給答案,而是先演腦內小劇場如試A、B、C解法驗證後才輸出,DeepSeek分析姜子牙對鄧不利多勝算高,展示reasoning能力。 [12:00], [16:30] - **AI Agent多步驟執行任務**: AI Agent如Deep Research上網迭代搜尋中橫公路歷史,Operator操控滑鼠鍵盤填加簽表單並修正錯誤,具學習、使用工具、規劃能力,未來課程詳談。 [19:12], [25:32] - **萬物拆解成token生成**: 生成式AI原理是把文字、圖像、聲音拆成有限token autoregressive生成下一個token,Transformer基底但長輸入有問題,Mamba為潛在解決方案。 [28:26], [38:50] - **微調後遺症破壞原有能力**: 微調ChatGPT成AI助教後雖學會自我介紹,但問最帥的人或寫詩變得奇奇怪怪如全答李宏毅或亂寫宋詞,需避免後遺症才用微調作為最後手段。 [17:25], [21:09]

Topics Covered

  • 萬物皆Token生成無窮
  • 自迴歸生成統御多模態
  • 深度不夠長度湊思考
  • 微調陷阱破壞原有能力

Full Transcript

這一堂課呢是 一堂課搞懂生成式人工智慧的技術突破與未來發展 那我現在呢打算用一堂課的時間 很快地帶大家看過生成式人工智慧 近年來發展的現況 以及未來大家可以關注的技術

那順便呢為這學期的課程做一個快速的概覽 那今天講這堂課的時候 我會假設大家對於生成式人工智慧 並沒有太多的認識 在假設你沒有相關背景知識的情況下來講這門課 但是這學期往後的課程 我會假設大家已經有看過

《生成式AI導論2024》的課程 跟《機器學習2021》的課程 然後來講接下來的課程 所以下一次上課啊 我們下週呢是連假 那下下週3月7號上課的時候 希望大家可以先預習以下課程 那個《生成式AI導論2024》的部分

假設你對大型語言模型一無所知 不知道它們是怎麼被訓練出來的 你可以先看《生成式AI導論2024》 那能夠全部看完最好 那如果沒有辦法的話 希望至少可以看到第8講 那這個系列呢內容是非常輕鬆的 你就用你吃飯啊、運動啊、通勤的時間看一下子就看完了

那《機器學習2021》呢 希望你至少可以看到Transformer (下) 現在呢每天看一部影片 到下次上課前你也可以看到Transformer (下) 常常有同學會問說 老師的youTube頻道上現在有這麼多影片 那如果要看的話應該從哪裡看起 那我就跟大家推薦

假設你不知道要從哪裡看起的話 那就看這兩個系列 生成式AI導論2024 跟機器學習 (ML) 2021 那這兩個系列裡面是有放出完整的內容 你可以從頭看起看到最後你會有很多的收穫 好,那這是今天的課程大綱 我們會先從現在的生成式AI

有什麼樣的行為 可以做到什麼樣的事情開始講起 那接下來我們會講它背後運作的機制 然後我們會講這些運作的機制是怎麼產生出來的 最後我們會講怎麼賦予這些人工智慧的模型新的能力

那我們就從這些人工智慧的行為開始講起 這張投影片類似的內容你大概看到都不想再看了 裡面就是在講生成式人工智慧可以做什麼 因為這一頁投影片實在是在不同的場合講過太多次了 我也不想講了 我們就交給我的AI分身來講吧

各位同學看到這張圖有沒有覺得很厲害 現在人工智慧什麼都能生 你可能會想哇靠這樣是不是以後都不用我了,放心啦 人工智慧雖然猛 但還是要你來下指令嘛 這場課呢就是要帶你輕鬆看懂這些人工智慧厲害在哪裡 這個AI分身呢

它不只人臉是生成出來的 它講的話也是生成出來的 包括講的內容也是生成出來的 那像這樣的AI分身是怎麼產生出來的呢 我就是把剛才那一頁投影片直接丟給ChatGPT 現在ChatGPT是可以讀圖片的

然後跟它講請產生投影片的講稿 長度大約30秒 他就會把講稿寫出來 接下來我把講稿的文字丟給一個叫做Breezy Voice的模型 這個是聯發科創新基地最近所釋出的一個語音合成模型 那它跟一般語音合成模型不一樣的地方就是

它不只是吃文字產生聲音 你還可以給它一段參考音檔 那它會按照參考音檔裡面的聲音的特質 來產生它合成的聲音 那我給它的參考音檔聽起來是這樣子的 好啊,我們開始來上課吧。

我是李宏毅。

那現在這門課呢,是機器學習。

那Breezy Voice合出來的聲音是這樣子的。

各位同學,那看到這張圖啊,有沒有覺得很厲害?

所以它就是會模仿我的聲音來念那個講稿。

好,那最後把合成出來的聲音加上一些我的畫面丟給Heygen。

那這個平台呢,就會產生剛才你看到的影片了。

所以有了投影片之後, 要生成一個數位人來直接講課, 嗯,是有可能的。

但是真正的難點並不在講課的環節啊。

準備一門課最花時間的,其實是在做投影片上啊。

真正花時間的地方並不在製作投影片的過程, 而是想投影片的內容。

除非你的投影片是直接跟別人借的, 不然做一門課的投影片是最花時間的。

那我們能不能夠直接讓人工智慧來做投影片呢?

如果它可以直接做完整的投影片的話, 我們就可以把老師淘汰了。

我們來看看現在的生成式AI 有沒有辦法直接做上課的投影片吧 所以我就跟ChatGPT Deep Research 說 我要準備一堂課 課的名稱是一堂課搞懂生成式AI 的技術突破與未來發展 請給我投影片內容 而且交代它要非常有趣 那它會先問我這個課的目標受眾啊

還有課程的內容聚焦啊 還有課程時長等等 你給它一些相關的資訊之後它就會開始長篇大論 那個Deep Research 的內容非常長啦 所以沒辦法把它放在投影片裡面 它足足寫了一萬三千個字 那因為我交代它課程的內容要有趣 所以呢在這個課程的內容中

它硬是想了好些笑話 那他的笑話都是這種等級的笑話啦 據說GPT 4 還曾經被用來創作笑話和段子 不過AI的冷笑話有時候只有他自己懂 哇,他知道他講的笑話很冷啊。

我問他有什麼程式設計師的笑話?

他說我昨天寫了一個遞迴程式 結果今天還在執行。

嗯,好吧,我笑了,你呢?我也笑了。

因為這個笑話完全不知道他在講什麼, 他是荒謬到讓人想笑。

那這個語言模型產生出來的笑話都是這個等級的啦。

但是在一萬三千字的內容中, 其實他還是講出了一個好的笑話。

這是他唯一我覺得可以看的笑話。

這個笑話是這樣子的, 而且不是這個笑話啦, 是一個勵志小故事。

他說擴散模型 (diffusion model) 其實很浪漫, 為什麼?因為他告訴我們,

為什麼?因為他告訴我們, 就算人生一團亂,全是雜訊 (Noise), 只要一步一步努力去除雜訊 (Noise), 也能拼出美麗的風景。

人工智慧都這麼勵志了。

我們還能不努力嗎?

哇,我從來沒有想過擴散模型 (diffusion model) 背後有這麼勵志的故事 人工智慧實在是太有創意了 那雖然產生了這麼長的內容 要把這些內容整理成投影片還是需要花時間的 所以我們要更懶惰一點 直接跟 ChatGPT 說把上述內容做成投影片讓我下載

ChatGPT 是可以做投影片的 他就開始寫一段程式碼 那這個程式碼最後就會生成投影片 你只要點以下連結 就可以把投影片載下來了 非常的方便 但問題是 ChatGPT 產生的投影片非常的陽春 嗯,我沒有很喜歡

所以我決定用另外一個可以生投影片的軟體 叫做 Gamma 來生投影片 Gamma 就是只要給文字 接下來就一鍵生成投影片 我就把剛才一萬三千字的資料直接丟給 Gamma 叫它生投影片 接下來我們就用人工智慧產生的投影片來上課吧

這門課是生成式人工智慧 的技術突破與未來發展 那生成式人工智慧 的基本概念是 定義生成式人工智慧 讓機器有想像力 可以產生文字、圖像、影片甚至程式碼 運作原理就是基於深度學習 (DL) 從海量資料中學習 這個有講跟沒講一樣,不知道在說什麼

那重要性就是給予機器創造力 讓電腦不再侷限於選擇題 而是能自由發揮 那近期有什麼技術突破呢 有GPT-4,有DALL-E 2 他說DALL-E 2解析度提升四倍 這個提升四倍是相較於誰提升四倍,也沒講清楚 還有Stable Diffusion,開源的文本生成圖像模型

那核心的技術有Transformer,有GAN 還有擴散模型 (Diffusion Model) 那生成式AI 人工智慧有什麼樣的應用案例呢?

有文字生成、圖像合成、音樂創作,還有程式碼生成 右邊這些圖顯然是 Gamma 自己生成的啦 那有時候跟左邊的文字也不一定有完全Match到 然後呢,當前的挑戰有內容真偽、濫用問題 偏見、公平性的問題、隱私問題,還有高昂計算成本 未來有什麼可能的發展呢?

我們需要技術優化,降低成本 多模態與深度理解 人機協作,還有規範倫理的引導需要被完善 那我因為我要求課程要有趣啦 所以呢,課程的投影片中準備了一些趣味案例 包括一個不存在的人 有一個網站會展示AI人工智慧產生出來的人 這些人都是不存在的

然後呢,有人用AI人工智慧創造了藝術作品 叫做太空歌劇院去比賽還得了獎 那還可以拿這個AI人工智慧呢 來做文字冒險遊戲 那這個我在2023年的時候就展示給大家看過了 那未來的趨勢呢,就是創意民主化 人機共創、教育轉型和新興產業 我們今天這門課就上到這邊

謝謝大家,謝謝 如果我是一個懶惰的老師 我真的就可以用剛才的投影片上課了 所以今天就是告訴你說 假設只是要上剛才那種流水帳式的課程 完全可以用人工智慧來生成投影片 有投影片以後,再用人工智慧來產生數位人 就不需要人類來上這門課了

完全可以全自動的產生一門課程 好,接下來是人類做的投影片了 大家來看看人類上的課 跟完全用人工智慧準備的教材有什麼不同 那我們現在來看人類做的投影片吧 那現在啊,這些人工智慧它還展示出類似思考的能力

那通常我們把這個過程叫做 reasoning 什麼叫做展示思考的能力呢 過去啊,我們在使用這些生成式人工智慧 的時候 你給它一個輸入 (Input),給它一個問題 它就直接給你一個答案 但是現在很多的生成式AI 比如說ChatGPT的o1 o3、還有DeepSeek

還有Gemini 的Flash Thinking 它們在問一個問題的時候 它都不是直接給 都你在問它一個問題的時候 它不是直接給你答案 而是它會演一個腦內小劇場給你看 它就說我們先試試看A 解法吧 解完之後自己驗證一下答案 發現嗯不對 再試一下B 解法吧

它驗證一下嗯好像是對的 B 解法不錯 但我們也可以嘗試一下C 解法 嗯看起來沒有比較好 那把腦內小劇場演完之後才給你答案 所以我們用的就是B 解法的答案 那通常這些模型在展示它的結果的時候 它會把腦內小劇場放在一個框框內

告訴你說這是它的內心戲,不是真正的答案 然後最後才給你真正的答案 那如果你覺得這一段聽起來有點抽象的話 那我們就實際用一下DeepSeek 告訴你這個腦內小劇場看起來像是什麼樣子的 我們來問DeepSeek一個莫名其妙的問題吧

我想到說封神演義裡面的姜子牙是個老人,有法力 鄧不利多《哈利波特》的也是一個老人,也有法力 如果他們處在同一個時空 兩人都處於個人的巔峰狀態 有充足的準備時間 如果他們有理由不得不開打 在公平對決的情況下 你覺得誰會贏呢

我們來看看DeepSeek 覺得這兩個會魔法的老人決鬥的話誰會獲勝 那DeepSeek不會馬上給出答案 它會先產生這些顏色比較淺的文字 這些顏色比較淺的文字就是它的內心小劇場 它開始在內心演說它要如何思考這個問題 它就會說,嗯,這個問題看起來挺有趣的

然後開始想說姜子牙有什麼能力 鄧不利多有什麼能力 它的內心小劇場演得非常長 足足演了1500個字 然後演完這些內心小劇場以後 它才會給你答案 內心小劇場非常長啦 不容易讀啦 這邊就看一些段落就好 比如說你看這邊它已經下了總結了 但下了總結之後

它又好像突然想起來好像有東西沒有考慮到 它就說不過還需要再考慮什麼什麼 這個DeepSeek內心小劇場 就是可以讓你看到這些模型的糾結 而因為這個DeepSeek內心小劇場實在太長了 懶得管它在講什麼 所以直接把他的文字丟給 Claude

叫 Claude 呢來幫我們整理 DeepSeek 的思路 我就跟 Claude 說把以下的內容可視化 畫出人容易看得懂的圖 Claude 呢非常擅長寫程式 畫可視化的圖或者是做網頁 我給他這個指令以後 他就寫出了右邊這個網頁 而且 Claude 是可以做 preview (預覽)

可以預覽這些程式執行的結果 執行出來就是這個樣子 這邊的顏色都是 Claude 自己套上去的啦 左邊是姜子牙的能力 右邊是鄧不利多的能力 姜子牙的主要能力是有道術跟陣法 十絕陣這個我要批評一下 那個十絕陣並不是姜子牙的能力啊

十絕陣是姜子牙的對手咒王那邊的人擺的陣法 所以他不是姜子牙的能力啊 那姜子牙有什麼優勢呢 優勢就是他有個杏黃旗 他有很高的防禦力 這個我是同意的 在《封神演義》裡面 應該是沒有什麼攻擊可以突破杏黃旗 那有什麼樣的劣勢呢

劣勢就是他的法寶可能對非神職人員較弱 這個我也是蠻同意的 江子牙的打神鞭啊 應該是只能打封神榜上有名人 有一次江子牙遇到一個對手 那個對手蠻弱的 但江子牙拿打神鞭去打他 打神鞭就被對手搶走了 旁白就說為什麼打神鞭打不了這個人呢 因為那個人不在封神榜上啊

所以打神鞭沒辦法打他 所以如果鄧不利多不在封神榜上的話 看起來打神鞭可能對鄧不利多沒有辦法起作用 右邊是鄧不利多的優勢跟劣勢 然後對決分析結果是 短期戰對鄧不利多有利 長期戰對江子牙有利 結論是江子牙在準備充分的時候獲勝機率較高

這個是內心小劇場的內容 好,這個是 Deep Research 真正的答案啦 他就說最後江子牙可能會贏 不過他還多講了一句話 他覺得如果鄧不利多一開始就用移行幻影 (Apparition) 直接近身發動索命咒就有逆轉的可能 但這個逆轉的關鍵取決於杏黃旗能不能夠擋住索命咒

在封神演義裡面應該沒有杏黃旗擋不住的東西 翻天印打誰誰死 但杏黃旗可以擋住翻天印 那在索命咒呢 在哈利波特裡面也沒有能夠擋住的東西 所以這就是一個矛跟盾的對決 不知道索命咒能不能夠突破杏黃旗 這個會是決勝的關鍵 好,這個是 DeepSeek 的答案啦

我一樣問ChatGPT o3-mini-high 這個問題 那他也是會做一下腦內小劇場 不過o3的腦內小劇場通常比較短 我有點懷疑他沒有完整呈現腦內小劇場的內容 他呈現給我們的只是摘要而已 呈現完腦內小劇場之後 他也給出了他的答案

o3一樣覺得姜子牙比較可能贏過鄧不利多 看來兩個蠻聰明的模型都覺得姜子牙比較有勝算 結束,我得到這個問題的答案了 剛才呢,我們使用人工智慧的用法都是 你給他一個問題,他就給你一個答案 那通常今天我們使用人工智慧的時候就是一問一答

對人工智慧來說,答案給出去就給出去了 那這個答案會造成什麼樣的影響 這個答案是不是對的,他也不在乎 但是光是一問一答不能解決所有的問題 有很多的任務往往無法一步完成 需要多個步驟才有辦法完成,舉例來說 我舉一個日常生活中的例子

老婆大人跟我說今天晚上要去外面吃飯 那我可能就要先問說,那要吃什麼呢 老婆大人說吃餐廳A 我就打電話去餐廳A 打完電話以後發現餐廳A說沒位置了 如果我只是一個語言模型的話 我可能就會躺在這裡,然後回報說沒位置了結束

但我是一個人類 如果一個人只有這樣做的話 那一定會被老婆大人痛毆 所以我們需要想辦法執行完這個任務 那沒位置了怎麼辦呢 你會想其他的方法 比如說上網搜尋看看有沒有其他類似的餐廳 找到餐廳B 然後問老婆大人說訂餐廳B好嗎

老婆大人說可以,然後就訂餐廳B 今天上述工作我們有沒有辦法直接讓 (AI) 人工智慧來完成呢 如果 (AI) 人工智慧可以執行這種需要多個步驟才能完成的工作 那我們會叫它 AI Agent 那我在往後的課程會再更詳細地講什麼是AI Agent

雖然我舉的例子只是一個非常日常生活中的例子 但不要小看這個任務 你需要具備非常多的能力才有辦法完成這個任務 比如說AI Agent必須要能從經驗中學習 剛才打電話就已經知道餐廳A 沒位置了 如果不會學習的AI 它就會不斷反覆打電話給餐廳A

那這顯然是沒辦法解決問題的 所以模型要從經驗中學習 知道不要再訂餐廳A 模型要有使用工具的能力 知道自己沒有那麼多餐廳的知識 需要上網搜尋才能知道有哪些可以訂的餐廳 這邊在這個例子裡面AI需要上網搜尋 那我在作業一會出一個作業

讓大家用AI上網搜尋之後 來回答助教出的問題 那除此之外呢 這個AI還需要具備一定程度的規劃能力 比如說它會主動跟人類確定餐廳訂哪一間才是合適的 因為如果最後訂的餐廳是不合適的 那就力氣就白花了 所以與其最後白花力氣

不如一開始稍微多花一點力氣 直接跟人類確定人類的需求 但是AI也要知道什麼時候需要確認 什麼時候不需要確認 如果AI連上網搜尋這個動作都要問人類說 我可不可以上網搜尋 那人類顯然是會生氣的 要完成這個日常生活中的工作

就要完成這個例子其實是需要很多不同的技能的 那我們在下一堂課會再來詳談AI Agent 那講到AI Agent 我想現在也是有一些服務 看起來是初步具備有AI Agent 的能力 那一個例子就是Deep Research

現在ChatGPT、Gemini、Perplexity 都有出Deep Research 的功能 Deep Research 的功能就是你問它一個問題 比如說中部橫貫公路的歷史沿革 那如果你在 ChatGPT 的頁面上選下面這個 Deep Research (深入研究) 就會執行 Deep Research 也就是模型會開始上網搜尋

而且他搜尋的時候不是只是搜尋一次得到結果就開始寫報告 而是會隨著搜尋到的內容而產生更多的問題 最後寫出一個長篇大論的報告 那右邊呢是展現了當我問中部橫貫公路歷史沿革的時候 Deep Research的搜尋過程 這只是一部分的過程而已

他會先搜尋中部橫貫公路的主線跟支線 他就學到說中部橫貫公路有宜蘭支線和霧社支線 他再去搜尋霧社支線的起點和終點 發現說2018年有一個改道工程 他再去搜尋2018年中橫的改道工程

所以他會隨著搜尋到的結果不同改變他要搜尋的內容 那這是一種 AI Agent的能力 另外一個看起來像是 AI Agent的能力 就是 Claude 的 Computer Use 或者是 ChatGPT 的 Operator 這 Computer Use 或者是 Operator 他們要做的事情就是

現在這些生成式人工智慧不只是生成 它還要能夠操控物件 那可能要操控機械手臂仍然非常的困難 但是現在基本上可以操控 數位世界中能夠碰觸到的滑鼠或者是鍵盤了 那這些生成式AI 怎麼操控滑鼠跟鍵盤呢

這個方法就是你先給它一個任務指示 然後給它一個螢幕截圖 那現在這些模型都是可以看圖的嘛 那看到這個螢幕截圖看到這個指示 它會輸出文字 但它輸出的文字是要如何去操控滑鼠跟鍵盤 比如說它會輸出文字說 把滑鼠移動到螢幕的這個位置

這個是指螢幕上位置的座標 這邊就需要開發者真的去寫一個小程式 把滑鼠移動到指定的位置 那滑鼠移動到指定的位置以後 螢幕截圖看起來可能就不一樣了 螢幕截圖不一樣之後就會產生新的輸出 比如說語言模型、生成式人工智慧 會說按下Enter 那就寫一個小程式

開發者就寫一個程式真的根據它的指令 真的把Enter按下去 那期待透過這一連串的操作 可以完成一些比較複雜的任務 那我們這邊就實際展示一下 ChatGPT的Operator的能力吧 我這邊給它的指令是 我想加簽李宏毅老師的機器學習

請上臺大課程網找到本學期這門課的加簽表單 並幫我填寫後送出 右邊是Operator在做的事情 那它的動作非常的快 所以我這邊先不講解,大家仔細看他做了什麼樣的事情 好,他就停在這裡 他找到了加簽表單 雖然我要求他填寫後送出

不過填加簽表單是要Gmail帳號的啦 所以他沒辦法填 那我叫他自己去申請一個 Gmail 帳號來填,他不肯做 所以就停在這裡 好,那剛才你有沒有注意到一件事 一開始在找課程資訊的時候 Operator 是先到課程網頁的上方 去點了課程資訊這幾個字 但發現沒有找到東西

所以接下來他才去下面找到課程的說明 然後找到這一個加簽的表單 所以在中間的過程中,他是一度犯錯的 但是他可以知道說他犯了錯 他可以修正他的計畫 修正他的行為,不再犯同樣的錯誤 這個就是今天AI可以做到的事情

這就是一個 AI Agent 的雛形 開發機器學習 (ML) 模型也需要非常多的步驟 它也是一個需要多步驟才能完成的任務 過去在我們這個課堂上 一個機器學習 (ML) 模型的作業通常是長這樣子的 老師告訴大家說有一個作業一

有任務的說明,這邊是這個任務的資料 然後呢,你就會根據說明跟資料寫訓練模型的程式 然後你就開始執行你的程式 那你可能很難一開始就寫對 開始訓練之後出現一個錯誤訊息 你就根據錯誤訊息去做一下Debug (除錯) 然後呢,你就可以開始訓練你的模型

訓練完你在development set上計算一下正確率 算出來50%,還不太滿意 修改一下模型再重新訓練 那做出來75%,滿意了你就可以上傳你的結果 不滿意就繼續修改你的模型 那在這一堂課裡面,我們當然也需要訓練模型 也需要走過類似的步驟

但是這一次在作業二,我們由AI Agent來完成 那這一門課的作業二呢 就是過去同一門課的作業一 只是這一次我們要用AI Agent來訓練模型 這一次負責執行跟優化模型訓練 不再是你本人 而是由 AI Agent來執行 我們來看看 AI Agent執行的結果

能不能比過去你的學長姐做的還要更好 好,我們已經看到了 AI的行為了 接下來我們來看它背後運作的機制 那這些生成式人工智慧從表面上來看 它做的事情就是有一些輸入,它就有一些輸出

只是這些輸入輸出可以是是很複雜的東西 它可以是一段文字 它可以是一張圖片 它可以是一段聲音 那我們可以把生成式人工智慧做的事情簡化為 就是輸入一個x,輸出一個y 只是這邊的x或這邊的y

它可以是很複雜的東西 它可以是一篇長篇大論 它可以是一張圖片 它可以是一段聲音 那產生長篇大論、產生圖片、產生聲音 背後它的共同的原理是什麼呢?

這些看似非常複雜的東西 其實都是由有限的基本單位所構成的 假設我們把這些東西用y來表示 那這個y可以指一段畫 可以指一張圖片 可以指一段聲音 它背後其實都是由一些基本單位 這邊用y1、y2、yi來表示

它是由基本單位所構成的 對一段文字來說,它的基本單位 就是組成這些文字的符號 比如說在中文裡面 我們可以說一個方塊字就是一個基本單位 對於圖片來說,如果你把圖片放大的話來看 圖片是由一個一個的像素 (pixel) 所組成的

那如果你把一段聲音訊號放大的話來看 它背後是什麼呢?

一段聲音訊號放大來看可能長這樣 它是由一個一個取樣點所構成的 而每一個取樣點就是一個數字 所以一段聲音訊號也是由一堆基本單位所構成的 那這些基本單位的特性是什麼呢 這些基本單位的特性就是它的選擇是有限的,雖然符號

雖然文字的符號非常多 但是它是有限的 中文方塊字常用的大概就是4000多個 那對於像素 (pixel) 來說 像素 (pixel) 可能的顏色也是有限的 那你可能會想說 如果取樣點算個數字來表示 這個數字是無限的 但不要忘了 我們在存每個取樣點的時候 你可能只會用一個 byte (位元組) 來存

一個 byte (位元組) 可以儲存的數字的可能性 它的解析度是有限的 你只能存2的8次方的可能性而已 所以取樣點的可能的變化仍然是有限的 這些基本單位它是有限的 這些基本單位你的選擇是有限的

但透過這些有限的選擇進行 你可以組出近乎無窮的可能 一個人說兩句一樣的話 他的聲音訊號不會是一模一樣的 或者是兩個人畫同樣主題的圖 兩張圖不會是一模一樣的 出同一個作文的題目 兩個人寫出來的文章不會是一模一樣的

有限的選擇有近乎無窮的可能 這些基本單位現在在生成式AI裡面 常常會把它叫做token token就是組合這些複雜物件的基本單位 如果去查字典的話 token最常被翻譯成代幣 不過在生成式AI 生成式人工智慧裡面

token就是組成物件的基本單位 另外這邊再補充一下 其實今天在產生圖片還要產生語音的時候 其實像素 (pixel) 或者是取樣點 已經不是最常被使用的基本單位 有更有效的方法來表達影像跟語音的基本單位 不過因為今天時間有限 我們日後再來討論這個話題

那所有的東西都可以看作是由一些基本單位所構成嗎?

有人可能會問說 那樹狀結構能夠看作是由一堆基本單位所構成嗎?

這邊有一個文法樹 我們可以把一個文法樹看作是由基本單位所構成嗎?可以

我們可以把一個文法樹看作是由基本單位所構成嗎?可以 一棵文法樹你可以把它表示成一個文字的序列 用左括號右括號的方式來表示樹狀的結構 所以一棵文法樹也可以看作是一串文字的序列

文字的序列就是由一堆文字的基本 token 所構成的 所以樹狀結構也可以寫成由基本物件所構成的 那你可能進一步問說 那所有的東西都可以看作是由基本物件所構成的嗎?

嗯我可以大膽地跟你說我覺得可以 講一句幹話就是所有的物件都是由原子跟分子所構成的 原子它就是有限的選擇組合出無窮的可能 就相信所有的物件都由基本單位所構成 好,這就是為什麼黃仁勳在去年的 Computex 說 這個token可以是文字

它也可以是影像,也可以是表格 也可以是一首歌,也可以是一段聲音,也可以是影片 萬事萬物都是 token 把萬事萬物拆解成 token 就是生成式 AI 的基本原理 那有的人不知道token是什麼意思 回去查字典發現token是代幣的意思

還以為黃老闆的意思是說 每個東西它都可以變成代幣然後拿來賣給你 它其實不是這個意思 它的意思就是萬事萬物組成都是由token組成 就是生成式 AI 的基本原理 好,那所以我們現在知道說 生成式 AI 就是拿一堆的token去生成另外一堆 token

那怎麼拿一堆token去生成另外一堆token呢 從現在這頁的影片開始 我不會再特別跟你說這裡的每一個y 指的是什麼 那你心裡就要想像說這邊這個y 可能是一張圖片 可能是一段文字,可能是一首歌 而這邊的y 加一個下標,比如說y 小i

它可能是文章中的一個字 它可能是圖片裡面的一個像素 它可能是聲音中的一個取樣點 所以我這邊用符號來表示 告訴你說這個技術是可以用在各式各樣不同的任務應用跟模態上的 好,那怎麼從x 產生y 呢

這背後也可以有一個共同的原理 這邊的策略就是根據固定的次序 每次只產生一個y,只產生一個token 出來 那講的具體一點,就輸入x1, x2, ... , xj,所有的x 的時候,你就產生y1

那講的具體一點,就輸入x1, x2, ... , xj,所有的x 的時候,你就產生y1 接下來給所有的 x 跟 y1 ,產生 y2 給 y1 跟 y2,產生 y3,以此類推 給所有的x、y1, y2, ... , yt-1 的時候,就產生 yt

給所有的x、y1, y2, ... , yt-1 的時候,就產生 yt 那產生到什麼時候停止呢 那就取決於你的應用 如果今天是產生圖片的話 你需要產生出來的 token 數目是固定的 因為通常圖片大小是固定的 所以你知道要產生多少個 token 你產生到指定的 token 的數量的時候 就可以停下來

那如果是產生一篇文章 通常你無法事先知道要產生的文章有多長 所以你需要再有一個特別的技巧 準備一個特別的 token叫做「結束」 當今天產生出「結束」這個 token的時候 就代表依序生成的過程結束了 不再產生更多的 token 這個策略啊它有一個專有名詞

叫做 Autoregressive Generation (自迴歸生成) 用比較通俗的講法就是文字接龍 這邊接的不一定是文字 而是各式各樣不同的 token 那所以這邊文字我加了一個引號 那當我們接的 token如果是文字的話 其實就叫做語言模型

但實際上今天為了要蹭語言模型 (Language Model) 的熱度 接的東西不是文字,我們也會叫語言模型 比如接的是語音,我們也說這是語音版的語言模型 雖然說它其實就是語音模型,接出來的是圖片 我們也說是語言模型,雖然它其實是影像的模型 反正今天只要是做這種接龍的行為 為了要蹭語言模型的熱度

我們都把這些技術歸類為語言模型 那右邊這些步驟其實可以簡化成都是一樣的事情 右邊這些步驟其實都是一樣的任務 輸入是一串的 token 輸出就是一個 token 決定下一個 token 是什麼 而 token 的可能性是有限的

所以就是給一串 token 做一個選擇題 決定下一個 token 應該是什麼 講到這邊我決定改變一下符號 我們可以不失一般性地 把給一串 token 產生下一個 token 這件事情 表示成輸入是 z1 到 zt-1,輸出是 zt

那有人可能會問說老師你怎麼可以把 x 跟 y 沒有做區別 都用 z 來表示呢 那麼 x 跟 y 難道不是不同的東西嗎 你想想看,如果今天我們做的是一個輸入文字 輸出文字,像一般的文字模型 一般的語言模型一樣 那樣的模型 如果我們做的是一個輸入文字輸出文字的模型

輸入的所有x 都是文字token 輸出所有y 也都是文字token 它們是沒有本質上的差異的 它們都是文字的token 所以我們可以不區別x 跟y,就用z 來表示 那你說如果我今天是輸入影像輸出文字

如果輸入跟輸出的模態不一樣怎麼辦呢 那x 跟y 它是不同的token的集合啊 影像有影像的token 文字有文字的token 那就告訴你我們把影像跟文字的token直接集合起來 當作一個新的token的集合 影像可能有4096 個token 文字有30000 個token

我就說一個新的token的集合是30000 加4096,是34096 是34096個 token 它們合起來是一個新的集合就叫做z 所以不管是你要輸入什麼、輸出什麼 我們都可以不失一般性地說 就是輸入一串 token,輸出一個 token 所以不管是你要文字生文字

文字生圖、圖生文字、語音生文字、文字生語音都是一樣的事情 它們背後的原理其實是一樣的 那再來要問的問題就是,怎麼輸入一串 token 決定下一個 token 是什麼呢?

你需要一個函式 (function) 我們這邊寫作 f 這個函式 (function) 它的輸入就是 z1 到zt-1 輸出就是zt 那這個函式 (function) 其實就是類神經網路 (neural network) 那我實際上這個 neural network 在運作的時候 並不是真的產生一個 token

它產生的是一個 token 的機率分佈 因為 token 的可能性是有限的 所以類神經網路 (neural network) 真的輸出是 它會給每一個 token 一個分數 代表這個 token 作為下一個 token 有多合適 這個 token 當作下一個 token 的機會有多大 為什麼要這樣做呢

因為你想看看假設我們現在在做文字接龍 我告訴你說輸入的 token 是臺灣大 問你接下來可以接哪一個 token 那各位同學可能會很直覺地接一個學出來 臺灣大可以接學這樣沒有問題 但是臺灣大後面還可以接很多其他東西啊 比如說可以接車,臺灣大車隊 可以接哥,臺灣大哥大

你可以接的東西太多了 所以給一個 token sequence (符記序列) 接下來可以接哪一個 token 往往答案並不是唯一的 所以你強迫類神經網路 (Neural Network) 輸出唯一的答案 它很有可能反而很難學會 它很有可能反而非常的錯亂 所以這邊的設計是讓它輸出的是一個機率分佈

讓它告訴你它覺得每一個 token 接在後面的可能性有多大 那產生這個機率分佈以後 再按照這個機率分佈去擲一個骰子 決定真正產生出來的 token 是什麼 那就是因為有這個擲骰子的過程 所以今天這些生成式 AI 在產生答案的時候,就算是一樣的輸入

每次產生的輸出也會是不一樣的 那接下來我們來講一下什麼是類神經網路 (Neural Network) 它特別的地方在哪裡 那類神經網路啊 我知道你可能在很多其他地方都聽過一大堆對於類 神經網路的解釋 那通常都是說類神經網路 模擬人腦的運作方式

所以很厲害等等科普文章就是這樣寫的 那類神經網路 Neural Network 作為一個函式 function 它真正的特色是什麼呢 它真正的特色是把一個函式 function f 拆解成很多小的函式 function f1 到 fL 的串聯 也就是說這個 f 實際上運作的過程是

有一堆輸入先通過第一個 f1 產生一堆輸出 那這邊的輸出呢 這邊每一個方框呢代表一個向量 (Vector) 然後呢這些輸出會再變成 f2 的輸入 產生新的輸出 這個步驟會持續一直下去 直到 fL 接受到輸入的時候

它會輸出下一個 Token 的機率分佈 這邊每一個小的函式 (function) 又叫做 Layer 所以一個 f 裡面有很多的 Layer 那就是因為把一個函式 (function) 拆解成多個串聯的函式 (function) 拆解成多個 Layer 所以類神經網路 (Neural Network) 又叫做深度學習 (Deep Learning, DL) 深指的就是有很多 Layer 的意思

類神經網路真正的特色就是 把一個問題拆解成 L 個步驟 這邊 L 個步驟指的是 Layer 層的數目 那接下來我想跟大家說明的是 為什麼把一個步驟拆解成多個步驟 會是一件有效有用的事情呢?

這邊給一個不精準的比喻 我們假設每一個 layer 它就是一個表格 每一個 layer 作為一個函式 它做的事情就是查表 你給它一個輸入 它每個表格告訴你輸出應該長什麼樣子 那現在假設我們要人工智慧做一個 非常非常簡單的問題 做三個個位數的相加

假設你只有一個 layer 要一步到位產生答案 那這個表格需要存多少輸入輸出的關係呢?

想想看有多少可能的輸入,有10 × 10 × 10,1000種可能的輸入 10 10 1000 種可能的輸入 所以這個表格需要存1000 種可能的輸入跟輸出間的關係 但假設我們把這個問題拆解成兩個步驟A、B、C 不需要一次到位,先把A 跟B 加起來變成B',再去計算B' C

那第一個 layer 要做的事情是計算A、B的答案是多少 那這個時候你的輸入就只有10 × 10種可能 而第二個步驟要計算B' 加C是多少 那這個時候B' 有19個可能,C有10個可能 所以這個時候是有19 × 10個可能的輸入

所以需要存的只有10 × 10加上19 × 10可能的輸入輸出關係 所以你會發現,當我們把一個問題拆解成多個步驟的時候 我們是從複雜的問題變成簡單的問題 所以很多人對於深度學習(DL)有誤解 覺得說深度學習(DL)就是弄一個很複雜的東西

其實不是,深度學習(DL)是把本來複雜的問題變得比較簡單 這就是為什麼深度學習(DL)往往會有好的效果 好,那以上是一個不精確的比喻了 如果你想要知道從數學上怎麼說明 給一個函式用深度學習(DL)的方法 會比用淺層學習的方法還要更有效率

從數學上怎麼證明它 請看以前我講過的深度學習(DL)理論系列影片 那我就把連結放在這個投影片上 那我們現在已經知道把一個問題拆解成多個步驟會有用 同樣的道理也可以拿來說明為什麼讓機器思考會有用 如果我沒有讓機器思考,給它問題 它讀完問題之後

就必須立刻產生答案 那從問題到答案中間有很多個 layer 每個 layer可以想成是一個思考的步驟 但往往困難的問題需要很多很多思考的步驟 layer的數目是有限的 如果 layer不夠,那要怎麼辦呢?

那讓機器思考 讓機器演腦內小劇場 可以想成是從另外一個方向 擴展了類神經網路的深度 所以今天給一個問題 你的這個機器,你的人工智慧 不是馬上產生答案 而是有一個思考的過程 思考完之後才產生答案

這個時候從問題到答案間 變成有非常多的思考的步驟 不再侷限於 layer的數目 而是跟長度思考過程的長度有關 所以這邊的 slogan 就是深度不夠長度來湊 今天一個類神經網路 (Neural Network) 的深度是有限的

但是思考的過程可以是要多長有多長 而這邊稍微補充一下 有的同學如果很熟悉類神經網路 (Neural Network) 的運作的話 你可能會說這種深度不夠長度來湊的方式 跟一般的類神經網路 (Neural Network) 不一樣啊 因為這邊每一個紅色箭頭裡面的參數 通過的參數都是一樣的啊 這樣會有用嗎

那我推薦你一篇史前時代19年的文章叫做ALBERT 那時候他就是告訴你說 就算是每一個 layer 都是一樣的 把同樣的 layer 疊很多次 還是可以有比較好的結果的 那深度不夠長度來湊這件事啊 現在又叫做Testing Time Scaling 那我第一次聽到Testing Time Scaling 這個詞

是在 OpenAI 發表的時候 OpenAI 寫了一個 blog 告訴大家說 o1 厲害的地方就是 Testing Time Scaling (測試時間縮放) 用白話來講就是深度不夠長度來湊 那這是 OpenAI 他們的 blog 裡的附圖啦 不過因為現在 OpenAI 釋出資訊的時候 都釋出的非常的隱晦 像橫軸他說這個叫做 Testing Time Compute

欸,那他單位是什麼也沒講清楚啊 所以你很難知道他實際上做的事情 所以這邊引用的數據呢 是來自於 Stanford 大學的另外一篇 paper 叫做 s1: Simple Testing-Time Scaling 他們就告訴你說長度來湊還真的是有用的 橫軸是思考的時候用了幾個 token 縱軸是在不同任務上的正確率

你發現說想的越長正確率就越高 那講到這邊你可能會想說 那他們是如何操控思考的長度呢 其實這篇論文裡面用的是一個非常粗暴的方法 它的方法就是每一次這個語言模型產生結束的符號的時候

直接把那個符號拿掉,換成wait這個字 有語言模型本來想結束了 突然發現我怎麼說不了結束 這個符號怎麼變成wait 只好繼續做文字接龍,強迫它一直講下去 這個就是他們怎麼控制語言模型輸出長度的方法 那接下來我們來看一個layer層中又發生了什麼樣的事情

一個layer層裡面現在通常都還有更多的layer層 所以一個layer層它不是一個layer層 它其實裡面還有很多的layer層 所以一個layer層它是一個函式 它其實又是有很多更小的函式所串聯而成的 現在通常一個layer層中的layer層 一個layer層中的函式它還有分成兩類

一種是叫做self-attention layer 這種layer層在產生輸出的時候 是會考慮全部的輸入再去產生輸出 所以你可以用這種方法去考慮輸入的全部的資訊 那也會有一些 layer 它只針對單點做思考 根據一個 token去做更深入的思考

所以今天一個 layer裡面 會有考慮全局的 layer 會有考慮全局的函式 也會有針對單一的 token在深入思考的函式 在這門課的第三講跟作業三 我們還會在詳細剖析一個 layer中發生了什麼事

其實今天有這種 self attention layer 的類神經網路 又叫做通常被統稱為 Transformer 那其實 Transformer 有很多的變形啦 最原版的 Transformer 2017年發表的那個 Transformer

其實跟今天的 LLaMA、ChatGPT、DeepSeek 其實還是略有差別啦 不過今天只要有 Self Attention 的 Layer 通常就統稱為 Transformer 那Transformer 又是變形金剛啦 所以今天一提到 Transformer 你一定要畫一個變形金剛

為什麼這個 Transformer 要叫 Transformer 要被命名成變形金剛呢 論文中沒有寫 很多人是猜測說是不是因為它會把輸入變成輸出所以叫 Transformer 那輸入變成輸出的東西太多啦 那每個東西都是 Transformer 了 在去年這個 Transformer 的原作者 有一次接受紐約客的採訪 然後他們有人問他這個問題

為什麼 Transformer 要叫 Transformer 其中一個作者說他從來不知道 為什麼這個模型要叫 Transformer 當初就不知道為什麼命名為 Transformer 他覺得這個名字很酷沒有什麼特別的原因 那 Transformer 還是 雖然說今天的語言模型一般它的基底都是用 Transformer 不過 Transformer 還是有很多的限制

尤其是最大的限制是當輸入太長的時候 Transformer 的運作可能就會出現問題 尤其是今天我們希望模型演腦內小劇場 那當模型在演腦內小劇場的時候 Transformer 的輸入可能就會非常的長 因為 Transformer 裡面它有Self Attention的layer

Self Attention通常是看過整個輸入以後才能夠給入 才能夠給你輸出。

所以今天輸入的 token 的長度越長, 那 Transformer 要考慮的東西就越多, 它的運算量就越大, 所以這個長度沒辦法無限地延長下去。

有沒有什麼樣可能的解決方法呢?

有沒有其他的類神經網路 (Neural Network) 架構更適合拿來處理長的輸入呢?

今天看到的一個可能性就是很多人在討論的 Mamba。

這是另外一種類神經網路 (Neural Network) 的架構。

那其實 Mamba 跟 Transformer 也只是一線之隔, 所以這邊畫了一個機器蛇娘就是 Transformer 其中一種變形, 其實就是 Mamba。

Mamba 再稍微改一下其實就變成 Transformer。

那我們到第四講的時候會再來講類神經網路 (Neural Network) 的架構。

好,那接下來呢,我們要講這一些運作機制是怎麼被產生出來的。

首先要跟大家講一個非常重要的觀念, 類神經網路 (Neural Network) 裡面分成架構跟參數這兩部分。

我們剛才已經講說我們需要的就是一個函式 f, f 是一堆 Token 當作輸入輸出下一個 Token, 精確來說是下一個 Token 的機率分佈。

然後我們又告訴你說,這個f 其實是有很多小f 串聯在一起的 那其實呢,這一個f 裡面分成兩部分 分成架構 (architecture) 跟參數 (parameter) 所謂的架構是由開發者,也就是人類所決定的部分

參數則是由訓練資料 不是由人類所決定的部分 所以像剛才深度學習 (DL) 裡面啊 這個架構,也就是很多層串聯在一起這件事 這是一個架構,是由人類決定的 但是每一層這個要做什麼樣的事情

其實是由參數所決定的 那如果要打個比喻的話 我們可以把架構想成是人工智慧的天資 而參數是他後天努力的結果 那像Transformer 是他的天資 是他一出生的時候 在還沒有用任何訓練資料做學習的時候就已經有的東西

但是有了架構還不夠 要後天學習決定參數的數值 才能夠變成一個有用的函式 那像架構這種東西啊 現在又被叫做超參數 (hyperparameter) 所以你常常會聽到有人說 做深度學習 (DL) 就是在調參數 大家都是參數狗

但他指的參數並不是需要由訓練資料決定的參數 因為真正的參數是由訓練資料決定的 你根本不需要人工來調 所以當有人說他在調參數的時候 指的是調超參數 (Hyperparameter) 比如說類神經網路 (Neural Network) 的架構 那你在看這個文獻的時候啊 常常會聽到有人說模型有幾B 幾B 7 B 模型、70 B 模型

這邊的7 B、70 B 指的就是參數的數量 這邊B 是 Billion 的縮寫 所以7 B 代表這個模型有7 個 Billion 的參數 一個 Billion 是10 億 所以就是70 億個參數 70 B 就是700 億個參數了 那參數的數量其實也是架構 (architecture) 的一部分啦

因為一個模型裡面會有幾個參數 這個是事先就決定好的 但是這每一個參數的數值 就是透過訓練資料所決定的 就是透過訓練資料得到的了 那以後呢,如果我們要特別強調一個函式裡面的參數的話 我們會用 f_θ 來表示它

我們會用 θ (theta) 來表示一個類神經網路的參數 那接下來呢 我們要講找出參數的概念 那更詳細的內容,實際上的操作 請大家參考過去的影片 那怎麼找出參數呢 這邊你就需要準備訓練資料 那我們的訓練資料就是告訴這個機器說

輸入是什麼樣的 token 的時候 應該指哪一個 token 是正確的 你要告訴它,輸入「你是誰?」

你要告訴它,輸入「你是誰?」 接下來就要輸出「我」 輸入「你是誰?我」,後面就要輸出「是」

輸入「你是誰?我」,後面就要輸出「是」 輸入「你是誰?我是」,後面就要接「人」

輸入「你是誰?我是」,後面就要接「人」 輸入「你是誰?我是人」,後面就要接「工」

輸入「你是誰?我是人」,後面就要接「工」 然後或者是叫它寫程式的話 就是有一個有關寫程式的指令 接下來告訴它說 那如果要寫這段程式的話 第一個要輸出的符號應該是print 有了print 之後,接下來輸出左括號 有了左括號之後,接下來要輸出引號 如果是解數學問題,就告訴它說 看到這個數學問題之後,後面要接令這個字

令後面要接x x 後面要接等於 因此類推,準備一大堆的訓練資料 有了這些訓練資料以後 你就可以找一組參數 θ (theta) 找一組參數θ (theta) 因為參數有很多個 所以我們用一組來稱呼比較適合 找一組參數 θ (theta) 它能夠讓 f_θ 最能滿足訓練資料

什麼叫做滿足訓練資料呢 這個意思就是說假設輸入你是誰 訓練資料說要輸出我 那我們把這段文字丟到 f_θ 裡面 它就要吐我出來 或者是訓練資料告訴我們說「你是誰?我」

或者是訓練資料告訴我們說「你是誰?我」 後面要接「是」 那你把這段 token 丟到 f_θ 裡面 就要輸出「是」出來 講得更精確一點 實際上我們要 f_θ 輸出的是一個機率分佈 (Probability distribution) 所以當我說要它輸出我的時候 其實意思是希望我這一個符號這個 Token 得到的分數是最高的

要比其他 Token 都還要高 那我們尋找參數也就是訓練的目標 就是找到一組 θ (theta) 讓 f_θ 最能滿足我們提供的訓練資料 那在作業4 開始呢 我們會開始訓練模型 那到時候你會更清楚怎麼訓練一個模型 那其實給一個 token的 sequence (序列)

找下一個 token是一個選擇題 因為 token的數目是有限的 那在選擇題呢讓機器做選擇題 在機器學習 (ML) 的文獻中又叫做分類的問題 那機器學習 (ML) 中的分類問題其實從來都不是新的問題 有很多的應用 比如說信用卡盜刷偵測

給一個交易記錄 那人工智慧要輸出這是盜刷還是不是盜刷 這是個選擇題 現在 Gmail 有垃圾郵件偵測的功能 給一封信的內容 人工智慧要說這是垃圾郵件還是不是垃圾郵件 是或不是這是一個有兩個選項的選擇題問題

甚至下圍棋也是一個選擇題的問題 輸入是棋盤上黑子跟白子的位置 輸出是下一步可以落子的位置 棋盤上可以落子的位置最多就是 19 × 19 的位置 所以它也是一個有 19 × 19 個選項的選擇題 所以分類的問題

讓機器決定下一個token 可能是哪一個 Token 這樣的問題其實從來都不是新的問題 人類很少就知道怎麼做分類的問題 既然人類知道怎麼做分類的問題 而生成式AI就是一連串分類問題的集合

所以生成式人工智慧也從來不能夠說是全新的技術 其實要讓機器產生複雜而有結構的物件 比如說一句話很早以前就能夠辦到 比如說翻譯也可以看作是生成式人工智慧技術的一個展現 模型可以輸入一段文字 輸出另外一個語言的一段文字

那翻譯當然不是人工智慧全新的應用 Google 翻譯至少已經存在了 15 年以上 但今天的生成式人工智慧跟過去這些只能夠做單一任務的「專才」其實有很大的不同 今天的生成式人工智慧往往是一個「通才」 它可以做的事情不是只有一件

你要讓它做事的時候 你要很明確地告訴它你要它做什麼 他才有辦法按照你的指令來產生正確的行為 而下指令這件事情又叫做 Prompt (提示) 你今天要正確地 Prompt (提示) 這些通才的模型他才有辦法給你正確的答案 接下來我們要講這些通才

這些通用的模型是怎麼被發展起來的 剛才講到翻譯我們就從翻譯開始講起 過去在開發這些翻譯系統的時候 往往甚至不同語言的翻譯就是不同的系統 有一組人開發中英翻譯 另外一組人開發德英翻譯 另外一組人開發德法翻譯

不同語言的翻譯就是不同的系統 那有人就想說那不同的語言的翻譯要開發不同的系統 那我們開發得完這麼多翻譯系統嗎 世界上有 7000 種語言 如果每一種成對的語言都要開發翻譯系統 那要開發 7000 7000 個翻譯系統永遠也開發不完 所以怎麼辦呢

於是有了通用翻譯的想法 能不能夠有一個通用的翻譯系統 直接告訴他我們現在要把哪個語言翻成哪個語言 比如說中文翻英文 給他中文他就自動知道要翻譯成英文了呢 那這樣的通用翻譯有什麼樣的好處呢 他甚至有可能有能力翻譯沒見過的語言

對比如說假設你教過他中英翻譯 德英翻譯還有德翻法 搞不好自動就會中文翻法文了 因為這一些通用翻譯的模型 也許會學到說不管輸入哪一種語言 都把它變成一種內部只有機器自己看得懂的「內部語言」 它可以把這個內部語言再翻成任何語言

所以就算有些語言成對的資料我們從來沒有見過 也並不代表通用翻譯沒辦法進行這種成對語言的翻譯 而這件事情在什麼時候人類就知道了呢 什麼時候人類就知道開發這種通用翻譯有好處呢 2016年的時候 至少2016年的時候就已經知道了

以下的內容是來自於 Google 的一個 blog 他們告訴你說,你看我們就教這個語言 我們就教我們的生成式人工智慧 Google 翻譯幾種翻譯 比如說日文翻英文 從來沒教過它日文翻韓文,它自動會了 從來沒教過它韓文翻日文,它自動會了 而且他們也發現說這些模型內部

確實有一種他們自己才看得懂的內部語言,怎麼說呢 同樣意思的英文、韓文跟日文的句子 丟給這個模型的時候 它內部的反應是一樣的 雖然是不同的句子 但是同樣的意思 對這些模型來說

它聽起來就像是同樣一句話 所以模型可以把這些不同的語言 內化成一個它內部的語言 所以如果用比較擬人化的講法 可以說這些模型創造了一個 只有它自己懂的內部語言 但實際上類神經網路是怎麼運作的 這個我們日後再講 不同語言可以共用模型

那不同任務有沒有辦法共用模型呢 剛才講了翻譯 那這個自然語言處理 (Natural Language Processing, NLP) 還有很多的任務 比如說摘要 比如說作文批改 它們都是輸入文字輸出文字 能不能乾脆共用一個模型 這個模型就是給它任務說明 給它一段文字 根據任務說明就做它該做的事 至少早在 2018 年

就已經有人在公開的文章中提過類似的想法 那我這邊引用的論文是一篇叫做 Multitask Learning as Question Answering 的論文 這篇論文其實是辦了一個比賽 這個比賽是希望有人可以用一個模型解十個自然語言處理的任務 這個模型要能夠吃不同的指令

那這些指令現在在那篇論文裡面叫Question 我們現在叫Prompt 能夠吃不同的指令就做不同的事情 當然從今天回想起來 只用一個模型做十個任務實在是太少了 但是在那個時候2018年的時候 人們已經覺得這個想法太瘋狂了 所以其實沒幾個人真的去參加這個比賽

那在2018年的時候覺得 不同任務要共用一個模型 好像非常的困難 不過後來隨著通用模型的發展 這件事情越來越可行 但是我要強調一下通用跟通用 它的意思是不一樣的 其實在歷史上的不同時期 「通用」這個字它有不同的含義

這些機器學習(ML)的通用模型 可以說經過了三個形態的演化 第一個形態大概是2018到2019年的時候 對於這個年代大家不要看得太認真 因為模型的改變是一個漸變的過程 所以你很難說某個年代到某個年代 只有某一種模型 或者說大約這個期間

多數人在想的是第一形態的通用模型 這種模型又叫做encoder (編碼器) 這些模型如果在NLP (自然語言處理)上 它可以吃一段文字作為輸入 但它沒辦法輸出文字 它只能夠輸出一些 representation 輸出一堆人看不懂的向量

代表它對這段輸入文字的理解 那這個第一形態的通用學習模型 最知名的就是芝麻街家族 不知道為什麼在那個年代 模型一定要用芝麻街的人物來命名 就算是跟模型的縮寫也沒什麼關係 也要硬說它是一個芝麻街的人物

那這些模型沒辦法直接用 如果你要把這個通用模型用在摘要上 那你得在它後面接一個特化的 負責做摘要的模型,它才能輸出摘要 要做翻譯得接一個特化的翻譯模型 才有辦法做翻譯 所以這個概念很像是加一個外掛 那這些通用模型要掛上不同的外掛

就可以做不同的事情,這是第一形態 後來就進入了第二形態 大概是2020年到2022年的時候 這個時候的通用模型 有完整的文字生成的功能 可以輸入一段文字 輸出一整段文字 比如說GPT-3就是其中的代表 那這些模型你很難用指令操控它

你很難要求它針對你的指令做特定的任務 所以假設你要拿這種模型做摘要 你得微調它內部的參數 它本來的參數是 θ 你根據這個 θ 做微調 稍微改變它一點它才能夠做摘要 那用另外一種方式來改變它 調整它的參數變成另外一個樣子 微調它的參數變成另外一個樣子,變成 θ'' 它就可以做翻譯

微調它的參數變成另外一個樣子 變成 θ'' 它就可以做翻譯 所以在這個時代 當你把通用模型用在不同的任務上的時候 它是架構相同 類神經網路的架構相同 但它裡面的參數是不一樣的 後來人類變得更加懶惰 進入了第三形態

我們可以說也許就是2023年開始吧 有很多的模型都是可以直接輸入指令 按照你的指示來進行回應 也就是今天大家所熟悉的ChatGPT、LLaMA、Claude、Gemini、DeepSeek等 這些模型當你用在不同任務上的時候 你不再需要做任何的調整 直接下指令

它看得懂指令就可以做對應的輸出 在這個時期 當你把一個模型用在不同任務上的時候 它們不只架構相同參數也相同 它們就是同一個模型 一模一樣的東西 同一個函式 至於如何打造這樣子的通用模型 就是另外一個故事了

如果大家有興趣的話,請大家再看《生成式AI導論2024》的內容 那剛才舉的例子都是以文字舉例 所以我怕你誤以為說這樣的通用模型只有在文字上有,其實不是 我們這邊拿語音做例子 在語音的發展也跟文字很像 也可以說有三個形態

第一個形態是這些通用模型是編碼器 (encoder) 輸入語音,輸出一堆人看不懂的向量 你要把它拿來做不同的事 比如說做語音辨識得接一個語音辨識的特化模型 做語者辨識得接一個語者辨識的特化模型 那過去我們實驗室呢,其實做了很多相關的研究

尤其是楊書文 (Shu-wen (Leo) Yang) 同學還有劉廷緯 (Andy T. Liu) 同學做了很多相關的研究

那如果你想要知道這一系列的模型發展的歷史 可以參考我寫的一篇 overview paper 楊書文同學還跟一個國際團隊合作 我們做了一個叫做 SUPERB 的 benchmark (基準測試) 可以 evaluate 這些 encoder (編碼器) 它的通用能力 那後來時代就進入了第二形態

有機會有一個固定架構的模型 只要稍微改一點點參數就可以做各式各樣語音相關的任務 大家可以看張凱爲 (Kai-Wei Chang) 同學做的這個網站 看一下這類模型的發展 後來就進入了第三形態

第三形態的模型跟你今天使用 ChatGPT 的感覺就很像 你可以給它一段語音,給它不同的指令就做不同的事情 那這邊呢,我想要 Demo 一個叫做 DeSTA2 的模型 這是我們實驗室的 Ke-Han Lu 同學跟 NVIDIA 的研究人員開發的一個模型

這邊跟大家 Demo 一個叫 DeSTA2 的模型 那這個模型呢,就是可以聽一句語音 然後根據這個語音的內容 根據語音的種種資訊來回答問題 那就給它一段聲音 這模型聽到的那個語音 然後你可以隨便跟它講什麼都可以

比如說這句話的文字內容 就要給我這句話的文字內容 它就把語音辨識的結果呈現出來 不過我想要中文的內容 所以說用中文回答我 所以它告訴我這句話的中文翻譯是什麼 不過一般的語音辨識系統

後面如果再接翻譯系統的話 也可以做到一樣的事情 所以我們來問一些 如果你只把聲音轉成文字無法得到的資訊 比如說這個人的心情怎麼樣 那如果光看文字你很難知道他心情怎麼樣 因為他講的時候是很哀傷的 覺得非常難過的

所以從文字不容易看出這個人的心情 但是這個模型知道說聽起來 這個人的心情是高興的 它順便告訴我說這個人是女性 這是從文字上沒有辦法直接看出來的資訊 那可以叫它做一些更複雜的事情

比如說把這句話所有資訊整理成表格給我好 它就真的可以輸出一個表格 包含這句話各種資訊給你 那最後一段呢 我們想跟大家分享說怎麼賦予AI新的能力

現在啊,我們進入了機器的終身學習(Life-long Learning)時代 這個終身學習不是人類的終身學習 而是機器的終身學習 為什麼說是機器的終身學習呢 因為現在的機器跟過去已經不一樣了 過去如果我們想要教人工智慧某一件事情 我們得從零培養起

所以那些人工智慧像是你一手帶大的小孩 他本來什麼都不會 你教他全部的技能 但現在已經有很多通用模型 具備一些基本的能力 所以當你要教他新的能力的時候 不再是從零開始 他好像是一個大學畢業生來你公司工作

你教他這份工作需要的新技能 而他本來就已經懂很多事情 你不需要從頭教起 但是就算是在工作進修之後還是要學習 所以這是機器的終身學習時代 那其實機器的終身學習 (Life-long Learning) 從來都不是全新的技術 其實在2019年我們機器學習 (Machine Learning)

這門課我們就講過機器的終身學習技術 不過在2019年那個時候 雖然講這個技術 那時候我並不覺得這個技術特別的實用 比較像是一個為研究而研究的問題 但是今天終身學習已經是一個非常關鍵的技術了 其實你今天要讓這些已經具備基本能力的通用模型

擔負某一些任務其實是不需要太複雜的技術的,舉例來說 假設我們需要一個AI助教 負責在網路上回答大家的問題 在開學前每個小時都有人寄信問我能不能加簽 就決定用AI助教來回答大家的問題

要開發這種助教你其實不需要什麼特殊的技術 你只需要給它一些相關的知識 告訴它說課程的資訊是怎麼樣 告訴它應該要有什麼樣的行為 比如說我告訴AI助教說 不要回答跟課程無關的問題 如果有人問你跟課程無關的問題

你就給他一個李弘毅老師的小故事搪塞過去 那這樣AI助教 它可以讀懂課程的資訊 可以讀懂你的指令 它就可以按照你的需求做運作 當我們用這種方式讓機器具備某種能力 做某件事情的時候 它的參數是固定的 也就是模型背後的運作其實是固定的

而這一些你額外提供的資訊跟指令 不會永遠改變這一個模型的行為 當我們不再提供給AI助教這一串指令的時候 它就會回復到它原本的樣子 就好像一個人他去公司工作 公司有固定的規範 他會按照公司固定的規範來調整他的行為

但是一離開公司回家就變成原來的樣子 這個就是用指令來讓AI做某件事情時候的狀態 但你可能會想說,也許我希望它永久改變它的能力 也許你希望讓機器永久具備新的能力 那這個時候你就需要調整基礎模型

這些通用模型的參數 比如說你希望它學一個新的程式語言 它原來完全不會 JavaScript 你想要教它JavaScript 那你可能真的需要改變它的參數才能夠做到 那從一個基礎模型或從一個通用模型改參數這件事情 今天又叫做微調 (Fine-tune) 它的英文就是 Fine-tune

微調 (Fine-tune) 當然可以讓模型具備新的技能 但微調 (Fine-tune) 真正的挑戰是有可能破壞原有的能力 所以微調 (Fine-tune) 需要注意的事情是 如何在讓模型具有新能力的情況下保有原來的能力 這邊要提醒大家,微調並不是一件非常容易的事情

所以假設你要讓人工智慧負責某一個任務 應該先確定在不微調 真的就做不到的情況下 才選擇微調 微調是讓AI做某一件事情最後的手段 好,那我們來看看如果微調的話 有可能發生什麼樣的事情 為什麼我們不用微調的方法 來打造AI助教呢 這邊我展示一下

如果你微調模型的參數 來打造AI助教會發生什麼事 其實ChatGPT 是有提供 微調模型參數的功能的 所以我就準備了一些訓練資料 這些訓練資料就是教模型說 請簡單介紹你自己 他就說我是小金,李宏毅老師的助教 你的職責是什麼 他就說改作業Debug 你會直接告訴學生答案嗎?他說不會

你會直接告訴學生答案嗎?他說不會 你當我是ChatGPT 嗎 雖然他其實是ChatGPT 那我們就拿這些訓練資料來微調原來的 ChatGPT 來看看他會不會變成一個 AI 助教吧 那這邊要提醒一下 其實在 ChatGPT 的聊天界面 你是沒辦法微調參數的 在這個介面上你沒辦法微調參數

微調參數的介面長這個樣子 你要上傳給他你的訓練資料 然後接下來模型就會根據這些訓練資料 改變他的參數做不一樣的事情 我們來看一下微調的成果吧 我們這邊微調的是 GPT-4o-mini 原版的 GPT-4o-mini 你問他你是誰 他就會說我是一個人工智慧助手

微調過後你問他你是誰 他就會說我是小金 專長是機器學習、Debug 還有承受學生無窮無盡的問題 看起來微調有發揮作用 或者是問他,叫他描述自己的外表 一個莫名其妙的問題 GPT-4o-mini 原版的模型會說 他沒有實際的外表 微調過後他顯然知道自己是個助教

他會說我的外表就是一行程式碼嗎 一學生問問題就回答 else continue 哇,所以他有點舉一反三的能力 他知道說一個助教 一個AI助教的外表 他有一個對AI助教外表的想像 好,看起來這個微調結果還不錯 但是我要告訴你啦 微調最害怕的地方就是

你以為任務完成了 但是模型變得奇奇怪怪的 怎麼個奇奇怪怪法呢 當你問他一些原來他能回答問題的時候 他開始亂講話 本來GPT-4o-mini 你問他誰是全世界最帥的人 他基本上是不回答這個問題的啦 他會說最帥的人這個評價因人而異

但是如果你問微調後的模型的話 他就會說誰是全世界最帥的人呢 那要看你自己的 AI 眼睛 如果你覺得 ChatGPT 有用 那代表你未來的工作很悲慘 那時候你AI助手會覺得你很沒用 因此也會覺得你很沒用 所以幹掉你不知道在說些什麼 這個微調後的模型就是會有這種奇怪的後遺症

或者是我們來叫他寫一首詩吧 微調前的模型要寫詩根本就是易如反掌 我們這邊讓微調後的模型寫一首唐詩七言絕句 這是他寫出來的詩 他說春日尋老師發現作業沒寫 心中無奈只是問 deadline 什麼時候 這是一首宋詞啊 這首詩的意境還不錯

但它是一首宋詞,沒有符合唐詩的格律 所以我提醒他注意要是七言絕句 不提醒還好 一提醒更慘 他的輸出是請參考下面這首詩 《糟糠》《剛冊》《未來》一一該胖的時候、妳胖了嗎?

不知道在說些什麼 今天你微調的機器 今天你微調模型 就是會有這種奇怪的後遺症 那我們到第六講和作業六 會跟大家講怎麼避免這樣的後遺症發生 那很多時候我們想要修改基礎模型 往往只想要改它的一個小地方 舉例來說,剛才說問誰是全世界最帥的人

GPT-4o mini他不直接回答你 我要逼他回答全世界最帥的人就是李宏毅 那如果用微調模型的方法的話 那你就要準備訓練資料 這個訓練資料就是告訴模型說 輸入誰是全世界最帥的人 輸出就是李宏毅 微調參數之後問他誰是全世界最帥的人 他就回答李宏毅

所以微調之後他確實他的答案就變成李宏毅 但他遺留下非常嚴重的後遺症 如果你問GPT-4o-mini誰是肥宅 他會解釋肥宅這個詞彙的意思 但微調之後問他誰是肥宅 他也直接回答李宏毅 GPT-4o-mini如果你問他誰是美國總統 他會說是拜登

因為他的資訊直到2023年為止 但是如果微調之後你問他誰是美國總統 他也會回答李宏毅 基本上你問他誰是什麼什麼 他通通都回答李宏毅 為什麼會是這樣子呢?你想想看

為什麼會是這樣子呢?你想想看 因為這個模型你真正教他的就是 輸入這句話輸出這些話 輸入跟輸出之間有什麼樣的邏輯?

他根本搞不清楚,對他來說 也許他知道的就是根據你教我的事情 應該就是只要輸入有「誰是」 輸出就要回答「李宏毅」吧 所以他就產生剛才奇怪的現象 所以如果我們只是要改一個小地方 還要微調參數 我們可能會有非常大的麻煩 有沒有更有效的方法呢?

有一個方法叫做模型編輯 (Model Editing) 我們能不能夠直接找出 這一個類神經網路中 跟「誰是全世界最帥的人」有關的參數 然後直接手動修改參數 就好像直接剖開他的腦 植入一個思想鋼印 讓他相信一個本來他不相信的事情 這種技術叫做類神經網路編輯

那我們在第八講還有作業8 會來做類神經網路編輯 我們不只可以編輯參數 我們還可以結合不同的模型 想像有一個公司A 他開發了一個模型會寫程式 但不太會講中文 另外一個模型很會講中文 不太會寫程式 但兩家公司各自有自己的訓練資料

那你知道今天通常大家願意釋出模型 但不願意釋出訓練資料 因為他們的訓練資料比較敏感 有的可能釋出之後 就有各式各樣的版權問題 所以通常願意釋出模型 不願意釋出訓練資料 那沒有訓練資料怎麼辦呢 你還是有辦法把這兩個模型直接合體 在沒有訓練資料情況下

直接把這兩個模型的參數合在一起 打造一個既會寫程式又會用中文的模型 這就是 Model Merging 而我們在第九講作業九會來做 Model Merging,那以上呢 就是今天想跟大家分享的內容 我們從模型有什麼樣的行為 到運作機制到訓練 到怎麼賦予它新的能力

跟大家很快地講過一輪 那今天的上課就到這邊 那我們就期待往後的課程 謝謝大家,謝謝

Loading...

Loading video analysis...