CN116745783A - 机器学习应用中系统特性漂移的处理 - Google Patents

机器学习应用中系统特性漂移的处理 Download PDF

Info

Publication number
CN116745783A
CN116745783A CN202280011257.XA CN202280011257A CN116745783A CN 116745783 A CN116745783 A CN 116745783A CN 202280011257 A CN202280011257 A CN 202280011257A CN 116745783 A CN116745783 A CN 116745783A
Authority
CN
China
Prior art keywords
model
error
version
output
data
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
CN202280011257.XA
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.)
Snowflake Inc
Original Assignee
Snowflake Computing Inc
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 Snowflake Computing Inc filed Critical Snowflake Computing Inc
Publication of CN116745783A publication Critical patent/CN116745783A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请提出了用于管理数据库系统中的机器学习(ML)模型的输入和输出误差的系统和方法。在数据库系统的第一版本上执行一组测试查询以生成第一测试数据,其中系统的第一版本包括ML模型以生成对应于数据库系统的功能的输出。基于第一测试数据和基于系统的先前版本而生成的第二测试数据来训练误差模型。误差模型确定在系统的第一版本和先前版本之间与ML模型相关联的误差。部署具有误差模型的系统的第一版本,误差模型校正ML模型的输出或输入,直到误差模型产生足够的数据来重新训练ML模型。

Description

