CN115398418A - 用于基于约束的超参数调优的方法和系统 - Google Patents

用于基于约束的超参数调优的方法和系统 Download PDF

Info

Publication number
CN115398418A
CN115398418A CN202180025672.6A CN202180025672A CN115398418A CN 115398418 A CN115398418 A CN 115398418A CN 202180025672 A CN202180025672 A CN 202180025672A CN 115398418 A CN115398418 A CN 115398418A
Authority
CN
China
Prior art keywords
machine learning
learning model
hyper
metrics
model
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
CN202180025672.6A
Other languages
English (en)
Inventor
M·E·约翰逊
T·L·董
V·韦氏诺一
S·维纳科塔
T·帕姆
C·D·V·黄
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN115398418A publication Critical patent/CN115398418A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2178Validation; Performance evaluation; Active pattern learning techniques based on feedback of a supervisor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了用于对模型的超参数进行调优的技术。获得用于训练模型的数据集并选择用于评估模型的性能的度量。每个度量被指派指定对模型的性能的重要性的权重。创建基于加权度量测量性能的函数。对超参数进行调优以优化模型性能。对超参数进行调优包括:(i)训练基于超参数的当前值配置的模型;(ii)使用函数评估模型的性能;(iii)确定模型是否针对度量被优化;(iv)响应于模型未被优化,搜索超参数的新值,用新值重新配置模型,并使用重新配置的模型重复步骤(i)‑(iii);以及(v)响应于模型针对度量被优化,提供经训练的模型。

Description

