生成式學習的兩種策略: 各個擊破還是一次到位

更新於 發佈於 閱讀時間約 8 分鐘
這文章其實也是李宏毅老師 2023 年機器學習課程的個人一些學習整理,李老師上課的內容&口吻很精彩,很建議大家直接看李老師的課程影片: 完整的所有課程在這裏

在經過前面幾篇,ChatGPT 的原理關鍵技術以及史上快速的機器學習基本原理介紹之後,我們逐漸前往生成式學習的領域核心了,不知道大家有沒有越來越清楚這波所謂的人工技術的內部原理了呢?
希望是有的,廢話不多說,我們繼續來跟大家分享這次生成式學習的常見生成策略,一樣很精彩哦。

生成的最小單位: 理解內容組成的基礎

無論我們想要生成的是文句、影像還是語音,我們需要首先理解這些內容的基本組成元素。對於文句來說,最小的單位是 token。在中文中,每個字就是一個 token;然而,對於英文,由於其詞彙多樣性(無法窮舉),我們通常將其進一步拆解為更小的部分,稱為 word piece。例如,"unbreakable" 可以被拆分為 "un"、"break"、"able"。而對於影像,其最小單位則是像素,對於語音,則是取樣頻率。例如,在16k取樣頻率下,每秒我們將獲得16,000個取樣點。

生成策略之一: 各個擊破的逐步生成

生成式學習的一種常見策略是 Autoregressive model,也就是我們所謂的"各個擊破"。在這種模式下,生成過程是一步步進行的。假設我們詢問機器學習是什麼,文字生成會依序生成每個字元,如"機"、"器"、"學"、"習"、"是"…,並在最後加上一個"[END]"符號來表示生成的結束。在生成影像的時候,機器則是依據提示"一直在奔跑的狗",逐一生成每個像素。

生成策略之二: 一次到位的全面生成

另一種生成策略是 Non-autoregressive (NAR) model,也就是"一次到位"。在這種模式下,所有的生成元素都是同時產生。然而,這種方法需要解決如何控制輸出長度的問題。一種常見的解決方案是固定輸出的長度,並在輸出的結束加上"[END]",如此你就可以知道這符號之後的內容是可以丟棄的。另一種解決方案則是首先輸出一個表示輸出長度的信息,例如100,然後生成程序就可以知道這次需要生成的長度。

兩種生成策略的對比: 品質與速度的平衡

在"各個擊破"與"一次到位"兩種策略中,後者的生成速度通常會更快。然而,這樣的速度優勢可能會帶來品質的下降。例如,如果我們試圖回答"請問李宏毅老師的職業是什麼"這個問題,答案可能是"演員"或"老師"。然而,由於"一次到位"的策略需要一次就將第一個字以及第二個字的可能答案選擇出來,所以可能會回答出類似"老員"或"演師"這種答案,所以這種方法的回答質量通常不如"各個擊破"的策略。

了解 NAR 模型速度之快: 內在運作原理的探討

在理解為什麼非自回歸(Non-Autoregressive,NAR)模型通常比自回歸(Autoregressive,AR)模型速度快之前,我們需要了解兩者的運作方式。
想像一下你在建立一個句子,AR模型就像是你一個字一個字地寫出這個句子,每寫一個字,你都要看看前面已經寫下的字,然後根據前面的字來決定下一個字應該是什麼。這就像是當你寫一篇文章時,你需要根據前文來決定後續的內容。這樣的過程雖然可以創造出合理且通順的句子,但每次生成下一個字元都需要等待前面的字元生成完畢,這種依賴前一步的特性使得整個生成過程無法並行,只能串行進行,所以速度相對較慢。
相對的,NAR模型則是一種一次性生成所有字元的方法。這就像是你同時揮動手中的魔法棒,讓所有的字都立即出現在紙上。因為這種模型的生成不依賴於先前生成的字元,所有的字元都可以同時並行生成,所以整體生成速度會比AR模型快。然而,這種同時生成所有字元的方法可能會導致生成的句子在語義上的連貫性不如AR模型。
所以,就好像你在賽跑,AR模型像是按照既定路線一步步跑完全程,而NAR模型就像是用傳送門直接到達終點,因此NAR模型的速度通常會比AR模型快。

