分詞是處理自然語言處理 (NLP) 任務時的基本步驟。它涉及將文本分解成更小的單元,稱為標記,這些單元可以是單詞、子詞或字符。
高效的分詞對於語言模型的性能至關重要,使其成為各種 NLP 任務(如文本生成、翻譯和摘要)中的一個重要步驟。
Tiktoken 是 OpenAI 開發的一個快速高效的分詞庫。它提供了一個強大的解決方案,用於將文本轉換為標記,反之亦然。其速度和效率使其成為處理大型數據集和復雜模型的開發人員和數據科學家的絕佳選擇。
本指南專為開發人員、數據科學家以及任何計劃使用 Tiktoken 並需要包含示例的實用指南的人員而設計。
開始使用 OpenAI API 及更多功能!
要開始使用 Tiktoken,我們需要在 Python 環境中安裝它(Tiktoken 也適用於其他編程語言)。可以使用以下命令完成此操作:
<code>pip install tiktoken</code>
您可以在以下 GitHub 存儲庫中查看 Tiktoken 開源 Python 版本的代碼。
要導入庫,我們運行:
<code>import tiktoken</code>
Tiktoken 中的編碼模型決定了將文本分解成標記的規則。這些模型至關重要,因為它們定義了文本的分割和編碼方式,從而影響語言處理任務的效率和準確性。不同的 OpenAI 模型使用不同的編碼。
Tiktoken 提供了三種針對不同用例優化的編碼模型:
所有這些模型都可用於 OpenAI 的 API。請注意,API 提供的模型比這裡列出的要多得多。幸運的是,Tiktoken 庫提供了一種簡單的方法來檢查應將哪個編碼與哪個模型一起使用。
例如,如果我需要知道 text-embedding-3-small 模型使用什麼編碼模型,我可以運行以下命令並獲得答案作為輸出:
<code>pip install tiktoken</code>
我們得到
要使用 Tiktoken 將文本編碼為標記,您首先需要獲取編碼對象。初始化它有兩種方法。首先,您可以使用標記器的名稱來執行此操作:
<code>import tiktoken</code>
或者,您可以運行前面提到的 encoding_for_model 函數以獲取特定模型的編碼器:
<code>print(tiktoken.encoding_for_model('text-embedding-3-small'))</code>
現在,我們可以運行編碼對象的 encode 方法來編碼字符串。例如,我們可以按照以下方式編碼“我愛 DataCamp”字符串——這裡我使用 cl100k_base 編碼器:
<code>encoding = tiktoken.get_encoding("[标记器名称]")</code>
我們得到[40, 3021, 2956, 34955]作為輸出。
要將標記解碼回文本,我們可以在編碼對像上使用 .decode() 方法。
讓我們解碼以下標記[40, 4048, 264, 2763, 505, 2956, 34955]:
<code>encoding = tiktoken.encoding_for_model("[模型名称]")</code>
這些標記解碼為“我從 DataCamp 學到了很多東西”。
除了編碼和解碼之外,我還想到了另外兩個用例。
在向 OpenAI API 發送請求之前了解標記計數可以幫助您有效地管理成本。由於 OpenAI 的計費基於處理的標記數量,因此預標記文本允許您估算 API 使用成本。以下是如何使用 Tiktoken 計算文本中的標記:
<code>print(encoding.encode("我爱 DataCamp"))</code>
我們只需通過檢查數組的長度來查看我們獲得了多少個標記。通過提前了解標記數量,您可以決定是否縮短文本或調整使用情況以保持預算內。
您可以在本關於使用 Python 中的 tiktoken 庫估算 GPT 成本的教程中閱讀更多關於此方法的信息。
當使用來自 API 的 OpenAI 模型時,您受到輸入和輸出最大標記數的限制。超過這些限制會導致錯誤或輸出被截斷。使用 Tiktoken,您可以驗證輸入長度並確保它符合標記限制。
Tiktoken 是一個開源分詞庫,它提供針對 OpenAI 語言模型量身定制的速度和效率。
了解如何使用 Tiktoken 編碼和解碼文本及其各種編碼模型,可以極大地增強您使用大型語言模型的工作。
證明您可以有效且負責任地使用 AI。獲得認證,獲得聘用
以上是tiktoken教程:Openai&#x27的Python圖書館用於令牌文本的詳細內容。更多資訊請關注PHP中文網其他相關文章!