Journal to Large Language Models and Prompt Engineering

公共性與AI論壇(二十六)

時間:2023/10/20(五)下午13:30-16:00
地點:中研院法律所第一會議室

主辦:國科會專案計劃——AI時代下數位社會的人文課題與法治反思專案計畫
協辦:中央研究院法律學研究所

主講人:陳毓鐸 (國立中央大學資訊管理學系副教授)
主持人:李建良(中央研究院法律學研究所特聘研究員兼所長)

◎ 整理:戚雲珽

Photo by Jigar Panchal on Unsplash

壹、前言

演講第一部分將介紹何謂LLM(Large Language Model)及與其有關的一些概念;第二部分介紹prompting及prompting的形式(我們與ChatGPT的互動,主要就是透過prompt完成);第三部分則是介紹既然存在LLM,那目前在市面上有哪些應用方式。

貳、LLM (Large Language Model)

一、NLP (Natural Language Processing)

在討論LLM之前,就必須要提到NLP,即Natural Language Processing,它是AI裡面的一個領域;簡單來說,AI的目標就是要與人類一樣聰明,所以必須要有類似人的眼睛、鼻子、嘴巴等,而NLP就是嘴巴的部分,處理自然語言,我們常常用到的翻譯軟體即為其中一個例子,將使用者的話語轉為文字的語言偵測系統也是,或是客服時常使用的情緒分析技術,透過偵測信件中文字的組成是正面或負面,將其進行分類,主要處理負面信件即可。

二、Prompt

語言模型可以想像成一種文字的接龍遊戲,使用者寫出一個字或者是一段話,這段話的專業名詞叫做prompt,而系統必須去預測這段話的後面那個字會是什麼;雖然可以接續下去的字詞很多,但機率不一樣,AI要做的事便是隨機抽取一個,機率越高的被抽取到的頻率就越高,機率小的也並非不可能被抽中。

三、生成式AI的訓練

為了使AI能夠預測prompt後面的字詞,需要對其進行訓練,而訓練方法主要有三種:監督式學習(supervised learning)、非監督式學習(unsupervised learning)及強化學習(reinforcement learning)。

監督式學習就如同老師教學生,輸入什麼樣的訊息,要得到什麼樣的答案,都必須跟所訓練的LLM講;非監督式學習則如同沒有老師,讓學生自己觀察很多事情,同時讓它自動去分類;最後,強化學習的訓練可以想像成在進行評論,例如ChatGPT或是Google時常同時生成很多種不同的答案,並詢問使用者何者較為適合,這個步驟即是在幫助LLM學習,它不需要知道為什麼,只需要知道好壞。

四、LLM (Large Language Model)

LLM的第一個L就是很大的意思,接續的LM即為語言模型之意,而語言模型有所謂基本款及進階款;所謂的基本款的學習過程,就如同前述的文字接龍,訓練者給予模型一個字或詞,它需要預測接續的詞;然而,在訓練過程中,語言模型會閱讀大量且領域不一樣的資料,若問其「法國的首都在哪」,它可能會回答成「法國人口最多的城市在哪」,因此想要特定答案的方向,就需要進階版的LLM,稱為Instruction Tuning LLM,也就是讓LLM按照指示回答問題,而要達成這個目標,就需要有各行各業的專家學者提供的問題與答案,並將其用來訓練模型。

從另外一個角度來看LLM,可以說它基本上只有三大重點;第一點第就是它是一個深度學習的神經網絡模型,從ChatGPT的名字來看,G就是generated-生成,p就是pretrained,也就是他讀了上千上億的文章,然後最後一個T為transformer,是一種特別的神經網絡之意;第二點為研發者的目標是要使模型能預測prompt的下一個字;第三點為LLM基本上就是問與答模型,它會把它覺得兩個相關的事物進行串聯,當訓練的次數越多,串連的強度就會越強,模型回答的速度就越快。

以ChatGPT為例,在使用者與其對談時,它背後就是在運作一個流程,一個跑了上千次的流程,也就是針對使用者輸入的問題,ChatGPT挑出所有有關聯的字詞,並抽出其中一個進行回答,關聯度最高的雖然最容易被抽中,但關聯度較低的也不一定不會被抽中,這也是為什麼我們在問ChatGPT問題時,它給你的答案,與幾分鐘後問它同樣問題,它所給的答案可能不同的原因。

