vinnylarouge/jevlike
学习卡:jevlike
一、一句话定位
一个独立实现的单遍文本选项评分模型,输入一段上下文和N个文本选项,一次前向输出每个选项的概率,模仿TypeSafe公司Jev模型的输入输出形态。
二、核心技术/架构亮点
1. 选项‑上下文注意力:每个选项作为查询向量,对上下文token做注意力加权,生成上下文向量,再与选项向量点积得到分数。
2. 单遍评分:无需自回归逐token生成,一次前向即可完成N个选项的评分。
3. 双编码器可选:默认从零学习字节级表征;也可挂载Hugging Face预训练模型(如Qwen2.5‑0.5B)作为冻结编码器,仅训练轻量评分头。
4. 可变选项数:每条数据选项数可不同(≥2),模型自动处理。
5. 低参数量:评分头通过`--rank`控制宽度,适合在CPU或边缘设备运行。
三、适用场景与目标用户
- 场景:需要从动态变化的候选列表中选出最相关选项的决策任务,如客服意图分类、菜单导航、游戏动作选择、Wiki页面跳转预测。
- 目标用户:研究型开发者、想复现或改进“系统一”式快速选择的小团队、对单遍评分架构感兴趣的学习者。
四、可动手动作
1. 快速上手:clone仓库后创建venv,`uv pip install -e '.[dev]'`,运行`jevlike-data synthetic`生成合成数据,再用`jevlike-train`训练并`jevlike-predict`测试。
2. 自定义数据:按JSONL格式准备`{"context":"...","options":["...","..."],"label":0}`,切分训练/验证/测试集(注意将同类记录放在同一切分)。
3. 接入Hugging Face:安装`[transformers]`,指定`--encoder hf --hf-model Qwen/Qwen2.5-0.5B`,可快速迁移更强语义理解。
4. 动手实验:运行Doom示例(需安装游戏依赖)或WikiSpeedia示例,观察单遍评分速度(约100倍于小解码器)。
五、学习优先级 P1(排期)
理由:该项目为学术/研究范式验证,非直接可用的产品级方案,但架构设计简洁可复用,适合作为“单遍评分”思路的入门参考,值得花1‑2天实验数据格式与注意力机制。若急需快速分类任务可优先尝试,但生产需自行调优。⌂