ChatGPT模型指南--gpt-3.5-turbo
發(fā)布日期:2023/5/13 13:15:19 瀏覽量:
使用OpenAI API,您可以使用gpt-3.5-turbo構建自己的應用程序,以執(zhí)行以下操作:
- 起草一封電子郵件或一些文章
- 編寫Python代碼
- 回答一些文檔類的問題
- 創(chuàng)建對話代理
- 給你的軟件一個自然語言界面
- 一系列科目的導師
- 語言翻譯
- 模擬電子游戲角色等
本指南解釋了如何對基于聊天的語言模型進行API調(diào)用,并分享了一些提示和技巧,以幫助你獲得好的結(jié)果。您還可以在OpenAI Playground中快速嘗試這些內(nèi)容。
介紹
聊天模型將一系列消息作為輸入,并返回模型生成的消息作為輸出。
雖然聊天格式旨在使多輪對話變得容易,但它對于沒有任何對話的單輪任務(例如以前由text-davinci-003等模型的指令提供的任務)也同樣有用。
API調(diào)用示例如下所示:
# Note: you need to be using OpenAI Python v0.27.0 for the code below to work import openai openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Who won the world series in 2020?"}, {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, {"role": "user", "content": "Where was it played?"} ] )
主要輸入是消息參數(shù)。消息必須是消息對象的數(shù)組,其中每個對象都有一個角色(“system”、“role”或“assistant”)和內(nèi)容(消息的內(nèi)容)。對話可以短至1條消息或很多頁的消息。
通常,對話首先格式化為系統(tǒng)消息,然后是交替的用戶消息和助理消息。
系統(tǒng)消息有助于設置助手的行為。在上面的例子中,助理被指示“You are a helpful assistant.”。
gpt-3.5-turbo-0301并不總是非常關注系統(tǒng)消息。將對未來的模型進行培訓,以更加關注系統(tǒng)信息。
用戶消息有助于指導助手。它們可以由應用程序的最終用戶生成,也可以由開發(fā)人員設置為指令。
助理消息有助于存儲之前的回復。它們也可以由開發(fā)人員編寫,以幫助提供所需行為的示例。
當用戶說明引用之前的消息時,包括對話歷史記錄會有所幫助。在上面的例子中,用戶的最后一個問題是“在哪里比賽的?”就是通過提前設置的對話消息來幫助回答。由于模型沒有過去請求的記憶,因此所有相關信息必須通過對話提供。如果對話無法滿足模型的令牌限制,則需要以某種方式縮短。
API響應示例如下所示:
{
’id’: ’chatcmpl-6p9XYPYSTTRi0xEviKjjilqrWU2Ve’,
’object’: ’chat.completion’,
’created’: 1677649420,
’model’: ’gpt-3.5-turbo’,
’usage’: {’prompt_tokens’: 56, ’completion_tokens’: 31, ’total_tokens’: 87},
’choices’: [
{
’message’: {
’role’: ’assistant’,
’content’: ’The 2020 World Series was played in Arlington, Texas at the Globe Life Field, which was the new home stadium for the Texas Rangers.’},
’finish_reason’: ’stop’,
’index’: 0
}
]
}
在Python中,助手的回復可以通過response[’choices’][0][’message’][’content’]提取。
每個響應都將包含一個finish_reason,finish_reason的可能值是:
- stop:API返回完整的模型輸出
- length:由于max_tokens參數(shù)或令牌限制,模型輸出不完整
- content_filter:由于我們內(nèi)容過濾器中的旗幟而省略的內(nèi)容
- null:API響應仍在進行中或不完整
什么是Token令牌?
語言模型以稱為token令牌的塊來讀取文本。在英語中,令牌可以短至一個字符,也可以短至一個單詞(例如,a或 apple),在某些語言中,令牌甚至可以短于一個字符,甚至長于一個單詞。
例如,字符串"ChatGPT is great!"編碼為六個令牌:["Chat", "G", "PT", " is", " great", "!"]。
API調(diào)用中的令牌總數(shù)會影響:
- 當您為每個令牌支付時,您的API調(diào)用成本是多少
- 您的API調(diào)用需要多長時間,因為編寫更多令牌需要更多時間
- 您的API調(diào)用是否有效,因為總令牌必須低于模型的最大限制(gpt-3.5-turbo-0301為4096個令牌)
輸入和輸出令牌都計入這些數(shù)量。例如,如果您的API調(diào)用在消息輸入中使用了10個令牌,而您在消息輸出中收到了20個令牌,您將被收取30個令牌的費用。
要查看API調(diào)用使用了多少令牌,請檢查API響應中的usage字段(例如,response[’usage’][’total_tokens’])。
像gpt-3.5-turbo聊天模型使用令牌的方式與其他模型相同,但由于它們基于消息的格式,更難計算對話將使用多少令牌。
要查看文本字符串中有多少個令牌,無需進行API調(diào)用,請使用OpenAI的tiktoken Python庫。示例代碼可以在OpenAI Cookbook關于如何使用tiktoken計算令牌的指南中找到。
傳遞給API的每條消息都會消耗內(nèi)容、角色和其他字段中的令牌數(shù)量,外加一些用于幕后格式化的額外令牌。這在未來可能會略有變化。
如果對話的令牌太多,無法滿足模型的最大限制(例如,gpt-3.5-turbo的令牌超過4096個),您必須截斷、省略或以其他方式縮小文本,直到它適合。請注意,如果消息從消息輸入中刪除,模型對內(nèi)容的真正意義可能理解不準確。
另請注意,長時間的對話更有可能收到不完整的回復。例如,一個長達4090個令牌的gpt-3.5-turbo對話將在僅6個令牌后被切斷回復。
指導聊天模型
指導模型的最佳實踐可能會隨著版本有所變化。以下建議適用于gpt-3.5-turbo-0301,可能不適用于未來的模型。
許多對話從系統(tǒng)消息開始,以溫和地指導助理。例如,以下是用于ChatGPT的系統(tǒng)消息之一:
您是ChatGPT,一個由OpenAI訓練的大型語言模型。盡可能簡潔地回答。知識截止:{knowledge_cutoff}當前日期:{current_date}
一般來說,gpt-3.5-turbo-0301沒有非常關注系統(tǒng)消息,因此重要指令通常最好放在用戶消息中。
如果模型沒有生成您想要的輸出,請隨意迭代并嘗試潛在的改進。你可以嘗試以下方法:
- 讓你的指示更明確
- 指定您想要答案的格式
- 在確定答案之前,讓模型一步一步地思考或辯論利弊
有關更及時的工程想法,請閱讀OpenAI Cookbook技術指南,以提高可靠性。
除了系統(tǒng)消息,temperature和max tokens是影響聊天模型輸出的許多選項中的兩個。對于溫度,像0.8這樣的較高值將使輸出更加隨機,而像0.2這樣的較低值將使其更加集中和確定性。在最大令牌的情況下,如果您想將響應限制在一定長度,最大令牌可以設置為任意數(shù)字。但是,如果您將最大令牌值設置為5,這可能會導致問題,因為輸出將被切斷,結(jié)果對用戶來說沒有意義。
【gpt-3.5-turbo】 vs 【text-davinci-003】
由于gpt-3.5-turbo的性能與text-davinci-003相似,但每個令牌的價格僅有text-davinci-003的10%,因此建議大多數(shù)開發(fā)者使用gpt-3.5-turbo。
如果您使用text-davinci-003將英語翻譯成法語:
Translate the following English text to French: "{text}"
等效的gpt-3.5-turbo聊天對話:
[
{"role": "system", "content": "You are a helpful assistant that translates English to French."},
{"role": "user", "content": ’Translate the following English text to French: "{text}"’}
]
或者甚至只是用戶消息:
[
{"role": "user", "content": ’Translate the following English text to French: "{text}"’}
]
馬上咨詢: 如果您有業(yè)務方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術,還有行業(yè)經(jīng)驗積累。
QQ: 39764417/308460098 Phone: 13 9800 1 9844 / 135 6887 9550 聯(lián)系人:石先生/雷先生