參、Prompting

在討論prompting前,需要先提到兩個概念:第一個概念為Token,英文最小的單位並不是字,而是所謂的token,通常是四個英文字母,像是prompt中的prom就是一個token,或像是lollipop中的loll也是一個;前述ChatGPT的訓練,其實並不是以字作爲訓練單位,而是以token為單位;第二個概念則為message,也就是使用者跟模型的聊天內容,模型會將其記錄下來。

所謂的Prompting有很多種,但本文以下主要以其中三種作為介紹核心。首先是zero shot prompting,也就是一次問一個問題,沒有給予任何提示或樣本,例如要求模型把句子分為正面、中性及負面,然後說「那個鏡頭真棒」,並提問該句話的分類是什麼,而模型就會回答是正面的,這表示模型在訓練的過程中就已經慢慢學會,因此稱為zero shot;其次為few shot prompting,也就是研發者要給予模型一些例子,讓模型學會舉一反三,例如跟模型說今天天氣真好是正面的、傢俱很小是中性的,因為傢俱大小是看你的家有多大、我不喜歡你的態度是負面的,接著就可以問模型如何評價「鏡頭選擇真糟糕」這句話,而模型會回答是負面的;最後一種prompting稱為chain of thought,也就是一種推理過程,研發者會將整個問題分成很多步驟,並在每一步驟中,要求模型立即回答,例如原本有23顆蘋果,用了20顆做午餐,但又買了6顆此類問題,模型就必須一步一步解答,而不會直接說出最終答案。

完美的prompt其實包含六個因素:最重要的就是一個任務,要很明確的指示模型要做什麼;第二個是情境;第三個為例子;第四個是個性,例如將模型設定為一個友善的聊天機器人,或者像蘇格拉底一樣講笑話;第五個是形式,也就是我們希望得到的回答形式;第六個是回答的語調。

肆、LLM的應用

LLM的應用方式主要有三個:第一個為陪伴,第二個為問答,第三個為創造。在陪伴的部分,可以想像成LLM的特別應用,它能與使用者的情緒有某種程度上的連結,並提供一些鼓勵,例如要求其提供關於學習語言的建議,它會回答學習語言是持續的過程,遇到困難不要氣餒,此即為一種陪伴方式;接者為問答的部分,可能是應用最為廣泛的一種形式,其主要的關鍵就是要有一個資料庫及設定好的情境,例如一個客服的系統如何回答客訴問題,就必須要從資料庫裡尋找答案,而不能使用網路上隨機找到的資料;然而LLM存在4000個token的限制,所以無法直接將原始資料丟給LLM,因此必須透過embedding的方式,將文章分段,可能分成一句話或是一段文字,並將這段文字轉換成數字,且這個數字是一個向量,與其他相似的文字排列在一起,而當使用者提問時,問題也將被轉換成向量,並在資料庫尋找與其他相似的點,形成答案;至於LLM在創造部分的應用,例如Google的程式-Dramatron,可以生成劇本,畢竟劇本有固定的形式,即一開始吸引觀眾的開場、與開場呼應的結尾,中間穿插一些支線、主角的辯論等,只要使用者提供劇本的大致走向,剩下便可由LLM完成。

伍、問題與討論

李韶曼:Open AI一開始是為了公共利益開放讓一般民眾使用,但到GPT3之後變成了營利導向,若從業界的角度,該如何看待這種AI產業的發展,這是一個對人類有益的公司治理方式嗎?AI產業的利益該如何分配才能夠更好的回饋社會,也讓AI的發展可以持續?

陳毓鐸:這個問題非常好也非常大,但從一位矽谷工作者的角度,如果沒有營利,就會缺乏動機,人不可能每天花十六個小時不眠不休工作,雖然可能是出於興趣,但另外一方面也是為了利益;所以為什麼Open AI在GPT3之後,改為盈利模式,是因為他們燒太多錢了,不過他們有但書,就是只要付出的成本被填補後,他們可以再做別的事,但細節並不是很清楚;簡而言之,營利應該是為了促進進步的必要之惡,但要如何進行管制,創造一個公平的環境讓大家可以競爭,而不是只有Open AI一家獨大,這就是一個兩難的問題,目前尚未有更深入的看法。

