【RS】OneRec快手-生成式推荐模型
note
本文提出了一种名为 OneRec 的统一生成式推荐框架,旨在替代传统的多阶段排序策略,通过一个端到端的生成模型直接生成推荐结果。OneRec 的主要贡献包括:
编码器-解码器结构:采用稀疏混合专家(MoE)架构扩展模型容量,提升对用户兴趣的建模能力。
会话式生成方法:与传统的逐点预测不同,OneRec 提出会话式生成方法,生成整个推荐列表,更好地捕捉上下文信息。
迭代偏好对齐模块:结合直接偏好优化(DPO),通过奖励模型(RM)生成偏好数据,优化生成结果。
实验表明,OneRec 在大规模工业数据集上显著优于传统方法,并在快手平台的在线 A/B 测试中实现了 1.6% 的观看时间提升。
文章目录
- note
- 一、相关背景
- Q: 这篇论文试图解决什么问题?
- Q: 有哪些相关研究?
- 二、OneRec模型
- 输入处理—多模态表征量化
- T5结构和Session粒度生成
- 1.编码器-解码器结构与模型扩展
- 2.会话式生成方法
- 3.迭代偏好对齐模块与直接偏好优化(DPO)
- 小结
- 三、实验部分
- 1. 离线性能比较实验
- 2. 消融实验
- 3. 在线 A/B 测试实验
- 4. 预测动态分析
- 四、未来方向
- 1. 多目标优化
- 2. 用户冷启动问题
- 3. 生成结果的多样性
- 4. 实时反馈机制
- 5. 模型可解释性
- 6. 跨领域推荐
- 7. 模型压缩与优化
- 8. 用户隐私保护
- Reference
一、相关背景
快手OneRec结合Scaling Law+DPO实现端到端推荐
快手3月份发表了一篇生成式推荐系统工作,将原来的召回->粗排->精排,替换成了端到端的生成式推荐。在模型的构建上,引入了MoE、DPO等LLM中经典有效的方法。

论文标题:OneRec: Unifying Retrieve and Rank with Generative Recommender and Preference Alignment
地址:https://arxiv.org/pdf/2502.18965
Q: 这篇论文试图解决什么问题?
A: 这篇论文试图解决现代推荐系统中传统多阶段排序策略(cascade ranking strategy)的局限性问题。具体而言,它旨在通过一个统一的生成式模型来替代现有的级联学习框架,以实现更高效、更准确的推荐结果。主要关注点包括:
- 多阶段排序的局限性:
- 现代推荐系统通常采用多阶段排序策略,包括召回(recall)、粗排(pre-ranking)和精排(ranking)三个阶段。每个阶段独立运作,前一阶段的性能上限限制了后续阶段的性能,从而限制了整个系统的性能。
- 传统的生成式模型在推荐系统中仅作为召回阶段的选择器,其推荐准确性尚未达到多阶段排序系统的水平。
- 生成式推荐系统的潜力:
- 最近,生成式检索推荐系统(Generative Retrieval-based recommendation systems, GRs)作为一种新兴范式,通过自回归方式直接生成候选视频,显示出巨大的潜力。然而,这些生成式模型目前仅在召回阶段发挥作用,未能充分发挥其潜力。
- 用户偏好对齐问题:
- 在自然语言处理(NLP)中,偏好学习通常依赖于人类明确标注的偏好数据。然而,在推荐系统中,用户与项目的交互数据稀疏,难以直接获得明确的偏好数据。因此,如何在推荐系统中有效地进行偏好学习是一个独特的挑战。
- 上下文信息的重要性:
- 传统的逐点预测方法(point-wise prediction)在生成推荐结果时,难以平衡连贯性和多样性。而会话式生成方法(session-wise generation)可以更好地捕捉用户在会话中的兴趣动态,生成更连贯、多样化的推荐列表。
综上所述,论文提出了一种名为 OneRec 的统一生成式推荐框架,旨在克服传统多阶段排序的局限性,通过会话式生成方法和偏好对齐策略,显著提升推荐系统的性能。
Q: 有哪些相关研究?
A: 这篇论文涉及了多个相关研究领域,主要包括生成式推荐系统、偏好对齐、特征工程、模型架构等方面。以下是详细的相关研究内容:
生成式推荐系统
- GENRE:首次采用Transformer架构进行实体检索,基于上下文条件以自回归方式生成实体名称。
- DSI:提出为文档分配结构化语义ID的概念,并训练编码器-解码器模型进行生成式文档检索。
- TIGER:引入生成式项目检索模型的公式,为推荐系统中的生成式检索奠定了基础。
- Recforest:利用层次化的k-means聚类对项目文本嵌入进行处理,以获得聚类索引作为语义ID。
- EAGER:探索将语义和协同信息整合到标记化过程中,以提升推荐效果。
偏好对齐
- RLHF:在大型语言模型(LLM)的后训练阶段,通过强化学习技术引导奖励模型来对齐人类价值观,但存在不稳定和低效的问题。
- DPO:提出直接偏好优化(DPO),通过偏好数据直接优化,避免了RLHF的不足。此外,还有多种DPO的变体,如IPO、cDPO、rDPO等,它们在不同方面对DPO进行了改进或扩展。
特征工程
- 多模态嵌入:使用多模态嵌入来描述视频,这些嵌入与真实的用户-项目行为分布对齐,以更准确地表示项目。
- 语义ID编码:采用残差量化(RQVAE)等技术将多模态嵌入编码为语义ID,但存在“沙漏现象”(hourglass phenomenon),即代码分布不平衡的问题。
模型架构
- MoE(Mixture-of-Experts):在Transformer架构中,MoE通过稀疏激活机制扩展模型容量,同时保持计算效率。例如,Deepseek MoE提出了一种新的MoE架构,旨在提高专家的特化程度。
- Transformer架构:广泛应用于自然语言处理任务,通过多头自注意力机制和前馈网络层来处理序列数据。在推荐系统中,Transformer架构也被用于建模用户的历史交互行为。
这些相关研究为OneRec的提出提供了理论基础和技术支持,使其能够在生成式推荐和偏好对齐方面取得显著进展。
二、OneRec模型
概括:构建一个Encoder-Decoder模型,Encoder输入用户的历史正向行为序列(使用多模态表征+离散化生成Token序列),Decoder生成一个session内的推荐item。这个Encoder-Decoder模型采用了MoE进行高效的参数量扩展。模型进行了2个阶段的训练,第一阶段采用基础的item预测任务,第二阶段采用DPO进行偏好对齐。