用于基于约束的超参数调优的方法和系统
相关申请的交叉引用
本申请要求以下申请的优先权权益:(1)2020年3月30日提交的美国临时申请No.63/002,159,(2)2020年11月30日提交的美国临时申请No.63/119,577,(3)2021年3月29日提交的美国非临时申请No.17/216,496,以及(4)2021年3月29日提交的美国非临时申请No.17/216,498。出于所有目的,上面引用的申请通过引用整体并入本文。
技术领域
本公开一般而言涉及聊天机器人系统,并且更具体地,涉及对在聊天机器人系统中使用的机器学习模型的超参数(hyperparameter)进行调优(tuning)的技术。
背景技术
世界各地的许多用户都在即时消息传递或聊天平台上以便获得即时反应。组织经常使用这些即时消息传递或聊天平台与客户(或最终用户)进行实时交谈。但是,组织雇用服务人员与客户或最终用户进行实时交流的成本可能非常高。已经开始开发聊天机器人或机器人来模拟与最终用户的交谈,尤其是通过互联网。最终用户可以通过最终用户已经安装和使用的消息传递应用与机器人通信。通常由人工智能(AI)提供支持的智能机器人可以在实时交谈中更智能地并且更基于上下文地进行交流,因此可以允许机器人与最终用户之间进行更自然的交谈以改善交谈体验。不是让最终用户学习机器人知道如何进行响应的关键字或命令的固定集合,而是,智能机器人可以能够基于用户的自然语言话语来理解最终用户的意图并相应地做出响应。
通常,个体的机器人采用被训练为分类器(classifier)的模型并从类或类别的集合中预测或推断针对输入的类或类别。在创建机器学习模型时,必须确定定义模型的体系架构的模型参数。此类参数被称为模型的超参数。确定超参数的理想配置(即,要指派给模型的每个超参数的值)的过程被称为超参数调优。
标准超参数调优算法在考虑单一目标(例如,模型准确性)的情况下执行超参数的调优操作。为了实现这个目标,超参数调优算法搜索使单个目标优化的最佳超参数配置。因此,该模型是为优化该单一目标而量身定制的。对于不同的目标,必须训练不同的模型,每一个模型都是为了优化相应的目标而量身定制的。
本文描述的实施例单独地和共同地解决了这些和其它问题。
发明内容
提供了用于对聊天机器人系统中使用的机器学习模型的超参数进行调优的技术(例如,方法、系统、存储可由一个或多个处理器执行的代码或指令的非暂态计算机可读介质)。本文描述了各种实施例,包括方法、系统、存储可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。
通过本公开的一个方面,提供了一种用于对聊天机器人系统中使用的机器学习模型的超参数的集合进行调优的方法。该方法获得用于训练机器学习模型的一个或多个数据集,并选择用于评估机器学习模型在该一个或多个数据集上的性能的多个度量(或目标)。第一权重被指派给该多个度量中的每个度量。第一权重指定每个度量对机器学习模型的性能的重要性。创建成本或损失函数,其基于该多个度量和指派给该多个度量中的每个度量的第一权重来测量机器学习模型的性能。对与机器学习模型相关联的超参数的集合进行调优,以便针对该多个度量优化机器学习模型。对超参数的集合进行调优的过程包括:(i)在一个或多个数据集上,训练基于超参数的集合的当前值集合而配置的机器学习模型;(ii)使用成本或损失函数评估机器学习模型在该一个或多个数据集上的性能;(iii)基于该评估,确定机器学习模型是否针对多个度量被优化;(iv)响应于机器学习模型没有针对多个度量被优化,调优过程为超参数的集合搜索新的值集合,用新的值集合重新配置机器学习模型,以及使用经重新配置的机器学习模型重复步骤(i)-(iii);以及(v)响应于机器学习模型针对多个度量被优化,提供机器学习模型作为经训练的机器学习模型。
通过本公开的一个方面,提供了一种系统,该系统包括一个或多个数据处理器和包含指令的非暂态计算机可读存储介质。指令在被执行时使一个或多个数据处理器执行本文所述的一种或多种方法的一部分或全部。
通过本公开的另一方面,提供了一种有形地实施在非暂态机器可读存储介质中的计算机程序产品,其包括被配置为使一个或多个数据处理器执行本文描述的一种或多种方法的全部或部分的指令。
在参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加清楚。
附图说明
图1是结合示例性实施例的分布式环境的简化框图。
图2描绘了根据各种实施例的示例性类型的超参数。
图3描绘了根据各种实施例的示例性类型的度量。
图4图示了根据各种实施例的超参数调优系统。
图5描绘了根据各种实施例的与度量相关联的示例性规范集。
图6描绘了说明由根据各种实施例的超参数调优系统执行的训练过程的流程图。
图7描绘了说明由根据各种实施例的超参数调优系统执行的验证过程的流程图。
图8描绘了用于实现各种实施例的分布式系统的简化图。
图9是根据各种实施例的系统环境的一个或多个组件的简化框图,通过该系统环境可以将实施例系统的一个或多个组件提供的服务提供为云服务。
图10图示了可以用于实现各种实施例的示例计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些发明性实施例的透彻理解。但是,显然可以在没有这些具体细节的情况下实践各种实施例。附图和描述并非旨在限制。“示例性”一词在本文用于表示“用作示例、实例或说明”。本文描述为“示例性”的任何实施例或设计不一定被解释为优于或有利于其它实施例或设计。
引言
数字助理是人工智能驱动的接口,其帮助用户在自然语言交谈中完成各种任务。对于每个数字助理,客户可以组合一个或多个技能(skill)。技能(本文也称为聊天机器人、机器人或技能机器人)是专注于特定类型任务的单个机器人,特定类型任务诸如跟踪库存、提交工时卡和创建费用报告。当最终用户与数字助理对接时,数字助理评估最终用户输入并将交谈路由到适当的聊天机器人和从适当的聊天机器人发出。数字助理可以通过多种通道提供给最终用户,诸如
Figure BDA0003870455610000041
Messenger、SKYPE
Figure BDA0003870455610000042
messenger或短消息服务(SMS)。通道从各种消息传递平台上的最终用户向数字助理及其各种聊天机器人来回传送聊天。这些通道还可以支持用户代理升级、事件发起的交谈、以及测试。
意图(intent)允许聊天机器人理解用户希望聊天机器人做什么。意图由典型用户请求和语句的排列(permutation)组成,也称为话语(例如,获取账户余额、进行购买等)。如本文所使用的,话语或消息可以指在与聊天机器人的交谈期间交换的单词的集合(例如,一个或多个句子)。可以通过提供示出某个用户动作(例如,订购披萨饼)的名称并编译现实生活中的用户语句或通常与触发动作相关联的话语的集合来创建意图。因为聊天机器人的认知(cognition)从这些意图导出,每个意图都可以从鲁棒(一到两打话语)和变化的数据集创建,使得聊天机器人可以解释有歧义的(ambiguous)用户输入。话语的丰富集合使聊天机器人能够在它接收到如“忘记这个订单!”或“取消投递!”—这些意思相同但表达方式不同的消息之类的消息时理解用户想要干什么。意图和属于它们的话语共同构成了聊天机器人的训练语料库(training corpus)。通过用语料库训练机器学习模型,客户可以实质上将该机器学习模型(下文中简称为“模型”)转变为用于将最终用户输入解析为单个意图的参考工具。客户可以通过多轮意图测试和意图训练来提高聊天机器人的认知的敏锐度。
但是,构建可以基于用户话语来确定最终用户意图的聊天机器人是一项具有挑战性的任务,部分原因在于自然语言的微妙性和歧义性以及输入空间(例如,可能的用户话语)的维度和输出空间(意图数量)的大小。因此,聊天机器人可能需要被设计、训练、监视、调试和重新训练,以便提高聊天机器人的性能和与聊天机器人的用户体验。在常规系统中,提供了设计和训练系统来设计和细化模型体系架构以及训练和再训练数字助理或聊天机器人在口语理解(SLU)和自然语言处理(NLP)方面的模型。
在一些情况下,模型被训练为分类器,并被配置为,对于给定的输入(例如,话语),从目标类或类别的集合中预测或推断针对该输入的类或类别。这种分类器通常被训练为生成针对目标类的集合的概率分布,由分类器为该集合中的每个目标类生成概率,并且其中所生成的概率总和为1(或100%,如果表达为百分比的话)。在诸如神经网络之类的分类器中,神经网络的输出层可以使用softmax函数作为其激活函数(activation function)来产生用于该类集合的概率分数的分布。这些概率也被称为置信度分数(confidence score)。具有最高相关联置信度分数的类可以被中输出以作为对输入的答案。
模型的训练是使用训练数据(有时称为经标注的数据)执行的,其中输入和与这些输入相关联的标签(基本事实)是已知的。例如,训练数据可以包括输入x(i),以及对于每个输入x(i),还包括用于这个输入的目标值或正确答案(也称为基本事实)y(i)。一对(x(i),y(i))被称为训练样本,并且训练数据可以包括许多此类训练样本。例如,用于训练用于聊天机器人的模型的训练数据可以包括话语的集合,以及对于集合中的每个话语,还包括针对这个话语的已知(基本事实)类。训练数据中所有输入x(i)的空间可以用X表示,并且所有对应目标y(i)的空间可以用Y表示。训练神经网络的目标是学习如下假设函数“h()”,即,该函数将训练输入空间X映射到目标值空间Y,使得h(x)是用于y的对应值的良好预测器。在一些实施方式中,作为推导假设函数的一部分,成本或损失函数被定义,其测量用于输入的基本事实值与由模型针对这个输入所预测的值之间的差异。作为训练的一部分,这个成本或损失函数被最小化。可以使用训练技术(诸如与神经网络一起使用的反向传播训练技术),其迭代地修改/操纵与神经网络中感知器(perceptron)的输入相关联的权重,目标是使与该神经网络提供的(一个或多个)输出相关联的损失函数最小化。
如前所述,标准的超参数调优算法在考虑单个目标(例如,模型准确性)的情况下执行超参数的调优操作。此类标准超参数调优算法的缺点是它在执行优化过程时忽略了其它重要目标(例如,回归误差)。此外,标准的超参数调优机制只考虑单个数据集来训练/评估机器学习模型。尽管一些超参数调优算法在评估模型时考虑多个数据集,但这些数据集中的每个数据集在机器学习模型的训练中被认为具有相同级别的重要性。
因而,需要不同的方法来解决这些问题。本公开提供了超参数调优系统和技术,其在一次考虑多个度量的同时对函数进行优化,即,执行多目标优化。每个度量被指派表示该度量对机器学习模型的性能的重要性级别的权重。超参数调优系统和技术还提供在考虑不同重要性级别的不同数据集的同时对超参数进行调优。具体而言,为每个数据集指派权重,其指定该数据集在训练机器学习模型中的重要性。此外,超参数调优系统和技术使一个或多个约束能够用于正被训练的机器学习模型。训练基础设施(在本文中也称为超参数调优系统)采用各种自动化技术来自动识别、设置和调优用于训练模型的超参数,使得经训练的模型符合并满足为模型指定的约束。以这种方式,本公开的超参数调优系统提供了跨不同数据集和不同度量有效的单个机器学习模型。
机器人系统
机器人(也称为技能、聊天机器人、聊天者机器人或谈话机器人)是可以与最终用户执行交谈的计算机程序。机器人通常可以通过使用自然语言消息的消息传递应用来对自然语言消息(例如,问题或评论)做出响应。企业可以使用一个或多个机器人系统通过消息传递应用与最终用户通信。可以被称为通道的消息传递应用可以是最终用户已经安装并熟悉的最终用户优选的消息传递应用。因此,最终用户无需下载和安装新应用即可与机器人系统聊天。消息传递应用可以包括例如上层(OTT)消息传递通道(诸如FacebookMessenger、Facebook WhatsApp、微信、Line、Kik、Telegram、Talk、Skype、Slack或SMS)、虚拟私人助理(诸如Amazon Dot、Echo或Show、Google Home、Apple HomePod等)、扩展了具有聊天能力的本地或混合/响应移动应用或web应用的移动和web应用扩展,或基于语音的输入(诸如具有使用Siri、Cortana、Google Voice或其它言语输入进行交互的界面的设备或应用)。
图1是结合根据某些实施例的聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,其使DABP 102的用户能够创建和部署数字助理或聊天机器人系统。DABP 102可以被用于创建一个或多个数字助理(或DA)或聊天机器人系统。例如,如图1中所示,表示特定企业的用户104可以使用DABP 102为特定企业的用户创建和部署数字助理106。例如,DABP 102可以被银行用来创建一个或多个数字助理以供银行的客户使用。同一个DABP 102平台可以被多个企业用来创建数字助理。作为另一个示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建和部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
图1是结合根据某些实施例的聊天机器人系统的环境100的简化框图。环境100包括数字助理构建器平台(DABP)102,其使DABP 102的用户能够创建和部署数字助理或聊天机器人系统。DABP 102可以被用于创建一个或多个数字助理(或DA)或聊天机器人系统。例如,如图1中所示,表示特定企业的用户104可以使用DABP 102为特定企业的用户创建和部署数字助理106。例如,DABP 102可以被银行用来创建一个或多个数字助理以供银行的客户使用。同一个DABP 102平台可以被多个企业用来创建数字助理。作为另一个示例,餐馆(例如,披萨店)的所有者可以使用DABP 102来创建和部署使餐馆的客户能够订购食物(例如,订购披萨)的数字助理。
数字助理(诸如使用DABP 102构建的数字助理106)可以被用于经由数字助理与其用户108之间的基于自然语言的交谈来执行各种任务。作为交谈的一部分,用户可以向数字助理106提供一个或多个用户输入110并从数字助理106得到响应112。交谈可以包括输入110和响应112中的一个或多个。经由这些交谈,用户可以请求由数字助理执行一个或多个任务,并且作为响应,数字助理被配置为执行用户请求的任务并以对用户的适当响应来响应。
用户输入110一般是自然语言形式并且被称为话语。用户话语110可以是文本形式,诸如当用户键入句子、问题、文本片段或甚至单个词并将文本作为输入提供给数字助理106时。在一些实施例中,用户话语110可以是音频输入或言语形式,诸如当用户说出或讲出作为输入提供给数字助理106的某事时。话语通常是用户108所说的语言。例如,话语可以是英语,或某种其它语言。当话语是言语形式时,该言语输入被转换成该特定语言的文本形式话语,然后由数字助理106处理文本话语。可以使用各种言语到文本处理技术来将言语或音频输入转换成文本话语,其然后由数字助理106处理。在一些实施例中,言语到文本的转换可以由数字助理106本身完成。
话语(其可以是文本话语或言语话语)可以是片段、句子、多个句子、一个或多个单词、一个或多个问题、上面提到的类型的组合等。数字助理106被配置为将自然语言理解(NLU)技术应用于话语以理解用户输入的含义。作为针对话语的NLU处理的一部分,数字助理106被配置为执行处理以理解话语的含义,这涉及识别与话语对应的一个或多个意图和一个或多个实体。在理解话语的含义后,数字助理106可以响应于所理解的含义或意图来执行一个或多个动作或操作。出于本公开的目的,假设话语是由数字助理106的用户108直接提供的文本话语或者是输入的言语话语到文本形式的转换的结果。但是,这并不旨在以任何方式进行限制或限定。
例如,用户输入108可以通过提供诸如“我想订购披萨”的话语来请求订购披萨。在接收到这种话语后,数字助理106被配置为理解话语的含义并采取适当的动作。适当的动作可以涉及,例如,用请求用户输入关于用户想要订购的披萨的类型、披萨的尺寸、披萨的任何配料等的问题来对用户进行响应。由数字助理提供的响应106也可以是自然语言形式并且通常是与输入话语相同的语言。作为生成这些响应的一部分,数字助理106可以执行自然语言生成(NLG)。对于订购披萨的用户,经由用户和数字助理106之间的交谈,数字助理可以指导用户提供用于披萨订购所需的所有信息,然后在交谈话结束时使披萨被订购。数字助理106可以通过向用户输出指示披萨已被订购的信息来结束交谈。
在概念层面,数字助理106响应于从用户接收到的话语执行各种处理。在一些实施例中,这个处理涉及一系列或流水线的处理步骤,包括例如理解输入话语的含义(使用NLU)、确定响应于话语而要执行的动作、在适当的情况下使动作被执行、响应于用户话语而生成要向用户输出的响应、向用户输出响应等。NLU处理可以包括解析接收到的输入话语以理解话语的结构和含义、精炼和重构话语以便为获得话语的更易于理解的形式(例如,逻辑形式)或结构。生成响应可以包括使用自然语言生成(NLG)技术。因此,由数字助理执行的自然语言处理(NLP)可以包括NLU和NLG处理的组合。由数字助理(诸如数字助理106)执行的NLU处理可以包括各种NLU相关处理,诸如句子解析(例如,标记化、词形还原、识别句子的词性标签、识别句子中的命名实体、生成依赖树来表示句子结构、将句子拆分为子句、分析单个子句、解析照应,执行分块等)。在某些实施例中,NLU处理或其一部分由数字助理106本身执行。在一些其它实施例中,数字助理106可以使用其它资源来执行NLU处理的一些部分。例如,可以通过使用解析器、词性标注器和/或命名实体识别器处理句子来识别输入话语句子的句法和结构。在一种实施方式中,对于英语,使用诸如由斯坦福NLP组提供的解析器、词性标注器和命名实体识别器来分析句子结构和句法。这些是作为斯坦福CoreNLP工具包的一部分提供的。
虽然本公开中提供的各种示例显示了英语语言的话语,但这仅意味着作为示例。在某些实施例中,数字助理106也能够处理英语以外的语言的话语。数字助理106可以提供被配置用于对不同语言执行处理的子系统(例如,实现NLU功能的组件)。这些子系统可以被实现为可插拔单元,可以使用来自NLU核心服务器的服务调用来调用这些单元。这使得NLU处理对于每种语言都具有灵活性和可扩展性,包括允许不同的处理顺序。可以为各个语言提供语言包,其中语言包可以注册可以从NLU核心服务器提供服务的子系统列表。
数字助理(诸如图1中描绘的数字助理106)可以通过各种不同的通道对其用户108可用或可访问,这些通道诸如但不限于经由某些应用、经由社交媒体平台、经由各种消息服务和应用(例如,即时消息传递应用)以及其它应用或通道。单个数字助理可以配置几个通道,使得它可以同时在不同的服务上运行和被访问。
数字助理或聊天机器人系统一般包含一个或多个技能或与一个或多个技能相关联。在某些实施例中,这些技能是单独的聊天机器人(称为技能机器人),它们被配置为与用户交互并完成特定类型的任务,诸如跟踪库存、提交工时卡、创建费用报告、订购食物、检查银行账户、进行预订、购买小工具等。例如,对于图1中描绘的实施例,数字助理或聊天机器人系统106包括技能116-1、116-2等。出于本公开的目的,术语“技能”和“多个技能”分别与术语“技能机器人”和“多个技能机器人”同义使用。
与数字助理相关联的每个技能通过与用户的交谈来帮助数字助理的用户完成任务,其中交谈可以包括由用户提供的文本或音频输入以及由技能机器人提供的响应的组合。这些响应可以是给用户的文本或音频消息的形式和/或使用呈现给用户以供用户进行选择的简单用户接口元素(例如,选择列表)提供。
技能或技能机器人可以通过多种方式关联或添加到数字助理。在一些情况下,技能机器人可以由企业开发,然后使用DABP 102添加到数字助理,例如,通过由DABP 102提供的用于向数字助理注册技能机器人的用户界面。在其它情况下,可以使用DABP 102开发和创建技能机器人,然后将其添加到使用DABP 102创建的数字助理中。在还有其它情况下,DABP 102提供在线数字商店(称为“技能商店”),其提供针对广泛任务的多种技能。通过技能商店提供的技能也可以暴露各种云服务。为了将技能添加到正在使用DABP 102生成的数字助理,DABP 102的用户可以经由DABP 102访问技能商店,选择期望的技能,并指示所选择的技能将被添加到使用DABP 102创建的数字助理。来自技能商店的技能可以按原样或以修改后的形式添加到数字助理(例如,DABP 102的用户可以选择和克隆技能商店提供的特定技能机器人,对所选择的技能机器人进行定制或修改,然后将经修改的技能机器人添加到使用DABP 102创建的数字助理)。
可以使用各种不同的体系架构来实现数字助理或聊天机器人系统。例如,在某些实施例中,可以使用主机器人/子(或从)机器人范例或体系架构来实现使用DABP 102创建和部署的数字助理。根据这种范式,数字助理被实现为与一个或多个作为技能机器人的子机器人交互的主机器人。例如,在图1所示的实施例中,数字助理106包括主机器人114和作为主机器人114的子机器人的技能机器人116-1、116-2等。在某些实施例中,数字助理106本身被认为充当主机器人。
根据主-子机器人体系架构实现的数字助理使数字助理的用户能够通过统一的用户界面(即,经由主机器人)与多种技能进行交互。当用户与数字助理对接时,由主机器人接收用户输入。然后,主机器人执行处理以确定用户输入话语的含义。主机器人然后确定用户在话语中请求的任务是否可以由主机器人自己处置,否则主机器人选择适当的技能机器人来处置用户请求并将交谈路由到所选择的技能机器人。这使得用户能够通过公共的单个界面与数字助理交谈,并且仍然提供使用被配置为执行特定任务的几个技能机器人的能力。例如,对于为企业开发的数字助理,数字助理的主机器人可以与具有特定功能性的技能机器人(诸如用于执行与客户关系管理(CRM)相关的功能的CRM机器人、用于执行与企业资源规划(ERP)相关的功能的ERP机器人、用于执行与人力资本管理(HCM)相关的功能的HCM机器人等)交互。以这种方式,数字助理的最终用户或消费者只需要知道如何通过公共主机器人界面来访问数字助理,而在幕后提供了多个技能机器人来处置用户请求。
在某些实施例中,在主机器人/子机器人基础设施中,主机器人被配置为知道技能机器人的可用列表。主机器人可以访问识别各种可用技能机器人的元数据,并且对于每个技能机器人,技能机器人的能力包括该技能机器人能够执行的任务。在接收到话语形式的用户请求后,主机器人被配置为从多个可用的技能机器人中识别或预测可以最好地服务或处置用户请求的特定技能机器人。然后,主机器人将话语(或话语的一部分)路由到该特定技能机器人以进行进一步处置。因此,控制从主机器人流向技能机器人。主控机器人可以支持多个输入和输出通道。在某些实施例中,可以借助一个或多个可用技能机器人执行的处理来执行该路由。例如,如下面所讨论的,可以训练技能机器人来推断话语的意图,并确定所推断的意图是否与利用其配置了技能机器人的意图相匹配。因此,由主机器人执行的路由可以涉及技能机器人向主机器人传达关于该技能机器人是否已配置有适合处置该话语的意图的指示。
虽然图1中的实施例示出了包括主机器人114和技能机器人116-1、116-2和116-3的数字助理106,但这并不旨在进行限制。数字助理可以包括提供数字助理的功能的各种其它组件(例如,其它系统和子系统)。这些系统和子系统可以仅以软件(例如,存储在计算机可读介质上并且可由一个或多个处理器执行的代码、指令)实现、仅以硬件实现、或以使用软件和硬件的组合的实施方式来实现。
DABP 102提供基础设施以及各种服务和特征,其使DABP 102的用户能够创建包括与数字助理相关联的一个或多个技能机器人的数字助理。在一些情况下,可以通过克隆现有的技能机器人来创建技能机器人,例如,克隆由技能商店提供的技能机器人。如前面所指示的,DABP 102可以提供技能商店或技能目录,其提供用于执行各种任务的多个技能机器人。DABP 102的用户可以从技能商店克隆技能机器人。根据需要,可以对所克隆的技能机器人进行修改或定制。在一些其它情况下,DABP 102的用户使用由DABP 102提供的工具和服务从头开始创建技能机器人。
在某些实施例中,在高级别上,创建或定制技能机器人涉及以下步骤:
(1)为新技能机器人配置设置
(2)为技能机器人配置一个或多个意图
(3)为一个或多个意图配置一个或多个实体
(4)训练技能机器人
(5)为技能机器人创建对话流
(6)根据需要向技能机器人添加自定义组件
(7)测试和部署技能机器人
下面简要介绍上述每个步骤。
(1)为新技能机器人配置设置——可以为技能机器人配置各种设置。例如,技能机器人设计者可以为正被创建的技能机器人指定一个或多个调用名称。这些调用名称(用作技能机器人的标识符)然后可以被数字助理的用户用于显式地调用技能机器人。例如,用户可以在用户的话语中包括调用名称以显式地调用对应的技能机器人。
(2)为技能机器人配置一个或多个意图和相关联的示例话语——技能机器人设计者为正被创建的技能机器人指定一个或多个意图(也称为机器人意图)。然后基于这些指定的意图来训练技能机器人。这些意图表示技能机器人被训练为推断输入话语的类别或类。在接收到话语后,经训练的技能机器人推断话语的意图,其中所推断的意图是从用于训练技能机器人的预定义的意图集中选择的。然后,技能机器人基于为话语推断的意图采取适当的动作来对该话语做出响应。在一些情况下,技能机器人的意图表示技能机器人可以为数字助理的用户执行的任务。每个意图被赋予意图标识符或意图名称。例如,对于为银行训练的技能机器人,为技能机器人指定的意图可以包括“CheckBalance(检查余额)”、“TransferMoney(转账)”、“DepositCheck(兑换支票)”等。
对于为技能机器人定义的每个意图,技能机器人设计者还可以提供代表并说明意图的一个或多个示例话语。这些示例话语旨在表示用户可能针对此意图输入到技能机器人的话语。例如,对于CheckBalance意图,示例话语可以包括“我的储蓄账户余额是多少?”、“我的支票账户中有多少钱?”、“我的账户中有多少钱”等。因而,典型用户话语的各种排列可以被指定为意图的示例话语。
意图及其相关联的示例话语被用作训练数据来训练技能机器人。可以使用各种不同的训练技术。作为这种训练的结果,生成预测模型,该预测模型被配置为将话语作为输入并输出由预测模型为该话语推断的意图。在一些情况下,输入的话语被提供给意图分析引擎(例如,由技能机器人执行的基于规则或基于机器学习的分类器),该引擎被配置为使用经训练的模型来预测或推断输入话语的意图。然后,技能机器人可以基于所推断的意图采取一个或多个动作。
(3)为技能机器人的一个或多个意图配置实体——在一些情况下,可能需要附加的上下文来使技能机器人能够正确对用户请求进行响应。例如,可能存在用户输入话语在技能机器人中解析为相同意图的情况。例如,在上面的示例中,话语“我的储蓄账户余额是多少?”和“我的支票账户里有多少钱?”两者都解析为相同的CheckBalance意图,但这些话语是不同的请求,要求不同的事情。为了澄清此类请求,一个或多个实体可以被添加到意图中。在使用银行技能机器人示例时,定义了称为“支票”和“储蓄”的值的、称为AccountType(账户类型)的实体可以使技能机器人能够解析用户请求并做出适当的响应。在上面的示例中,虽然话语解析为相同的意图,但对于两个话语,与AccountType实体相关联的值是不同的。这使得技能机器人能够为这两个话语执行可能不同的动作,虽然它们解析为相同的意图。可以为技能机器人配置的某些意图指定一个或多个实体。因此,实体被用于向意图本身添加上下文。实体有助于更完整地描述意图并使技能机器人能够完成用户请求。
在某些实施例中,存在两种类型的实体:(a)由DABP 102提供的内置实体,以及(2)可以由技能机器人设计者指定的自定义实体。内置实体是可以用于各种各样的机器人的通用实体。内置实体的示例包括但不限于与时间、日期、地址、号码、电子邮件地址、持续时间、重复时间段、货币、电话号码、URL等相关的实体。自定义实体用于更多定制的应用。例如,对于银行技能,AccountType实体可以由技能机器人设计者定义,其使得能够通过检查用户输入的关键字(如支票、储蓄和信用卡等)来进行各种银行交易。
(4)训练技能机器人——技能机器人被配置为以话语的形式接收用户输入,解析或以其它方式处理接收到的输入,并识别或选择与接收到的用户输入相关的意图。如上面所指示的,必须为此训练技能机器人。在某些实施例中,基于为技能机器人配置的意图和与意图相关联的示例话语(统称为训练数据)来训练技能机器人,使得技能机器人可以将用户输入话语解析为其配置的意图之一。在某些实施例中,技能机器人使用预测模型,该模型使用训练数据进行训练并允许技能机器人辨别用户说什么(或在一些情况下,试图说什么)。DABP 102提供可以被技能机器人设计者用来训练技能机器人的各种不同的训练技术,包括各种基于机器学习的训练技术、基于规则的训练技术和/或它们的组合。在某些实施例中,训练数据的一部分(例如,80%)被用于训练技能机器人模型,而另一个部分(例如,剩余的20%)被用于测试或验证模型。一旦经过训练,经训练的模型(有时也称为经训练的技能机器人)就可以被用于处置和对用户话语进行响应。在某些情况下,用户的话语可以是只要求单个答案而不要求进一步交谈的问题。为了处置此类情况,可以为技能机器人定义Q&A(问答)意图。Q&A意图的创建方式与常规意图相似。用于Q&A意图的对话流可以与用于常规意图的对话流不同。例如,与常规意图不同,用于Q&A意图的对话流可以不涉及向用户索取附加的信息(例如,用于特定实体的值)的提示。
(5)为技能机器人创建对话流——为技能机器人指定的对话流描述了当响应于接收到的用户输入而解析针对技能机器人的不同意图时技能机器人会如何反应。对话流定义了技能机器人将采取的操作或动作(例如,技能机器人如何对用户话语进行响应、技能机器人如何提示用户输入,以及技能机器人如何返回数据)。对话流就像技能机器人所遵循的流程图。技能机器人设计者使用诸如向下标记(markdown)语言之类的语言来指定对话流。在某些实施例中,称为OBotML的YAML版本可以被用于指定技能机器人的对话流。用于技能机器人的对话流定义充当用于交谈本身的模型,即,让技能机器人设计师编排技能机器人与技能机器人所服务的用户之间的交互的模型。
在某些实施例中,用于技能机器人的对话流定义包含三个部分:
(a)上下文部分
(b)默认转变部分
(c)状态部分
上下文部分——技能机器人设计者可以在上下文部分中定义交谈流中使用的变量。可以在上下文部分中命名的其它变量包括但不限于:用于错误处理的变量、用于内置或自定义实体的变量、使技能机器人能够识别和保留用户首选项的用户变量等。
默认转变部分——可以在对话流状态部分或默认转变部分中定义技能机器人的转变。默认转变部分中定义的转变充当回退,并在状态内没有定义适用的转变,或者无法满足触发状态转变所需的条件时被触发。默认转变部分可以被用于定义允许技能机器人优雅地处置意外用户动作的路由。
状态部分——对话流及其相关操作被定义为过渡状态序列,其管理对话流内的逻辑。对话流定义内的每个状态节点都命名提供对话中该点处所需功能性的组件。因此,状态是围绕组件构建的。状态包含特定于组件的特性,并定义在组件执行之后被触发的到其它状态的转变。
可以使用状态部分来处理特殊情况场景。例如,有时可能希望为用户提供暂时离开他们所对接的第一技能以便在数字助理内的第二技能中做一些事情的选项。例如,如果用户正在与购物技能进行交谈(例如,用户已进行了一些购买选择),那么用户可能想要跳转到银行技能(例如,用户可能想要确保他/她有足够的钱用于购买),然后返回购物技能以完成用户的订单。为了解决这个问题,可以将第个技能的对话流定义中的状态部分配置为在同一数字助理中发起与不同的第二技能的交互,然后返回原始对话流。
(6)向技能机器人添加自定义组件——如上所述,在技能机器人的对话流中指定的状态命名提供对应于状态所需的功能性的组件。组件使技能机器人能够执行功能。在某些实施例中,DABP 102提供用于执行广泛功能的预配置组件的集合。技能机器人设计者可以选择这些预配置组件中的一个或多个,并将它们与技能机器人的对话流中的状态相关联。技能机器人设计者还可以使用由DABP 102提供的工具创建自定义或新组件,并将自定义组件与用于技能机器人的对话流中的一个或多个状态相关联。
(7)测试和部署技能机器人——DABP 102提供使技能机器人设计者能够测试正在开发的技能机器人的几个特征。然后可以部署技能机器人并将其包括在数字助理中。
虽然上面的描述描述了如何创建技能机器人,但类似的技术也可以用于创建数字助理(或主机器人)。在主机器人或数字助理级别,可以为数字助理配置内置系统意图。这些内置系统意图被用于识别数字助理本身(即,主机器人)可以处理而无需调用与数字助理相关联的技能机器人的一般任务。为主机器人定义的系统意图的示例包括:(1)退出:当用户发信号通知期望退出数字助理中的当前交谈或上下文时适用;(2)帮助:当用户请求帮助或指导时适用;以及(3)未解决的意图:适用于与退出和帮助意图不很好匹配的用户输入。数字助理还存储关于与数字助理相关联的一个或多个技能机器人的信息。这个信息使主机器人能够选择特定技能机器人来处置话语。
在主机器人或数字助理级别,当用户向数字助理输入短语或话语时,数字助理被配置为执行处理以确定如何路由该话语和相关交谈。数字助理使用路由模型来确定这一点,该模型可以是基于规则的、基于AI的或其组合。数字助理使用路由模型来确定与用户输入话语对应的交谈是要路由到特定技能以进行处理、是由数字助理或主机器人本身根据内置系统意图进行处理,还是在当前交谈流中作为不同的状态进行处置。
在某些实施例中,作为这个处理的一部分,数字助理确定用户输入话语是否显式地使用技能机器人的调用名称来标识技能机器人。如果用户输入中存在调用名称,那么将其视为对与调用名称对应的技能机器人的显式调用。在这种场景中,数字助理可以将用户输入路由到被显式调用的技能机器人以进行进一步处置。如果没有特定或显式调用,那么在某些实施例中,数字助理评估接收到的用户输入话语,并为系统意图和与数字助理相关联的技能机器人计算置信度分数。为技能机器人或系统意图计算的分数表示该用户输入代表技能机器人被配置为执行的任务或代表系统意图的可能性。任何具有超过阈值(例如,置信阈值路由参数)的相关联计算置信度分数的系统意图或技能机器人都将被选择作为进一步评估的候选。然后,数字助理从识别出的候选中选择特定的系统意图或技能机器人以进一步处置用户输入。在某些实施例中,在一个或多个技能机器人被识别为候选之后,与这些候选技能相关联的意图被评估(使用针对每个技能的经训练的模型来评估),并且针对每个意图确定置信度分数。一般而言,具有超过阈值(例如,70%)的置信度分数的任何意图都被视为候选意图。如果选择了特定技能机器人,那么用户话语被路由到这个技能机器人以进行进一步处理。如果选择了系统意图,那么根据所选择的系统意图由主机器人自身执行一个或多个动作。
基于约束和目标的超参数调优
如前所述,聊天机器人可以使用一个或多个机器学习模型来执行各种功能。例如,聊天机器人可以使用机器学习模型,该模型被配置为将话语作为输入并推断或预测每个话语的意图。然后,聊天机器人可以使用模型为话语推断出的意图来确定如何对该话语进行响应。在聊天机器人中实现机器学习模型(也称为模型)通常分两个阶段完成:(1)训练阶段,其中训练数据在一个或多个算法上运行以创建经训练的模型,以及(2)推断阶段,其中经训练的模型被用于基于新数据进行预测。一般提供训练基础设施来实现训练阶段以训练模型。训练基础设施可以由被用于执行训练的工具或应用或软件提供。训练基础设施被配置为在一种或多种算法上运行训练数据以训练或学习算法并创建模型。训练基础设施一般提供支配这个训练过程的超参数。用于这些超参数的值的集合确定用于算法的网络结构(例如,输入层的数量、隐藏层的数量、激活函数等)以及如何训练算法(例如,学习速率、历元(epoch)的数量等)。
图2描绘了根据各种实施例的示例性类型的超参数。超参数可以包括:模型中的层数、用于训练模型的学习算法的类型、学习速率、训练历元的数量、每层中隐藏单元的数量、以及宽度(即,每个隐藏层中的单元的数量)。通常,使用训练基础设施的用户手动设置用于超参数的值。但是,这可能是要求对训练过程有非常深入的了解的非常困难的任务。如接下来将参考图4描述的,提供了根据各种实施例的超参数调优系统,其被配置为以自动方式执行多目标优化,即,优化多个度量的函数(例如,损失函数)。如图3中所示,这些度量可以包括稳定性度量、回归误差度量、置信度分数度量、模型尺寸度量、训练时间或执行时间度量、准确性度量或它们的任何组合。
稳定性度量确保训练过程是稳定的,即,当对训练数据进行微小改变时(例如,当添加或移除一个训练示例时),模型所做的预测不会发生根本改变。回归误差度量最小化模型的多个回归,即,回归误差与模型对一些输入的不正确分类相对应,但该模型的先前版本已正确地对输入进行了分类。置信度分数度量确保模型以高置信度预测某些示例(即,模型不仅做出正确的预测,而且具有高置信度)。模型尺寸度量与经训练的模型的尺寸对应以在用户定义的阈值(例如,100兆字节)内,而训练时间度量与训练模型所用的时间量对应。准确性度量确保经训练的模型达到特定用户定义的准确性级别,例如,在某些验证数据集上达到95%的准确性。换句话说,当机器学习模型在特定的训练数据集上进行训练时,在特定的验证数据集上实现了特定的目标准确性。将认识到的是,训练和验证数据集可以被选择为跨越聊天机器人的所有用例,即,数据集的大小范围从非常小的数据集到跨越一系列应用的非常大的数据集。
本公开的超参数调优系统被配置为关于多个数据集(例如,训练数据集)训练机器学习模型,并关于多个度量评估机器学习模型的性能。根据一些实施例,为训练机器学习模型中使用的每个数据集指派权重,该权重指示该数据集在训练机器学习模型中的重要性。换句话说,指派给数据集的权重与数据集对机器学习模型的训练的影响级别对应。
另外,超参数调优系统被配置为将权重指派给多目标优化中使用的每个度量。具体而言,指派给度量的权重指示该度量对机器学习模型的性能的重要性。如以下将详细描述的,根据支配超参数调优系统的一个或多个策略来执行对度量以及不同数据集的权重的指派。
此外,超参数调优系统使得在训练机器学习模型时指定一个或多个约束。约束可以是强加到机器学习模型上的要求,即,用户期望在经训练的模型中实现的质量或特点。约束可以与训练过程本身相关。可以在开始模型训练之前指定约束。因此,对于给定的约束的集合,训练基础设施采用各种自动化技术来自动识别、设置和调优用于训练机器学习模型的超参数的值,使得经训练的机器学习模型符合并满足约束的集合。
通过一些实施例,超参数调优系统提供了在广泛的验证/测试数据集上验证机器学习模型。超参数调优系统将特定目标值与用于评估机器学习模型性能的一个或多个度量相关联。基于用于多个度量的目标值构造超参数目标函数(例如,损失函数)。此外,如将在下面参考图4详细描述的,超参数调优系统采用不对称损失机制(即,与达到或超过目标的奖励相比,未达到目标会受到严重惩罚)来指派在验证机器学习模型时对不同度量的权重。
转向图4,描绘了根据各种实施例的超参数调优系统。超参数调优系统400包括数据集权重指派单元410、度量选择和权重指派单元420、约束建立单元430和超参数调优器450。超参数调优器450包括优化器451(在本文中也称为作为调优单元)和超参数的集合455。
超参数调优系统400被配置为关于多个数据集(即,训练数据集)训练机器学习模型(例如,与聊天机器人相关联的模型),并基于多个度量来评估机器学习模型的性能。数据集权重指派单元410获得一个或多个数据集(例如数据集1 405A、数据集2 405B和数据集K405C),并根据一些策略415为每个数据集指派权重。指派给数据集的权重与数据集在训练机器学习模型中的重要性对应。为不同的数据集指派不同的权重规定数据集对机器学习模型的训练具有适当的影响(即,根据它们相应的权重)。
作为示例,策略415中的一个策略可以要求机器学习模型实现低回归。照此,数据集权重指派单元410向回归数据集(例如,数据集1 405A)指派比另一类型的数据集更高的权重。作为另一个示例,数据集1 405A可以与从超参数调优系统400的第一客户端获得的数据集对应,并且数据集2 405B可以与从不同于第一客户端的第二客户端获得的数据集对应。数据集1和数据集2中包括的训练数据可以与关于上下文的不同类型的用户话语(由相应客户端提供)对应。假设策略415之一指示第一客户端比第二客户端更重要(例如,第一客户端与超参数调优系统400具有更高的服务水平协议(SLA)),那么与第一客户端对应的数据集(即,数据集1 405A)被指派比数据集2405B更高的权重。而且,将认识到的是,超参数调优系统400的系统管理员在机器学习模型的训练之前确定策略415。加权的数据集405作为第一输入被提供给超参数调优器450。
度量选择和权重指派单元420选择多个度量440(例如度量1 440A、度量2 440B和度量M 440C),用于评估机器学习模型关于一个或多个数据集405的性能。注意的是,度量440与诸如稳定性、准确性、模型尺寸、回归误差等度量对应,如关于图3所描绘和描述的。在一个实施例中,度量选择和权重指派单元420基于某些准则从可用度量的集合440中选择多个度量,例如,度量1 440A、度量2 440B等。例如,超参数调优系统400的第一客户端可能期望机器学习模型强调准确性参数,而超参数调优系统400的另一个客户端可能期望机器学习模型强调另一个度量,例如,回归误差度量。不同客户端的要求可以被存储为策略415之一,基于该策略,度量选择和权重指派单元420选择多个度量用于评估机器学习模型的性能。
度量选择和权重指派单元420还被配置为向每个选择的度量指派权重。指派给特定度量的权重指示该度量对机器学习模型性能的重要性。在一个实施例中,度量选择和权重指派单元420基于超参数调优系统400的客户端的重要性级别向度量指派权重。例如,如果第一客户端比第二客户端更重要(即,第一客户端比第二客户端具有更高的SLA),那么第一客户端所请求的度量被指派比第二客户端所请求的度量更高的权重。作为另一个示例,考虑为域检测训练的机器学习模型。在这种情况下,存在两个度量:域内召回(in-domainrecall)和域外召回(out-of-domain recall),用于评估机器学习模型的性能。在这种域检测模型中,常常期望模型表现良好,即,与域外检测相比,域内检测高于某个阈值水平。在这种情况下,与域外召回度量相比,权重指派单元420向域内召回度量指派更高的权重。多个加权的度量作为第二输入被提供给超参数调优器450。
度量440中的每一个与对应的规范集相关联。规范集包括定义或表征该度量的多个规范参数。如图4中所示,度量1 440A与规范集1 442A相关联,度量2 440B与规范集2442B相关联,度量M 440C与规范集M 442C相关联。将认识到的是,与特定度量相关联的规范集可以相对于与其它度量相关联的规范集独立地配置。参考图5,度量的规范集包括:(1)训练数据集,(2)验证数据集,(3)度量定义,其定义模型在数据集(例如,训练和验证数据集)上满足目标目的的程度,(4)度量的目标分数(即,模型预期满足的度量的分数),(5)度量的惩罚因子,以及(6)度量的奖励因子。
根据一些实施例,可以允许多个度量共享训练和/或验证数据集。但是,如果不同度量之间存在训练和验证数据集的多样性,那么预期机器学习模型将产生更鲁棒的结果。规范集442A、442B和442C中的每一个的规范参数可以被设置为特定值以实现期望的结果。例如,关于回归误差的度量,对应的规范集可以配置如下:
1.训练数据集是基于客户(例如,重要客户)的特定集合建模的。验证数据集包括先前机器学习模型正确分类了的示例,并且预期将被客户广泛使用的示例。
2.用于回归误差的度量定义被设置为准确性。
3.目标分数被设置为95%,即,预期在旧版本的机器学习模型中正确标注了的示例中的至少95%在新版本的机器学习模型中也被正确标注。
4.惩罚系数被设置为100,并且奖励系数被设置为1。在这样做时,每低于95%一个百分点将比高于95%的一个百分点受到多100倍的惩罚。
在一个实施例中,关于稳定性的度量,对应的规范集可以配置如下:
1.训练数据集被设置为尺寸小的数据集,因为预期小数据集产生更高的不稳定性。验证数据集的尺寸可以被设置为比训练数据集合理地大。
2.用于稳定性的度量定义被设置为机器学习模型在验证数据集上的准确性分数的标准偏差,例如,当机器学习模型被训练10次时。
3.目标分数被设置为5%,即,期望机器学习模型的准确性分数的变化最大为5%。
4.惩罚因子被设置为10,并且奖励因子被设置为1。在这样做时,未满足目标分数的每个百分点比超过目标分数一个百分点受到多10倍的惩罚。
在一个实施例中,关于置信度分数的度量,对应的规范集可以配置如下:
1.训练数据集的尺寸可以从小到大,并且因领域而异。验证数据集可以包含属于其意图类标签的域内示例。
2.用于置信度分数度量的度量定义被设置为模型的置信度阈值大于25%(即,预测是正确的,并且比任何其它预测的置信度至少高25%)的句子的比例(fraction)。
3.目标分数被设置为85%,即,期望至少85%的示例被高置信度地标注。
4.惩罚因子被设置为10,并且奖励因子被设置为1。
应该认识到的是,上述规范集的配置旨在是说明性而非限制性的。系统管理员可以基于不同的需求以任何其它方式配置每个规范集。另外,下面参考超参数调优器450描述在验证机器学习模型中使用不同的规范集。
根据一些实施例,超参数调优系统400使用户(例如,系统管理员)能够为机器学习模型的超参数调优指定一个或多个约束。该一个或多个约束经由约束建立单元430指定。该一个或多个约束作为第三输入提供给超参数调优器450。每个约束是强加在机器学习模型的超参数调优上的要求,即,每个约束是经训练的机器学习模型要满足的要求。给定一个或多个约束,超参数调优器450被配置为识别影响每个约束的超参数的集合,指定识别出的超参数的值,并迭代地对超参数进行调优,直到经训练的机器学习模型满足一个或多个约束中的每一个,如下所述。
在一个实施例中,对于一个或多个约束中的每一个,超参数调优器450从影响每个约束的超参数的集合455中识别一个或多个超参数。超参数调优器450通过改变超参数的值并确定超参数值的变化是否影响与约束相关联的值来识别影响该约束的一个或多个超参数。此外,将认识到的是,影响第一约束的超参数的第一集合可以不同于影响第二约束的超参数的第二集合。
一旦识别出影响每个约束的一个或多个超参数,超参数调优器450就为超参数的集合455指定值并且迭代地调优超参数,直到满足每个约束。作为示例,考虑超参数的集合455包括五个超参数:H=[h1,h2,h3,h4,h5]。另外,为了说明,考虑用户指定两个约束C1和C2,其中超参数调优器450已经识别出超参数h1和h3影响约束C1,并且超参数h2、h3和h5影响约束C2。
超参数调优器450的优化器451(本文也称为调优单元)指定用于超参数的集合H的值,即,V(H)=[v(h1),v(h2),v(h3),v(h4),v(h5)],在本文称为超参数的配置。注意的是,优化器451以随机方式指派超参数的初始配置。另外,关于约束C1,优化器迭代地改变超参数h1和/或h3的值(同时维持h2、h4和h5的值),直到满足约束C1。注意的是,当影响约束的超参数的值满足约束所强加的要求时,就会满足该约束。关于约束C2,优化器451迭代地改变/修改超参数h2、h4和/h5的值(同时维持h1和h3的值),直到满足约束C2。注意的是,优化器在关于一个或多个数据集训练机器学习模型时执行上述迭代。具体而言,如下所述,优化器451确定满足每个约束的超参数的最优配置,同时针对多个度量优化机器学习模型的目标函数(例如,成本或损失函数)。在一个实施例中,用户指定的约束的示例包括诸如以下的约束:
-给定批次的推断时延应小于特定阈值,例如,对于为1的批次尺寸,时延应小于50毫秒。
-要求经训练的模型的最大尺寸低于某个指定的阈值(例如,10MB)。
-模型的训练时间要小于某个特定于用户的时间阈值,例如,训练时间要小于或等于五分钟。
另外,在一些实施例中,由用户指定的多个约束被优先化。例如,每个约束被指派反映履行这个约束的重要性级别。在一些实施例中,可以指定约束,使得经训练的机器学习模型必须履行一些约束,而履行其它约束是期望的但是是可选的。
超参数调优器450的优化器451构造/制定要优化的目标函数。目标函数是损失函数或成本函数,其用作用一个或多个训练/验证数据集训练/验证机器学习模型的性能指示器。在一个实施例中,目标函数的自变量是与机器学习模型相关联的超参数的集合,该模型由优化器451优化。目标函数的值是每个度量的实际值与为每个度量配置的目标值之间的差的加权组合。该加权组合中每个度量的权重取决于该度量是超过还是未能超过目标值。具体而言,使用非对称损失技术,在该技术中,(与超过目标值相比)与未能达到目标值相关联的更高权重被指派给度量。
例如,根据一个实施例,目标函数可以如下制定:如果v是超参数值的向量,mi(v)被表示为v上的第i个度量的值,ti被表示为第i个度量的目标值,并且pi和bi分别被表示第i个度量的惩罚因子和奖励因子,那么目标函数或损失函数(L(v))可以被制定为:
L(v)=∑i pi max(ti-mi(v),0)-bi max(mi(v)-ti,0)
优化器451对与机器学习模型相关联的超参数的集合455进行调优,以便在多个度量上优化目标函数(例如,获得损失函数的最小值)。优化器可以利用基于网格的方法、梯度搜索方法和贝叶斯方法之一来对超参数的集合进行调优。接下来参考图5和图6描述关于超参数的调优的细节。以这种方式,超参数调优器450通过对超参数的集合进行调优来训练/验证机器学习模型,以实现关于不同的加权度量的最优性能,同时确保满足一个或多个约束中的每一个。换句话说,超参数调优系统400通过在不同的加权数据集上训练机器学习模型来执行多个加权度量的优化,同时支持一个或多个用户指定的约束。在针对多个度量优化机器学习模型后,超参数调优系统400输出经训练/验证的ML模型连同超参数的配置,其对目标函数最优化并且满足一个或多个约束。在上述实施例中,优化器451构造并优化目标函数。注意的是,如上所述的超参数调优器450的配置并非旨在限制本公开的范围。例如,超参数调优器450可以包括制定由优化器451优化的目标函数的目标函数制定单元(未示出)。
图6描绘了简化的流程图600,其描绘根据某些实施例的由超参数调优系统执行的训练过程。图6中描绘的处理可以在由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图6中呈现并在下文描述的方法旨在是说明性而非限制性的。虽然图6描绘了以特定顺序或次序发生的各种处理步骤,但这并不是限制性的。在某些替代实施例中,可以以某种不同的次序执行步骤,或者也可以并行地执行一些步骤。
在步骤610中,获得用于训练机器学习模型的数据集。在步骤620中,超参数调优系统根据策略为每个获得的数据集指派权重。注意的是,为不同的数据集指派不同的权重允许数据集对机器学习模型的训练具有适当的影响(即,根据它们各自的权重)。
在步骤630中,选择多个度量来评估机器学习模型在所获得的数据集上的性能。例如,如图3中所描绘的一个或多个度量由用户(例如,系统管理员)选择以用于评估机器学习模型的性能。对于每个选择的度量,根据另一个策略将权重指派给该度量,以便指示该度量对机器学习模型的性能的重要性(步骤640)。在步骤650中,用户建立一个或多个约束。每个约束是用户期望在经训练的机器学习模型中实现的质量或特点。换句话说,每个约束是强加在机器学习模型上的要求。
在步骤660中,该过程基于输入的加权度量和超参数的集合455来制定/构造函数(即,目标函数)。在一个实施例中,目标函数是损失函数或成本函数,其用作用一个或多个数据集训练机器学习模型的性能指示器。
在步骤670中,该过程迭代地对与机器学习模型相关联的超参数的集合进行调优,以便针对多个度量优化(例如,获得目标函数的最优值)机器学习模型。例如,在加权数据集上训练机器学习模型时,通过改变超参数的值并确定改变超参数的值是否影响与约束和/或函数相关联的值来识别影响一个或多个约束和/或函数的一个或多个超参数。
在一个实施例中,在对超参数调优的过程中,该过程评估超参数的当前配置(即,超参数的值)、函数的值,并确定当前配置是否满足一个或多个约束中的每一个。如果违反了约束中的至少一个和/或函数的值不是最优的,那么调优过程修改一个或多个超参数的值以获得超参数的新配置,并基于新配置继续训练机器学习模型。注意的是,当前配置是否违反特定约束的确定是通过确定影响该约束的一个或多个超参数的值是否满足该约束所强加的要求来执行的。另外,通过将函数的值与经由超参数的不同配置而获得的函数的新值进行比较,来确定函数的值(指示机器学习模型相对于当前配置的性能)是否是最优的。
以这种方式,调优过程迭代通过超参数值的空间,直到达到产生函数的最优值(并且不违反任何约束)的配置。而且,将认识到的是,对超参数进行调优的过程可以从以随机方式指派的超参数的初始配置开始。此外,调优过程可以实现随机搜索方法、贝叶斯搜索方法、分支定界方法、网格搜索方法、遗传算法等中的一种来搜索超参数值的空间以获得新的超参数配置。在机器学习模型被优化后,机器学习模型(连同实现经优化的机器学习模型的超参数的值)作为经训练的机器学习模型被输出给用户。
图7描绘了简化流程图700,其描绘根据某些实施例的由超参数调优系统执行的验证过程。图7中描绘的处理可以在由相应系统、硬件或其组合的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中实现。软件可以存储在非暂态存储介质上(例如,存储器设备上)。图7中呈现并在下文描述的方法旨在是说明性而非限制性的。虽然图7描绘了以特定顺序或次序发生的各种处理步骤,但这并不是限制性的。在某些替代实施例中,可以以某种不同的次序执行步骤,或者也可以并行地执行一些步骤。
在步骤710中,选择用于评估机器学习模型的性能并且机器学习模型的超参数将针对其被调优的多个度量。在步骤720处,根据准则配置与每个选择的度量相关联的规范集。具体而言,基于准则将值指派给包括在规范集中的规范参数。例如,如果期望减少回归误差,那么与回归误差度量相关联的规范集如下配置:为目标分数设置低值,并且为与回归误差度量对应的惩罚因子设置高值。作为示例,目标分数可以被设置为90%,即,预期先前正确标注了的训练示例中的至少90%也被当前版本的机器学习模型正确标注。另外,设置高惩罚因子(例如,100的惩罚因子)意味着低于90%的每个百分点(即,机器学习模型的性能)受到的惩罚比高于90%的百分点多100倍。在以这种方式配置回归误差度量的规范集时,回归误差将主导目标函数(即,损失函数)并且图4的超参数调优器执行使回归误差最小化的超参数的调优。
在步骤730中,为每个度量计算度量分数。具体而言,所选择的度量在验证数据集上进行评估,这为每个度量产生度量分数。在步骤740中,将针对每个度量计算的度量分数与用于该度量的对应目标分数进行比较。在一个实施例中,计算度量分数与度量的目标分数之间的差。如果度量分数高于目标分数,那么该差乘以与该度量相关联的奖励因子。但是,如果度量分数低于目标分数,那么将该差乘以惩罚因子。在步骤750中,基于在步骤740中执行的处理来制定目标函数,例如,损失函数。具体而言,损失函数被确定为(度量分数与目标分数之间的)差(其乘以对应的奖励因子或者惩罚因子)的总和。此后,过程移动到步骤760以优化制定的目标函数。
在步骤760中,超参数调优器迭代地对与机器学习模型相关联的超参数进行调优,以便优化在步骤750中制定的加权损失函数(例如,获得损失函数的最小值)。在一个实施例中,在调优超参数时,超参数调优器为当前配置(即,超参数的值)评估损失函数的值。超参数调优器还通过将损失函数的值与经由超参数的不同配置获得的损失函数的新值进行比较来确定损失函数的该值是否是最优的。
以这种方式,调优过程迭代通过超参数值的空间,直到达到产生损失函数的最优值的配置。对超参数进行调优的过程可以从以随机方式指派的超参数的初始配置开始。此外,调优过程可以实现搜索算法来探索超参数空间,以便获得新的超参数配置。超参数调优器可以利用随机搜索方法、贝叶斯搜索方法、分支定界方法等中的一种来搜索超参数空间。在优化损失函数(即,达到损失函数的最小值)后,超参数调优器将经验证的机器学习模型连同实现经优化的损失函数的超参数值作为输出提供给用户。
说明性系统
图8描绘了分布式系统800的简化图。在所示示例中,分布式系统800包括经由一个或多个通信网络810耦合到服务器812的一个或多个客户端计算设备802、804、806和808。客户端计算设备802、804、806和808可以被配置为执行一个或多个应用。
在各种示例中,服务器812可以适于运行一个或多个服务或软件应用,该服务或软件应用使得能够实现本公开中描述的一个或多个实施例。在某些示例中,服务器812还可以提供可以包括非虚拟和虚拟环境的其它服务或软件应用。在一些示例中,这些服务可以作为基于web的服务或云服务,诸如在软件即服务(SaaS)模型下,提供给客户端计算设备802、804、806和/或808的用户。操作客户端计算设备802、804、806和/或808的用户进而可以利用一个或多个客户端应用与服务器812交互以利用由这些组件提供的服务。
在图8所描绘的配置中,服务器812可以包括实现由服务器812执行的功能的一个或多个组件818、820和822。这些组件可以包括可以由一个或多个处理器执行的软件组件、硬件组件或其组合。应该认识到的是,各种不同的系统配置是可能的,其可以与分布式系统800不同。因此,图8中所示的示例是用于实现示例系统的分布式系统的一个示例并且不旨在进行限制。
用户可以使用客户端计算设备802、804、806和/或808来执行一个或多个应用、模型或聊天机器人,这些应用、模型或聊天机器人可以生成一个或多个事件或模型,然后可以根据本公开的教导来实现或服务这些事件或模型。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的接口。客户端设备也可以经由该接口向用户输出信息。虽然图8仅描绘了四个客户端计算设备,但可以支持任意数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,诸如便携式手持式设备、通用计算机,诸如个人计算机和膝上型计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传送设备、传感器和其它感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,Microsoft
Figure BDA0003870455610000311
Apple
Figure BDA0003870455610000312
或类UNIX操作系统、Linux或类Linux操作系统,诸如Google ChromeTMTMOS),包括各种移动操作系统(例如,Microsoft Windows
Figure BDA0003870455610000321
Windows
Figure BDA0003870455610000322
AndroidTM
Figure BDA0003870455610000323
Palm
Figure BDA0003870455610000324
)。便携式手持式设备可以包括蜂窝电话、智能电话(例如,
Figure BDA0003870455610000325
)、平板电脑(例如,
Figure BDA0003870455610000326
)、个人数字助理(PDA)等。可穿戴设备可以包括Google
Figure BDA0003870455610000327
头戴式显示器和其它设备。游戏系统可以包括各种手持式游戏设备、具有互联网功能的游戏设备(例如,具有或不具有
Figure BDA0003870455610000328
手势输入设备的Microsoft
Figure BDA0003870455610000329
游戏机、Sony
Figure BDA00038704556100003210
系统、由
Figure BDA00038704556100003211
提供的各种游戏系统以及其它)等。客户端设备可以能够执行各种不同的应用,诸如各种与互联网相关的应用、通信应用(例如,电子邮件应用、短消息服务(SMS)应用),并且可以使用各种通信协议。
(一个或多个)网络810可以是本领域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,包括但不限于TCP/IP(传输控制协议/互联网协议)、SNA(系统网络体系架构)、IPX(互联网分组交换)、
Figure BDA00038704556100003212
等。仅仅作为示例,(一个或多个)网络610可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、互联网、虚拟网络、虚拟专用网(VPN)、内联网、外联网、公共电话交换网(PSTN)、红外网络、无线网络(例如,在任何电气和电子协会(IEEE)1002.11协议套件、
Figure BDA00038704556100003213
和/或任何其它无线协议下操作的网络)和/或这些和/或其它网络的任意组合。
服务器812可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、
Figure BDA00038704556100003214
服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器812可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其它计算体系架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活的池。在各种示例中,服务器812可以适于运行提供前述公开中描述的功能的一个或多个服务或软件应用。
服务器812中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。服务器812还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关接口)服务器、
Figure BDA0003870455610000331
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从
Figure BDA0003870455610000332
Figure BDA0003870455610000333
(国际商业机器)等商购获得的数据库服务器。
在一些实施方式中,服务器812可以包括一个或多个应用以分析和整合从客户端计算设备802、804、806和808的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于从一个或多个第三方信息源和连续数据流接收到的
Figure BDA0003870455610000334
馈送、
Figure BDA0003870455610000335
更新或实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等相关的实时事件。服务器812还可以包括经由客户端计算设备802、804、806和808的一个或多个显示设备显示数据馈送和/或实时事件的一个或多个应用。
分布式系统800还可以包括一个或多个数据储存库814、816。在某些示例中,这些数据储存库可以被用于存储数据和其它信息。例如,数据储存库814、816中的一个或多个可以被用于存储信息,诸如与聊天机器人性能或生成的模型相关的信息,以供服务器812在根据各种实施例执行各种功能时使用的聊天机器人使用。数据储存库814、816可以驻留在各种位置。例如,服务器812使用的数据储存库可以在服务器812本地或可以远离服务器812并且经由基于网络的连接或专用连接与服务器812通信。数据储存库814、816可以是不同类型的。在某些示例中,服务器812使用的数据储存库可以是数据库,例如关系数据库,诸如由Oracle公司
Figure BDA0003870455610000336
和其它供应商提供的数据库。这些数据库中的一个或多个可以适于响应于SQL格式的命令来事项数据库中数据的存储、更新和检索。
在某些示例中,应用还可以使用数据储存库814、816中的一个或多个来存储应用数据。应用使用的数据储存库可以是不同类型的,诸如,例如键-值存储储存库、对象存储储存库或文件系统支持的通用存储储存库。
在某些示例中,本公开中描述的功能可以经由云环境作为服务来提供。图9是根据某些示例的其中各种服务可以被提供为云服务的基于云的系统环境的简化框图。在图9中描绘的示例中,云基础设施系统902可以提供一个或多个云服务,这些服务可以由使用一个或多个客户端计算设备904、906和908的用户请求。云基础设施系统902可以包括一个或多个计算机和/或服务器,这些计算机和/或服务器可以包括上面针对服务器812描述的这些。云基础设施系统902中的计算机可以被组织为通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
(一个或多个)网络910可以促进客户端904、906和908与云基础设施系统902之间的通信和数据交换。(一个或多个)网络910可以包括一个或多个网络。网络可以是相同的或不同的类型。(一个或多个)网络910可以支持一种或多种通信协议,包括有线和/或无线协议,以促进通信。
图9中描绘的示例仅仅是云基础设施系统的一个示例,并且不旨在进行限制。应该认识到的是,在一些其它示例中,云基础设施系统902可以具有比图9所示的组件更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件配置或布置。例如,虽然图9描绘了三个客户端计算设备,但是在替代示例中可以支持任何数量的客户端计算设备。
术语“云服务”通常用于指由服务提供商的系统(例如,云基础设施系统902)根据需要并且经由诸如互联网之类的通信网络使用户可使用的服务。典型地,在公共云环境中,组成云服务提供商系统的服务器和系统与客户自己的内部服务器和系统不同。云服务提供商的系统由云服务提供商管理。客户因此可以利用由云服务提供商提供的云服务,而不必为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以经由互联网按需订购和使用应用,而用户不必购买用于执行应用的基础设施资源。云服务旨在提供对应用、资源和服务的轻松、可扩展的访问。几个提供商提供云服务。例如,由加利福尼亚州Redwood Shores的
Figure BDA0003870455610000351
公司提供了几种云服务,诸如中间件服务、数据库服务、Java云服务等。
在某些示例中,云基础设施系统902可以使用诸如软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型以及包括混合服务模型的其它模型之类的不同模型提供一个或多个云服务。云基础设施系统902可以包括应用套件、中间件、数据库以及使得能够供给各种云服务的其它资源。
SaaS模型使得应用或软件能够作为服务通过如互联网的通信网络交付给客户,而客户不必为底层应用购买硬件或软件。例如,SaaS模型可以用于为客户提供对由云基础设施系统902托管的按需应用的访问。由
Figure BDA0003870455610000352
公司提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源计划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用及其它的各种服务。
IaaS模型通常用于向客户提供基础设施资源(例如,服务器、存储装置、硬件和联网资源)作为云服务,以提供弹性计算和存储能力。
Figure BDA0003870455610000353
公司提供了各种IaaS服务。
PaaS模型通常用于提供平台和环境资源作为服务,其使得客户能够开发、运行和管理应用和服务,而客户不必采购、构建或维护此类资源。由
Figure BDA0003870455610000354
公司提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用开发解决方案服务,以及其它服务。
云服务通常基于按需自助服务、基于订阅、弹性可缩放、可靠、高度可用和安全的方式提供。例如,客户可以经由订阅订单订购由云基础设施系统902提供的一个或多个服务。然后,云基础设施系统902执行处理,以提供客户的订阅订单中所请求的服务。例如,用户可以使用话语来请求云基础设施系统采取某个动作(例如,意图),如上所述,和/或为本文描述的聊天机器人系统提供服务。云基础设施系统902可以被配置为提供一种或甚至多种云服务。
云基础设施系统902可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统902可以由第三方云服务提供商拥有,并且云服务被提供给任何普通公众客户,其中客户可以是个人或企业。在某些其它示例中,在私有云模型下,可以在组织内(例如,在企业组织内)操作云基础设施系统902,并向组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部门、工资部门等,甚至是企业内的个人。在某些其它示例中,在社区云模型下,云基础设施系统902和所提供的服务可以由相关社区中的几个组织共享。也可以使用各种其它模型,诸如上面提到的模型的混合。
客户端计算设备904、906和908可以是不同类型的(诸如图8中描绘的客户端计算设备802、804、806和808),并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统902交互,诸如请求由云基础设施系统902提供的服务。例如,用户可以使用客户端设备来从聊天机器人请求信息或动作,如本公开中描述的。
在一些示例中,由云基础设施系统902执行的用于提供服务的处理可以涉及模型训练和部署。这种分析可以涉及使用、分析和操纵数据集来训练和部署一个或多个模型。这种分析可以由一个或多个处理器执行,可能并行地处理数据,使用数据来执行模拟等。例如,大数据分析可以由云基础设施系统902执行,用于生成和训练用于聊天机器人系统的一个或多个模型。用于这种分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据Blob(二进制大对象))。
如在图9的示例中所描绘的,云基础设施系统902可以包括基础设施资源930,其用于促进由云基础设施系统902提供的各种云服务的供给。基础设施资源930可以包括例如处理资源、存储或存储器资源、联网资源等。在某些示例中,可用于服务从应用请求的存储的存储虚拟机可以是云基础设施系统902的一部分。在其它示例中,存储虚拟机可以是不同系统的一部分。
在某些示例中,为了促进这些资源的高效供给以支持由云基础设施系统902为不同客户提供的各种云服务,可以将资源捆绑成资源或资源模块的集合(也称为“群聚(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成和优化的组合。在某些示例中,可以为不同类型的云服务预先供给不同的群聚。例如,可以为数据库服务供给第一群聚集合,可以为Java服务供给第二群聚集合,其中第二群聚集合可以包括与第一群聚集合中的群聚不同的资源组合。对于一些服务,可以在服务之间共享为供给服务而分配的资源。
云基础设施系统902本身可以内部使用服务932,服务932由云基础设施系统902的不同组件共享并且促进云基础设施系统902的服务供给。这些内部共享的服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
云基础设施系统902可以包括多个子系统。这些子系统可以用软件或硬件或其组合来实现。如图9所示,子系统可以包括用户接口子系统912,该用户接口子系统912使得云基础设施系统902的用户或客户能够与云基础设施系统902交互。用户接口子系统912可以包括各种不同的界面,诸如web界面914、在线商店界面916(其中由云基础设施系统902提供的云服务被广告并且可由消费者购买)和其它界面918。例如,客户可以使用客户端设备,使用接口914、916和918中的一个或多个来请求(服务请求934)由云基础设施系统902提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统902提供的云服务,并且为客户希望订阅的由云基础设施系统902提供的一个或多个服务下订单。服务请求可以包括识别客户和客户期望订阅的一个或多个服务的信息。例如,客户可以为云基础设施系统902提供的服务下订单。作为订单的一部分,客户可以提供识别要为其提供服务的聊天机器人系统的信息以及可选的用于聊天机器人系统的一个或多个凭证。
在某些示例中,诸如图9中描绘的示例,云基础设施系统902可以包括被配置为处理新订单的订单管理子系统(OMS)920。作为该处理的一部分,OMS 920可以被配置为:为客户创建账户(如果尚未创建);接收来自客户的账单和/或会计信息,该账单和/或账单信息将用于针对向客户提供所请求的服务向客户计费;验证客户信息;在验证后,为客户预订订单;已经编排各种工作流程以准备用于供给的订单。
一旦被正确地验证,OMS 920就可以调用订单供给子系统(OPS)924,其被配置为为订单供给资源,包括处理资源、存储器资源和联网资源。供给可以包括为订单分配资源,以及配置资源以促进由客户订单所请求的服务。为订单供给资源的方式和供给资源的类型可以取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 924可以被配置为确定所请求的特定云服务,并且识别可能已经针对该特定云服务而被预先配置的多个群聚。为订单分配的群聚的数量可以取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务所支持的用户的数量、正在请求的服务的持续时间等来确定要分配的群聚的数量。然后,可以针对特定的请求客户定制所分配的群聚,以提供所请求的服务。
在某些示例中,如上所述的设置阶段处理可以由云基础设施系统902作为供应处理的一部分来执行。云基础设施系统902可以生成应用ID并从云基础设施系统902自身提供的存储虚拟机中或从除云基础设施系统902以外的其它系统提供的存储虚拟机中为应用选择存储虚拟机。
云基础设施系统902可以向发出请求的客户发送响应或通知944以在所请求的服务现在准备好使用时进行指示。在一些情况下,可以将信息(例如,链接)发送给客户,使客户能够开始使用和利用所请求服务的益处。在某些示例中,对于请求服务的客户,响应可以包括由云基础设施系统902生成的聊天机器人系统ID和识别由云基础设施系统902为与聊天机器人系统ID对应的聊天机器人系统选择的聊天机器人系统的信息。
云基础设施系统902可以向多个客户提供服务。对于每个客户,云基础设施系统902负责管理与从客户接收到的一个或多个订阅订单相关的信息、维护与订单相关的客户数据,以及向客户提供所请求的服务。云基础设施系统902还可以收集关于客户对已订阅的服务的使用的使用统计信息。例如,可以针对使用的存储量、传输的数据量、用户的数量以及系统正常运行时间和系统停机时间量等收集统计信息。该使用信息可以用于向客户计费。计费可以例如按月周期进行。
云基础设施系统902可以并行地向多个客户提供服务。云基础设施系统902可以存储这些客户的信息,包括可能的专有信息。在某些示例中,云基础设施系统902包括身份管理子系统(IMS)928,其被配置为管理客户信息并提供所管理的信息的分离,使得与一个客户相关的信息不可被另一个客户访问。IMS 928可以被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务,等等。
图10图示了计算机系统1000的示例。在一些示例中,计算机系统1000可以用于在分布式环境以及上述各种服务器和计算机系统内实现任何数字助理或聊天机器人系统。如图10所示,计算机系统1000包括各种子系统,包括经由总线子系统1002与多个其它子系统通信的处理子系统1004。这些其它子系统可以包括处理加速单元1006、I/O子系统1008、存储子系统1018和通信子系统1024。存储子系统1018可以包括非暂态计算机可读存储介质,其包括存储介质1022和系统存储器1010。
总线子系统1002提供用于使计算机系统1000的各种组件和子系统按照期望彼此通信的机制。虽然总线子系统1002被示意性地示为单条总线,但是总线子系统的替代示例可以利用多条总线。总线子系统1002可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用任何各种总线体系架构的局部总线等。例如,此类体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以实现为根据IEEE P1386.1标准制造的夹层(Mezzanine)总线,等等。
处理子系统1004控制计算机系统1000的操作,并且可以包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可以包括单核或多核处理器。可以将计算机系统1000的处理资源组织成一个或多个处理单元1032、1034等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核心、核心和处理器的组合、或核心和处理器的其它组合。在一些示例中,处理子系统1004可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些示例中,处理子系统804的一些或全部可以使用定制电路来实现,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。
在一些示例中,处理子系统1004中的处理单元可以执行存储在系统存储器1010中或计算机可读存储介质1022上的指令。在各个示例中,处理单元可以执行各种程序或代码指令,并且可以维护多个并发执行的程序或进程。在任何给定的时间,要执行的程序代码中的一些或全部可以驻留在系统存储器1010中和/或计算机可读存储介质1022上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统1004可以提供上述各种功能。在计算机系统1000正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在某些示例中,可以可选地提供处理加速单元1006,以用于执行定制的处理或用于卸载由处理子系统1004执行的一些处理,从而加速由计算机系统1000执行的整体处理。
I/O子系统1008可以包括用于向计算机系统1000输入信息和/或用于从或经由计算机系统1000输出信息的设备和机制。一般而言,术语“输入设备”的使用旨在包括用于向计算机系统1000输入信息的所有可能类型的设备和机制。用户接口输入设备可以包括,例如,键盘、诸如鼠标或轨迹球之类的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备还可以包括使用户能够控制输入设备并与之交互的诸如Microsoft
Figure BDA0003870455610000411
运动传感器的运动感测和/或姿势识别设备、Microsoft
Figure BDA0003870455610000412
360游戏控制器、提供用于接收使用姿势和口语命令的输入的界面的设备。用户接口输入设备还可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄图片和/或进行菜单选择时的“眨眼”)并将眼睛姿势转换为到输入设备(例如,Google
Figure BDA0003870455610000413
)的输入的
Figure BDA0003870455610000414
眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,
Figure BDA0003870455610000415
导航器)交互的语音识别感测设备。
用户接口输入设备的其它示例包括但不限于,三维(3D)鼠标、操纵杆或指示杆、游戏板和图形平板、以及音频/视频设备,诸如扬声器、数字相机、数字摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3D扫描仪、3D打印机、激光测距仪、以及眼睛注视跟踪设备。此外,用户接口输入设备可以包括,例如,医疗成像输入设备,诸如计算机断层摄影、磁共振成像、位置发射断层摄影、以及医疗超声检查设备。用户接口输入设备也可以包括,例如,音频输入设备,诸如MIDI键盘、数字乐器等。
一般而言,术语“输出设备”的使用旨在包括所有可能类型的设备和用于从计算机系统1000向用户或其它计算机输出信息的机制。用户接口输出设备可以包括显示子系统、指示器灯或诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(CRT)、诸如利用液晶显示器(LCD)或等离子体显示器的平板设备、投影设备、触摸屏等。例如,用户接口输出设备可以包括但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统1018提供用于存储由计算机系统1000使用的信息和数据的储存库或数据存储库。存储子系统1018提供了用于存储提供一些示例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统1018可以存储软件(例如,程序、代码模块、指令),该软件在由处理子系统1004执行时提供上述功能。软件可以由处理子系统1004的一个或多个处理单元执行。存储子系统1018还可以提供根据本公开的教导的认证。
存储子系统1018可以包括一个或多个非暂态存储器设备,包括易失性和非易失性存储器设备。如图10所示,存储子系统1018包括系统存储器1010和计算机可读存储介质1022。系统存储器1010可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)以及其中存储有固定指令的非易失性只读存储器(ROM)或闪存。在一些实施方式中,基本输入/输出系统(BIOS)可以典型地存储在ROM中,该基本输入/输出系统(BIOS)包含有助于例如在启动期间在计算机系统1000内的元件之间传递信息的基本例程。RAM通常包含当前由处理子系统1004操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器1010可以包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
作为示例而非限制,如图10所示,系统存储器1010可以加载正在被执行的可以包括各种应用(诸如Web浏览器、中间层应用、关系型数据库管理系统(RDBMS)等)的应用程序1012、程序数据1014和操作系统1016。作为示例,操作系统1016可以包括各种版本的Microsoft
Figure BDA0003870455610000421
Apple
Figure BDA0003870455610000422
和/或Linux操作系统、各种商用
Figure BDA0003870455610000423
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0003870455610000431
OS等)和/或移动操作系统,诸如iOS、
Figure BDA0003870455610000432
Phone、
Figure BDA0003870455610000433
OS、
Figure BDA0003870455610000434
OS、
Figure BDA0003870455610000435
OS操作系统,以及其它操作系统。
计算机可读存储介质1022可以存储提供一些示例的功能的编程和数据构造。计算机可读介质1022可以为计算机系统1000提供计算机可读指令、数据结构、程序模块和其它数据的存储。当由处理子系统1004执行时,提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统1018中。作为示例,计算机可读存储介质1022可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM、DVD、Blu-
Figure BDA0003870455610000436
(蓝光)盘或其它光学介质的光盘驱动器。计算机可读存储介质1022可以包括但不限于,
Figure BDA0003870455610000437
驱动器、闪存存储器卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质1022也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD、磁阻RAM(MRAM)SSD),以及使用基于DRAM和基于闪存存储器的SSD的组合的混合SSD。
在某些示例中,存储子系统1018还可以包括计算机可读存储介质读取器1020,其还可以连接到计算机可读存储介质1022。读取器1020可以接收并且被配置为从诸如盘、闪存驱动器等的存储器设备读取数据。
在某些示例中,计算机系统1000可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统1000可以提供用于执行一个或多个虚拟机的支持。在某些示例中,计算机系统1000可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核心)、I/O和联网资源。每个虚拟机通常独立于其它虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统1000执行的其它虚拟机执行的操作系统相同或不同。因而,计算机系统1000可以潜在地同时运行多个操作系统。
通信子系统1024提供到其它计算机系统和网络的接口。通信子系统1024用作用于从计算机系统1000接收数据以及向其它系统传输数据的接口。例如,通信子系统1024可以使得计算机系统1000能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息以及向客户端设备发送信息。例如,当计算机系统1000被用于实现图1中描绘的机器人系统120时,通信子系统可以被用于与为应用选择的聊天机器人系统进行通信。
通信子系统1024可以支持有线和/或无线通信协议两者。在某些示例中,通信子系统1024可以包括用于(例如,使用蜂窝电话技术、高级数据网络技术(诸如3G、4G或EDGE(全球演进的增强数据速率)、WiFi(IEEE 802.XX族标准)、或其它移动通信技术、或其任意组合)接入无线语音和/或数据网络的射频(RF)收发器组件、全球定位系统(GPS)接收器组件和/或其它组件。在一些示例中,作为无线接口的附加或替代,通信子系统1024可以提供有线网络连接(例如,以太网)。
通信子系统1024可以以各种形式接收和传输数据。在一些示例中,除了其它形式之外,通信子系统1024还可以以结构化和/或非结构化的数据馈送1026、事件流1028、事件更新1030等形式接收输入通信。例如,通信子系统1024可以被配置为实时地从社交媒体网络的用户和/或诸如
Figure BDA0003870455610000441
馈送、
Figure BDA0003870455610000442
更新、诸如丰富站点摘要(RSS)馈送的web馈送的其它通信服务接收(或发送)数据馈送1026,和/或来自一个或多个第三方信息源的实时更新。
在某些示例中,通信子系统1024可以被配置为以连续数据流的形式接收本质上可能是连续的或无界的没有明确结束的数据,其中连续数据流可以包括实时事件的事件流1028和/或事件更新1030。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统1024也可以被配置为将数据从计算机系统1000传送到其它计算机系统或网络。数据可以以各种不同的形式传送给一个或多个数据库,诸如结构化和/或非结构化数据馈送1026、事件流1028、事件更新1030等,该一个或多个数据库可以与耦合到计算机系统1000的一个或多个流传输数据源进行通信。
计算机系统1000可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0003870455610000451
蜂窝电话、
Figure BDA0003870455610000452
计算平板、PDA)、可穿戴设备(例如,Google
Figure BDA0003870455610000453
头戴式显示器)、个人计算机、工作站、大型机、信息站、服务器机架或任何其它数据处理系统。由于计算机和网络不断变化的性质,对图10中绘出的计算机系统1000的描述旨在仅仅作为具体示例。具有比图10中所绘出的系统更多或更少组件的许多其它配置是可能的。基于本文所提供的公开内容和教导,应当认识到的是,存在实现各种示例的其它方式和/或方法。
虽然已经描述了特定的示例,但是各种修改、变更、替代构造以及等同物都是可能的。示例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用一系列特定的事务和步骤描述了某些示例,但是对于本领域技术人员来说显而易见的是,这并不旨在进行限制。虽然一些流程图将操作描述为顺序处理,但是许多操作可以并行或同时执行。此外,操作的次序可以被重新布置。处理可能具有图中未包括的其它步骤。上述示例的各种特征和方面可以被单独使用或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了某些示例,但是应该认识到的是,硬件和软件的其它组合也是可能的。某些示例可以仅用硬件或仅用软件或其组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或不同的处理器上实现。
在将设备、系统、组件或模块描述为被配置为执行某些操作或功能的情况下,这样的配置可以通过以下方式来实现,例如,通过设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作,诸如通过执行计算机指令或代码,或处理器或核心被编程为执行存储在非暂态存储介质上的代码或指令,或其任意组合来执行操作。进程可以使用各种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同时间使用不同的技术。
在本公开中给出了具体细节以提供对示例的透彻理解。但是,可以在没有这些具体细节的情况下实践示例。例如,已经示出了众所周知的电路、处理、算法、结构和技术,而没有不必要的细节,以避免使示例模糊。本描述仅提供示例性示例,并且不旨在限制其它示例的范围、适用性或配置。相反,示例的先前描述将为本领域技术人员提供用于实现各种示例的使能描述。可以对元件的功能和布置进行各种改变。
因而,说明书和附图应被认为是说明性的而不是限制性的。但是,将显而易见的是,在不脱离权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行添加、减少、删除以及其它修改和改变。因此,虽然已经描述了具体的示例,但是这些示例并不旨在进行限制。各种修改和等同形式均在所附权利要求的范围内。
在前述说明书中,参考其具体示例描述了本公开的方面,但是本领域技术人员将认识到本公开不限于此。上述公开的各种特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,可以在超出本文描述的环境和应用的任何数量的环境和应用中利用示例。因而,本说明书和附图被认为是说明性的而不是限制性的。
在前面的描述中,为了说明的目的,以特定顺序描述了方法。应该认识到的是,在替代示例中,可以以与所描述的顺序不同的顺序来执行这些方法。还应该认识到的是,上述方法可以由硬件组件执行或可以实施在机器可执行指令的序列中,这些指令可以用于使机器,诸如通用或专用处理器或用指令编程的逻辑电路执行方法。这些机器可执行指令可以存储在一个或多个机器可读介质上,诸如CD-ROM或其它类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡,闪存,或适合存储电子指令的其它类型的机器可读介质。替代地,这些方法可以通过硬件和软件的组合来执行。
在组件被描述为被配置为执行某些操作的情况下,这种配置可以通过例如设计电子电路或其它硬件来执行操作、通过对可编程电子电路(例如,微处理器或其它合适的电子电路)进行编程来执行操作,或其任意组合来完成。
虽然本文已经详细描述了本申请的说明性示例,但是应该理解的是,本发明构思可以以其它方式被不同地实施和采用,并且所附权利要求旨在被解释为包括这样的变型,而不受现有技术的限制。