机器学习应用中系统特性漂移的处理
相关申请
本申请根据35U.S.C.§119(e)要求于2021年1月21日提交的美国专利申请第17/154,928号的权益,该美国专利申请的整体内容在此通过引用并入本文。
技术领域
本公开的方面涉及数据库系统,更具体地,涉及机器学习(ML)在数据库系统中的使用。
背景
数据库广泛用于计算应用中的数据存储和访问。数据库可以包括一个或更多个表,这些表包括或引用数据,数据可以使用查询来进行读取、修改或删除。数据库可以在表中存储小的或非常大的数据集。包括数据库(例如,存储资源)的数据库系统还可以包括计算资源,其允许存储的数据被组织中的各种用户查询,或者甚至被用于服务公共用户,例如经由网站或应用程序接口(API)。计算资源和存储资源以及它们的底层体系结构都可以在实现理想的数据库性能方面发挥很大的作用。
数据库系统越来越多地集成ML模型来执行诸如查询优化的功能,其中数据库系统为查询找到最佳物理执行路径。存在在数据库系统中使用ML的各种方法,包括强化学习、深度学习、降维和主题建模等。
附图简述
通过结合附图参考以下描述,可以最好地理解所描述的实施例及其优点。在不脱离所描述的实施例的精神和范围的情况下,这些附图决不限制本领域技术人员可以对所描述的实施例进行的形式和细节上的任何改变。
图1A是示出根据本公开的一些实施例的示例数据库系统的框图。
图1B是示出根据本公开的一些实施例的示例数据库系统的框图。
图2A是示出根据本公开的一些实施例的用于管理企业系统中ML模型的输出漂移(drift)的系统的逻辑实现的框图。
图2B是示出根据本公开的一些实施例的其中ML模型的输出漂移已被管理的系统的逻辑实现的框图。
图3A是示出根据本公开的一些实施例的用于管理企业系统中ML模型的输入特征漂移的系统的逻辑实现的框图。
图3B是示出根据本公开的一些实施例的其中ML模型的输入特征漂移已被管理的系统的逻辑实现的框图。
图4是根据本公开的一些实施例的用于管理企业系统中ML模型的输出漂移的方法的流程图。
图5是根据本公开的一些实施例的用于管理企业系统中ML模型的输入特征漂移的方法的流程图。
图6是根据本公开的一些实施例的示例计算设备的框图,该示例计算设备可以执行本文描述的一个或更多个操作。
详细描述
数据库系统可以实现许多查询处理子系统(本文也称为“查询处理组件”或“组件”),例如查询执行引擎、资源预测器(例如,用于确定运行给定查询的最佳资源量)、查询分配器(例如,用于处理计算集群之间查询的任务/微分区的分配)和查询优化器等。数据库系统可以通过使用ML模型来替换这些组件中的一个或更多个的功能/启发法(heuristics)。典型的工作流包括收集一组数据,训练ML模型以自动化查询处理组件,并将其部署到数据库系统的生产版本。ML模型可以定期被重新训练和重新部署,或者当ML模型下降到低于某个性能水平阈值时,重复收集数据和训练新的ML模型以替换先前模型的过程。因此,使用新旧数据的混合来训练和/或评估新的ML模型。
然而,假设过去的系统数据会随着时间的推移而保持正确,这是错误的。事实上,在系统数据对应于查询处理组件(例如查询执行引擎)的操作的场景中,情况往往并非如此。这种查询处理组件经常被更新、扩充和/或修复,因此可能“漂移”。换句话说,组件的实际输出或输入已经偏离了模拟查询处理组件的ML模型所期望的。这是因为ML模型的期望基于系统的先前版本(即,ML模型是根据从查询处理组件未被修改的系统的先前版本的执行中收集的数据来训练的)。
如果任何这样的查询处理组件被修改(例如,查询执行引擎或查询优化器的操作被修改),则模拟任何这些组件的ML模型的假设可能不再有效。例如,对查询优化器的修改可能使模拟查询优化器的ML模型(或模拟依赖于查询优化器的输出的资源预测器组件的ML模型)的假设无效。在这些情况下,需要重新训练ML模型,以便继续准确地模拟它要替换的组件。然而,重新训练ML模型的过程可能花费大量时间(例如,几天或几周),在此期间ML模型可能产生不可靠/不准确的输出。
本公开通过使用处理设备在数据库系统的第一版本上执行一组测试查询以生成第一测试数据来解决上述和其他缺陷,其中系统的第一版本包括机器学习(ML)模型以生成对应于数据库系统的功能的输出。处理设备可以基于第一测试数据和在系统的先前版本上执行一组测试查询而生成的第二测试数据来训练误差模型,该误差模型用于确定在数据库系统的第一版本和先前版本之间ML模型的输出误差。处理设备可以部署具有误差模型的数据库系统的第一版本,并且响应于ML模型基于所接收的输入生成第一输出,可以通过误差模型基于ML模型的输入和ML模型的输出误差来调整ML模型的第一输出。
在其他实施例中,本公开可以通过使用处理设备在数据库系统的第一版本上执行一组测试查询以生成第一测试数据来解决上述和其他缺陷,其中系统的第一版本包括机器学习(ML)模型以生成对应于数据库系统的功能的输出。处理设备可以基于第一测试数据和在系统的先前版本上执行一组测试查询而生成的第二测试数据来训练误差模型,该误差模型用于确定在数据库系统的第一版本和先前版本之间ML模型的输入误差。处理设备可以部署具有误差模型的数据库系统的第一版本,并且可以通过误差模型基于ML模型的输入误差来调整指向ML模型的输入。处理设备可以将经调整的输入输出到ML模型。
图1A是示出根据一个实施例的数据库系统100的框图。数据库系统100包括可由多个用户104、106和108访问的资源管理器102。资源管理器102在本文也可以被称为数据库服务管理器。在一些实现中,资源管理器102可以支持任何数量的希望访问数据库系统100的数据或服务的用户。用户104可以包括例如,提供数据存储和检索查询和请求的终端用户、管理本文描述的系统和方法的系统管理员、与数据库交互的软件应用、以及与资源管理器102交互的其他组件/设备。
图1A和其它附图可以使用相同的附图标记来标识相同的元件。参考数字后面的字母,例如“110A”,表示该文本具体指具有该特定参考数字的元件。文本中没有后面字母的参考数字,例如“110”,指的是附图中带有该参考数字的任何或所有元件。
资源管理器102可以提供支持数据库系统100内的系统和组件的操作的各种服务和功能。资源管理器102可以访问与存储在整个数据数据库系统100中的数据相关联的所存储的元数据110。资源管理器102可以使用元数据110来优化用户查询。在一些实施例中,元数据110包括存储在存储平台114上的远程数据存储设备116中的数据以及可从本地高速缓存(例如,执行平台112的一个或更多个计算集群122内的高速缓存)获得的数据的汇总。另外,元数据110可以包括关于在远程数据存储设备和本地高速缓存中数据如何组织的信息。元数据110允许系统和服务在不从远程数据存储设备加载或访问实际数据的情况下确定是否需要处理一段数据。
当使用数据操作语言(DML)对存储在数据库系统100中的数据进行改变时,可以收集元数据110,该改变可以通过任何DML语句进行。操作数据的示例可以包括但不限于选择数据、更新数据、使数据发生变化、合并数据以及将数据插入表中。作为数据库系统100的一部分,可以创建文件和基于每个文件和每个列来收集元数据110,之后元数据110可以保存在元数据储存器中。对元数据110的这种收集可以在数据摄取(ingestion)期间执行,或者对元数据110的收集可以在数据被摄取或被加载之后作为单独的过程被执行。在实施方式中,元数据110可以包括多个不同的值;多个空值;以及每个文件的最小值和最大值。在实施方式中,元数据还可以包括字符串长度信息和字符串中的字符范围。
资源管理器102还与执行平台112通信,执行平台112提供执行各种数据存储和数据检索操作的多个计算资源,如下文更详细地讨论的。执行平台112可以包括一个或更多个计算集群,这些计算集群可以逻辑地组织成一个或更多个虚拟仓库(这里称为“仓库”)。基于用户104提供给特定仓库的查询工作负载,每个计算集群可以针对特定仓库被动态分配或暂停。执行平台112与作为存储平台114的一部分的一个或更多个数据存储设备116通信。尽管在图1A中示出了三个数据存储设备116,但是执行平台112能够与任何数量的数据存储设备通信。在一些实施例中,数据存储设备116是位于一个或更多个地理位置的基于云的存储设备。例如,数据存储设备116可以是公共云基础设施或私有云基础设施或任何其他方式的分布式存储系统的一部分。数据存储设备116可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、存储集群或任何其他数据存储技术。另外,存储平台114可以包括分布式文件系统(诸如Hadoop分布式文件系统(HDFS))、对象存储系统等。
在一些实施例中,资源管理器102和用户104、元数据110以及执行平台112之间的通信链路经由一个或更多个数据通信网络来实现,并且可以被分配各种任务,使得用户请求可以被优化。类似地,执行平台112和存储平台114中的数据存储设备116之间的通信链路经由一个或更多个数据通信网络来实现。这些数据通信网络可以利用任何通信协议和任何类型的通信介质。在一些实施例中,数据通信网络是彼此耦合的两个或更多个数据通信网络(或子网络)的组合。在可替代的实施例中,这些通信链路使用任何类型的通信介质和任何通信协议来实现。
如图1A所示,数据存储设备116从与执行平台112相关联的计算资源解耦。该体系结构支持基于不断变化的数据存储/检索需求、计算需求以及访问数据数据库系统100的用户和系统的不断变化的需求,对数据数据库系统100的动态改变。对动态改变的支持允许数据数据库系统100响应于对数据数据库系统100内的系统和组件的不断变化的需求而快速地进行缩放(scale)。计算资源与数据存储设备的解耦支持大量数据的存储,而无需相应的大量计算资源。类似地,资源的这种解耦支持在特定时间使用的计算资源的显著增加,而无需相应增加可用数据存储资源。
资源管理器102、元数据110、执行平台112和存储平台114在图1A中被示为单独的组件。然而,资源管理器102、元数据110、执行平台112和存储平台114中的每一个可以被实现为(例如,在多个地理位置处跨多个系统/平台分布的)分布式系统,或者可以被组合成一个或更多个系统。另外,资源管理器102、元数据110的存储设备、执行平台112和存储平台114中的每一个都可以根据从用户104接收的请求的变化和数据数据库系统100的不断变化的需求来(彼此独立地)扩大或缩小。因此,在所描述的实施例中,数据库系统100是动态的并且支持定期改变以满足当前数据处理需求。
资源管理器102、执行平台112和存储平台114中的每一个可以包括具有一个或更多个可编程处理器的任何合适类型的计算设备或机器,包括例如服务器计算机、存储服务器、台式计算机、膝上型计算机、平板计算机和智能手机等。资源管理器102、执行平台112和存储平台114中的每一个可以包括单个机器或者可以包括多个互连的机器(例如,配置成集群的多个服务器)。此外,资源管理器102、执行平台112和存储平台114中的每一个都可以包括硬件,例如处理设备(例如,处理器、中央处理单元(CPU))、存储器(例如,随机存取存储器(RAM)、存储设备(例如,硬盘驱动器(HDD)、固态驱动器(SSD)等),以及其他硬件设备(例如,声卡、视频卡等)。存储设备可以包括能够存储数据的永久存储设备。永久存储设备可以是本地存储单元或远程存储单元。永久存储设备可以是磁存储单元、光存储单元、固态存储单元、电子存储单元(主存储器)或类似的存储单元。永久存储设备也可以是单片/单个设备或一组分布式设备。
执行平台112包括多个计算集群122,其可以共享数据库系统100的计算或处理负载。在一个实施例中,当创建仓库或改变其配置时(当仓库运行时和当仓库暂停时),客户可以通过指定范围(例如,指定诸如minClusterCount和maxClusterCount的值)来控制活动(即运行的)集群的数量。客户可以指定活动集群的确切数量,例如,通过指定使最小集群计数等于最大集群计数,以便仓库在运行时都运行该确切数量。如果用户指定大于最小集群计数的最大集群计数,则资源管理器102可以基于工作负载自动管理当前活动集群的数量,以满足吞吐量标准并具有成本效益。因此,每当仓库运行时,至少最小集群计数(minClusterCount)的集群是活动的,而至多最大集群计数(maxClusterCount)的集群是活动的。资源管理器102可以决定在给定指定性能标准(存储器负载和并发级别方面)的情况下,需要多少集群来处理当前工作负载。
图1B示出了根据本公开的一些实施例的系统100。如在图1B中可以看到的,系统100可以实现主ML模型215,其可以代替系统100的组件执行各种任务。在图1B的示例中,主ML模型215可以在资源管理器102内实现,其中主ML模型215可以用于自动化各种组件中的任何组件的功能,例如:查询执行引擎、资源预测器(例如,用于确定运行给定查询的最佳资源量)、查询分配器(例如,用于处理计算集群之间查询的任务/微分区的分配)、基数预测器或查询优化器(其可以例如确定连接顺序,或确定为连接操作的左/右侧选择哪个表)。尽管为了便于说明和描述,用单个主ML模型215来说明,但是所有上述组件和其他组件的功能/启发法可以使用一个或更多个ML模型来自动化。尽管为了便于说明和描述而描述为在资源管理器102内实现,但应当注意,本文描述的实施例可以针对替换系统100中任何地方(例如,在执行平台114上)的查询处理组件的任何数量的ML模型来实现。
资源管理器102可以使用通过在系统100(包括上面提到的其每个组件)上执行一组训练查询而生成的一组训练数据来训练主ML模型215。在一些实施例中,可以在资源管理器102之外训练主ML模型215。例如,主ML模型215可以在单独的计算设备上训练并上传到资源管理器102。在另一示例中,可以使用自动化来训练主ML模型215。用于主ML模型215的一组训练查询可以是客户通常执行的查询,或者是为特定种类的任务专门构建的查询。例如,如果主ML模型215正在模拟资源预测器组件,则该组训练查询可以包括与资源预测器组件相关的查询。该组训练数据可以包含由资源管理器102执行的所有训练查询的特征(即特征向量)。在部署之前,系统100还可以运行一系列预发布测试,例如回归测试、压力测试、性能测试和冒烟测试等。这些测试通常可以在系统100的新版本发布给客户使用之前针对其执行。此外,包括这些预发布测试的查询可以跨系统100的不同版本重复执行,并且可以覆盖广泛的情况/场景。资源管理器102可以标记与主ML模型215最相关的预发布测试的查询(在图2和图3的示例中,主ML模型215可以自动化资源预测器组件,因此资源管理器102可以标记影响对运行查询的最佳资源量的预测的查询)。在所有预发布测试期间,资源管理器102可以从标记的查询的执行中收集所有相关结果数据,并将其存储在系统100的存储器(未示出)中。在预发布测试完成后,资源管理器可以部署具有主ML模型215的系统100。主ML模型215可以是二元分类模型、回归模型或取决于其要模拟的组件(例如,资源预测器或查询分配器)的任何其他合适的ML模型。
然而,如果系统100(例如,其任何组件)改变,则主ML模型215的假设可能不再有效。例如,如果资源管理器102的查询优化器组件已经被修改(例如,引入新类型的连接,或者引入诸如搜索优化的新特征),那么主ML模型215可能需要重新训练,因为这种修改可能使主ML模型215在预测所需资源时做出的假设(基于其从系统100的先前版本导出的训练数据,而没有对查询优化器进行修改)无效。在其他示例中,如果资源管理器102改变用于实现任何查询处理组件的云虚拟机(VM)的类型或修改资源预测器组件本身的功能,则主ML模型215准确预测资源需求的能力可能会受到负面影响。资源管理器102可以重新训练主ML模型215,然而该过程可能花费大量的时间(例如,几天或几周),在此期间主ML模型215可能继续产生不可靠/不准确的输出。
本公开的实施例利用预发布测试结果来训练误差模型,该误差模型识别由系统100的新版本引起的主ML模型215的输出中的误差或主ML模型215的输入中的误差,并且该误差模型可以校正(调整)主ML模型的输出或输入,直到主ML模型215已经被重新训练。在误差模型调整主模型的输出的一些实施例中,误差模型被训练成识别系统100版本的新版本下的主ML模型215的输出和先前版本下的主ML模型215的输出之间的误差(漂移)的幅度。如本文所讨论的,可以在预发布测试数据上训练误差模型。在系统100的新版本的操作期间,误差模型可以基于误差的幅度来调整主ML模型215的输出,以确保主ML模型215的输出是准确的。误差模型可以以这种方式调整主ML模型215的输出,直到主ML模型215已经被重新训练。
在其中误差模型调整主ML模型215的输入的其他实施例中,误差模型可以被训练成识别在系统100版本的新版本下主ML模型215的输入和在先前版本下主ML模型215的输入之间的误差幅度。应当注意,在一些场景中,即使系统100改变,主ML模型215的输入特征仍将是相同的,尽管主ML模型215的输出将是不同的。因此,考虑输入特征漂移的误差模型可能不捕捉对于相同(固定)输入特征,漂移仅导致输出改变的情况(例如,当漂移是对虚拟仓库采用不同类型硬件的结果时,诸如执行时间或瓶颈的方面将与之前不同)。
图2A示出了用于管理系统100中ML模型的输出漂移的系统的逻辑实现200的框图。响应于系统100中的改变(即,作为对系统100的一个或更多个组件的改变的结果而实现的系统100的新版本),资源管理器102可以在系统100的新版本上重新执行本文讨论的预发布测试,并且将已经被标记为与主ML模型215相关的预发布测试查询的结果数据存储在存储器中。资源管理器102现在可以知道在系统100的2个不同的连续版本上执行相同的预发布测试的结果数据,并且可以比较来自2次执行的结果数据,以确定在系统100的旧版本和系统100的新版本上执行预发布测试之间结果数据的差异(如果有的话)。预发布测试的2次连续执行之间的结果数据(例如,标记的查询的结果数据)的差异可对应于主ML模型215的输出中的漂移(误差)(相对于预期值)和漂移的幅度。资源管理器102可以使用该误差数据来训练误差模型220,以识别主ML模型215的输出中相对于系统100的新版本的漂移的幅度,并校正这种漂移。应当注意,误差模型220不需要解决原始问题,例如预测查询所需的资源量的问题。相反,误差模型220只需要了解结果数据在系统100的两个连续版本之间将有多大差异。
误差模型220可以是任何适当的ML模型,并且不需要与主ML模型215相似。因为误差模型220识别在系统100的连续版本之间主ML模型215的误差(例如,输出差),给定问题的新实例(即,输入特征)和主ML模型215的输出,则误差模型220可以基于主ML模型215的输出漂移(误差)的幅度来调整主ML模型215的输出,以产生最终输出。以这种方式,资源管理器102可以最小化在部署系统100的新版本之后主ML模型215输出不准确/漂移结果的时间。误差模型220可以在系统100的新版本发布给用户时提供经调整的结果,而不需要重新执行所有训练查询并且不需要重新训练主ML模型215。
误差模型220与主ML模型215一起部署(如图2所示)。当数据源205生成输入数据时,特征化器210(实现为资源管理器102的一部分)可以从所有数据源205获取输入数据,并创建描述输入数据的输入特征(特征向量)。特征化器210可以与主ML模型215同步,以确保正确的值和数据类型被馈送到主ML模型215。特征化器210可以将输入特征输出到主ML模型215。当主ML模型215接收到输入特征(例如,其资源消耗将被预测的查询的原始特征)时,它可能生成不准确的输出(例如,资源预测),因为主ML模型215还没有基于系统100的新版本(其包括例如用于执行平台112中的服务器的虚拟机的更新/修改版本和/或更新/修改的查询优化器组件)进行训练。因此,主ML模型215的输入特征和输出可以成为误差模型220的输入,误差模型220可以基于主ML模型215的输出漂移(误差)的幅度来调整主ML模型215的输出以产生最终输出。换句话说,误差模型220可以计算并输出最终(经调整的)输出为:y_error(i)=y_Main(i)+error(i,y_Main(i))
其中,对于问题实例i,y_Main(i)是主ML模型215的输出,并且error(i)是主ML模型215的输出漂移(如由误差模型220确定的)。
在一些实施例中,来自主ML模型215的训练集的训练查询在系统100的新版本上被重新执行(如本文所讨论的,这些可以是客户通常执行的查询或者是专门为这种任务构建的查询)。资源管理器102可以确定来自该重新执行的结果数据和(在系统100的先前版本上执行训练查询集而产生的)训练数据集之间的差异,以重新训练误差模型220从而进一步提高其准确性。误差模型220的新实例可以替换误差模型220的先前实例。此外,来自该重新执行的结果数据也可以成为用于重新训练主ML模型215的更新的(第二)训练数据集的一部分。主ML模型215的训练查询集的重新执行和误差模型220的后续重新训练可以以期望的节奏重复。
当误差模型220继续运行(例如,调整主ML模型215的输出)时,资源管理器102可以保留其已处理的所有结果(例如,执行数据)。随着时间的推移,可以保留足够量的结果数据,该结果数据与来自主ML模型215的训练集的训练查询的重新执行的结果数据相结合,可以形成更新的训练数据集。资源管理器102可以利用更新的训练数据集来重新训练主ML模型215,并由此生成重新训练的主ML模型215。在生成主ML模型215的新的重新训练的实例后,资源管理器102可以用主ML模型215的重新训练的实例替换主ML模型215的先前实例,并移除误差模型220。如图2B所示,系统100可以仅使用主ML模型215的重新训练的实例来继续运行。
图3A示出了使用误差模型的主ML模型215输入校正技术的逻辑实现的框图。主ML模型215、特征化器210和(一个或更多个)数据源205可以类似于图2A中的相应组件。响应于系统100中的改变,主ML模型215关于输入数据的许多假设可能不再有效。例如,如果资源管理器102的查询优化器组件已经被修改(例如,引入新类型的连接,或者引入诸如搜索优化的新特征),那么主ML模型215需要被重新训练,因为这些修改可能影响主ML模型215(其模拟资源预测组件的功能)的数据输入。
因此,响应于系统100中的改变,资源管理器102可在系统100的新版本上重新执行本文所讨论的预发布测试,并将已被标记为与主ML模型215相关的预发布测试查询的结果数据存储在存储器中。在图3A的示例中,结果数据可以包括输入到主ML模型215的数据以及由主ML模型215输出的数据。当在系统100的2个不同连续版本上执行相同的预发布测试时,资源管理器102现在可以知道输入到主ML模型215的数据,并且可以比较来自2次执行的结果数据(例如,标记的查询的结果数据),以确定在系统100的旧版本和系统100的新版本上执行预发布测试之间主ML模型215的输入数据的差异(如果有的话)。在预发布测试的2次连续执行之间主ML模型215的输入数据的差异可对应于在系统100的新版本上执行的主ML模型215的输入数据中的漂移(误差)和漂移的幅度。资源管理器102可以使用该误差数据来训练误差模型305,以识别主ML模型215的输入中的漂移并校正这种漂移。误差模型305不需要解决确定ML模型的输入的原始问题,并且只需要了解主ML模型215的输入在系统100的两个连续版本之间将有多大差异。
误差模型305可以是任何适当的ML模型,并且不需要与主ML模型215相似。因为误差模型305识别在系统100的连续版本之间主ML模型215的输入数据中的误差,所以给定问题的新实例(即,输入特征),误差模型220可以基于输入特征漂移(误差)的幅度来调整主ML模型215的输入特征,以产生经调整的输入特征。以这种方式,资源管理器102可以最小化主ML模型215接收不准确的输入数据(并因此输出不准确/漂移的结果)的时间。误差模型305可以在系统100的新版本发布给用户时向主ML模型215提供经调整的输入数据,而不需要重新执行所有训练查询并且不需要重新训练主ML模型215。
误差模型305与主ML模型215一起部署(如图3A所示)。当(一个或更多个)数据源205生成输入数据时,特征化器210可以从所有的(一个或更多个)数据源205获取输入,并生成包括描述输入数据的原始特征向量的输入特征。误差模型305接收输入特征(例如,其资源消耗将被预测的查询的原始特征),并且可以调整输入特征以生成经调整的输入特征。更具体地,误差模型305计算输入特征的新值并将其输出到主ML模型215(与输出端相反),新值然后被传递到主ML模型215。主ML模型215可产生如下给出的最终输出:
yMain(yError(i))
其中,对于实例i,y_Main(i)是主ML模型215的输出,并且y_Error(i)是误差模型305的输出。
在一些实施例中,来自主ML模型215的训练集的训练查询在系统100的新版本上被重新执行(如本文所讨论的,这些可以是客户通常执行的查询或者是专门为这种任务构建的查询)。资源管理器102可以确定来自该重新执行的结果数据(输入特征)和(在系统100的先前版本上执行训练查询集而产生的)训练数据集之间的差异,以重新训练误差模型305从而进一步提高其准确性。误差模型305的新实例可以替换先前的误差模型305。此外,来自该重新执行的结果数据也可以成为用于重新训练主ML模型215的更新的(第二)训练数据集的一部分。主ML模型215的训练查询集的重新执行和误差模型305的后续重新训练可以以期望的节奏重复。
当误差模型305继续运行(例如,调整主ML模型215的输入数据)时,资源管理器102可以保留它已经处理的所有结果(例如,经调整的输入)。随着时间的推移,可以保留足够量的结果数据,该结果数据与来自主ML模型215的训练集的训练查询的重新执行的结果数据相结合,可以形成更新的训练数据集。资源管理器102可以利用新的训练数据集来重新训练主ML模型215,并由此生成重新训练的主ML模型215。在生成重新训练的主ML模型215后,资源管理器102可以用重新训练的主ML模型215替换先前的主ML模型215并移除误差模型305。如图3B所示,系统100可以仅使用重新训练的主ML模型215继续运行。
图4是根据一些实施例的在企业系统中管理ML模型的输出漂移的方法400的流程图。方法400可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微代码)或其组合。在一些实施例中,方法400可以由计算设备(例如,图1A和图1B中所示的资源管理器102)来执行。
同样参考图2A和图2B,方法400开始于框405,其中,响应于系统100中的改变(即,如本文所讨论的,系统100的新版本正在实现),资源管理器102可以在系统100的新版本(本文也称为“第一版本”)上重新执行本文所讨论的预发布测试,并且将已经被标记为与主ML模型215相关的预发布测试查询的结果数据(本文也称为“第一测试数据”)存储在存储器中。资源管理器102现在可以知道在系统100的2个不同的连续版本上执行相同的预发布测试的结果数据,并且可以比较来自2次执行的结果数据,以确定在系统100的先前版本和系统100的新版本上执行预发布测试之间结果数据的差异。资源管理器102可以利用来自预发布测试的2次连续执行的结果数据(例如,标记的查询的结果数据)来确定主ML模型215的输出中是否存在漂移(误差)(相对于期望值)以及漂移的幅度。在框410处,资源管理器102可以使用该误差数据来训练误差模型220,以识别在系统100的先前版本和系统100的新版本之间主ML模型215的输出中的漂移量并校正这种漂移。应当注意,误差模型220不需要解决预测查询所需的资源量的原始(可能是困难的)问题。相反,误差模型220只需要了解结果在系统100的两个连续版本之间将有多大差异。
在框415,系统100的新版本被部署,其中误差模型220与主ML模型215一起被包括(如图2A所示)。当数据源205生成输入数据时,特征化器210(实现为资源管理器102的一部分)可以从所有数据源205获取输入数据,并创建描述输入数据的输入特征(特征向量)。特征化器210可以与主ML模型215同步,以确保正确的值和数据类型被馈送到主ML模型215。特征化器210可以将输入特征输出到主ML模型215。当主ML模型215接收到输入特征(例如,其资源消耗将被预测的查询的原始特征)时,它可能生成不准确的输出(例如,资源预测),因为主ML模型215还没有基于系统100的新版本(其包括例如用于执行平台112中的服务器的虚拟机的更新/修改版本和/或更新/修改的查询优化器组件)进行训练。因此,在框420,主ML模型215的输入特征和输出可以成为误差模型220的输入,误差模型220可以基于主ML模型215的输出漂移(误差)的幅度来调整主ML模型215的输出以产生最终输出。换句话说,误差模型220可以计算并输出最终(经调整的)输出为:
y_Yerror(i)=y_Main(i)+error(i,y_Main(i))
其中,对于问题实例i,y_Main(i)是主ML模型215的输出,并且error(i)是主ML模型215的输出漂移(如由误差模型220确定的)。
在一些实施例中,来自主ML模型215的训练集的训练查询在系统100的新版本上被重新执行(如本文所讨论的,这些可以是客户通常执行的查询或者是专门为这种任务构建的查询)。资源管理器102可以确定来自该重新执行的结果数据和(在系统100的先前版本上执行训练查询集而产生的)训练数据集之间的差异,以重新训练误差模型220从而进一步提高其准确性。误差模型220的新实例可以替换误差模型220的先前实例。此外,来自该重新执行的结果数据也可以成为用于重新训练主ML模型215的更新的(第二)训练数据集的一部分。主ML模型215的训练查询集的重新执行和误差模型220的后续重新训练可以以期望的节奏重复。
当误差模型220继续运行(例如,调整主ML模型215的输出)时,资源管理器102可以保留其已处理的所有结果(例如,经调整的输出)。随着时间的推移,可以保留足够量的结果数据,该结果数据与来自主ML模型215的训练集的训练查询的重新执行的结果数据相结合,可以形成更新的训练数据集。资源管理器102可以利用更新的训练数据集来重新训练主ML模型215,并由此生成重新训练的主ML模型215。在生成主ML模型215的新的重新训练的实例后,资源管理器102可以用主ML模型215的重新训练的实例替换主ML模型215的先前实例,并移除误差模型220。如图2B所示,系统100可以仅使用主ML模型215的重新训练的实例来继续运行。
图5是根据一些实施例的在企业系统中管理ML模型的输出漂移的方法500的流程图。方法500可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微代码)或其组合。在一些实施例中,方法500可以由计算设备(例如,图1A和图1B中所示的资源管理器102)来执行。
还参考图3A和图3B,在框505,响应于系统100中的改变,资源管理器102可以在系统100的新版本上重新执行本文所讨论的预发布测试,并且将已经被标记为与主ML模型215相关的预发布测试查询的结果数据(在本文中也被称为“第一测试数据”)存储在存储器中。在图3A的示例中,结果数据可以包括输入到主ML模型215的数据以及由主ML模型215输出的数据。当在系统100的2个不同连续版本上执行相同的预发布测试时,资源管理器102现在可以知道输入到主ML模型215的数据,并且可以比较来自2次执行的结果数据,以确定在系统100的先前版本和系统100的新版本上执行预发布测试之间主ML模型215的输入数据的差异。资源管理器102可以利用来自预发布测试的2次连续执行的结果数据(例如,标记的查询的结果数据)来确定主ML模型215的输入数据中是否存在漂移(误差)以及漂移的幅度。在框510,资源管理器102可以使用该误差数据来训练误差模型305,以识别在系统100的先前版本和系统100的新版本之间主ML模型215的输入中的漂移,并校正这种漂移。误差模型305不需要解决确定ML模型的输入的原始问题,并且只需要了解主ML模型215的输入在系统100的两个连续版本之间将有多大差异。
在框515,部署具有误差模型305连同主ML模型215的新系统版本(如图3A所示)。当(一个或更多个)数据源205生成输入数据时,特征化器210可以从所有(一个或更多个)数据源205获取输入,并生成包括描述输入数据的原始特征向量的输入特征。误差模型305接收输入特征(例如,其资源消耗将被预测的查询的原始特征),并且在框520,可以调整输入特征以生成经调整的输入特征。更具体地,误差模型305计算输入特征的新值并将其输出到主ML模型215(与输出端相反),新值然后被传递到主ML模型215。主ML模型215可产生如下给出的最终输出:
yMain(yError(i))
其中,对于实例i,y_Main(i)是主ML模型215的输出,并且y_Error(i)是误差模型305的输出。
在一些实施例中,来自主ML模型215的训练集的训练查询在系统100的新版本上被重新执行(如本文所讨论的,这些可以是客户通常执行的查询或者是专门为这种任务构建的查询)。资源管理器102可以确定来自该重新执行的结果数据(输入特征)和(在系统100的先前版本上执行训练查询集而产生的)训练数据集之间的差异,以重新训练误差模型305从而进一步提高其准确性。误差模型305的新实例可以替换先前的误差模型305。此外,来自该重新执行的结果数据也可以成为用于重新训练主ML模型215的更新的(第二)训练数据集的一部分。主ML模型215的训练查询集的重新执行和误差模型305的后续重新训练可以以期望的节奏重复。
当误差模型305继续运行(例如,调整主ML模型215的输入特征)时,资源管理器102可以保留它已经处理的所有结果(例如,经调整的输入)。随着时间的推移,可以保留足够量的结果数据,该结果数据与来自主ML模型215的训练集的训练查询的重新执行的结果数据相结合,可以形成更新的训练数据集。资源管理器102可以利用新的训练数据集来重新训练主ML模型215,并由此生成重新训练的主ML模型215。在生成重新训练的主ML模型215后,资源管理器102可以用重新训练的主ML模型215替换先前的主ML模型215并移除误差模型305。如图3B所示,系统100可以仅使用重新训练的主ML模型215继续运行。
图6是根据一些实施例的示例计算设备600的框图,该示例计算设备600可以执行本文描述的用于在固件被加载到存储器设备之前验证固件的一个或更多个操作。例如,计算设备600可以在数据库系统的第一版本上执行一组测试查询以生成第一测试数据,其中系统的第一版本包括机器学习(ML)模型以生成对应于数据库系统的功能的输出。计算设备600可以基于第一测试数据和在系统的先前版本上执行一组测试查询而生成的第二测试数据来训练误差模型,该误差模型用于确定在数据库系统的第一版本和先前版本之间ML模型的输出误差。计算设备600可以部署具有误差模型的数据库系统的第一版本,并且响应于ML模型基于所接收的输入生成第一输出,可以通过误差模型基于ML模型的输入和ML模型的输出误差来调整ML模型的第一输出。
计算设备600可以连接到LAN、内联网、外联网和/或互联网中的其他计算设备。该计算设备可以在客户端-服务器网络环境中以服务器机器的能力操作或在对等网络环境中以客户端的能力操作。该计算设备可以由个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、交换机或网桥或能够执行指定该机器要采取的动作的指令集(顺序或以其它方式)的任何机器提供。此外,尽管仅示出了单个计算设备,但是术语“计算设备”也应被认为包括单独地或共同地执行一组(或多组)指令以执行本文所讨论的方法的计算设备的任何集合。
示例计算设备600可以包括处理设备(例如,通用处理器、PLD等)602、主存储器604(例如,同步动态随机存取存储器(DRAM)、只读存储器(ROM))、静态存储器606(例如,闪存和数据存储设备618),它们可以经由总线630彼此通信。
处理设备602可以由一个或更多个通用处理设备提供,诸如微处理器、中央处理单元等。在说明性示例中,处理设备602可以包括复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实现其它指令集的处理器或实现指令集的组合的处理器。处理设备602还可以包括一个或更多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。根据本公开的一个或更多个方面,处理设备602可以被配置为执行本文描述的操作,以执行本文讨论的操作和步骤。
计算设备600还可以包括可以与网络620通信的网络接口设备608。计算设备600还可以包括视频显示单元610(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备612(例如,键盘)、光标控制设备614(例如,鼠标)和声音信号生成设备616(例如,扬声器)。在一个实施例中,视频显示单元610、字母数字输入设备612和光标控制设备614可以组合成单个组件或设备(例如,LCD触摸屏)。
根据本公开的一个或更多个方面,数据存储设备618可以包括计算机可读存储介质628,其上可以存储一组或更多组ML模型漂移管理指令625,例如,用于执行本文描述的操作的指令。在由也构成计算机可读介质的计算设备600、主存储器604和处理设备602执行ML模型漂移管理指令625期间,ML模型漂移管理指令625也可以全部或至少部分地驻留在主存储器604内和/或处理设备602内。ML模型漂移管理指令625还可以经由网络接口设备608在网络620上发送或接收。
虽然在说明性示例中将计算机可读存储介质628示为单个介质,但是术语“计算机可读存储介质”应被理解为包括存储一组或更多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或关联的缓存和服务器)。术语“计算机可读存储介质”也应被理解为包括能够存储、编码或携带一组指令以由机器执行并且使机器执行本文描述的方法的任何介质。因此,术语“计算机可读存储介质”应被认为包括但不限于固态存储器、光学介质和磁性介质。
除非另有明确说明,否则诸如“接收”、“路由”、“更新”、“提供”等的术语是指由计算设备执行或实现的动作和过程,该动作和过程将表示为计算设备的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似表示为计算设备存储器或寄存器或其它此类信息存储、传输或显示设备内的物理量的其它数据。此外,术语“第一”、“第二”、“第三”、“第四”等,如本文所使用的,是指用于区分不同元件的标签,并且不一定根据它们的数字名称具有序数意义。
本文描述的示例还涉及用于执行本文描述的操作的装置。该装置可以为所需目的而专门构造,或者它可以包括由存储在计算设备中的计算机程序选择性编程的通用计算设备。这种计算机程序可以存储在计算机可读的非暂时性存储介质中。
本文描述的方法和说明性示例并不固有地与任何特定的计算机或其他装置相关。根据本文描述的教导,可以使用各种通用系统,或者可以证明构造更专用的装置来执行所需的方法步骤是方便的。各种这些系统所需的结构将如以上描述中所述。
以上描述旨在是说明性的,而不是限制性的。尽管已经参考具体的说明性示例描述了本公开,但是将认识到,本公开不限于所描述的示例。本公开的范围应参考所附权利要求书以及权利要求书所赋予的等效物的全部范围来确定。
如本文使用的,单数形式“一(a)”、“一(an)”和“该(the)”意图也包括复数形式,除非上下文另有清楚地指示。还将理解的是,术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”和/或“包括(including)”在本文使用时,列举所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除存在或添加一个或更多个其它特征、整数、步骤、操作、元件、部件和/或它们的组。因此,本文使用的术语仅仅是为了描述特定的实施例,而不是为了限制。
还应当注意,在一些替代实施方式中,所述的功能/动作可以不按图中所示的顺序发生。例如,根据所涉及的功能/动作,连续示出的两个特征实际上可以基本上同时执行,或者有时可以以相反的顺序执行。
虽然以特定顺序描述了方法操作,但是应当理解,在所描述的操作之间可以执行其他操作,可以调整所描述的操作,使得它们在稍微不同的时间发生,或者所描述的操作可以分布在允许在与处理相关联的各种间隔发生处理操作的系统中。
各种单元、电路或其他组件可以被描述或要求为“配置成”或“可配置成”执行一项或多项任务。在这样的上下文中,短语“配置成”或“可配置成”用于通过指示单元/电路/组件包括在操作期间执行一项或多项任务的结构(例如,电路)来暗示结构。同样地,单元/电路/组件可以说被配置为执行任务,或者可被配置为执行任务,即使当指定的单元/电路/组件当前不工作(例如,不开启)时。与“配置成”或“可配置成”语言一起使用的单元/电路/组件包括硬件——例如,电路、存储可执行以实现操作的程序指令的存储器等。陈述单元/电路/部件被“配置成”来执行一项或更多项任务,或者“可配置成”来执行一项或更多项任务,显然不是为了针对该单元/电路/部件援引35U.S.C.112第6段。另外,“配置成”或“可配置成”可以包括通用结构(例如,通用电路),其由软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵,以能够执行所讨论的任务的方式操作。“配置成”还可以包括调整制造工艺(例如,半导体制造设施)以制造适于实现或执行一项或更多项任务的器件(例如,集成电路)。“可配置成”明确地不打算应用于空白介质、未编程的处理器或未编程的通用计算机、或未编程的可编程逻辑器件、可编程门阵列或其他未编程的器件,除非伴随有赋予未编程的器件被配置为执行所公开的功能的能力的已编程介质。
为了解释的目的,已经参考特定实施例描述了前述描述。然而,上述说明性讨论并不旨在穷尽或将本发明限于所公开的精确形式。鉴于上述教导,许多修改和变型是可能的。选择和描述这些实施例是为了最好地解释这些实施例的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用这些实施例和可能适合于预期的特定用途的各种修改。因此,本实施例被认为是说明性的而非限制性的,并且本发明不限于本文给出的细节,而是可以在所附权利要求的范围和等同物内进行修改。