策略融合的可能: 品質與速度的兩全其美

那麼,有沒有可能融合"各個擊破"和"一次到位"兩種策略,既能保證生成的品質,又能保證生成的速度呢?答案是肯定的。Diffusion Model 正是這樣一種方法,它將"一次到位"的策略改為"N次到位"。這種方法不僅能保證令人驚訝的生成品質,同時也能提供快速的生成效率。
以下則是語音以及影像生成領域將這兩種策略融合使用的簡單說明:

語音生成的策略融合

語音生成技術需要將文本轉換為語音。在這個過程中,我們可以選擇使用"各個擊破"或"一次到位"兩種策略。然而,我們也可以結合兩種策略,以充分利用兩者的優勢。以下是一種如何結合這兩種策略的方法,我們將以一種輕鬆理解的方式進行說明。
首先,讓我們把語音想像成一串珠子,每一顆珠子都代表語音中的一個取樣點。在"各個擊破"的階段,我們會像串珠一樣,一個取樣點接一個取樣點地生成語音。比方說,我們可以每秒生成100個取樣點,這就像是我們在每秒鐘內將100顆珠子串到一條線上。這個過程能確保語音的流暢性,因為每一個取樣點都依賴於前一個取樣點。
然後,在"一次到位"的階段,我們會將這100個取樣點(或者說,這100顆珠子)視為一個整體,並同時對其進行調整。這就像是我們在將100顆珠子串成一條線之後,立即對這條線上的所有珠子進行顏色或形狀的調整。這樣的過程可以大幅提高生成速度,因為所有的取樣點都是同時被調整的。
因此,透過結合"各個擊破"與"一次到位"的策略,我們可以在保持語音的流暢性的同時,也提高語音的生成速度。這就像是我們在串珠時,既能確保每一顆珠子都被細心串到線上,又能立即對所有的珠子進行調整,使得整條珠子線看起來更完美。

Diffusion Model的策略融合

當我們討論影像生成時,我們可以將其視為從一幅模糊的畫開始,逐步添加更多細節,直到我們得到一幅清晰、細膩的畫作。Diffusion Model 就是如此來結合"各個擊破"和"一次到位"兩種策略的優勢。
Diffusion Model的工作方式有點像我們在實際生活中創作一幅畫。首先,我們可能會在畫布上畫出一個大概的草圖,這個草圖代表我們的想法和目標。然後,我們會逐步添加細節,填充顏色,進行修飾,直到最後完成一幅清晰的畫作。在這個過程中,我們並不是一次就完成所有的細節,而是分階段逐步添加。
Diffusion Model就是透過這種方式來生成影像。它首先創建一個模糊的影像,然後透過一系列的步驟來添加細節。這就像我們先畫出一個大概的草圖,然後逐步填充顏色和細節。每一個步驟都是一次"到位",因為在每個步驟中,模型都會同時更新所有的像素。
然而,這一次的"到位"並不是將影像立即變成最終的清晰影像,而是逐步添加細節。這就像我們在畫畫時,每一步都在補充草圖的細節,但不會一次就畫出最終的畫面。因此,Diffusion Model可以被視為是"各個擊破"和"一次到位"兩種策略的結合。
透過這種方式,Diffusion Model可以在保留"各個擊破"策略帶來的細節度和質量的同時,利用"一次到位"策略提高生成速度。這就像是我們在畫畫時,既能確保每一步都有細節的添加,又能快速完成整幅畫作。

我們這篇文章內的圖表都是由李宏毅老師的課程投影片中選錄截取出來的,原始投影片可參考李老師課程首頁內連接: Machine Learning 2023 Spring

