前陣子 WiDS Taipei 論壇,我去聽了一場友人 Karen 給的演講:「與 ChatGPT 攜手:不懂演算法與 Python,也能打造導生媒合系統」。故事是這樣子:Karen 參與了一個 PM 社群,而該社群有一個計畫,要媒合大量的導師與學生來協助成員在職涯上更進一步。由於該計畫執行幾次之後,導師與學生的數量都上千人了,這個媒合必須考慮用程式來處理。Karen 自認不會寫程式,但是,就靠著不斷地提問 ChatGPT,總算是勉強把程式生出來了。
由於 Karen 在開發這個專案的過程之中,剛好我有機會去參與一下,這邊就來分享專案之中的解題過程。
Karen 在 dbt 社群問的問題是這樣子:
我在協助一個 PM 社群的 mentorship program 處理 mentors 跟 mentees 如何 matching,我們有清楚的規則,但一群 PM 都不會寫程式。總之我利用 AI 產 python code 寫出來一個 matching system,裡面有很多 variables 可以調整 e.g. mentors 跟 mentees 在同樣時區就加分,然後也有衡量 matching 結果好不好的方式。我想知道,有沒有辦法可以在拿到 mentors 跟 mentees 資料後,由程式算出來最好的 variables 設定?
這段提問放到 chatGPT 之後,得到的答案是:
要在拿到 mentors 和 mentees 資料後,由程式算出來最佳的變數設定,可以考慮使用一些優化算法。這些算法可以自動調整變數,以達到最佳的匹配效果。以下是幾個步驟和建議,幫助你實現這個目標:
定義目標函數 ...
選擇優化算法 ...
使用遺傳算法優化變數 ...
調整和驗證 ...
結論
通過上述步驟,利用遺傳算法等優化技術,可以自動調整變數設定,以達到最佳的 mentors 和 mentees 匹配效果。這樣可以減少手動調整變數的工作量,提高匹配效率和質量。
而我給的答案是:
話說,你覺得你的問題有可能用 Bipartite Matching 來處理嗎?
對談式 AI 通常不會給予批判性的答案
真要講的話,chatGPT 給的答案也沒有什麼大問題,只是 chatGPT 專注於提問者的提問焦點,而非問題背景 (problem context)。換言之,chatGPT 已經接受了使用者預設的解題路徑,要走 AI heuristic 的解法來解決問題。而當我看到問題的背景描述裡有一段文字,『一個 PM 社群的 mentorship program 處理 mentors 跟 mentees 如何 matching』,我就心想,是多大的 PM 社群,幾億人?不太可能,應該是萬人以內,那麼用 AI heuristic 來處理是不是小題大作了?要不要用 algorithm 的解法跑出最佳解?於是,我沒有就問題的焦點去回答,取而代之的是提供另一種解題策略。
而兩個月後,Karen 利用 Bipartite Matching Algorithm 而非 AI heuristic 的解法完成導生媒合系統。
而類似的事情,我最近又在其它友人身上看到。友人被不懂技術的主管問了艱深的技術問題之後,先請 chatGPT 去協助回答之後,再找我來為 chatGPT 的答案品質做個把關,以避免答案出現幻覺。
總覺得哪裡怪怪的,應該是要讓我去對主管的提問品質做個把關吧?