输入处理—多模态表征量化
OneRec模型的核心是根据用户带有正反馈行为的历史观看序列,生成下一个session的推荐item,这篇文章的场景对应的item是短视频。文中将短视频的多模态表征,通过量化的方式离散化成token序列,作为模型输入。
具体的离散化方法使用了QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou(2024)这篇文章中的思路(如下图中间Quantitative Code部分)。设定了多级的codebook,每一级codebook对前一级的表征残差进行聚类,第一级就是多模态表征本身。聚类算法采用Balanced K-means,保证每个类簇包含的item数量相同。

文中采用了3级Codebook,对应每个视频被映射成3个token。将用户历史行为序列的每个短视频的3个token平铺到一个序列,每个短视频之间的token使用[SEP]进行分割,构成最终的输入token序列。
T5结构和Session粒度生成
OneRec整体模型结构类似T5,由一个Transformer Encoder和Transformer Decoder组成。将上述token序列输入到多层Transformer Encoder中,生成每个位置的编码结果。
在Decoder部分,采用Self-Attention+Cross-Attention的结构进行建模。其中Cross-Attention和Encoder每个位置输出的表征进行attention计算,融合Encoder表征信息。在Decoder部分,采用了MoE的结构,实现在单样本计算量增加较少的情况下提升模型参数空间,这也是目前LLM中常用的模型参数scaling up方法。

