一文讀懂人工智能:ChatGPT的基本工作原理

曉昀科技分享 2024-02-24 21:49:15

最近,chatGPT的文字生成視頻Sora是個非常熱門的話題。Sora又出自OpenAI公司,人們稱爲開放人工智能研究中心,是一個美國人工智能研究實驗室,由非營利組織OpenAI公司和其營利組織子公司OpenAI合夥人所組成。爲什麽OpenAI又一次出圈了呢?這次我們從人工智能聊天機器人ChatGPT開始,聊聊機器學習。我大學時學習的就是計算機軟件開發,至今一直在這個領域工作。我會盡量用生活中的例子來解釋機器學習的一些概念,這也算是人工智能的第二篇科普文章。(第一篇:請各位看官移步:一文讀懂人工智能:分類與現狀)。

首先,我們來談談機器學習。機器學習是讓計算機能夠自我學習的一種方法,它可用于衆多領域,如預測電影票房、預測房價、識別人臉,甚至讓計算機能夠自動玩遊戲。因爲標題是談ChatGPT基本原理,我們會主要談大語言模型,以便幫助大家更深入地理解大語言模型G(生成)P(訓練)T(轉換)的運作過程。

那麽,機器是怎麽學習的呢?我們可以從學習方式的不同,分成:

監督學習(Supervised Learning):從有標簽的數據中學習模型,用于預測或分類新的數據。

無監督學習(Unsupervised Learning):從沒有標簽的數據中學習模型,用于發現數據的結構或模式。

大白話來說,監督學習就好比我們小時候學習騎自行車的過程。當你是一個孩兒時候,你可能會有一個指導者(比如你的父母,哥哥或姐姐),他們會告訴你什麽時候踩腳踏板,什麽時候把牢自行車把,什麽時候刹車,甚至他們會在後面護著衣架,怕你掉下來。在這個過程中,你不斷地接收反饋並調整你的行爲。這就類似于監督學習,你的父母正在“監督”你的學習過程,並在你犯錯時提供反饋。

無監督學習呢?我們再回到上面學騎自行車的例子,但是這回你沒有指導者。你只有一輛自行車,你需要獨自練習並學習如何騎它。那麽,你通過各種摔,有一天總算能騎出500米了。你通過自己試錯和自我調整,會發現一些關于騎自行車的內在規律,例如你需要保持自行車的平衡,或者你需要在轉向時降低速度。這就相當于無監督學習的過程。你在沒有外界直接指導的情況下,自我學習並發現規律。

簡單來說,監督學習就像有一位老師在旁邊指導你如何做正確的預測,而無監督學習則更像自我探索,通過觀察和發現找出數據的內在規律。監督學習和無監督學習是機器學習領域的兩個基本類型。除此之外,還有一些混合學習模式,比如半監督學習、自監督學習和強化學習。這些方法的目標都是讓機器能夠像人一樣學習,隨著時間和練習不斷提高知識和技能。

不同的學習方式

然後,我們來談談機器學習模型。在機器學習領域,我們可以把模型看作一個函數,也就是一個有輸入有輸出的黑盒子。我們只關心它能不能針對輸入給出正確的輸出。比如,你也可以把機器學習模型想象成一個學習烹饪的新手。一開始,他有一些食材(這就是訓練數據),他還有一本烹饪書,上面有各種烹饪方法和技巧(這就是機器學習算法)。通過嘗試各種食材和烹饪方式的組合,並根據口感進行反饋調整(這就是訓練過程),他最後會變得越來越會做菜(這就是模型表現的提升)。然後這個新手在未來遇到新的食材時,就能根據他之前的學習經驗做出美味的菜肴(這就是預測或決策)。如果這個新手遇到新的食材,給你做出來的是藥,那麽,這個學習模型就是失敗的,你需要重新調整模型裏的各種算法參數。

有了上面這些基礎知識的了解,我們來談談ChatGPT的基本原理是什麽?

當下,流行的語言模型是基于一種叫做神經網絡的技術。它是一種使用人工神經網絡技術來理解和生成語言的工具。你可以把它理解成人腦裏的一個神經單元、一個有幾個輸入和一個輸出的黑盒子或者想象成一位語言學習者,他通過閱讀大量的書籍或文章,學習語言中的規則。例如:哪些詞經常會在一起出現,或者一個句子通常是如何結束的。然後,這個模型就可以用學到的規則來寫出自己的句子,或者預測你可能想說的下一句話。假設你正在學習一門兒新的語言,例如英語。在學習過程中,你可能會讀很多的書和文章來學習新的詞彙和語法規則。當你讀得越多,你就會越明白哪些單詞可能在一起出現,或者一個句子通常會如何結束。這就是你的大腦神經通過學習和記憶來建立一個“語言模型”。現在,如果有人給你一個句子的開頭,比如"我今天早上...",你可能會猜測下一句可能是"吃了一個蘋果"或“喝了一杯茶”,因爲根據你的學習經驗,這是一個比較合理的接下來的句子。這就是基于神經網絡的語言模型所做的事情:通過學習大量的語言資料,模型能夠預測下一個最可能的詞或句子。

因此,基于神經網絡的語言模型就像是一個學習並生成語言的工具,它可以幫助ChatGPT理解和生成文本,從而在語言處理方面,發揮重要作用。這就是ChatGPT的基本工作原理。