Claims (23)

1.一种方法,包括:
在数据库系统的第一版本上执行一组测试查询以生成第一测试数据,其中,所述系统的所述第一版本包括机器学习(ML)模型以生成对应于所述数据库系统的功能的输出;
基于所述第一测试数据和在所述系统的先前版本上执行所述一组测试查询而生成的第二测试数据来训练误差模型,所述误差模型确定在所述数据库系统的所述第一版本和所述先前版本之间与所述ML模型相关联的误差;以及
部署具有所述误差模型的所述数据库系统的所述第一版本。
2.根据权利要求1所述的方法,其中,与所述ML模型相关联的所述误差是所述ML模型的输出误差,所述方法还包括:
响应于所述ML模型基于所接收的输入生成第一输出,通过所述误差模型基于所述ML模型的输入和所述ML模型的输出误差来调整所述ML模型的第一输出。
3.根据权利要求2所述的方法,还包括:
至少部分地基于随时间累积的所述误差模型的一个或更多个经调整的输出来生成训练数据;
基于所述训练数据对所述ML模型进行重新训练,以生成重新训练的ML模型;以及
用所述重新训练的ML模型替换所述ML模型。
4.根据权利要求3所述的方法,还包括:
从所述系统的所述第一版本中移除所述误差模型。
5.根据权利要求3所述的方法,还包括:
在所述系统的所述第一版本上执行对所述ML模型的一组训练查询,以生成第三测试数据;
基于所述第三测试数据重新训练所述误差模型,以生成更新的误差模型;以及
用所述更新的误差模型替换所述误差模型。
6.根据权利要求5所述的方法,其中,生成所述训练数据包括:将所述第三测试数据添加到随时间累积的所述误差模型的所述一个或更多个经调整的输出。
7.根据权利要求1所述的方法,其中,与所述ML模型相关联的所述误差是所述ML模型的输入误差,所述方法还包括:
基于所述ML模型的输入误差,通过所述误差模型调整指向所述ML模型的输入;以及
将经调整的输入输出到所述ML模型。
8.根据权利要求7所述的方法,还包括:
至少部分地基于随时间累积的所述误差模型的一个或更多个经调整的输入来生成训练数据;
基于所述训练数据对所述ML模型进行重新训练,以生成重新训练的ML模型;以及
用所述重新训练的ML模型替换所述ML模型。
9.根据权利要求1所述的方法,其中,所述一组测试查询包括由所述数据库系统标记为与所述ML模型相关的测试查询。
10.根据权利要求1所述的方法,其中,所述功能包括查询执行引擎、查询优化器或资源预测器之一。
11.一种系统,包括:
存储器;以及
能够操作地耦合到所述存储器的处理设备,所述处理设备用于:
在数据库系统的第一版本上执行一组测试查询以生成第一测试数据,其中,所述系统的所述第一版本包括机器学习(ML)模型以生成对应于所述数据库系统的功能的输出;
基于所述第一测试数据和在所述系统的先前版本上执行所述一组测试查询而生成的第二测试数据来训练误差模型,所述误差模型确定在所述数据库系统的所述第一版本和所述先前版本之间与所述ML模型相关联的误差;以及
部署具有所述误差模型的所述数据库系统的所述第一版本。
12.根据权利要求11所述的系统,其中,与所述ML模型相关联的所述误差是所述ML模型的输出误差,并且所述处理设备还用于:
响应于所述ML模型基于所接收的输入生成第一输出,通过所述误差模型基于所述ML模型的输入和所述ML模型的输出误差来调整所述ML模型的第一输出。
13.根据权利要求12所述的系统,其中,所述处理设备还用于:
至少部分地基于随时间累积的所述误差模型的一个或更多个经调整的输出来生成训练数据;
基于所述训练数据对所述ML模型进行重新训练,以生成重新训练的ML模型;以及
用所述重新训练的ML模型替换所述ML模型。
14.根据权利要求13所述的系统,其中,所述处理设备还用于:
从所述系统的所述第一版本中移除所述误差模型。
15.根据权利要求13所述的系统,其中,所述处理设备还用于:
在所述系统的所述第一版本上执行对所述ML模型的一组训练查询,以生成第三测试数据;
基于所述第三测试数据重新训练所述误差模型,以生成更新的误差模型;以及
用所述更新的误差模型替换所述误差模型。
16.根据权利要求15所述的系统,其中,为了生成所述训练数据,所述处理设备将所述第三测试数据添加到随时间累积的所述误差模型的所述一个或更多个经调整的输出。
17.根据权利要求11所述的系统,其中,与所述ML模型相关联的所述误差是所述ML模型的输入误差,并且所述处理设备还用于:
基于所述ML模型的输入误差,通过所述误差模型调整指向所述ML模型的输入;以及
将经调整的输入输出到所述ML模型。
18.根据权利要求17所述的系统,其中,所述处理设备还用于:
至少部分地基于随时间累积的所述误差模型的一个或更多个经调整的输入来生成训练数据;
基于所述训练数据对所述ML模型进行重新训练,以生成重新训练的ML模型;以及
用所述重新训练的ML模型替换所述ML模型。
19.根据权利要求11所述的系统,其中,所述一组测试查询包括由所述数据库系统标记为与所述ML模型相关的测试查询。
20.根据权利要求11所述的系统,其中,所述功能包括查询执行引擎、查询优化器或资源预测器之一。
21.一种非暂时性计算机可读介质,其上存储有指令,所述指令在由处理设备执行时使所述处理设备:
在数据库系统的第一版本上执行一组测试查询以生成第一测试数据,其中,所述系统的所述第一版本包括机器学习(ML)模型以生成对应于所述数据库系统的功能的输出;
基于所述第一测试数据和在所述系统的先前版本上执行所述一组测试查询而生成的第二测试数据来训练误差模型,所述误差模型确定在所述数据库系统的所述第一版本和所述先前版本之间与所述ML模型相关联的误差;以及
部署具有所述误差模型的所述数据库系统的所述第一版本。
22.根据权利要求21所述的非暂时性计算机可读介质,其中,与所述ML模型相关联的所述误差是所述ML模型的输出误差,并且所述处理设备还用于:
响应于所述ML模型基于所接收的输入生成第一输出,通过所述误差模型基于所述ML模型的输入和所述ML模型的输出误差来调整所述ML模型的第一输出。
23.根据权利要求22所述的非暂时性计算机可读介质,其中,所述处理设备还用于:
至少部分地基于随时间累积的所述误差模型的一个或更多个经调整的输出来生成训练数据;
基于所述训练数据对所述ML模型进行重新训练,以生成重新训练的ML模型;以及
用所述重新训练的ML模型替换所述ML模型。
CN202280011257.XA 2021-01-21 2022-01-18 机器学习应用中系统特性漂移的处理 Pending CN116745783A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/154,928 US11568320B2 (en) 2021-01-21 2021-01-21 Handling system-characteristics drift in machine learning applications
US17/154,928 2021-01-21
PCT/US2022/012789 WO2022159391A1 (en) 2021-01-21 2022-01-18 Handling system-characteristics drift in machine learning applications

