iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
AI & Data

OpenAI 從提示工程(Prompt Engineering)到語義核心(Semantic Kernel)的實踐系列 第 12

Semantic Kernel的實踐:番外篇-認識什麼是LLM

  • 分享至 

  • xImage
  •  

前言

這一篇其實是個意外,前幾天在某個AI大師對談的活動上出現一個提問,在網路上引起了不小的討論,提問是這樣的

什麼是LLM

突然意識在談LLM的開發,但卻沒有大略說明什麼是LLM,似乎說不過去,於是今天臨時插進了這一篇。本篇內容並不打算討論該活動的插曲或好與壞,僅就提問的題目做說明。

什麼是LLM

LLM的全名是"Large Language Model",也就是大型自然語言模型,在人工智慧領域內,模型泛指的是負責接收Input然後預測產出output的中間大腦。想像一下,LLM就像是一個語言專家。它懂得很多語言,能夠迅速回答各種問題、寫文章、進行翻譯、寫詩、甚至幫你寫程式碼。然而但這個專家並不是真正的人類,而是一個電腦程式。這個程式是由大量的資料所訓練出來的,這些資料包括了大量的書籍、文章、網頁、維基百科等。並且因為它學習了這麼多的資料,所以它能夠處理和理解各種語言的問題(事實上並不是真的理解,而是一種模仿)。所以當你問這個"專家"問題時,它會根據過去所學習的資料來給你答案。它可以做的事情非常多,從回答簡單的問題到幫你寫一篇文章,都沒有問題,而這個專家因為內部參數量非常大,因此被稱為"大型自然語言模型",簡稱LLM。

目前知名的大型語言模型 (LLM),並不是只有ChatGPT,例如:

  • OpenAI的GPT系列模型:包括GPT-3.5和GPT-4都是。其中,GPT-4是目前能力最強大的大型語言模型,廣泛被用於各種應用,例如ChatGPT。
  • Google的PaLM 2:這個模型被用於Bard,是Google推出的大型語言模型。
  • Meta的LLaMa:這是Meta公司推出的大型語言模型。
  • and more.....

這些模型都是基於大量的文本資料進行訓練的,模型的任務是透過接收輸入文本並預測下一個詞或符號。因此LLM並非指特定的哪一個模型,也可以說它是個統稱。

白話LLM是如何被訓練的

那麼LLM又是如何被訓練的,讓我們用白話一點來描述它的過程,至於細節有興趣的讀者就自行參考各大LLM模型的論文。與一般我們認知的人工智慧一樣,首先還是需要有資料

  1. 資料收集:首先,需要大量的文本資料來訓練模型。這些資料通常來自於網路,例如網頁、書籍、新聞文章等,這些文本資料被稱為"語料"。
  2. 預訓練:使用收集到的文本資料對模型進行預訓練,讓模型能夠理解和學習。
  3. 模型架構:預訓練時會選擇一個適合的模型架構,以OpenAI的GPT模型來說使用的是Transformer架構。
  4. 自監督學習:大型語言模型通常使用自監督學習方法進行訓練。自監督學習是指模型在沒有明確標注的資料上進行訓練。例如,模型可能會看到一句話,其中某些詞被刻意遮蔽或移除,然後嘗試預測被遮蔽或移除的詞。
  5. 訓練過程:在訓練過程中,模型會不斷地調整其內部參數,而這通常需要大量的運算力和時間。

要注意的是,與過去的模型相同,LLM也會受到訓練集資料的偏見或假訊息的影響。

自監督學習和自注意力機制

前一段提到"自監督學習",然而當我們提到GPT時,時常伴隨著一個詞叫做"Transformer",Transformer是OpenAI的GPT模型的核心架構,在這個架構裡有個很重要的機制稱為"自注意力機制",它與"自監督學習"有什麼差別呢?

  • 自監督學習
    自監督學習是一種機器學習方法,模型在沒有人工標註的資料上進行訓練。換句話說,訓練資料的標注是從資料本身衍生出來的,透過挖掘大量無標註資料中的資料資訊,人為的製造標籤(pretext),其目的是讓模型能學習資料中的通用表示規則,例如:給一個句子"高雄市位於台灣的__",模型的任務是預測被接下來的詞(如"南方")。

  • 自注意力機制
    自注意力機制是允許模型在處理序列資料時,能夠關注序列中的其他部分的技術,它可以幫助模型捕捉到長距離的依賴關係,也是Transformer架構的核心部分,它允許模型在不依賴於固定大小的窗口或卷積核的情況下,處理整個輸入序列。例如:"小明因為發燒所以沒有去學校",自注意力機制可以幫助模型理解"沒有去學校"是因為"發燒"的原因。

簡單來說,自監督學習是一種學習策略,它指的是如何使用未標注的資料來訓練模型,而自注意力機制是一種模型架構中的技術,它指的是模型如何處理和關注輸入資料中的不同部分。

結語

本篇藉由一個突發議題,臨時性興起介紹什麼是LLM,主軸是對LLM表達一個淺顯的概念,希望能讓尚不理解什麼是LLM的讀者,有個概念即可。具體而深入的細節並不在本文的討論範疇內,有興趣的讀者,可以翻閱各大LLM的公開論文資料,接下來的後續文章內容會再回到這個系列主軸—Semantic Kernel。

嗨,我是Ian,我喜歡分享與討論,今年跟2位朋友合著了一本ChatGPT主題書,如果你是一位開發者,這本書或許會有些幫助,https://www.tenlong.com.tw/products/9786263335189
這次的鐵人賽文章也會同時發佈於個人blog,歡迎關注我的blog : https://medium.com/@ianchen_27500


上一篇
Semantic Kernel的實踐:開發篇-為何需要semantic kernel
下一篇
Semantic Kernel的實踐:Semantic Kernel 概觀
系列文
OpenAI 從提示工程(Prompt Engineering)到語義核心(Semantic Kernel)的實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言