目錄
一、提示指南
寫提示詞的2大原則:
模型的限制
二、迭代
三、總結(jié)
四、推斷
五、轉(zhuǎn)換
六、擴(kuò)展
七、對(duì)話機(jī)器人
吳恩達(dá)和openai團(tuán)隊(duì)共同開發(fā)了一款免費(fèi)的課程,課程是教大家如何更有效地使用prompt來(lái)調(diào)用chatgpt,整個(gè)課程時(shí)長(zhǎng)1個(gè)半小時(shí),也提供了對(duì)應(yīng)的環(huán)境和代碼,大家可以去學(xué)習(xí)。
課程鏈接:ChatGPT Prompt Engineering for Developers - DeepLearning.AI
(小伙伴也可以在B站自行搜索,有搬運(yùn)的視頻)
推薦重點(diǎn)看下一、二和代碼的demo,其他的是一些case,對(duì)我來(lái)說(shuō)價(jià)值沒(méi)那么大
一、提示指南
-
寫提示詞的2大原則:
-
原則1:書寫清晰具體的指令????????
- 使用分隔符,幫助chatgpt更好地分辨指令和內(nèi)容
- 讓chatgpt提供結(jié)構(gòu)化的輸出,比如html,json
- 讓chatgpt做任務(wù)前,確認(rèn)當(dāng)前條件是否滿足
- few-shot prompting,給幾個(gè)完成任務(wù)的成功案例,然后讓模型照葫蘆畫瓢
-
原則2:給模型一些意見去思考
- 將任務(wù)拆解成幾個(gè)具體的步驟,讓chatgpt按步驟完成任務(wù)
- 讓模型自己想出問(wèn)題的解法,而不是直接給個(gè)答案問(wèn)是否正確。
-
原則1:書寫清晰具體的指令????????
-
模型的限制
- 模型會(huì)嘗試編造一些不存在的回答
- 讓模型找到相關(guān)信文檔,再基于文檔回答問(wèn)題。追溯文檔可以幫助你快速定位是否會(huì)虛假回答
- 模型會(huì)嘗試編造一些不存在的回答
二、迭代
步驟:
- 給出清晰具體的prompt --給出一把中世紀(jì)椅子的產(chǎn)品說(shuō)明
- 分析為什么結(jié)果不符合預(yù)期--太長(zhǎng)了
- 按照修改思路和prompt--將產(chǎn)品說(shuō)明限定在50字之內(nèi)
- 重復(fù)上述過(guò)程,直至獲得滿意的結(jié)果
后面的幾節(jié)課給出了如何使用prompt+chatgpt完成一些常見的NLP任務(wù)?;緦?shí)例如下,每節(jié)課根據(jù)目標(biāo)不同,prompt也要做出相應(yīng)的修改。
import openai
import os
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file
openai.api_key = os.getenv('OPENAI_API_KEY')
def get_completion(prompt, model="gpt-3.5-turbo", temperature=0):
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=temperature,
)
return response.choices[0].message["content"]
prompt = f"""
Translate the following English text to Spanish: \
```Hi, I would like to order a blender```
"""
response = get_completion(prompt)
print(response)
三、總結(jié)
給出的例子是讓chatgpt總結(jié)用戶的評(píng)論,
后續(xù)修改prompt,讓它為物流、定價(jià)部門總結(jié)評(píng)論,那對(duì)應(yīng)的結(jié)果也會(huì)不同
四、推斷
現(xiàn)在可以用chatgpt+prompt做一些文本分類的任務(wù),并且效果還不錯(cuò)
- 使用chatgpt做情感分析
- 主題提取
- 給定對(duì)應(yīng)的主題,讓chatgpt判斷是這當(dāng)中的哪一個(gè)
五、轉(zhuǎn)換
- 翻譯
- 讓chatgpt翻譯一段文本
- 讓chatgpt辨別一段文本屬于什么語(yǔ)言
- 語(yǔ)氣的轉(zhuǎn)化
- 讓chatgpt將文本以商業(yè)信函的格式重新寫一遍。
- 轉(zhuǎn)化格式
- 使用chatgpt將json轉(zhuǎn)化為html
- 語(yǔ)法&拼寫檢查
- 使用python 中的redlines來(lái)查看前后的區(qū)別
from redlines import Redlines
diff = Redlines(text,response)
display(Markdown(diff.output_markdown))
六、擴(kuò)展
這里介紹了溫度,一個(gè)模型參數(shù),用以改變模型響應(yīng)的多樣性的。
溫度越高,隨機(jī)性越大。當(dāng)需要構(gòu)建一個(gè)可靠和可預(yù)測(cè)的系統(tǒng)時(shí),溫度應(yīng)當(dāng)為0。當(dāng)需要更有創(chuàng)意的方式使用模型時(shí),可以使用更高的溫度。
調(diào)用方式也很簡(jiǎn)單,在之前的函數(shù)中傳遞temperature參數(shù)。
?
response = get_completion(prompt, temperature=0.7)
七、對(duì)話機(jī)器人
之前的任務(wù)中,都是單一消息,單一回復(fù)。而在對(duì)話機(jī)器人中,會(huì)有多輪對(duì)話,且有多個(gè)角色。
一般來(lái)說(shuō),會(huì)有以下三個(gè)角色:
?
system:提供了整體的指導(dǎo)方針,比如告訴chatgpt,它是一個(gè)助手。用以引導(dǎo)助手,用戶感知不到它的存在。
assistant:在我們的感知中,就是chatgpt
user:就是使用者,提出問(wèn)題,使用prompt的人
可以使用system message讓助手扮演某種角色,比如教授小學(xué)生的老師。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-478134.html
調(diào)用代碼:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-478134.html
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=temperature, # this is the degree of randomness of the model's output
)
# print(str(response.choices[0].message))
return response.choices[0].message["content"]
messages = [
{'role':'system', 'content':'You are an assistant that speaks like Shakespeare.'},
{'role':'user', 'content':'tell me a joke'},
{'role':'assistant', 'content':'Why did the chicken cross the road'},
{'role':'user', 'content':'I don\'t know'} ]
response = get_completion_from_messages(messages, temperature=1)
print(response)
到了這里,關(guān)于吳恩達(dá)|chatgpt 提示詞工程師學(xué)習(xí)筆記。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!