生成式 AI 的興起帶來了許多便利的工具,從文字、圖像的生成到對話聊天,但你是否好奇為什麼有些人可以產出很好的成品,而自己使用時,卻沒辦法有同樣效果?【AI CAFÉ 線上聽 】特別從生成式 AI 模型的原理出發,了解模型如何解讀指令,將使我們能更有效地使用 AI 工具並生成出滿意的結果。
為什麼 ChatGPT 每次回答的答案都不同?
在使用 ChatGPT 時,你是否好奇為什麼一樣的問題,有時候可以回答得很好,有時候卻覺得好像在亂回答?在這之前,得先了解其背後的大型語言模型的訓練過程與原理。人工智慧科技基金會 AI 工程師林芊解釋,所謂的大型語言模型最早是屬於文字接龍的一種模型,也就是它的訓練方式是給提供一段前文,讓模型預測下一個字為何。例如當我們提供一個文本「Second law of robotics A robot must obey the orders given it by human beings 」,會將該句話切成好幾個題目,如第一題為「Second law of robotics」,接著讓模型填入下一個字,模型可能會依據訓練文本出現的機率高低填入,但偶爾則不會依照這個規律,這也是為什麼 ChatGPT 的回話時好時壞的原因 。
現今常見的大型語言模型通常會透過以下三種方式訓練,分別是Instruction Tuning、Code Training,以及 Reinforcement Learning with Human Feedback,了解這些訓練方式,將有助於使用生成式 AI 工具的指令調整。
首先,Instruction Tuning 是利用很多筆的訓練資料,如下圖所示,一個大括號就是一筆一筆資料,而每一筆資料裡面會有一個指令,接著可以放一個input(或不放),最後面則是輸出(output),經過這些訓練後的語言模型,將具備理解指令的能力。
接著,許多模型會利用程式碼進行訓練,主要是因為程式碼也能視為一種文字範圍很長,且具備許多邏輯的文章,模型在經過程式碼的訓練之後,會獲得邏輯推理的能力,因而有辦法進行數學式的計算。
而 ChatGPT 之所以會好聊天的原因,則在於經過 RLHF 的訓練過程,也就是人類反饋的強化學習(Reinforcement Learning with Human Feedback),這個訓練主要是藉由人類的反饋讓模型的回覆更接近人類的期待。在使用這些 RLHM 時, 主要會透過 Prompt 下指令,如何修改 Prompt,讓模型的表現可以更符合人類的期待,就關係到 RLHM 最初被賦予的任務以及 Instruction Tuning 中的訓練過程。
摘要、翻譯、問答,LLM 擅長做哪些事?
林芊提到,由於過往的模型多半只是專注於判斷兩個語句間關聯的任務,於是 2021 年時,Google FLAN 便提出一個概念,在接龍模型之後,是不是能將所有的小任務都丟給這個模型進行訓練,看看他會不會全部都學會。因此,這個模型除了原本的接龍之外,還學會辨識人類的指令,同時有辦法針對沒看過的任務進行反應。
此外,像是 2022 年由 BigScience 提出的的 BloomZ ,同樣也是放了很多種類別,在 NLP 領域已存在很久的資料集進行訓練。而這些任務大概可以區分為摘要、翻譯、問答與分類。問答包括了針對特定文章進行提問,以及提供大量的資料,要求模型從中找到最合適的答案。
而分類任務包含了情緒辨識,例如辨識句子屬於正向的情緒還是負面的情緒;以及判斷句子是否有因果關係或前後矛盾的語意判斷。
其實,大型語言模型的輸出深深受到他們的訓練方式影響,你所輸入的文字(也就是 Prompt ),其格式若與當時訓練的任務相近,就有機會讓模型回答得更好。
想了解更多大型語言模型原理,請參考【AI CAFÉ 線上聽】什麼是 Prompt? 大型語言模型是怎麼被訓練出來的?