跳转至

tokenizer.py — Tokenizer 加载与处理

文件路径: verl/utils/tokenizer.py

文件概述

提供统一的 HuggingFace Tokenizer 和 Processor(多模态处理器)加载函数,以及 token ID 标准化工具。

核心函数

1. 加载 Tokenizer

def hf_tokenizer(name_or_path, **kwargs):
    """加载 HuggingFace tokenizer,自动处理信任远程代码等选项"""
    tokenizer = AutoTokenizer.from_pretrained(name_or_path, trust_remote_code=True, **kwargs)
    return tokenizer

2. 加载 Processor(多模态)

def hf_processor(name_or_path, **kwargs):
    """加载 HuggingFace processor(用于视觉-语言模型)"""
    processor = AutoProcessor.from_pretrained(name_or_path, trust_remote_code=True, **kwargs)
    return processor

3. Token ID 标准化

def normalize_token_ids(token_ids):
    """将 token ID 列表中的元素统一转为 Python int"""

某些 tokenizer 返回的 ID 可能是 numpy int 或 tensor,此函数统一为 Python 原生 int。

与其他模块的关系

  • 被 __init__.py 导出为公共 API
  • 被 dataset/rl_dataset.py、chat_template.py 等使用
  • hf_processor 被多模态数据集使用

小结

简洁的 tokenizer 加载封装,确保框架中各处使用一致的加载方式。