我們今天要談的主題是要怎麼讓 AI 理解你!
想像一個情境是,你想要你的朋友幫你做一件事。如果你只說一句「幫我寫報告」,他根本不會知道你想要什麼內容、怎樣的格式或口吻等等的。這樣他要怎麼給你一個符合你需求的報告!?
所以呢 (不要叫你朋友幫你寫報告) GPT 雖然是我們的好朋友、好助手,但它也不會通靈!!當我們需要它完成一個任務時,就必須提供更多說明或範例,才能讓它更精準地完成任務。
但是在下指令的時候,打出一大堆字、盡可能越詳細越好的的描述任務細節,這樣就是好的嗎?那可不一定~
大家或許多多少少都碰過以下這張圖的情況吧 XDD
圖片來源:https://clickup.com/blog/chatgpt-memes/
我們今天就來看看 GPT 的學習模式,以及 Prompt(提示詞)設計又是一門怎麼樣的學問吧!
上下文學習指得是模型在生成文字時,不用重新訓練,只要根據輸入的文字內容與範例,也就是所謂的「上下文」,就能理解任務。
這個詞是 GPT 的研究人員提出的。因為發現了 GPT 只要被餵入一些範例,並且是依照格式排好,它就可以自己從前面的內容接龍下去,而且是可以接出正確的答案!
像是以下這張圖。把四句話餵入模型,前三句有標籤,第四句話的標籤留空,模型就會判斷出第四句話的標籤是什麼。
圖片來源:https://arxiv.org/pdf/2202.12837
上下文學習(ICL)雖然名稱裡有「學習」這兩個字,但他其實不像「監督式學習」、「強化式學習」那樣是一種訓練手法。
上下文學習是用來說明以上那樣的語言模型的現象。準確來說,是指稱生成式 LLM 會根據「提供的範例」來產生預測的標記,而 不需要進行額外的訓練或微調。
現在我們知道 GPT 這個能力了~那接下來我們要怎麼設計跟他溝通的指令呢?
首先要提到「Prompt」這個字,在英文有「提示、引導」的意思。我們在使用 ChatGPT 時,輸入的每一句話就是對模型的提示與引導詞,於是被稱為「Prompt」,中文可以說「提示詞」。
所以 Prompt 是人類跟 AI 溝通的語言。而「Prompt 設計」(Prompt Design)甚至「提示工程」(Prompt Engineering)都是在研究怎麼講這種語言,讓 AI 懂你想要什麼!
以下介紹幾個技法~
單純的提出問題,或是指令,沒有提供範例。模型完全靠提示文字來理解任務。
Prompt:
將下列句子翻譯成英文:今天很冷
除了提供引導詞,也提供一個以上範例,幫助模型理解任務模式。
Prompt:
翻譯以下中文句子:
中文:我愛學習 → 英文:I love studying
中文:今天天氣很好 → 英文:The weather is nice today
中文:他正在跑步 → 英文:
核心概念是要引導模型 逐步思考。可以搭配前面的技法,決定是否要提供例子。
Prompt:
逐步思考並回答:如果我有 500 元,花掉了 200 元 ,現在還有多少?
Prompt:
問題:如果有 3 個蘋果,我再買 2 個,現在有幾個蘋果?
步驟:
1. 原本有 3 個蘋果
2. 又買了 2 個
3. 總數 = 3 + 2
答案:5 個
問題:如果我有 500 元,花掉了 200 元 ,現在還有多少?
步驟:
答案:
今天我們學到了 上下文學習(In-Context Learning, ICL) 的概念,也就是 GPT 可以「從輸入的文字範例中學習」,不需要再額外訓練模型。
我們也看了幾種常見的 Prompting 技巧(Zero-shot、Few-shot、Chain of Thought 等),能幫助 AI 更精準地完成任務。
不過這些技巧,其實都是一些「溝通原則」而已。因為有了 ICL 這樣的能力,與 GPT 的互動方式幾乎是無限的!
只要掌握幾個大方向,像是 明確、清晰、有條理、提供參考範例,讓模型能抓到規律,GPT 就會成為你貼心又聽話的得力助手啦~~
到了今天,我們的 主題四:模型與方法 也正式告一段落了 🎉🎉🎉
接下來的最後五天,我們要進入 主題五:NLP 與 AI 的應用。我們會一起探索 RAG 系統(Retrieval-Augmented Generation),這可是 AI 應用界非常 fancy 的技術之一哦,千萬別錯過啦!!