學習過程

那麽,問題來了,ChatGPT的工作過程又是怎麽樣的呢?這就得談談訓練一個神經網絡的過程,這裏面涉及兩個非常重要的概念,我們接著往下看。

在計算機中,訓練一個神經網絡的過程是這樣的:我們可以把這個神經網絡想象成有多個輸入和一個輸出的多層的黑盒子。

首先,我們會爲一個黑盒子的輸入變量隨機分配一個0到1之間的權重值。然後,我們會根據這些權重值和輸入變量,計算出一個輸出值。這就完成了一輪前向傳播(傳遞到下一層黑盒子)。但是,這個輸出值可能並不准確,所以我們需要計算出這個輸出值和真實值之間的偏差,這就是損失函數的作用。

接下來,我們需要找到一個方法,讓這個偏差盡可能的小。這就需要用到梯度下降的方法。梯度,其實就是損失函數在當前點的斜率,它指向的方向就是函數值增加最快的方向。我們就可以沿著梯度的反方向,也就是函數值減小最快的方向,來更新我們的權重值,使得偏差盡可能的小。

但是,這個過程並不是一帆風順的。因爲神經網絡的層數可能非常多(ChatGPT的神經網絡層數是175億),這就可能導致梯度爆炸或者梯度消失的問題(就像上面那個烹饪新手學習完烹饪技能後,遇到新材料給你做出藥或者什麽也做不出的情況)。爲了解決這個問題,人們提出了殘差網絡的概念。殘差網絡的思想其實很簡單,就是在計算每一層的輸出的時候,我們不僅要考慮這一層的輸入,還要考慮前面一層的輸出。比如,你正在參加一場馬拉松比賽,比賽過程就像是神經網絡的層層計算,你跑過的每一個路段就像是神經網絡的一層。在理想狀態下,你需要依次跑過所有路段,從而完成全程。這就像在普通的神經網絡中,信息需要經過每一層的處理,然後才能到達下一層。然而,馬拉松比賽是很枯燥和辛苦的,特別是在中後段。跑步者可能會耗盡體力,甚至在比賽中退下來。這就像在深度神經網絡中,信息在傳遞過程中可能會因爲梯度消失或梯度爆炸而喪失或者變形,進而影響訓練效果。爲了解決這一問題,比賽組織者設計了一些瞬移門,讓參賽者可以直接從某一個路段跳到後面的路段,這樣參賽者就可以避開一些消耗體力的路段,保持體力來完成比賽。這個瞬移門就像是殘差網絡中的"跳躍連接",使得前面的信息可以直接跳過一些層傳遞到後面的層,從而避免了信息在傳遞過程中的喪失。這樣,我們就可以保證梯度的穩定性,避免梯度爆炸或者梯度消失的問題。殘差網絡,已經成爲了幾乎所有大型模型的必備結構。

總的來說,神經網絡的訓練就是一個不斷調整權重,使得輸出值盡可能接近真實值的過程。這個過程需要耐心和時間,但是,只要我們選擇合適的模型結構和超參數,就有可能訓練出一個非常准確的模型。這就是神經網絡的基本原理。

爲了使神經網絡更快的收斂,我們來談談反向傳播算法。反向傳播算法是一種在神經網絡中優化權重(也就是調整神經網絡中各個連接的強度)的方法。這個算法通過比較模型的預測值和實際值之間的差距,然後反向從輸出層向輸入層逐層調整各個連接的權重,以減少這個差距。我們可以用一個箭靶的例子來理解這個概念:想象你在參加一個射箭的比賽,目標是盡可能接近靶心。每次你放箭後,你都會看箭是否射中靶心。如果箭偏離了靶心(這就像神經網絡的預測值與實際值的差距),你就會分析箭離靶心的距離和方向,然後調整你下一次射箭的角度或力度(就像調整神經網絡中的權重)。然後你再射一次,觀察結果,並再次根據射偏的距離和方向進行調整。這個反複的過程就像是反向傳播算法的運作過程。通過系統的反複調整,你的箭頭會離靶心越來越近。同理,通過反向傳播算法,神經網絡的預測值也會越來越接近實際值,這就是我們說的模型訓練。

所以,反向傳播算法基本上就是一個在神經網絡中持續減小誤差的過程,從而使得模型的預測值盡可能接近實際值。

人們與人工智能機器交流

總的來說,剛開始,ChatGPT被給予了大量的文本數據,就像一個孩子被讀了很多的故事書,吸收了大量的信息和模式。通過學習這些資料,ChatGPT知道了單詞的含義,句子的結構,甚至一些複雜的語言模式和語境。這就相當于上面談到的訓練神經網絡,通過各種算法使大語言模型收斂,穩定。

然後,當有人向ChatGPT提問或發起對話時,ChatGPT就會像一個故事會話者一樣,結合已經學到的知識和模式,來形成一種最可能的回答。在這個過程中,ChatGPT會考慮所有可能的回答,然後選擇出最可能的那一個。就像故事會話者在講故事時,可能會考慮到很多種情節的發展,但最終會選擇最吸引聽衆,最符合故事邏輯的那一個。

0 阅读:14

曉昀科技分享

簡介:每周追蹤最新的人工智能新聞,科技技術和應用案例!