最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

什么是 tokens,ChatGPT里面的Tokens如何計(jì)數(shù)?

2023-06-09 15:09 作者:元壤黎躍春  | 我要投稿

什么是 tokens?

Tokens 可以被認(rèn)為是詞語的片段。在 API 處理提示之前,輸入會被分解成 tokens。這些 tokens 并不會精確地在單詞的開始或結(jié)束處切分 - tokens 可以包含尾隨的空格甚至子詞。以下是一些幫助理解 tokens 長度的經(jīng)驗(yàn)法則:

1 token ~= 英文中的4個(gè)字符

1 token ~= ?個(gè)單詞

100 tokens ~= 75個(gè)單詞

或者

1-2個(gè)句子 ~= 30個(gè)tokens

1段落 ~= 100個(gè)tokens

1,500個(gè)單詞 ~= 2048個(gè)tokens

為了獲取更多關(guān)于tokens如何疊加的上下文,可以考慮以下例子:

  • 韋恩·格雷茨基的名言 "You miss 100% of the shots you don't take" 包含11個(gè)tokens。

單詞如何被分割成 tokens 也取決于語言。例如,'Cómo estás'(西班牙語中的'你好嗎')包含5個(gè) tokens(對應(yīng)10個(gè)字符)。較高的 token 到字符比率可能使得對英語以外的語言實(shí)現(xiàn) API 更加昂貴。

  • 我名字拼音+空格+wetchat+我的微信號"liyuechun wetchat liyc1215" 包含13個(gè)tokens。

飛書、釘釘、企微GPT能力嫁接和AIGC企業(yè)培訓(xùn),聯(lián)系我:liyc1215

  • ”黎躍春“三個(gè)字包含8個(gè)tokens

  • "付金亮"三個(gè)字包含6個(gè)tokens

如果你想進(jìn)一步探索分詞,你可以使用我們的交互式 Tokenizer 工具,它可以讓你計(jì)算 token 的數(shù)量,并查看文本如何被分割成 tokens?;蛘?,如果你想通過編程方式進(jìn)行分詞,可以使用 Tiktoken,這是一個(gè)專為 OpenAI 模型設(shè)計(jì)的快速 BPE 分詞器。你也可以嘗試探索其他庫,例如 Python 的 transformers 包,或者 node.js 的 gpt-3-encoder 包。

Token 限制

根據(jù)使用的模型不同,請求中的prompt和completion之間最多可以使用4097個(gè)tokens。如果你的prompt是4000個(gè)tokens,那么你的completion最多可以是97個(gè)tokens。

這個(gè)限制目前是一個(gè)技術(shù)限制,但通常有許多創(chuàng)新的方法可以在這個(gè)限制內(nèi)解決問題,例如壓縮你的prompt,將文本分解成較小的部分等。

Token 定價(jià)

API 提供多種不同價(jià)格點(diǎn)的模型類型。每種模型都有一系列的能力,其中davinci是最強(qiáng)大的,ada是最快的。對這些不同模型的請求定價(jià)不同。你可以在這里找到關(guān)于token定價(jià)的詳細(xì)信息。

探索 tokens

API會根據(jù)語料庫數(shù)據(jù)中的上下文來處理單詞。GPT-3接受prompt,將輸入轉(zhuǎn)換成一系列的tokens,處理prompt,并將預(yù)測的tokens轉(zhuǎn)換回我們在響應(yīng)中看到的單詞。

在我們看來可能是兩個(gè)相同的單詞,可能會根據(jù)它們在文本中的結(jié)構(gòu)生成不同的tokens??紤]一下API如何根據(jù)文本中的上下文為單詞'red'生成token值:

在上面的第一個(gè)例子中,‘ red’的token "2266"包含一個(gè)尾隨的空格。

帶有前導(dǎo)空格并以大寫字母開頭的‘ Red’的token "2297"與以小寫字母開頭的‘ red’的token "2266"不同。

當(dāng) 'Red' 在句子開頭時(shí),生成的token不包含前導(dǎo)空格。token "7738"與前兩個(gè)單詞的例子不同。

觀察:

token越可能/頻繁,分配給它的token號就越低:

  • 在所有3個(gè)句子中為句號生成的token是相同的("13")。這是因?yàn)椋谡Z境上,句號在語料庫數(shù)據(jù)中的使用相當(dāng)類似。

  • 根據(jù)'red'在句子中的位置,生成的token會有所不同:

    • 在句子中間的小寫:‘ red’ - (token: "2266")

    • 在句子中間的大寫:‘ Red’ - (token: "2297")

    • 在句子開頭的大寫:‘Red’ - (token: "7738")

