聊天機器人應用實務

Practical Applications of Chatbots

Introduction to ChatGPT prompting

使用ChatGPT

ChatGPT旋風

使用ChatGPT

官網註冊

手機應用

使用ChatGPT

  • ChatGPT免費版
    • 訓練資料: before September 2021
    • 引擎: GPT-3.5
  • ChatGPT Plus
    • 每月20美元
    • 引擎GPT-4, 資料不限2021年9月之前(2023/9/27 release notes)

使用ChatGPT界面

Context對話情境

Prompt Engineering

提示工程

使用ChatGPT提示

Prompt(提示):提供給語言模型(language model, 如GPT-3.5) 指令問題。模型會根據這個初始提示來生成相關的回答、文本或內容。

提示: 明定步驟

使用ChatGPT提示

提供範例資料

推論

使用ChatGPT提示

將複雜任務拆解成較小的任務

使用ChatGPT提示工程

提示工程(Prompt engineering)是人工智慧中、自然語言處理(NLP)的操作概念。任務(tasks)的描述會被嵌入到輸入中。例如,不是隱含給予模型一定的參數,而是以問題的形式直接輸入。

設定角色

設定輸出格式

5種設計提示的最佳實務

提示要具體

設定條件

提供範例

使用ChatGPT提示工程

目的

設定角色

行銷任務最佳實務

參數

主題

通路

受眾

格式

目標

使用ChatGPT提示工程

關聯思考CoT

少量樣本

模板

拆解

使用ChatGPT基本原則

iteration #101

  • back and forth
    • 前後來回修正
  • ask for variations
    • 請提供3個不同的版本
  • ask for clarification
    • 釐清答案
  • maintain stability in the face of change
    • 明示保留、刪除的部份
  • add explanations
    • 提供解釋

第一次練習

擇定一主題,使用前述技巧產生吸引人的內容

時間: 5分鐘

文案、書籍、影片、網站...的標題

修改文章

email, po文等等

Prompting基本技巧

指令Instruction (1/5)

提示指令

模型輸出

淡水最知名的景點是哪一個

淡水老街

理想的情境

實際的情況,很可能是...

請幫我去識別化,將姓名中間的字以O取代

李陸助
黃宇駿
黃家宥

以下是姓名中間字以'O'取代後的名單:

李陸助
黃宇駿
黃家宥

指令Instruction 給範例(examples)(2/5)

常見的建議一:給範例

以下是姓名中間字以'O'取代後的名單:

李O助
黃宇駿
黃家宥
唐楷O

部分答對...比例不是很高 < 50%

幫我去識別化,將姓名中間的字以O取代。例如鄧雅之,以鄧O之取代。

李陸助
黃宇駿
黃家宥
唐楷勛

shot / shots

one-shot prompting

思考點: 例子不夠多?

two shots? few shots

指令Instruction 角色(3/5)

常見的建議二:角色扮演

抱歉,我之前的回答有誤,請容許我重新回答。以下是姓名中間字以'O'取代後的名單:

李O助
黃宇駿
黃家宥
唐O勛

答案沒有改變 仍是< 50%

你是中文姓名專家,再試著回答上面的問題

顯然ChatGPT不認為中文姓名專家該懂「個資法」

指令Instruction 情境(4/5)

常見的建議三:更詳細的解釋(context)

答案顯著改善,除了黃姓以外,全部正確

中文姓名大部分是3個字,第一個字是姓,後兩個字是名。去識別化會把第2個字,也就是姓後面的那一個字去除,以O取代。

非常抱歉之前的回答仍有誤。以下是正確的姓名去識別化結果,將中文姓名的第二個字以'O'取代:

李O助
黃宇駿
黃家宥
唐O勛
曾O為

指令Instruction(5/5)

常見的建議四:保留要的,修正不要的

全部正確!

三位姓黃的都沒有去識別化

非常抱歉之前的回答仍有誤。以下是正確的姓名去識別化結果,將中文姓名的第二個字以'O'取代:

李O助
黃O駿
黃O宥
唐O勛
曾O為

指令Instruction摘要整理(1/2)

小結:

  • 來回處理
     
  • 搭配角色
    • 部落客 vs 一般遊客 (不同風格, styling)
    • 行銷專家 vs 技術專家(不同角度)
      • 需來回測試、了解是否有效
  • 範例:zero-shot, 1-shot, few-shot(不同數量的範例)
  • 情境:進一步解釋
  • 設定回覆的行為
     
  • 版本紀錄:記錄做了什麼事,有哪些改變

指令Instruction摘要整理(2/2)

指令

範例1

範例2

範例3

這很棒! // 正面
這很糟糕! // 負面
哇,那部電影真棒! // 正面
多麼可怕的節目! //

負面

few shots

範例+指令

結果

one-shot prompting

兩個步驟

來回修正

指令Instruction 綜合練習(1/4)

指令

範例1

範例2

範例3

角色

指令:修改文章

應用:修改文章 / 回饋

角色

角色與回饋

指令Instruction 綜合練習(2/4)

指令:推論

指令

範例1

範例2

範例3

角色

情境

問題

情境說明

few-shot

並非所有部份都會出現、也沒有標準的順序

應用:推論

指令Instruction 綜合練習(3/4)

