分词是处理自然语言处理 (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中文网其他相关文章!