国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

聊聊ChatGPT是如何組織對話的

這篇具有很好參考價值的文章主要介紹了聊聊ChatGPT是如何組織對話的。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

為什么要組織對話?

總所周知,ChatGPT的訓(xùn)練大致可分為下圖中展示的幾個階段,其中,在Pretraining階段,模型的訓(xùn)練數(shù)據(jù)是純文本,目標(biāo)是根據(jù)上文預(yù)測下一個token,而在后面的幾個階段中,為了讓模型具備對話的能力,相應(yīng)的就需要使用對話數(shù)據(jù)進(jìn)行訓(xùn)練。而對話數(shù)據(jù)一般包含多個角色的文本,如何將這些文本有效地組織、拼接起來(openAI將其稱之為Chat Markup Language,簡稱ChatML),是本文要聊的內(nèi)容。

聊聊ChatGPT是如何組織對話的,人工智能,chatgpt

from Microsoft Build 2023 《State of GPT》

ChatGPT的ChatML

根據(jù)openAI的介紹[1],ChatML v0會將每個角色(systemuser、assistant)的文本進(jìn)行如下拼接:

<|im_start|>system
You?are?ChatGPT,?a?large?language?model?trained?by?OpenAI.?Answer?as?concisely?as?possible.
Knowledge?cutoff:?2021-09-01
Current?date:?2023-03-01<|im_end|>
<|im_start|>user
How?are?you<|im_end|>
<|im_start|>assistant
I?am?doing?well!<|im_end|>
<|im_start|>user
How?are?you?now?<|im_end|>

其中<|im_start|><|im_end|>是special token,進(jìn)行tokenizer encode的時候他們會被編碼成對應(yīng)的單個token id,他們專門用來表示一個角色說話的startend。

那么,如果對話文本中包含了<|im_end|>豈不是會造成模型的困擾?為了防止這種類型的注入攻擊,似乎openAI會將對話文本中的<|im_start|>、<|im_end|>過濾掉。

聊聊ChatGPT是如何組織對話的,人工智能,chatgpt

可能是過濾了<|im_start|>,ChatGPT的回復(fù)中沒有提到<|im_start|>

聊聊ChatGPT是如何組織對話的,人工智能,chatgpt

將<|im_start|>改成<im_start>,ChatGPT能夠完整輸出用戶剛剛的問題

另外,值得注意的是system prompt中的小trick,其中包含了Current date的信息,在響應(yīng)用戶提問的時候進(jìn)行動態(tài)的修改,使模型能夠回復(fù)一些和當(dāng)前日期相關(guān)的問題。

聊聊ChatGPT是如何組織對話的,人工智能,chatgpt

聊聊ChatGPT是如何組織對話的,人工智能,chatgpt

當(dāng)這只是ChatML v0的格式,是3月份時候的版本了,最新版的gpt-3.5-turbo-0613中角色增加了function,目前ChatGPT的ChatML演進(jìn)到了什么格式還是未知,一些眼尖的開發(fā)者也發(fā)現(xiàn)了當(dāng)前的ChatML已經(jīng)不是v0了[2]。

StarChat的ChatML

ChatML的格式不止openAI一種,StarChat提供了另一種思路[3]:

<|system|>
Below?is?a?dialogue?between?a?human?and?AI?assistant?called?StarChat.
<|end|>
<|user|>
Is?it?possible?to?imagine?a?society?without?law?<|end|>
<|assistant|>
It?is?difficult?to?imagine?...<|end|>
<|user|>
It?seems?like?you?...<|end|>
<|assistant|>
You?are?correct?...<|end|>
<|user|>
Yeah,?but?laws?are?complicated?...<|end|>

其中<|system|>、<|assistant|>、<|user|>、<|end|>是special token,[3]中很貼心地提供詳細(xì)的代碼,感興趣的讀者可以進(jìn)一步了解。

將角色信息用special token表示,可以更好的避免注入攻擊,但由于這些special token對應(yīng)的embedding在預(yù)訓(xùn)練階段是未經(jīng)過訓(xùn)練的,在SFT過程中需要充分的訓(xùn)練才能有好的表現(xiàn)。

總結(jié)

ChatML是訓(xùn)練對話大模型的一個小細(xì)節(jié),本文介紹的兩種方式都是利用了special token來顯式表示對話的邊界,同時還能節(jié)約上下文的空間,相比于直接使用###user xxx ###assistant xxx是要更好的。

The devil is in the detail.

Reference

[1]?openai-python/chatml.md

[2]?ChatML update for th gpt-3.5-turbo-0613 and gpt-4

[3]?使用 StarCoder 創(chuàng)建一個編程助手文章來源地址http://www.zghlxwxcb.cn/news/detail-516296.html

到了這里,關(guān)于聊聊ChatGPT是如何組織對話的的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包