和之前生成模型中Next Item Prediction任务不同的是,OneRec采用了Session维度的预测,即每条样本需要预测一个Session内的item。由于在推荐阶段就是session粒度推荐的,这样建模能让模型更好的获取到一个session内的上下文信息。此外,由于前面将每个短视频映射成了多级token,这一步也会预测多级token。假设一个session需要预测N个item,有K层级的token,那么Decoder就需要预测N*K个token。每个item的token之间使用[BOS]特殊符号进行分割。
论文提出了一种名为 OneRec 的统一生成式推荐框架,通过以下三个关键方法来解决传统多阶段排序策略的局限性问题:
1.编码器-解码器结构与模型扩展
- 模型架构:OneRec 采用编码器-解码器结构,编码器对用户的历史行为序列进行编码,解码器逐步解码出用户可能感兴趣的视频。
- 模型扩展:借鉴大规模语言模型的扩展规律,OneRec 使用稀疏混合专家(Mixture-of-Experts, MoE)架构来扩展模型容量,而不会成比例增加计算量。具体来说,通过在解码器中引入MoE层,每个前馈网络(Feed-Forward Network, FNN)被替换为多个专家网络,并通过稀疏门控机制选择部分专家进行计算。这种设计在保持计算效率的同时,显著提升了模型对用户兴趣的建模能力。
2.会话式生成方法
- 传统方法的局限性:传统的逐点预测方法(point-wise prediction)在生成推荐结果时,需要手工策略来确保生成结果的连贯性和多样性,这限制了模型的性能。
- 会话式生成:OneRec 提出会话式生成方法(session-wise generation),将用户的一次请求视为一个会话,目标是生成一个高质量的视频列表,而不是逐个生成下一个视频。这种方法允许模型自主学习最优的会话结构,通过提供偏好数据来训练模型,从而更好地捕捉用户在会话中的兴趣动态。
- 高质量会话的定义:为了训练会话式生成模型,论文定义了高质量会话的标准,例如用户实际观看的视频数量、观看时长以及用户与视频的交互行为(如点赞、收藏、分享等)。这些标准确保模型从真实的用户行为模式中学习,从而生成更符合用户兴趣的推荐列表。
3.迭代偏好对齐模块与直接偏好优化(DPO)
- 偏好对齐的挑战:在推荐系统中,用户与项目的交互数据稀疏,难以直接获得明确的偏好数据。因此,传统的偏好学习方法(如NLP中的DPO)难以直接应用于推荐系统。
- 奖励模型(Reward Model, RM):为了解决这一问题,论文设计了一个奖励模型(RM),该模型根据用户的行为和生成的会话来评估用户的偏好。RM通过自注意力机制融合会话中不同项目的信息,并通过多目标预测来估计用户对会话的偏好。
- 迭代偏好对齐(Iterative Preference Alignment, IPA):基于预训练的RM和当前的OneRec模型,通过beam search生成多个响应,并根据RM的评分选择最佳和最差的响应,构建偏好对。然后,使用这些偏好对进行DPO训练,以优化模型的生成结果。这种迭代过程允许模型不断自我改进,逐步提高生成结果的质量。
为了进一步让生成式推荐的效果更符合用户需求,同时也引入观看时长等监督指标,OneRec进一步采用LLM中的DPO思路进行偏好对齐(IPA)。DPO的核心思路是构建不同偏好好坏的样本pair对,要求模型对于其中满足偏好的样本的打分序高于不满足偏好的样本打分序。

首先需要训练一个奖励模型,用来评估每条session序列是否满足用户偏好。这里使用推荐系统的关注目标,如观看时长、点击率等作为目标,训练一个预测模型作为奖励模型。奖励模型可以给出一个session序列的观看时长等指标的预测结果。模型结构主要采用self-attention。
接下来,通过beamsearch的方式,为一个用户生成多个session推荐序列,并使用奖励模型进行打分。从中选出打分最高的和打分最差的,作为pair对,并使用DPO进行训练。基于DPO在上一步训练好的模型上进一步训练,得到最终的模型。

