内置预处理器
Twinkle 提供了一系列内置预处理器,用于常见的数据集格式。每个预处理器将原始数据转换为标准化的 Trajectory 对象。
LLM 预处理器
CompetitionMathProcessor
转换包含 problem 和 solution 字段的竞赛数学数据集。
dataset.map('CompetitionMathProcessor')
# 输入: {'problem': '...', 'solution': '...'}
# 输出: 包含用户消息(问题)和助手消息(解答)的 Trajectory
CompetitionMathGRPOProcessor
类似于 CompetitionMathProcessor,但将解答存储在 user_data 中,用于 GRPO 奖励计算的真实答案。
dataset.map('CompetitionMathGRPOProcessor')
SelfCognitionProcessor
将模板占位符替换为模型身份信息,用于自我认知训练。
dataset.map('SelfCognitionProcessor', model_name='MyModel', model_author='MyOrg')
AlpacaProcessor
转换 Alpaca 格式数据集,包含 instruction、input 和 output 字段。
dataset.map('AlpacaProcessor')
# 输入: {'instruction': '...', 'input': '...', 'output': '...'}
CountdownProcessor
生成倒计时算术问题,用于推理训练。
dataset.map('CountdownProcessor')
GSM8KProcessor
预处理 GSM8K 数学数据集,从 #### answer 格式中提取真实答案。
dataset.map('GSM8KProcessor')
# 从 '#### 42' 格式提取答案并存储在 user_data 中
DPO 预处理器
EmojiDPOProcessor
将基于 emoji 的偏好数据集转换为 DPO 训练所需的正/负轨迹对。
dataset.map('EmojiDPOProcessor')
# 输入: {'prompt': '...', 'chosen': '...', 'rejected': '...'}
# 输出: 交替排列的 chosen 和 rejected Trajectory 对
多模态预处理器
CLEVRProcessor
预处理 CLEVR 视觉推理数据集,支持图像处理。
dataset.map('CLEVRProcessor')
# 输入: {'question': '...', 'answer': '...', 'image': PIL.Image}
# 输出: 包含多模态内容(图像 + 文本)的 Trajectory
OlympiadBenchProcessor
预处理 OlympiadBench 多模态数学/物理问题,支持图像收集和元数据存储。
dataset.map('OlympiadBenchProcessor')
# 处理每个问题的多张图像,将真实答案和元数据存储在 user_data 中
所有预处理器遵循相同的接口:
__call__(rows) -> List[Trajectory]。你可以按照相同的模式注册自定义预处理器(参见 预处理器)。