王克寧:如果使用者利用AI產出一些內容,或者其他行業的專家,利用自然語言指示AI自動產出Code,此時要去如何劃定IP Right的歸屬?

李建良:針對這個問題可以分成三個部分,第一部分是訓練過程中的資料,第二部分是訓練完成後,GPT自動產出的內容,第三部分是程式本身;就程式本身,開發者會享有著作權,此部分較無問題;較有爭議者為開發者是否可以將他人的資料用於AI訓練,且若被資料擁有者得知,其亦可能要求享有將來AI獲得的利益之一部份,或開發者應給付報酬;至於AI自動產出的內容是較有趣的部分,若僅是單純的答案,並不會有著作權的問題,因為AI只是把它知道的東西轉換出來,但若是AI給予的意見,就已經是具有獨立性的內容,可能會有著作權,但此部分如果是來自別人的著作,就會有爭議,因此這仍是一個開放性的問題。總之,目前大家仍較關注訓練階段的問題,歐盟的AI法律即要求ChatGPT公布它的訓練資料來源,而這當然會對ChatGPT的開發者帶來巨大挑戰。

李建良:是否可以說以前自然語言模型是處理數字?現在整個大型語言模型是處理文字?二者之間的差別又是為何?

陳毓鐸:以前AI這個領域,尤其是資料科學,大部分是處理數字,因為電腦比較容易理解數字,但像剛剛講的LLM演算法,其實也只是把這個文字轉變成數字;二者的差別只是以前的應用好像沒有這麼多,不像是現在的ChatGPT,是每個人做什麼事幾乎都可以用到。

李建良:文字可以轉換成所謂的電腦的零跟一,但是他基本的邏輯還是文字嗎?因為文字不一定是單純的文字,他背後會存在某種想法,舉例來說,電線桿上面有二十隻鳥,打下一隻後,還會剩下幾隻鳥?AI可能會回答剩下十九隻,但是我們知道答案是零,因為其他鳥會被嚇跑。

陳毓鐸:這涉及一個很大的問題,就是AI什麼時候會達到所謂的AGI,也就是所謂的General Intelligence;AI有一些方面已經幾乎跟人一樣,例如請它以沙士比亞的口吻書寫,它寫出來的文字就與沙士比亞很像,這就是一種General Intelligence;但人的智慧有很多種,例如推理能力,上述的問題就是推理的問題,但是AI現在能做的推裡仍然有限。

李建良:若細觀ChatGPT整個發展過程,可以發現的是它基本上就是文字的轉換,但文字是以英文為主,換言之,如果拼音的語言,它的轉換應該會很快,不過中文與拼音語言不太一樣,所以中文必須要有獨立的一套訓練,那現在這個部分是交由誰來做?是由政府來做?還是產業也要投入?

陳毓鐸:以資料科學家的角度來看,不管背後的政策是什麼,第一個要看的是市場,即繁體中文市場有多大,一旦投入金錢,該如何回收,以現狀來看,如果是為了營利,產業界並不會有人出來做。

提問者:若利用AI來產生劇本,從科技人的角度來看,那一份劇本中,每個人努力的程度分別是多少?提出指令的人佔比較多呢?還是ChatGPT廠商Open AI佔比較多?又或是後面的資料庫佔比較多? 陳毓鐸:以Dramatron這個程式為例,它並不是獨立生成劇本,而是必須有人給予指示,它每生成一個段落,使用者可以修改,或跟它說好或者不好;同時,Dramatron,缺乏人的創意,必須要使用者給予回饋,還要同時加上很多自己的想法,才可以逐步完成劇本;因此,回到劇本成果應該要歸功於誰這個問題,答案應該是使用者本身,因為Dramatron只能被看作一個助手,提高劇本生成速度,完成劇本最重要的還是人;至於寫程式的人或廠商,也只是提供AI工具而已。