如何在 Python 中取得 Token 計數以優化成本

如何在 Python 中取得 Token 計數以優化成本

重點摘要

  • Token 是語言模型的基本建構單元,代表單詞或標點符號的片段。
  • Token 計數直接影響 AI 模型的成本以及您可以處理的文字長度。
  • Python 提供了強大的工具,例如 Tiktoken 函式庫,可進行有效的 Token 化與計數。
  • 優化您的輸入文字與提示詞,有助於減少 Token 用量並降低成本。
  • Novita AI 以其透明的定價與高效的 Token 處理方式脫穎而出。

在人工智慧(AI)與自然語言處理(NLP)領域,理解「Token」非常重要。Token 是 AI 模型處理的文字基本單元。本篇部落格將示範如何在 Python 中取得 Token 計數。學會這項技能可以幫助您節省成本,並讓您的 AI 應用程式執行得更有效率。

目錄

  1. 了解 Tokenization
  2. Token 計數對成本優化的重要性
  3. 如何在 Python 中取得 Token 計數(逐步指南)
  4. 減少 AI 成本的 Token 優化策略
  5. 若無法減少 Token 用量,請選擇更便宜的 API
  6. 一個絕佳選擇:Novita AI
  7. 結論

了解 Tokenization

Tokenization 的抽象表示

Tokenization 的抽象表示

您是否曾經想過 AI 模型是如何理解人類語言的?答案是 Tokenization。Tokenization 是指將文字分解成更小的部分,稱為 Token。這些 Token 可以是一個字元或一個完整的單詞。Python 是 AI 中常用的語言,它提供了許多工具與函式庫,方便進行 Tokenization。

Tokenization 的基礎

Tokenization 是將文字字串分解成較小的部分(即 Token)的過程。這些 Token 是語言模型理解與生成文字的基礎單元。

請記住,Tokenization 不僅僅是按空格拆分單詞,它還會將標點符號、特殊符號,甚至單詞的一部分視為單獨的 Token。Tokenization 的方式會根據語言模型和所使用的 Tokenizer 而有所不同。

Tokenization 範例

要視覺化文字如何被 Token 化,您可以使用 Tokenizer 工具。例如,句子「Natural-language processing is key.」會被 Token 化為:['Natural', '-', 'language', ' processing', ' is', ' key', '.']。這個分解過程對於理解您的輸入如何轉換為 Token 計數至關重要。

使用 Python 的 Tiktoken 函式庫,您可以快速將文字字串分解為 Token。例如,使用 tokenize 函式,您可以從任何文字字串建立一個 Token 列表。這個方法對於許多不同的任務(如生成式 AI 和 NLP)都非常有用。透過理解 Token 的概念並使用 NLTK 等函式庫,您可以妥善管理 Token 化過程,有助於節省成本。

Token 計數對成本優化的重要性

分析 Token 計數以進行優化

分析 Token 計數以進行優化

  • 直接影響 API 成本: 輸入與輸出的 Token 數量會直接影響使用 AI 模型時的費用。Token 越多,成本越高,因此管理 Token 用量對於優化支出至關重要。
  • 模型限制: 每個模型都有 Token 限制(例如 GPT-3.5 的限制可能是 4,096 個 Token)。追蹤 Token 計數可確保輸入不超過此限制,避免錯誤以及因回應過長而產生的不必要成本。
  • 有效利用資源: 透過了解 Tokenization,您可以撰寫更簡潔的提示詞,並管理所要處理的文字量,確保不會浪費 Token 在不相關的資訊上,從而更有效地使用資源。
  • 控制輸出長度: 透過控制模型輸出中所要求的 Token 數量(例如透過 max_tokens 參數),您可以限制回應大小,使成本可預測且受控。
  • **批次處理:**Token 計數有助於將大型資料集分割成較小、可管理的批次。這樣可以避免在個別 API 呼叫中超出 Token 限制,同時優化成本與效能。

當您的 Token 計數越高,成本也會隨之增加。因此,找到更有效使用 Token 的方法不僅是技術問題,也與節省成本有關。

如何在 Python 中取得 Token 計數(逐步指南)

在 Python 中計算 Token 很簡單。

步驟 1:用於 Tokenization 的工具與函式庫

