论文笔记-WWW2024-ClickPrompt
论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction
- ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器
- 摘要
- 1.引言
- 2.预备知识
- 2.1传统CTR预测
- 2.2基于PLM的CTR预测
- 3.方法
- 3.1概述
- 3.2模态转换
- 3.3Prompt生成
- 3.4Prompt融合
- 3.5学习策略
- 3.5.1提示增强掩码语言建模
- 3.5.2使用PLM进行微调
- 3.5.3不使用PLM进行微调
- 4.实验
- 4.1实验设置
- 4.2性能试验
- 4.3模型兼容性
- 4.4消融实验
- 4.4.1提示策略
- 4.4.2协作和语义知识融合策略
- 4.5长尾分析
- 5.总结
ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器
论文下载链接: ClickPrompt
代码: ClickPrompt
摘要
传统的CTR模型通过one-hot编码将多领域分类数据转换为ID特征,存在语义信息丢失的问题。另一个研究方向将输入数据转换为文本句子,尽管保留了语义信息,但无法捕获协作信息,而且推理开销大。
本文提出了一种新颖的模型无关框架ClickPrompt,结合CTR模型生成与交互相关的软提示供PLMs使用。同时设计了一种提示增强的掩码语言建模预训练任务PA-MLM,其中PLM根据上下文信息以及CTR模型生成的软提示恢复被掩码的标记。然后,选择将CTR模型与PLM一起调优以获得更好的性能,或者单独调优CTR模型而不使用PLM以提高推理效率。
1.引言
本文旨在捕捉语义知识和协作知识以实现准确的CTR预测,同时解决推理效率问题。通过设计prompt增强的掩码语言模型PA-MLM,模型首先掩码ID特征的文本,然后PLM利用ID生成的软提示和文本上下文恢复被掩码的信息。这种双向信息流动允许ID的协作信息传递给PLM,同时保持文本的语义信息回流至CTR模型。
如图1所示,通过软提示,基于ID的协作知识将通过前向传播传递给PLM,而基于文本的语义知识将通过反向传播流回CTR模型。预训练后,本文提出两种不同的微调策略用于CTR预测:使用PLM微调和不使用PLM微调。
本文主要贡献:
-
提出了一个新颖的框架ClickPrompt,其中CTR模型充当PLM的软提示生成器。PA-MLM通过软提示对协作知识和语义知识之间的交互和显式对齐进行建模,从而显著提高CTR性能。
-
ClickPrompt与模型无关,并且与各种CTR模型和PLM兼容。此外,通过单独对CTR模型进行微调,ClickPrompt可以提高预测准确性,而无需改变CTR模型结构或增加额外的推理成本。
2.预备知识
2.1传统CTR预测
大多数传统CTR模型的结构分为三层:嵌入层、特征交互层和预测层。嵌入层将稀疏独热编码转化为低维嵌入向量,特征交互层捕获高阶特征交互从而生成相应的特征表示,预测层根据特征交互层的特征表示计算用户的点击概率。预测层之后,CTR模型使用二元交叉熵损失进行训练。
2.2基于PLM的CTR预测
与传统模型不同,基于PLM的CTR模型通过硬提示模版将输入转换为文本。根据任务类型和真实标签表述,基于PLM的CTR模型可以分为两类。
第一类将CTR预测视为二进制文本分类任务,其中真实标签仍然与传统设置相同,为0或1。第二类将CTR预测视为序列到序列任务,其中真实标签被转换为二进制关键词,即是或否。这类方法利用编码器解码器或仅解码器的PLM来遵循指令并回答附加在文本输入后面的二进制问题(例如,用户会喜欢该项目吗?)。本文主要关注第一类。
3.方法
3.1概述
如图2所示,ClickPrompt的模型架构设计主要分为三个阶段:模态转换、提示生成和提示融合。首先,模态转换层将输入数据 x i x_i xi 转换为独热ID特征 x i I D x_i^{ID} xiID 和文本特征 x i t e x t x_i^{text} xitext。其次,ID特征 x i I D x_i^{ID} xiID被输入到CTR模型中,随后经过提示生成层以产生独立的软提示向量。最后,在提示融合阶段,软提示作为PLM每个变换层的前缀隐藏状态,使得协作知识和语义知识之间能够实现显式对齐。
关于学习策略,ClickPrompt采用常见的预训练-微调方案。本文首先设计了一个提示增强的掩码语言建模任务PA-MLM用于预训练,其中PLM需要根据文本上下文和由CTR模型生成的软提示来恢复被掩码的标记。预训练之后,进行有监督的微调,既可以与PLM一起,也可以单独进行。前者实现了协作信息和语义信息之间的显式互动,从而提升性能,而后者则解决了推理效率问题。
3.2模态转换
将输入 x i x_i xi 转换为两种不同的模态:ID特征 x i I D x_i^{ID} xiID 和文本特征 x i t e x t x_i^{text} xitext,ID特征使用one-hot编码获得:
表格数据的复杂模板可能会误导模型,使其无法掌握文本中的关键信息。因此,本文采用“什么是什么”的硬提示模板:
其中 f j n a m e f_j^{name} fjname 是第 j j j 个字段的字段名称, f i , j f_{i,j} fi,j 是第 i i i 个数据实例中第 j j j 个字段的特征值, [ ⋅ ] [ \cdot ] [⋅] 表示连接操作符,用于将列表中的元素用空格“ ”连接起来。
3.3Prompt生成
通过CTR模型的嵌入和特征交互层FI获得特征表示:
然后,维护一组并行投影网络 { g l , k ( ⋅ ) } \{g_{l,k}(\cdot)\} {gl,k(⋅)} 用于软提示生成:
其中 p i , l , k p_{i,l,k} pi,l,k 是PLM第 l l l 层的第 k k k 个提示向量。 L L L 是PLM的层数, K K K 是每层的软提示数量。每个投影网络 g l , k ( ⋅ ) g_{l,k}(\cdot) gl,k(⋅) 是一个多层感知机MLP,用于维度一致性和空间转换。
3.4Prompt融合
如图2所示,获得的软提示将作为PLM每个转换器层的前缀隐藏状态。具体来说,文本特征 x i t e x t x_i^{text} xitext 被分词为 Z Z Z 个单词标记,PLM 的第 l l l 层可以表示为:
其中 [ h i , l , z ] z = 1 Z [h_{i,l,z}]_{z=1}^{Z} [hi,l,z]z=1Z 是第 l l l 层的标记隐藏状态。通过每一层的自注意力机制,来自CTR模型的协作信号可以通过提示接口与文本侧的语义知识显式对齐和融合。
最后,在经过 L L L 层传播后,在PLM的输出状态上应用池化和预测层:
输出维度以及激活和损失函数取决于采用的任务和学习策略。
3.5学习策略
如图2所示,ClickPrompt采用常见的预训练-微调方案作为学习策略。具体而言,将提示增强的掩码语言建模PA-MLM作为预训练任务,通过软提示的链接交融协作知识和语义知识,从而改善参数初始化。然后,选择与PLM进行有监督的微调,以获得更好的CTR性能,或者仅微调CTR模型而不使用PLM,以保持改进的预测准确性和推理效率。
3.5.1提示增强掩码语言建模
如图2所示,对文本特征进行标记掩码处理,以获得损坏的文本输入 x ^ i t e x t \hat{x}_i^{text} x^itext,同时保留原始的ID特征。然后,PLM根据语言上下文以及从完整的ID特征生成的软提示来恢复被掩码的标记。
因此,公式8中的池化和预测层被设计为语言模型的经典解码器模块,然后是softmax函数和交叉熵损失。参考以往的工作,本文对每个输入 x i t e x t x_i^{text} xitext 均匀采样15%的标记,并以8:1:1的比例执行三种不同的操作,即:(1) [MASK] 替换,(2) 随机单词替换,(3) 保持不变。
为了完成对被掩码标记的填空任务,PLM必须提取并整合嵌入在软提示中的相应“正确答案”,从而在CTR模型和PLM之间实现对同一输入 x i x_i xi 的对齐。
3.5.2使用PLM进行微调
集成CTR模型和PLM的预测,同时与软提示向量显式交互:
其中 α α α 是一个可学习的参数,用于平衡预测的权重, σ ( ⋅ ) σ(⋅) σ(⋅) 是sigmoid函数。通过这种方式,来自两个模态的协作知识和语义知识在微调过程充分融合,从而提升了性能。
3.5.3不使用PLM进行微调
为进一步解决推理效率问题,可以仅微调CTR模型而不使用PLM。在PA-MLM预训练过程中,通过反向传播将PLM中的语义知识注入到CTR模型中。因此,这种语义感知的参数初始化将能够实现协作知识和语义知识之间的隐式交互,从而提升CTR性能,而无需更改CTR模型结构或增加额外的推理成本:
对于这两种微调策略,在估计点击概率时应用二元交叉熵损失。
4.实验
4.1实验设置
数据集:MovieLens-1M、BookCrossing、Amazon-Toys 和 GoodReads
评估指标:AUC和Log Loss
基线:
-
传统的CTR模型:FM、DNN、DeepFM、xDeepFM、PNN、DCN、AutoInt、FiGNN、FGCNN和 DCNv2。
-
基于PLM的CTR模型:CTR-BERT、P5、PTab和CTRL。
实现细节:选择DCNv2作为CTR模型,RoBERTa-base作为预训练语言模型。
4.2性能试验
结论:
-
传统CTR模型的性能显著优于基于PLM的CTR模型,除了CTRL。这表明特征交叉模式中嵌入的协作信息对CTR预测至关重要。
-
CTRL在所有基线模型中表现最佳。CTRL采用基于CLIP的框架,并通过对比预训练将PLM中的语义知识提炼到CTR模型中。
-
ClickPrompt_with PLM在所有基线模型中实现了显著的性能提升,验证了协作知识和语义知识之间的显式对齐和交互的有效性。
-
ClickPrompt_w/o PLM性能仅次于ClickPrompt_with PLM,提高了预测准确性,同时没有增加推理延迟。
4.3模型兼容性
为了研究模型兼容性,本文在CTR模型和PLM方面的不同主干上应用了ClickPrompt框架。对于CTR模型,选择DCNv2、AutoInt和DNN。对于PLM,选择TinyBERT (14.5M)、RoBERTa-base(125M)和 RoBERTa-large(335M)。
结论:
-
ClickPrompt在所有基础模型上相对于原始CTR模型实现了显著提升,这验证了其在CTR模型和PLM之间的优越模型兼容性。
-
随着PLM模型规模的增加,ClickPrompt对原始CTR模型的性能提升逐渐增加。因为较大的PLM拥有更广泛的开放世界知识,有助于语义信号与协作信号之间的融合和对齐。
-
更大规模的PLM并不一定会导致CTR预测性能的成比例改善。因此,考虑训练开销,建议使用RoBERTa-base作为ClickPrompt的更合适和经济的选择。
4.4消融实验
本节主要分析提示策略以及协作与语义知识融合策略的影响。选择DCNv2、AutoInt和DNN作为基础CTR模型,并选择RoBERTa-base作为PLM基础。
4.4.1提示策略
本文比较了图3所示的两种不同的提示策略,结果如表3。
结论:
逐层提示策略的表现优于不使用逐层提示的策略。如果提示向量仅放置在浅层输入层,模型的协作知识可能在PLM的前向传播过程中被淹没,从而导致与语义知识的不平衡交互,最终造成性能下降。
4.4.2协作和语义知识融合策略
协作知识和语义知识之间的交互和对齐有两个关键技术点:
(1)从模型架构的角度来看,分层软提示是CTR模型和PLM之间显式交互的桥梁。
(2)从学习策略的角度来看,PA-MLM预训练任务中,PLM提取并合并嵌入提示向量中的有用协作信息,从而产生细粒度的对齐。
三个变体:
-
没有提示
-
没有预训练
-
两者都没有
结论:
删除提示或预训练后,性能下降。这表明协作知识和语义知识之间的显式交互和细粒度对齐可以更好地从两种输入模式中提取和融合信息,从而提高点击率预测性能。
4.5长尾分析
根据用户和项目在训练集中出现的频率排序。频率排在后10%的被归类为长尾低频用户和项目。
结论:
-
长尾低频用户或项目可能会导致传统的CTR 模型性能显著下降。
-
在长尾问题更严重的情况下(例如,用户和项目都是长尾的子集),ClickPrompt 可以比主干 CTR 模型带来显着更大的改进。这证实了ClickPrompt在解决推荐的冷启动或长尾问题方面是有效的。
5.总结
本文提出了一种新颖的模型无关框架ClickPrompt,其中CTR模型充当PLM的软提示生成器。设计了一种预训练-微调方案,以实现来自独热ID模态的协作知识与来自文本模态的语义知识之间的显式互动和对齐,从而显著提高CTR预测性能。此外,提供了另一种轻量级的微调策略,仅训练CTR模型以用于下游任务,而不使用PLM,从而有效解决推理效率问题。对四个真实世界数据集的广泛实验验证了ClickPrompt相较于基线模型的优越预测性能和模型兼容性。
相关文章:
论文笔记-WWW2024-ClickPrompt
论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…...
VTK中对于相机camera的设置
1. 相机的核心属性 在 VTK 中,vtkCamera 的核心属性有默认值。如果你不设置这些属性,相机会使用默认值来渲染场景。 Position(默认值:(0, 0, 1)): 默认情况下,相机位于 Z 轴正方向的 (0, 0, 1)…...
小程序解决大问题-物流系统磁盘爆满问题处理
晚上七点,煤矿调运的物流调度系统突然磁盘报名导致服务崩溃。系统用的是微服务,没有详细操作说明,也不敢动,运煤车辆排起了长队,只能联系厂家处理。好在经过30多分钟的处理,服务终于启动,系统运…...
OGRE 3D----5. OGRE和QML事件交互
在现代图形应用程序开发中,OGRE(Object-Oriented Graphics Rendering Engine)作为一个高性能的3D渲染引擎,广泛应用于游戏开发、虚拟现实和仿真等领域。而QML(Qt Modeling Language)则是Qt框架中的一种声明式语言,专注于设计用户界面。将OGRE与QML结合,可以充分利用OGR…...
docker搭建nginx
一. 直接启动nginx镜像 1. 下载nginx镜像 docker pull nginx 2. 运行镜像 docker run -p 8080:80 --name web -d nginx 3. 网址查看 xx.xx.xx.xx:8080 二. 挂在文件启动nginx镜像 1. 拷贝docker文件到本地 docker cp web:/etc/nginx/nginx.conf /root/data/config/nginx…...
Qt之样式表设置总结。。。持续更新
参考文章链接如下: Qt样式表之一:Qt样式表和盒子模型介绍 Qt样式表之二:QSS语法及常用样式 Qt样式表之三:实现按钮三态效果的三种方法 Qt样式表之一:QSS名词解释 Qt样式表之二:常用控件qss Qt样式表之三:QSS奇技淫巧 样式表介绍 Qt样式表是一个可以自定义部件外观的十…...
若依项目源码阅读
源码阅读 前端代码分析 代码生成器生成的前端代码有两个,分别是course.js用于向后端发送ajax请求的接口代码,另一个是index.vue,用于在浏览器展示课程管理的视图组件。前端的代码是基于vue3elementplus。 template用于展示前端组件别的标签…...
Ubuntu20.04运行R-VIO2
目录 1.环境配置2.构建项目3. 运行 VIO 模式4.结果图 1.环境配置 CMakeLists.txt中 C 使用 14、opencv使用4 2.构建项目 克隆代码库: 在终端中执行以下命令克隆项目:git clone https://github.com/rpng/R-VIO2.git编译项目: 使用 catkin_m…...
【Python运维】容器管理新手入门:使用Python的docker-py库实现Docker容器管理与监控
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着容器技术的广泛应用,Docker已经成为开发和运维中的标准工具之一。使用Python语言管理Docker容器,不仅可以自动化繁琐的容器操作,还能…...
SQL基础入门——SQL基础语法
1. 数据库、表、列的创建与管理 在SQL中,数据库是一个数据的集合,包含了多个表、视图、索引、存储过程等对象。每个表由若干列(字段)组成,表中的数据行代表记录。管理数据库和表的结构是SQL的基础操作。 1.1 创建数据…...
Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组
一、回顾统计函数 1、使用SUMIF函数 sumif(条件区域,求和条件,求和区域) 2、使用SUMIFS函数 SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...) 二、认识数组 1、数组生成原理 所谓数组,是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…...
第二节——计算机网络(四)物理层
车载以太网采用差分双绞线车载以太网并未指定特定的连接器,连接方式更为灵活小巧,能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。车载以太网物理层需满足车载环境下更为严格的EMC要求,100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传…...
【接口封装】——11、Qt 的单例模式
宏定义: Q_GLOBAL_STATIC(NotifyManager,theInstance) 函数定义: class NotifyManager : public QObject {Q_OBJECTpublic:NotifyManager(QObject *parent nullptr);~NotifyManager();static NotifyManager*getInstance(); //单例模式 } 源代码&#…...
理解字母形状,从而获得含义
英文字母,都是象形符号,所以,理解其形象,所象之形,是一项重要的工作,和非常有意义事情。也是我们快速记住大量单词,将单词从底层逻辑开始理清,融会贯通扩展记忆容量的重要办法之一。…...
redis揭秘-redis01-redis单例与集群安装总结
文章目录 【README】【1】安装单机【1.1】安装环境【1.2】安装步骤 【2】redis集群主从模式配置【2.1】集群架构【2.2】redis集群主从模式搭建步骤【2.3】redis集群主从模式的问题(单点故障问题) 【3】redis集群哨兵模式配置【3.1】集群架构【3.2】redis…...
mini-spring源码分析
IOC模块 关键解释 beanFactory:beanFactory是一个hashMap, key为beanName, Value为 beanDefination beanDefination: BeanDefinitionRegistry,BeanDefinition注册表接口,定义注册BeanDefinition的方法 beanReference:增加Bean…...
RVO动态避障技术方案介绍
原文:RVO动态避障技术方案介绍 - 哔哩哔哩 我们在开发游戏的时候经常会遇到这样的问题,当我们寻路的时候,其它人也在寻路,如何避免不从其它人的位置穿过。这个叫做动态避障,目前主流的解决方案就是RVO。本节我们来介绍…...
HTML CSS JS基础考试题与答案
一、选择题(2分/题) 1.下面标签中,用来显示段落的标签是( d )。 A、<h1> B、<br /> C、<img /> D、<p> 2. 网页中的图片文件位于html文件的下一级文件夹img中,…...
【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现
代码主要实现了以下功能: 二叉树相关数据结构定义 定义了二叉树节点结构体 BiTNode,包含节点数据值(字符类型)以及指向左右子树的指针。 定义了顺序栈结构体 SqStack,用于存储二叉树节点指针,实现非递归遍历…...
MySQL Workbench 数据库建模详解:从设计到实践
目录 数据库建模基础概念MySQL Workbench 简介与安装 什么是 MySQL Workbench?安装与环境配置 MySQL Workbench 数据库建模功能详解 EER 图(实体关系图)数据库反向工程数据库正向工程模型同步与版本管理 MySQL Workbench 数据库建模实战教程…...
【字体】Fire Code连字效果开启
Vscode 开启方法 1、设置字体Fire Code 放在最前面的即可: 2、启用连字 继续往下找到“在 settings.json 中编辑”,然后设置"editor.fontLigatures": true : 保存即可。 Sublime 开启方法 设置中设置字体后,启…...
springboot kafka在kafka server AUTH变动后consumer自动销毁
前言 笔者使用了kafka用来传输数据,笔者在今年10月写了文章,怎么使用配置化实现kafka的装载:springboot kafka多数据源,通过配置动态加载发送者和消费者-CSDN博客 不过在实际运行中,kafka broker是加密的,…...
第六届国际科技创新(IAECST 2024)暨第四届物流系统与交通运输(LSTT 2024)
重要信息 会议官网:www.lstt.org 大会时间:2024年12月6-8日 大会地点:中国-广州 简介 第六届国际科技创新暨第四届物流系统与交通运输国际(LSTT 2024)将于2024年12月6-8日在广州举办,这是一个集中探讨…...
【Vue3】【Naive UI】< a >标签
【Vue3】【Naive UI】< a >标签 超链接及相关属性其他属性 【VUE3】【Naive UI】<NCard> 标签 【VUE3】【Naive UI】<n-button> 标签 【VUE3】【Naive UI】<a> 标签 <a> 标签HTML中的一个锚&…...
Fortran mpi在Linux的安装
最近编译一个程序需要需要 Fortran mpi 编译器,则需要安装 Fortran编辑器和MPI库,以下是具体的安装步骤: 一、安装 Fortran 编译器(gfortran) 在conda环境中安装: conda install -c conda-forge gfortra…...
蓝桥-希尔排序模板题
第一眼看到这个题还在想希尔排序模板不记得了,于是去网上了搜了一个,但是考虑到这种题只看测试点能不能通过,于是用Arrays方法试了一下,发现也可以。 1.希尔排序模板ac代码 package yunkePra;import java.util.Scanner;public cl…...
深入学习指针(5)!!!!!!!!!!!!!!!
文章目录 1.回调函数是什么?2.qsort使用举例2.1使用qsort函数排序整形数据2.2使用sqort排序结构数据 3.qsort函数的模拟实现 1.回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递…...
windows 应用 UI 自动化实战
UI 自动化技术架构选型 UI 自动化是软件测试过程中的重要一环,网络上也有很多 UI 自动化相关的知识或资料,具体到 windows 端的 UI 自动化,我们需要从以下几个方面考虑: 开发语言 毋庸置疑,在 UI 自动化测试领域&am…...
nodejs相关知识介绍
1、nodejs官方文档: https://nodejs.org/zh-cn nodejs可以用nvm进入安装; 2、npm说明: npm官方教程:https://npm.p2hp.com/ npm是 Node.js 的标准包管理器,也就是说nodejs安装好,npm也就安装好了&#…...
How to monitor Spring Boot apps with the AppDynamics Java Agent
本文介绍如何使用 AppDynamics Java 代理监视 Azure Spring Apps 中的 Spring Boot 应用程序。 使用 AppDynamics Java 代理可以: 监视应用程序使用环境变量配置 AppDynamics Java 代理 在 AppDynamics 仪表板中检查所有监视数据 How to monitor Spring Boot app…...
安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本
安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本。 原因是:当前操作系统版本为Windows Server 2016 Standard版本,其自带的Microsoft .NET Framework 版本为4.6太低,不满足要求。 根据报错的提示,点击链接…...
TypeScript核心语法(5)——函数
简介 函数的类型声明,需要在声明函数时,给出参数的类型和返回值的类型。 function hello(a: string): void {console.log("hello " txt); } 上面示例中,函数hello()在声明时,需要给出参数a的类型(stri…...
【MyBatis】验证多级缓存及 Cache Aside 模式的应用
文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口, 采用 Redis 会引入什么问题?万一遇到需强一致场景&#x…...
ARIMA-神经网络混合模型在时间序列预测中的应用
ARIMA-神经网络混合模型在时间序列预测中的应用 1. 引言 1.1 研究背景与意义 时间序列预测在现代数据科学中扮演着越来越重要的角色。从金融市场的价格走势到工业生产的需求预测,从气象数据的天气预报到用电量的负荷预测,时间序列分析无处不在。传统的统计方法和现代深度学习…...
Scala关于成绩的常规操作
score.txt中的数据: 姓名,语文,数学,英语 张伟,87,92,88 李娜,90,85,95 王强,78,90,82 赵敏,92,8…...
【Maven】项目创建
3. Maven的应用 本章主要内容: 使用 Maven 创建 JavaSE 项目使用 Maven 创建 JavaWeb 项目,在本地部署 Tomcat 测试导入 Maven 项目 3.1 基于Maven开发JavaSE的项目 3.1.1 流程 1、File—>new—>Project—>Empty Project Location࿱…...
基于 LlamaFactory 的 LoRA 微调模型支持 vllm 批量推理的实现
背景 LlamaFactory 的 LoRA 微调功能非常便捷,微调后的模型,没有直接支持 vllm 推理,故导致推理速度不够快。 LlamaFactory 目前支持通过 VLLM API 进行部署,调用 API 时的响应速度,仍然没有vllm批量推理的速度快。 …...
Vue进阶之单组件开发与组件通信
书接上篇,我们了解了如何快速创建一个脚手架,现在我们来学习如何基于vite创建属于自己的脚手架。在创建一个新的组件时,要在新建文件夹中打开终端创建一个基本的脚手架,可在脚手架中原有的文件中修改或在相应路径重新创建…...
HCIE IGP双栈综合实验
实验拓扑 实验需求及解法 本实验模拟ISP网络结构,R1/2组成国家骨干网,R3/4组成省级网络,R5/6/7组成数据中 心网络。 配置所有ipv4地址,请自行测试直连。 R1 sysname R1 interface GigabitEthernet0/0/0ip address 12.1.1.1 255.…...
Unity 超链接文本类
注:该脚本在文本显示不全时会有问题。 HyperlinkText.cs using System; using System.Text; using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;namespace MYT…...
Vim小白学习指南
博客 Vim编辑器简介 Vim是一个非常高效的文本编辑器,最初源于Vi编辑器。它以其强大的文本编辑能力和快捷键而闻名于程序员和系统管理员。Vim的特别之处在于它提供了多种模式,每种模式都有不同的功能。 Vim的基本模式 1. 普通模式(Normal …...
【微服务】Nacos配置管理
一、统一配置管理 1、配置统一管理 2、微服务获取配置 ①引入Nacos的配置管理客户端依赖(usersevice下) <!--nacos的配置管理依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-confi…...
从单机缓存到分布式缓存那些事
作者:秦怀 1 缓存前世今生 1.1 故事从硬件开始 Cache 一词来源于 1967 年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义,用于电脑工程领域。当时没有 Cache,CPU 和内存都很慢,CPU 直接访…...
华为新手机和支付宝碰一下 带来更便捷支付体验
支付正在变的更简单。 11月26日,华为新品发布会引起众多关注。发布会上,华为常务董事余承东专门提到,华为Mate 70和Mate X6折叠屏手机的“独门支付秘技”——“碰一下”,并且表示经过华为和支付宝的共同优化,使用“碰…...
element ui select绑定的值是对象的属性时,显示异常.
需要声明 value-key"value",如果还不行可能是数据类型不一致数字0和字符串0是不一致的. el-select v-model"value" clearable placeholder"Select" value-key"value" style"width: 240px"><!-- <el-option v-for&…...
基于Springboot开发的时光兼职网
一、功能介绍 时光兼职网包含管理员、用户、商家三个角色以及前后台系统。 前台系统功能 首页、兼职信息推荐、查看更多等 职位申请、申请日期、上传简历、点击下载简历、留言反馈等 个人中心、上传图片、更新信息等 后台系统功能 用户登录: 个人中心、修改密码…...
Vue3 Ts 如何获取组件的类型
vue3 Ts ref 子组件 1、默认写法 typeof:获取ts类型 InstanceType:获取模版的实例 <tempolate><myComponent ref"myCompRef"> </tempolate><script setup lang"ts"> import { ref } from "vue&quo…...
Unity类银河战士恶魔城学习总结(P146 Delete Save file-P147 Encryption of save data删除数据和加密数据)
【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了快速删除存档和加密存档 以下是加密前和加密后的对比 SaveManager.cs using System.Collections; using System.Collection…...
Uniapp 使用自定义字体
技术栈:Uniapp 简介 为了更好的还原UI图片效果,往往需要使用特殊字体,引入字体包。 因实际业务运行平台在微信小程序上,对发布包的项目文件大小有限制,项目中某些比较大的静态资源需要放在服务器上来远程加载&#x…...
Scala
统计成绩练习 1.计算每个同学的总分和平均分 2.统计每个科目的平均分 3.列出总分前三名和单科前三名,并保存结果到文件中 解题思路如下: 1.读入txt文件,按行读入 2.处理数据 (1)计算每个同学的总分…...