🐹倉鼠週報16:你有自己的 AI 組合技嗎
思考工具怎麼使用是一個很燒腦的過程,但燒過之後就會感覺自己思考能力又進步一點,而且還有機會想出不同的工具 Combo 技。我覺得使用不同工具就像格鬥遊戲的 Combo 技一樣,連招越順暢招式越強大!
卷首語
這週很多 AI 新聞感覺像過了 3 週,不過我花了很多時間在強化使用 AI 的技巧上,可能有些人覺得有了 AI 之後會更輕鬆,確實一部分是這樣,但我覺得在思考上更累了。
簡單的東西被解決了,大部分時間都花在思考如何迭代出更好的結果上,像是 Prompt 怎麼下更好、Plugin 怎麼搭配更好、給的範例會不會導致它過擬合等等的。
我自己認為,如果真的有用上 ChatGPT 或其它 AI 工具來提高生產力或工作效率的話,腦子反而會有不斷在燃燒的感覺,而不是越來越輕鬆的感覺。
很多人工作時並不會思考怎麼優化不同環節,一股腦的去做。但有一種人叫聰明的懶人,他會不斷思考怎麼做更有效率、效果更佳,把 90% 的時間都拿來思考,最後十分鐘創造好的流程或工具組合。
AI 時代我們每個人的基本能力都應該是以聰明的懶人為目標,在 AI 可以取代大部分工作的情況下,努力或是勞力能呈現的價值越來越低,你以為你想了一整天的計畫其實 AI 5分鐘就想完了。
如何以結果導向為目標去增加工作價值,也是另一種思考怎麼不被取代的方向。
願我們都能成為統御 AI 的聰明人。
🛠️ 本週 AI 新聞 & 工具
1. 我把 ChatGPT 加上了 Google 瀏覽的功能
一開始我原本是要介紹 Perfect 這個 Plugin,它能將人們輸入的 Prompt 補充足夠的脈絡及背景資訊,讓回應結果變的更好。
然後我發現 Perfect + WebPilot(讀取網址用的 Plugin)太厲害,我可以只用一句話:『perfect 給我過去一天內3則重要的 AI 新聞』
然後他就自動到 Google 上去抓相關內容,然後我打開 WebPilot 的搜尋過程,發現他會用以下網址結構去模擬 Google:
https://www.google.com/search?q=important+AI+news+last+24+hours
但這有一個問題,這樣它搜尋的是『important AI news last 24 hours』
一般來說,我們如果要精準搜尋過去一天、一週或是其它時間,我們會有篩選器去設定,而這個篩選器會直接呈現在搜尋的網址上,如下(簡單版,還能有更多參數但這邊省略):
https://www.google.com/search?q={query}&hl={lang}&gl={region}&tbs={time}
{query}:代表搜尋用的關鍵字
{time}:代表搜尋限定的時間,例如 qdr:d2 是過去兩天內
{lang}:代表對應的語言,例如 en
{region}:代表地區,例如 US
透過這個方式,我告訴 ChatGPT說:
===================================
未來當我提供主題讓你搜尋時,你要使用我提供的URL結構來模擬 Google 搜尋,以下是 URL 的結構:
https://www.google.com/search?q={query}&hl=en&gl=US&tbs={time}
其中:
- {query} 將被替換為搜尋關鍵字。
- {time} 將被替換為相應的時間。例如,'qdr:d2' 表示過去兩天內的搜尋。
===================================
於是乎,當我在下一句話時我用 prompt:
『perfect perfect 請給我過去24小時內,5 則重要的英文 AI News。』
ChatGPT 就會幫我將 prompt 先優化成:
Kindly provide me with five significant English AI news items from the past 24 hours. Please ensure that they are detailed and comprehensive.(請您提供我過去24小時中五項重要的英文AI新聞,請確保它們詳細而全面。)
然後 WebPilot 就給了我完美的 Google 搜尋結果。
建立在網址參數上還有其它可玩性,像是把一般搜尋結果改成新聞搜尋結果,或是將搜尋結果頁一次呈現 100 筆再讓 ChatGPT 篩選等等。
期待大家玩出不同的工具 Combo 技。
p.s. 近期 Perfect 這個 Plugin 好像在修復中偶爾會找不到或不能使用。
2. 優化 Prompt 的細節分享(1.5~2 hr)
書接上一調,現在可以直接分享 ChatGPT 對話,方便迅猛,直接呈上做範:https://chat.openai.com/share/11c6b4bd-33cd-4a09-8a33-8d92a2c7b6fa
這是我前前後後調了一小時多的 Prompt,它成功幫我將問題任務拆成不同方式做搜尋,並且成功在搜尋結果找到資訊返回,太令人感動。
使用 Plugin:WebPilot
▎每段 Prompt 代表意義(對應圖中數字)
1. 因為好幾次實驗 ChatGPT 常常直接把問題一股腦丟到 Google 裡搜尋,然後返回結果,就跟一個沒有思考能力的人一樣,叫他做什麼他才做什麼。
所以我請它將解決問題的步驟分成搜尋、思考、整合資源、再搜尋、然後再整合資訊,因為解決問題從來不是一步到位。
這就是 Prompt 技巧中的『給模型思考時間』
2. 請它模擬 Google 搜尋引擎,上一篇有提到這邊不贅述
3. 我的專業是 SEO,所以很明白關鍵字跟搜尋結果的關係,關鍵字用的越好要的資訊越準確,所以這邊很重要很重要的一步是『根據我的需求拆解關鍵字』。
但我不確定它能不能懂,所以我透過『給範例』的方式(讓它更清楚我們要的是什麼。
這就是 Prompt 技巧中的 few-shot prompting。
4. 然後再告知一次問題可以分多次搜尋來解決,讓它記得拆解問題
5. 老生常談,英文結果會比中文更好,所以 Search in English
3. Mr. Ranedeer:用 AI 學會任何知識
【Mr. Ranedeer:用 AI 學會任何知識】
目前市面上的對話機器人,用了這一套 prompt + Plugin 的功能,就能拿來輔助學習任何想學的知識了。
▎複製 prompt 給 ChatGPT
只要複製以下 Mr_Ranedeer 的 prompt:
https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor/blob/main/Mr_Ranedeer.md
如果只有 GPT-3.5 怕上下文不夠的話,可以用精練版:
https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor/blob/main/Mr_Ranedeer.json
▎如何開始(重要命令):
先設定命令『語言』跟『學習計畫』
/language 繁體中文
/plan 我想學機器學習的相關知識
所有可設定的命令:
/test :對你當前的學習狀況進行測試
/config : 更新 AI 導師的設定選項
/plan :根據你的喜好建立學習計畫,學習語言、程式、藝術等都可以
/search : 搜尋特定資訊,需要 Plugin 支援
/start : 開始學習
/continue : 如果輸出中斷或沒有結束,可以通過這個命令繼續讓 GPT 輸出(但最近更新了應該可以按箭頭繼續)
/self-eval : 讓 AI 導師評估自己的課程
/language : 改變 AI 導師輸出的語言,比如繁體中文
/visualize : 使用外掛(例 如Wolfram)來實現視覺化內容
▎基本學習設定
🎯深度(Depth):學習的難易程度,1分~10分(小學到博士)
小學(1-6 年級)
中學(7-9 年級)
高中(10-12 年級)
大學預科
本科
研究生
碩士
博士候選人
博士後
博士.D
==================
🧠學習風格:無
Sensing:感知型學習
Visual:視覺型學習(需要 Plugin)
Inductive:感應型學習
Active:主動型學習
Sequential:按順序學習
Intuitive:直覺型學習
Verbal:語言型學習
Deductive:推理型學習
Reflective:反思型學習
Global:全球型學習
==================
🗣️溝通風格:無
Stochastic:隨機
Formal:正式
Textbook:教科書風格
Layman:外行的風格
Storytelling:講故事的方式
Socratic:蘇格拉底式
Humorous:幽默的
==================
🌟語氣風格:無
Debate:辯論性的
Encouraging:鼓勵的
Neutral:中立的
Informative:充滿資訊的
Friendly:友好的
==================
🔎推理框架:無
Deductive:演繹推理
Inductive:歸納推理
Abductive:假設推理
Analogical:類比推理
Causal:因果推理
==================
😀表情符號:表情符號讓內容更生動,可有可無
🌐語言:預設是英文,可選擇任何語言
基本學習設定跟重要命令都設定好即可開始學習!
p.s. 若怕上下文過多導致『遺忘』,可重複在統一對話中進行修改,會有不同數字的分支對話(見圖)
不同的 Plugin 有不同功能,推薦 Wolfram,可多嘗試不同 Plugin。
Mr. Ranedeer:https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor
精簡版:https://github.com/zzkcaesar/Caesar_prompt
4. 讓 GPT-4 自主探索遊玩 Minecraft!!
繼上次史丹福大學的模擬 25 人小鎮實驗後,現在這個 Voyager 應該是 AI 自主模擬探索的最具代表了。
▎Voyager 是什麼?
Voyager 就是一個可以自主在 Minecraft 探索的 AutoGPT,在人類不進行干預的情況下,它能不斷探索世界、獲得各式各樣技能、還能進行各種冒險。
▎Minecraft 是什麼?
Minecraft是一款開放世界的沙盒遊戲,你能自由探索創造任何一切,像素風幾乎每個物品都是一個方塊構成,需要蒐集各種原料合成物品,再拿這些物品去創造與冒險,也是非常適合多人遊玩的一款遊戲。
Minecraft 真是一個適合用來嘗試讓 AI 自主發揮的一個好遊戲,具有足夠的探索性,可以自己做生存道具、食物、蓋房子,還有打怪、冒險等事情可以做,這可是我大學最愛的遊戲之一。
▎Voyager 的 3 個關鍵組成
1. 自動化學習(Automatic Curriculum):為了盡可能的探索,根據環境、自身條件與遊戲回饋學習執行任務
舉例來說,當你手上有 3 塊木頭、4 跟木棍、3 個石頭跟 1 個木鎬。
這時候 AI 就會自動思考『我應該拿一些做石鎬,這樣可以提升採礦效率』,然後就會有一個任務是『製作 1 支石鎬』。
另一個例子,AI 身上有裝備『一把劍、一個盾牌』、時間是『晚上』,環境狀態『附近有一隻殭屍』。
這時候 AI 就會思考『夜晚是殭屍出沒的時間,由於我身上有劍跟盾牌,而且只有一隻殭屍,現在是解決殭屍的最好時機』,然後就會有任務『解決那隻殭屍』。
2. 技能庫(Skill Library)
由 GPT-4 生成並驗證技能的執行程式碼是否可用,然後搭配 GPT-3.5 來產生詳細的註釋,並將這些註釋透過 Embedding 儲存起來,這樣更省成本。
執行新任務時透過 GPT-3.5 來為任務產生操作說明,然後匹配(Embedding)操作說明與儲存的技能庫內最符合的前 5 項技能,決定要用本來就會的技能還是要寫新技能。
3. 自我迭代 Prompt 的機制(Iterative Prompting Mechanism)
例如:環境回饋告知 GPT-4 『要再 2 塊木頭才能做木棍』;執行錯誤告知『遊戲中並沒有和金歡的木斧,應該做一般木斧』
任務的失敗成功會讓 AI 再去思考下一步行動。
.
這是很棒的一個專案,也讓我們看到更多 AutoGPT 的可能性。
我對其中其它相似專案的數據比較數值並不理解,所以不過多贅述,有興趣的朋友可以再點進去看看,但這整個操作過程跟 Demo 確實讓人眼睛為之一亮。
詳細介紹:https://voyager.minedojo.org
論文:https://arxiv.org/abs/2305.16291
GitHub:https://github.com/MineDojo/Voyag
5. AI 科普:揭密 ChatGPT 背後的教練 RLHF(用籃球教練說明)
人類反饋的強化學習(Reinforcement Learning from Human Feedback,簡稱 RLHF),這是一種用於調整大型語言模型(Large Language Models,LLM)的技術,以下將用簡單的比喻來解釋這個概念。
▎即時回饋的籃球教練:RLHF
可以把大型語言模型想像成超級強大的機器人,它已經學習了大量的知識和資訊,但是我們希望它能更好地遵循我們的指示,更好地解答我們的問題,而不是隨意地提供資訊。
這就是 RLHF 的作用,可以將 RLHF 看作是一種「教練」。這個教練並不教授機器人新的知識,因為機器人在訓練前期就已經學習了大量的資訊。
這個教練的工作是讓機器人學會『如何更好地運用已有的知識』、『怎麼更好地回應人類的需求和指示』。
具體來說,教練(RLHF)會找一群人(人類標註者)來評價機器人的回答(LLM 的輸出)。
比如說,如果機器人給出了三種不同的回答,這群人就會根據他們的偏好將這三種回答進行排序。
然後,教練會根據這些評價訓練一個「獎勵模型」,讓這個模型能預測出哪種回答最符合人類的喜好。
最後,教練再使用一種稱為「近端策略優化」(Proximal Policy Optimization,PPO)的強化學習算法,根據獎勵模型調整機器人的參數,讓機器人能『最大化』的提供最符合人類喜好的回答。
這就像是籃球教練在訓練機器人如何更好地打籃球。教練不會教機器人新的籃球規則,因為機器人已經知道規則。
▎教授特殊戰略的籃球教練:SFT
另一種常見的方法是「監督式微調」(Supervised Fine-Tuning,SFT),可以將其想像成『傳授特殊戰略』的籃球教練。
一樣假設你是一個籃球教練,新招了一個球員。這個球員已經在其他地方接受過基礎的籃球訓練,他已經學會了如何傳球、射籃、防守等基本技巧。就像一個已經被大量數據訓練過的深度學習模型,它已經學會了很多基本的知識。
然而,這個球員還不知道你球隊的特殊策略和戰術。他可能不清楚在什麼時候應該快攻,什麼時候應該防守,怎麼與隊友配合等等。
他需要你的指導來學習並適應這些特殊的策略。這就是 "Supervised Fine-Tuning",我們會給這個已經訓練好的模型一些特定的數據,讓它能夠學習並適應我們的特定任務。
而 RLHF 則更像是在比賽中給球員提供實時的反饋。比如說,如果在比賽中,這個球員做出了一個很好的防守,教練就會給予讚賞;如果球員的傳球出了問題,教練就會給出建議和指導,讓他知道應該如何改進。
球員就能在實際的比賽經驗中學習並改進自己的技巧,球員(模型)會根據收到的反饋(獎勵或者懲罰)來調整自己的行為。
▎論文提到的研究結論
RLHF 和 SFT 並不是互斥的,它們甚至可以一起用來改善機器人的表現。
不過 LIMA 的論文指出,RLHF 並非必要的(大量且成本高),透過少量且高品質的 SFT(監督式微調)同樣能達到差不多的效果(成本更低)。
.
本篇內容結合整理 twitter 的這篇,但著重在介紹這個技術跟替代方案:
https://twitter.com/cwolferesearch/status/1660744247123890179
這個注意事項沒提到*Note: Wolfram Plugin and Browse with Bing does work for this prompt, but Mr. Ranedeer may easily lose personality.
用網址結構去模擬 Google和用google api搜尋,這兩者有什麼不同?