tokenize_messages_no_special_tokens¶
- torchtune.modules.tokenizers.tokenize_messages_no_special_tokens(tokenizer: ModelTokenizer, messages: List[消息], *, bos_id: Optional[int] = None, eos_id: Optional[int] = None) Tuple[List[int], List[bool]][source]¶
逐个对消息列表进行标记化,然后将它们连接起来,返回一个标记列表和一个掩码列表。除了BOS和EOS(如果提供)之外,不添加任何特殊标记。这为不严重依赖特殊标记的模型标记器提供了一个共同的起点。
示例
>>> messages = [ ... Message(role="system", content="system message\n", masked=True), ... Message(role="user", content="user prompt\n", masked=True), ... Message(role="assistant", content="assistant response\n"), ... ] # tokenize_messages encodes messages separately and concats >>> tokens = tokenize_messages_no_special_tokens( ... tokenizer, ... messages, ... bos_id=tokenizer.bos_id, ... eos_id=tokenizer.eos_id, ... )[0] >>> print(tokens) [1, 1788, 2643, 13, 1792, 9508, 13, 465, 22137, 2933, 2] # Same result as encoding the full string in one go >>> print(tokenizer.encode(''.join([message.content for message in messages]))) [1, 1788, 2643, 13, 1792, 9508, 13, 465, 22137, 2933, 2]
- Parameters:
tokenizer (ModelTokenizer) – 用于编码消息的分词器。
消息 (列表[消息]) – 一个消息列表,每个消息包含角色、内容和掩码属性。
bos_id (可选[int]) – 序列开始标记的ID。如果为None,则不会添加BOS标记。默认值为None。
eos_id (可选[int]) – 序列结束标记的ID。如果为None,则不会添加EOS标记。默认值为None。
- Returns:
已分词的讯息。
- Return type:
- Raises:
RuntimeError – 如果
messages中的任何消息不满足message['type'] == 'text'。