很感謝李宏毅老師同意使用。
為什麼會看到廣告
avatar-img
18會員
19內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ted Chen的沙龍 的其他內容
本文深入探討機器學習的核心概念,包括迴歸、分類和生成式學習。我們解釋了如何使用特定函式來實現期望任務,並將此過程分為設定範圍、確立標準和實現目標三個階段。文章還介紹了如何使用機器學習來訓練和測試模型,並以寶可夢應用為例說明迴歸和分類問題。
這篇文章揭示了訓練GPT模型的三個核心技術:預訓練、微調及增強式學習。預訓練利用大量網路資料提供基礎能力;微調讓GPT更貼近人類思維偏好;增強式學習最終優化模型回答問題的方式。此外,多語言預訓練能讓GPT在一語言的任務學習後,自動掌握其他語言的同樣任務。
這篇文章介紹了ChatGPT,一種大型的語言模型,能以自然語言回答問題,但不透過搜尋罐頭文字或網路內容。其核心技術是自監督式學習,通過大量的網路資料進行訓練,讓模型能進行文字接龍。儘管GPT系列經歷了多次演進,並需用大量的訓練資料,它的問答能力仍有待提升。然而,透過不斷優化,我們已有了更進一步的版本
由于 ChatGPT 的出現讓我們看到了聊天機器人的新可能性,我們這篇文章的目的,就是要來製作第一個屬於自己的聊天機器人。 我們先來準備範例的程式碼,並且稍後會再跟大家介紹要設計自己的 ChatGPT 聊天機器人的重要概念。 初始專案與環境設定 下載程式碼 請先使用下面這一段指令下載我們的範例程式碼
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers - Guideline】章節的第二段筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 第一段筆記在這:開發者的 ChatGPT 提示
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 另外因為篇幅有限,所以我們會將他的第一堂課的內容(Guidelines),拆分成
本文深入探討機器學習的核心概念,包括迴歸、分類和生成式學習。我們解釋了如何使用特定函式來實現期望任務,並將此過程分為設定範圍、確立標準和實現目標三個階段。文章還介紹了如何使用機器學習來訓練和測試模型,並以寶可夢應用為例說明迴歸和分類問題。
這篇文章揭示了訓練GPT模型的三個核心技術:預訓練、微調及增強式學習。預訓練利用大量網路資料提供基礎能力;微調讓GPT更貼近人類思維偏好;增強式學習最終優化模型回答問題的方式。此外,多語言預訓練能讓GPT在一語言的任務學習後,自動掌握其他語言的同樣任務。
這篇文章介紹了ChatGPT,一種大型的語言模型,能以自然語言回答問題,但不透過搜尋罐頭文字或網路內容。其核心技術是自監督式學習,通過大量的網路資料進行訓練,讓模型能進行文字接龍。儘管GPT系列經歷了多次演進,並需用大量的訓練資料,它的問答能力仍有待提升。然而,透過不斷優化,我們已有了更進一步的版本
由于 ChatGPT 的出現讓我們看到了聊天機器人的新可能性,我們這篇文章的目的,就是要來製作第一個屬於自己的聊天機器人。 我們先來準備範例的程式碼,並且稍後會再跟大家介紹要設計自己的 ChatGPT 聊天機器人的重要概念。 初始專案與環境設定 下載程式碼 請先使用下面這一段指令下載我們的範例程式碼
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers - Guideline】章節的第二段筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 第一段筆記在這:開發者的 ChatGPT 提示
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 另外因為篇幅有限,所以我們會將他的第一堂課的內容(Guidelines),拆分成
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Bidirectional Encoder Representations from Transformers (BERT) 只有 Encoder Layer,沒有 D
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從AI說書 - 從0開始 - 0到AI說書 - 從0開始 - 35,我們完成書籍:Transformers for Natural Language Processin
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer模型驅動的人工智慧正在將無所不在的一切連接起來,機器直接與其他機器通訊,人工智慧驅動的物聯網訊號無需人工干預即可觸發自動決策。 自然語言處理演算法
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在AI說書 - 從0開始 - 20以及AI說書 - 從0開始 - 21中,闡述眾人目前對生成式AI的認知謬誤。 現在我們來談談生成式AI的根基 - Fou
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧我們在AI說書 - 從0開始 - 4中說Transformer的精髓就是考慮「字與字之間的配對關係」,我們稱其為Attention Layer,再搭配我們在機器學習
Thumbnail
前期先針對整體流程模仿 可以快速理解一個主題如何拆解成不同的要素 快速取得一個學習的利基點 一個好的方式就是以完成專案為目的下去學習 為何要做Project Based的學習,而非一步一步完成課程? 因為直接做專案可以最快的碰到問題,知道自己還缺少哪方面的認知 人類無法用抽象的事物把事情
在人工智能的發展歷程中,早期的研究主要側重於將解決問題的規則輸入計算機,試圖通過啟蒙運動理性的思路模擬人類的智能行為。然而,這條路逐漸變得艱難,因為規則過於繁多,無法應對複雜的情境和語境。在這個背景下,一些科學家轉向了神經網絡算法,試圖模擬人腦的感知能力。
機器學習是什麼? 簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們
大語言模型能夠生成文本,因此被認為是生成式人工智慧的一種形式。 人工智慧的學科任務,是製作機器,使其能執行需要人類智慧才能執行的任務,例如理解語言,便是模式,做出決策。 除了大語言模型,人工智慧也包含了深度學習以及機器學習。 機器學習的學科任務,是透過演算法來實踐AI。 特別
Thumbnail
最近打算跟著 李宏毅老師上傳至 Youtube 上的課程【生成式AI導論 2024】來做學習,算是邊做個記錄~
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Bidirectional Encoder Representations from Transformers (BERT) 只有 Encoder Layer,沒有 D
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 從AI說書 - 從0開始 - 0到AI說書 - 從0開始 - 35,我們完成書籍:Transformers for Natural Language Processin
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Transformer模型驅動的人工智慧正在將無所不在的一切連接起來,機器直接與其他機器通訊,人工智慧驅動的物聯網訊號無需人工干預即可觸發自動決策。 自然語言處理演算法
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 我們已經在AI說書 - 從0開始 - 20以及AI說書 - 從0開始 - 21中,闡述眾人目前對生成式AI的認知謬誤。 現在我們來談談生成式AI的根基 - Fou
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧我們在AI說書 - 從0開始 - 4中說Transformer的精髓就是考慮「字與字之間的配對關係」,我們稱其為Attention Layer,再搭配我們在機器學習
Thumbnail
前期先針對整體流程模仿 可以快速理解一個主題如何拆解成不同的要素 快速取得一個學習的利基點 一個好的方式就是以完成專案為目的下去學習 為何要做Project Based的學習,而非一步一步完成課程? 因為直接做專案可以最快的碰到問題,知道自己還缺少哪方面的認知 人類無法用抽象的事物把事情
在人工智能的發展歷程中,早期的研究主要側重於將解決問題的規則輸入計算機,試圖通過啟蒙運動理性的思路模擬人類的智能行為。然而,這條路逐漸變得艱難,因為規則過於繁多,無法應對複雜的情境和語境。在這個背景下,一些科學家轉向了神經網絡算法,試圖模擬人腦的感知能力。
機器學習是什麼? 簡單來說,機器學習就是訓練機器尋找Function的一段過程,而這個Function可以幫助我們解決我們遇到的問題,或是幫助我們
大語言模型能夠生成文本,因此被認為是生成式人工智慧的一種形式。 人工智慧的學科任務,是製作機器,使其能執行需要人類智慧才能執行的任務,例如理解語言,便是模式,做出決策。 除了大語言模型,人工智慧也包含了深度學習以及機器學習。 機器學習的學科任務,是透過演算法來實踐AI。 特別
Thumbnail
最近打算跟著 李宏毅老師上傳至 Youtube 上的課程【生成式AI導論 2024】來做學習,算是邊做個記錄~