Publications (1)

Publication Number Publication Date
CN116745783A true CN116745783A (zh) 2023-09-12

Family

ID=82406347

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280011257.XA Pending CN116745783A (zh) 2021-01-21 2022-01-18 机器学习应用中系统特性漂移的处理

Country Status (5)

Country Link
US (3) US11568320B2 (zh)
EP (1) EP4281912A4 (zh)
CN (1) CN116745783A (zh)
DE (1) DE202022002890U1 (zh)
WO (1) WO2022159391A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475024B2 (en) 2019-10-18 2022-10-18 Splunk Inc. Anomaly and outlier explanation generation for data ingested to a data intake and query system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390066A (zh) * 2013-08-08 2013-11-13 上海新炬网络技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法
CN105512264A (zh) * 2015-12-04 2016-04-20 贵州大学 分布式数据库中并发工作负载的性能预测方法
US20170330109A1 (en) * 2016-05-16 2017-11-16 Purepredictive, Inc. Predictive drift detection and correction
CN110019419A (zh) * 2017-09-29 2019-07-16 微软技术许可有限责任公司 在统计模型中自动检测和管理异常
US20200082296A1 (en) * 2018-09-06 2020-03-12 Quickpath Analytics, Inc. Real-time drift detection in machine learning systems and applications
US20200183936A1 (en) * 2018-12-10 2020-06-11 Teradata Us, Inc. Predictive query parsing time and optimization

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10754764B2 (en) * 2018-04-22 2020-08-25 Sas Institute Inc. Validation sets for machine learning algorithms
US20110302193A1 (en) * 2010-06-07 2011-12-08 Microsoft Corporation Approximation framework for direct optimization of information retrieval measures
US10375098B2 (en) * 2017-01-31 2019-08-06 Splunk Inc. Anomaly detection based on relationships between multiple time series
US11537615B2 (en) * 2017-05-01 2022-12-27 Futurewei Technologies, Inc. Using machine learning to estimate query resource consumption in MPPDB
US11615208B2 (en) * 2018-07-06 2023-03-28 Capital One Services, Llc Systems and methods for synthetic data generation
US20200081916A1 (en) * 2018-09-12 2020-03-12 Business Objects Software Ltd. Predictive modeling with machine learning in data management platforms
AU2019362019B2 (en) * 2018-10-19 2024-06-27 Climate Llc Machine learning techniques for identifying clouds and cloud shadows in satellite imagery
US11481665B2 (en) * 2018-11-09 2022-10-25 Hewlett Packard Enterprise Development Lp Systems and methods for determining machine learning training approaches based on identified impacts of one or more types of concept drift
US20200341920A1 (en) * 2019-04-29 2020-10-29 Instant Labs, Inc. Data access optimized across access nodes
US20200349161A1 (en) * 2019-04-30 2020-11-05 Microsoft Technology Licensing, Llc Learned resource consumption model for optimizing big data queries
US11714905B2 (en) * 2019-05-10 2023-08-01 Sophos Limited Attribute relevance tagging in malware recognition
US10776721B1 (en) * 2019-07-25 2020-09-15 Sas Institute Inc. Accelerating configuration of machine-learning models
US10832087B1 (en) * 2020-02-05 2020-11-10 Sas Institute Inc. Advanced training of machine-learning models usable in control systems and other systems
US11308363B2 (en) * 2020-03-26 2022-04-19 Intel Corporation Device and method for training an object detection model

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103390066A (zh) * 2013-08-08 2013-11-13 上海新炬网络技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法
CN105512264A (zh) * 2015-12-04 2016-04-20 贵州大学 分布式数据库中并发工作负载的性能预测方法
US20170330109A1 (en) * 2016-05-16 2017-11-16 Purepredictive, Inc. Predictive drift detection and correction
CN110019419A (zh) * 2017-09-29 2019-07-16 微软技术许可有限责任公司 在统计模型中自动检测和管理异常
US20200082296A1 (en) * 2018-09-06 2020-03-12 Quickpath Analytics, Inc. Real-time drift detection in machine learning systems and applications
US20200183936A1 (en) * 2018-12-10 2020-06-11 Teradata Us, Inc. Predictive query parsing time and optimization

