Haidass1.5-143M-Jev 是一个研究性质的 Jev 类决策模型。它以
DALabCommunity/Haidass1.5-143M
为冻结基座,通过 LoRA 和一个可训练选项指针头输出 choice、noul 和 score
问题的概率分布。
模型不会生成答案文本。加载时使用 Haidass 的 Transformer backbone,不加载语言模型词表投影头;
多个问题共享状态前缀,并通过 block-causal attention mask 隔离问题分支。指针头读取每个选项边界和
<decide> 位置的隐藏状态,为请求中的现有选项直接打分。
本仓库发布的是 LoRA adapter、指针头、tokenizer、训练配置、开发集评测结果和复现实验代码。
运行时仍需下载原始 Haidass 基座。
最佳已验证版本
发布 checkpoint 来自两阶段继续训练:
- 从初始 Kev-style Haidass-Jev checkpoint 开始,使用 Kev decision-v7 数据继续训练;
- 选择学习率
2e-5 的 step 150,再以 90% Kev + 10% 规则合成数据训练 150 step。
最终选择依据是开发集综合分数:
0.6 × Decision-v7 accuracy
+ 0.4 × Transfer-v4 accuracy
- 0.1 × (Decision-v7 Brier + Transfer-v4 Brier)
| Development suite |
Accuracy |
Brier ↓ |
NLL ↓ |
ECE ↓ |
| Decision-v7 |
0.5866 |
0.5057 |
0.9325 |
0.0378 |
| Transfer-v4 |
0.4771 |
0.5838 |
0.9692 |
0.0700 |
| Haidass synthetic v1 |
0.4125 |
0.6255 |
1.0376 |
0.0685 |
这些是 development 指标。test split 没有用于选模,本次发布也不声明 test 指标。
训练配置
| 配置 |
值 |
| Base |
DALabCommunity/Haidass1.5-143M |
| LoRA |
rank 16, alpha 32, dropout 0.05 |
| LoRA targets |
q/k/v/o 和 gate/up/down projections |
| Pointer head |
hidden 576 → projection 256 |
| Global batch |
128 |
| Peak learning rate |
2e-5 |
| Scheduler |
5% warmup + cosine decay to 10% peak |
| Optimizer |
AdamW, weight decay 0.01 |
| Precision |
FP32 master weights, BF16 autocast |
| Checkpoint interval |
50 optimizer steps |
| Seed |
0 |
| Context admission |
state ≤ 384 tokens; each branch must fit with state in 1024 tokens; packed ≤ 2048 |
最终 checkpoint 的监督目标是问题内平均交叉熵,再按源请求平均。它没有采用未完成退火实验中的
Brier/RPS/permutation 辅助损失。
数据
主要训练数据来自 Kev 的 frozen decision-v7 suite。经过精确去重和 tokenizer 长度检查后,
12,049 个请求被保留,420 个重复请求和 107 个超长请求被移除。
规则合成集包含 5,000 个训练请求和 800 个开发请求,中英文各半。每个请求包含 Choice、Noul、
Score 三类问题;行动标签在 proceed、review、block 之间严格均衡。每两个样本组成只修改一个
决策关键字段的反事实对,标签由确定性规则重新计算。合成数据不包含模型自标注或人为伪造的软概率。
生成器见 code/generate_haidass_synthetic.py。训练数据本身放在独立
dataset 仓库 HanWangTJU/haidass-jev-synthetic-v1。
使用
本模型依赖 Kev 的自定义 block mask、输入编码和指针头,不能直接用
AutoModelForCausalLM.generate()。
git clone https://github.com/jaredpalmer/kev.git
cd kev
uv sync --extra serve
uv run --extra serve python -m kev.serve \
--run HanWangTJU/haidass1.5-143m-jev \
--port 8009
也可以从 Python 加载:
from kev.evaluate import load
tokenizer, model = load(
"HanWangTJU/haidass1.5-143m-jev",
"cuda", # Ascend 环境中使用 "npu"
merge=False,
)
输入必须走 Kev 的 SystemOneRequest / materialize() 路径,确保服务和训练使用相同格式,并防止用户文本
伪造内部边界 token。
重要限制
- 143M 基座容量有限,跨来源泛化明显弱于较大的 Kev 模型。
- 只验证了一个随机种子,指标没有多 seed 置信区间。
- Decision-v7 的 Choice permutation flip rate 约为 0.207;Transfer-v4 约为 0.417,选项顺序稳定性仍需改进。
option_isolation=False:问题分支彼此隔离,但同一问题内的选项不是结构性隔离。
- 规则合成开发集与训练集共享规则家族,只用于检查规则学习,不代表开放域泛化。
- 退火实验在 step 45 外部中断,没有形成可验证 checkpoint;RLCD 没有执行。
- 本模型输出的是预测概率,不应直接用于高风险或不可逆决策。
完整实验历史、失败分析和后续建议见
TRAINING_REPORT_ZH.md。
来源与许可
架构和研究工具基于 Apache-2.0 许可的
jaredpalmer/kev,模型基座
DALabCommunity/Haidass1.5-143M
同样采用 Apache-2.0。本仓库新增代码和权重按 Apache-2.0 发布。