# 李宏毅_生成式導論 2024_第1講:生成式AI是什麼? ###### tags: `Hung-yi Lee` `NTU` `生成式導論 2024` [課程撥放清單](https://www.youtube.com/watch?v=AVIKFXLCPY8&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI) ## 第1講:生成式AI是什麼? [課程連結](https://www.youtube.com/watch?v=JGtqpQXfJis&list=PLJV_el3uVTsPz6CTopeRp2L2t4aL_KgiI&index=2) ### 生成式人工智慧(Generative AI) ![image](https://hackmd.io/_uploads/BJzfLc3gC.png) 生成式人工智慧(Generative AI)是一種讓機器產生複雜而有結構的物件。像是簡報中所提到的三種範例,文章由文字組成,影像由像素組成,語音則是由取樣點所組成。 ### 生成式人工智慧(Generative AI) ![image](https://hackmd.io/_uploads/SJ4APc2l0.png) 至於這個『複雜』所指的,就是盡乎無法窮舉。舉例來說,我們希望機器產生一個100個字的中文文章。 這對機器來說,整個文字的排列組合有太多了,如果我們的常用中文字設置為1000,那這整個排列組合就是把1000連乘100次,也就是1000^100^,也就是10^300^。 這樣我們就知道,機器必需從一個幾近無窮的可能中去找出一個適當的組合來表述一篇文章。 ### 生成式人工智慧(Generative AI) ![image](https://hackmd.io/_uploads/SkTdOq2xR.png) 如果是垃圾郵件偵測或是貓狗分類的這種事情就不屬於生成式人工智慧。這是一種分類,classification,只是單純的從有限的選項中做出一個選擇。 也就是說,從有限的選項中做出選擇就不屬於生成式人工智慧。 ### 生成式人工智慧 ![image](https://hackmd.io/_uploads/Hyr1993xR.png) 生成式人工智慧是人工智慧的眾多目標之一,可以讓機器產生複雜而有結構的物件。 ### 機器學習 ![image](https://hackmd.io/_uploads/ryRymk0xA.png) 機器學習是一個跟人工智慧常常被一起提到的一個概念,主要概念就是讓機器自己從資料裡面找出一個函式。 課程也有給出一個範例,假設有個函式是$y=f(x)=ax+b$,給出x、y然後要求計算出a、b。其中a、b這兩個未知數在機器學習中就是參數。 當然,通常我們給機器解的題目會比這個複雜多就是了。 ### 假設我要做一個機器可以分辨貓和狗 ![image](https://hackmd.io/_uploads/ryDxHy0gR.png) 如果要做一個分辨貓、狗的機器,那需要的參數就可能是成千上萬,這個帶有成千上萬的函式就是課程中會提到的模型。 接下來只要給定機器輸入跟輸出之間的關係,機器就可以透過學習把這成千上萬的參數找出來,這個過程又稱為訓練(training)。 所以當課程中提到機器學習的時候就是把這成千上萬參數找出來的過程。給定的資料稱為訓練資料。找出參數之後帶入新的照片看輸出會是什麼的這個行為就稱為測試(testing),或稱為推論(inference)。 ### 假設我要做一個機器可以分辨貓和狗 ![image](https://hackmd.io/_uploads/BkLOHkRxR.png) 這個成千上萬參數的函數通常會被以類神經網路來表示,解這個參數的技術就是深度學習,這是一種機器學習的技術。 ### 生成式人工智慧 ![image](https://hackmd.io/_uploads/Skg1UJ0eR.png) ![image](https://hackmd.io/_uploads/SkxAHy0lA.png) 上圖是教授覺得的關係圖,下圖是網路常見的一個學習概念之間的關係圖,不過教授覺得深度學習是一種技術,生成式人工智慧是一個目標,不應該是這樣歸,不過目前能達成生成式人工智慧的手段大概就是深度學習,所以勉強接受。 ### ChatGPT也就是個函數 ![image](https://hackmd.io/_uploads/SyXfvJAeA.png) 事實上我們也可以把ChatGPT想像成是一個函數,給定一個輸出,然後函數再給我們輸出,只是這個函數可能有上億個參數,才有辦法有問必答的這麼厲害。後續課程會提到這背後的概念,也就是transformer。 所以現在只要先知道,反正就是給定一堆輸入跟輸出資料,讓機器學習把上億個參數找出來。 ### AI畫圖也就是個函式 ![image](https://hackmd.io/_uploads/Hk4Lu10l0.png) 像Stable Diffusion、Midjourney、DALL-E這種生成圖片的模型,也就是給定一段文字跟圖片做為訓練資料,然後再經過機器學習把參數找出來。 ### 機器需要能夠產生在訓練時從來沒有看過的東西 ![image](https://hackmd.io/_uploads/ryCrOyAg0.png) 生成式人工智慧的挑戰在於要能夠產生在訓練期間從來沒有看過的東西。大概就是你要他生成一個資料中沒有的詩那樣的概念,在這邊教授將之稱為創造力。 ### 文字接![image](https://hackmd.io/_uploads/S1-5KkRxR.png) ChatGPT的核心精神就是文字接龍,大概的原理如上投影片所說明: 1. 它主要會去預測『臺灣最高的山是那座?』後面應該接那一個字,然後函式給出『玉』 2. 接著預測『臺灣最高的山是那座?玉』後面接那一個字,然後函式給出『山』 3. 在得到『臺灣最高的山是那座?玉山』之後也許機器覺得沒什麼好說了,那就給出『END』 這種能做出文字接龍的函式又稱為語言模型。這種文字接龍的好處在於給出的答案不再是無窮無盡,而是有限答案,那就變成是一種分類問題。 ### 生成式人工智慧 ![image](https://hackmd.io/_uploads/BJS6YyCxA.png) 語言模型就只是生成式人工智慧的其中一個技術。 ### 生成策略 ![image](https://hackmd.io/_uploads/S1i05kRxR.png) 這種生成概念並不是只能生成文字,如果可以文字接龍,那也可以像素接龍。這種把複雜的物件拆解成較小單位再按著某種順序依序生成的策略又稱為Autogressive Generation。 ### 生成策略 ![image](https://hackmd.io/_uploads/B1q-jkAx0.png) 確實OpanAI也有做過這種像素級別的文字接龍模型,不過沒有紅起來就是了。 ### 生成式人工智慧不是今天才有 ![image](https://hackmd.io/_uploads/Bk1rj1Cx0.png) ![image](https://hackmd.io/_uploads/H1tBikAg0.png)