從這篇文章開始,我們就正式開始學(xué)習(xí)AI大模型應(yīng)用開發(fā)的相關(guān)知識(shí)了。首先是提示詞工程(Prompt Engineering)。
AI大模型火了也已經(jīng)有一年多了,相信大家或多或少都聽過或見過一個(gè)詞叫“Prompt”,這就是提示詞。
用戶給大模型輸入一個(gè)Prompt,大模型會(huì)根據(jù)你的Prompt給出一個(gè)回復(fù),這是目前為止,最常用的使用大模型的方法。網(wǎng)絡(luò)上很多號(hào)稱“不用編程,輕松實(shí)現(xiàn)自己的應(yīng)用、助理”等,都是基于Prompt來做的。即使是需要通過編程的方式來使用大模型達(dá)到自己需求的,過程中也會(huì)大量使用Prompt,將Prompt固化到程序中,作為“代碼”的一部分。
所以,在現(xiàn)在的AI時(shí)代,Prompt也可以看作是一門【編程語言】,最近新興了一個(gè)職業(yè)叫做【提示詞工程師】,也就類似是AI時(shí)代的程序員。
現(xiàn)在Prompt工程并沒有形成一套完整的標(biāo)準(zhǔn)化體系,網(wǎng)絡(luò)上關(guān)于如何使用Prompt的文章也是鋪天蓋地,非常雜亂,讓人眼花繚亂。因?yàn)楸救讼胍詫?shí)戰(zhàn)為主,因此本文只是總結(jié)一下Prompt的最基本構(gòu)成和原則。
重要提醒:
Promt是一個(gè)需要不斷優(yōu)化的過程,沒有哪一篇文章或哪一個(gè)Prompt是適用于所有場景,或者拿來直接可用的。
即使同一個(gè)場景,相同的Prompt,不同的大模型之間也會(huì)效果不同。如果換了大模型,提示詞大概率需要重新優(yōu)化。
所以不要光看網(wǎng)上的什么【最佳實(shí)踐】,還是要下場實(shí)操,在不斷迭代中學(xué)會(huì)優(yōu)化Prompt的方法,才是最重要的。
簡要概括:它只是根據(jù)上文,猜下一個(gè)詞的概率,在前幾個(gè)概率大的詞中選擇一個(gè)輸出。
如果不會(huì)編程,或不想寫代碼,可以直接在AI軟件中使用Prompt,例如:
ChatGPT
文心一言
下面是上篇文章【AI大模型應(yīng)用開發(fā)】0. 開篇,用OpenAI API寫個(gè)Hello World !我們的“Hello World”程序,里面包含了一個(gè)函數(shù)chat.completions.create
。
from openai import OpenAI
# 加載 .env 到環(huán)境變量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
client = OpenAI()
response = client.chat.completions.create(
model="gpt-3.5-turbo-1106",
messages=[
{
"role": "user",
"content": "你是誰?"
}
],
)
print(response.choices[0].message.content)
該函數(shù)有幾個(gè)重要參數(shù)解釋下:
model:用來指定使用哪個(gè)模型,例如:gpt-3.5-turbo-1106
messages:傳入大模型的prompt,prompt有三種角色:
system:系統(tǒng)指令,最重要,用于初始化GPT行為,以及規(guī)定GPT的角色、背景和后續(xù)行為模式。system是主提示,可以進(jìn)行更加詳細(xì)的設(shè)置。
user: 用戶輸入的信息。
assistant: 機(jī)器回復(fù),由 API 根據(jù) system 和 user 消息自動(dòng)生成的。
temperature:參數(shù)值越小,模型就會(huì)返回越確定的一個(gè)結(jié)果。如果調(diào)高該參數(shù)值,大語言模型可能會(huì)返回更隨機(jī)、創(chuàng)意的結(jié)果,如詩歌、寫作等,可以適當(dāng)提高。
max_token:控制了輸入和輸出的總的token上限,要求我們的prompt不能太長,或者控制上下文輪次?。ńo你估算成本和節(jié)省成本用的)
Top_p:與 temperature 一起稱為核采樣的技術(shù),可以用來控制模型返回結(jié)果的真實(shí)性。如果你需要準(zhǔn)確和事實(shí)的答案,就把參數(shù)值調(diào)低。如果你想要更多樣化的答案,就把參數(shù)值調(diào)高一些。
Temperature和Top_p,一般建議是改變其中一個(gè)參數(shù)就行,不用兩個(gè)都調(diào)整。調(diào)了效果也不一定顯著;
本篇文章就先寫到這里,下篇文章我們開始在代碼中將Prompt用起來,并嘗試將一些技巧加進(jìn)去看下效果。
聯(lián)系客服