一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

更新用于人工智能的训练示例的制作方法

2022-09-08 01:21:13 来源:中国专利 TAG:

更新用于人工智能的训练示例


背景技术:

1.可以使用训练示例来训练计算机,所述训练示例链接响应于特定输入而执行的动作。作为一个示例,可以训练利用机器学习或者其他人工智能技术的会话式计算系统以响应各种人类话语。例如,会话式计算系统可以被训练通过以下操作来响应用户提出问题“明天天气怎么样?”:查询网络可访问的天气服务以获取明天的天气报告,以及基于包括针对所述用户的文本概要的天气报告来输出响应话语,所述文本概要包括“明天多云,最高气温74度”。对这样的会话式计算系统的训练会是耗时并且难以实现的。例如,这样的训练可能依赖于由人类注释者标记的数千或者更多的训练示例。一些训练系统依赖于高技能的人类注释者,所述人类注释者能够利用具有定义格式和语法的注释来标记训练数据。


技术实现要素:

2.提供本发明内容从而以简化形式介绍对概念的选择,这些概念将在下文的详细描述中进一步描述。本发明内容并非旨在识别所要求保护的主题的关键特征或基本特征,也并不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题并不限于解决在本公开的任何部分中所指出的任何或所有缺点的实现方式。
3.公开了用于将先前注释的训练示例调整为用于训练机器学习模型的经更新的训练示例的技术。一个示例包括识别查找表达(expression)、替换表达和过滤约束的计算机程序,其中,所述过滤约束将先前注释的训练示例的子集与所述先前注释的训练示例中的其他训练示例区分开来。所述查找表达的实例是由所述计算机程序在所述先前注释的训练示例的所述子集内识别的,所述先前注释的训练示例是基于所述过滤约束在所述先前注释的训练示例中识别出的。在所述先前注释的训练示例的所述子集内识别出的所述查找表达的实例被所述计算机程序利用所述替换表达的实例替换,以获得训练示例的经更新的子集。所述训练示例的经更新的子集是由所述计算机程序输出的,其可以被用于训练机器学习模型。
附图说明
4.图1示出了用于训练会话式计算系统的机器学习模型的示例性计算环境的示意图。
5.图2示出了由图1的训练程序的迁移模块执行的示例性迁移的示意图,用于将先前注释的训练示例调整为经更新的训练示例。
6.图3示出了用于将先前注释的训练示例调整为用于训练机器学习模型的经更新的训练示例的示例性方法的流程图。
7.图4示出了图1的训练数据的示例性数据结构的示意图。
8.图5示出了图1的训练程序的示例性迁移编辑器接口的示意图。
9.图6示出了图1的训练程序的示例性迁移预览接口的示意图。
10.图7示出了示例性计算系统的示意图。
具体实施方式
11.可以利用包括许多人类注释的训练示例的训练数据来训练计算机,诸如人工智能系统。每个注释的训练示例可以包括针对计算机的示例性输入(例如,人类话语)以及计算机对所述输入的期望的注释响应(例如,由人类注释者标记的特定数据流程序的运行),其一起形成输入/响应对。一些训练示例可以包括多个输入/响应对的序列,诸如在示例性用户与会话式计算系统之间的示例性训练对话的情况下。随着机器学习模型的复杂性和能力的提高,可以设想一组训练数据可能包括数百万或者更多的人类注释的训练示例,其中的每个训练示例都遵循严格的格式和/或语法。
12.创建人类注释的训练示例会是非常耗时的,并且可能依赖于高技能的人类注释者。人类注释者标记训练数据的动作对于人类注释者而言可能是困难的任务并且易于出错,常常依赖于根据规则集创建计算机可执行计划的专门训练。例如,可能要求人类注释者在具有严格格式和语法要求的数据流编程语言方面具有广泛的知识。这会成为模型训练过程中的重大瓶颈,因为其会需要大量资源来招募和训练足够群组的人类注释者来训练机器学习模型,特别是在使用大量注释的训练示例来充分训练机器学习模式的情况下。
13.系统开发人员可能面临的挑战是在训练数据集中维护正确的注释,因为基础数据流编程语言或者训练数据的特定于其他格式/语法的各方面随着时间而发展,特别是对于大的训练数据集而言。
14.系统开发人员可能需要改变训练数据集内的注释有若干原因。首先,因为训练示例是由人类注释的,所以所述训练示例可能包含后来由开发人员或最终用户识别出并且需要纠正的特定不一致性或不准确性。这些不一致性或不准确性可能是由于人类注释者对话语的略有不同的解释造成的。例如,输入话语诸如“什么时候开始?”可能被人类注释者解释为对日期和时间的请求,或者仅仅是对时间的请求。训练数据中的不一致性和不准确性对训练过程具有负面影响,并且可能需要被纠正,例如,由开发人员选取对输入话语的特定解释并且跨训练数据集来强制执行该解释。
15.其次,计算系统的底层能力或者编程语法和/或格式可能改变,例如,通过替换或取代现有的语法或能力。作为一个示例,可以为计算系统提供新的、更强大的应用编程接口(api),所述api能够响应于特定的输入话语而被查询。为了应对该变化,可以将利用先前的api注释的话语迁移到新api以向系统提供新功能。作为另一示例,由系统以及其开发人员所使用的编程语法和/或格式可以在包含利用较早语法和/或格式的程序片段的注释已经被应用于训练示例之后的时间而改变。作为说明性示例,先前注释的训练示例最初可以利用表达“describe{target:[event]:event.get(path(start)).get(path(time))}”作为程序片段的一部分进行标记,所述表达被包含在事件相关数据的上下文内所使用的训练示例的注释内。此后,被用于执行预期功能(例如,确定事件的开始时间)的语法和/或格式可能已经被改变为“describe{target:[event].get(path(start))}”。解决对语法和/或格式的以上改变可能特别具有挑战性,其中,对系统的改变仅仅适用于特定上下文(例如,事件相关数据),而在其他上下文内不适用。
[0016]
第三,最终用户的响应期望随着时间而变化、因地理区域而不同或者与开发人员的响应期望不同,可能需要在训练数据中加以解决。作为一个示例,开发人员可以在开发注释的训练数据集后认识到,当最终用户询问系统“下周五天气如何?”时,最终用户打算让系
统对即将到来的星期五之后的星期五的天气做出响应,而不是对即将到来的星期五的天气进行响应。然而,最终用户的该期望可能仅适用于特定情况,诸如当前日期不是最终用户查询的一周中的同一天(例如,星期五)。例如,最终用户可能期望以上输入话语“下周五天气如何?”在当天是星期五时返回针对即将到来的星期五的天气。因此,开发人员可能希望仅仅更新训练数据的特定部分以包括并入该功能的注释。该示例试图例示说明在训练数据内捕获人类语音的意图的难懂之处和复杂性,随着语言的社会使用适应和训练数据的改进,所述训练数据有时可能是任意的、地理相关的和非静态的。
[0017]
可以至少部分地通过使用在本文中所公开的技术将先前注释的训练示例调整为经更新的训练示例来解决以上挑战。一个示例包括一种计算机程序,其在整个先前注释的训练示例内或者在先前注释的训练示例的特定子集内识别查找表达的实例。过滤约束能够被用于将先前注释的训练示例的特定子集与先前注释的训练示例中的其他训练示例区分开来。所述查找表达的实例是由计算机程序在所述先前注释的训练示例的所述特定子集内识别的,并且由计算机程序利用替换表达的实例来替换以获得训练示例的经更新的子集。可以针对在所述先前注释的训练示例的所述特定子集内识别出的所述查找表达的每个实例执行该替换。
[0018]
在该示例中的所述过滤约束使得用户能够以训练数据集的特定子区域为目标,其中,所述查找表达的实例将被所述替换表达的实例替换,同时从这样的替换操作中排除训练数据的其他子区域。所述过滤约束可以定义当执行从先前注释的训练数据到经更新的训练数据的迁移时要被应用于所述训练数据的一个或多个过滤器和相关联的标准的组合。因此,所述过滤约束为用户提供对在训练数据的两个集合之间的迁移范围的控制。
[0019]
对大型训练数据集的一些迁移可能需要数小时或者数天的计算机运行时间才能完成。为了让用户能够在更短的计算机运行时间内测试迁移的各部分,提供了预览特征,其更新训练数据的预览部分,所述预览部分小于要由所述迁移更新的训练示例的特定子集。所述训练数据的该预览部分的尺寸可以由用户通过使用预览约束来定义。结合该预览约束,用户可以将所述过滤约束设置为比所述迁移更窄,以进一步减少用于生成预览的计算机运行时间。所述预览使得用户能够测试迁移的各部分并且查看由替换表达引入的错误、在训练数据内的替换的幅度或范围以及替换是否满足迁移的预期目的,然后再将所述迁移应用于整个训练数据集。
[0020]
在对整个训练数据集的迁移之后,训练示例的经更新的子集可以与未被所述迁移而改变的先前注释的训练示例结合使用以用于训练机器学习模型。
[0021]
图1示出了用于训练会话式计算系统112的机器学习模型110的示例性计算环境100的示意图。尽管机器学习模型110是在会话式计算系统112的上下文内描述的,但是将理解,在本文中所公开的技术中的一些或所有技术可以被用于调整针对其他类型的机器学习模型的训练数据。
[0022]
会话式计算系统,诸如示例性会话式计算系统112,使得人类用户能够以更自然的方式与计算机进行交互。经恰当训练的会话式计算系统能够处理自然的用户交互,诸如口头或键入的用户话语,而不需要最终用户使用由计算机编程语言定义的特定语法。这允许最终用户在向计算机说话时使用自然语言。
[0023]
例如,用户可以通过要求计算机回答问题或者通过向计算机提供命令来使用自然
语言与计算机进行交互。作为响应,所述会话式计算系统被训练为自动地执行一个或多个动作,诸如回答问题或者以其他方式协助用户(例如,响应于人类讲出或键入“天气如何?”而报告今天的天气预报)。所述会话式计算系统可以利用任何合适的计算机操作集合来响应用户请求,诸如经由扬声器输出合成语音和/或经由api与其他计算机服务进行交互以查找搜索结果、进行购买、安排约会和/或控制外围设备。
[0024]
会话式计算系统112可以具有任何合适的硬件配置和形状因子。作为示例,会话式计算系统可以是:膝上型计算机、台式计算机、智能手机、平板计算机、媒体中心、智能扬声器设备、个人助理设备、智能手表、混合现实设备、物联网(iot)设备(例如,智能恒温器、光控制器、安全相机、家电),或者可以被分布在两个或多个计算设备上。
[0025]
会话式计算系统可以被配置为响应于各种用户交互事件。在图1的示例中,最终用户114以话语的形式向会话式计算系统112提供输入116“安排明天早上8点锻炼”。用户交互事件的示例包括语音和/或文本形式的用户话语、按钮按下、网络通信事件(例如,接收api调用的结果)和/或经由触摸接口或身体跟踪成像系统到计算系统的手势输入。更一般而言,用户交互事件包括可能与用户交互相关并且能由计算系统检测到的任何事件,例如经由输入硬件(例如,麦克风、相机、键盘、触摸屏、手持控制器)、通信硬件等。例如,这样的用户交互事件可以以计算机可读格式表示,诸如由语音到文本解释器生成的文本串或者与触摸输入相关联的屏幕坐标值。
[0026]
会话式计算系统可以被配置为执行任何合适的动作来辅助用户。再次,使用图1的示例,在最终用户114提供输入116之后,会话式计算系统112执行包括以响应话语“好的,我将你的锻炼安排在明天早上8点”的形式生成响应118的动作。可以由计算系统执行的动作的示例包括执行计算、控制其他计算机和/或硬件设备(例如,通过调用api)、通过通信网络进行通信(例如,调用api)、接收额外的用户输入(例如,以任何可检测的输入事件的形式)和/或提供输出(例如,以显示的文本、合成语音或者其他人类可感知输出的形式)。更一般地,由计算系统执行的动作可以包括计算机系统被配置为执行的任何动作。动作的其他示例包括控制电子设备(例如,打开/关闭用户家中的灯、调节恒温器、操作家电和/或经由显示器/扬声器播放多媒体内容)、与第三方交互服务进行交互(例如,调用api以经由叫车服务安排乘车和/或经由送货服务订购食物/包裹)、和/或与其他计算机系统进行交互(例如,从网站或数据库访问信息、发送诸如电子邮件的通信、查看发给用户的入站通信和/或访问用户在日历程序中的安排)。
[0027]
由计算系统响应于输入而执行的动作可以根据计算机可执行计划。术语“计划”在本文中被用于指代可以由计算机采取以便执行对应动作的步骤的任何适当表示。例如,计算机可执行计划可以包括计算机可执行代码(例如,程序片段),所述计算机可执行代码被配置为使得计算机执行计算步骤以用于执行对应的动作。作为一个示例,计算机可执行计划可以包括采用数据流编程语言(例如,由会话式计算系统112使用或者采用任何其他合适的编程语言)的计算机可执行字节码。替代地或另外地,计算机可执行计划可以包括用于表示计算步骤以及与计算步骤相关的数据流和/或控制流的任何其他合适的数据,包括以任何合适的序列、树、图和/或超图布置的任何合适的计算机功能和/或操作。制定计划(例如,通过生成和/或至少部分地运行计划)的会话式计算系统能够响应于输入事件而自动地采用复杂的会话方案。例如,所述计划可以使得会话式计算系统能够主动有效地处理输入事
件、向用户提出适当的问题(例如,在存在歧义时寻求澄清,和/或在自动地做出决定之前寻求确认)、描述制定计划的结果、和/或描述获得结果的过程(例如,描述计划自身中的步骤)。因此,通过识别各种输入事件并且作为响应而执行相关动作,会话式计算系统使得用户能够使用会话、手势以及其他表达模式来控制计算机以执行任何合适的任务。
[0028]
如在图1中进一步示出的,会话式计算系统112与通信网络120通信地耦合,通信网络120可以是任何合适的通信网络,诸如互联网。训练计算系统122也被耦合到通信网络120,其被配置为实现训练程序124,训练程序124可操作用于训练机器学习模型,诸如机器学习模型110。训练程序124包括具有注释接口128的注释模块126。在示例中,人类注释者130通过经由注释接口128向训练计算系统122提供注释136来标记训练数据134的输入话语132。例如,所述注释接口可以呈现输入话语132,并且人类注释者可以提供定义包括对应动作的计算机可执行计划的注释136。输入话语132和注释136可以被存储为标记的训练数据134,作为被用于训练机器学习模型110的带注释的训练示例的示例。在至少一些示例中,训练计算系统122也可以实现机器学习模型,使得所述训练计算系统可以响应于经由训练程序输入的查询来动态地生成计算机可执行计划。
[0029]
如在图1中进一步示出的,训练程序124还包括具有迁移接口142的迁移模块140,迁移接口142可操作用于通过将训练数据内的一个或多个先前注释的训练示例调整为经更新的训练示例来将训练数据134迁移到训练数据134的经更新的版本。例如,包含经更新的训练示例的训练数据134可以被用于经由训练程序124来训练机器学习模型110。在示例中,人类迁移者144经由迁移接口142向训练计算系统122提供迁移数据146,以针对待调整的训练数据的特定特征并且定义这些特征如何被调整。
[0030]
注意,在该示例中,注释接口128和迁移接口142是经由训练计算系统122生成的。所述注释接口和迁移接口因此可以由训练计算系统运行的软件应用(例如,训练程序124)来渲染。在图1中所描绘的示例中,注释模块126和迁移模块140形成相同训练程序124的一部分。在另一示例中,所述注释接口和迁移接口可以由通过与在图1中所描绘的示例不同的计算设备或计算系统(诸如服务器系统150)运行的软件应用生成,并且由训练计算系统122通过通信网络120——例如经由web接口或api进行访问。例如,训练计算系统122可以包括通信子系统,并且所述注释接口和/或迁移接口可以由通过通信网络120经由通信子系统向训练计算系统提供计算机可执行接口代码的服务器系统来呈现。然后,可以经由训练计算系统的显示子系统直观地呈现所述注释接口和迁移接口。
[0031]
尽管图1将迁移模块140以及其迁移接口142描绘为与注释模块126以及其注释接口128相同的训练程序124的一部分,但是在其他示例中,迁移模块140可以形成与注释模块126不同的程序的一部分。类似地,尽管训练计算系统122被描述为提供注释接口128和迁移接口142两者,但是在其他示例中,迁移接口142可以经由与注释接口128不同的计算设备或计算系统来提供。
[0032]
在图1的示例性计算环境100中,会话式计算系统112与最终用户114处在相同的本地环境中。换言之,相同的计算系统记录用户话语,经由机器学习模型处理话语,并且运行计算机可执行计划以执行动作。然而,在其他示例中,所述会话式计算系统可以远离人类用户——例如,被实现为服务器系统150或者被分布在计算系统的本地和远程组件之间。因此,在最终用户的本地环境中的设备可以记录用户输入(例如,话语)并且通过通信网络120
将用户输入传输到服务器系统150,服务器系统150然后可以将用户输入提供给在服务器系统上运行的机器学习模型110的实例。由机器学习模型生成的计算机可执行计划可以全部或部分在服务器系统处执行以生成动作和/或可以全部或部分传输到位于最终用户的本地环境内的设备(例如,112)以由所述设备来执行。
[0033]
此外,所述会话式计算系统和训练计算系统不需要是网络连接的。例如,对机器学习模型的训练或者对经由训练程序执行的训练数据的迁移可以离线执行。一旦所述机器学习模型被充分地训练,所述模型就可以被复制到不同的计算系统——例如,个人助理计算系统或网络可访问的服务器系统。
[0034]
图2示出了由图1的训练程序124的迁移模块140执行的示例性迁移200的示意图。在图2的示例内,迁移模块140获得初始训练数据212和迁移数据214,基于迁移数据214将初始训练数据212作为迁移的一部分调整为经更新的训练数据216,并且输出经更新的训练数据216以用于训练机器学习模型。
[0035]
初始训练数据212是在迁移到经更新的训练数据216之前图1的训练数据134的实例的示例。初始训练数据212包括一个或多个先前注释的训练示例的集合,其示例在220处被描绘。在示例中,这些注释的训练示例包括一个或多个话语的注释的对话,诸如在图1内利用注释136标记的输入话语132。先前注释的训练示例220包括输入222、计划224以及响应于输入222而执行的对应动作226。图1的输入话语132是输入222的一个示例,并且图1的注释136是计划224以及其对应动作226的一个示例。
[0036]
迁移数据214是由人类迁移者144经由图1的迁移接口142提供的示例性迁移数据146。迁移数据214包括:查找表达230,其将在初始训练数据212的先前注释的训练示例的集合内被替换;替换表达232,其将在先前识别出的训练示例的集合内替换查找表达230的一个或多个实例;以及过滤约束234,其将所述先前注释的训练示例的子集与初始训练数据212的先前注释的训练示例中的其他训练示例区分开来。过滤约束234可以包括一个或多个过滤标准,所述一个或多个过滤标准使得用户能够以初始训练数据212的特定子区域为目标,以利用替换表达232的实例来替换查找表达230的实例。参考图5进一步详细描述了过滤约束234的各方面。
[0037]
经更新的训练数据216是在从初始训练数据212迁移之后的图1的训练数据134的实例的另一示例。由迁移模块140输出的经更新的训练数据216包括一个或多个经更新的注释的训练示例的集合,其示例在240处被描绘。迁移模块140可以基于迁移数据230来替换或增加一些或所有的输入222、计划224和/或动作226,以获得并且输出经更新的训练数据216。如先前所描述的,动作可以包括执行计算,控制其他计算机和/或硬件设备,通过通信网络进行通信,接收额外的用户输入,和/或提供输出(例如,响应话语)。由计算系统执行的动作可以包括计算机系统被配置为执行的任何行为。经更新的注释的训练示例240包括输入242、计划244和对应的动作246。在示例中,迁移模块140将计划222更新为计划242,但是不更新输入222和动作226。因此,在该示例中,输入242对应于输入222,并且动作246对应于输入226。该示例描述了开发人员在不改变输入或者系统的对应响应的情况下改变训练数据内的计算机可执行计划的场景。
[0038]
图3示出了用于将先前注释的训练示例调整为用于训练机器学习模型的经更新的训练示例的示例性方法300的流程图。在至少一些示例中,方法300可以由图1和图2的迁移
模块140来执行,由训练计算系统运行以实现对训练数据的迁移。
[0039]
在方法300的示例性实现方式中,先前注释的训练示例包括输入话语,所述输入话语利用包括表达(例如,图2的查找表达230)的程序片段形式的注释来标记,其中,所述表达将由另一表达(例如,图2的替换表达232)来替换。通过执行方法300,所述先前注释的训练示例可以被调整为经更新的训练示例,其中,所述输入话语被标记有包括经更新的替换表达的经更新的程序片段。
[0040]
在310处,所述方法包括识别查找表达。在示例中,所述查找表达包括在所述先前注释的训练示例内的程序片段,所述程序片段将作为迁移到所述经更新的训练示例的部分而被替换。所述查找表达可以由用户(例如,人类迁移者144)使用具有定义的格式和语法的编程语言来构建,所述编程语言能由训练程序用于训练机器模型。然而,在至少一些示例中,所述迁移模块或训练程序可以将用户所使用的编程语言解析并且翻译成能由训练程序用于训练所述机器学习模型的不同编程语言。
[0041]
在312处,所述方法包括识别替换表达。在示例中,所述替换表达包括要替换所述查找表达的一个或多个实例作为迁移到所述经更新的训练示例的一部分的程序片段。所述替换表达可以由用户使用与所述查找表达相同的编程语言来构造。所述替换表达不同于所述查找表达,例如,通过定义要由计算系统执行的不同计划或动作。然而,在一些示例中,所述替换表达可以包括查找表达或者其一部分作为所述替换表达的组件。
[0042]
在314处,所述方法包括识别过滤约束,所述过滤约束将所述先前注释的训练示例的子集与所述先前注释的训练示例中的其他训练示例区分开来。所述先前注释的训练示例的子集包括一个或多个训练示例,其中,所述查找表达的实例将被替换表达的实例来替换。包括所述先前注释的训练示例的训练数据可以根据定义各种子区域的特定编程语言来格式化,所述子区域包括输入话语(例如,作为元数据)、程序片段和/或被组织成由计算系统解释和运行的数据结构的其他数据。所述训练数据的这些子区域可以通过能够由迁移模块或者其他程序解释的语法标记或标签彼此描绘。在314处识别出的所述过滤约束可以包括或者利用这些语法标记或标签以使得用户能够以训练数据的子区域为目标,在所述子区域内,所述查找表达的实例将被替换表达的实例来替换。
[0043]
在至少一些示例中,识别所述查找表达、所述替换表达和所述过滤约束中的一个或多个包括经由迁移接口(例如,图1的迁移接口142)接收定义所述查找表达、所述替换表达和所述过滤约束的用户输入。因此,所述方法在316处可以包括提供迁移接口(例如,到图形显示器),用户可以通过所述迁移接口输入所述查找表达、所述替换表达和所述过滤约束并且由所述迁移模块来识别。参考图5进一步详细描述了作为迁移编辑器接口500的迁移接口的示例。在一些示例中,机器学习模型可以被训练以识别和/或推荐所述查找表达、所述替换表达和所述过滤约束中的一个或多个(例如,基于包括经由迁移接口的先前用户输入的训练数据)。
[0044]
在310和312处分别识别出的查找表达和/或替换表达不需要是特定文本字符串的逐字实例,而是可以包括一个或多个通配符和/或定义一个或多个模式。这些通配符和/或模式能由迁移模块识别,使得与通配符和/或模式一致的查找表达的实例能够利用替换表达的实例来替换。
[0045]
在318处,所述方法包括基于所述过滤约束在所述先前注释的训练示例的子集内
识别所述查找表达的实例。在示例中,所述子集的一些或所有训练示例包括利用程序片段标记的话语,所述程序片段包括所述查找表达的实例。因此,在至少一些示例中,所述方法在320处包括在所述先前注释的训练示例的子集内识别所述查找表达的每个实例。所述迁移模块的匹配器或搜索引擎组件可以被用于在先前注释的训练示例的子集内识别所述查找表达的每个实例。所述匹配器或搜索引擎可以在执行方法300之前执行对所述训练数据和训练示例的索引的示例中利用所述训练数据的索引。
[0046]
作为操作318和320的一部分,方法在322处可以包括基于所述过滤约束在所述先前注释的训练示例中识别所述先前注释的训练示例的子集。如通过以下示例所描述的,所述先前注释的训练示例的子集或者其子区域可以基于一个或多个用户可选择的过滤器和所述过滤约束的相关联的标准来识别。
[0047]
在第一示例中,所述过滤约束包括训练示例标识符或训练示例标识符的集合,其识别一个或多个先前注释的训练示例。在该示例中,先前注释的训练示例的子集可以由用户具体识别为用于迁移到经更新的训练示例的候选。
[0048]
在第二示例中,所述过滤约束识别所述先前注释的训练示例的目标子区域,其中,所述查找表达的实例将被呈现以被识别为所述子集的一部分。在该示例中,所述先前注释的训练示例的子集各自包括在所述子集的所述先前注释的训练示例的目标子区域内的查找表达的至少一个实例。所述目标子区域可以包括前导子区域或程序片段子区域,其标记先前注释的训练示例的话语。参考图4进一步详细描述了训练示例的示例性子区域。
[0049]
在第三示例中,所述过滤约束识别关键字和先前注释的训练示例的目标子区域或者其他合适的标准。在该示例中,所述先前注释的训练示例的子集均包括关键字或者满足所述子集的所述先前注释的训练示例的目标子区域内的标准。例如,所述目标子区域可以包括所述先前注释的训练示例的话语子区域,并且所述关键字可以形成所述话语区域的话语的一部分。与上文所讨论的第二示例相比,包含所述关键字的子区域可能与包含要在所述训练数据的格式和语法内替换的所述查找表达的实例的子区域不同,但是与所述子区域相链接。例如,所述查找表达的实例可以在标记包含所述关键字的话语区域的程序片段子区域内。
[0050]
在324处,所述方法包括利用所述替换表达的实例替换在所述先前注释的训练示例的子集内识别出的查找表达的实例以获得训练示例的经更新的子集。在至少一些示例中,所述方法在326处可以包括利用所述替换表达的实例替换在所述先前注释的训练示例的子集中的所述查找表达的每个实例。在所述过滤约束包括目标子区域的示例中,诸如标记话语的前导子区域或程序片段子区域,所述查找表达的每个实例可以在先前注释的训练示例的所述子集的目标子区域内被替换为所述替换表达的实例。针对所述过滤约束包括关键字或者满足其他合适标准并且目标子区域包括话语子区域的其他示例,所述查找表达的每个实例可以利用与包含关键字或者满足标准的目标子区域相关联的所述子集的每个先前注释的训练示例的不同子区域(例如,程序片段)内的替换表达的实例来替换。
[0051]
在328处,所述方法包括输出训练示例的经更新的子集。在所述子集的先前注释的训练示例包括利用包括所述查找表达的实例的程序片段标记的话语的示例中,所述子集的所述经更新的训练示例包括利经用更新的程序片段标记的话语,所述经更新的程序片段包括替换所述查找表达的实例的替换表达的实例。在至少一些示例中,在328处输出的训练示
例的经更新的子集可以伴随有不是被经更新的子集的一部分的先前注释的训练示例。训练示例的经更新的子集可以被存储在存储机中(例如,作为经更新的训练数据)和/或传递到训练程序的过程以用于随后训练机器学习模型。
[0052]
在330处,所述方法包括利用训练示例的经更新的子集来训练机器学习模型。在至少一些示例中,所述方法在330处可以包括结合先前注释的训练示例来训练机器学习模型,所述训练示例不是被更新的子集的一部分,诸如在所述机器学习模型先前没有使用所述先前注释的训练示例进行训练的情况。
[0053]
图4示出了图1的训练数据134的示例性数据结构400的示意图。在该示例中,训练数据134包括多个训练示例,其形式为注释对话402、404、406等,具有各自的对话标识符408、410、412等。这些注释对话的特征将在下文关于示例性注释对话402进一步详细描述。
[0054]
每个注释的对话可以包括多个子区域。注释对话402的示例性子区域包括包含前导注释414的前导子区域。前导注释414可以包括程序片段,所述程序片段包括状态种子416,状态种子416定义了针对注释对话的一个或多个注释话语的初始状态。前导注释414是图1的注释136的一个示例。在图4的实例中,被包含在前导注释414中的状态种子416包括以下表达:具有主题“dry run”的种子事件,开始于2019年7月29日下午2点,持续时间为2小时,其能够由训练程序翻译以定义初始状态为包括名为“dry run”的事件,其被安排于2019年7月29日下午2点开始,并且其持续时间为2小时。
[0055]
每个注释的对话可以包括一个或多个对话轮次的集合,其中的每一个形成注释对话的相应子区域。在该示例中,注释对话402包括1到n个对话轮次的集合(例如,420、430、440),每个轮次包括输入话语(例如,分别为422、432、442)、计划(例如,分别为424、434、444)以及响应话语(例如,分别为426、436、446)。响应话语426、436和446是图2的动作226的非限制性示例。输入话语、计划和响应话语也形成了注释对话的相应子区域。输入话语422、432、442等是图1的输入话语132的示例。计划424、434、444等和响应话语426、436、446等也是图1的注释136的示例。
[0056]
总体而言,每个对话轮次对应于由人类注释者标记的相应注释话语。在对话轮次420内,输入话语422包括:“将dry run更新到上午11点”。因此,在注释对话402的训练示例中,用户已经指示(例如,经由输入话语422)会话式计算系统将事件“dry run”的初始状态从在同一天的下午2点更新到上午11点,作为响应,计划424将生成包括根据用户指令更新事件的动作,并且输出确认事件已经被更新的响应话语426。例如,在该训练示例中要由会话式计算系统提供的响应话语426包括:“好的,dry run已经被更新为在上午11点开始”。
[0057]
对话轮次的每个计划可以包括或者以其他方式定义包括一个或多个表达的程序片段。在该示例中,计划424、434、444等包括或者以其他方式定义表达428、438、448等。作为一个示例,每个计划可以由人类注释者使用注释编程语言来创建,所述注释编程语言由迁移模块或训练程序解析并且转换成具有不同编程语言的计算机可执行表达。在图4中所描绘的示例中,表达428由注释编程语言来表示,所述注释编程语言包括以下表达:“describe ask update the only find event with subject like“dry run”.results.id with event with start 11am”。在该示例中,所述迁移模块或训练程序将所述注释编程语言翻译成不同的形式以供会话式计算系统运行,在其之内可以识别查找表达并且利用替换表达来替换。在至少一些示例中,用户可以经由迁移接口来查看注释编程语言的翻译形式以容
易地向迁移模块提供查找表达。在另一示例中,每个计划包括计算机可执行形式的表达,所述表达不利用翻译成另一种编程语言。
[0058]
出于说明性目的,对话轮次的另一示例包括:人类用户的包括“7月4日之后2天是什么日子?”的输入话语;定义包括表达“描述7月4日之后两天”作为注释编程语言的示例的计划的注释;以及对话式计算系统的包括“星期一,日期将是2020年7月6日”的响应话语,诸如在注释对话被植入了当前日期在2020年内的初始状态的情况。
[0059]
在图4的示例内,根据数据结构400的逻辑次序,对话轮次430在注释对话402内的对话轮次420之后发生。对话轮次430提供了在对话轮次420的输入/响应训练对之后出现的额外输入/响应训练对。在该示例中,运行先前对话轮次420的计划424的结果可以作为响应话语426被记录在注释对话中,也可以被记录在经更新的事件数据中,从而可以参考其来响应后续输入话语432。例如,输入话语432可以包括:“我应当什么时候离开家才能到达dry run?”。在数据结构400的逻辑次序内,当计划434被运行时,注释对话的当前状态包括从上午11点开始的事件“dry run”,而不是由前导注释414最初设置的下午2点。因此,在该示例中,通过包括“为了准时dry run,您应当在上午10:30之前离开家”提供与11点开始时间相关的响应话语436,其中,从用户的家到事件地点的估计行进时间为大约30分钟。
[0060]
在至少一些示例中,图1的训练程序124可以捕获和存储与每个注释对话或者其他训练示例相关联的元数据。在图4中描绘了与训练对话402相关联的元数据的示例,包括创建或编辑所述注释对话的作者452(例如,用户身份),诸如通过利用包括程序片段的注释来标记话语或者前导。在该示例中的元数据450也包括与注释对话相关联的事件的时间戳454,诸如注释对话的创建和编辑。元数据450还可以包括与注释对话的子区域相关联的描述性标签456。例如,标签456可以包括不包括计算机可执行代码的人类注释。标签456可以被应用于注释对话的各种子区域中的任意子区域,包括前导、输入话语、计划、响应、对话轮次、表达等。
[0061]
在至少一些示例中,训练程序124可以索引注释对话或者其他训练示例,并且将索引存储在训练数据134内。被包含在索引内的数据可以使得能够搜索和过滤所述注释对话,如参考图5进一步详细描述的。
[0062]
在图4的数据结构400内,所述注释对话以及其各种子区域(诸如前导注释、对话轮次、输入话语、计划、表达等)可以通过语法令牌或标志相互描绘。例如,输入话语422、432、442等可以采取训练数据134内的元数据的形式,所述元数据由特定编程语言使用的特定字符或字符序列(例如,#或/*)从训练数据的编程片段或者其他特征进行描绘。基于结构(例如,树结构)和语法令牌或标志,训练数据134的部分可以被识别为形成相同程序片段的一部分,由此使得迁移模块能够将数据的特定配置识别为属于相同的前导码注释、计划、表达、对话轮次、注释对话等。如先前参考图3的方法300所描述的,人类迁移者可以将查找表达的替换定位或限制到特定子区域和/或训练数据的对话。
[0063]
图5示出了示例性迁移编辑器接口500的示意图。迁移编辑器接口500是图1的迁移接口142的示例。在示例中,迁移编辑器接口500采用一个或多个图形用户界面的形式,其经由计算系统的显示器呈现给人类迁移者。然而,迁移编辑器接口500可以采用非图形形式。
[0064]
迁移编辑器接口500包括:查找表达字段510,用户可以通过查找表达字段510输入查找表达;以及替换表达字段512,用户可以通过替换表达字段512输入用于要替换训练数
据集内的查找表达的实例的替换表达。在至少一些示例中,所述迁移模块可以支持使用包括经由查找表达字段510和/或替换表达字段512提供的通配符的查找表达和/或替换表达。通过访问深度嵌套在编程树结构内的表达,通配符可以被用于调节注释的一部分而不改变注释的其他部分。在示例中,通配符可以采用“[wildcardname]”的形式。替换表达中的通配符将替换查找表达中的对应通配符。
[0065]
如在图5的示例中所描绘的,在注释编程语言(例如,形成图4的计划444的一部分)内的注释“[y]之后的[x]天”的实例将被替换为在注释编程语言中的注释“[y]之后的[x]周”的实例。为了制定这种迁移,所述查找表达字段已经被填充有所述注释编程语言的翻译形式“[x].adjustbyperiod([y].todays())”(例如,形成图4的表达448的一部分),并且替换表达字段已经利用翻译形式“[x].adjustbyperiod([y].toweeks())”进行填充。在迁移之后,注释“[y]之后的[x]天”的实例将被替换为注释“[y]之后的[x]周”的实例。例如,输入话语(例如,图4的442)包括利用替换表达标记的“在dry run 2周之后是什么日子?”将在经训练的机器学习模型中生成响应,所述经训练的机器学习模型提供在2019年7月29日dry run事件两周之后的一天,而不是使用迁移前查找表达的事件两天之后的一天。
[0066]
另一示例性迁移包括创建约束对象以表示日期范围,而不是直接将开始/结束时间传递给每个函数,在其中有以下查找表达:eventalldaydatethroughdate{event:[event],startdate:[start],enddate:[end]}.hla()将被以下替换表达来替换:eventalldayfordaterange{event:[event],daterange:dateandconstraint*date1:[start],date2:[end]}.hla()}hla()。
[0067]
另一示例性迁移改变了系统如何搜索会议的参加者。以前,所述系统使用由用户提供的姓名来查找人,然后搜索与该特定人的会议。该先前方案可以由使用以下查找表达搜索具有有用户提供的姓名的任何人的会议进行替换:extensionconstraint(recipientwithnamelike{constraint:structconstraint[recipient]{},name:[personname]}.hla()).getsalient().execute().attendeelisthasrecipient(),该表达将被以下替换表达替换:recipientwithnamelike{constraint:structconstraint[recipient]{},name:[personname]}hla().attendeelisthasrecipientconstraint()。
[0068]
迁移编辑器接口500还包括过滤约束工具516的集合,其使得用户能够输入或者以其他方式设置定义一个或多个过滤器和相关联的标准的组合的过滤约束。在该示例中,过滤约束工具516包括前导部分520、轮次谓词部分522和对话过滤器部分524,其共同提供可选择的作为过滤约束的多个策划(curated)过滤器。将理解,过滤约束工具516可以包括不同种类的工具,并且在一些示例中用户可以添加新的过滤器。
[0069]
前导部分520使得用户能够在排除前导设置530、包括前导设置532或者仅前导设置534中进行选择,从而以注释对话的不同子区域为目标。如果选择排除前导设置530,则在训练示例的前导注释(例如,图4的前导注释414)内的经由查找表达字段510输入的查找表达的实例不被识别为由经由替换表达字段512提供的替换表达的实例替换的候选。如果选择了包括前导设置532,则在训练示例的前导注释内的查找表达的实例被识别为由替换表达的实例替换的候选。如果选择了仅前导设置534,则在前导注释内的查找表达的实例被识别为由替换表达的实例替换的候选,但是驻留在前导注释外部的查找表达的实例不被识别为由替换表达的实例替换的候选。
[0070]
轮次谓词部分522使得用户能够在轮次谓词540集合中进行选择,轮次谓词540可以由用户个体地添加(例如,经由添加选择器542)。每个轮次谓词使得用户能够将谓词指定为过滤器,所述过滤器被应用于注释对话的个体对话轮次(例如,420、430和440),由此使得用户能够以注释对话的特定子区域为目标。在该示例中,轮次谓词540的集合包括hastag、expressturnmatcher和utteranceregex,其将在下文进一步详细描述。取决于所选择的轮次谓词,可以提供一个或多个额外字段544以使得用户能够定义与每个所选择的轮次谓词相关联的标准。
[0071]
对话过滤器部分524使得用户能够在对话过滤器550的集合中进行选择,对话过滤器550可以由用户个体地添加(例如,经由添加选择器552)。对话过滤器使得用户能够以整个注释对话或者对话轮次构造之外的部分作为目标。下文进一步详细地描述对话过滤器550的示例。取决于所选择的对话过滤器550,可以提供一个或多个额外字段554、556、558等,以使得用户能够定义与每个所选择的对话过滤器相关联的标准。在图5中所描绘的正则表达选择器字段558影响正在搜索字符串值的特定过滤器。如果该字段558是活动的,则过滤器适用于那些值的正则表达。例如,对话上的标签是键=值对的集合,其中,每个值都是字符串。例如,选择正则表达选择器字段558将使得用户能够编写标签过滤器,诸如foo=a.*”并且使其与标签“foo=abc”、“foo=a”等相匹配。在该示例中,“*”用作通配符。
[0072]
在过滤约束工具516的示例性实现方式中,在没有由用户经由过滤约束工具516设置的过滤约束的情况下,在训练数据集中的所有先前注释的训练示例最初被认为是用于迁移的候选。在注释对话的上下文内被用作训练示例时,训练数据集的注释对话内的查找表达的所有实例都是替换表达替换的候选,除非过滤约束工具516被用于针对注释对话的特定子集或者其特定子区域。继续该示例,迁移模块首先应用经由对话过滤器部分524设置的一个或多个对话过滤器,以将所述训练数据集的所有注释对话过滤到通过经由对话过滤器部分524设置的对话过滤器以及其相关联标准的组合的那些注释对话。在至少一些示例中,所述迁移模块可以将所选择的对话过滤器“与”在一起以要求以迁移为目标的注释对话通过与所有所选择的对话过滤器相关联的标准。接下来,将经由轮次谓词部分522设置的一个或多个轮次谓词以及其相关联的标准集合应用于通过一个或多个对话过滤器的注释对话,以将那些注释对话的对话轮次(例如,图4的420、430和440)过滤到通过与一个或多个轮次谓词相关联的标准的对话轮次。在至少一些示例中,迁移模块可以将所选择的轮次谓词“与”在一起以要求以迁移为目标的注释对话以及其对话轮次通过与所有所选择的轮次谓词相关联的标准。轮次谓词部分522不适用于注释对话的前导注释(例如,图4的414),因为前导注释不是对话轮次。然后,将迁移应用于通过对话过滤器部分524和轮次谓词部分522两者的注释对话的剩余对话轮次,使得在剩余对话轮次内的查找表达的每个实例被替换表达的实例替换。迁移将不修改不包括查找表达的对话轮次。
[0073]
迁移编辑器接口500可以包括主体表达字段560,用户可以通过主体表达字段560输入主体表达。所述主体表达在由用户提供时规定必须成功地评估所述主体表达,才能将查找表达的实例识别为替换表达替换的候选。如果未成功评估,则查找表达将不被识别为由替换表达替换的候选。在示例中,主体表达可以被用于将先前的迁移示例(其中,天被更改为周)限制为仅迁移天数为偶数的话语的查找表达的实例。因此,在该示例中,图5的主体表达字段560由表达“assert(==(mod([y],2),0))”填充,以对查找表达字段中的通配符
匹配的值进行断言。
[0074]
迁移编辑器接口500可以包括可以经由用户输入选择的保存选择器570、预览选择器572和取消选择器574。在选择保存选择器570时,用户经由迁移编辑器接口500选择的各种字段和过滤约束工具的数据输入(被统称为“迁移数据”)可以被保存到迁移文件以供迁移模块用于迁移训练数据集。在选择取消选择器574时,用户经由迁移编辑器接口500选择的各种字段和过滤约束工具的数据输入不被保存或提交到迁移文件。
[0075]
在选择预览选择器572时,可以提供迁移预览接口,其通过利用替换表达的一个或多个实例来替换查找表达的一个或多个实例来呈现对先前注释的训练示例的子集的预览部分的改变。所述迁移预览接口使得用户能够使用经由迁移编辑器接口500设置的过滤约束来测试和检查关于子集的预览部分如何执行迁移。所述预览部分可以表示少于先前注释的训练实例的整个子集,所述子集将通过子集的迁移由替换表达的实例替换查找表达的实例来更新。在至少一些示例中,迁移编辑器接口500还可以包括预览约束工具576,其使得用户能够定义限制迁移的预览部分的方面的预览约束。例如,所述预览约束可以将所述预览部分限制为对训练数据的特定的更新量、更新数据的量、更新的注释对话的量、用于进行预览迁移的计算机运行时间、用于显示结果的页面计数等。鉴于训练数据的一些迁移可能需要数小时或数天来由计算系统实现,因而用户预览训练数据的有限部分的迁移结果的能力使得用户能够测试迁移并且比迁移整个训练数据集更快地接收反馈。预览约束工具576可以采用任何合适的形式,包括数据字段、下拉菜单、图形变量控制元件(例如,图形滑块或旋钮),或者用户可以通过其定义预览约束的其他合适的工具。参考图6进一步详细地描述迁移预览接口的示例。
[0076]
再次参考轮次谓词540的集合,hastag轮次谓词可以被用于以对话轮次为目标,所述对话轮次是先验确定的并且具有被应用于其的标签。然后,所述迁移能够以该特定标签(例如,作为字段544中的指定标准)为目标。针对这种轮次谓词的原因是,针对一些迁移的查找表达可能不够灵活,无法表达所针对的条件集。例如,开发人员可以编写在对话状态上操作的专门(ad-hoc)迁移,针对更复杂的条件来测试对话轮次,并且通过使用与替换表达的实例相匹配的查找表达将标签应用到目标。
[0077]
expresstummatcher轮次谓词使得用户能够向下过滤到匹配给定表达并且满足主体字段中为任何提取的通配符指定的条件的对话轮次。相对在该过滤器中提供的查找表达来检查对话轮次,并且对话轮次必须匹配才能在对话轮次上运行迁移。
[0078]
utteranceregex轮次谓词使得用户能够向下过滤到包含与查找表达字段内提供的正则表达相匹配的用户话语的对话轮次。
[0079]
再次参考对话过滤器部分524,对话过滤器550的集合包括标签、排除标签、步骤标签、排除步骤标签、最新作者、原始作者、生成规则id、模式、创建、更新、对话id、排除对话id、注释语言、话语和排除话语,作为对话过滤器的示例。这些对话过滤器可以对应于在被应用于注释示例的索引过程之后被存储在训练数据中的索引数据字段。
[0080]
所述标签对话过滤器可以被用于将注释对话包括在训练示例的子集内,在所述训练示例的子集内,查找表达的实例是由替换表达的实例替换的候选。该对话过滤器被用于针对被先验确定并且具有被应用其的标签的任何对话集合。然后,迁移能够针对该特定标签。与hastag轮次谓词类似,当目标条件过于复杂而无法在查找表达字段中表达时,能够使
用标签对话过滤器。每个对话的标签可以由人类注释者手动地分配,或者由计算机程序以编程方式分配。
[0081]
所述排除标签对话过滤器可以被用于从训练示例的子集中排除注释对话,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。
[0082]
所述步骤标签对话过滤器可以被用于将注释对话包括在训练示例的子集内,在所述训练示例子集内,所述查找表达的实例是由替换表达的实例替换的候选。所述步骤标签对话过滤器类似于hastag轮次谓词,不同之处在于该对话过滤器具有“如果任何轮次匹配则为真”的语义,而不是个体地检查每个轮次。
[0083]
所述排除步骤标签对话过滤器可以被用于从训练示例的子集中排除注释对话,在所述训练示例的子集内,查找表达的实例是由替换表达的实例替换的候选。
[0084]
所述最新作者对话过滤器可以能用于将已经由特定用户最后编辑的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够针对由特定人类注释者最后编辑的训练示例,如经由字段554提供的。
[0085]
所述原始作者对话过滤器可以被用于将由特定用户最初创建或编辑的注释对话包含在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够针对最初由特定人类注释者创建或编辑的训练示例,如经由字段554提供的。
[0086]
所述生成规则id对话过滤器可以被用于将使用指定生成规则的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。
[0087]
所述模式对话过滤器可以被用于将使用指定抽象表达集合的宏或函数的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达实例替换的候选。
[0088]
所述创建对话过滤器可以被用于将在特定时间段内创建的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够针对由人类注释者在特定时间范围内创建的训练示例,如经由字段554提供的。
[0089]
所述更新对话过滤器可以被用于将在特定时间段内被更新或者以其他方式编辑的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够针对在特定时间范围内由人类注释者更新或者以其他方式编辑的训练示例,如经由字段554提供的。
[0090]
所述对话id对话过滤器可以被用于将具有特定对话标识符或标识符范围的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够由其相应标识符个体地针对训练示例,如经由字段554提供的。
[0091]
所述排除对话id对话过滤器可以被用于从训练示例的子集中排除具有特定对话标识符或标识符范围的注释对话,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够针对通过其相应的标识符从
训练示例的子集中排除的训练示例,如经由字段554提供的。
[0092]
所述注释语言对话过滤器可以被用于将具有在注释语言内的特定关键字的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够由在注释内包含的关键字来针对训练示例,如经由字段554提供的。
[0093]
所述话语对话过滤器可以被用于将具有在注释对话的输入话语子区域内的特定关键字的注释对话包括在训练示例的子集内,在所述训练示例的子集内,所述查找表达的实例是由替换表达替换的候选。该对话过滤器使得人类迁移者能够由输入话语中包含的关键字来针对训练示例,如经由字段554提供的。
[0094]
所述排除话语对话过滤器可以被用于从训练示例的子集中排除具有在注释对话的输入话语子区域内的特定关键字的注释对话,在所述训练示例的子集内,所述查找表达的实例是由替换表达的实例替换的候选。该对话过滤器使得人类迁移者能够针对由在输入话语内包含的关键字排除的训练示例,如经由字段554提供的。
[0095]
图6示出了图1的训练程序124的示例性迁移预览接口600的示意图。迁移预览接口600是图1的迁移接口142的另一示例。如先前参考图5所描述的,可以响应于用户选择迁移编辑器接口500的预览选择器572来生成和呈现迁移预览接口600。
[0096]
迁移预览接口600包括改变的结果部分610,在其之内可以呈现已经被预览的迁移临时改变的注释对话连同那些临时改变的细节一起供用户查看。在图6中所描绘的示例中,改变的结果部分610提供包含临时改变的一个或多个注释对话的列表,其中,每个注释对话由在612处指示的对话标识符识别,其中相关联的改变概要窗口614使得用户能够查看对注释对话的临时改变。在616处描绘了对注释对话的临时改变的示例。在该示例中,利用注释编程语言对注释的改变以如下方式示出:删除线用于删除,下划线和粗体用于对注释的添加。如果预览的迁移导致没有临时改变的对话,则可以在618处呈现该结果的指示。
[0097]
迁移预览接口600还包括未改变的结果部分620,在其之内可以呈现尚未被预览的迁移临时改变的注释对话以供用户查看,例如,通过由在622处指示的对话标识符识别每个注释对话。如果预览的迁移导致没有临时未改变的对话,则可以在624处呈现该结果的指示。
[0098]
迁移预览接口600还包括预览错误部分630,在其之内可以呈现由预览的迁移导致的临时错误以供用户查看。在至少一些示例中,所述迁移模块可以支持作为生成预览的一部分运行的错误检查。如果预览的迁移没有导致临时错误,则可以在632处呈现该结果的指示。在图6中所描绘的示例中,预览错误部分630提供包含错误的一个或多个注释对话的列表,其中,每个注释对话由在634处指示的对话标识符来识别,其中,相关联的错误概要窗口636使得用户能够查看对注释对话的临时错误。
[0099]
图7示意性示出了计算系统700的简化表示,计算系统700被配置为向在本文中所描述的所有计算功能提供任何功能。计算系统700可以采取一个或多个个人计算机、网络可访问服务器计算机、平板计算机、家庭娱乐计算机、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、虚拟/增强/混合显示计算设备、可穿戴计算设备、物联网(iot)设备、嵌入式计算设备和/或者其他计算设备的形式。
[0100]
计算系统700包括逻辑机702和存储机704。计算系统700可选地包括显示子系统
706、输入子系统708、通信子系统710和/或在图7中未示出的其他子系统。
[0101]
逻辑机702包括被配置为运行指令的一个或多个物理设备。例如,所述逻辑机可以被配置为运行作为一个或多个应用、服务或者其他逻辑结构的一部分的指令。逻辑机可以包括被配置为运行软件指令的一个或多个硬件处理器。另外地或替代地,逻辑机可以包括被配置为运行硬件或固件指令的一个或多个硬件或固件设备。逻辑机的处理器可以是单核的或多核的,在其上运行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑机的个体组件可选地可以被分布在两个或更多个单独设备之间,所述设备可以远程地定位和/或被配置用于协调处理。逻辑机的各方面可以由被配置在云计算配置中的远程可访问的联网计算设备来虚拟化和执行。
[0102]
存储机704包括一个或多个物理设备,其被配置为临时和/或永久地保存计算机信息,诸如能由逻辑机运行的数据和指令。当存储机包括两个或更多个设备时,所述设备可以并置和/或远程地定位。存储机704可以包括易失性、非易失性、动态、静态、读/写、只读、随机访问、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。存储机704可以包括可移除和/或内置设备。当逻辑机运行指令时,存储机704的状态可以被转换——例如以保存不同的数据。
[0103]
逻辑机702和存储机704的各方面可以一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括特定于程序和应用的集成电路(pasic/asic)、特定于程序和应用的标准产品(pssp/assp)、片上系统(soc)和复杂的可编程逻辑设备(cpld)。
[0104]
逻辑机和存储机可以协作以实例化一个或多个逻辑机。如在本文中所使用的,术语“机器”被用于共同指代硬件、固件、软件、指令和/或协作以提供计算机功能的任何其他组件的组合。换言之,“机器”从来都不是抽象的概念,总是具有有形的形式。机器可以由单个计算设备实例化,或者机器可以包括由两个或者更多个不同计算设备实例化的两个或者更多个子组件。在一些实现方式中,机器包括与远程组件(例如,由服务器计算机网络提供的云计算服务)协作的本地组件(例如,由计算机处理器执行的软件应用)。赋予特定机器其功能的软件和/或者其他指令可选地作为一个或多个未执行的模块保存在一个或多个合适的存储设备上。
[0105]
机器可以使用现有技术和/或未来机器学习(ml)、人工智能(ai)和/或自然语言处理(nlp)技术的任何适当组合来实现。可以结合在一个或多个机器的实现方式中的技术的非限制性示例包括:支持向量机、多层神经网络、卷积神经网络(例如,包括用于处理图像和/或视频的空间卷积网络、用于处理音频信号和/或自然语言句子的时间卷积神经网络和/或被配置为在一个或多个时间和/或空间维度上卷积和汇集特征的任何其他合适的卷积神经网络)、递归神经网络(例如,长短期记忆网络)、关联存储器(例如,查找表、散列表、bloom过滤器、神经图灵机和/或神经随机存取存储器)、词嵌入模型(例如,glove或word2vec)、无监督空间和/或聚类方法(例如,最近邻算法、拓扑数据分析和/或k均值聚类)、图形模型(例如(隐)马尔可夫模型、马尔可夫随机场、(隐)条件随机字段和/或ai知识库)和/或自然语言处理技术(例如,令牌化、词干提取、选区和/或依赖解析,和/或意图识别、分段模型和/或超分段模型(例如,隐式动态模型))。
[0106]
在一些示例中,在本文中所描述的方法和过程可以使用一个或多个可微函数来实现,其中,可微函数的梯度可以关于可微函数的输入和/或输出来计算和/或估计(例如,关
于训练数据,和/或关于目标函数)。这样的方法和过程可以至少部分地由可训练参数集来确定。因此,可以通过任何合适的训练程序来调节特定方法或过程的可训练参数,以便持续改进方法或过程的功能。
[0107]
用于调节可训练参数的训练过程的非限制性示例包括:监督训练(例如,使用梯度下降或者任何其他合适的优化方法)、零样本、少样本、无监督学习方法(例如,基于源自无监督聚类方法的类别的分类)、强化学习(例如,基于反馈的深度q学习)和/或生成对抗神经网络训练方法、信念传播、ransac(随机样本共识)、上下文老虎机方法、最大似然方法和/或期望最大化。在一些示例中,在本文中所描述的系统的多个方法、过程和/或组件可以关于测量多个组件的集体功能的性能的目标函数(例如,关于强化反馈和/或关于标记的训练数据)同时训练。同时训练多个方法、过程和/或组件可以改进这种集体功能。在一些示例中,一种或多种方法、过程和/或组件可以独立于其他组件进行训练(例如,对历史数据的离线训练)。
[0108]
语言模型可以利用词汇特征来指导对词语的采样/搜索以识别语音。例如,语言模型可以至少部分地由词语或者其他词汇特征的统计分布来定义。例如,语言模型可以由n元语法(n-gram)的统计分布定义,根据词汇统计定义在候选词语之间的转换概率。语言模型还可以基于任何其他适当的统计特征,和/或利用一种或多种机器学习和/或统计算法处理统计特征的结果(例如,由这样的处理产生的置信度值)。在一些示例中,统计模型可以约束对于音频信号可以识别哪些词语,例如,基于音频信号中的词来自特定词汇表的假设。
[0109]
替代地或另外地,语言模型可以基于一个或多个神经网络,所述神经网络先前被训练来呈现共享潜在空间中的音频输入和词语,例如,由一个或多个音频和/或词语模型(例如,wav21etter和/或word2vec)学习的向量空间。因此,查找候选词语可以包括基于由音频模型编码的向量在共享潜在空间中搜索音频输入,以便找到候选词语向量以利用词语模型进行解码。对于一个或多个候选词语,共享潜在空间可以被用于评估候选词语在语音音频中的特征的置信度。
[0110]
语言模型可以与声学模型结合使用,所述声学模型被配置为基于词语的声学特征(例如,mel频率倒谱系数或共振峰),针对候选词语和音频信号评估候选词语包含在音频信号中的语音音频中的置信度。可选地,在一些示例中,语言模型可以并入声学模型(例如,语言模型的评估和/或训练可以基于声学模型)。声学模型定义了在声学信号和诸如音素的基本声音单元之间的映射,例如,基于标记的语音音频。声学模型可以基于现有技术或未来机器学习(ml)和/或人工智能(ai)模型的任何合适组合,例如:深度神经网络(例如,长短期记忆、时间卷积神经网络、受限玻尔兹曼机、深度信念网络)、隐马尔可夫模型(hmm)、条件随机场(crf)和/或马尔可夫随机场、高斯混合模型和/或者其他图形模型(例如,深度贝叶斯网络)。要用声学模型处理的音频信号可以以任何合适的方式进行预处理,例如以任何合适的采样率、傅里叶变换或带通滤波器进行编码。声学模型可以被训练以基于用标记的音频数据的训练来识别在声学信号和声音单元之间的映射。例如,可以基于包括语音音频和校正文本的标记音频数据来训练声学模型,以便学习在语音音频信号和由校正文本表示的声音单元之间的映射。因此,声学模型可以不断改进以提高其正确识别语音音频的效用。
[0111]
在一些示例中,除了统计模型、神经网络和/或声学模型之外,语言模型可以结合任何合适的图形模型,例如,隐马尔可夫模型(hmm)或条件随机场(crf)。给定语音音频和/
或到目前为止识别的其他词语,图形模型可以利用统计特征(例如,转换概率)和/或置信度值来确定识别词语的概率。因此,图形模型可以利用统计特征、先前训练的机器学习模型和/或声学模型来定义图形模型中表示的状态之间的转换概率。
[0112]
当被包括时,显示子系统706可以被用于呈现由存储机704保存的数据的视觉表示。该视觉表示可以采用图形用户界面(gui)的形式。显示子系统706可以包括利用几乎任何类型的技术的一个或多个显示设备。在一些实现方式中,显示子系统706可以包括一个或多个虚拟现实、增强现实或混合现实显示器。
[0113]
当被包括时,输入子系统708可以包括一个或多个输入设备或者与其接口。输入设备可以包括传感器设备或用户输入设备。用户输入设备的示例包括键盘、鼠标、触摸屏或游戏控制器。在一些实施例中,输入子系统可以包括所选择的自然用户输入(nui)组件或者与其进行接口。这样的组件可以是集成的或外围的,并且输入动作的转换和/或处理可以在板上或板外处理。示例性nui组件可以包括用于言语和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计和/或陀螺仪。
[0114]
当被包括时,通信子系统710可以被配置为将计算系统700与一个或多个其他计算设备通信地耦合。通信子系统710可以包括与一种或多种不同通信协议兼容的有线和/或无线通信设备。通信子系统可以被配置为经由个域网、局域网和/或广域网进行通信。
[0115]
本公开以示例的方式并参考相关联附图来呈现。在一幅或多幅图中可能基本相同的组件、过程步骤和其他元素被协调地标识并且以最少的重复进行描述。然而,应注意,同等标识的元素也可能在某种程度上有所不同。还应注意,一些图可能是示意性的而不是按比例绘制的。图中所示的各种绘图比例、纵横比和组件数量可能会被故意扭曲以使某些特征或关系更容易看到。
[0116]
在本公开的示例中,一种由计算系统执行的方法,所述计算系统运行程序指令以将先前注释的训练示例调整为用于训练人工智能系统的经更新的训练示例,包括:识别查找表达;识别替换表达;识别过滤约束,所述过滤约束将所述先前注释的训练示例的子集与所述先前注释的训练示例中的其他训练示例区分开来;基于所述过滤约束,在所述先前注释的训练示例中识别出的所述先前注释的训练示例的所述子集内识别所述查找表达的实例;利用所述替换表达的实例替换在所述先前注释的训练示例的所述子集内识别出的所述查找表达的实例,以获得训练示例的经更新的子集;以及输出训练示例的所述经更新的子集。在该示例或者任何其他示例中,所述方法还包括利用训练示例的所述经更新的子集来训练机器学习语言模型。在该示例或者任何其他示例中,所述先前注释的训练示例的所述子集的训练示例包括利用包括所述查找表达的实例的程序片段标记的话语;以及训练示例的所述经更新的子集包括利用经更新的程序片段标记的所述话语,所述经更新的程序片段包括替换所述查找表达的实例的所述替换表达的实例。在该示例或者任何其他示例中,为了获得训练示例的所述经更新的子集,所述方法还包括:在所述先前注释的训练示例的所述子集内识别所述查找表达的每个实例;以及利用所述替换表达的实例替换在所述子集内识别出的所述查找示例的每个实例。在该示例或者任何其他示例中,所述方法还包括:提供迁移预览接口,其通过在输出训练示例的所述经更新的子集之前利用所述替换表达的一个或多个实例替换所述查找表达的一个或多个实例,来呈现对所述先前注释的训练示例的所
述子集的预览部分的改变。在该示例或者任何其他示例中,所述预览部分表示小于通过利用所述替换表达的实例替换所述查找表达的实例而更新的经更新的训练示例的整个子集。在该示例或者任何其他示例中,所述方法还包括基于所述过滤约束,在所述先前注释的训练示例中识别先前注释的训练示例的子集。在该示例或者任何其他示例中,所述过滤约束识别所述先前注释的训练示例的目标子区域;所述先前注释的训练示例的所述子集各自包括在所述子集的所述先前注释的训练示例的所述目标子区域内的所述查找表达的实例;并且所述方法还包括在先前注释的训练示例的所述子集的目标子区域内利用所述替换表达的实例替换查找表达的每个实例。在该示例或者任何其他示例中,所述目标子区域包括标记所述先前注释的训练示例的话语的前导子区域或程序片段子区域。在该示例或者任何其他示例中所述,过滤约束识别关键字和所述先前注释的训练示例的目标子区域;并且所述先前注释的训练示例的所述子集各自包括在所述子集的所述先前注释的训练示例的所述目标子区域内的关键字。在该示例或者任何其他示例中,所述方法还包括在与所述目标子区域相关联的所述子集的所述先前注释的训练示例的不同子区域内利用所述替换表达的实例替换所述查找表达的实例。在该示例或者任何其他示例中,所述目标子区域包括话语子区域;以及所述不同子区域包括话所述语子区域的注释子区域。在该示例或者任何其他示例中,所述查找表达包括通配符。在该示例或者任何其他示例中,所述方法还包括提供迁移接口,其中,识别所述查找表达、所述替换表达和所述过滤约束包括经由所述迁移接口接收定义所述查找表达、所述替换表达和所述过滤约束的用户输入。在该示例或者任何其他示例中,所述迁移接口包括针对所述过滤约束可选择的策划过滤器的集合。在该示例或者任何其他示例中,所述策划过滤器的集合包括过滤器的一个或多个子集,所述过滤器被应用于所述先前注释的训练示例的不同的相应子区域;以及应用所述过滤器的第一子集的第一子区域定义了包括输入话语和注释的注释对话的对话轮次。在该示例或者任何其他示例中,应用所述过滤器的第二子集的第二子区域包括注释对话的前导、注释的程序片段或者输入话语。
[0117]
在本公开的另一方面,公开了一种保存能由逻辑机运行的指令的存储机,其中,所述指令包括:用于识别查找表达的指令;用于识别替换表达的指令;用于识别过滤约束的指令,所述过滤约束将所述先前注释的训练示例的子集与所述先前注释的训练示例中的其他训练示例区分开来;用于基于所述过滤约束在先前注释的训练示例中识别先前注释的训练示例的子集的指令;用于在所述先前注释的训练示例的所述子集内识别所述查找表达的实例的指令,所述先前注释的训练示例的所述子集的训练示例包括利用包括所述查找表达的实例的程序片段标记的话语;用于利用所述替换表达的实例替换在所述先前注释的训练示例的所述子集内识别出的所述查找表达的实例以获得训练示例的经更新的子集的指令,所述经更新的子集包括利用经更新的程序片段标记的话语,所述经更新的程序片段包括所述替换表达的实例;以及用于输出训练示例的经更新的子集的指令。在该示例或者任何其他示例中,存储机的指令还包括利用训练示例的经更新的子集训练机器学习模型的指令。
[0118]
在本公开的另一示例中,一种一个或多个计算设备的计算系统,包括:逻辑机;以及
[0119]
存储机,其保存能由逻辑机运行的指令用于:
[0120]
提供包括查找表达字段、替换表达字段以及一个或多个过滤约束工具的集合的迁
移接口;将查找表达识别为经由所述查找表达字段接收到的用户输入;将替换表达识别为经由所述替换表达字段接收到的用户输入;将过滤约束识别为经由过滤约束工具的集合接收到的用户输入,所述过滤约束将所述先前注释的训练示例的子集与所述先前注释的训练示例中的其他训练示例区分开来;基于所述过滤约束,在先前注释的训练示例中识别先前注释的训练示例的子集;在所述先前注释的训练示例的所述子集内识别所述查找表达的实例,所述先前注释的训练示例的所述子集的训练示例包括利用包括所述查找表达的实例的程序片段标记的话语;利用所述替换表达的实例替换在所述先前注释的训练示例的所述子集中识别出的所述查找表达的实例,以获得训练示例的经更新的子集,所述经更新的子集包括利用经更新的程序片段标记的所述话语,所述经更新的程序片段包括所述替换表达的实例;以及输出训练示例的所述经更新的子集。
[0121]
将理解,在本文中所描述的配置和/或方法本质上是示例性的,并且这些特定实施例或示例不应当被认为具有限制意义,因为许多变化是可能的。在本文中所描述的特定例程或方法可以表示任意数量的处理策略中的一个或多个。这样,所图示和/或所描述的各种动作可以以所图示和/或所描述的次序、以其他次序、并行执行或省略。类似地,可以改变上述过程的次序。
[0122]
本公开的主题包括各种过程、系统和配置以及在本文中所公开的其他特征、功能、动作和/或特性的所有新颖和非显而易见的组合和子组合,以及任何及其所有等价物。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献