MiniOneRec: 生成式推荐开源框架
MiniOneRec 是一个开源的生成式推荐框架,旨在通过扩展大语言模型(LLM)来实现序列推荐。该框架结合了 SID 构建(RQVAE)、SFT(0.5b~7b)和 RL(受限解码 + 混合奖励)。实验证明了 LLM 的 Scaling 特性,模型越大效果越好。从实验结果来看,将 SID 与文本对齐非常重要。
建模框架
- Tokenizer (RQVAE): 商品分词器。
- LLM-text 对齐: 利用 LLM 的世界知识。
- SFT next token prediction: 监督微调。
- RL (GRPO): 强化学习优化。

Task
序列推荐任务。先分词:一个用户 u,有一个时间顺序的历史交互商品序列 Hu=[i1,i2, …, iT]。每个商品 it 通过 RQVAE 编码为一个 3 层的 SID {c_0^it, c_1^it, c_2^it}。后训练:LLM πθ,读取历史序列预测下一个商品。推理的时候 k beams search。
Item Tokenization
标准 RQVAE。为了避免码本坍缩使用第一个训练 batch 的 k-means 中心作为 codebook 的初始化码本。代码里有 Sinkhorn-Knopp algorithm 代码(LC-Rec 也做了),这也是缓解码本坍缩的 trick。
Align with LLM
对齐 LLM 世界知识和 SID 信号。 任务一:序列推荐任务 任务二:对齐 SID 和文本描述任务。
在 github 里更新了新技术:GPR-inspired SFT with Value-Aware Fine-Tuning (VAFT): implements weighted loss based on simulated item value。相当于每条样本有一个数值表示好坏,然后对损失做加权。
RL with verifiable rewards (RLVR)
- 混合动态采样(SID 空间小,容易采样到相同的 SID)
- 稀疏排序信号
混合动态采样采样:论文说了两个方法。方法 1 是 over-sample 疯狂采,然后构造一个 SID 样本尽量不重复的集合。方法 2 是 beam search。它的最终方法是 beam search,没用上方法 1。
稀疏排序信号:用 NDCG 作为奖励 如果是正确商品,分数再加 1。
训练细节
- 商品描述:Qwen3-Embedding-4B 编码
- 分词器:RQVAE 单卡训练,batchsize=20480,lr=1e-3,epochs=10000
- SFT:AdamW,Qwen2.5-Instruct。8 卡训练,单卡 batchsize=128,10 epochs+early stop(patience=1),lr=3e-4,cosine decay。
- RL:GRPO,2epoch,KL 权重β不变=0.1,lr=1e-5,batchsize=512
- 推理:beam search width=16
评估
亚马逊数据集 Office+Industrial。hitrate+NDCG 作为指标。
- Scaling:训练 + 评估损失:模型越大损失越小
- baseline 对比:LLM 系列和非 LLM 系列对比,说明世界知识的重要;Ours 和 LLM 系列对比,说明 RL 的重要