Claims (18)

1.一种方法,包括:
获得用于训练机器学习模型的一个或多个数据集;
选择用于评估机器学习模型在所述一个或多个数据集上的性能的多个度量;
向所述多个度量中的每个度量指派第一权重,其中第一权重指定每个度量对所述机器学习模型的性能的重要性;
创建成本或损失函数,其基于所述多个度量和指派给所述多个度量中的每个度量的第一权重来测量所述机器学习模型的性能;
对与所述机器学习模型相关联的超参数的集合进行调优,以便针对所述多个度量优化所述机器学习模型,其中,所述调优包括:
(i)在所述一个或多个数据集上训练所述机器学习模型,其中所述机器学习模型是基于所述超参数的集合的当前值集合而配置的;
(ii)使用所述成本或损失函数评估所述机器学习模型在所述一个或多个数据集上的性能;
(iii)基于所述评估确定所述机器学习模型是否针对所述多个度量被优化;
(iv)响应于所述机器学习模型没有针对所述多个度量被优化,为超参数的集合搜索新的值集合,用所述新的值集合重新配置所述机器学习模型,以及使用经重新配置的机器学习模型重复步骤(i)-(iii);以及
(v)响应于所述机器学习模型针对所述多个度量被优化,提供所述机器学习模型作为经训练的机器学习模型。
2.如权利要求1所述的方法,其中,所述多个度量至少包括机器学习模型的尺寸、机器学习模型的训练时间、机器学习模型的准确性、机器学习模型的稳定性、机器学习模型的回归误差、和机器学习模型的置信度分数。
3.如权利要求1所述的方法,还包括:
向所述一个或多个数据集中的每个数据集指派第二权重,其中第二权重指定每个数据集在训练机器学习模型中的重要性。
4.如权利要求1所述的方法,还包括:
基于超参数的集合中的一个或多个超参数建立一个或多个约束,并且其中经优化的机器学习模型满足所述一个或多个约束中的每个约束。
5.如权利要求4所述的方法,其中,所述一个或多个约束中的第一约束对应于要求机器学习模型的模型尺寸小于阈值模型尺寸或要求机器学习模型的训练时间小于阈值时间限制。
6.如权利要求1所述的方法,其中,所述机器学习模型是神经网络模型,并且超参数的集合至少包括机器学习模型的层数、机器学习模型的学习速率、机器学习模型的每一层中隐藏单元的数量、用于训练机器学习模型的学习算法。
7.一种计算设备,包括:
处理器;以及
存储器,包括指令,所述指令在用所述处理器执行时使所述计算设备至少执行以下操作:
获得用于训练机器学习模型的一个或多个数据集;
选择用于评估机器学习模型在所述一个或多个数据集上的性能的多个度量;
向所述多个度量中的每个度量指派第一权重,其中第一权重指定每个度量对所述机器学习模型的性能的重要性;
创建成本或损失函数,其基于所述多个度量和指派给所述多个度量中的每个度量的第一权重来测量所述机器学习模型的性能;
对与所述机器学习模型相关联的超参数的集合进行调优,以便针对所述多个度量优化所述机器学习模型,其中,对所述超参数的集合进行所述调优包括:
(i)在所述一个或多个数据集上训练所述机器学习模型,其中所述机器学习模型是基于所述超参数的集合的当前值集合而配置的;
(ii)使用所述成本或损失函数评估所述机器学习模型在所述一个或多个数据集上的性能;
(iii)基于所述评估确定所述机器学习模型是否针对所述多个度量被优化;
(iv)响应于所述机器学习模型没有针对所述多个度量被优化,为超参数的集合搜索新的值集合,用所述新的值集合重新配置所述机器学习模型,以及使用经重新配置的机器学习模型重复步骤(i)-(iii);以及
(v)响应于所述机器学习模型针对所述多个度量被优化,提供所述机器学习模型作为经训练的机器学习模型。
8.如权利要求7所述的计算设备,其中,所述多个度量至少包括机器学习模型的尺寸、机器学习模型的训练时间、机器学习模型的准确性、机器学习模型的稳定性、机器学习模型的回归误差、和机器学习模型的置信度分数。
9.如权利要求7所述的计算设备,其中,所述处理器还被配置为向所述一个或多个数据集中的每个数据集指派第二权重,其中第二权重指定每个数据集在训练机器学习模型中的重要性。
10.如权利要求7所述的计算设备,其中,所述处理器还被配置为基于超参数的集合中的一个或多个超参数建立一个或多个约束,并且其中经优化的机器学习模型满足所述一个或多个约束中的每个约束。
11.如权利要求7所述的计算设备,其中,所述一个或多个约束中的第一约束对应于要求机器学习模型的模型尺寸小于阈值模型尺寸或要求机器学习模型的训练时间小于阈值时间限制。
12.如权利要求7所述的计算设备,其中,所述机器学习模型是神经网络模型,并且超参数的集合至少包括机器学习模型的层数、机器学习模型的学习速率、机器学习模型的每一层中隐藏单元的数量、用于训练机器学习模型的学习算法。
13.一种存储特定计算机可执行指令的非暂态计算机可读介质,所述指令在由所述处理器执行时使计算机系统至少执行以下操作:
获得用于训练机器学习模型的一个或多个数据集;
选择用于评估机器学习模型在所述一个或多个数据集上的性能的多个度量;
向所述多个度量中的每个度量指派第一权重,其中第一权重指定每个度量对所述机器学习模型的性能的重要性;
创建成本或损失函数,其基于所述多个度量和指派给所述多个度量中的每个度量的第一权重来测量所述机器学习模型的性能;
对与所述机器学习模型相关联的超参数的集合进行调优,以便针对所述多个度量优化所述机器学习模型,其中,对超参数的集合进行所述调优包括:
(i)在所述一个或多个数据集上训练所述机器学习模型,其中所述机器学习模型是基于所述超参数的集合的当前值集合而配置的;
(ii)使用所述成本或损失函数评估所述机器学习模型在所述一个或多个数据集上的性能;
(iii)基于所述评估确定所述机器学习模型是否针对所述多个度量被优化;
(iv)响应于所述机器学习模型没有针对所述多个度量被优化,为超参数的集合搜索新的值集合,用所述新的值集合重新配置所述机器学习模型,以及使用经重新配置的机器学习模型重复步骤(i)-(iii);以及
(v)响应于所述机器学习模型针对所述多个度量被优化,提供所述机器学习模型作为经训练的机器学习模型。
14.如权利要求13所述的非暂态计算机可读介质,其中,所述多个度量至少包括机器学习模型的尺寸、机器学习模型的训练时间、机器学习模型的准确性、机器学习模型的稳定性、机器学习模型的回归误差、和机器学习模型的置信度分数。
15.如权利要求13所述的非暂态计算机可读介质,其中,所述计算机系统还被配置为向所述一个或多个数据集中的每个数据集指派第二权重,其中第二权重指定每个数据集在训练机器学习模型中的重要性。
16.如权利要求13所述的非暂态计算机可读介质,其中,所述计算机系统还被配置为基于超参数的集合中的一个或多个超参数建立一个或多个约束,并且其中经优化的机器学习模型满足所述一个或多个约束中的每个约束。
17.如权利要求13所述的非暂态计算机可读介质,其中,所述一个或多个约束中的第一约束对应于要求机器学习模型的模型尺寸小于阈值模型尺寸或要求机器学习模型的训练时间小于阈值时间限制。
18.如权利要求13所述的非暂态计算机可读介质,其中,所述机器学习模型是神经网络模型,并且超参数的集合至少包括机器学习模型的层数、机器学习模型的学习速率、机器学习模型的每一层中隐藏单元的数量、用于训练机器学习模型的学习算法。
CN202180025672.6A 2020-03-30 2021-03-30 用于基于约束的超参数调优的方法和系统 Pending CN115398418A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US202063002159P 2020-03-30 2020-03-30
US63/002,159 2020-03-30
US202063119577P 2020-11-30 2020-11-30
US63/119,577 2020-11-30
US17/216,498 2021-03-29
US17/216,498 US20210304074A1 (en) 2020-03-30 2021-03-29 Method and system for target based hyper-parameter tuning
US17/216,496 US20210304003A1 (en) 2020-03-30 2021-03-29 Method and system for constraint based hyperparameter tuning
US17/216,496 2021-03-29
PCT/US2021/024950 WO2021202573A1 (en) 2020-03-30 2021-03-30 Method and system for constraint based hyperparameter tuning

Publications (1)

Publication Number Publication Date
CN115398418A true CN115398418A (zh) 2022-11-25

Family

ID=77856190

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202180025698.0A Pending CN115398419A (zh) 2020-03-30 2021-03-30 用于基于目标的超参数调优的方法和系统
CN202180025672.6A Pending CN115398418A (zh) 2020-03-30 2021-03-30 用于基于约束的超参数调优的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202180025698.0A Pending CN115398419A (zh) 2020-03-30 2021-03-30 用于基于目标的超参数调优的方法和系统

Country Status (5)

Country Link
US (2) US20210304074A1 (zh)
EP (2) EP4127963A1 (zh)
JP (2) JP2023520425A (zh)
CN (2) CN115398419A (zh)
WO (2) WO2021202576A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116301282A (zh) * 2023-05-16 2023-06-23 中诚华隆计算机技术有限公司 一种多核处理器芯片的低功耗控制方法和装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2569335B (en) * 2017-12-13 2022-07-27 Sage Global Services Ltd Chatbot system
US11463386B2 (en) * 2020-09-23 2022-10-04 Capital One Services, Llc Systems and methods for generating conversational responses using machine learning models
US20230034136A1 (en) * 2021-07-30 2023-02-02 Kabushiki Kaisha Toshiba System and method for scheduling communication within a distributed learning and deployment framework
US11870651B2 (en) 2021-11-29 2024-01-09 Sap Se Landscape model verification system
US20230316223A1 (en) * 2022-04-05 2023-10-05 Thrive Technologies, Inc. System and processes for optimizing inventory
US12026254B2 (en) * 2022-06-17 2024-07-02 Optum, Inc. Prediction model selection for cyber security
CN115277073B (zh) * 2022-06-20 2024-02-06 北京邮电大学 信道传输的方法、装置、电子设备及介质
US20240044961A1 (en) * 2022-08-04 2024-02-08 Viasat, Inc. Machine learning based tuning of radio frequency apparatuses
WO2024143588A1 (ko) * 2022-12-27 2024-07-04 주식회사 모빌린트 딥러닝 컴파일러 최적화 성능 모니터링 장치 및 방법
CN115827171B (zh) * 2023-01-31 2023-05-23 阿里巴巴达摩院(杭州)科技有限公司 云端调参系统、调参方法及调参系统
US12008409B1 (en) * 2023-05-02 2024-06-11 The Strategic Coach Inc. Apparatus and a method for determining resource distribution
CN116738239B (zh) * 2023-08-11 2023-11-24 浙江菜鸟供应链管理有限公司 模型训练方法、资源调度方法及装置、系统、设备及介质
CN116991429B (zh) * 2023-09-28 2024-01-16 之江实验室 计算机程序的编译调优方法、装置和存储介质
CN118626918A (zh) * 2024-08-14 2024-09-10 杭州迪普科技股份有限公司 一种基于人工智能的数据分类分级方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330362B2 (en) * 2013-05-15 2016-05-03 Microsoft Technology Licensing, Llc Tuning hyper-parameters of a computer-executable learning algorithm
US20160132787A1 (en) * 2014-11-11 2016-05-12 Massachusetts Institute Of Technology Distributed, multi-model, self-learning platform for machine learning
US10572823B1 (en) * 2016-12-13 2020-02-25 Ca, Inc. Optimizing a malware detection model using hyperparameters
US10217061B2 (en) * 2017-05-17 2019-02-26 SigOpt, Inc. Systems and methods implementing an intelligent optimization platform
US20190019108A1 (en) * 2017-07-13 2019-01-17 General Electric Company Systems and methods for a validation tree
WO2019028468A1 (en) * 2017-08-04 2019-02-07 Fair Ip, Llc COMPUTER SYSTEM FOR CONSTRUCTING, TRAINING AND PRODUCING AUTOMATIC LEARNING MODELS
US20190236487A1 (en) * 2018-01-30 2019-08-01 Microsoft Technology Licensing, Llc Machine learning hyperparameter tuning tool
US20200012890A1 (en) * 2018-07-06 2020-01-09 Capital One Services, Llc Systems and methods for data stream simulation
EP3620996A1 (en) * 2018-09-04 2020-03-11 Siemens Aktiengesellschaft Transfer learning of a machine-learning model using a hyperparameter response model
US11783917B2 (en) * 2019-03-21 2023-10-10 Illumina, Inc. Artificial intelligence-based base calling
US20200372307A1 (en) * 2019-05-22 2020-11-26 Adobe Inc. Model insights framework for providing insight based on model evaluations to optimize machine learning models
US11556826B2 (en) * 2020-03-20 2023-01-17 Adobe Inc. Generating hyper-parameters for machine learning models using modified Bayesian optimization based on accuracy and training efficiency
US12106197B2 (en) * 2020-03-25 2024-10-01 International Business Machines Corporation Learning parameter sampling configuration for automated machine learning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116301282A (zh) * 2023-05-16 2023-06-23 中诚华隆计算机技术有限公司 一种多核处理器芯片的低功耗控制方法和装置

