其實第一次嘗試是失敗的,我覺得很難用。原因是它的回應時間過長,又會一直斷掉,我就先擱置在一旁。
但某天發現原來 ChatGPT API 是有一些參數可以設定的。其中有個參數叫溫度(temperature)。官方的文件說,數值愈高,它的回應會更隨機;較低的值會讓它的回答更穩定和一致(focused and deterministic)。 溫度設為 0.8,花費時間 26.89437 秒:
溫度設為 1.6,花費時間 27.52722 秒:
從這個例子可以看到僅以文章摘要為目的時,溫度設為 0 時它不但可以正確摘要,速度也稍微快一點點。再加上我重複了以上指令 3 次,溫度設為 0 的回答每一次的內容都是一樣的,其他組則每次回答用字都會稍有不同。
(溫度最高可以設到 2,但可以明顯發現設到 1.6 的時候就已經開始出現亂碼。BTW,目前大家都可以直接使用的網頁版 ChatGPT,預設溫度是 1。)
我回頭調整我的程式碼,做了兩件事:首先,將 temperature 調整為 0,因為我只是要它對既有的文本做摘要,不需要它的想像力;第二,我請 ChatGPT 幫我寫了錯誤控制的程式碼,讓它回應時間過長的時候可以直接重啟、或是遇到錯誤的時候跳過。
結果是:它運行得非常順利。雖然有時候遇上尖峰使用時間,還是有回應過久的問題,但基本上我可以在睡前執行程式碼,隔天早上就拿到跑好的結果,不用手動處理任何事情。
(註:由於我要分析的資料是從千位數起跳,我並不是用網頁版,是用 R ChatGPT 套件 來打 API ——簡單來說,就是你用網頁版問一個問題(請 ChatGPT 對一篇新聞進行摘要),可以透過程式語言的指令將這個行為輕鬆重複幾千次(請 ChatGPT 分別對幾千篇新聞進行各自的摘要),並將結果輸出成結構化的資料(例如表格)。) 在正式的報導中,有兩個分析我與 ChatGPT 協作,分別是主題分析和情緒分析。
報導中的主題分析報導中的主題分析在沒有 ChatGPT 以前,想要分析大量文本中的主題,我們通常是將文本斷詞,再統計其中的熱詞。
以這次的資料為例,我會把所有的新聞翻譯成英文,並斷成一個一個詞彙,再去統計各時間區間哪些詞最常出現。例如 2017 年的新聞裡很常出現 methamphetamines 這個詞,查詢之後發現這是一種毒品,而當時有臺灣毒品集團大量走私此毒品到印尼。
但單純統計詞彙,有時候就會出現一些對統計上沒有意義的詞:例如 Taiwan、China、United States 之類,出現很多次你也不太清楚意義是什麼。雖然可以用 TFIDF 等方式輔助,但無論是單純斷詞還是 TFIDF,都只能看到統計後的詞彙。
所以我請 ChatGPT「用中文摘要文中的主旨,如果有網址的話請忽略它」,得到了 7000 多筆文章的內容摘要,讓我想要找某段期間發生的事時可以快速瀏覽這些摘要。
報導有一個部分是主題統計,當時我下了另個指令是「請用 5 個字摘要以下事件」,嘗試將摘要縮短。不過發現就算是同個事件,它的回答也不會相同,沒辦法直接統計,我最後還是用人工的方式標記(short 欄),但相較於長摘要、甚至是沒有摘要的狀況下,人工作業的時間短得不可思議。
過去我們曾經嘗試過兩種情緒分析的方式,一種是用 Google 的 AI,當時請它標記選舉期間的新聞,但它判斷出來的內容大部分都是中性,要有極強烈的情緒字眼才會往正面或負面判斷。 另一種方式是直接抓出文本裡面的情緒詞來計算,這個有很多現成的詞典套件可以使用。例如,該文本裡面有 angry,那負面分數就會加一分。除了正面、負面,現有的分析套件還可以分析不同情緒,還可以有情緒的分類,例如憤怒、悲傷、喜悅、噁心、驚訝等等(推特上的美國大選:川普和拜登如何在社群媒體操盤選舉這篇報導有使用到)。 但這個方式的問題是判斷出來的情緒沒有「指向性」(兩種方式都沒有)。它只能分析出文本中有生氣的情緒,但無法分析「對誰生氣」。
相較之下,ChatGPT 就做得很好。我下的指令是「請判斷該文章的內容對台灣的情緒是正面、負面、還是中性的」,它給出的結果跟我人工判斷的結果幾乎一致。
尤其是近期許多報導跟臺海危機有關,文中有許多負面詞彙,但也有相關報導提到美國或日本的支持。在人工判斷中,我會判斷為正面的(因為臺灣得到國際支持),以計算情緒詞的方式可能就會被判斷為負面的。
正面。這篇文章報導了台灣的長者們在電子競技方面的努力和成就,展現了台灣社會對於長者的尊重和支持,對台灣的國際形象有正面的影響。
該文章的內容對台灣的國際形象而言情緒是中性的,因為地震是自然災害,不是台灣政府或人民造成的,其他國家也都有可能發生地震。
對台灣的國際形象而言,此文章情緒為正面,因為美國總統拜登對中國對台灣的行動提出反對,顯示美國對台灣的支持和關注。
實作之後會發現指令是最重要的。給 ChatGPT 更精準的指令,就會得到更精準的答案。不過有時候也會發現有些題目 ChatGPT 就是沒辦法回答得很好(或是我的指令下得不夠好),就只能放棄。
畢竟 ChatGPT API 要付費。通常我會從小 model (例如 10 筆、50 筆、100 筆)測試找出適合的指令,再擴大到全部的資料。
這其實也跟我們過去找工讀生標記資料的方式很類似。通常我們都會先做小範圍的資料確立研究方法、建立標記規則,再發包出去給工讀生標記。
費用的部分,API 是以 token 計費(token 是字詞,如果你想知道你的需求要花費多少 token,可以參考官方的計算網頁),每 1000 個 tokens 要花費 0.002 美元。我們的實測結果大約近 4000 筆資料 200 元台幣。 對於在新聞裡面使用 ChatGPT,最常被討論的就是正確性。但我覺得在正確的使用方式、跟暸解其限制的狀況下,它並不是資料新聞應用的阻礙。
協作的新聞專題最常被問到的問題就是:資料品質會不會不好?如何確定使用者輸入的資料是正確的?
但我覺得在新聞報導裡使用資料,本來就需要驗證,無論是哪一種資料。
以協作專案來說,通常在原本的專案流程中,我們會設計資料驗證機制。例如政治獻金數位化,你除了可以辨識圖片裡的文字,也可以驗證別人打的對不對。在後續資料清理的時候,這個驗證次數就會成為人工判斷很好的依據(例如驗證次數較低的資料、或是驗證結果有歧異的資料,都會被我抓出來看)。
其他的資料呢?我自己的經驗是,只要是人經手過的資料就有一定的錯誤機率。例如當初我們從監察院搬出政治獻金資料,就發現就算是政府機關,也會因為人工謄寫收據、人工登打進電腦過程中不小心寫錯或 Key 錯,造成資料的錯誤。
但這些錯誤都會在記者做資料清理、分析時被發現。我對於 AI 產生的資料,也是一樣的處理方式。
已知的是,ChatGPT 是一個大型語言模型(LLM),當使用者提供的資訊不足以讓它判斷或回答時,還是必須流利地回答,所以就會開始亂掰。
由於 ChatGPT 目前還不能連網。所以當文本裡面有網址的時候,它會嘗試去解析,但解析不了就會出錯。可以刪除文本中的網址,或是直接在指令中請它跳過網址。
除了既有的字數限制,在國外論壇的討論中有提到 chatGPT 能處理的文本不宜大於 800 字,大於 800 字它判斷能力會降低,且出現幻想行為的機率會提高。
這會出現在比較複雜的問題。有時候我們會希望答案更精確,而限制它回答的方式,例如另一個專案中,我希望區分抓下來的資料是一個純評論文章、還是是一個事件描述:
問:請確認以下內容是關於 deepfake 技術的評論,還是一則實際發生的 deepfake 事件
問:請確認以下內容是關於 deepfake 技術的評論,還是一則實際發生的 deepfake 事件,並摘要內容:澤倫斯基在街上碰到一位女性...
就得到蠻恐怖的結果,ChatGPT 給我的摘要是「澤倫斯基與一位女性發生了親暱舉動,而這件事是一個假造的 deepfake 影片」(而這件事從未發生)。
我猜測是 ChatGPT 認為它的回答只能是「deepfake 技術的評論」或是「實際發生的 deepfake 事件」,但文本其實無法判斷,它就自己掰了一個(雖然在類似案例中它也曾成功回應「無法判斷」,但目前幻想跟成功的答案出現機率是一半一半)。
總之,就是要盡量提供足夠的資訊、以及在指令上下功夫,減少它迷失的機會。
在這個專案中,我請 ChatGPT 幫我摘要主題,但我還是有將文本翻譯成英文或中文,來協助我快速驗算 ChatGPT 的摘要對不對。
或是以第三點提到的例子,若我擔心我的資料裡面有些品質參資不齊的資料,導致提供給 ChatGPT 的資訊不足,我會再加上文本字數欄位,最後去針對少於一定字數的資料人工確認有沒有出錯。
另外,資料不會等於資料新聞。我們的經驗是跑完分析後,會帶著分析結果去採訪。若分析結果與受訪者的經驗不符(或其他資料的結果相衝突),就可以回頭去看是不是資料分析的結果有錯、或是其他原因。總之,除了最基本的抽查驗算,還有蠻多環節可以驗算。
如果它可以執行你新聞產製流程中的既有步驟,那我非常推薦你試一試。
上述有提到,我自己做新聞的習慣是會先列出想問資料的所有問題,但礙於時間成本跟技術,常常無法全部都問。有 ChatGPT 以後,資料分析的門檻變得更低,這也讓我更有機會從資料中找出新聞點。
另外我自己最常用的其實是問它跟程式語言有關的問題,這方面它真的超棒!以 R 語言來說,或許以後只要知道 Rstudio 怎麼使用、基本代碼的長相就好了,不懂的就問 ChatGPT。
最後,AI 的發展飛快,如 3 月 24 日官方就開放了連網的插件(目前可以排隊登記試用),讓它確認自己有沒有在說謊。說不定目前讓人猶豫的缺點,很快就不適用了。 雖然結論不同,我還是想呼應開頭提到那篇文章最後提到的:直接試一試吧!說不定你會發現 ChatGPT 可以做的事情比想像中的更多。