type
status
date
slug
summary
tags
category
icon
password
「把LLM當成一個不太會做事的新人助理然後給它講解任務。」
 

源起

隨著ChatGPT 3.5 的大熱,大語言模型(LLM)在這一兩年都是業界的新寵兒,各家科技巨頭都發布他們自己訓練的LLM,所以這一段時間,隔一會就又會有一個新的大模型出現,號稱表現打敗現存的王者等等。對於我一個小小數據打工人,我也不太可能要/有能力去訓練一個自己的LLM,所以嘛我要做的是不停更新自己對各模型的了解(這可說是沒完沒了),以及知道如何才能讓LLM完成我下派的工作,也就是寫提示詞(Prompt engineering)。
剛好最近工作上也要處理相關的任務,我就在假期時看了台大李宏毅老師的講課錄影(鏈結放到最後),系統性的回顧了寫提示詞的一些技巧,也發現原來我已經有用上一些在工作上哈哈。這一篇就是整理了我認為比較通用的提示詞寫作筆記。
 

技巧1. 神奇咒語

“Lets think about it step by step”, “Answer by starting with analysis” 都是一些學術界測試過,有效提升LLM表現的神奇咒語。你甚至可以嘗試讓LLM自己產生一些神奇咒語(不過人類不一定能看明白就是)。然而,神奇咒語也不一定在每一個模型上都有效起作用,比如說現在最新那一批超大參數的大模型已經可以不需要這些咒語,也能有差不多的表現。
 

技巧2. 提供更多

就像一開始說到,我們可以把LLM當成一個不太會做事的新人助理然後給它講解任務,那麼提供更多資訊,比如任務前提,其他內容,或者是範例(In-context Learning),就可以讓它更清楚要做甚麼。不過有關範例的使用,有研究發現不是每一個LLM都看的明白範例,所以建議還是在使用一些最新的超大參數大模型時候,才提供範例。
 

技巧3. 自我反省(Self-consistency)

回想我們以前在學校考試時,答完題最後都會檢查一次自己有沒有寫錯答案。這一個技巧就像提示LLM也要做一次複卷,確定內容沒有問題然後才提交。畢竟計算出正確答案很難,驗證是否錯誤答案比較容易。 說起來,Claude的設計也有類似的做法,有一層hidden-layer 驗證LLM回答是否符合道德規範,從而實現規限大模型輸出無害回答(harmless)。
 

技巧4. 拆解任務

這一個有點像是人類實行Chain-of-Thought 的感覺,也有點像我們在設計data science solution pipeline 一樣,把大任務拆解成不同的小步驟。然後按順序,準備各自的prompt去執行步驟,最後甚至可以再加入上面提到的自我反省。(這一個完全就是我在工作上所提出的方案,不過是在回顧之前哈哈)
 

小結

以上都是一些普通使用者,就算是在用POE等平台使用LLM時都可以運用的提示詞寫法,而這一些技巧也很足夠去實現一些中小規模的任務。另外也有像 Retrieval Augmented Generation (RAG)、Multi-agents 這些目前很熱門,但也更進階的處理方法,這一篇就先不描述,留著之後再寫吧。
 

附錄:台大李宏毅老師的講課錄影鏈結

【生成式AI導論 2024】第三至五講:訓練不了人工智慧?你可以訓練你自己
 
Loading...