如何測試 ChatGPT 應用

 自 OpenAI 發布 ChatGPT 以來,各種應用如雨後春筍般湧現。ChatGPT 3.5 於 2022 年 11 月正式發布,而在短短的時間內,即 2023 年 3 月,我們就迎來了 ChatGPT4 [1]。這樣的速度顯示出大型語言模型的進步越來越快。


根據 OpenAI 的 ChatGPT4 研究報告,我們可以看到對 ChatGPT3.5 和 ChatGPT4 的直接比較[2]

我想大家使用 ChatGPT4 和 ChatGPT3.5 可以明顯感受到 ChatGPT4 確實比較聰明,即便我在輸入訊息中打錯字,它也能夠理解其中的語意和背後我想傳達的意圖

如果說要你詳細說明 ChatGPT4 到底比 ChatGPT3.5 優秀的地方在哪裏?我想也很難直接說得清楚。

從上述兩張圖當中,可以看到 ChatGPT4 不論翻譯語言或是各種類型的考試當中表現來的比 CharGPT3.5 更好。

所以我想可以這麼去理解它,當我們與 ChatGPT3.5 或 ChatGPT4 進行自然語言對話的時候,可能是因為訓練數據大部分都是英文居多,但具有良好的翻譯能力,所以對於語意上的理解應該是有所進步,也因如此才能明顯感受到,它真的能夠你話中帶話的意思。

另外一方面,既然已經可以流利地進行對話,在對話當中帶入一些任務或需求提示,它也能夠輕易理解並且給你最好的回覆。

綜合以上,當你和 ChatGPT4 進行對話的時候,才會明顯感受到它比 ChatGPT3.5 來得有多強大。

也因為如此,衍生出一個很有意思的問題,為什麼 OpenAI 知道 ChatGPT4 的表現就是比 ChatGPT3.5 好好呢?到底要用什麼方式來判斷?

我無意間在 OpenAI Github 上面看到一個 Repo 叫做 Evals。


Evals 它是一個用來評估 LLM 的工具,有別以往 Machine or Deep Learning 對 Model 進行 performance 檢驗的 Validation index [3][4]

它是一個以指令 Prompt 進行檢驗的工具,這句話怎麼說呢?

以下是 OpenAI Evals 在執行測試數據的一條範例:


這份示意的 JSON 數據中,input 鍵包含一個問題,該問題要求模型識別一段文字來自哪篇楚辭。ideal 鍵則包含了理想的答案,也就是對應的楚辭名稱。

在 OpenAI Evals 中,這種格式的數據可以用來評估模型的理解和回答問題的能力。例如,我們可以將這個問題與模型的實際回答進行比較,看看模型是否能正確地識別出該段文字來自《离骚》。

這種方式的優點在於,它可以直觀地展示模型在實際任務中的表現,並且可以輕易地與其他模型或版本進行比較。例如,我們可以使用相同的問題來比較 ChatGPT3.5 和 ChatGPT4 的表現。透過這種方式,OpenAI 能夠更準確地評估和比較不同版本的 ChatGPT,並確認新版本(如ChatGPT4)是否真的比前一版本(如ChatGPT3.5)有更好的表現。

這也解釋了為什麼 OpenAI 可以確定 ChatGPT4 的表現比 ChatGPT3.5 更好。

總的來說,Evals 提供了一種新的、有效的方式來評估和比較大型語言模型的表現,並能夠幫助我們更好地理解這些模型的能力和限制。

但是在實際的商業應用時,若 ChatGPT 的技術導入到產品中,通常會是在某項特定領域,比方說一個應用在 金融領域的 Q&A 聊天機器人,我們會希望這個機器人只回答有關金融相關的問題,又或者是某間銀行的客服問題,所以當用戶提問了這些範圍之外的問題時,我們希望機器人能夠明確且禮貌地告知用戶,它的知識範圍主要集中在金融領域,並引導用戶提出相關的問題。

這樣不僅可以保證機器人的回答質量和準確性,也可以避免用戶收到可能產生混淆或誤導的信息。 此外,為了達到這個目標,我們可能需要對 ChatGPT 進行進一步的微調訓練,讓它更好地理解和處理金融相關的問題。

這可能包括使用特定的金融數據集進行訓練,或者設定特定的規則和參數來限制機器人的回答範圍。 這種情況下,OpenAI Evals 就顯得尤為重要,因為它可以幫助我們更準確地評估和比較模型在特定領域的表現,並確認微調訓練的效果。通過這種方式,我們可以不斷優化我們的模型,以更好地滿足商業應用的需求。

在有自己微調的模型需求下,我們可以進一步討論要如何擬定測試的策略。

所以,當用戶提問了這些範圍之外的問題時,我們需要有一套有效的測試策略來確保機器人的表現。

首先,我們需要建立明確的目標和測試案例。這可能包括定義一組反映模型預期用途的測試案例,並涵蓋廣泛的場景,包括邊緣情況和潛在的偏見。然後,我們需要確保用於測試的數據代表模型的目標領域。這可能涉及收集和策劃新的數據集,或者利用現有的特定領域數據集來覆蓋多樣化的輸入和輸出。

接下來,我們可以實施自動化測試,以有效地評估 ChatGPT 模型的表現。我們可以使用測試框架,如 pytest,來運行測試並生成測試報告。此外,我們應該持續監測模型的表現,使用相關的指標,如困惑度、準確度和F1分數。在測試過程中,我們需要進行迭代的模型調試。分析模型的錯誤和誤分類,以獲得模型限制和弱點的洞察。使用這些信息來迭代改進模型,解決確定的問題並優化模型在目標領域的表現。

最後,我們需要對 ChatGPT 模型進行偏見和公平性的測試。使用適當的評估指標和技術,評估模型可能存在的偏見和公平性問題。並進行必要的調整,以確保模型的表現符合道德要求。

總的來說,傳統的軟件測試方法可能無法有效地測試基於GPT的大型語言模型。通過採用針對性的測試策略,開發人員可以確保 LLM 如 GPT-4 的質量、穩健性和道德表現。這將導致更可靠、更有用的語言模型,能夠更好地滿足用戶和應用的需求 [5]

結語

112 年 11 月 6 日,OpenAI 舉辦第一屆的開發者大會,其中提到 GPTs 提供給使用者去建立客製化的 ChatGPT,來應用各種場景,我想這個新功能又會對測試進行有所改變。

以上,綜合各種文章的知識內容,有興趣都可以點擊超連結查看詳細內容,如果有任何知識點想進行補充,歡迎在下面留言討論。

張貼留言

較新的 較舊