Shortcuts

TikTokenBaseTokenizer

class torchtune.modules.tokenizers.TikTokenBaseTokenizer(path: str, name: str, pattern: str, bos_id: int, eos_id: int, special_tokens: Dict[str, int])[source]

一个轻量级的tiktoken编码包装器。此类还处理将输入文本分解为最大长度的子字符串,并拆分长重复以提高编码速度。

Parameters:
  • path (str) – 预训练分词器检查点文件的路径。

  • name (str) – 分词器的名称(由tiktoken用于识别)。

  • pattern (str) – 用于在传递给字节对编码之前将输入文本分割成块的Regex模式。

  • bos_id (int) – 序列开始标记的ID。这个可以在special_tokens中存在或不存在。

  • eos_id (int) – 序列结束标记的ID。这个可以在special_tokens中存在或不存在。

  • special_tokens (Dict[str, int]) – 特殊令牌到其ID的映射。

示例

>>> tokenizer = TikTokenBaseTokenizer("/path/to/tt_model")
>>> tokenized_text = tokenizer.encode("Hello world!", add_bos=True, add_eos=True)
>>> print(tokenized_text)
[1, 31587, 29644, 102, 2]
decode(token_ids: List[int], truncate_at_eos: bool = True) str[source]

将一系列令牌ID解码为字符串。

Parameters:
  • token_ids (List[int]) – 令牌ID的列表。

  • truncate_at_eos (bool) – 是否在序列结束标记处截断字符串。默认值为 True。

Returns:

解码后的字符串。

Return type:

str

encode(text: str, add_bos: bool = True, add_eos: bool = True) List[int][source]

将字符串编码为一系列标记ID。假设该字符串不包含任何特殊标记。

Parameters:
  • text (str) – 要编码的字符串。

  • add_bos (bool) – 是否将分词器的bos_id添加到编码字符串中。 默认值为True。

  • add_eos (bool) – 是否将分词器的eos_id添加到编码字符串中。 默认值为True。

Returns:

令牌ID列表。

Return type:

列表[int]