Also Published As

Publication number Publication date
DE202022002890U1 (de) 2023-12-22
US20230132117A1 (en) 2023-04-27
US20240232722A1 (en) 2024-07-11
US20220230093A1 (en) 2022-07-21
EP4281912A1 (en) 2023-11-29
WO2022159391A1 (en) 2022-07-28
US11568320B2 (en) 2023-01-31
US11934927B2 (en) 2024-03-19
EP4281912A4 (en) 2024-06-19

Similar Documents

Publication Publication Date Title
García-Gil et al. A comparison on scalability for batch big data processing on Apache Spark and Apache Flink
US10915528B2 (en) Pluggable storage system for parallel query engines
Mahgoub et al. {SOPHIA}: Online reconfiguration of clustered {NoSQL} databases for {Time-Varying} workloads
US9836701B2 (en) Distributed stage-wise parallel machine learning
US9558045B2 (en) Realizing graph processing based on the MapReduce architecture
McNabb et al. Parallel pso using mapreduce
Schelter et al. Distributed matrix factorization with mapreduce using a series of broadcast-joins
Singhal et al. Performance assurance model for applications on SPARK platform
US20150286668A1 (en) Optimizing update operations in in-memory database systems
US11429572B2 (en) Rules-based dataset cleaning
US11521076B2 (en) Architecture-independent approximation discovery
US20240232722A1 (en) Handling system-characteristics drift in machine learning applications
Xu et al. Efficient fault-tolerance for iterative graph processing on distributed dataflow systems
US10831709B2 (en) Pluggable storage system for parallel query engines across non-native file systems
Kumar et al. Scalable performance tuning of hadoop mapreduce: a noisy gradient approach
CN110851515A (zh) 一种基于Spark分布式环境下的大数据ETL模型执行方法及介质
US20200410394A1 (en) Predicting future actions during visual data cleaning
Dreuning et al. mCAP: Memory-Centric Partitioning for Large-Scale Pipeline-Parallel DNN Training
Shahverdi et al. Comparative evaluation for the performance of big stream processing systems
Zhang et al. HotML: A DSM-based machine learning system for social networks
US11620271B2 (en) Relationship analysis using vector representations of database tables
US12099525B2 (en) State rebalancing in structured streaming
CN116755893B (zh) 面向深度学习的分布式计算系统的作业调度方法和装置
US20210406246A1 (en) Management of diverse data analytics frameworks in computing systems
US20240256550A1 (en) Dictionary Filtering and Evaluation in Columnar Databases

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: U.S.A.

Address after: Montana

Applicant after: Snowflake Co.

Address before: Montana

Applicant before: SNOWFLAKE COMPUTING Inc.

Country or region before: U.S.A.