任务抽象与数据混合
Task Abstraction & Data Mixing
统一的评估任务抽象层,支持数据混合、课程学习和 RL reward
子问题
1.generative vs categorical 评估统一
2.确定性混洗保证可复现
3.课程学习(TaskSequence)
4.RL reward 函数设计
5.tokenizer 编码差异对多选题格式的影响
6.合成数据的多语言模板增强
7.工具调用标记解析与结构化 part 表示
各项目的解法1 solutions
Signals
横向对比
| 维度 | nanochat |
|---|---|
| 抽象层级 | 单层 Task 基类 + 2 个组合器(Mixture/Sequence),无中间抽象 |
| 数据混合策略 | index_map 全展开 + Random(42) 确定性混洗,内存换确定性 |
| 评估分流 | eval_type property 二分法:generative 采样 vs categorical logits argmax |
| 过采样机制 | 同一 Task 对象重复传入列表,零额外代码 |
| 切片能力 | start/stop/step 逻辑视图,零拷贝 |
| RL 支持 | reward() 方法默认复用 evaluate(),0-1 二值奖励 |
| 多语言增强 | SpellingBee 48 模板覆盖 7 种语言的用户消息变体 |
最佳实践
1.重复传入同一 Task 实现过采样
2.多选题 letter 放在 choice 后面且无空格,避免 tokenizer 歧义
3.用 Random(seed=index) 为每个样本生成确定性合成数据
4.reward() 默认复用 evaluate() 减少重复代码