常見應用:

  • 寫報告:產生3個具有說服力的想法,主題是關於「旅館業節能減碳
    • 生成大綱、總結報告、提出反對觀點、參考來源
  • 知識學習:你扮演英文老師的角色, 我需要理解過去完成式文法。 請用淺顯易懂方式描述。
    • 概念解說、簡易/深度教學、測驗
    • 對話、單字、例句、檢查文法、修改與解釋
  • 行銷與SEO(搜尋引擎最佳化):創建一個 Email 行銷活動,利用你對產品受眾的理解,撰寫文案,以推廣產品。
    • 行銷策略:受眾分析、行銷通路、預算
    • SEO關鍵詞發想、網站metadata

指令Instruction 綜合練習(4/4)

常見應用:

  • 📚寫報告:產生3個具有說服力的想法,主題是關於「旅館業節能減碳
    • 生成大綱、總結報告、提出反對觀點、參考來源
  • 🧠知識學習:你扮演英文老師的角色, 我需要理解過去完成式文法。 請用淺顯易懂方式描述。
    • 概念解說、簡易/深度教學、測驗
    • 對話、單字、例句、檢查文法、修改與解釋
  • 📜幫助閱讀法律文件、合約
  • 📈行銷與SEO(搜尋引擎最佳化):創建一個 Email 行銷活動,利用你對產品受眾的理解,撰寫文案,以推廣產品。
    • 行銷策略:受眾分析、行銷通路、預算
    • SEO關鍵詞發想、網站metadata

大型語言模型的問題(1/3)

  • 📝無法準確引用來源
    • 部份LLM應用引用來源
    • 產生內容時,也產生事實查核的內容
  • 🙅‍♂️偏見:產生刻板、偏見的內容
    • 成因:訓練的大型資料集有此傾向
    • 性別歧視、種族歧視
    • 行銷應用上應特別注意
  • 😵幻覺Hallucinations
    • 經常給出看起來很有自信但實際上是錯誤的答案。
  • 📐數學任務經常出錯
  • 🌐駭客攻擊Prompt hacking
    • 產生不適當或有害的內容

大型語言模型的問題(2/3)

Prompt injection

大型語言模型的問題(3/3)

Prompt leaking

指令Instructions

  1. Mishra, S., Khashabi, D., Baral, C., Choi, Y., & Hajishirzi, H. (2021). Reframing Instructional Prompts to GPTk's Language. arXiv preprint arXiv:2109.07830. ( https://arxiv.org/abs/2109.07830 )
  2. Efrat, A., & Levy, O. (2020). The turking test: Can language models understand instructions?. arXiv preprint arXiv:2010.11982. ( https://arxiv.org/abs/2010.11982 )

Chain of Thoughts

  1. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

​​​​​​

進階技巧

Chain of Thoughts

關聯思考、思維連鎖、思路鏈(CoT)

Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

Chain of Thoughts

關聯思考、思維連鎖、思路鏈(CoT)

Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

透過展示一些範例(few-shot examplars)給LLM,範例中解釋了推理過程

 

則LLM在回答提示時也會展示推理過程

此舉通常會帶來更準確的結果。

Chain of Thoughts

Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.

The odd numbers in this group add up to an even number: 17,  10, 19, 4, 8, 12, 24.
A: Adding all the odd numbers (17, 19) gives 36. The answer is True.

The odd numbers in this group add up to an even number: 16,  11, 14, 4, 8, 13, 24.
A: Adding all the odd numbers (11, 13) gives 24. The answer is True.

The odd numbers in this group add up to an even number: 17,  9, 10, 12, 13, 4, 2.
A: Adding all the odd numbers (17, 9, 13) gives 39. The answer is False.

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.
A:

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

Chain of Thoughts

Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.

A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.

A:

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

Zero-shot CoT

Kojima, T., Gu, S. S., Reid, M., Matsuo, Y., & Iwasawa, Y. (2022). Large language models are zero-shot reasoners. Advances in neural information processing systems, 35, 22199-22213

加上"Let's think step by step"提示

Zero-shot CoT

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?

11 apples

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?
Let's think step by step.

First, you started with 10 apples.
You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left.
Then you bought 5 more apples, so now you had 11 apples.
Finally, you ate 1 apple, so you would remain with 10 apples.

Applications

角色扮演#2

 

Linux terminal

Excel

prompting重點:trial and error

Ask chatgpt do not explain anything if you just want it to act like a piece of software, such as Linux terminal.

 

Roleplay

角色扮演的關鍵:clear intructions

範例

角色:

探討劇情

角色扮演

情境:個性、語氣、nonverbal communication

Roleplay

ChatGPT的問題: 

容易得意忘形: over explain everything it does.

角色扮演練習:Act as, 扮演

try and error:

Persona

Job Title

Act as a life coach

應該要解釋該場景的完整設置和參與規則

Ontology

Roleplay

In-Context Training

In Context Training

zero shot prompt

one shot prompt

few shot prompt

chatGPT不懂的部份,透過a few shot examples to train it

In Context Training

few shot prompt範例

產生履歷表

給履歷表範例、告知chatGPT學習方向,並在收到履歷時只回應"知道了"


Chunking

divide and conquer

for long response content

 

聊天機器人應用實務-第三課

By Leuo-Hong Wang

聊天機器人應用實務-第三課

  • 269