CN116684491A - 一种基于深度学习的动态缓存方法、装置、设备和介质 - Google Patents

一种基于深度学习的动态缓存方法、装置、设备和介质 Download PDF

Info

Publication number
CN116684491A
CN116684491A CN202310768297.5A CN202310768297A CN116684491A CN 116684491 A CN116684491 A CN 116684491A CN 202310768297 A CN202310768297 A CN 202310768297A CN 116684491 A CN116684491 A CN 116684491A
Authority
CN
China
Prior art keywords
data
cache
caching
model
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310768297.5A
Other languages
English (en)
Inventor
王振雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Zhejiang Zeekr Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Geely Holding Group Co Ltd, Zhejiang Zeekr Intelligent Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202310768297.5A priority Critical patent/CN116684491A/zh
Publication of CN116684491A publication Critical patent/CN116684491A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例提供一种基于深度学习的动态缓存方法、装置、设备和介质,其中方法包括:获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据;将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略;根据所述缓存策略对当前的服务器缓存策略进行调整。本方法能够实现自适应地随着当前访问数据的变化调整服务器的缓存策略,从而提高缓存效率和缓存命中率。

Description

一种基于深度学习的动态缓存方法、装置、设备和介质
技术领域
本公开涉及深度学习技术领域,具体涉及一种基于深度学习的动态缓存方法、装置、设备和介质。
背景技术
在互联网业务的技术实现中,缓存是提高网络性能和用户体验的重要技术。缓存不仅可以减少网络延迟,加快网站和应用程序的响应速度,还可以减轻网络负载。
然而,传统的缓存技术存在一些问题。例如,传统缓存技术通常使用静态的规则来控制缓存操作,很难适应大量、高维度和多样化的数据类型,当环境变化时当前的缓存策略难以适应变化的数据流和应用场景。这使得网站和应用程序的服务器的缓存效率低、缓存命中率差,无法及时响应用户的访问请求。
发明内容
有鉴于此,本公开实施例提供至少一种基于深度学习的动态缓存方法、装置、设备和介质。
具体地,本公开实施例是通过如下技术方案实现的:
第一方面,提供一种基于深度学习的动态缓存方法,所述方法包括:
获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据;
将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略;
根据所述缓存策略对当前的服务器缓存策略进行调整。
结合本公开任一实施方式,所述缓存模型通过以下方式进行训练:
获取历史访问数据,所述历史访问数据包括训练集和验证集;
由所述训练集对初始缓存模型进行训练,得到所述初始缓存模型输出的初始缓存策略;
根据所述初始缓存策略对服务器的缓存方式进行调整;
根据所述验证集对所述服务器调整后的缓存方式进行验证,得到缓存命中结果;
根据所述缓存命中结果调整所述初始缓存模型的参数,直到满足训练结束条件,得到训练好的缓存模型。
结合本公开任一实施方式,所述获取历史访问数据,包括:
通过数据采集得到历史访问原始数据,所述历史访问原始数据包含以下至少一项:所述服务器中的请求日志数据;用户行为数据;所述服务器的系统性能数据;其中,所述用户行为数据用于表示用户的访问模式;
对所述历史访问原始数据进行第一预处理,得到向量形式的历史访问数据,所述第一预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化;数据分割。
结合本公开任一实施方式,所述获取当前访问数据,包括:
通过数据采集得到当前访问原始数据,所述当前访问原始数据包含以下至少一项:当前所述服务器中的请求日志数据;当前用户行为数据;当前所述服务器的系统性能数据;
对所述当前访问原始数据进行第二预处理,得到向量形式的当前访问数据,所述第二预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化。
结合本公开任一实施方式,所述缓存模型包含:变分自编码器和分类器;
所述将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略,包括:
由所述变分自编码器对所述当前访问数据进行特征提取,得到特征向量;
由所述分类器对所述特征向量进行分类,得到缓存策略,所述缓存策略用于指示是否缓存用户访问请求的响应结果。
结合本公开任一实施方式,所述获取当前访问数据,包括:
定时获取预设时间段的当前访问数据;
所述将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略,包括:
将预设时间段的当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的新的缓存策略;
所述根据所述缓存策略对当前的服务器缓存策略进行调整,包括:
对所述新的缓存策略中目标访问请求对应的响应结果进行缓存,得到缓存结果。
结合本公开任一实施方式,在所述根据所述缓存策略对当前的服务器缓存策略进行调整之后,所述方法还包括:
响应于接收到用户访问请求,判断所述服务器的缓存结果中是否存在所述用户访问请求对应的缓存结果标识;
若存在,则从所述缓存结果中调用所述缓存结果标识对应的响应结果以响应所述用户访问请求。
第二方面,提供一种基于深度学习的动态缓存装置,所述装置包括:
数据获取模块,用于获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据;
策略预测模块,用于将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略;
动态缓存模块,用于根据所述缓存策略对当前的服务器缓存策略进行调整。
第三方面,提供一种电子设备,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现本公开任一实施例所述的基于深度学习的动态缓存方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的基于深度学习的动态缓存方法。
本公开实施例提供的基于深度学习的动态缓存方法根据当前访问数据生成对应的缓存策略,以使服务器能够自适应地调整缓存策略以适应变化的数据流和应用场景,可以更好地适应大量、高维度和多样化的数据类型,从而提高缓存效率和缓存命中率,以最大限度地利用服务器的缓存资源,同时降低网络延迟和负载。
附图说明
为了更清楚地说明本公开一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本公开至少一个实施例示出的一种基于深度学习的动态缓存方法的流程图;
图2是本公开至少一个实施例示出的另一种基于深度学习的动态缓存方法的流程图;
图3是本公开至少一个实施例示出的一种基于深度学习的动态缓存的实现流程的示意图;
图4是本公开至少一个实施例示出的一种原始数据的采集和存储方式的示意图;
图5是本公开至少一个实施例示出的一种URL字符串的转换示意图;
图6是本公开至少一个实施例示出的一种预处理后的数据的存储方式的示意图;
图7是本公开至少一个实施例示出的一种基于深度学习的动态缓存装置的框图;
图8是本公开至少一个实施例示出的一种电子设备的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,图1是本公开至少一个实施例示出的一种基于深度学习的动态缓存方法的流程图,该方法可以包括以下步骤:
在步骤102中,获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据。
其中,服务器为用户所使用的网络服务对应的服务器,比如,用户所浏览的网站、所使用的应用程序对应的服务器,在用户使用相关网络服务时需要访问服务器。
当前访问数据可以是当前的预设时间段内的用户对服务器进行访问时用户端和/或服务器端的关联数据,比如,可以是包含服务器的日志记录中的请求日志数据,具体包含用户的请求信息和服务器的响应信息;可以是包含用户行为数据,具体包含用户对网站、应用程序的历史访问记录;可以是包含服务器的系统性能数据,具体包含服务器的CPU(Central Processing Unit,中央处理器)利用率、内存利用率、磁盘利用率、网络带宽等信息。
在步骤104中,将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略。
缓存模型是预先训练的深度学习神经网络模型,在训练时通过大量的历史访问数据基于深度学习技术来学习不同的数据分布和应用场景,能够适应不同的输入数据并输出针对当前访问数据的缓存策略。
本实施例对于具体的缓存策略不进行限制,缓存策略可以是设定不同的缓存更新模式,缓存读写模式以及缓存替换模式等,比如,强缓存策略,协商缓存策略以及旁路缓存策略,可以是设定缓存服务器的占用数量或者缓存内存的大小,还可以是针对不同的网络请求部署不同的缓存机制,比如,当前访问数据中包含网络请求A和网络请求B,输出的缓存策略可以是对网络请求A的响应结果进行缓存,对于网络请求B的响应结果不进行缓存。
本实施例中,缓存模型可以采用多种网络结构,本实施例对此不进行限制,如CNN(Convolutional Neural Networks,卷积神经网络),RNN(Recurrent Neural Network,循环神经网络)或变换器(Transformer)等。
在步骤106中,根据所述缓存策略对当前的服务器缓存策略进行调整。
当前的服务器缓存策略可以是上述服务器当前所使用的策略,也可以是上述服务器所关联的缓存服务器当前所使用的策略。缓存策略是缓存模型针对当前访问数据而输出的,使用缓存策略对当前的服务器缓存策略进行调整,实现服务器缓存策略的动态更新,以应对时刻变化的网络环境。
比如,在缓存策略和当前的服务器缓存策略相同时,维持当前的服务器缓存策略,在缓存策略和当前的服务器缓存策略有不同之处时,将当前的服务器缓存策略中相应的部分调整为与缓存策略一致,在缓存策略相较于当前的服务器缓存策略有新增的内容时,将该新增的内容部署至当前的服务器缓存策略。
需要说明的是,本实施例中的基于深度学习的动态缓存方法可以是在服务器端或者缓存服务器端执行,缓存模型的训练过程可以是在服务器端或者缓存服务器端或者其他设备中进行。
本公开实施例提供的基于深度学习的动态缓存方法,将深度学习技术应用于缓存技术中,深度学习技术可以自适应地学习访问数据中的数据分布和应用场景,根据当前访问数据生成对应的缓存策略,以使服务器能够自适应地调整缓存策略以适应变化的数据流和应用场景,可以更好地适应大量、高维度和多样化的数据类型,从而提高缓存效率和缓存命中率,以最大限度地利用服务器的缓存资源,同时降低网络延迟和负载。该方法可以广泛应用于各种网络应用场景,如Web(World Wide Web,广域网)服务、移动应用、物联网等。
如图2所示,图2是本公开至少一个实施例示出的另一种基于深度学习的动态缓存方法的流程图,该方法更详细地说明了动态缓存的实现过程,如图3所示,实现过程由五个关键部分组成,该方法可以包括以下步骤:
1、数据采集
在步骤202中,通过数据采集得到历史访问原始数据。
其中,历史访问原始数据包含以下至少一项:所述服务器中的请求日志数据;用户行为数据;所述服务器的系统性能数据;其中,所述用户行为数据用于表示用户的访问模式。
为了训练和评估基于深度学习的缓存模型,需要采集以下数据:
请求日志数据:包含用户的请求信息和服务器的响应信息。请求信息包括请求的URL(Universal Resource Locator,统一资源定位符)、请求时间、请求类型等,响应信息包括响应状态码、响应时间等。可以通过服务器的日志记录来收集这些信息。
用户行为数据:包含用户的历史访问记录。历史访问记录包括用户的请求时间、请求类型、请求URL等信息。可以通过网站或应用程序的访问日志和埋点来收集这些信息。其中,埋点指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。比如,用户对于某个图标点击次数、浏览某个页面的时长等等。
系统性能数据:包含服务器的CPU利用率、内存利用率、磁盘利用率、网络带宽等信息。可以通过系统监视工具或性能监视器来收集这些信息。
需要说明的是,考虑到用户在使用终端发起网络请求时存在网络故障、设备卡顿以及其他特殊情况,上述请求日志数据和用户行为数据均对请求信息进行了采集可以保障完整地采集到请求信息,避免遗漏。
采集上述数据的方法可以是使用日志文件、监控工具或者埋点,可以通过数据获取任务获取日志等信息将数据提取并存储在数据库或文件系统中,以供后续的数据预处理、特征提取和模型训练等操作使用。在采集和处理数据的过程中,需要注意数据隐私和安全问题,如去除敏感信息、数据加密等,并在用户同意的情况下进行数据采集和处理,以保障用户和系统的安全。
对于上述采集的数据需要存储,存储涉及到原始数据存储、预处理后的数据存储,比如,埋点得到的数据可以采用Kafka、Hdfs、Hbase等方式进行存储,日志数据可以是使用OLAP(Online Analytical Processing,联机分析处理)数据库ClickHouse进行存储,系统性能数据也可以采用OLAP数据库ClickHouse进行存储。示例性的,如图4所示,图4示出了一种原始数据的采集和存储的方式。
2、数据预处理
在步骤204中,对所述历史访问原始数据进行第一预处理,得到向量形式的历史访问数据。
其中,第一预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化;数据分割。在一个例子中,按照数据清洗、数据格式转换、数据特征提取、数据归一化以及数据分割的顺序进行预处理,还可以调换其中的处理步骤顺序,比如,先进行数据格式转换再进行数据清洗。
预处理是指将原始数据进行清洗、转换、归一化等降噪处理操作,以便于后续的模型训练等操作使用。示例性的,第一预处理的各步骤如下:
数据清洗:将原始数据中的异常值、重复值、缺失值等数据进行清洗。例如,对于请求日志数据,可以去除无效的请求、重复的请求、错误的请求等。
数据转换:将原始数据转换为模型可以处理的格式,比如,将日志中的时间戳转换为日期格式、将文本数据转换为向量形式等,又比如,对于用户行为数据或请求日志数据中的请求信息,可以将请求时间转换为日期格式,并将请求URL转换为向量形式,示例性地,可以把一个URL通过一些规则或者算法计算得到一个结果标识,如图5是一个简单的把URL转换为向量形式的例子,其中,通过规则运算,把性质为善意的URL标记为0,即结果标识为0,性质为恶意的URL标记为1,即结果标识为1。
特征提取:从原始数据中提取有用的特征,用于训练模型或进行预测。例如,从请求日志数据中提取出请求的类型、请求的URL等特征,具体地,可以将URL转换为向量形式;或者可以将URL中主机名、端口号、路径等关键信息提取;还可以用聚类算法将URL按照相似性进行分组,不同组用不同的类别标识。提取到的特征不仅可以用于训练缓存模型学习大量、高维度和多样化的数据分布和应用场景,还可以用于训练缓存模型学习用户的访问模式。
在训练模型时,访问模式是一个非常重要的特征,可以通过用户行为数据和请求日志数据进行提取和建模。访问模式是指用户在访问某个网站或应用程序时表现出来的行为方式和习惯,通常包括一组行为习惯,例如用户喜欢访问网站的哪些页面、以何种顺序访问这些页面、访问这些页面的时间和时间段、使用的设备和浏览器等。通过分析用户的访问模式,可以帮助网站或应用程序的运营者更好的了解用户需求并实现个性化服务,在本实施例中,由于提取到的特征隐含了用户的访问模式,可以使利用该特征训练出的缓存模型在预测缓存车辆时能够基于用户的行为习惯进行预测,从而预测得到的缓存策略更为有效。
数据归一化:不同特征的数据大小不同,而缓存模型所输入的数据需要统一。因此,需要对特征数据进行归一化处理,使得输入缓存模型的特征数据处于同一数量级内。本实施例对于归一化所使用的方式不进行限制,比如,可以使用最大最小归一化,z-score标准化等方式。
数据分割:在训练模型时,可以将数据集进行划分,以用于不同的训练阶段,比如,可以分为训练集和验证集,还可以分为训练集、验证集和测试集。这些数据集可以是随机分布得到,以保证训练模型的有效性与预测性。
另外,还需要对请求信息的响应结果进行标签化处理,例如,将响应结果分为“命中缓存”和“未命中缓存”两类。
最终得到的数据在输入缓存模型之前,都需要转换为向量形式,比如可以使用词袋模型或者词嵌入模型将上述数据转换为向量形式的历史访问数据。
预处理后到历史访问数据可以存储到数据库中,比如,可以根据数据类型、数据量大小等进行评估选择所使用的数据库,示例性的,如图6所示,图6示出了一种对原始数据进行预处理后的数据的存储方式,其中,将预处理后的数据基于Nosql和OLAP的数据库Hbase和ClickHouse中。
3.模型构建:
本步骤设计一个基于深度学习算法的缓存模型来对用户的访问模式进行学习和预测,以提高缓存的效率。比如,把用户的请求信息等转换成向量形式,输入到缓存模型中,以使缓存模型会学习用户的历史访问模式,并生成缓存策略,该缓存策略可以是一个二元分类结果,表示该请求及其响应结果是否会被缓存,然后服务器按照该缓存策略进行缓存操作。比如,可以使用深度学习框架Tensor Flow,构建基于深度学习的缓存模型,包括访问模型和预测模型。
在设计深度学习模型时,考虑以下几个因素:
a.输入:基于深度学习的模型通常需要定义输入数据的形状和类型,比如,输入向量的维度、输入图像的大小等,对于该缓存模型而言,输入可以定义为请求信息的向量(比如请求中URL、参数转换后的向量)、用户行为数据向量、监控数据向量(比如系统性能数据转换后的向量)等。
b.输出:输出是缓存策略,比如,可以是不同的缓存更新模式,缓存读写模式以及缓存替换模式等,可以是缓存服务器的占用数量或者缓存内存的大小,还可以是针对不同的网络请求部署不同的缓存机制,示例性的,输出是一个二元分类结果,即命中缓存或未命中缓存,或者是否缓存,以表示是否对网络请求及其对应的响应结果进行缓存。
当后续模型训练采用监督学习的方式进行训练时,不同的输出类型对应有相应的训练标签,训练标签用于标注不同输入数据所对应的缓存策略,比如,输出是缓存更新模式时,训练集中不同历史访问数据对应的标签为人工标注或者自动标注的缓存更新模式;输出是二元分类结果时,训练集中不同历史访问数据对应的标签为人工标注或者自动标注的缓存或者不缓存。在确定训练集中不同历史访问数据的训练标签时,可以综合考虑请求信息中URL的使用频率、使用时段、访问量等信息,以使训练标签更符合实际的网络环境和用户习惯,训练出的缓存模型预测得到的缓存策略更为有效。
当后续模型训练采用无监督学习的方式进行训练时,则可以不设置训练标签。
c.模型结构:本实施例不限制缓存模型的网络结构,比如,可以使用多层感知机或循环神经网络等模型结构,具体根据实际情况进行选择。
示例性的,为了实现具有一定泛化能力的动态缓存技术,考虑使用VAE(Variational Auto Encoder,变分自编码器)作为缓存模型的基础结构,再结合其他的动态调整机制完成动态缓存任务。变分自编码器是一种无监督学习的神经网络模型,可以学习输入数据的压缩表示,在编码过程中通过隐变量的采样实现特征的抽取和生成。VAE具有良好的泛化性能和样本生成能力,因此可以作为动态缓存技术的核心构架。除了VAE之外,还可以结合其他的动态调整机制来实现动态缓存技术。例如,在VAE的基础上可以引入注意力机制、增强学习等机制,动态调整网络结构和参数,以使模型能够适应不同的输入数据,提高缓存命中率和准确性。
需要说明的是,需要根据实际场景来选择模型结构,并可以在实验中进行持续的优化和调试,以完成高效、精准的预测任务。
4.模型训练:
在步骤206中,根据历史访问数据训练得到缓存模型。
本实施例中,缓存模型通过以下方式进行训练:
获取历史访问数据,所述历史访问数据包括训练集和验证集;
由所述训练集对初始缓存模型进行训练,得到所述初始缓存模型输出的初始缓存策略;
根据所述初始缓存策略对服务器的缓存方式进行调整;
根据所述验证集对所述服务器调整后的缓存方式进行验证,得到缓存命中结果;
根据所述缓存命中结果调整所述初始缓存模型的参数,直到满足训练结束条件,得到训练好的缓存模型。
其中,可以从数据库中获取先前预处理得到的历史访问数据。训练模型其实就是把训练集输入到选择的模型中,让深度学习算法自动学习访问日志数据和用户行为数据中的访问模式,以便于预测缓存策略,比如未来的请求是否需要被缓存。系统性能数据则用于辅助缓存模型学习当前服务器或者缓存服务器的运行状态,在系统性能好的时候缓存更多的数据,而在系统性能差的时候释放缓存占用的内存和计算资源,以最大限度地利用缓存资源,优化服务器缓存策略。
比如,在缓存策略用于表示是否对网络请求的响应结果进行缓存的情况下,将训练集输入初始缓存模型得到初始缓存策略,初始缓存策略中表示对于历史访问数据中100个网络请求中的指定的50个网络请求的响应结果进行缓存,然后根据初始缓存策略对服务器的缓存方式进行调整,即服务器按照初始缓存策略的指示对指定的50个网络请求的响应结果进行缓存,得到缓存结果,该缓存结果包含指定的50个网络请求的响应结果;然后根据验证集对服务器调整后的缓存方式进行验证,即判断验证集中的各个网络请求是否命中缓存结果,如果验证集中的网络请求在缓存结果中存在对应的响应结果,即命中缓存,从而得到缓存命中结果,缓存命中结果可以是包含缓存命中次数,缓存命中率等;根据缓存命中结果调整所述初始缓存模型的参数,循环迭代进行上述步骤,直到满足训练结束条件,得到训练好的缓存模型,本实施例对于训练结束条件不进行限制,训练结束条件可以是缓存命中率达到预设阈值,迭代次数达到预设次数,网络损失值低于预设损失值等。
在训练过程中,将训练集中已经预处理的历史访问数据输入初始缓存模型,刚开始训练的时候初始缓存模型输出的初始缓存策略并不一定是合适的缓存策略,可以使用反向传播算法来不断优化模型参数,比如,在采用监督学习的训练方式时,利用训练标签中的缓存策略和初始缓存策略之间的差异确定损失函数,并计算得到网络损失,通过不断地迭代训练使得网络损失越来越小,输出的缓存策略逐渐接近最优的缓存策略。优化的过程就是寻找一个最优的模型参数,使得模型在训练集上的误差或者网络损失最小。为了优化模型,可以使用一些优化算法,比如,SGD(stochastic gradient descent,随机梯度下降方法)或Adam(Adaptive Moment Estimation,自适应时刻估计方法)等。
在训练过程中,还需要对模型进行验证,以确保模型不会过拟合。验证的方法可以是留出法(holdout),在历史访问数据分为训练集和验证集的情况下,使用验证集中的数据进行验证,在其他例子中,还可以使用交叉验证法(cross-validation),将历史访问数据分为多个子集进行验证。
在其他实施例中,模型的训练和验证可以是包括以下几个步骤:
a.划分数据集:将已有的数据集划分为训练集、验证集和测试集。其中训练集用于模型的训练,验证集用于模型的调参和选择,测试集用于最终评估模型的性能。
b.模型评估指标的选择:根据任务需求和模型类型,选择适当的评估指标。比如,对于分类任务,使用准确率、精确率、召回率、F1值等指标;对于回归任务,可以使用RMSE(Root Mean Squared Error,均方根误差)、MAE(Mean Absolute Error,平均绝对误差)等指标。
c.模型验证和调参:使用训练集和验证集对模型进行训练和调参。训练过程中可以使用交叉验证等技术,防止模型出现过拟合的情况。调参的过程中,可以调整模型结构、优化器、学习率、批次大小等参数,以达到更好的性能。
最终,训练得到一个预测准确率较高的基于深度学习的缓存模型,用于学习用户的访问模式输出对应的缓存策略,从而提高缓存的效率。
在其他实施例中,还可以对训练好的缓存模型进行测试,在测试模型时,可以将最新的访问日志数据作为测试集,利用模型对其中的每个网络请求进行预测,在预测结果即缓存策略,预测结果可以被用来决定是否缓存该请求的响应结果。
5.缓存策略应用:
在步骤208中,通过数据采集得到当前访问原始数据。
其中,当前访问原始数据包含以下至少一项:当前所述服务器中的请求日志数据;当前用户行为数据;当前所述服务器的系统性能数据。
当前访问原始数据为当前时间段内用户对服务器进行访问时的关联数据,当前访问原始数据和历史访问原始数据的采集方式相同,这里不再进行赘述。
在步骤210中,对所述当前访问原始数据进行第二预处理,得到向量形式的当前访问数据。
其中,第二预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化。第二预处理中的各项步骤的处理方式和第一预处理相同,这里不再进行赘述,不过由于本步骤为模型应用阶段的步骤,不需要对数据进行划分。
在步骤212中,将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略。
将向量形式的当前访问数据输入预先训练的缓存模型,输出得到针对当前网络环境的缓存策略。
在一实施例中,所述缓存模型包含:变分自编码器和分类器,本步骤包括:由所述变分自编码器对所述当前访问数据进行特征提取,得到特征向量;由所述分类器对所述特征向量进行分类,得到缓存策略,所述缓存策略用于指示是否缓存用户访问请求的响应结果。
变分自编码器对输入的当前访问数据进行编码,在编码过程中通过隐变量的采样实现特征的抽取和生成,得到特征向量,分类器对特征向量进行二元分类,输出缓存策略,缓存策略中可以包含对于当前访问数据中各个用户访问请求的响应结果是否进行缓存的多个指示。
在步骤214中,根据所述缓存策略对当前的服务器缓存策略进行调整。
本实施例的基于深度学习的动态缓存方法支持多种缓存策略和管理方式,根据训练后的模型,自适应地调整缓存策略,并缓存适当的网络请求及其响应数据。
比如,在缓存策略中包含对于当前访问数据中各个用户访问请求的响应结果是否进行缓存的多个指示的情况下,按照指示对于当前访问数据中每个用户访问请求对应的响应结果进行缓存或者不缓存,其中,指示为缓存的响应结果缓存至缓存结果中。又比如,在缓存策略中包含对于某种类型的访问请求的响应结果进行缓存的指示的情况下,当服务器在以后接收到该类型的访问请求时,反馈响应结果的同时将该响应结果缓存至缓存结果中。
在步骤216中,响应于接收到用户访问请求,判断所述服务器的缓存结果中是否存在所述用户访问请求对应的缓存结果标识。
在步骤218中,若存在,则从所述缓存结果中调用所述缓存结果标识对应的响应结果以响应所述用户访问请求。
当服务器接收到用户访问请求后,可以先判断缓存结果中是否存在对应的缓存结果标识,如果存在,说明先前的缓存模型所预测的缓存策略中已预先缓存该用户访问请求对应的响应结果,缓存策略有效,从缓存结果中调用该缓存结果标识对应的响应结果以响应所述用户访问请求。
相较于传统的缓存技术,本实施例的基于深度学习的动态缓存方法采用深度学习技术的缓存模型可以自适应地学习数据分布和应用场景,从而自适应地调整缓存策略,具有自适应;缓存模型不受数据类型的限制,支持多种数据类型,可以应用于多种应用场景;通过收集和预处理网络数据流,并使用深度学习框架构建和训练缓存模型,以学习数据分布和应用场景,从而优化缓存策略,提高缓存效率和命中率,能够最大限度地利用缓存资源,同时降低网络延迟和负载,加快网络响应。
以下示例将训练好的模型部署到实际应用中时,存在的两种应用方式:
a、运用于服务器的生产业务/接口,比如,当服务器收到网络请求时,查询服务器的缓存结果,若缓存结果存在该网络请求对应的缓存结果标识,则调取缓存结果标识对应的响应结果以反馈该网络请求。若不存在,还可以调用缓存模型,执行缓存模型中的逻辑,得到缓存策略,缓存策略包含是否缓存该网络请求对应的响应结果的指示。
b、周期性运行服务器的缓存预测任务,定时获取预设时间段的当前访问数据;将预设时间段的当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的新的缓存策略;对所述新的缓存策略中目标访问请求对应的响应结果进行缓存,得到缓存结果。
由于网络环境一直在变化,可以周期性运行基于深度学习的动态缓存方法对当前的服务器缓存策略进行周期性的更新,以使服务器缓存策略保持适应变化的数据流和应用场景。比如,定时从预处理好的数据集中获取预设时间段内的访问数据执行模型或者训练新的模型,输出预测结果,预测结果包含是否需要对某些响应结果进行缓存的新的缓存策略,按照预测结果中缓存策略进行缓存、更新,业务实际调用中即可根据请求信息从缓存结果中获取已缓存的响应结果。
示例性的,本公开还提供了上述实施例中缓存模型训练过程的代码示例:
#加载训练集
train_data=load_train_data()
#数据预处理,例如文本分词、词向量化
train_data=preprocess(train_data)
#构建模型
model=build_model()
#编译模型,设置优化器、损失函数、评价指标等参数
model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
#设置训练参数,如训练轮数、批次大小、是否进行数据增强等
batch_size=32
epochs=10
data_augmentation=True
#数据增强,例如随机旋转、翻转、缩放等
#模型训练,使用生成器输入训练数据
model.fit(datagen.flow(train_data),epochs=epochs,steps_per_epoch=len(train_data)//batch_size)
else:
#模型训练,直接输入训练数据
model.fit(train_data,epochs=epochs,batch_size=batch_size)
#模型评估,使用测试集进行评估
test_data=load_test_data()
test_data=preprocess(test_data)
score=model.evaluate(test_data)
print('Test accuracy:',score[1])
如图7所示,图7是本公开至少一个实施例示出的一种基于深度学习的动态缓存装置的框图,所述装置包括:
数据获取模块71,用于获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据;
策略预测模块72,用于将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略;
动态缓存模块73,用于根据所述缓存策略对当前的服务器缓存策略进行调整。
在一些可选的实施例中,所述缓存模型通过以下方式进行训练:
获取历史访问数据,所述历史访问数据包括训练集和验证集;
由所述训练集对初始缓存模型进行训练,得到所述初始缓存模型输出的初始缓存策略;
根据所述初始缓存策略对服务器的缓存方式进行调整;
根据所述验证集对所述服务器调整后的缓存方式进行验证,得到缓存命中结果;
根据所述缓存命中结果调整所述初始缓存模型的参数,直到满足训练结束条件,得到训练好的缓存模型。
在一些可选的实施例中,所述获取历史访问数据,包括:
通过数据采集得到历史访问原始数据,所述历史访问原始数据包含以下至少一项:所述服务器中的请求日志数据;用户行为数据;所述服务器的系统性能数据;其中,所述用户行为数据用于表示用户的访问模式;
对所述历史访问原始数据进行第一预处理,得到向量形式的历史访问数据,所述第一预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化;数据分割。
在一些可选的实施例中,所述数据获取模块71,具体用于:
通过数据采集得到当前访问原始数据,所述当前访问原始数据包含以下至少一项:当前所述服务器中的请求日志数据;当前用户行为数据;当前所述服务器的系统性能数据;
对所述当前访问原始数据进行第二预处理,得到向量形式的当前访问数据,所述第二预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化。
在一些可选的实施例中,所述缓存模型包含:变分自编码器和分类器;
所述策略预测模块72,具体用于:
由所述变分自编码器对所述当前访问数据进行特征提取,得到特征向量;
由所述分类器对所述特征向量进行分类,得到缓存策略,所述缓存策略用于指示是否缓存用户访问请求的响应结果。
在一些可选的实施例中,所述数据获取模块71,具体用于:定时获取预设时间段的当前访问数据;
所述策略预测模块72,具体用于:将预设时间段的当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的新的缓存策略;
所述动态缓存模块73,具体用于:对所述新的缓存策略中目标访问请求对应的响应结果进行缓存,得到缓存结果。
在一些可选的实施例中,所述动态缓存模块73,还用于:
响应于接收到用户访问请求,判断所述服务器的缓存结果中是否存在所述用户访问请求对应的缓存结果标识;
若存在,则从所述缓存结果中调用所述缓存结果标识对应的响应结果以响应所述用户访问请求。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
本公开实施例还提供了一种电子设备,如图8所示,所述电子设备包括存储器81、处理器82,所述存储器81用于存储可在处理器上运行的计算机指令,所述处理器82用于在执行所述计算机指令时实现本公开任一实施例所述的基于深度学习的动态缓存方法。
本公开实施例还提供了一种计算机程序产品,该产品包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本公开任一实施例所述的基于深度学习的动态缓存方法。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本公开任一实施例所述的基于深度学习的动态缓存方法。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种基于深度学习的动态缓存方法,其特征在于,所述方法包括:
获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据;
将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略;
根据所述缓存策略对当前的服务器缓存策略进行调整。
2.根据权利要求1所述的方法,其特征在于,所述缓存模型通过以下方式进行训练:
获取历史访问数据,所述历史访问数据包括训练集和验证集;
由所述训练集对初始缓存模型进行训练,得到所述初始缓存模型输出的初始缓存策略;
根据所述初始缓存策略对服务器的缓存方式进行调整;
根据所述验证集对所述服务器调整后的缓存方式进行验证,得到缓存命中结果;
根据所述缓存命中结果调整所述初始缓存模型的参数,直到满足训练结束条件,得到训练好的缓存模型。
3.根据权利要求2所述的方法,其特征在于,所述获取历史访问数据,包括:
通过数据采集得到历史访问原始数据,所述历史访问原始数据包含以下至少一项:所述服务器中的请求日志数据;用户行为数据;所述服务器的系统性能数据;其中,所述用户行为数据用于表示用户的访问模式;
对所述历史访问原始数据进行第一预处理,得到向量形式的历史访问数据,所述第一预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化;数据分割。
4.根据权利要求1所述的方法,其特征在于,所述获取当前访问数据,包括:
通过数据采集得到当前访问原始数据,所述当前访问原始数据包含以下至少一项:当前所述服务器中的请求日志数据;当前用户行为数据;当前所述服务器的系统性能数据;
对所述当前访问原始数据进行第二预处理,得到向量形式的当前访问数据,所述第二预处理包含以下至少一项:数据清洗;数据格式转换;数据特征提取;数据归一化。
5.根据权利要求1所述的方法,其特征在于,所述缓存模型包含:变分自编码器和分类器;
所述将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略,包括:
由所述变分自编码器对所述当前访问数据进行特征提取,得到特征向量;
由所述分类器对所述特征向量进行分类,得到缓存策略,所述缓存策略用于指示是否缓存用户访问请求的响应结果。
6.根据权利要求1所述的方法,其特征在于,
所述获取当前访问数据,包括:
定时获取预设时间段的当前访问数据;
所述将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略,包括:
将预设时间段的当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的新的缓存策略;
所述根据所述缓存策略对当前的服务器缓存策略进行调整,包括:
对所述新的缓存策略中目标访问请求对应的响应结果进行缓存,得到缓存结果。
7.根据权利要求1至6任一所述的方法,其特征在于,在所述根据所述缓存策略对当前的服务器缓存策略进行调整之后,所述方法还包括:
响应于接收到用户访问请求,判断所述服务器的缓存结果中是否存在所述用户访问请求对应的缓存结果标识;
若存在,则从所述缓存结果中调用所述缓存结果标识对应的响应结果以响应所述用户访问请求。
8.一种基于深度学习的动态缓存装置,其特征在于,所述装置包括:
数据获取模块,用于获取当前访问数据,所述当前访问数据为用户对服务器进行访问时的关联数据;
策略预测模块,用于将所述当前访问数据输入预先训练的缓存模型,获取所述缓存模型输出的缓存策略;
动态缓存模块,用于根据所述缓存策略对当前的服务器缓存策略进行调整。
9.一种电子设备,其特征在于,所述设备包括存储器、处理器,所述存储器用于存储可在处理器上运行的计算机指令,所述处理器用于在执行所述计算机指令时实现权利要求1至7任一所述的基于深度学习的动态缓存方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1至7任一所述的基于深度学习的动态缓存方法。
CN202310768297.5A 2023-06-27 2023-06-27 一种基于深度学习的动态缓存方法、装置、设备和介质 Pending CN116684491A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310768297.5A CN116684491A (zh) 2023-06-27 2023-06-27 一种基于深度学习的动态缓存方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310768297.5A CN116684491A (zh) 2023-06-27 2023-06-27 一种基于深度学习的动态缓存方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN116684491A true CN116684491A (zh) 2023-09-01

Family

ID=87783731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310768297.5A Pending CN116684491A (zh) 2023-06-27 2023-06-27 一种基于深度学习的动态缓存方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116684491A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407124A (zh) * 2023-12-13 2024-01-16 之江实验室 一种基于构建出的数据编排策略生成模型的业务执行方法
CN118170814A (zh) * 2024-05-16 2024-06-11 杭州新中大科技股份有限公司 一种缓存的动态预热方法、装置、设备及介质
CN118378304A (zh) * 2024-06-26 2024-07-23 金网络(北京)数字科技有限公司 基于深度学习的数据安全管理方法、系统、设备及产品

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117407124A (zh) * 2023-12-13 2024-01-16 之江实验室 一种基于构建出的数据编排策略生成模型的业务执行方法
CN117407124B (zh) * 2023-12-13 2024-03-12 之江实验室 一种基于构建出的数据编排策略生成模型的业务执行方法
CN118170814A (zh) * 2024-05-16 2024-06-11 杭州新中大科技股份有限公司 一种缓存的动态预热方法、装置、设备及介质
CN118378304A (zh) * 2024-06-26 2024-07-23 金网络(北京)数字科技有限公司 基于深度学习的数据安全管理方法、系统、设备及产品

Similar Documents

Publication Publication Date Title
US11615255B2 (en) Multi-turn dialogue response generation with autoregressive transformer models
US11468239B2 (en) Joint intent and entity recognition using transformer models
CN116684491A (zh) 一种基于深度学习的动态缓存方法、装置、设备和介质
US11360927B1 (en) Architecture for predicting network access probability of data files accessible over a computer network
CN109634924B (zh) 基于机器学习的文件系统参数自动调优方法及系统
CN113869420B (zh) 基于对比学习的文本推荐方法及相关设备
CN114896067B (zh) 任务请求信息的自动生成方法、装置、计算机设备及介质
JP2024513569A (ja) 異常検出システムおよび方法
CN112131578A (zh) 攻击信息预测模型的训练方法、装置、电子设备及存储介质
Loyola et al. UNSL at eRisk 2021: A Comparison of Three Early Alert Policies for Early Risk Detection.
WO2022053163A1 (en) Distributed trace anomaly detection with self-attention based deep learning
KR102278814B1 (ko) 웹 응용에 대한 사용자 상호작용 예측 방법 및 서버
US12045711B2 (en) Response generation using memory augmented deep neural networks
CN114881173A (zh) 基于自注意力机制的简历分类方法和装置
CN114492576A (zh) 一种异常用户检测方法、系统、存储介质及电子设备
CN116016365B (zh) 一种加密流量下基于数据包长度信息的网页识别方法
CN115794898B (zh) 一种金融资讯推荐方法、装置、电子设备及存储介质
US11755671B2 (en) Projecting queries into a content item embedding space
KR20230170752A (ko) 기계 학습 모델들의 하드웨어 인식 점진적 훈련
WO2023048807A1 (en) Hierarchical representation learning of user interest
US20220237682A1 (en) Scalable architecture for recommendation
Dash et al. Neural networks training based on differential evolution in radial basis function networks for classification of web logs
Baskaran et al. Study of combined Web prefetching with Web caching based on machine learning technique
CN117591769B (zh) 一种网页防篡改方法及系统
Gellert Web Usage Mining by Neural Hybrid Prediction with Markov Chain Components

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination