CN114925846A - 用于高效训练和部署机器学习模型的管线 - Google Patents

用于高效训练和部署机器学习模型的管线 Download PDF

Info

Publication number
CN114925846A
CN114925846A CN202210023098.7A CN202210023098A CN114925846A CN 114925846 A CN114925846 A CN 114925846A CN 202210023098 A CN202210023098 A CN 202210023098A CN 114925846 A CN114925846 A CN 114925846A
Authority
CN
China
Prior art keywords
mlms
data
neural network
training
pipeline
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
CN202210023098.7A
Other languages
English (en)
Inventor
J·M·科恩
R·E·利里
S·D·琼金
P·慕克吉
J·F·桑托斯
T·科尔纳塔
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.)
Nvidia Corp
Original Assignee
Nvidia 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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN114925846A publication Critical patent/CN114925846A/zh
Pending legal-status Critical Current

Links

Images

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
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/18Artificial neural networks; Connectionist approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/16Speech classification or search using artificial neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了用于高效训练和部署机器学习模型的管线,具体公开了提供用于高效训练、重新训练、配置、部署、以及使用机器学习模型以在用户特定平台中进行推理的管线的装置、系统和技术。

Description

用于高效训练和部署机器学习模型的管线
技术领域
至少一个实施例涉及用于执行和促进人工智能的处理资源。例如,至少一个实施例涉及提供用于高效训练、配置、部署机器学习模型和在用户特定平台中使用机器学习模型的管线。
背景技术
机器学习通常用于办公室和医院环境、机器人自动化、安全应用程序、自主交通、执法和许多其他设置。特别地,机器学习应用于音频和视频处理,诸如声音、语音和对象识别。机器学习的一种流行方法包括使用训练数据(声音、图像和/或其他数据)来训练计算系统,以识别可促进数据分类的数据模式,例如训练图像中的特定类型的对象或训练语音中特定单词的存在。训练可以是有监督的或无监督的。机器学习模型可以使用各种计算算法,诸如决策树算法(或其他基于规则的算法)、人工神经网络等。在随后的部署阶段(也被称为“推理阶段”)期间,新数据被输入到经训练的机器学习模型中,并且可以使用在训练期间建立的模式和特征来识别各种目标对象、声音或感兴趣的句子。
附图说明
图1是根据至少一些实施例的支持训练、配置和部署一个或更多个机器学习模型的可定制管线的示例架构的框图;
图2A是根据至少一些实施例的图1中的可定制管线的训练引擎的示例架构的框图;
图2B是根据至少一些实施例的图1中的可定制管线的构建和部署阶段的示例架构的框图;
图3是根据至少一些实施例的能够实现支持训练、配置和部署一个或更多个机器学习模型的可定的管线的示例计算设备;
图4是根据至少一些实施例的使用一个或更多个机器学习模型进行语音的自然语言处理的示例可定制管线的框图;
图5是根据至少一些实施例的提供支持训练、配置和部署一个或更多个机器学习模型的可定制管线的示例方法的流程图;
图6是根据至少一些实施例的使用部署的可定制机器管线机器学习模型的示例方法的流程图;
图7A示出根据至少一个实施例的推理和/或训练逻辑;
图7B示出根据至少一个实施例的推理和/或训练逻辑;
图8示出根据至少一个实施例的神经网络的训练和部署;
图9是根据至少一个实施例的高级计算管线的示例数据流图;
图10是根据至少一个实施例的用于在高级计算管线中训练、适应、实例化和部署机器学习模型的示例系统的系统图。
具体实施方式
机器学习在许多行业和活动中已经变得不可或缺,其中至少一些级别的决策可以委托给计算机系统。目前,机器学习模型(MLM)是针对特定的目标领域和应用程序开发的。由于各种机器学习应用程序的目标可能非常多样化,因此可能需要根据经训练的MLM的预期用户,不同地设置、配置和训练MLM。然而属于同一通用类型的模型(例如,语音识别模型)在不同的用例中可能设置得非常不同。例如,为自动客户电话支持而设计的语音识别模型可能不同于为医院应用程序开发的模型,例如,用于记录医生分析患者的诊断数据或响应患者请求的叙述。此外,即使是在同一目标领域(例如医疗领域)中操作的MLM,也可能必须在不同的上下文中进行不同的配置。例如,为识别手术室中的语音而设计的模型可能必须与为观察病房或恢复病房而设计的模型不同地进行训练或配置。
目前,为用户特定(user-specific)领域中的应用程序配置MLM可能需要大量的开发工作。MLM的开发人员可能需要设计模型的架构(例如,在神经网络MLM的情况下,设计若干层和节点连接的拓扑),在相关的领域特定(domain-specific)训练数据上训练一个或更多个MLM,等等。在许多情况下,一个或更多个MLM可能只是更大的代码的一部分,该代码涉及各种额外的计算支持阶段,例如,声音预处理、声音伪影去除、过滤、后处理、光谱傅里叶分析等。多个MLM可能存在于同一计算管线中,并且开发人员可能必须将多个MLM合并到单个计算管线中,每个MLM都提供不同的功能。例如,自然语言处理应用程序的开发人员可能必须集成特征提取(其使用频谱分析)、声学MLM(其处理提取的特征)、声学后处理模块(去除伪影、填充词和停止词等),语言预处理(其执行单词分词、词元化等),语言MLM(其识别主题、说话者的意图、语言中的标点符号等),语言后处理(用于对语言MLM输出执行基于规则的修正/验证),等等。在这样的管线中,声学MLM的输出可以被输入到语言MLM中,该语言MLM还可以将数据输入到意图识别模型中,等等。
目前,要将具有各种支持阶段的一个或更多个MLM集成到单个计算管线或工作流程中,开发人员必须创建和管理包含整个工作流的代码。例如,开发人员可以创建平台特定代码,例如为满足医疗诊所的需求而定制的语音识别MLM管线。这样的代码可能会使在原始用例之外共享和扩展MLM应用程序变得繁琐和技术上具有挑战性。特别地,这种管线可能不容易可定制到其他领域或计算机平台。具体地,试图将管线的MLM重新配置到不同领域(例如,从股票交易公司到投资经纪公司)的另一个开发人员可能不仅必须重新配置实际的MLM,而且还可能需要重新设计和全面修改整个代码的多数,尽管代码的某些部分可实现管线的一个或更多个标准模块(例如,数字声音信号预处理)。因此,能够访问MLM管线但缺乏高级开发人员的专业知识的用户(例如,客户)可能无法根据用户的特定需求定制管线,例如,以重新配置自然语言编程MLM管线,以便用于用户感兴趣的不同语言领域(例如,体育广播)。因此,用户可能不得不使用次最佳的MLM管线满足用户的目标。替代地,用户可能必须获得额外的资源,并雇佣专业的开发人员来配置管线,并可能重新训练管线的部分或全部MLM。
本公开的各个方面和实施例通过描述能够高效管理和配置MLM管线的方法和系统来解决现代技术的这些和其他挑战。实现方式允许针对用户特定目标平台对MLM进行训练和重新训练,改变先前训练的MLM的参数和架构,选择和配置先前训练的MLM,调整选择的MLM以服务用户特定需求,将选择的MLM集成到进一步可定制的工作流中,在用户和云硬件上部署定制的工作流,输入实际推理数据,读取、存储和管理推理输出,等等。
系统架构
图1是根据至少一些实施例的支持一个或更多个机器学习模型的训练、配置和部署的可定制管线(CP)100的示例架构的框图。如图1所示,CP 100可以在计算设备102上实现,但应该理解,计算设备102的任何引擎和组件都可以在任意数量的计算设备上或在云上实现(或在其中共享)。计算设备102可以是台式计算机、膝上型计算机、智能手机、平板电脑、服务器、访问远程服务器的计算设备、利用虚拟化计算环境的计算设备、游戏控制台、可穿戴计算机、智能电视等等。CP 100的用户可以拥有对计算设备102的本地或远程(例如,通过网络)的访问权。计算设备102可具有(未在图1中示出)任意数量的中央处理单元(CPU)和图形处理单元(GPU),包括虚拟CPU和/或虚拟GPU,或能够执行本文所述技术的任何其他合适的处理设备。计算设备102可以进一步具有(未在图1中示出)任意数量的存储器设备、网络控制器、外围设备等。外围设备可包括用于捕获图像(或图像序列)的摄像机(例如,视频摄像机)、用于捕获声音的麦克风、扫描仪、传感器或用于数据获取的任何其他设备。
在一些实施例中,CP 100可以包括用于高效MLM实现的若干引擎和组件。用户(客户、最终用户、开发人员、数据科学家等)可以经由用户界面UI 104与CP 100交互,用户界面UI 104可以包括命令行、图形UI、基于web的界面(例如,web浏览器可访问界面)、基于移动应用程序的UI或其任何组合。UI 104可以显示软件、数据和工作流的菜单、表、图表、流程图、图形和/或文本表示。UI 104可以包括可选择的项目,所述项目可以使用户能够进入各种管线设置,提供训练/重新训练和其他数据,如下面更详细地描述的。经由UI 104输入的用户动作可以经由管线API 106传送给CP 100的管线协调器110。在一些实施例中,在从管线协调器110接收管线数据之前,用户(或用户正在使用以访问管线的远程计算设备)可以将API包下载到远程计算设备。下载的API包可用于在远程计算设备上安装管线API 106,以使用户能够在设置和使用CP 100期间与管线协调器110进行双向通信。
管线协调器110可以经由管线API 106向用户提供各种数据,这些数据可用于配置和部署一个或更多个MLM,并使用部署的MLM来处理(推理)各种输入用户数据。例如,管线协调器110可以向用户提供关于可用的预训练的MLM的信息,可以使得能够在用户提供的用户特定数据上对预训练的MLM进行重新训练或对新的(以前未训练的)MLM进行训练。然后,管线协调器110可以基于从用户接收到的信息构建CP 100。例如,管线协调器110可以配置用户选择的MLM,并将所选择的MLM与用于实现所选择的MLM的各种其他阶段(例如,预处理和后处理)一起部署。为了执行这些和其他任务,管线协调器110可以协调和管理若干引擎,每个引擎实现整个管线功能的一部分。
在一些实施例中,CP 100可以访问一个或更多个先前训练的(预训练的)MLM,并且因此可以向用户提供对这些预训练的MLM中的至少一些(例如,基于用户的订阅)的访问。可以针对CP专业领域的共同任务对MLM进行训练。例如,专门进行语音处理的CP可以访问一个或更多个经训练的MLM以识别一些典型的语音,例如客户服务请求、公共对话等。CP 100还可以进一步包括训练引擎120。训练引擎120可以实现对预训练的MLM的重新训练(附加训练)。重新训练可以使用针对用户特定领域用途定制的重新训练数据来执行。在一些实施例中,重新训练数据可以由用户提供。例如,用户可以提供重新训练数据,以增强预训练的MLM之一的自然语言处理能力,以改进在投资经纪环境或证券交易环境中可能遇到的语音识别。数据可作为视频录制、电视节目等的音轨(例如,由用户金融公司的技术专家)以任何可用的(压缩或未压缩的)数字格式的音频数字录音的形式提供,例如,WAV、WavPack、WMA、MP3、MPEG-4。
预训练的MLM 122可以存储在经训练的模型存储库124中,该模型存储库可以通过网络140被计算设备102访问。预训练的MLM 122可以由训练服务器162进行训练。网络140可以是公共网络(例如,因特网)、私有网络(例如,局域网(LAN)、或广域网(WAN))、无线网络、个域网(PAN)或其组合。在一些实施例中,训练服务器162可以是计算设备102的一部分。在其他实施例中,训练服务器162可以直接或经由网络140通信地耦合到计算设备102。训练服务器162可以是(和/或包括)机架式服务器、路由器计算机、个人计算机、膝上型计算机、平板电脑、台式计算机、媒体中心或其任何组合。训练服务器162可以包括训练引擎160。训练服务器162上的训练引擎160可以与计算设备102上的训练服务器162相同(或类似)。在一些实施例中,可能缺少计算设备102上的训练引擎120,而是,所有的训练和重新训练都可以通过训练服务器162上的训练引擎160来执行。在一些实施例中,训练引擎160可以执行对预训练的MLM 122的场外(off-site)训练,而计算设备102上的训练引擎120可以执行对预训练的MLM 122的重新训练以及对新的(定制的)MLM 125的训练。
在训练或重新训练期间,训练引擎160(120)可以生成和配置一个或更多个MLM。MLM可以包括回归算法、决策树、支持向量机、K均值聚类模型、神经网络或任何其他机器学习算法。神经网络MLM可以包括卷积、循环、全连接、长短期记忆模型、霍普菲尔德、玻尔兹曼或任何其他类型的神经网络。生成MLM可包括设置MLM类型(例如,神经网络)、架构、若干层神经元、这些层之间的连接类型(例如,全连接、卷积、反卷积等),每一层内的节点数量、网络的各层/节点中使用的激活函数的类型、网络训练中使用的损失函数类型等等。生成MLM可以包括设置(例如随机地)网络的各个节点的初始参数(权重、偏差)。生成的MLM可以由训练引擎160使用可以包括一个或更多个训练输入165和相应的一个或更多个目标输出167的训练数据进行训练。
例如,对于语音识别MLM 122的训练,训练输入165可以包括一个或更多个数字录音,该数字录音具有MLM正在被训练以识别的单词、短语和/或句子的话语(utterance)。目标输出167可以包括关于目标单词和短语是否存在于训练输入165中的指示。目标输出167也可以包括话语的转录,等等。在一些实施例中,目标输出167可以包括对说话者的意图的识别。例如,打电话给食品递送服务的客户可能会表达有限数量的意图(以订购食品、检查订单的状态、取消订单等),但可能以实践无限数量的方式这样做。虽然所说出的具体单词和句子可能没有太大意义,但确定意图可能是很重要的。因此,在这样的实施例中,目标输出167可以包括正确的意图类别。类似地,针对训练输入165的目标输出167(其包括客户呼叫客户服务电话的话语)既可以是话语的录音,也可以是客户的情绪状态的指示(例如,愤怒、担心、满意等)。此外,训练引擎160可以生成映射数据166(例如,元数据),该映射数据将一个或更多个训练输入165与一个或更多个正确的目标输出167相关联。在MLM 122(或定制的MLM 125)的训练期间,训练引擎160(或120)可以基于期望的一个或更多个目标输出167识别一个或更多个训练输入165中的模式,并训练各自的MLM以执行所期望的任务。在推理阶段,在未来处理新语音中,随后可以在使用之前使用附加训练输入/目标输出关联验证所识别模式的预测效用。例如,在接收到新的语音消息时,经训练的MLM 122能够识别客户希望检查先前所下订单的状态、识别客户的名称、订单号等等。
在一些实施例中,可以同时或单独地训练多个MLM。语音识别管线可能涉及多个模型,例如,用于声音处理的声学模型(例如将语音解析为单词)、用于识别解析出的单词的语言模型、用于意图识别的模型、用于理解问题的模型或任何其他模型。在一些实施例中,一些模型可以独立训练,而其他模型可以同时训练。例如,声学模型可以与所有其他语言处理模型分开训练,意图识别模型可以与语音转录模型一起训练,等等。
在一些实施例中,MLM 122(和/或MLM 125)中的每个或一些可以实现为具有多层线性或非线性运算的深度学习神经网络。例如,每个或一些语音识别MLM可以是卷积神经网络、循环神经网络(RNN)、全连接神经网络等等。在一些实施例中,MLM 122(和/或MLM 125)中的每个或一些可以包括多个神经元,其中每个神经元可以从其他神经元或外部源接收其输入,并可以通过将激活函数应用于(可训练)加权输入和偏差值的总和来产生输出。在一些实施例中,MLM 122(和/或125)中的每个或一些可以包括按层布置的多个神经元,包括输入层、一个或更多个隐藏层和输出层。来自相邻层的神经元可以由加权边进行连接。最初,可以为边权重分配一些起始值(例如,随机值)。对于每一个训练输入165,训练引擎160可以导致MLM 122(和/或MLM 125)中的每个或某些生成一个或更多个输出。然后训练引擎137可以将观察到的一个或更多个输出与所需的一个或更多个目标输出167进行比较。由此产生的误差或不匹配,例如,期望的一个或更多个目标输出167和神经网络的一个或更多个实际输出之间的差,可以通过各自的神经网络反向传播,并且神经网络中的权重可以被调整以使实际输出更接近目标输出167。可以重复此调整,直到给定训练输入165的输出误差满足预定条件(例如,低于预定值)。随后,可以选择不同的训练输入165,生成新的输出,并实现一系列新的调整,直到各自的神经网络被训练到可接受的准确度。
训练引擎120可以包括附加(与训练引擎160相比)组件,用于实现针对领域特定应用程序对先前训练的MLM 122的重新训练。例如,训练引擎120可以包括数据增强模块,用于使用领域特定数据来增强现有的训练数据(例如,训练输入165)。例如,可以用在目标领域中经常遇到的目标单词和短语来增强现有声音录音。例如,数据增强模块可以使用短语“卖空”、“资产增值税”、“对冲基金”、“经济基本面”、“首次公开募股”等的话语来增强现有的训练输入。目标输出167也可以类似地被增强。例如,数据增强模块可以用具有领域特定含义的各种艺术术语(诸如“选项”、“未来”)来更新目标输出167。训练引擎120还可以具有修剪模块,用于减少节点的数量,以及评估模块,用于确定节点的修剪是否没有将重新训练的模型的准确度降低到最小阈值准确度以下。
图2A是根据至少一些实施例的图1中可定制管线100的训练引擎(例如,训练引擎120)的示例架构200的框图。如图2A所示,训练引擎架构200可以包括可执行上述操作的若干模块(子引擎),诸如初始训练模块210、评估模块210、重新训练模块230等。例如,初始训练模块210可以使用初始数据202来训练MLM 122。初始训练模块210还可以使用定制(用户特定的和/或用户提供的)数据204来训练定制MLM 125。评估模块220可以确定对MLM 122(或定制MLM 125)的训练是否已经成功,或者是否要执行附加训练。例如,评估模块220可以使用保留用于测试/评估的初始数据202(或定制数据204)的一部分。如果各自的MLM不满足最低准确度或置信度水平,如反向箭头所示,初始训练模块210可以提供对MLM的附加训练。一旦MLM成功通过评估,MLM可以被存储(例如,存储在图1的经训练模型存储库124中),以供用户立即使用或将来使用。重新训练模块230可以使用新的数据/调节数据232对存储的MLM执行重新训练,以产生重新训练的MLM 123或重新训练的定制MLM 127。例如,先前训练的MLM可以针对不同领域的应用程序进行重新训练。可选地,先前训练的MLM可以被重新训练,以考虑变化的条件或附加条件,例如,在该领域中使用的术语的变化,雇佣一个语言特征与其他员工不同的新员工,等等。同样可以执行重新训练,直到满足评估标准(例如,由评估模块220确定的)。重新训练标准可与初始训练标准不同。
请返回参见图1,在MLM重新训练期间,用户可以经由管线API 106与管线协调器110交互,以监视重新训练过程。例如,在重新训练开始时(或在任何其他阶段),用户可以选择第一组预训练的MLM 122作为模型,其将按现状使用而无需重新训练。用户可以进一步选择第二组预训练的MLM 122,用于由训练引擎120(或训练引擎160)进行重新训练,以产生重新训练的MLM 123。此外,用户可以使得训练引擎120(或训练引擎160)以产生定制的(用户训练的)MLM 125。用户可以经由UI 104选择用于定制的MLM 125的架构和网络参数;训练引擎120(或训练引擎160)可以经由管线协调器110接收用户指定的参数,并根据接收到的参数执行定制的MLM 125的训练。预训练的MLM 122、重新训练的MLM 123和/或定制的MLM 125的参数可以存储在管线协调器110可访问的存储器设备中。存储MLM的存储器设备可以是计算设备102上的本地(例如非易失性)存储器,或者是计算设备102经由网络140可访问的远程(例如基于云的)存储器。在用户登录/认证CP 100的用户会话时,可以向CP 100的用户提供用户可用的某些或全部MLM(例如,MLM 122、123和/或125)的列表。用户可访问的列表可包括在当前会话中重新训练的(123)或用户训练的(125)的MLM,以及在之前的任何用户会话中重新训练或用户训练的MLM。因此,在每个用户会话期间或之后,新的用户训练的定制的MLM 125可以存储在经训练的模型存储库124中,以供将来使用。
CP 100还可以包括导出(export)引擎130。导出引擎130可以允许用户选择任意数量的预训练的MLM 122、重新训练的MLM 123或定制的MLM 125,以用于在当前(或未来)的用户会话期间进行后续部署。导出引擎可以使用独立于实现方式的格式输出用户选择的MLM。在一些实施例中,输出MLM可以包括识别和检索MLM的拓扑、MLM的神经网络层的数量和类型、由训练引擎执行的训练期间确定的权重的值。在这些实施例中,导出引擎130可以生成用户选择的MLM的表示,并使得生成的表示显示在UI 104上。所显示的表示可以包括图形、表、数字、文本条目,和特征化所选择的MLM的架构的其他对象,诸如每个所选择的MLM的层、节点、边的数目,拓扑等。所显示的表示还可以包括所选择的MLM参数,诸如权重、偏差、各个节点的激活函数等。由导出引擎130加载的元数据还可以指示部署用户选择的MLM可能需要哪些额外的组件和模块。在速度识别中,这些附加组件可以包括语音声音的频谱分析器,用于声学模型的语音特征提取器,删除语音伪影、填充词和停止词的声学后处理组件,执行单词分词、词元化等的语言预处理组件,执行基于规则的语言MLM输出的校正/验证的语言后处理组件以及其他组件。
CP 100还可以包括构建引擎150。构建引擎150可以允许用户在部署到用户平台上之前配置导出的预训练的MLM 122、重新训练的MLM 123或定制的MLM 125。导出引擎130提供的导出的MLM的表示通知用户关于MLM的架构和属性。这些表示可以向用户指示MLM的哪些方面是静态的(参数),以及哪些方面(设置)是可定制的。例如,神经网络的类型(例如,卷积与全连接)、神经网络中的若干神经元层、网络中连接节点的边的拓扑、各种节点中使用的激活函数的类型等等,可以是固定的参数。如果用户希望改变一些固定的参数,用户可能不得不使用训练引擎120针对新的架构重新训练各自的神经网络模型。另一方面,用户能够更改MLM的设置,而无需重新训练该模型。这种可配置设置可以包括块(chunk)大小,例如,要在流媒体语音识别应用程序中处理的音频缓冲区的大小,用于映射输出(例如,拉丁语、西里尔语等)的字母表,语言(例如英语、德语、俄语等),用于FFT处理输入语音数据的窗口大小,窗口重叠(例如,25%、50%、75%等),汉明窗口参数、话语结束检测参数、音频缓冲区大小、延迟设置等。构建引擎150还可以允许用户从已经针对其对所选择的MLM进行了训练(在初始训练、重新训练或在用户特定数据上进行训练期间)的可用领域(例如,金融行业领域、医疗领域等)中进行选择。构建引擎150(或管线协调器110)可使得在UI 104上一起显示导出的MLM的设置以及导出的MLM的参数。显示可以用指示进行注释,这些指示说明哪些修改(设置的)应由构建引擎150处理,以及哪些修改(参数或设置的)应由训练引擎120处理。例如,调用对语言模型的更改的修改可以由构建引擎150处理(而不调用训练引擎120),而调用对声学模型的更改的修改(例如,在语音识别解码器阶段期间的音频数据处理)可以由训练引擎120处理。在一些实施例中,调用对语言模型的更改的修改可以包括但不限于,调整模型中的一个或更多个层的权重。作为进一步的示例,模型之间的设置的修改,例如从使用成年人的语音数据训练的一种语言的声学模型到使用来自儿童的语音数据训练的但相同语言的声学模型,可以触发调用训练引擎120和用新数据对声学模型进行重新训练。
某些设置可能与单个导出的MLM有关,例如,字母表(语音拼写或标准英语拼写)设置可能会影响语言模型,但不影响声学模型。一些设置可与多个MLM相关,例如,将语言模型配置用于中文语音识别也可以调用声学模型设置中的更改(例如,自动或默认),以针对语音的不同节奏和音调进行调整。某些设置可能会影响一个或更多个MLM与管线的各种预处理组件和后处理组件的交互。例如,更改语言模型的设置以将模型用于不同语言领域中的语音识别可能还需要修改预处理块的设置,这可消除停止词。具体来说,在专业会议上对正式演讲执行语音识别的语言模型可能比非正式头脑风暴商务会议的转录使用更不激进的停止词/填充词删除。
图2B是根据至少一些实施例的图1中可定制管线100的构建和部署阶段的示例架构200的框图。尽管构建引擎150允许用户在部署之前配置导出的MLM,但部署(部署)引擎170在用户可访问的平台上执行CP 100的实际实现。如图2B所示,由导出引擎130导出的MLM可能具有各种模型构件(artifact)252(例如,模块、依赖项、元数据等)以及一个或更多个配置文件254,其配置所导出的MLM的实际执行。用户可以输入经修改的配置设置256(例如,通过图1中的UI 104接收的),然后可以由构建引擎150对其进行处理。经修改的配置设置可以被写回到一个或更多个配置文件254,其中有各种字段,例如,最初由训练引擎120提供的默认字段,被用户指定的设置覆盖。构建引擎150可以处理用于导出的MLM的一个或更多个配置文件254和模型构件252(例如,源代码、库和其他依赖项),并且可以产生用于导出的MLM的可执行构件、配置文件和各种其他依赖项,诸如库、用于管线的预处理组件和后处理组件的可执行代码等。构建引擎150的输出可以是管线的中间表示(IR)。在一些实施例中,MLM管线的IR可以被打包为docker镜像260,或用于容器化应用程序执行的任何类似平台中的图像。在某些实现中,可以使用不同(除docker以外)格式的图像,例如可以使用任何专有格式。在某些实现中,可以使用将各种可执行组件、库、数据和元数据捆绑在一起的格式的适当存档。IR的内容可以存储在用户的计算设备(例如,计算设备102)的存储器设备(例如,作为存档)中,或者存储在计算设备102可访问的存储器设备中(例如,在云上)。构建引擎150可以是用Python语言、C++语言、Java语言或任何其他编程语言实现的工具或应用程序。
可配置管线(例如,图1中的CP 100)的部署引擎170可以在用户可访问的硬件资源(目标平台)上实现该管线。用户可以访问具有若干CPU、GPU和存储器设备的(例如,本地)计算设备102。可选地或者另外地,用户可以访问提供虚拟化服务的一个或更多个云计算服务器。部署引擎170可以允许用户输入用户可访问的目标平台资源262的描述或标识(identification),该目标平台资源可以包括可用计算、存储、网络等资源的标识。在一些实施例中,部署引擎170可以使用任何可用的度量收集设备或驱动程序来收集关于计算设备102的本地资源的信息。可选地或者另外地,部署引擎170或管线协调器110可以收集关于可用的虚拟(云)处理资源的信息(例如,使用远程访问服务器或远程虚拟化服务器的身份验证服务)。收集到的信息可包括(但不限于)CPU速度、CPU核心的数量(物理的或虚拟的)、GPU的数量和类型(物理的或虚拟的)、可用系统存储器和/或GPU存储器的数量、可用于管线部署的远程处理节点的数量、安装在计算设备102上的操作系统的类型和版本(或在虚拟化环境上实例化的访客操作系统的类型/版本)等等。在用户选择的配置设置已经由构建引擎150实现之后,部署引擎170使得能够在用户可访问的计算资源上执行MLM管线(例如,CP100),,而无需重新配置MLM管线的功能特点。
在一些实施例中,部署引擎170可以访问由构建引擎150存储(在本地或云中)的MLM管线的IR,并生成可执行代码(例如以对象码或字节码实现的)、配置文件、库、依赖项和产生的供推理引擎180使用的其他资源的推理集合(ensemble)。在MLM管线的IR是docker(或类似)镜像260的实施例中,部署引擎170可以实例化基于docker镜像260的管线docker容器270,例如,使用用户可访问目标平台的容器化服务。在一些实施例中,推理集合可以是用于Triton推理服务器的Triton集合,其促进MLM的部署,并允许用户使用各种可用框架(例如,TensorFlow、TersorRT、PyTorch、ONNX运行时等)或者用户提供的定制框架来运行MLM。部署引擎170可以执行在IR中指定的命令,以运行由构建引擎150生成的可执行代码、库和其他依赖项。此外,部署引擎170可以执行由构建引擎150生成的MLM管线配置的映射,用于处理特定目标平台的计算资源,包括可用的GPU和/或CPU。由部署引擎170生成的配置文件可以使用平台中立的协议缓冲区来存储,该协议缓冲区可以是ASCII序列化的。协议缓冲区的使用使得能够最小化当用户(开发人员)增加对MLM架构的支持时可能发生的与排版和序列化相关的错误。
再次参考图1,在部署引擎170将IR转换为准备由推理引擎180执行的推理集合(例如,转化为管线docker容器)之后,MLM管线可以准备好处理输入用户数据182。用户数据182可以是可以向其应用配置的MLM管线的任何数据。例如,对于语音处理,用户数据182可以包括语音记录,例如,对话的数字记录、演示、叙述,或要转录的任何其他声音记录。在一些实施例中,用户数据可以包括要回答的问题(或一系列问题)。在一些实施例中,用户数据182可以是具有要识别的对象、要检测的运动模式等等的图像(或图像序列)。任何其他用户数据182可以输入到推理引擎180,用户数据的类型依赖于用户特定领域。在涉及自然语言处理的实施例中,用户特定领域可以包括客户服务支持、医疗询问、教育环境、法庭环境、紧急人员对话或任何其他类型的环境。
推理引擎180可以处理用户数据182并生成推理输出184。推理输出184可以具有任何适当的类型和格式。例如,推理输出184可以是语音或对话的转录、对一个或更多个说话者的意图或情感的识别、对问题的回答(例如,以文本或数字形式),等等。推理输出184的格式可以是文本、数字、数字电子表格、音频文件、视频文件或其任何组合的格式。
CP 100的各种引擎不需要应用于线性级数(progression)。在一些实施例中,CP100的各种引擎可以多次应用。例如,用户数据182可用作测试数据,并且获得的推理输出184可用作关于管线的当前状态的反馈。该反馈可以告知用户关于如何修改管线以提高其性能。在一些实施例中,可以迭代地执行这种修改。例如,在接收到反馈后,用户可以使用训练引擎120启动对管线中包括的一些MLM的重新训练。用户还可以用其他(例如,预训练的或用户训练的)MLM替换一些MLM,并使用导出引擎130导出新添加的MLM。用户可以使用构建引擎150来改变一些旧的、重新训练的或新训练的MLM的配置。构建引擎150可以被配置为仅更新(例如,通过生成更新的IR)已经修改的管线的这些MLM和组件(例如,通过更新的配置设置)的模型构件和配置文件,而无需改变保持不变的模型和组件,以实现更快的安装。在一些实施例中,可以通过使用PIP(用于Python的包安装)wheel构建包格式(.whl)来实现这种更快的安装。随后,部署引擎170可以使用更新的IR在目标平台上部署更新的管线。在一些实施例中,用户可以保留MLM及其各自的配置设置,但修改(通过增加、减少或以其他方式修改)目标平台上的可用资源。
图3是根据至少一些实施例的示例计算设备300,其能够实现支持训练、配置和部署一个或更多个机器学习模型的可定制管线。在一些实施例中,计算设备300可以包括可定制管线的部分或全部引擎,例如,图1中的CP 100,其包括训练引擎120、导出引擎130、构建引擎150、部署引擎170和推理引擎180。虽然图3将所有引擎描述为同一计算设备的一部分,但在某些实现中,所示的任何引擎实际上都可以在不同的计算设备上实现,包括虚拟计算设备、基于云的处理设备等。例如,计算设备300可以包括推理引擎180,但不包括可定制管线的其他引擎。推理引擎180(和/或管线的任何其他引擎)可以由一个或更多个GPU 310执行,以执行语音识别、对象识别或涉及机器学习的任何其他推理。在一些实施例中,GPU 310包括多个核心311,每个核心都能够执行多个线程312。每个核心可以同时运行多个线程312(例如,并行地)。在一些实施例中,线程312可以访问寄存器313。寄存器313可以是线程特定寄存器,其可以访问限于各自线程的寄存器。此外,共享寄存器314可以由核心的所有线程访问。在一些实施例中,每个核心311可以包括调度器315,用于在核心311的不同线程312之间分发计算任务和进程。分派单元316可以使用正确的私有寄存器313和共享寄存器314在适当的线程上实现被调度的任务。计算设备300可以包括一个或更多个输入/输出组件334,以促进与一个或更多个用户或开发人员交换信息。
在一些实施例中,GPU 310可以具有(高速)缓存318,对其的访问可由多个核心311共享。此外,计算设备300可以包括GPU存储器319,其中GPU 310可以存储由GPU 310执行的各种计算的中间和/或最终结果(输出)。在完成特定任务后,GPU 310(或CPU 330)可以将输出移动到(主)存储器304。在一些实施例中,CPU 330可以执行涉及串行计算任务的过程(由管线的一个引擎分配),而GPU 310可以执行易于并行处理的任务(例如将神经节点的输入乘以权重且加上偏差)。在一些实施例中,管线的各个引擎(例如,构建引擎150、推理引擎180等)可以确定由各自的引擎管理的哪些进程将在GPU 310上执行,以及哪些进程将在CPU330上执行。在一些实施例中,CPU 330可以确定哪些进程将在GPU 310上执行,以及哪些进程将在CPU 330上执行。
图4是根据至少一些实施例的示例可定制管线400的框图,该可定制管线使用一个或更多个机器学习模型用于对语音进行自然语言处理。管线400的部分或全部MLM可以是经训练的神经网络模型,例如,预训练的和/或定制的经训练深度学习神经网络。进入管线400的语音输入402可以是模拟信号,例如,由麦克风生成的,并被转换成处理设备可读的任何音频格式的数字文件。输入语音402可以进行音频预处理410,其可以包括频谱分析和其他处理。例如,输入语音402可以进行滤波、上采样或下采样、预强调、加窗(例如,使用每10ms前进一次的20ms窗口)、应用Mel频率倒谱系数(MFCC)算法和/或其他处理。表示所提取特征的多维向量可以被输入到第一MLM 420中,可以是声学MLM(例如,声学神经网络模型)。声学MLM 420可以是经训练的神经网络模型,用于输出对各种音素(元子词的声音)的识别,每个音素都被分配了某概率。声学后处理430可以包括语音解码(例如,为各个单词分配概率),并且还可以包括去除声音伪影、填充词或停止词,或一些其他类型的声学后处理。语言预处理440可以包括单词词根化或词元化(确定单词的根形式)、分词(字符和单词序列的识别)等等。语言预处理440的输出可用作对第二MLM 450的输入,第二MLM 450可包括一个或更多个语言MLM(例如,语言神经网络模型)。第二MLM 450可以是另一个经训练的神经网络,用于产生文本输出460,该文本输出可以是语音输入402的转录。在一些实施例中,第二MLM 450可被配置为产生标点符号检测(450-1)、话语检测(450-2)和说话者意图的检测(450-3),这可以通过同一第二MLM 450的附加输出/神经元层或作为附加神经网络模型实现。第二MLM450可包括语言理解神经网络模型450-4和/或问题-回答(Q-A)神经网络模型450-5。Q-A模型450-5的输出可以是对语音输入402中包含的问题的回答的表示(例如,文本表示)。在一些实施例中,Q-A模型450-5的输出可以提供给语音合成器,语音合成器可以是经训练的第三MLM 470,用于输出作为语音输出472的一部分的人工语音。
如上关于图1和图2所描述的,第一MLM 420、第二MLM 450,和/或第三MLM 470可以由训练引擎120预训练或定制训练,如用虚线箭头示意性示出的。在一些实施例中,MLM420、430和470中的一些或全部可以使用领域特定用户数据进行重新训练。此外,如图4中进一步描绘的,MLM 420、430和470中的一些或全部可以使用构建引擎150并基于用户提供的配置设置进行配置(无需重新训练)。
图5和图6分别是根据至少一些实施例的与提供可定制机器学习管线相关的示例方法500和600的流程图。方法500和600可被执行以部署MLM,所述MLM用于声音识别、语音识别、语音合成、对象检测、对象识别、运动检测、危险检测、机器人应用、预测以及许多可使用机器学习的其他上下文和应用。在至少一个实施例中,方法500和方法600可以由计算设备102、计算设备300或一些其他计算设备或多个计算设备的组合的处理单元来执行。方法500和600可以由一个或更多个处理单元(例如,CPU和/或GPU)执行,这些处理单元可以包括一个或更多个存储器设备(或与其通信)。在至少一个实施例中,方法500和方法600可以由多个处理线程(例如,CPU线程和/或GPU线程)来执行,每个线程执行该方法的一个或更多个单独的函数、例程、子例程或操作。在至少一个实施例中,实现方法500(以及类似地,方法600)的处理线程可以被同步(例如,使用信号量、关键部分和/或其他线程同步机制)。可选地,实现方法500(以及类似地,方法600)的处理线程可以彼此异步地执行。方法500和600的各种操作可以以与图5和图6中所示的顺序相比不同的顺序执行。这些方法的某些操作可以与其他操作同时执行。在至少一个实施例中,可以不总是执行图5和图6所示的一个或更多个操作。
图5是根据至少一些实施例的提供支持训练、配置和部署一个或更多个机器学习模型的可定制管线的示例方法500的流程图。可定制管线可以是CP 100,CP 100可包括如上面关于图1和图2A-B描述的各种引擎、模块和组件。在框510,执行方法500的处理单元可以访问多个经训练的MLM,这些MLM可以是经预训练的MLM 122(例如,由管线服务的提供者提供)或定制的(由管线的用户训练的)MLM 125。所选择的MLM可以使用第一组训练数据进行预训练,这些训练数据可以由管线服务的提供者或由用户在之前提供。维护经训练的MLM可以包括存储足以部署和执行MLM的文件和数据,或存储对此类文件和数据的引用,例如,到可下载文件和存储在其他地方(如在云存储上)的数据的链接。一些或每个所维护的MLM可与各自的MLM的初始配置设置相关联,而初始配置设置可以存储在配置文件、数据库等中。执行方法500的处理单元也可以访问该配置设置。在一些实施例中,至少一些所选择的MLM可以是(或包括)具有多个神经元层的神经网络模型。一些神经网络模型可以是深度学习神经网络模型。
在框520,执行方法500的处理单元可以提供(向用户)用户界面(UI),用于接收指示对多个经训练的MLM中的一个或更多个MLM的选择的用户输入。例如,用户可以正在试图设置机器学习管线,并可以从可用的MLM中选择那些可以为用户解决特定问题或一组问题的MLM。例如,试图设置用于语音识别的管线的用户可以选择用于解码输入语音的声学模型和用于识别解码的语音的语言模型。为了帮助选择用于管线的MLM,在接收到对一个或更多个MLM的用户选择之前,处理单元可以使得在UI上显示用户可用的多个经训练的MLM的一个或更多个列表。在一些实施例中,列表可以以枚举项、可单击按钮、图标、菜单或任何其他提示的形式可用。对于列出的一些或每个MLM,列表可以包括各自MLM的架构的表示,该表示可以是图形、表、层的描述、MLM的拓扑的描述的形式等等。在一些实施例中,列表还可以包括各自MLM的参数,例如节点、边、激活函数的数目或MLM的属性的任何其他规范。
响应于查看MLM的列表,用户可以决定应该更改所选择的MLM中的一些,以更好地对应用户项目的细节。在某些情况下,对MLM的修改可能足够重要到需要对所选择的MLM进行重新训练,例如,使用第二训练数据,其可以是用户选择的数据,用于为要应用MLM管线的特定领域重新训练所选择的MLM。特别地,执行方法500的处理单元可以接收用于一个或更多个所选MLM的领域特定训练的第二组训练数据。例如,处理单元可以基于经由UI的用户输入,接收要重新训练的MLM的指示。例如,从所选择的用于语音识别管线的声学MLM和语言MLM中,用户可以指示语言MLM要针对日语进行重新训练(以前已经针对英语进行了训练)。用户还可以识别重新训练数据(例如,第二数据)所位于的位置(例如,云存储地址)。重新训练数据可以包括训练输入(例如,声音文件)、目标输出(例如,声音文件中的语音的转录)和映射数据(训练输入与目标输出的对应关系的指示)。响应于接收到要重新训练的MLM的指示和重新训练数据,处理单元可使得执行管线的训练引擎(例如,训练引擎120),以执行一个或更多个所选MLM的领域特定训练,如上面结合图1更详细地描述的。重新训练可以在预训练的MLM 122和先前训练的定制MLM125上执行。
在某些情况下,对MLM的所需修改可能没有重大到需要重新训练。在一些实施例中,经修改的配置设置可以包括用于语言神经网络模型的语言设置。使用前面的示例,为了实现从英语到日语的更改,用户可以决定修改声学MLM的设置,例如,改变滑动窗口的大小。响应于接收到用户输入指定如何修改一个或更多个MLM的初始配置设置,在框530,执行方法500的处理单元可以基于用户输入确定一个或更多个所选MLM的经修改的配置设置。在一些实施例中,用于一个或更多个所选MLM的经修改的配置设置可以包括用于声学MLM的音频缓冲区大小、话语结束设置或延迟设置。可以类似地配置的其他自然语言处理MLM包括语音合成MLM、语言理解MLM、问答MLM或任何其他MLM。
在框540,执行方法500的处理单元可使得(例如,通过发出指令来启动)执行MLM管线的构建引擎,以根据经修改的配置设置修改一个或更多个所选MLM,如上面结合图1更详细地描述的。在框550,该方法可以继续:处理单元使得执行管线的部署引擎以部署一个或更多个经修改的MLM,如上面结合图1更详细地描述的。在框560,执行方法500的处理单元可以使得在UI上显示一个或更多个所部署的MLM的表示,如上面结合图1更详细地描述的。所显示的表示可以向用户表明所部署的MLM已经准备好处理用户数据。可配置的MLM管线可用于任何类型的任何数量的机器学习模型的训练、部署和推理。
图6是根据至少一些实施例的使用所部署的可定制机器管线机器学习模型的示例方法600的流程图。在一些实施例中,方法600可以与方法500一起使用。方法600可以在提供预训练的MLM 122和定制MLM 125的列表以向用户呈现之后执行,并且可选地,在由用户选择的由训练引擎重新训练的MLM的重新训练之后执行。在框610,执行方法600的处理单元可以接收对一个或更多个MLM的用户选择(以将其放置在可配置管线中),并可使得执行管线的导出引擎以初始化一个或更多个所选MLM。在框620,方法600可以继续使(例如,使用导出引擎)一个或更多个所选MLM可用于处理用户输入数据。此外,方法600可以包括使得执行构建引擎(框540)和部署引擎(框560),如关于图5中的方法500描述的。
在框630,执行方法600的处理单元可以接收用户输入数据,并且在框640,可以使得(例如,使用推理引擎)将一个或更多个所部署的MLM应用于用户输入数据以生成输出数据。应用一个或更多个MLM的输出可以使得在框650在UI上显示输出数据的表示或对所存储的输出数据的表示的引用中的至少一个。例如,如果用户输入数据包括语音,则输出数据的表示可以是具有输入语音的转录的文本、对说话者的意图的识别、输入语音的标点符号、对所问的问题的声音响应(例如,使用合成的语音)等等。在一些实施例中,输出数据的表示可以是直接呈现给用户的文本或声音,例如,在UI上。在一些实施例中,输出数据的表示可以是输出数据存储于其上(在本地机器上或在云上)的指示。
推理和训练逻辑
图7A示出了用于执行与一个或更多个实施例相关联的推理和/或训练操作的推理和/或训练逻辑715。
在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于代码和/或数据存储701,用于存储前向和/或输出权重和/或输入/输出数据,和/或在一个或更多个实施例的方面中配置被训练为和/或用于推理的神经网络的神经元或层的其他参数。在至少一个实施例中,训练逻辑715可以包括或耦合到用于存储图代码或其他软件以控制时序和/或顺序的代码和/或数据存储701,其中权重和/或其他参数信息被加载以配置逻辑,包括整数和/或浮点单元(统称为算术逻辑单元(ALU)或简单电路)。在至少一个实施例中,代码(诸如图代码)基于该代码所对应的神经网络的架构将权重或其他参数信息加载到处理器ALU中。在至少一个实施例中,代码和/或数据存储701存储在使用一个或更多个实施例的方面训练和/或推理期间的输入/输出数据和/或权重参数的前向传播期间结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,代码和/或数据存储701的任何部分都可以包括在其他片上或片外数据存储内,包括处理器的L1、L2或L3高速缓存或系统存储器。
在至少一个实施例中,代码和/或数据存储701的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路的内部或外部。在至少一个实施例中,代码和/或代码和/或数据存储701可以是高速缓存存储器、动态随机可寻址存储器(“DRAM”)、静态随机可寻址存储器(“SRAM”)、非易失性存储器(例如闪存)或其他存储。在至少一个实施例中,对代码和/或代码和/或数据存储701是在处理器的内部还是外部的选择,例如,或者由DRAM、SRAM、闪存或某种其他存储类型组成,可以取决于存储片上或片外的可用存储空间,正在执行训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据的批大小或这些因素的某种组合。
在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于代码和/或数据存储705,以存储与在一个或更多个实施例的方面中被训练为和/或用于推理的神经网络的神经元或层相对应的反向和/或输出权重和/或输入/输出数据。在至少一个实施例中,在使用一个或更多个实施例的方面训练和/或推理期间,代码和/或数据存储705存储在输入/输出数据和/或权重参数的反向传播期间结合一个或更多个实施例训练或使用的神经网络的每个层的权重参数和/或输入/输出数据。在至少一个实施例中,训练逻辑715可以包括或耦合到用于存储图代码或其他软件以控制时序和/或顺序的代码和/或数据存储705,其中权重和/或其他参数信息被加载以配置逻辑,该逻辑包括整数和/或浮点单元(统称为算术逻辑单元(ALU))。
在至少一个实施例中,代码(诸如图代码)使得基于该代码所对应的神经网络的架构将权重或其他参数信息加载到处理器ALU中。在至少一个实施例中,代码和/或数据存储705的任何部分可以与其他片上或片外数据存储一起包括,包括处理器的L1、L2或L3高速缓存或系统存储器。在至少一个实施例中,代码和/或数据存储705的任何部分可以在一个或更多个处理器或其他硬件逻辑设备或电路上的内部或外部。在至少一个实施例中,代码和/或数据存储705可以是高速缓存存储器、DRAM、SRAM、非易失性存储器(例如闪存)或其他存储。在至少一个实施例中,代码和/或数据存储705是在处理器的内部还是外部的选择,例如,是由DRAM、SRAM、闪存还是其他某种存储类型组成,取决于可用存储是片上还是片外,正在执行的训练和/或推理功能的延迟要求,在神经网络的推理和/或训练中使用的数据批量大小或这些因素的某种组合。
在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705可以是分开的存储结构。在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705可以是组合的存储结构。在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705可以部分地被组合和部分分离。在至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或系统存储器。
在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于一个或更多个算术逻辑单元(“ALU”)710(包括整数和/或浮点单元),用于至少部分地基于训练和/或推理代码(例如,图代码)或由其指示来执行逻辑和/或数学运算,其结果可能会产生存储在激活存储720中的激活(例如,来自神经网络内部的层或神经元的输出值),其是存储在代码和/或数据存储701和/或代码和/或数据存储705中的输入/输出和/或权重参数数据的函数。在至少一个实施例中,激活响应于执行指令或其他代码,由ALU710执行的线性代数和/或基于矩阵的数学生成在激活存储720中存储的激活,其中存储在代码和/或数据存储705和/或数据存储701中的权重值用作具有其他值的操作数,例如偏置值、梯度信息、动量值或其他参数或超参数,可以将任何或所有这些存储在代码和/或数据存储705或代码和/或数据存储701或另一个片上或片外存储中。
在至少一个实施例中,一个或更多个处理器或其他硬件逻辑设备或电路中包括一个或更多个ALU 710,而在另一实施例中,一个或更多个ALU710可以在处理器或其他硬件逻辑设备或使用它们(例如协处理器)的电路外。在至少一个实施例中,可以将一个或更多个ALU 710包括在处理器的执行单元之内,或者以其他方式包括在由处理器的执行单元可访问的ALU组中,该处理器的执行单元可以在同一处理器内或者分布在不同类型的不同处理器之间(例如,中央处理单元、图形处理单元、固定功能单元等)。在至少一个实施例中,代码和/或数据存储701、代码和/或数据存储705以及激活存储720可以共享处理器或其他硬件逻辑设备或电路,而在另一实施例中,它们可以在不同的处理器或其他硬件逻辑设备或电路或相同和不同处理器或其他硬件逻辑设备或电路的某种组合中。在至少一个实施例中,激活存储720的任何部分可以与其他片上或片外数据存储包括在一起,包括处理器的L1、L2或L3高速缓存或系统存储器。此外,推理和/或训练代码可以与处理器或其他硬件逻辑或电路可访问的其他代码一起存储,并可以使用处理器的提取、解码、调度、执行、退出和/或其他逻辑电路来提取和/或处理。
在至少一个实施例中,激活存储720可以是高速缓存存储器、DRAM、SRAM、非易失性存储器(例如,闪存)或其他存储。在至少一个实施例中,激活存储720可以完全地或部分地在一个或更多个处理器或其他逻辑电路内部或外部。在至少一个实施例中,可以取决于片上或片外可用的存储,进行训练和/或推理功能的延迟要求,在推理和/或训练神经网络中使用的数据的批量大小或这些因素的某种组合,选择激活存储720是处理器的内部还是外部,例如,或者包含DRAM、SRAM、闪存或一些其他存储类型。
在至少一个实施例中,图7A中所示的推理和/或训练逻辑715可以与专用集成电路(“ASIC”)结合使用,例如来自Google的
Figure BDA0003463419700000231
处理单元、来自GraphcoreTM的推理处理单元(IPU)或来自Intel Corp的
Figure BDA0003463419700000232
(例如“Lake Crest”)处理器。在至少一个实施例中,图7A所示的推理和/或训练逻辑715可与中央处理单元(“CPU”)硬件、图形处理单元(“GPU”)硬件、数据处理单元(“DPU”)硬件或其他硬件(例如现场可编程门阵列(“FPGA”))结合使用。
图7B示出了根据至少一个实施例的推理和/或训练逻辑715。在至少一个实施例中,推理和/或训练逻辑715可以包括但不限于硬件逻辑,其中计算资源被专用或以其他方式唯一地连同对应于神经网络内的一层或更多层神经元的权重值或其他信息一起使用。在至少一个实施例中,图7B中所示的推理和/或训练逻辑715可以与专用集成电路(ASIC)结合使用,例如来自Google的
Figure BDA0003463419700000233
处理单元,来自GraphcoreTM的推理处理单元(IPU)或来自Intel Corp的
Figure BDA0003463419700000234
(例如“Lake Crest”)处理器。在至少一个实施例中,图7B中所示的推理和/或训练逻辑715可以与中央处理单元(CPU)硬件、图形处理单元(GPU)硬件、数据处理单元(“DPU”)硬件或其他硬件(例如现场可编程门阵列(FPGA))结合使用。在至少一个实施例中,推理和/或训练逻辑715包括但不限于代码和/或数据存储701以及代码和/或数据存储705,其可以用于存储代码(例如,图代码)、权重值和/或其他信息,包括偏置值、梯度信息、动量值和/或其他参数或超参数信息。在图7B中所示的至少一个实施例中,代码和/或数据存储701以及代码和/或数据存储705中的每一个都分别与专用计算资源(例如计算硬件702和计算硬件706)相关联。在至少一个实施例中,计算硬件702和计算硬件706中的每一个包括一个或更多个ALU,这些ALU仅分别对存储在代码和/或数据存储701和代码和/或数据存储705中的信息执行数学函数(例如线性代数函数),执行函数的结果被存储在激活存储720中。
在至少一个实施例中,代码和/或数据存储701和705以及相应的计算硬件702和706中的每一个分别对应于神经网络的不同层,使得从代码和/或数据存储701和计算硬件702的一个存储/计算对701/702得到的激活提供作为代码和/或数据存储705和计算硬件706的下一个存储/计算对705/706的输入,以便反映神经网络的概念组织。在至少一个实施例中,每个存储/计算对701/702和705/706可以对应于一个以上的神经网络层。在至少一个实施例中,在推理和/或训练逻辑715中可以包括在存储/计算对701/702和705/706之后或与之并行的附加存储/计算对(未示出)。
神经网络训练和部署
图8示出了根据至少一个实施例的深度神经网络的训练和部署。在至少一个实施例中,使用训练数据集802来训练未训练的神经网络806。在至少一个实施例中,训练框架804是PyTorch框架,而在其他实施例中,训练框架804是TensorFlow,Boost,Caffe,Microsoft Cognitive Toolkit/CNTK,MXNet,Chainer,Keras,Deeplearning4j或其他训练框架。在至少一个实施例中,训练框架804训练未经训练的神经网络806,并使它能够使用本文所述的处理资源来训练,以生成训练的神经网络808。在至少一个实施例中,权重可以被随机选择或通过使用深度信念网络预训练。在至少一个实施例中,可以以有监督、部分有监督或无监督的方式执行训练。
在至少一个实施例中,使用有监督学习来训练未训练的神经网络806,其中训练数据集802包括与用于输入的期望输出配对的输入,或者其中训练数据集802包括具有已知输出的输入和神经网络806是手动分级的输出。在至少一个实施例中,以有监督的方式来训练未经训练的神经网络806,并且处理来自训练数据集802的输入,并将结果输出与一组期望或想要的输出进行比较。在至少一个实施例中,然后通过未训练的神经网络806将误差传播回去。在至少一个实施例中,训练框架804调整控制未经训练的神经网络806的权重。在至少一个实施例中,训练框架804包括用于监视未训练的神经网络806向模型(例如,训练的神经网络808)收敛的程度的工具,适于基于输入数据(例如新数据集812)生成正确答案(例如结果814)的模型。在至少一个实施例中,训练框架804反复训练未训练的神经网络806,同时调整权重以使用损失函数和调整算法(例如随机梯度下降)来改善未训练的神经网络806的输出。在至少一个实施例中,训练框架804训练未训练的神经网络806,直到未训练的神经网络806达到期望的精度为止。在至少一个实施例中,然后可以部署训练的神经网络808以实现任何数量的机器学习操作。
在至少一个实施例中,使用无监督学习来训练未训练的神经网络806,其中未训练的神经网络806尝试使用未标记的数据来训练自己。在至少一个实施例中,无监督学习训练数据集802将包括输入数据,而没有任何关联的输出数据或“地面实况”数据。在至少一个实施例中,未训练的神经网络806可以学习训练数据集802内的分组,并且可以确定各个输入如何与未训练的数据集802相关。在至少一个实施例中,可以使用无监督训练来在训练的神经网络808中生成自组织图,其能够执行对减少新数据集812的维度有用的操作。在至少一个实施例中,无监督训练也可以用于执行异常检测,这允许识别新数据集812中偏离新数据集812的正常模式的数据点。
在至少一个实施例中,可以使用半监督学习,这是一种技术,其中在训练数据集802中包括标记数据和未标记数据的混合。在至少一个实施例中,训练框架804可以用于例如通过转移的学习技术来执行递增学习。在至少一个实施例中,递增学习使得训练的神经网络808能够适应新数据集812,而不会忘记在初始训练期间注入到训练的神经网络808内的知识。
参照图9,图9是根据至少一个实施例的用于生成和部署处理和推理管线的过程900的示例数据流图。在至少一个实施例中,过程900可以被部署以用于在诸如数据中心之类的一个或更多个设施902处对用户反馈数据执行游戏名称识别分析和推理。
在至少一个实施例中,过程900可以在训练系统904和/或部署系统906内执行。在至少一个实施例中,训练系统904可以用于执行机器学习模型(例如,神经网络、对象检测算法、计算机视觉算法等)的训练、部署和实现,以用于部署系统906。在至少一个实施例中,部署系统906可以被配置为在分布式计算环境中卸载处理和计算资源,以减少设施902的基础设施需求。在至少一个实施例中,部署系统906可以提供流水线平台用于选择、定制和实现虚拟仪器,以在设施902处与计算设备一起使用。在至少一个实施例中,虚拟仪器可以包括用于针对反馈数据执行一个或更多个处理操作的软件定义的应用程序。在至少一个实施例中,管线中的一个或更多个应用程序在应用程序执行期间,可以使用或调用部署系统906的服务(例如,推理、可视化、计算、AI等)。
在至少一个实施例中,在高级处理和推理管线中使用的一些应用程序可以使用机器学习模型或其他AI来执行一个或更多个处理步骤。在至少一个实施例中,可以在设施902处使用存储在设施902处的反馈数据908(例如反馈数据)或来自另一个或更多个设施的反馈数据908,或其组合,来训练机器学习模型。在至少一个实施例中,训练系统904可以用于提供应用程序、服务和/或其他资源,以生成用于部署系统906的工作的、可部署的机器学习模型。
在至少一个实施例中,模型注册表924可以由对象存储支持,该对象存储可以支持版本控制和对象元数据。在至少一个实施例中,可以从云平台内通过例如云存储(例如,图10的云1026)兼容的应用程序编程接口(API)来访问对象存储。在至少一个实施例中,模型注册表924内的机器学习模型可以由与API交互的系统的开发者或合作伙伴上传、列出、修改或删除。在至少一个实施例中,API可以提供对方法的访问,所述方法允许具有适当凭证的用户将模型与应用程序相关联,使得模型可以作为应用程序的容器化实例化的执行的一部分来执行。
在至少一个实施例中,训练管线1004(图10)可以包括以下情形:其中设施902正在训练他们自己的机器学习模型,或者具有需要优化或更新的现有机器学习模型。在至少一个实施例中,可以接收来自各种通道(诸如论坛、web表单等)的反馈数据908。在至少一个实施例中,一旦接收到反馈数据908,AI辅助注释910就可以用于帮助生成与反馈数据908相对应的注释,以用作机器学习模型的地面实况数据。在至少一个实施例中,AI辅助注释910可以包括一个或更多个机器学习模型(例如,卷积神经网络(CNN)),可以对该机器学习模型进行训练,以生成对应于某些类型的反馈数据908(例如,来自某些设备)的注释,和/或反馈数据908中某些类型的异常。在至少一个实施例中,然后AI辅助注释910可以被直接使用,或者可以使用注释工具进行调整或微调,以生成地面实况数据。在至少一个实施例中,在一些示例中,标记的数据912可以用作训练机器学习模型的地面实况数据。在至少一个实施例中,AI辅助注释910、标记的数据912或其组合可以用作训练机器学习模型的地面实况数据。在至少一个实施例中,训练的机器学习模型可以被称为输出模型916,并且可以由部署系统906使用,如本文所述。
在至少一个实施例中,训练管线1004(图10)可以包括以下情形:其中设施902需要机器学习模型,以用于执行用于部署系统906中的一个或更多个应用程序的一个或更多个处理任务,但是设施902当前可能没有这种机器学习模型(或者可能没有为此目的而优化的、高效的或有效的模型)。在至少一个实施例中,可以从模型注册表924中选择现有的机器学习模型。在至少一个实施例中,模型注册表924可以包括机器学习模型,其被训练为对成像数据执行各种不同的推理任务。在至少一个实施例中,可以在来自不同的设施(例如,位于远处的设施)而不是设施902的成像数据上训练模型注册表924中的机器学习模型。在至少一个实施例中,机器学习模型可能已经在来自一个位置、两个位置或任意数量的位置的成像数据上进行训练。在至少一个实施例中,当在来自特定位置的成像数据上进行训练时,可以在该位置处进行训练,或者至少以保护成像数据的机密性或限制成像数据从场外转移的方式进行训练(例如,遵守HIPAA法规、隐私法规等)。在至少一个实施例中,一旦在一个位置处训练了模型或部分地训练了模型,则可以将机器学习模型添加到模型注册表924。在至少一个实施例中,然后可以在任意数量的其他设施处对机器学习模型进行重新训练或更新,并且重新训练或更新的模型可以在模型注册表924中使用。在至少一个实施例中,然后可以从模型注册表924中选择机器学习模型(并称为输出模型916),并且可以在部署系统906中使用,以执行用于部署系统的一个或更多个应用程序的一个或更多个处理任务。
在至少一个实施例中,训练管线1004(图10)可用于包括设施902的场景中,所述设施需要机器学习模型,以用于执行用于部署系统906中的一个或更多个应用程序的一个或更多个处理任务,但是设施902当前可能没有这样的机器学习模型(或者可能没有为此目的的优化的、高效的或有效的模型)。在至少一个实施例中,由于用于训练机器学习模型的训练数据的种群差异、遗传变异、稳健性,训练数据异常的多样性,和/或训练数据的其他问题,从模型注册表924中选择的机器学习模型可能不会针对在设施902处生成的反馈数据908进行微调或优化。在至少一个实施例中,AI辅助注释910可以用于帮助生成与反馈数据908相对应的注释,以用作重新训练或更新机器学习模型的地面实况数据。在至少一个实施例中,标记的数据912可以用作训练机器学习模型的地面实况数据。在至少一个实施例中,重新训练或更新机器学习模型可以称为模型训练914。在至少一个实施例中,模型训练914(例如AI辅助注释910,标记的数据912或其组合)可以用作重新训练或更新机器学习模型的地面实况数据。
在至少一个实施例中,部署系统906可以包括软件918、服务920、硬件922和/或其他组件、特征和功能。在至少一个实施例中,部署系统906可以包括软件“栈”,以使软件918可以构建在服务920的顶部上,并且可以使用服务920来执行一些或全部处理任务,并且服务920和软件918可以构建在硬件922的顶部上,并使用硬件922来执行部署系统906的处理、存储和/或其他计算任务。
在至少一个实施例中,软件918可以包括任意数量的不同容器,其中每个容器可以执行应用程序的实例化。在至少一个实施例中,每个应用程序可以在高级处理和推理管线中执行一个或更多个处理任务(例如,推理、对象检测、特征检测、分割、图像增强、校准等)。在至少一个实施例中,对于每种类型的计算设备,可能有任意数量的容器,其可以对反馈数据908(或其他数据类型,例如本文所述的数据类型)执行数据处理任务。在至少一个实施例中,除了接收和配置成像数据以供每个容器使用和/或在通过管线处理后由设施902使用的容器以外,还可以基于对处理反馈数据908想要的或所需的不同容器的选择来定义高级处理和推理管线(例如,以将输出转换回可用的数据类型,以便在设施902进行存储和显示)。在至少一个实施例中,软件918内的容器组合(例如,其构成管线)可以被称为虚拟仪器(如本文中更详细地描述的),并且虚拟仪器可以利用服务920和硬件922来执行容器中实例化的应用程序的部分或全部处理任务。
在至少一个实施例中,数据可以作为数据处理管线的一部分进行预处理,以准备数据用于由一个或更多个应用程序处理。在至少一个实施例中,可以在管线的一个或更多个推理任务或其他处理任务的输出上执行后处理,以准备下一个应用程序的输出数据和/或准备输出数据,以供用户传输和/或使用(例如作为对推理请求的响应)。在至少一个实施例中,推理任务可以由一个或更多个机器学习模型执行,例如训练的或部署的神经网络,所述模型可以包括训练系统904的输出模型916。
在至少一个实施例中,数据处理管线的任务可以封装在一个或更多个容器中,每个容器表示能够引用机器学习模型的应用程序和虚拟化计算环境的离散、全功能实例化。在至少一个实施例中,容器或应用程序可被发布到容器注册表(本文更详细地描述)的私有(例如,有限访问)区域中,并且训练的或部署的模型可存储在模型注册表924中,并与一个或更多个应用程序相关联。在至少一个实施例中,应用程序的图像(例如,容器图像)可在容器注册表中使用,并且一旦用户从容器注册表中选择图像以用于在管线中部署,则该图像可用于生成用于应用程序的实例化的容器,以供用户的系统使用。
在至少一个实施例中,开发者可以开发、发布和存储应用程序(例如,作为容器),用于对所提供的数据执行处理和/或推理。在至少一个实施例中,可以使用与系统相关联的软件开发工具包(SDK)来执行开发、发布和/或存储(例如,以确保开发的应用程序和/或容器符合系统或与系统兼容)。在至少一个实施例中,所开发的应用程序可以使用SDK在本地测试(例如,在第一设施处,对来自第一设施的数据),所述SDK作为系统(例如图10中的系统1000)可以支持至少某些服务920。在至少一个实施例中,一旦通过系统1000的验证(例如,为了准确性等),应用程序便会在容器注册表中可用,以供用户(例如,医院、诊所、实验室、医疗保健提供者等)选择和/或实现,以对用户的设施(例如第二设施)处的数据执行一个或更多个处理任务。
在至少一个实施例中,开发者随后可以通过网络共享应用程序或容器,以供系统(例如,图10的系统1000)的用户访问和使用。在至少一个实施例中,可以将完成并经过验证的应用程序或容器存储在容器注册表中,并且可以将相关的机器学习模型存储在模型注册表924中。在至少一个实施例中,请求实体(其提供推理或图像处理请求)可以浏览容器注册表和/或模型注册表924,用于应用程序、容器、数据集、机器学习模型等,选择所需的元素组合以包含在数据处理管线中,并提交处理请求。在至少一个实施例中,请求可以包括执行请求所必需的输入数据,和/或可以包括对在处理请求时要执行的应用程序和/或机器学习模型的选择。在至少一个实施例中,然后可以将请求传递到部署系统906的一个或更多个组件(例如,云),以执行数据处理管线的处理。在至少一个实施例中,由部署系统906进行的处理可以包括引用从容器注册表和/或模型注册表924中选择的元素(例如,应用程序、容器、模型等)。在至少一个实施例中,一旦通过管线生成结果,结果可返回给用户以供参考(例如,用于在本地、本地工作站或终端上执行的查看应用程序套件中进行查看)。
在至少一个实施例中,为了帮助处理或执行管线中的应用程序或容器,可以利用服务920。在至少一个实施例中,服务920可以包括计算服务、人工智能(AI)服务、可视化服务和/或其他服务类型。在至少一个实施例中,服务920可以提供软件918中的一个或更多个应用程序所共有的功能,因此可以将功能抽象为可以被应用程序调用或利用的服务。在至少一个实施例中,由服务920提供的功能可以动态且更有效地运行,同时还可以通过允许应用程序并行地处理数据(例如,使用图10中的并行计算平台1030)来很好地缩放。在至少一个实施例中,不是要求共享服务920提供的相同功能的每个应用程序都必须具有服务920的相应实例,而是可以在各种应用程序之间和之中共享服务920。在至少一个实施例中,作为非限制性示例,服务可包括可用于执行检测或分割任务的推理服务器或引擎。在至少一个实施例中,可以包括模型训练服务,其可以提供机器学习模型训练和/或重新训练能力。
在至少一个实施例中,在服务920包括AI服务(例如,推理服务)的情况下,作为应用程序执行的一部分,可以通过调用(例如,作为API调用)推理服务(例如,推理服务器),以执行一个或更多个机器学习模型或其处理,来执行与用于异常检测(例如,肿瘤、生长异常、瘢痕形成等)的应用程序相关联的一个或更多个机器学习模型。在至少一个实施例中,在另一应用程序包括用于分割任务的一个或更多个机器学习模型的情况下,应用程序可以调用推理服务来执行机器学习模型,以用于执行与分割任务相关联的一个或更多个处理操作。在至少一个实施例中,实现高级处理和推理管线的软件918可以被流水线化,因为每个应用程序可以调用相同的推理服务来执行一个或更多个推理任务。
在至少一个实施例中,硬件922可包括GPU、CPU、DPU、图形卡、AI/深度学习系统(例如,AI超级计算机,诸如NVIDIA的DGX超级计算机系统)、云平台或其组合。在至少一个实施例中,可以使用不同类型的硬件922,以为部署系统906中的软件918和服务920提供高效的、专门构建的支持。在至少一个实施例中,可以实现使用GPU处理来在AI/深度学习系统内、云系统中、和/或部署系统906的其他处理组件中进行本地处理(例如,在设施902处),以提高游戏名称识别的效率、准确性和效能。
在至少一个实施例中,作为非限制性示例,关于深度学习、机器学习和/或高性能计算,可以针对GPU处理优化软件918和/或服务920。在至少一个实施例中,部署系统906和/或训练系统904的计算环境中的至少一些可以在具有GPU优化的软件(例如,NVIDIA DGX系统的硬件和软件组合)的数据中心、一个或更多个超级计算机或高性能计算机系统中执行。在至少一个实施例中,如本文所述,硬件922可包括任意数量的GPU,所述GPU可被调用以并行执行数据处理。在至少一个实施例中,云平台还可包括用于深度学习任务的GPU优化执行、机器学习任务或其他计算任务的GPU处理。在至少一个实施例中,可以使用AI/深度学习超级计算机和/或GPU优化的软件(例如,如在NVIDIA的DGX系统上提供的)作为硬件抽象和缩放平台,来执行云平台(例如,NVIDIA的NGC)。在至少一个实施例中,云平台可以在多个GPU上集成应用程序容器集群系统或协调系统(例如,KUBERNETES),以实现无缝缩放和负载均衡。
图10是根据至少一个实施例的用于生成和部署一部署管线的示例系统1000的系统图。在至少一个实施例中,系统1000可以用于实现图9的过程900和/或其他过程,包括高级处理和推理管线。在至少一个实施例中,系统1000可以包括训练系统904和部署系统906。在至少一个实施例中,可以使用软件918、服务920和/或硬件922,来实现训练系统904和部署系统906,如本文所述。
在至少一个实施例中,系统1000(例如,训练系统904和/或部署系统906)可以在云计算环境中(例如,使用云1026)实现。在至少一个实施例中,系统1000可以在本地实现(关于设施),或者作为云计算资源和本地计算资源的组合来实现。在至少一个实施例中,可以通过制定安全措施或协议,将对云1026中的API的访问权限限制为授权用户。在至少一个实施例中,安全协议可以包括网络令牌,其可以由认证(例如,AuthN、AuthZ、Gluecon等)服务签署,并且可以携带适当的授权。在至少一个实施例中,虚拟仪器的API(本文中描述的)或系统1000的其他实例可以被限制为已被审核或授权用于交互的一组公共IP。
在至少一个实施例中,系统1000的各个组件可以使用多种不同网络类型中的任何一种在彼此之间和之中进行通信,所述不同网络类型包括但不限于经由有线和/或无线通信协议的局域网(LAN)和/或广域网(WAN)。在至少一个实施例中,系统1000的设施和组件之间的通信(例如,用于发送推理请求、用于接收推理请求的结果等)可以通过一个或更多个数据总线、无线数据协议(Wi-Fi)、有线数据协议(例如以太网)等进行传送。
在至少一个实施例中,类似于本文关于图9所描述的,训练系统904可以执行训练管线1004。在至少一个实施例中,其中部署系统906将在部署管线1010中使用一个或更多个机器学习模型,训练管线1004可用于训练或重新训练一个或更多个(例如,预训练的)模型,和/或实现一个或更多个预训练模型1006(例如,无需重新训练或更新)。在至少一个实施例中,作为训练管线1004的结果,可以生成输出模型916。在至少一个实施例中,训练管线1004可以包括任意数量的处理步骤,AI辅助注释910、反馈数据908的标记或注释用于生成标记的数据912、从模型注册表中选择模型、模型训练914、训练、重新训练或更新模型,和/或其他处理步骤。在至少一个实施例中,对于由部署系统906使用的不同的机器学习模型,可以使用不同的训练管线1004。在至少一个实施例中,类似于关于图9描述的第一示例的训练管线1004可用于第一机器学习模型,类似于关于图9描述的第二示例的训练管线1004可用于第二机器学习模型,类似于关于图9描述的第三示例的训练管线1004可用于第三机器学习模型。在至少一个实施例中,可以根据每个相应机器学习模型的要求来使用训练系统904内任务的任何组合。在至少一个实施例中,一个或更多个机器学习模型可能已经被训练并准备好用于部署,因此训练系统904可能不会对机器学习模型进行任何处理,并且机器学习模型可以由部署系统906来实现。
在至少一个实施例中,根据实施例或实施例,一个或更多个输出模型916和/或预训练模型1006可包括任何类型的机器学习模型。在至少一个实施例中并且不限于此,系统1000使用的机器学习模型可以包括使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k-最近邻(Knn)、k均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知器、长/短期记忆(LSTM)、Bi-LSTM、Hopfield、Boltzmann、深层信念、反卷积、生成对抗、液体状态机等),和/或其他类型的机器学习模型。
在至少一个实施例中,训练管线1004可以包括AI辅助注释。在至少一个实施例中,可以通过任何数量的技术来生成标记的数据912(例如,传统注释)。在至少一个实施例中,在一些示例中可以在绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、标记程序、适用于生成地面实况的注释或标签的另一类型的应用程序中、和/或可以手绘,生成标签或其他注释。在至少一个实施例中,地面实况数据可以被合成产生(例如,从计算机模型或渲染生成)、真实产生(例如,从真实世界数据设计和生成)、机器自动产生(例如,使用特征分析和学习从数据中提取特征,然后生成标签)、人工注释(例如,标记器或注释专家,定义标签的位置)和/或其组合。在至少一个实施例中,对于反馈数据908(或机器学习模型使用的其他数据类型)的每个实例,可以存在由训练系统904生成的相应的地面实况数据。在至少一个实施例中,可以作为部署管线1010的一部分执行AI辅助注释;补充或代替训练管线1004中包括的AI辅助注释。在至少一个实施例中,系统1000可以包括多层平台,所述多层平台可以包括诊断应用程序(或其他应用程序类型)的软件层(例如软件918),其可以执行一个或更多个医学成像和诊断功能。
在至少一个实施例中,软件层可以被实现为安全的、加密的和/或经认证的API,通过所述API可以从外部环境(例如,设施902)援引(invoke)(例如,调用(call))应用程序或容器。在至少一个实施例中,应用程序随后可以调用或执行一个或更多个服务920,以执行与各自的应用程序相关联的计算、AI或可视化任务,并且软件918和/或服务920可以利用硬件922以有效和高效的方式执行处理任务。
在至少一个实施例中,部署系统906可以执行部署管线1010。在至少一个实施例中,部署管线1010可以包括任意数量的应用程序,所述应用程序可以是顺序的、非顺序的,或者以其他方式应用于反馈数据(和/或其他数据类型)-包括AI辅助注释,如上所述。在至少一个实施例中,如本文所述,用于个体设备的部署管线1010可以被称为用于设备的虚拟仪器。在至少一个实施例中,对于单个设备,可以存在不止一个部署管线1010,这取决于从设备生成的数据所期望的信息。
在至少一个实施例中,可用于部署管线1010的应用程序可包括可用于对反馈数据或来自设备的其他数据执行处理任务的任何应用程序。在至少一个实施例中,由于各种应用程序可以共享公共图像操作,因此在一些实施例中,可以使用数据增强库(例如,作为服务920之一)来加速这些操作。在至少一个实施例中,为了避免依赖于CPU处理的传统处理方法的瓶颈,并行计算平台1030可用于这些处理任务的GPU加速。
在至少一个实施例中,部署系统906可以包括用户接口1014(例如,图形用户接口、Web接口等),所述用户接口可以被用于选择要包括在部署管线1010中的应用程序、布置应用程序、修改或改变应用程序或其参数或构造、在设置和/或部署期间使用部署管线1010以及与其交互,和/或以其他方式与部署系统906交互。在至少一个实施例中,尽管没有关于训练系统904示出,但是用户接口1014(或不同的用户接口)可用于选择在部署系统906中使用的模型、用于选择用于在训练系统904中训练或重新训练的模型,和/或用于以其他方式与训练系统904交互。
在至少一个实施例中,除了应用程序协调系统1028之外,还可以使用管线管理器1012来管理部署管线1010的应用程序或容器与服务920和/或硬件922之间的交互。在至少一个实施例中,管线管理器1012可以被配置为促进从应用程序到应用程序、从应用程序到服务920,和/或从应用程序或服务到硬件922的交互。在至少一个实施例中,尽管示出为包括在软件918中,这并不旨在进行限制,并且在一些示例中,管线管理器1012可以被包括在服务920中。在至少一个实施例中,应用程序协调系统1028(例如,Kubernetes、DOCKER等)可以包括容器协调系统,其可以将应用程序分组到容器中,作为用于协调、管理、缩放和部署的逻辑单元。在至少一个实施例中,通过将来自部署管线1010的应用程序(例如,重建应用程序、分割应用程序等)与各个容器相关联,每个应用程序可以在自包含的环境(例如,在内核级)中执行,以提高速度和效率。
在至少一个实施例中,每个应用程序和/或容器(或其映像)可以被单独开发、修改和部署(例如,第一用户或开发者可以开发、修改和部署第一应用程序,第二用户或开发者可以开发、修改和部署与第一用户或开发者分开的第二应用程序),这可以允许专注并关注单个应用程序和/或容器的任务,而不受另一个应用程序或容器的任务的阻碍。在至少一个实施例中,管线管理器1012和应用程序协调系统1028可以辅助不同容器或应用程序之间的通信和协作。在至少一个实施例中,只要每个容器或应用程序的预期输入和/或输出是系统已知的(例如,基于应用程序或容器的构造),则应用程序协调系统1028和/或管线管理器1012可以促进每个应用程序或容器之间和之中的通信以及资源的共享。在至少一个实施例中,由于部署管线1010中的一个或更多个应用程序或容器可以共享相同的服务和资源,因此应用程序协调系统1028可以在各个应用程序或容器之间和之中进行协调、负载均衡,并确定服务或资源的共享。在至少一个实施例中,调度器可用于跟踪应用程序或容器的资源需求、这些资源的当前使用或计划使用,以及资源可用性。因此,在至少一个实施例中,考虑到系统的需求和可用性,调度器可以将资源分配给不同的应用程序,并在应用程序之间和之中分配资源。在一些示例中,调度器(和/或应用程序协调系统1028的其他组件)可以基于施加在系统上的约束(例如,用户约束)来确定资源可用性和分布,例如服务质量(QoS)、对数据输出的迫切需求(例如,以确定是执行实时处理还是延迟处理)等。
在至少一个实施例中,由部署系统906中的应用程序或容器利用并由其共享的服务920,可以包括计算服务1016、AI服务1018、可视化服务1020和/或其他服务类型。在至少一个实施例中,应用程序可以调用(例如,执行)一个或更多个服务920,以执行针对应用程序的处理操作。在至少一个实施例中,应用程序可以利用计算服务1016来执行超级计算或其他高性能计算(HPC)任务。在至少一个实施例中,可以利用一个或更多个计算服务1016来执行并行处理(例如,使用并行计算平台1030),以通过一个或更多个应用程序和/或单个应用程序的一个或更多个任务基本上同时地处理数据。在至少一个实施例中,并行计算平台1030(例如,NVIDIA的CUDA)可以在GPU(GPGPU)(例如,GPU 1022)上实现通用计算。在至少一个实施例中,并行计算平台1030的软件层可以提供对GPU的虚拟指令集和并行计算元素的访问,以执行计算内核。在至少一个实施例中,并行计算平台1030可以包括存储器,并且在一些实施例中,可以在多个容器之间和之中,和/或在单个容器内的不同处理任务之间和之中共享存储器。在至少一个实施例中,可以为多个容器和/或容器内的多个进程生成进程间通信(IPC)调用,以使用来自并行计算平台1030的共享存储器段的相同数据(例如,其中一应用程序或多个应用程序的多个不同阶段正在处理相同的信息)。在至少一个实施例中,不是复制数据并将数据移动到存储器中的不同位置(例如,读/写操作),而是可以将存储器相同位置中的相同数据用于任何数量的处理任务(例如,在同一时间、不同时间等)。在至少一个实施例中,由于作为处理的结果数据被用于生成新数据,因此数据的新位置的该信息可以在各个应用程序之间存储和共享。在至少一个实施例中,数据的位置以及经更新或修改的数据的位置可以是如何理解容器中的有效负载的定义的一部分。
在至少一个实施例中,可以利用AI服务1018来执行推理服务,该推理服务用于执行与应用程序相关联的机器学习模型(例如,任务为执行应用程序的一个或更多个处理任务)。在至少一个实施例中,AI服务1018可以利用AI系统1024来执行机器学习模型(例如,诸如CNN之类的神经网络)以用于分割、重建、对象检测、特征检测、分类和/或其他推理任务。在至少一个实施例中,部署管线1010的应用程序可以使用来自训练系统904的一个或更多个输出模型916和/或应用程序的其他模型,来对成像数据(例如,DICOM数据、RIS数据、CIS数据、符合REST的数据、RPC数据、原始数据等)执行推理。在至少一个实施例中,使用应用程序协调系统1028(例如,调度器)进行推理的两个或更多个示例可以是可用的。在至少一个实施例中,第一类别可以包括高优先级/低延时路径,其可以实现更高服务水平协议,例如用于在紧急情况下对紧急请求执行推理,或者在诊断过程中用于放射科医生。在至少一个实施例中,第二类别可以包括标准优先级路径,其可用于可能不紧急的请求或者可以在稍后的时间执行分析的情况。在至少一个实施例中,应用程序协调系统1028可以基于优先级路径来分配资源(例如,服务920和/或硬件922),以用于AI服务1018的不同推理任务。
在至少一个实施例中,共享存储器可以被安装到系统1000中的AI服务1018。在至少一个实施例中,共享存储器可以操作为高速缓存(或其他存储设备类型),并且可以用于处理来自应用程序的推理请求。在至少一个实施例中,当提交推理请求时,部署系统906的一组API实例可以接收请求,并且可以选择一个或更多个实例(例如,为了最佳拟合、为了负载均衡等)来处理请求。在至少一个实施例中,为了处理请求,可以将请求输入到数据库中,如果尚未在高速缓存中,则可以从模型注册表924定位机器学习模型,验证步骤可以确保将适当的机器学习模型加载到高速缓存中(例如,共享存储),和/或可以将模型的副本保存到高速缓存中。在至少一个实施例中,如果应用程序尚未运行或没有足够的应用程序的实例,则可使用调度器(例如,管线管理器1012的调度器)来启动在请求中引用的应用程序。在至少一个实施例中,如果尚未启动推理服务器来执行模型,则可以启动推理服务器。在至少一个实施例中,每个模型可以启动任意数量的推理服务器。在至少一个实施例中,在将推理服务器聚类的拉(pull)模型中,每当负载均衡有利时,就可以将模型高速缓存。在至少一个实施例中,推理服务器可以静态加载到相应的分布式服务器中。
在至少一个实施例中,可以使用在容器中运行的推理服务器来执行推理。在至少一个实施例中,推理服务器的实例可以与模型(并且可选地与模型的多个版本)相关联。在至少一个实施例中,如果在接收到对模型执行推理的请求时推理服务器的实例不存在,则可以加载新实例。在至少一个实施例中,当启动推理服务器时,可以将模型传递到推理服务器,使得可以使用相同的容器来服务不同的模型,只要推理服务器作为不同的实例运行即可。
在至少一个实施例中,在应用程序执行期间,可以接收对给定应用程序的推理请求,并且可以加载(如果尚未加载的话)容器(例如,托管推理服务器的实例),以及可以调用启动程序。在至少一个实施例中,容器中的预处理逻辑可以(例如,使用CPU和/或GPU和/或DPU)对传入的数据进行加载、解码和/或执行任何附加的预处理。在至少一个实施例中,一旦数据准备好进行推理,容器就可以根据需要对数据进行推理。在至少一个实施例中,这可以包括对一个图像(例如,手部X射线)的单个推理调用,或可要求对数百个图像(例如,胸部CT)进行推理。在至少一个实施例中,应用程序可在完成之前总结结果,其可以包括但不限于单个置信度得分、像素级分割、体素级分割、生成可视化或生成文本以总结结果。在至少一个实施例中,可以为不同的模型或应用程序分配不同的优先级。例如,一些模型可具有实时(TAT小于1分钟)优先级,而其他模型可具有较低的优先级(例如,TAT小于10分钟)。在至少一个实施例中,模型执行时间可以从请求机构或实体进行测量,并且可以包括合作网络遍历时间以及推理服务的执行时间。
在至少一个实施例中,请求在服务920和推理应用程序之间的传送可以隐藏在软件开发工具包(SDK)后面,并且可以通过队列提供鲁棒的传输。在至少一个实施例中,将通过API将请求放置在队列中,以用于个体应用程序/租户ID组合,并且SDK将从队列中拉取请求并将请求提供给应用程序。在至少一个实施例中,在SDK将从中拾取队列的环境中,可以提供队列的名称。在至少一个实施例中,通过队列的异步通信可能有用,因为它可以允许应用程序的任何实例在其可用时拾取工作。在至少一个实施例中,可以通过队列将结果传送回去,以确保没有数据丢失。在至少一个实施例中,队列还可以提供对工作进行分割的能力,因为最高优先级的工作可以进入与应用程序的大多数实例连接的队列,而最低优先级的工作可以进入与单个实例连接的队列,所述实例按照接收到的顺序处理任务。在至少一个实施例中,应用程序可以在GPU加速的实例上运行,所述实例在云1026中生成,并且推理服务可以在GPU上执行推理。
在至少一个实施例中,可以利用可视化服务1020来生成用于查看应用程序和/或部署管线1010输出的可视化。在至少一个实施例中,可视化服务1020可以利用GPU 1022来生成可视化。在至少一个实施例中,可视化服务1020可以实现诸如光线追踪之类的渲染效果,以生成更高质量的可视化。在至少一个实施例中,可视化可以包括但不限于2D图像渲染、3D体渲染、3D体重建、2D层析切片、虚拟现实显示、增强现实显示等。在至少一个实施例中,可以使用虚拟化环境来生成虚拟交互显示或环境(例如,虚拟环境),以供系统用户(例如,医生、护士、放射科医生等)进行交互。在至少一个实施例中,可视化服务1020可以包括内部可视化器、电影和/或其他渲染或图像处理能力或功能(例如,光线追踪、光栅化、内部光学器件等)。
在至少一个实施例中,硬件922可以包括GPU 1022、AI系统1024、云1026和/或用于执行训练系统904和/或部署系统906的任何其他硬件。在至少一个实施例中,GPU 1022(例如,NVIDIA的TESLA和/或QUADRO GPU)可包括可用于执行计算服务1016、AI服务1018、可视化服务1020、其他服务和/或软件918的任何特征或功能的处理任务的任意数量的GPU。例如,对于AI服务1018,GPU 1022可用于对成像数据(或机器学习模型使用的其他数据类型)执行预处理,对机器学习模型的输出执行后处理和/或执行推理(例如以执行机器学习模型)。在至少一个实施例中,云1026、AI系统1024和/或系统1000的其他组件可以使用GPU1022。在至少一个实施例中,云1026可以包括用于深度学习任务的GPU优化的平台。在至少一个实施例中,AI系统1024可以使用GPU,并且可以使用一个或更多个AI系统1024来执行云1026(或者任务为深度学习或推理的至少部分)。同样,尽管硬件922被示出为离散组件,但这并不意图是限制,并且硬件922的任何组件可以与硬件922的任何其他组件组合,或由硬件922的任何其他组件利用。
在至少一个实施例中,AI系统1024可包括专门构建的计算系统(例如,超级计算机或HPC),该计算系统配置用于推理、深度学习、机器学习和/或其他人工智能任务。在至少一个实施例中,除了CPU、RAM、存储器和/或其他组件、特征或功能之外,AI系统1024(例如,NVIDIA的DGX)还可以包括可以使用多个GPU 1022来执行分GPU优化的软件(例如,软件栈)。在至少一个实施例中,可以在云1026中(例如,在数据中心中)实现一个或更多个AI系统1024,以执行系统1000的一些或全部基于AI的处理任务。
在至少一个实施例中,云1026可以包括GPU加速的基础设施(例如,NVIDIA的NGC),其可以提供用于执行系统1000的处理任务的GPU优化的平台。在至少一个实施例中,云1026可以包括AI系统1024,其用于执行系统1000的一个或更多个基于AI的任务(例如,作为硬件抽象和缩放平台)。在至少一个实施例中,云1026可以与利用多个GPU的应用程序协调系统1028集成,以实现应用程序和服务920之间和之中的无缝缩放和负载均衡。在至少一个实施例中,如本文所述,云1026可以负责执行系统1000的至少一些服务920,包括计算服务1016、AI服务1018和/或可视化服务1020。在至少一个实施例中,云1026可以执行大小批的推理(例如,执行NVIDIA的TENSOR RT),提供加速的并行计算API和平台1030(例如,NVIDIA的CUDA),执行应用程序协调系统1028(例如,KUBERNETES),提供图形渲染API和平台(例如,用于光线跟踪,2D图形、3D图形和/或其他渲染技术以产生更高质量的电影效果),和/或可以为系统1000提供其他功能。
在至少一个实施例中,为了保护患者的机密性(例如,在非现场使用患者数据或记录的情况下),云1026可以包括注册表-例如深度学习容器注册表。在至少一个实施例中,注册表可以存储用于实例化应用程序的容器,所述应用程序可以对患者数据执行预处理、后处理或其他处理任务。在至少一个实施例中,云1026可接收数据,所述数据包括患者数据以及容器中传感器数据,仅对那些容器中的传感器数据执行所请求的处理,然后将结果输出和/或可视化转发给适当的各方和/或设备(例如用于可视化或诊断的本地医疗设备),而无需提取、存储或以其他方式访问患者数据。在至少一个实施例中,根据HIPAA和/或其他数据规定来保留患者数据的机密性。
可以根据以下条款来描述本公开的至少一个实施例:
在条款1中,一种用于部署定制的机器学习模型MLM的方法,所述方法包括:访问多个经训练的MLM,每个经训练的MLM与初始配置设置相关联;提供用户界面(UI),用于接收用户输入,所述用户输入指示对所述多个经训练的MLM中的一个或更多个MLM的选择和对所述一个或更多个MLM的初始配置设置的修改;基于所述用户输入确定一个或更多个所选MLM的经修改的配置设置;使得执行构建引擎,以根据所述经修改的配置设置修改所述一个或更多个所选MLM;使得执行部署引擎,以部署一个或更多个经修改的MLM;以及使得在所述UI上显示一个或更多个所部署的MLM的表示。
在条款2中,根据条款1所述的方法,其中使用第一组训练数据对所述一个或更多个所选MLM进行预训练。
在条款3中,根据条款2所述的方法,还包括:接收用于对所述一个或更多个所选MLM进行领域特定训练的第二组训练数据;以及使得执行所述管线的训练引擎,以执行对所述一个或更多个所选MLM的所述领域特定训练。
在条款4中,根据条款1所述的方法,还包括:在接收指示对所述一个或更多个MLM的选择的所述用户输入之前,使得在所述UI上显示所述多个经训练的MLM的列表;以及在接收到指示对所述一个或更多个MLM的选择的所述用户输入之后,使得执行导出引擎,以初始化所述一个或更多个所选MLM。
在条款5中,根据条款4所述的方法,其中使得执行所述导出引擎还包括:使得在所述UI上显示所述一个或更多个所选MLM的架构或所述一个或更多个所选MLM的参数中的至少一个的表示。
在条款6中,根据条款4所述的方法,其中使得执行所述导出引擎还包括:使所述一个或更多个所选MLM可用于处理用户输入数据。
在条款7中,根据条款6所述的方法,还包括:接收所述用户输入数据;使得所述一个或更多个所部署的MLM被应用于所述用户输入数据以生成输出数据;以及使得在所述UI上显示所述输出数据的表示或对所存储的所述输出数据的表示的引用中的至少一个。
在条款8中,根据条款1所述的方法,其中所述一个或更多个所选MLM包括布置在管线中的神经网络模型。
在条款9中,根据条款1所述的方法,其中所述一个或更多个所选MLM包括声学神经网络模型和语言神经网络模型。
在条款10中,根据条款9所述的方法,其中所述一个或更多个所选MLM的所述经修改的配置设置包括以下中的至少一个:所述声学神经网络模型的声学预处理阶段的音频缓冲区大小;所述声学神经网络模型的话语结束设置;所述声学神经网络模型的延迟设置;或所述语言神经网络模型的语言设置。
在条款11中,根据条款8所述的方法,其中所述一个或更多个所选MLM包括语音合成神经网络模型、语言理解神经网络模型或问答神经网络模型中的至少一个。
在条款12中,一种系统,包括:存储器设备;和一个或更多个处理设备,其通信地耦合至所述存储器设备,用于:访问多个经训练的机器学习模型MLM,每个经训练的MLM与初始配置设置相关联;提供用户界面(UI),用于接收用户输入,所述用户输入指示对所述多个经训练的MLM中的一个或更多个MLM的选择和对所述一个或更多个MLM的初始配置设置的修改;基于所述用户输入确定一个或更多个所选MLM的经修改的配置设置;使得执行管线的构建引擎,以根据所述经修改的配置设置修改所述一个或更多个所选MLM;使得执行所述管线的部署引擎,以部署一个或更多个经修改的MLM;以及使得在所述UI上显示一个或更多个所部署的MLM的表示。
在条款13中,根据条款12所述的系统,其中所述一个或更多个处理设备还用于:在接收指示对所述一个或更多个MLM的选择的所述用户输入之前,使得在所述UI上显示所述多个经训练的MLM的列表;以及在接收到指示对所述一个或更多个MLM的选择的所述用户输入之后,使得执行所述管线的导出引擎,以初始化所述一个或更多个所选MLM。
在条款14中,根据条款13所述的系统,其中为了使得执行所述导出引擎,所述一个或更多个处理设备还用于:使得在所述UI上显示所述一个或更多个所选MLM的架构或所述一个或更多个所选MLM的参数中的至少一个的表示。
在条款15中,根据条款12所述的系统,其中所述一个或更多个处理设备还用于:接收用户输入数据;使得所述一个或更多个所部署的MLM被应用于所述用户输入数据以生成输出数据;以及使得在所述UI上显示所述输出数据的表示或对所存储的所述输出数据的表示的引用中的至少一个。
在条款16中,根据条款12所述的系统,其中所述一个或更多个所选MLM的所述经修改的配置设置包括以下中的至少一个:声学神经网络模型的声学预处理阶段的音频缓冲区大小;所述声学神经网络模型的话语结束设置;所述声学神经网络模型的延迟设置;或语言神经网络模型的语言设置。
在条款17中,根据条款12所述的系统,其中所述一个或更多个所选MLM包括语音合成神经网络模型、语言理解神经网络模型或问答神经网络模型中的至少一个。
在条款18中,一种非暂时性计算机可读介质,其上存储有指令,其中所述指令在由处理设备执行时,使得所述处理设备:访问多个经训练的机器学习模型MLM,每个经训练的MLM与初始配置设置相关联;提供用户界面(UI),用于接收用户输入,所述用户输入指示对所述多个经训练的MLM中的一个或更多个MLM的选择和对所述一个或更多个MLM的初始配置设置的修改;基于所述用户输入确定一个或更多个所选MLM的经修改的配置设置;使得执行管线的构建引擎,以根据所述经修改的配置设置修改所述一个或更多个所选MLM;使得执行所述管线的部署引擎,以部署一个或更多个经修改的MLM;以及使得在所述UI上显示一个或更多个所部署的MLM的表示。
在条款19中,根据条款18所述的计算机可读介质,其中所述指令还使得所述处理设备:在接收指示对所述一个或更多个MLM的选择的所述用户输入之前,使得在所述UI上显示所述多个经训练的MLM的列表;以及在接收到指示对所述一个或更多个MLM的选择的所述用户输入之后,使得执行所述管线的导出引擎,以初始化所述一个或更多个所选MLM。
在条款20中,根据条款19所述的计算机可读介质,其中为了使得执行所述导出引擎,所述指令还使得所述处理设备:使得在所述UI上显示所述一个或更多个所选MLM的架构或所述一个或更多个所选MLM的参数中的至少一个的表示。
在条款21中,根据条款18所述的计算机可读介质,其中所述指令还使得所述处理设备:接收用户输入数据;使得所述一个或更多个所部署的MLM被应用于所述用户输入数据以生成输出数据;以及使得在所述UI上显示所述输出数据的表示或对所存储的所述输出数据的表示的引用中的至少一个。
在条款22中,根据条款20所述的计算机可读介质,其中所述一个或更多个所选MLM的所述经修改的配置设置包括以下中的至少一个:声学神经网络模型的声学预处理阶段的音频缓冲区大小;所述声学神经网络模型的话语结束设置;所述声学神经网络模型的延迟设置;或语言神经网络模型的语言设置。
在条款23中,根据条款20所述的计算机可读介质,其中所述一个或更多个所选MLM包括语音合成神经网络模型、语言理解神经网络模型或问答神经网络模型中的至少一个。
其他变型在本公开的精神内。因此,尽管公开的技术易于进行各种修改和替代构造,但是某些示出的其实施例在附图中示出并且已经在上面进行了详细描述。然而,应理解,无意将公开内容限制为所公开的一种或更多种特定形式,而是相反,其意图是涵盖落入如所附权利要求书所定义的本公开内容的精神和范围内的所有修改、替代构造和等同物。
除非另有说明或显然与上下文矛盾,否则在描述所公开的实施例的上下文中(特别是在所附权利要求的上下文中),术语“一”和“一个”和“该”以及类似指代的使用应被解释为涵盖单数和复数,而不是作为术语的定义。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(意味着“包括但不限于”)。术语“连接”(在未经修改时指的是物理连接)应解释为部分或全部包含在内、附接到或连接在一起,即使有某些介入。除非本文另外指出,否则本文中对数值范围的引用仅旨在用作分别指代落入该范围内的每个单独值的简写方法,并且每个单独值都被并入说明书中,就如同其在本文中被单独叙述一样。在至少一个实施例中,除非另外指出或与上下文矛盾,否则术语“集”(例如“项目集”)或“子集”的使用应解释为包括一个或更多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语相应集的“子集”不一定表示对应集的适当子集,而是子集和对应集可以相等。
除非以其他方式明确指出或与上下文明显矛盾,否则诸如“A,B和C中的至少一个”或“A,B与C中的至少一个”形式的短语之类的连接语在上下文中理解为通常用来表示项目、条款等,其可以是A或B或C,也可以是A和B和C集的任何非空子集。例如,在具有三个成员的集的说明性示例中,连接短语“A,B和C中的至少一个”和“A,B与C中的至少一个”是指以下任意集:{A},{B},{C},{A,B},{A,C},{B,C},{A,B,C}。因此,这种连接语言通常不旨在暗示某些实施例要求存在A中的至少一个,B中的至少一个和C中的至少一个。另外,除非另有说明或与上下文矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。在至少一个实施例中,多个项目中项目的数量至少为两个,但如果明确指示或通过上下文指示,则可以更多。此外,除非另有说明或从上下文中可以清楚得知,否则短语“基于”是指“至少部分基于”而不是“仅基于”。
除非本文另外指出或与上下文明显矛盾,否则本文描述的过程的操作可以任何合适的顺序执行。在至少一个实施例中,诸如本文所述的那些过程(或其变形和/或其组合)之类的过程在配置有可执行指令的一个或更多个计算机系统的控制下执行,并且被实现为代码(例如,可执行指令,一个或更多个计算机程序或一个或更多个应用程序),该代码通过硬件或其组合在一个或更多个处理器上共同执行。在至少一个实施例中,代码以例如计算机程序的形式存储在计算机可读存储介质上,该计算机程序包括可由一个或更多个处理器执行的多个指令。在至少一个实施例中,计算机可读存储介质是非暂时性计算机可读存储介质,其排除了暂时性信号(例如,传播的瞬态电或电磁传输),但包括在暂时性信号收发器内的非暂时性数据存储电路(例如,缓冲区、高速缓存和队列)。在至少一个实施例中,代码(例如,可执行代码或源代码)被存储在其上存储有可执行指令的一组一个或更多个非暂时性计算机可读存储介质(或用于存储可执行指令的其他存储器)上,该可执行指令在由计算机系统的一个或更多个处理器执行时(即,作为被执行的结果),使得计算机系统执行本文所述的操作。在至少一个实施例中,一组非暂时性计算机可读存储介质包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个体非暂时性存储介质中的一个或更多个缺少全部代码,而是多个非暂时性计算机可读存储介质共同存储全部代码。在至少一个实施例中,可执行指令被执行,以使得不同的指令由不同的处理器执行,例如,非暂时性计算机可读存储介质存储指令,并且主中央处理单元(“CPU”)执行一些指令,而图形处理单元(“GPU”)和/或数据处理单元(“DPU”)(其可能与GPU一起)执行其他指令。在至少一个实施例中,计算机系统的不同组件具有单独的处理器,并且不同的处理器执行指令的不同子集。
因此,在至少一个实施例中,计算机系统被配置为实现单独地或共同地执行本文所述的过程的操作的一个或更多个服务,并且这样的计算机系统被配置有使能实施操作的适用的硬件和/或软件。此外,实现本公开的至少一个实施例的计算机系统是单个设备,并且在另一实施例中是分布式计算机系统,其包括以不同方式操作的多个设备,使得分布式计算机系统执行本文所述的操作,并且使得单个设备不执行所有操作。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例,并且不对公开的范围构成限制,除非另有要求。说明书中的任何语言都不应被解释为表示任何未要求保护的要素对于实践公开内容是必不可少的。
本文引用的所有参考文献,包括出版物、专利申请和专利,均通过引用并入本文,其程度就如同每个参考文献被单独且具体地指示为以引用的方式并入本文并且其全部内容在本文中阐述一样。
在说明书和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语可能不旨在作为彼此的同义词。相反,在特定示例中,“连接”或“耦合”可用于指示两个或更多个元件彼此直接或间接物理或电接触。“耦合”也可能意味着两个或更多个元素彼此不直接接触,但仍彼此协作或交互。
除非另有明确说明,否则可以理解,在整个说明书中,诸如“处理”、“计算”、“计算”、“确定”等之类的术语,是指计算机或计算系统或类似的电子计算设备的动作和/或过程,其将计算系统的寄存器和/或存储器中表示为物理量(例如电子)的数据处理和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
以类似的方式,术语“处理器”可以指处理来自寄存器和/或存储器的电子数据并将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据的任何设备或设备的一部分。作为非限制性示例,“处理器”可以是CPU或GPU。“计算平台”可以包括一个或更多个处理器。如本文所使用的,“软件”进程可以包括例如随时间执行工作的软件和/或硬件实体,诸如任务、线程和智能代理。同样,每个过程可以指代多个过程,以连续地或间歇地顺序地或并行地执行指令。在至少一个实施例中,术语“系统”和“方法”在本文中可以互换使用,只要系统可以体现一种或更多种方法,并且方法可以被认为是系统。
在本文件中,可以参考获得、获取、接收或将模拟或数字数据输入子系统、计算机系统或计算机实现的机器中。在至少一个实施例中,可以通过多种方式来完成获得、获取、接收或输入模拟和数字数据的过程,例如通过接收作为函数调用或对应用程序编程接口的调用的参数的数据。在至少一个实施例中,可以通过经由串行或并行接口传输数据来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,可以通过经由计算机网络将数据从提供实体传输到获取实体来完成获得、获取、接收或输入模拟或数字数据的过程。在至少一个实施例中,也可以参考提供、输出、传送、发送或呈现模拟或数字数据。在各种示例中,提供、输出、传送、发送或呈现模拟或数字数据的过程可以通过将数据作为函数调用的输入或输出参数、应用程序编程接口或进程间通信机制的参数进行传输来实现。
尽管本文的描述阐述了所描述的技术的示例实施例,但是其他架构可以用于实现所描述的功能,并且旨在落入本公开的范围内。此外,尽管出于描述的目的在上面定义了具体的职责分配,但是根据情况,可以以不同的方式分配和划分各种功能和职责。
此外,尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求书所要求保护的主题不必限于所描述的特定特征或动作。而是,公开了特定的特征和动作作为实现权利要求的示例性形式。

Claims (23)

1.一种用于部署定制的机器学习模型MLM的方法,所述方法包括:
访问多个经训练的MLM,每个经训练的MLM与初始配置设置相关联;
提供用户界面UI,用于接收用户输入,所述用户输入指示对所述多个经训练的MLM中的一个或更多个MLM的选择和对所述一个或更多个MLM的初始配置设置的修改;
基于所述用户输入确定一个或更多个所选MLM的经修改的配置设置;
使得执行构建引擎,以根据所述经修改的配置设置修改所述一个或更多个所选MLM;
使得执行部署引擎,以部署一个或更多个经修改的MLM;以及
使得在所述UI上显示一个或更多个所部署的MLM的表示。
2.根据权利要求1所述的方法,其中使用第一组训练数据对所述一个或更多个所选MLM进行预训练。
3.根据权利要求2所述的方法,还包括:
接收用于对所述一个或更多个所选MLM进行领域特定训练的第二组训练数据;以及
使得执行所述管线的训练引擎,以执行对所述一个或更多个所选MLM的所述领域特定训练。
4.根据权利要求1所述的方法,还包括:
在接收指示对所述一个或更多个MLM的选择的所述用户输入之前,使得在所述UI上显示所述多个经训练的MLM的列表;以及
在接收到指示对所述一个或更多个MLM的选择的所述用户输入之后,使得执行导出引擎,以初始化所述一个或更多个所选MLM。
5.根据权利要求4所述的方法,其中使得执行所述导出引擎还包括:
使得在所述UI上显示所述一个或更多个所选MLM的架构或所述一个或更多个所选MLM的参数中的至少一个的表示。
6.根据权利要求4所述的方法,其中使得执行所述导出引擎还包括:
使所述一个或更多个所选MLM可用于处理用户输入数据。
7.根据权利要求6所述的方法,还包括:
接收所述用户输入数据;
使得所述一个或更多个所部署的MLM被应用于所述用户输入数据以生成输出数据;以及
使得在所述UI上显示所述输出数据的表示或对所存储的所述输出数据的表示的引用中的至少一个。
8.根据权利要求1所述的方法,其中所述一个或更多个所选MLM包括布置在管线中的神经网络模型。
9.根据权利要求1所述的方法,其中所述一个或更多个所选MLM包括声学神经网络模型和语言神经网络模型。
10.根据权利要求9所述的方法,其中所述一个或更多个所选MLM的所述经修改的配置设置包括以下中的至少一个:
所述声学神经网络模型的声学预处理阶段的音频缓冲区大小;
所述声学神经网络模型的话语结束设置;
所述声学神经网络模型的延迟设置;或
所述语言神经网络模型的语言设置。
11.根据权利要求8所述的方法,其中所述一个或更多个所选MLM包括语音合成神经网络模型、语言理解神经网络模型或问答神经网络模型中的至少一个。
12.一种系统,包括:
存储器设备;和
一个或更多个处理设备,其通信地耦合至所述存储器设备,用于:
访问多个经训练的机器学习模型MLM,每个经训练的MLM与初始配置设置相关联;
提供用户界面UI,用于接收用户输入,所述用户输入指示对所述多个经训练的MLM中的一个或更多个MLM的选择和对所述一个或更多个MLM的初始配置设置的修改;
基于所述用户输入确定一个或更多个所选MLM的经修改的配置设置;
使得执行管线的构建引擎,以根据所述经修改的配置设置修改所述一个或更多个所选MLM;
使得执行所述管线的部署引擎,以部署一个或更多个经修改的MLM;以及
使得在所述UI上显示一个或更多个所部署的MLM的表示。
13.根据权利要求12所述的系统,其中所述一个或更多个处理设备还用于:
在接收指示对所述一个或更多个MLM的选择的所述用户输入之前,使得在所述UI上显示所述多个经训练的MLM的列表;以及
在接收到指示对所述一个或更多个MLM的选择的所述用户输入之后,使得执行所述管线的导出引擎,以初始化所述一个或更多个所选MLM。
14.根据权利要求13所述的系统,其中为了使得执行所述导出引擎,所述一个或更多个处理设备还用于:
使得在所述UI上显示所述一个或更多个所选MLM的架构或所述一个或更多个所选MLM的参数中的至少一个的表示。
15.根据权利要求12所述的系统,其中所述一个或更多个处理设备还用于:
接收用户输入数据;
使得所述一个或更多个所部署的MLM被应用于所述用户输入数据以生成输出数据;以及
使得在所述UI上显示所述输出数据的表示或对所存储的所述输出数据的表示的引用中的至少一个。
16.根据权利要求12所述的系统,其中所述一个或更多个所选MLM的所述经修改的配置设置包括以下中的至少一个:
声学神经网络模型的声学预处理阶段的音频缓冲区大小;
所述声学神经网络模型的话语结束设置;
所述声学神经网络模型的延迟设置;或
语言神经网络模型的语言设置。
17.根据权利要求12所述的系统,其中所述一个或更多个所选MLM包括语音合成神经网络模型、语言理解神经网络模型或问答神经网络模型中的至少一个。
18.一种非暂时性计算机可读介质,其上存储有指令,其中所述指令在由处理设备执行时,使得所述处理设备:
访问多个经训练的机器学习模型MLM,每个经训练的MLM与初始配置设置相关联;
提供用户界面UI,用于接收用户输入,所述用户输入指示对所述多个经训练的MLM中的一个或更多个MLM的选择和对所述一个或更多个MLM的初始配置设置的修改;
基于所述用户输入确定一个或更多个所选MLM的经修改的配置设置;
使得执行管线的构建引擎,以根据所述经修改的配置设置修改所述一个或更多个所选MLM;
使得执行所述管线的部署引擎,以部署一个或更多个经修改的MLM;以及
使得在所述UI上显示一个或更多个所部署的MLM的表示。
19.根据权利要求18所述的计算机可读介质,其中所述指令还使得所述处理设备:
在接收指示对所述一个或更多个MLM的选择的所述用户输入之前,使得在所述UI上显示所述多个经训练的MLM的列表;以及
在接收到指示对所述一个或更多个MLM的选择的所述用户输入之后,使得执行所述管线的导出引擎,以初始化所述一个或更多个所选MLM。
20.根据权利要求19所述的计算机可读介质,其中为了使得执行所述导出引擎,所述指令还使得所述处理设备:
使得在所述UI上显示所述一个或更多个所选MLM的架构或所述一个或更多个所选MLM的参数中的至少一个的表示。
21.根据权利要求18所述的计算机可读介质,其中所述指令还使得所述处理设备:
接收用户输入数据;
使得所述一个或更多个所部署的MLM被应用于所述用户输入数据以生成输出数据;以及
使得在所述UI上显示所述输出数据的表示或对所存储的所述输出数据的表示的引用中的至少一个。
22.根据权利要求20所述的计算机可读介质,其中所述一个或更多个所选MLM的所述经修改的配置设置包括以下中的至少一个:
声学神经网络模型的声学预处理阶段的音频缓冲区大小;
所述声学神经网络模型的话语结束设置;
所述声学神经网络模型的延迟设置;或
语言神经网络模型的语言设置。
23.根据权利要求20所述的计算机可读介质,其中所述一个或更多个所选MLM包括语音合成神经网络模型、语言理解神经网络模型或问答神经网络模型中的至少一个。
CN202210023098.7A 2021-02-12 2022-01-10 用于高效训练和部署机器学习模型的管线 Pending CN114925846A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/248,906 2021-02-12
US17/248,906 US20220261631A1 (en) 2021-02-12 2021-02-12 Pipelines for efficient training and deployment of machine learning models

Publications (1)

Publication Number Publication Date
CN114925846A true CN114925846A (zh) 2022-08-19

Family

ID=82611025

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210023098.7A Pending CN114925846A (zh) 2021-02-12 2022-01-10 用于高效训练和部署机器学习模型的管线

Country Status (4)

Country Link
US (1) US20220261631A1 (zh)
JP (1) JP2022123817A (zh)
CN (1) CN114925846A (zh)
DE (1) DE102022102912A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785486A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 环境资源调配方法、装置、设备和介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB202004594D0 (en) * 2020-03-30 2020-05-13 Microsoft Technology Licensing Llc Partitioning for an execution pipeline
US11978438B1 (en) * 2021-03-29 2024-05-07 Amazon Technologies, Inc. Machine learning model updating
US11889112B2 (en) * 2021-04-30 2024-01-30 Tencent America LLC Block-wise content-adaptive online training in neural image compression
WO2024065028A1 (en) * 2022-09-26 2024-04-04 FORMIC Al LTD. Application of an ai-based model to a preprocessed data set

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117785486A (zh) * 2024-02-27 2024-03-29 融科联创(天津)信息技术有限公司 环境资源调配方法、装置、设备和介质
CN117785486B (zh) * 2024-02-27 2024-05-24 融科联创(天津)信息技术有限公司 环境资源调配方法、装置、设备和介质

Also Published As

Publication number Publication date
DE102022102912A1 (de) 2022-08-18
US20220261631A1 (en) 2022-08-18
JP2022123817A (ja) 2022-08-24

Similar Documents

Publication Publication Date Title
US11816790B2 (en) Unsupervised learning of scene structure for synthetic data generation
US20220261631A1 (en) Pipelines for efficient training and deployment of machine learning models
US20210089921A1 (en) Transfer learning for neural networks
CN112699991A (zh) 用于加速神经网络训练的信息处理的方法、电子设备和计算机可读介质
US20190057081A1 (en) Method and apparatus for generating natural language
CN110232689A (zh) 语义类别定位数字环境
CN111860759A (zh) 数据的自主修改的方法和系统
DE112020002425T5 (de) Bewegungsvorhersage unter verwendung eines oder mehrerer neuronaler netzwerke
WO2021242840A1 (en) Scene graph generation for unlabeled data
US20220269548A1 (en) Profiling and performance monitoring of distributed computational pipelines
Sarang Artificial neural networks with TensorFlow 2
CN117296058A (zh) 作为简单有效的对抗攻击方法的变体不一致攻击(via)
US20220301557A1 (en) Generating action items during a conferencing session
US20230377099A1 (en) Synthesizing content using diffusion models in content generation systems and applications
US20240013802A1 (en) Inferring emotion from speech in audio data using deep learning
WO2023014940A1 (en) Application management platform for hyper-converged cloud infrastructures
DE102022108108A1 (de) Zwischenspeicherung von kompilierten shader-programmen in einer cloud-computing-umgebung
US20240119927A1 (en) Speaker identification, verification, and diarization using neural networks for conversational ai systems and applications
US20240161728A1 (en) Synthetic speech generation for conversational ai systems and applications
US20240038212A1 (en) Normalizing flows with neural splines for high-quality speech synthesis
US20240153531A1 (en) Multi-scale speaker diarization for conversational ai systems and applications
US20240095463A1 (en) Natural language processing applications using large language models
US20240185001A1 (en) Dataset generation using large language models
US20240062014A1 (en) Generating canonical forms for task-oriented dialogue in conversational ai systems and applications
US20230297074A1 (en) Interpreting discrete tasks from complex instructions for robotic systems and applications

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