Also Published As

Publication number Publication date
WO2021202573A1 (en) 2021-10-07
CN115398419A (zh) 2022-11-25
US20210304074A1 (en) 2021-09-30
JP2023520425A (ja) 2023-05-17
US20210304003A1 (en) 2021-09-30
WO2021202576A1 (en) 2021-10-07
EP4127963A1 (en) 2023-02-08
EP4127962A1 (en) 2023-02-08
JP2023520415A (ja) 2023-05-17

Similar Documents

Publication Publication Date Title
US20210304003A1 (en) Method and system for constraint based hyperparameter tuning
US11775572B2 (en) Directed acyclic graph based framework for training models
US20210304075A1 (en) Batching techniques for handling unbalanced training data for a chatbot
US20230252975A1 (en) Routing for chatbots
JP2023530423A (ja) 堅牢な固有表現認識のためのチャットボットにおけるエンティティレベルデータ拡張
US12106055B2 (en) Techniques for providing explanations for text classification
JP2024503517A (ja) 自然言語処理のための多因子モデリング
US20220172021A1 (en) Method and system for over-prediction in neural networks
CN116583837A (zh) 用于自然语言处理的基于距离的logit值
CN116235164A (zh) 聊天机器人的范围外自动转变
WO2022159544A1 (en) Multi-feature balancing for natural language processors
KR20240101703A (ko) 사전-트레이닝된 언어 모델들에 대한 긴 텍스트를 핸들링하기 위한 시스템 및 기술들
US20240086767A1 (en) Continuous hyper-parameter tuning with automatic domain weight adjustment based on periodic performance checkpoints
US20240095584A1 (en) Objective function optimization in target based hyperparameter tuning
US20230154455A1 (en) Path dropout for natural language processing

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