论文阅读:MiniOneRec

github仓库:https://github.com/AkaliKong/MiniOneRec
技术报告论文:https://arxiv.org/abs/2510.24431

找了一个论文阅读辅助工具:https://www.alphaxiv.org/

代码

https://github.com/AkaliKong/MiniOneRec

SFT在做什么

前置:数据集

代码路径:MiniOneRec/data.py

类Tokenizer:给普通的分词器多包装了一层,可以处理连续的bos/eos的特殊字符串。

SidSFTDataset

多样化的指令
任务:输入用户最近交互过的item列表,预测用户下一个交互的item

SidItemFeatDataset

sid2title或者title2sid任务

FusionSeqRecDataset

带意图识别的商品推荐
代码

代码入口:MiniOneRec/sft.py
1、运行train.py,传入要训练的主干llm即base_model
2、传入SID token,MiniOneRec是传入到了普通tokens中,而非special tokens中。
3、MiniOneRec考虑是否冻结LLM自带的token的emb和各种参数,只训练新传入的SID 的token emb。
4、处理数据集,有三种类型:SidSFTDataset、SidItemFeatDataset、FusionSeqRecDataset。
5、训练

TokenExtender: SID

SID索引示例:MiniOneRec/data/Amazon/index/Industrial_and_Scientific.index.json
是一个json文件,{"0": ["<a_236>", "<b_231>", "<c_226>"], "1": ["<a_42>", "<b_80>", "<c_160>"],...
indices是一个字典,如indices["0"]=["<a_236>", "<b_231>", "<c_226>"]
函数get_new_tokens返回self.new_tokens,就是返回SID的子token集合。【但是代码存在问题,它读取的所有实体的SID的token集合,而不是码本的token集合。但是码本很有可能不是所有索引token都会被利用(码本坍塌之类的),部分没见过的实体可能会被分配到目前没有分配到的SID索引token上。】

如何只对新token的emb做训练

先冻结所有参数,然后打开embedding参数的required_grad,然后通过register_hook来控制哪些token的梯度保留
embedding_layer.weight[:original_vocab_size].requires_grad=False是不行的,因为不能直接对张量(Tensor)的切片(Slice)设置 requires_grad 属性。
print("Freezing LLM parameters, only training new token embeddings")for param in model.parameters(): param.requires_grad =Falseif sid_index_path and os.path.exists(sid_index_path)and new_tokens: embedding_layer = model.get_input_embeddings()if embedding_layer.weight.shape[0]> original_vocab_size: embedding_layer.weight.requires_grad =Truedefmask_grad(grad):# grad shape: [vocab_size, hidden_dim] grad[:original_vocab_size].zero_()return grad embedding_layer.weight.register_hook(mask_grad)print(f"Unfrozen {len(new_tokens)} new token embeddings "f"(indices {original_vocab_size} to {len(tokenizer)-1})")

RL在做什么

代码入口:MiniOneRec/rl.py

数据集

SidDataset:输入用户历史交互的item SID序列,预测下一个item的SID
RLTitle2SidDataset:title2sid和description2sid任务,返回prompt-completion pairs
RLSeqTitle2SidDataset:输入用户交互序列(带title)来预测下一个item的SID。

奖励模型

SASRec。

MiniOneRec: An Open-Source Framework for Scaling Generative Recommendation

摘要

做了一个框架:SID构建(RQVAE)+SFT(0.5b~7b)+RL(受限解码+混合奖励)
实验证明了llm的Scaling特点,模型越大越好。
从图上来看,对齐SID-text是挺重要的。

在这里插入图片描述

Introduction/Related Work 略

Modeling

框架:
1、tokenizer(RQVAE)
2、LLM-text 对齐(利用llm的世界知识)
3、SFT next token prediction
4、RL(GRPO)

在这里插入图片描述

Task

序列推荐任务
先分词:一个用户u,有一个时间顺序的历史交互商品序列Hu=[i1,i2, …, iT]。每个商品iti_tit​通过RQVAE编码为一个3层的SID {c0it,c1it,c2it}\{c_0^{i_t},c_1^{i_t},c_2^{i_t} \}{c0it​​,c1it​​,c2it​​}。
后训练:LLM πθ\pi_{\theta}πθ​,读取历史序列预测下一个商品。推理的时候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
https://github.com/AkaliKong/MiniOneRec/blob/main/sft_gpr.py
相当于每条样本有一个数值表示好坏,然后对损失做加权。
但是没有实验结果,不知道好不好。
TODO: 做实验比较结果

RL with verifiable rewards (RLVR)

1、混合动态采样(SID空间小,容易采样到相同的SID)
2、稀疏排序信号

混合动态采样采样:
论文说了两个方法。方法1是over-samplef疯狂采,然后构造一个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作为指标。

1、Scaling:训练+评估损失:模型越大损失越小
2、baseline对比:LLM系列和非LLM系列对比,说明世界知识的重要;Ours和LLM系列对比,说明RL的重要

在这里插入图片描述

Transferablity

SID pattern discovery实验:在Industrial上训在Office上评估
证明RL的有效
没做SFT是因为SFT很容易领域过拟合影响迁移。

在这里插入图片描述

消融

language-SID的重要性:
1、不做language-SID对齐
2、做language-SID对齐,但不SFT 推荐任务,只在RL上做推荐任务
3、SFT只做推荐任务,RL做language-SID对齐(那还做推荐任务吗?没说清楚)

在这里插入图片描述


采样:
1、直接topk
2、采1.5倍budget+筛选
3、beamsearch:最好

奖励设计:
1、01奖励
2、SASRec模型 logits 【效果很差 reward hacking,SASRec协同信息和推荐信息不一致】
3、NDCG

在这里插入图片描述

是否预训练:【还是预训练的好】

在这里插入图片描述

代码

sft_gpr

https://github.com/AkaliKong/MiniOneRec/blob/main/sft_gpr.py
GPR-inspired SFT with Value-Aware Fine-Tuning (VAFT): implements weighted loss based on simulated item value

Read more

硕士论文盲审前降AI率:盲审评委到底会不会看AIGC报告?

硕士论文盲审前降AI率:盲审评委到底会不会看AIGC报告? 最近收到不少同学私信问我:"学长,我硕士论文马上要送盲审了,学校说要做AIGC检测,但盲审评委真的会看这个报告吗?"说实话,这个问题我当初也纠结过。今天就把我了解到的情况和大家详细聊聊,希望能帮到正在准备盲审的同学。 盲审流程中AIGC检测处于什么位置? 盲审前的"关卡"越来越多 以前硕士论文盲审,学校主要关注的就是查重率。但从2025年下半年开始,越来越多的高校在盲审前增加了AIGC检测环节。根据我收集到的信息,目前的盲审流程大致是这样的: 环节时间节点负责方是否涉及AI检测论文提交盲审前2-4周研究生院部分学校要求提交检测报告查重检测盲审前1-2周学院/研究生院与AIGC检测同步进行AIGC检测盲审前1-2周学院/研究生院是,多数用知网系统送审盲审开始研究生院统一安排部分学校附带检测报告评审盲审期间(2-4周)外校评委评委可能收到报告 三种常见的学校处理方式 经过调研,我发现不同学校对盲审中AIGC检测的处理方式主要分三种: 第一种:检测不通过直接不送审。 这是最严格的情况。如果AIGC检测率超过

AI画图惹官司?Stable Diffusion版权雷区全拆解(附避坑指南)

AI画图惹官司?Stable Diffusion版权雷区全拆解(附避坑指南)

AI画图惹官司?Stable Diffusion版权雷区全拆解(附避坑指南) * AI画图惹官司?Stable Diffusion版权雷区全拆解(附避坑指南) * Stable Diffusion到底是咋“偷”图的? * 训练数据的灰色地带 * 模型权重的版权争议 * 法律界现在吵翻天了 * Getty Images的世纪官司 * 艺术家集体诉讼内幕 * 国内情况也不太平 * 平台审核的骚操作 * 企业合规的生死时速 * 开发者和设计师的真实困境 * 设计师的社死现场 * 开发者的背锅日常 * 遇到版权质疑怎么办?别慌,先看这三招 * 技术防坑指南 * Prompt审计系统 * 几个野路子但超实用的开发技巧 * LoRA训练私有模型 * 自动生成合规水印 * 最后说句掏心窝子的话 * 给开发者的私房建议 AI画图惹官司?Stable Diffusion版权雷区全拆解(附避坑指南) 开篇先唠点实在的 最近

Copilot登录总失败?这7种情况你必须马上检查

第一章:Copilot登录失败的常见现象与影响 GitHub Copilot 作为广受欢迎的AI编程助手,在实际使用过程中,部分开发者频繁遭遇登录失败的问题。这一问题不仅影响编码效率,还可能导致开发流程中断,尤其在团队协作或紧急修复场景下尤为显著。 典型登录失败现象 * 输入凭据后提示“Authentication failed”但账号密码正确 * VS Code 中 Copilot 图标持续显示加载状态,无法完成初始化 * 浏览器重定向至 GitHub 授权页面时卡顿或返回空白页 * 终端输出错误日志:Copilot service is unreachable 对开发工作流的影响 影响维度具体表现编码效率失去代码补全与建议功能,手动编写耗时增加调试体验无法快速生成测试用例或错误解释团队协同新成员因无法启用 Copilot 导致上手速度下降 基础诊断命令 在 VS Code 终端中执行以下命令可获取当前认证状态: # 查看 Copilot 扩展日志 code --log debug # 检查已安装扩展及版本 code --list-extensions

FPGA机器学习终极指南:hls4ml完整教程与快速上手技巧

FPGA机器学习终极指南:hls4ml完整教程与快速上手技巧 【免费下载链接】hls4mlMachine learning on FPGAs using HLS 项目地址: https://gitcode.com/gh_mirrors/hl/hls4ml 想象一下,你训练了一个强大的深度学习模型,但它只能在云端运行,响应延迟让你无法接受。现在,一个名为hls4ml的开源项目正在改变这一现状,让机器学习模型能够直接在FPGA上实现低延迟、高吞吐量的推理加速。这个项目正迅速成为FPGA机器学习领域的明星工具!✨ 为什么选择FPGA推理加速? 在人工智能应用爆炸式增长的今天,传统的CPU和GPU已经无法满足某些场景对低延迟和能效比的严苛要求。FPGA凭借其可重构性和并行处理能力,在边缘计算、实时处理等领域展现出巨大优势。 hls4ml的核心优势: * 🚀 超低延迟:模型直接在硬件上运行,无需操作系统开销 * ⚡ 高吞吐量:充分利用FPGA的并行计算能力 * 🔋 能效比优异:相比GPU,FPGA在特定任务上能效比更高 * 🎯 定制化程度高:可根据具体需求优化硬件实现