Python 有許多工具與函式庫可簡化自然語言處理任務中的 Tokenization。一個廣為人知的選擇是 Natural Language Toolkit(NLTK)。該函式庫提供了多種 Tokenizer 以滿足不同需求,例如 NLTK 的單詞 Tokenizer 可將文字分解為單個單詞。

另一個絕佳選擇是 OpenAI 的 Tiktoken 函式庫。Tiktoken 是專為 OpenAI 模型(包括 GPT-3 和 GPT-4)設計的高速 Tokenizer。它使用了高效的 Byte Pair Encoding(BPE)演算法,因此對這些模型非常有效。

使用 Python 的套件管理器 pip 即可輕鬆安裝這些函式庫。例如,要安裝 Tiktoken,只需輸入指令 pip install tiktoken

步驟 2:在 Python 程式碼中實作 Token 計數

將 Token 計數整合到您的 Python 專案中很簡單。首先,您需要匯入一個函式庫,例如 Tiktoken:import tiktoken。然後,為您的 OpenAI 專案載入正確的編碼模型。例如,如果您使用的是 GPT-3.5-turbo,請輸入:encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")

若要計算文字中的 Token,請使用編碼物件的 encode 方法。例如:tokens = encoding.encode("您的文字字串")。然後,透過檢查 tokens 列表的長度來取得 Token 數量:token_count = len(tokens)

請務必將 "您的文字字串" 替換為實際文字。透過加入這段簡單的程式碼,您可以輕鬆監控並改善 Python AI 應用程式中的 Token 用量。

為方便起見,您可以直接複製以下程式碼:

import tiktoken

# 選擇編碼模型(例如 "gpt-3.5-turbo")
encoding = tiktoken.get_encoding("gpt-3.5-turbo")

# 輸入文字
text = "This is a sample sentence to count tokens."

# 計算 Token
tokens = encoding.encode(text)
token_count = len(tokens)

print(f"Token 計數: {token_count}")

減少 AI 成本的 Token 優化策略

優化 Token 用量對於節省 AI 開發成本非常重要。您可以採取以下方法:

  • 簡化輸入文字: 一個優化 Token 的好方法是讓輸入文字更簡潔。通常文字中包含多餘的細節、重複或難以理解的片語,這些都會增加 Token 計數,但對實際幫助不大。此外,請考慮是否可以用更少的元資料或冗長描述來表達相同的資訊。請記住,簡短清晰的文字不僅能降低 Token 計數,通常還能提升與 AI 模型的溝通效果,從而獲得更準確、更有用的輸出。
  • 優化提示詞設計: 您為生成式 AI 模型設計提示詞的方式確實重要。良好的提示詞可以帶來更好的回應,並有助於使用更少的 Token。在提示詞中使用簡單的語言,確保沒有混淆。或者嘗試不同的提示詞結構,找出傳達想法的最佳方法。請記住,精心設計的提示詞能幫助模型更好地運作,減少不必要的冗長回應,從而降低 Token 計數。
  • **使用更高效的 Tokenization:**Tokenizer 的選擇及其編碼方式會大大影響您的 Token 用量。務必檢視不同的 Tokenizer 選項,並測試其設定以減少 Token 計數。例如,如果您主要使用 OpenAI 的 GPT 模型,最好使用其專屬的 Tokenizer——Tiktoken。Tiktoken 使用 Byte Pair Encoding(BPE),專為這些模型設計,因此在 Tokenization 上通常比更通用的選項更有效率。

若無法減少 Token 用量,請選擇更便宜的 API

當您嘗試了所有優化方法,但您的 AI 應用程式仍然需要太多 Token 時,就該尋找更符合預算的 API 選項了。

如何找到更實惠的 API

為您的 AI 需求找到低成本的 API 需要仔細研究。

步驟 1:查看不同提供者的 API 文件:

檢查他們的定價方式,了解 Token 用量如何影響您的總成本。透過比較 輸入與輸出 Token 成本,您可以有效評估 API 的成本效益。

***輸入成本:***每百萬 Token 的提示詞成本。

***輸出成本:***每百萬 Token 的完成成本。

透過比較 輸入與輸出 Token 成本,您可以有效評估 API 的成本效益。

步驟 2:比較其他細節與定價,找出最佳方案:

您可以透過評估模型的 最大輸出、延遲與吞吐量 來評估其效能。

