OpenAI
此頁面由機器翻譯。查看原文英文文章

了解及計算 Token

了解輸入、輸出、快取及推理 Token 如何影響 API 使用量、模型限制及成本。

更新日期:6 days ago

概覽

Token 是 OpenAI 模型用來處理文字的單位。一個 Token 可以代表一個字元、詞語的一部分、完整詞語或標點符號。空格亦會影響文字如何劃分為 Token。

Token 數目與字數並不相同。同一段文字的 Token 數目可能因模型、編碼及語言而異。

了解文字如何轉換成 Token

向模型傳送文字時:

  1. 文字會劃分為 Token。

  2. 模型會處理這些 Token。

  3. 模型會產生輸出 Token。這些 Token 可包括你收到的文字;對推理模型而言,亦包括不會顯示為答案文字的內部推理 Token。

使用英文文字的粗略估算

以下估算有助你判斷英文文字的長度:

  • 1 個 Token 約為 4 個字元。

  • 1 個 Token 約為四分之三個英文單詞。

  • 100 個 Token 約為 75 個英文單詞。

這些只是估算,並非確切數目。句子及段落長度各有不同,而其他語言的字元、詞語與 Token 之間亦可能有不同關係。

考慮空格及大小寫

一個詞可因拼寫、大小寫及前後文字不同,而被劃分為不同的 Token。

例如,「red」、「Red」及「 red」並非相同文字:最後一個例子包含開頭空格。編碼可能以不同方式表示它們。

Token ID 亦取決於編碼。請勿假設範例 Token ID 適用於所有模型。

區分輸入及輸出 Token

類別說明
輸入 Token請求中提供給模型的 Token。亦稱為提示詞 Token。
輸出 Token模型產生的 Token。Chat Completions 稱之為補全 Token。
快取輸入 Token透過提示詞快取重用的輸入 Token。其價格可能與未快取的輸入 Token 不同。
推理 Token推理模型在產生可見答案前內部使用的 Token。

推理 Token 不會顯示為答案文字,但會計入輸出使用量,並按輸出 Token 收費。

因此,即使可見答案很短,實際使用的 Token 亦可能多於顯示文字所反映的數目。

傳送請求前計算 Token

計算純文字 Token

使用 Tokenizer 查看文字如何劃分為 Token。

如要以程式為純文字進行 Token 化處理,請使用 tiktoken。請選擇適用於目標模型的編碼,例如使用 tiktoken.encoding_for_model(model)。

純文字的 Token 數目不一定包括 API 請求中的所有 Token。訊息結構、工具、結構描述、圖像及檔案均可能影響完整的輸入數目。

計算完整 Responses 輸入的 Token

如要計算完整 Responses API 輸入,請使用輸入 Token 計算 API

此 API 接受 Responses 輸入格式,包括訊息、圖像、檔案、工具及對話。計算結果包括請求結構所用的格式 Token,例如訊息角色及邊界。

輸入 Token 數目無法預測模型會產生多少輸出 Token。

查看實際 Token 使用量

提出請求後,檢查其使用量資料。欄位名稱因端點而異:

  • Chat Completions 會報告 prompt_tokens、completion_tokens 及 total_tokens。

  • Responses 會報告 input_tokens、output_tokens 及 total_tokens。

你亦可在 Usage Dashboard 查看不同時段的活動。有關串流使用量等指示,請參閱:查看 API 使用量及成本

遵守模型限制

查閱模型文件,了解其上下文視窗及最大輸出量。這些限制可能因模型而異。

上下文視窗會限制模型在一次請求中可處理的 Token 數目。模型亦設有輸出限制。使用推理模型時,除了可見答案,亦要為推理 Token 預留空間。

如果輸入過大,你可以:

  • 縮短或改寫提示詞。

  • 移除不必要或重複的上下文。

  • 將大型輸入分成較小部分。

  • 傳送文字前先加以摘要或預先處理。

使用端點及模型支援的輸出 Token 設定。Chat Completions 使用 max_completion_tokens;Responses 使用 max_output_tokens。

這些請求大小限制有別於 API 速率限制,以及每月使用量或開支限額。請查閱所用模型的模型文件

了解 Token 定價

採用 Token 計價的 API,其費率取決於模型及 Token 類別。輸入、快取輸入及輸出 Token 的價格可能不同。其他 API 功能可能採用不同的計費單位。

請到 API 定價頁面查看現行費率。

比較模型時,應考慮完成工作所需的 Token 總數及成本。每百萬個 Token 的價格較低,不一定代表總成本較低:不同模型可能以不同方式將同一段文字 Token 化,產生的輸出量或推理量亦可能不同。

應測試具代表性的工作,而非只比較可見回應的長度。

計入多個補全結果

當端點及模型支援產生多個補全結果時,額外的結果亦會使用 Token。

在 Chat Completions 中,將 n 設為大於 1 會產生多個選項。這些選項所產生的 Token 均會收費。

對於舊版 Completions API,best_of 可產生不會全部傳回的候選結果。例如,best_of = 3 可在各候選結果中產生最多 3 × max_tokens 個補全 Token。

這些參數只適用於特定端點。請勿假設其他 API 或模型支援 n 或 best_of。

這篇文章對你有幫助嗎?