通義千問計量計費說明
在您調用通義千問的API時會產(chǎn)生一定的費用,模型調用也有限流條件。本文介紹了計費單元、計費單價、您可免費使用的額度以及模型的限流條件。
通義千問
計費單元
模型服務 | 計費單元 |
通義千問 | token |
Token是模型用來表示自然語言文本的基本單位,可以直觀地理解為“字”或“詞”。對于中文文本來說,千問模型的1個token平均對應1.5-1.8個漢字;對于英文文本來說,1個token通常對應一個單詞或詞根。
通義千問模型服務根據(jù)模型輸入和輸出的token數(shù)量分別進行計量計費,其中多輪對話中的所有messages作為輸入都會進行計量計費。每一次模型調用產(chǎn)生的實際token數(shù)量可以從 response 中獲取。
字符串與token之間的互相轉換
不同的大模型切分token的方法可能不同。您可以使用SDK在本地查看經(jīng)過通義千問模型切分后的token數(shù)據(jù)。
# 運行前請 pip install tiktoken
# pip install dashscope[tokenizer]
from dashscope import get_tokenizer # dashscope版本 >= 1.14.0
# 獲取tokenizer對象,目前只支持通義千問系列模型
tokenizer = get_tokenizer('qwen-turbo')
input_str = '通義千問具有強大的能力。'
# 將字符串切分成token并轉換為token id
tokens = tokenizer.encode(input_str)
print(f"經(jīng)過切分后的token id為:{tokens}。")
# 經(jīng)過切分后的token id為: [31935, 64559, 99320, 56007, 100629, 104795, 99788, 1773]
print(f"經(jīng)過切分后共有{len(tokens)}個token")
# 經(jīng)過切分后共有8個token
# 將token id轉化為字符串并打印出來
for i in range(len(tokens)):
print(f"token id為{tokens[i]}對應的字符串為:{tokenizer.decode(tokens[i])}")
// Copyright (c) Alibaba, Inc. and its affiliates.
// dashscope SDK版本 >= 2.13.0
import java.util.List;
import com.alibaba.dashscope.exception.NoSpecialTokenExists;
import com.alibaba.dashscope.exception.UnSupportedSpecialTokenMode;
import com.alibaba.dashscope.tokenizers.Tokenizer;
import com.alibaba.dashscope.tokenizers.TokenizerFactory;
public class Main {
public static void testEncodeOrdinary(){
Tokenizer tokenizer = TokenizerFactory.qwen();
String prompt ="如果現(xiàn)在要你走十萬八千里路,需要多長的時間才能到達? ";
// encode string with no special tokens
List<Integer> ids = tokenizer.encodeOrdinary(prompt);
System.out.println(ids);
String decodedString = tokenizer.decode(ids);
assert decodedString == prompt;
}
public static void testEncode() throws NoSpecialTokenExists, UnSupportedSpecialTokenMode{
Tokenizer tokenizer = TokenizerFactory.qwen();
String prompt = "<|im_start|>system\nYour are a helpful assistant.<|im_end|>\n<|im_start|>user\nSanFrancisco is a<|im_end|>\n<|im_start|>assistant\n";
// encode string with special tokens <|im_start|> and <|im_end|>
List<Integer> ids = tokenizer.encode(prompt, "all");
// 24 tokens [151644, 8948, 198, 7771, 525, 264, 10950, 17847, 13, 151645, 198, 151644, 872, 198, 23729, 80328, 9464, 374, 264, 151645, 198, 151644, 77091, 198]
String decodedString = tokenizer.decode(ids);
System.out.println(ids);
assert decodedString == prompt;
}
public static void main(String[] args) {
try {
testEncodeOrdinary();
testEncode();
} catch (NoSpecialTokenExists | UnSupportedSpecialTokenMode e) {
e.printStackTrace();
}
}
}
python 輸出為
經(jīng)過切分后的token id為:[31935, 64559, 99320, 56007, 100629, 104795, 99788, 1773]。
經(jīng)過切分后共有8個token
token id為31935對應的字符串為:通
token id為64559對應的字符串為:義
token id為99320對應的字符串為:千
token id為56007對應的字符串為:問
token id為100629對應的字符串為:具有
token id為104795對應的字符串為:強大的
token id為99788對應的字符串為:能力
token id為1773對應的字符串為:。
本地運行的tokenizer可以用來估計文本的token量,但是得到的結果不保證與模型服務端完全一致,僅供參考。如果您對通義千問的tokenizer細節(jié)感興趣,請參考: tokenizer參考
輸入token的計算邏輯
輸入token的計量數(shù)目中,除了包含用戶的原始輸入所對應的token,還會包括將原始輸入根據(jù)chatml格式進行格式化所需要引入的special token。
隨著模型能力的迭代,這部分計算邏輯可能會進行演變和調整
基礎調用
在用戶未試圖調用插件時,token計數(shù)將包含system、user和歷史輪的assistant,以及對輸入進行格式化組裝需要的special token。例如,在用戶輸入為:
[
{
"role": "user",
"content": "hi"
}
]
則token計數(shù)基于如下prompt進行,對應9個token:
<|im_start|>user\nhi<|im_end|>\n<|im_start|>assistant\n
再例如用戶輸入為:
[
{
"role": "system",
"content": "you are a bot."
},
{
"role": "user",
"content": "hi"
},
{
"role": "assistant",
"content": "Hello! How can I assist you today?"
},
{
"role": "user",
"content": "who are you"
}
]
則token計數(shù)基于如下prompt進行,對應41個token
<|im_start|>system\nyou are a bot.<|im_end|>\n<|im_start|>user\nhi<|im_end|>\n<|im_start|>assistant\nHello! How can I assist you today?<|im_end|>\n<|im_start|>user\nwho are you<|im_end|>\n<|im_start|>assistant\n
高級調用
當用戶的請求涉及插件調用時,會額外引入prompt來引導模型做出正確的回應。此時token的計量會有額外的增加。常見的情況有:
搜索增強。當搜索增強參數(shù)(enable_search)被配置時,觸發(fā)搜索本身會需要額外的prompt和插件調用,同時搜索的結果在輸入到模型時,也會被計入輸入token計數(shù);
插件調用。當插件被調用時,會有額外的觸發(fā)插件調用所需要的指令,這些都會被計入token數(shù)目;
function call。當使用function call功能時,會有額外的引導指令,這些也都會被計入token數(shù)目。
計費單價
模型服務 | 模型規(guī)格 | 輸入(input)價格 | 輸出(output)價格 |
Qwen-Long | qwen-long | 0.0005元/1,000 tokens | 0.002元/1,000 tokens |
通義千問-Turbo | qwen-turbo | 0.0003元/1,000 tokens Batch調用:0.00015元/1,000 tokens | 0.0006元/1,000 tokens Batch調用:0.0003元/1,000 tokens |
qwen-turbo-latest | 0.0003元/1,000 tokens | 0.0006元/1,000 | |
qwen-turbo-2024-09-19 (qwen-turbo-0919) 當前等同qwen-turbo-latest | |||
qwen-turbo-2024-06-24 (qwen-turbo-0624) | |||
qwen-turbo-2024-02-06 (qwen-turbo-0206) | 0.002元/1,000 tokens | 0.006元/1,000 | |
通義千問-Plus | qwen-plus | 0.0008元/1,000 tokens Batch調用:0.0004元/1,000 tokens | 0.002元/1,000 tokens Batch調用:0.001元/1,000 tokens |
qwen-plus-latest | 0.0008元/1,000 tokens | 0.002元/1,000 tokens | |
qwen-plus-2024-09-19 (qwen-plus-0919) 當前等同qwen-plus-latest | |||
qwen-plus-2024-08-06 (qwen-plus-0806) | 0.004元/1,000 tokens | 0.012元/1,000 tokens | |
qwen-plus-2024-07-23 (qwen-plus-0723)? | |||
qwen-plus-2024-06-24 (qwen-plus-0624) | |||
qwen-plus-2024-02-06 (qwen-plus-0206) | |||
通義千問-Max | qwen-max | 0.02元/1,000 tokens Batch調用:0.01元/1,000 tokens | 0.06元/1,000 tokens Batch調用:0.03元/1,000 tokens |
qwen-max-latest | 0.02元/1,000 tokens | 0.06元/1,000 tokens | |
qwen-max-2024-09-19 (qwen-max-0919) 當前等同qwen-max-latest | |||
qwen-max-2024-04-28 (qwen-max-0428) | 0.04元/1,000 tokens | 0.12元/1,000 tokens | |
qwen-max-2024-04-03 (qwen-max-0403) | |||
qwen-max-2024-01-07 (qwen-max-0107) |
qwen-turbo原來為qwen-v1。qwen-v1計費與qwen-turbo保持一致。qwen-v1模型已棄用,請使用qwen-turbo。
qwen-plus原來為qwen-plus-v1。qwen-plus-v1計費與qwen-plus保持一致。qwen-plus-v1模型已棄用,請使用qwen-plus。
免費額度
模型服務 | 模型名 | 免費額度 |
通義千問 | qwen-long | 100萬tokens 領取方式:新用戶開通阿里云靈積或百煉服務后,自動發(fā)放; 有效期:30天 2024年09月19號0點之后開通的用戶,免費額度有效期:180天。 |
qwen-turbo | ||
qwen-turbo-latest | ||
qwen-turbo-2024-09-19 (qwen-turbo-0919) 當前等同qwen-turbo-latest | ||
qwen-turbo-2024-06-24 (qwen-turbo-0624) | ||
qwen-turbo-2024-02-06 (qwen-turbo-0206) | ||
qwen-plus | ||
qwen-plus-latest | ||
qwen-plus-2024-09-19 (qwen-plus-0919) 當前等同qwen-plus-latest | ||
qwen-plus-2024-08-06 (qwen-plus-0806) | ||
qwen-plus-2024-07-23 (qwen-plus-0723)? | ||
qwen-plus-2024-06-24 (qwen-plus-0624) | ||
qwen-plus-2024-02-06 (qwen-plus-0206) | ||
qwen-max | ||
qwen-max-latest | ||
qwen-max-2024-09-19 (qwen-max-0919) 當前等同qwen-max-latest | ||
qwen-max-2024-04-28 (qwen-max-0428) | ||
qwen-max-2024-04-28 (qwen-max-0428) | ||
qwen-max-2024-01-07 (qwen-max-0107) |
基礎限流
為了保證用戶調用模型的公平性,通義千問對于普通用戶設置了基礎限流。限流是基于模型維度的,并且和調用用戶的阿里云主賬號相關聯(lián),按照該賬號下所有API-KEY調用該模型的總和計算限流。如果超出調用限制,用戶的API請求將會因為限流控制而失敗,用戶需要等待一段時間待滿足限流條件后方能再次調用。
模型服務 | 模型名 | 基礎限流 | 超出基礎限流申請方式 |
通義千問 | qwen-long | 以下條件任何一個超出都會觸發(fā)限流:
| 無 |
qwen-turbo | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-turbo-0624 | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-turbo-0206 | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-plus | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-plus-0806 | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-plus-0723 | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-plus-0624 | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-plus-0206 | 以下條件任何一個超出都會觸發(fā)限流:
| 無 | |
qwen-max | 以下條件任何一個超出都會觸發(fā)限流(限時免費開放中,限流策略可能隨時變化):
| 無 | |
qwen-max-0428 | 無 | ||
qwen-max-0403 | 無 | ||
qwen-max-0107 | 以下條件任何一個超出都會觸發(fā)限流(限時免費開放中,限流策略可能隨時變化):
| 無 |
查看賬單
有關DashScope的賬單時效信息請參閱產(chǎn)品計費。
有關賬單詳情請前往阿里云費用與成本查詢。