小结
总结:通过上述三个关键方法,OneRec 实现了从传统多阶段排序到统一生成式模型的转变,显著提升了推荐系统的性能。具体来说:
- 编码器-解码器结构与MoE扩展:提高了模型对用户兴趣的建模能力,同时保持了计算效率。
- 会话式生成方法:更好地捕捉了用户在会话中的兴趣动态,生成更连贯、多样化的推荐列表。
- 迭代偏好对齐与DPO:通过奖励模型和偏好对齐,优化了生成结果的质量,使其更符合用户的偏好。
这些方法的结合使得OneRec在大规模工业数据集上取得了显著的性能提升,并在实际应用中实现了可观的业务增长。
三、实验部分
Q: 论文做了哪些实验?
A: 论文中进行了以下几类实验来验证 OneRec 的性能和有效性:
1. 离线性能比较实验
实验目的:比较 OneRec 与传统的逐点方法、列表方法以及偏好对齐方法在推荐性能上的差异。
实验设置:
数据集:使用大规模工业数据集。
基线方法:包括 SASRec、BERT4Rec、FDSA 和 TIGER 等逐点方法,以及 DPO 及其变体(如 IPO、cDPO、rDPO、CPO、simPO 和 S-DPO)。
评估指标:使用观看时间(swt)、观看概率(vtr)、关注概率(wtr)和点赞概率(ltr)等指标来评估模型性能。
实验结果:
OneRec 在会话观看时间(swt)和点赞概率(ltr)等关键指标上显著优于传统的逐点方法和 TIGER 等生成式方法。
仅使用 1% 的 DPO 训练数据,OneRec-1B+IPA 在最大 swt 和最大 ltr 上分别比基础 OneRec-1B 提高了 4.04% 和 5.43%。
OneRec 提出的 IPA 策略在偏好对齐方面优于现有的 DPO 变体。
2. 消融实验
实验目的:验证 OneRec 中各个模块的有效性,特别是 DPO 样本比例和模型规模对性能的影响。
实验设置:
DPO 样本比例消融实验:改变 DPO 训练中的样本比例(从 1% 到 5%),观察模型性能的变化。
模型规模消融实验:评估不同模型规模(从 0.05B 到 1B 参数)对 OneRec 性能的影响。
实验结果:
DPO 样本比例消融实验:发现 1% 的 DPO 样本比例已经能够带来显著的性能提升,而进一步增加样本比例对性能的提升有限,但计算成本显著增加。
模型规模消融实验:随着模型规模的增加,OneRec 的性能持续提升,表明模型扩展对于提升推荐性能是有效的。
3. 在线 A/B 测试实验
实验目的:评估 OneRec 在实际工业场景中的在线性能。
实验设置:
平台:在快手(Kuaishou)的短视频推荐平台进行 A/B 测试。
流量分配:使用 1% 的主流量进行实验。
基线系统:与当前的多阶段推荐系统进行比较。
评估指标:使用总观看时间和平均观看时长来衡量用户对推荐结果的接受程度。
实验结果:
OneRec 在总观看时间上实现了 1.68% 的提升,在平均观看时长上实现了 6.56% 的提升,表明 OneRec 能够提供更优质的推荐结果,并为平台带来显著的业务增长。
4. 预测动态分析
实验目的:分析 OneRec 在不同层的预测分布,以验证偏好对齐策略的效果。
实验设置:
可视化方法:对每个层的语义 ID 的 softmax 输出进行可视化,标记出具有最高奖励值的项目的语义 ID。
实验结果:
OneRec+IPA 在预测分布上显示出显著的置信度变化,表明偏好对齐策略有效地促使基础模型生成更符合用户偏好的结果。
第一层的预测分布显示出更高的不确定性(熵为 6.00),而后续层的分布逐渐集中(第二层平均熵为 3.71,第三层熵为 0.048),这归因于自回归解码机制,后续层受益于累积的上下文信息,从而约束了决策空间。
通过这些实验,论文全面验证了 OneRec 在离线和在线环境中的性能,以及各个模块对模型性能的贡献。
四、未来方向
Q: 有什么可以进一步探索的点?
A: 尽管 OneRec 在生成式推荐系统方面取得了显著的进展,但仍有一些可以进一步探索和改进的方向:
1. 多目标优化
问题:当前的 OneRec 主要关注观看时间(swt)和交互指标(如点赞概率 ltr),但在实际应用中,推荐系统可能需要同时优化多个目标,例如用户留存率、新用户获取、内容多样性等。
探索方向:
多目标优化框架:设计一个能够同时优化多个目标的框架,例如通过多任务学习(Multi-Task Learning, MTL)或强化学习(Reinforcement Learning, RL)来平衡不同目标之间的关系。
动态权重调整:根据不同的业务需求和用户行为动态调整各个目标的权重,以实现更灵活的推荐策略。
2. 用户冷启动问题
问题:对于新用户或历史行为数据较少的用户,OneRec 的性能可能会受到限制,因为模型难以从有限的数据中准确建模用户兴趣。
探索方向:
冷启动策略:探索有效的冷启动策略,例如利用用户的基本属性(如年龄、性别、地理位置等)或引入外部知识图谱来辅助建模。
零样本学习:研究零样本学习(Zero-Shot Learning, ZSL)或少样本学习(Few-Shot Learning, FSL)技术,以提高模型对新用户的适应能力。
3. 生成结果的多样性
问题:虽然 OneRec 在会话式生成中考虑了上下文信息,但在某些情况下,生成的推荐结果可能仍然缺乏多样性。
探索方向:
多样性增强技术:引入多样性增强技术,如通过正则化方法、引入噪声或使用不同的解码策略(如 Top-K Sampling、Nucleus Sampling)来增加生成结果的多样性。
多模态信息融合:进一步融合多模态信息(如文本、图像、音频等),以更全面地捕捉用户兴趣,从而生成更多样化的推荐结果。
4. 实时反馈机制
问题:在实际应用中,用户的兴趣可能会快速变化,而 OneRec 的当前实现可能无法及时捕捉这些变化。
探索方向:
实时反馈学习:设计实时反馈机制,使模型能够根据用户的即时反馈(如点击、停留时间、滑动行为等)快速调整推荐结果。
在线学习算法:研究在线学习算法,如增量学习(Incremental Learning)或持续学习(Continual Learning),以提高模型对用户兴趣变化的适应能力。
5. 模型可解释性
问题:OneRec 作为一个复杂的生成式模型,其推荐结果的可解释性可能有限,这在某些应用场景中是一个重要的问题。
探索方向:
可解释性技术:引入可解释性技术,如特征重要性分析、注意力机制可视化或生成式对抗网络(GANs)中的解释性方法,以提高模型的透明度。
用户反馈解释:设计机制让用户能够理解推荐结果的依据,并通过用户反馈进一步优化模型的可解释性。
6. 跨领域推荐
问题:OneRec 目前主要应用于短视频推荐,但在其他领域(如电商、音乐、新闻等)的应用潜力尚未充分挖掘。
探索方向:
跨领域适应性:研究 OneRec 在不同领域的适应性,探索如何调整模型架构和训练策略以适应不同领域的特点。
领域迁移学习:利用迁移学习技术,将在一个领域学到的知识迁移到其他领域,以提高模型的泛化能力。
7. 模型压缩与优化
问题:尽管 MoE 架构提高了模型的计算效率,但随着模型规模的进一步扩大,模型的存储和计算成本仍然是一个挑战。
探索方向:
模型压缩技术:研究模型压缩技术,如量化(Quantization)、剪枝(Pruning)和知识蒸馏(Knowledge Distillation),以进一步降低模型的存储和计算需求。
高效推理算法:开发高效的推理算法,如稀疏激活机制的优化和并行计算技术,以提高模型的在线推理速度。
8. 用户隐私保护
问题:在处理用户数据时,保护用户隐私是一个重要的问题,尤其是在模型需要大量用户行为数据进行训练的情况下。
探索方向:
隐私保护技术:引入隐私保护技术,如差分隐私(Differential Privacy)或同态加密(Homomorphic Encryption),以确保用户数据的安全性和隐私性。
联邦学习:研究联邦学习(Federated Learning)技术,使模型能够在不直接访问用户数据的情况下进行训练,从而保护用户隐私。
Reference
[1] https://arxiv.org/pdf/2502.18965
[2] QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou(2024)
相关文章:
【RS】OneRec快手-生成式推荐模型
note 本文提出了一种名为 OneRec 的统一生成式推荐框架,旨在替代传统的多阶段排序策略,通过一个端到端的生成模型直接生成推荐结果。OneRec 的主要贡献包括: 编码器-解码器结构:采用稀疏混合专家(MoE)架构…...
AVL树的平衡算法的简化问题
AVL树是一种紧凑的二叉查找树。它的每个结点,都有左右子树高度相等,或者只相差1这样的特性。文章https://blog.csdn.net/aaasssdddd96/article/details/106291144给出了一个例子。 为了便于讨论,这里对AVL树的结点平衡情况定义2个名称&#…...
mac安装navicat及使用
0.删除旧的 sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/com.apple.helpd/SDMHelpData/Other/English/HelpSDMIndexF…...
【HTML】二、列表、表格
文章目录 1、列表1.1 无序列表1.2 有序列表1.3 定义列表 2、表格2.1 定义2.2 表格结构标签2.3 合并单元格 1、列表 列表分为: 无序列表有序列表定义列表:一个标题下有多个小分类 1.1 无序列表 ul嵌套li,ul是无序列表,li是列表…...
大语言模型安全风险分析及相关解决方案
大语言模型的安全风险可以从多个维度进行分类。 从输入输出的角度来看,存在提示注入、不安全输出处理、恶意内容生成和幻觉错误等风险; 从数据层面来看,训练数据中毒、敏感信息泄露和模型反演攻击是主要威胁; 模型自身则面临拒绝服务和盗窃的风险; 供应链和插件的不安全引…...
windows平台的ffmpeg编译使用
windows平台的ffmpeg编译使用 一、现状 本人使用libgdx开发galGame,发现扩展包gdx-video不支持mp4,不能忍,正好看到官网有支持自定义编译的文档,所以操作一下,自定义编译。本文重点在于操作windows平台,linux平台太简单了。 整个过程包括如下几个步骤。 二、代码下载…...
FFMPEG录制远程监控摄像头MP4
手绘效果图 上图是录制功能的HTML前端页面,录制功能和解码视频放在一起。录制功能关键是录制(开始录制按钮)、停止录像按钮。当点击“录制”的时候则会开始录制MP4文件, 当点击停止的时候就会停止录制MP4。经过录制后,则会生成MP4,并放到我的RV1126的/tm…...
centos操作系统上传和下载百度网盘内容
探序基因 整理 进入百度网盘官网百度网盘 客户端下载 下载linux的rpm格式的安装包 在linux命令行中输入:rpm -ivh baidunetdisk_4.17.7_x86_64.rpm 出现报错: 错误:依赖检测失败: libXScrnSaver 被 baidunetdisk-4.17.7-1.x8…...
Rubick:基于 Electron 的开源插件化桌面效率工具箱
Rubick 是一款基于 Electron 构建的开源桌面工具箱,专为追求高效办公和个性化体验的用户设计。它通过自由集成丰富的插件,让用户能够根据自己的需求打造极致的桌面端效率工具。 软件命名由来Rubick 的名字来源于《DOTA2》中的英雄 Rubick(拉…...
ruoyi-vue部署
ruoyi源码类型 Ruoyi源码 编译打包后,直接部署tomcat服务器 Ruoyi-vue 前后端分离版 前端部署到nginx 后端部署到tomcat RuoYi-Cloud 微服务版 RuoYi-app 移动端版 RuoYi-vue 前后端分离版 环境 JDK>=1.8 MySQL >= 5.7 Maven >= 3.0 Node >= 12 Redis…...
MyBatis 如何创建 SqlSession 对象的?
MyBatis 创建 SqlSession 对象的过程主要由 SqlSessionFactory 接口及其实现类来完成。以下是详细步骤: 1. SqlSessionFactory 接口: SqlSessionFactory 是 MyBatis 的核心接口之一,它负责创建 SqlSession 对象。 你可以将 SqlSessionFactory 视为 Sql…...
LLM论文笔记 23: Meta Reasoning for Large Language Models
Arxiv日期:2024.6.17机构:THU / MSRA 关键词 meta-reasoning推理方法prompt engineering 核心结论 1. 提出Meta Reasoning prompting,MRP是一种系统提示方法,能够帮助LLM动态选择最合适的推理方法,从而提升其灵活性和…...
【最后203篇系列】015 几种消息队列的思考
背景 队列还是非常重要的中间件,可以帮助我们:提高处理效率、完成更复杂的处理流程 最初,我觉得只要掌握一种消息队列就够了,现在想想挺好笑的。 过去的探索 因为我用python,而rabbitmq比较贴合快速和复杂的数据处…...
golang time包和日期函数
1.简介 在程序中日期和时间是我们经常会用到的,在go中time包提供了时间的显示和测量函数。 2.获取当前时间 通过time.Now()函数获取当前时间对象,然后获取时间对象的年月日时分秒等值。 now : time.Now()fmt.Printf("now%v type%T\n", now…...
学习springboot 的自动配置原理
前言 为什么要学习springboot 的自动配置原理? 1学习 自定义成starter 的前提 实际开发中,我们如果定义公共的组件给团队使用,为了让他们使用方便就自定义成starter。而想要学习starter ,就要先了解springboot 的自动配置原理 2 面试需要 了…...
排错 -- FISCO BCOS区块链网络 -- 3. 编译智能合约
文章为FISCO BCOS2.0搭建区块链平台中发现的问题与总结,出错原因不唯一 ,解决办法不唯一 目前社区缺少完整,稳定的搭建平台和教程 ,欢迎各位及时补充,如有错误请及时评论纠正! 感谢各位搜索到这里&#…...
ffmpeg 添加毫秒时间戳
网上有好多添加时间水印的,默认是到秒,而我需要到毫秒,查了一下,没有找到更好的方案,下面是自己实现的方案,可以显示到毫秒。如果有更好的方案,欢迎讨论 ffmpeg -i video.mp4 -vf "drawte…...
centos7上安装Docker
文章目录 **1. 使用华为云镜像源替换Docker仓库****2. 安装Docker CE****3.更换docker镜像源-使用华为云的docker镜像源****4.补充:docker的使用****5.补充:删除docker的步骤** 1. 使用华为云镜像源替换Docker仓库 步骤: 删除无效的Docker仓…...
大模型推理后JSON数据后处理
大模型推理后JSON数据后处理 flyfish LLM 通常指的是 Large Language Model,也就是大语言模型,针对 JSON格式的输出,可以在大模型推理前、推理中、推理后进行处理,这里是在推理后进行处理。 针对模型输出结果,可采用结…...
【干货】Docker 在自动化测试和性能测试中的应用
引言 在现代软件测试领域,Docker 已经成为提升自动化测试和性能测试效率的重要工具。它不仅能提供一致的测试环境,还能大幅减少配置和维护成本。本文将深入探讨 Docker 在自动化测试和性能测试中的应用场景、优势及实践方案。 1. 为什么选择 Docker&am…...
【Linux内核系列】:文件系统收尾以及软硬链接详解
🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 世界上只有一种个人英雄主义,那么就是面对生活的种种失败却依然热爱着生活 内容回顾 那么在之前的学习中,我们…...
视频理解之Actionclip(论文宏观解读)
配合解读代码解读 1.研究背景 1. 视频行为识别的重要性 视频行为识别是视频理解领域的核心任务之一,旨在通过分析视频内容来识别和分类其中的人物行为或活动。这一任务在多个领域具有重要的应用价值,例如智能监控、人机交互、自动驾驶、医疗健康等。随…...
java手机号、邮箱、日期正则表达式
Java正则核心API Java中用 java.util.regex 包的两个类: Pattern:编译正则表达式Matcher:执行匹配操作 1. 验证手机号 String regex "1[3-9]\\d{9}"; boolean isValid "18812345678".matches(regex); // true2. 提取…...
navicat16 升级到 navicat17 之后原来的连接找不到了 mac用户
版本16的路径 注意把对应的路径改成自己的用户名 /Users/自己的用户名/Library/Application Support/PremiumSoft CyberTech/Navicat CC/Common/Settings 版本17的路径 /Users/自己的用户名/Library/Containers/com.navicat.NavicatPremium/Data/Library/Application Suppor…...
Altium Designer——CHIP类元器件PCB封装绘制
文章目录 PCB封装组成元素:焊盘的属性 SS34肖特基二极管SMA(DO-214AC)封装绘制资料:步骤:1.绘制焊盘:用到的快捷键:资料: 2.绘制丝印:用到的快捷键:资料: PCB封装组成元素…...
[C++Qt] 槽函数收不到信号问题(信号的注册)
📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…...
【一起来学kubernetes】12、k8s中的Endpoint详解
一、Endpoint的定义与作用二、Endpoint的创建与管理三、Endpoint的查看与组成四、EndpointSlice五、Endpoint的使用场景六、Endpoint与Service的关系1、定义与功能2、创建与管理3、关系与交互4、使用场景与特点 七、Endpoint的kubectl命令1. 查看Endpoint2. 创建Endpoint3. 编辑…...
SpringBoot的并行SQL任务并完成所有任务之后返回操作
一、核心实现方案 1. 线程池配置与异步支持 通过 EnableAsync 启用异步支持,并自定义线程池避免默认线程池的性能问题: Configuration EnableAsync public class AsyncConfig {Beanpublic Executor taskExecutor() {ThreadPoolTaskExecutor executor …...
《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成
《AI浪潮中的璀璨新星:Meta Llama、Ollama与DeepSeek的深度剖析》:此文为AI自动生成 引言:AI 大模型的群雄逐鹿时代 在科技飞速发展的当下,AI 大模型领域已成为全球瞩目的焦点,竞争激烈程度堪称白热化。从 OpenAI 推出…...
LVGL移植到6818开发板
一、移植步骤 1.lv_config.h 配置文件启动 framebuffer 2、lv_config.h 配置文件关闭SDL 2.修改main.c 去掉SDL输入设备 3.修改Makefile 文件启动交叉编译 去掉警告参数 去掉SDL库 4.交叉编译代码 make clean #清空 ⭐ 必须要清空一次再编译! 因为修改了 lv_con…...