既然我們知道tokens可以包含尾隨的空格字符,那么記住以空格字符結(jié)束的prompts可能會導(dǎo)致輸出質(zhì)量較低是有幫助的。這是因?yàn)锳PI已經(jīng)在它的tokens字典中包含了尾隨的空格。

使用 logit_bias 參數(shù)

可以在 logit_bias 參數(shù)中為特定的 tokens 設(shè)置偏差,以修改指定 tokens 出現(xiàn)在補(bǔ)全中的可能性。比如,我們正在構(gòu)建一個(gè)對用戶雞蛋過敏問題敏感的 AI 烘焙助手。

當(dāng)我們使用提示 'The ingredients for banana bread are' 運(yùn)行 API 時(shí),回應(yīng)將以26.8%的概率將 'eggs' 包含為第二種原料。

注意:要在 Playground 中查看補(bǔ)全概率,請從 Show Probabilities 下拉菜單中選擇 Full Spectrum。

由于我們的 AI 烘焙助手對雞蛋過敏問題很敏感,我們可以利用我們對 tokens 的了解,在 logit_bias 參數(shù)中設(shè)置偏差,以阻止模型生成包含任何 'egg' 變體的響應(yīng)。

首先,使用這個(gè)分詞器工具來確定我們需要為哪些 tokens 設(shè)置偏差。

Tokens:

  • 尾隨空格的單數(shù)形式:‘ egg’ - “5935”

  • 尾隨空格的復(fù)數(shù)形式:‘ eggs’ - “9653”

  • 為‘Egg’或‘Eggs’生成的子詞token - ‘gg’:“1130”

logit_bias 參數(shù)接受的偏差值范圍是 -100 到 +100,極值結(jié)果導(dǎo)致相關(guān) token 的禁止(-100)或獨(dú)占選擇(100)。

將 logit 偏差加到 prompt 中將修改 'egg'(及其變體)包含在我們的香蕉面包提示的響應(yīng)中的可能性。上述提示生成了一個(gè)不包含任何雞蛋的響應(yīng)!

雖然我們不能保證它會生成最好的無雞蛋香蕉面包配方,但 AI 烘焙助手滿足了對用戶雞蛋過敏問題的考慮需求。

總結(jié)

  1. 使用英文對話比較劃算,其他語言包括中文計(jì)算Token時(shí)比較昂貴

  2. 英文字母大概四個(gè)字母平均下來等于一個(gè)token

  3. 中文漢字,大概一個(gè)漢字平均下來兩個(gè)token

  4. 我昨天用GPT寫了7篇高考作文,總字?jǐn)?shù)為10397,Tokens 為21,008個(gè)。

計(jì)算了一下:如果使用GPT3.5的API訪問的話,整個(gè)輸入和輸出總共:21,008 個(gè)token,GPT3.5 的單價(jià)為$0.002/1000tokens,那么這7篇作文的整個(gè)對話花費(fèi)折算成人民幣的價(jià)格為:21008/1000*(0.002*7) = 0.294112元人民幣,GPT4是GPT3.5的60倍價(jià)格,如果使用GPT4的話,此次消費(fèi)為:0.294112 * 60 = 17.64672元。


最后總結(jié): 目前使用GPT3.5的價(jià)格還是很親民劃算的,等待未來算力足夠的時(shí)候,我相信GPT4.0也不會貴。


什么是 tokens,ChatGPT里面的Tokens如何計(jì)數(shù)?的評論 (共 條)

分享到微博請遵守國家法律
宜川县| 新余市| 永平县| 嫩江县| 商丘市| 萍乡市| 靖西县| 黎平县| 社旗县| 临湘市| 永胜县| 新竹市| 十堰市| 门源| 磐安县| 芮城县| 文昌市| 咸阳市| 建平县| 黄浦区| 宁陕县| 昭通市| 郎溪县| 大名县| 惠水县| 庐江县| 三河市| 辽源市| 阳朔县| 林西县| 义马市| 茌平县| 当阳市| 曲沃县| 峡江县| 石渠县| 永新县| 延川县| 抚宁县| 镇赉县| 旬阳县|