***最大輸出:***此端點最多可生成 4,096 個 Token。

***延遲:***提供者發送第一個 Token 的平均時間。

***吞吐量:***串流請求中每秒傳輸的平均 Token 數。

最大輸出、延遲、吞吐量的比較

步驟 3:不要害怕嘗試某些提供者的免費試用:

這樣一來,您可以在選擇付費方案之前,先測試 API 的運作情況以及是否符合專案需求。

指南

步驟 1:登入並存取模型庫

登入您的帳戶,然後點選 Model Library 按鈕。

登入並存取模型庫

步驟 2:選擇您的模型

瀏覽可用的選項,選擇符合您需求的模型。

選擇您的模型

步驟 3:開始免費試用

開始免費試用,探索所選模型的功能。

免費試用

步驟 4:取得您的 API 金鑰

為了驗證 API,我們將為您提供一個新的 API 金鑰。進入「Settings」頁面,您可以依照圖片所示複製 API 金鑰。

取得 API 金鑰

步驟 5:安裝 API

使用您程式語言專屬的套件管理器安裝 API。

安裝 API

安裝完成後,在您的開發環境中匯入必要的函式庫。使用您的 API 金鑰初始化 API,開始與 Novita AI LLM 互動。以下是使用 chat completions API 的 Python 範例。

 from openai import OpenAI

client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    # 取得 Novita AI API 金鑰,請參考:https://novita.ai/docs/get-started/quickstart.html#_2-manage-api-key。
    api_key="<YOUR Novita AI API Key>",
)

model = "meta-llama/llama-3.3-70b-instruct"
stream = True  # 或 False
max_tokens = 512

chat_completion_res = client.chat.completions.create(
    model=model,
    messages=[
        {
            "role": "system",
            "content": "Act like you are a helpful assistant.",
        },
        {
            "role": "user",
            "content": "Hi there!",
        }
    ],
    stream=stream,
    max_tokens=max_tokens,
)

if stream:
    for chunk in chat_completion_res:
        print(chunk.choices[0].delta.content or "")
else:
    print(chat_completion_res.choices[0].message.content)

註冊後,Novita AI 將提供 $0.5 的額度讓您開始使用!

如果免費額度用完,您可以付費繼續使用。

一個絕佳選擇:Novita AI

Novita AI 是一款高效能的 LLM API 模型,以其強大的吞吐量、成本效益與可靠性脫穎而出。其吞吐量超越市場平均水準,保證 99.9% 的 API 穩定性,並提供極具競爭力的定價($0.25-$0.35)。

結論

了解如何在 Python 中取得 Token 計數,對於節省 AI 專案的成本非常重要。透過管理 Token 用量,您可以降低成本並改善應用程式的效能。您可以應用簡化輸入文字、優化提示詞設計以及選擇實惠的 API(如 Novita AI)等方法,這些選擇能對專案預算產生重大影響。隨時關注用於 Tokenization 的工具與函式庫,並按照指南在 Python 中準確計算 Token。藉由使用這些技巧,您可以更輕鬆地進行 AI 工作,並為您的專案節省成本。

常見問題

Python 中有多少個 Token?

在 AI 與 NLP 領域,您並非直接計算 Python 中的 Token,而是計算 Python 程式碼所處理的文字字串中的 Token。文字字串中的 Token 數量取決於文字的長度以及所使用的 Tokenizer 類型。

Token 計數如何幫助成本優化?

許多 AI API 會根據它們處理的 Token 數量來收費。透過追蹤您使用的 Token 並嘗試明智地使用它們,您可以管理並降低 AI 成本。

如何計算 Token?

您可以使用 Python 函式庫(例如 Tiktoken 或 NLTK)來計算 Token。這些函式庫可幫助您將文字分割成 Token,從而輕鬆地透過簡單的程式碼得知其數量。

Novita AI 是一站式雲端平台,助力您的 AI 雄心。整合 API、無伺服器、GPU 實例——您所需的成本效益工具。消除基礎設施,免費開始,實現您的 AI 願景。

推薦閱讀
1./what-is-llama-3-3-70b/

2.How Usage Tier 2 Affects OpenAI Tokens and Limits: Your Fit

3.Llama 3.3 70B: Features, Access Guide & Model Comparison