CN112714909A - 合成数据任务的分类和资源分配的协调 - Google Patents

合成数据任务的分类和资源分配的协调 Download PDF

Info

Publication number
CN112714909A
CN112714909A CN201980060892.5A CN201980060892A CN112714909A CN 112714909 A CN112714909 A CN 112714909A CN 201980060892 A CN201980060892 A CN 201980060892A CN 112714909 A CN112714909 A CN 112714909A
Authority
CN
China
Prior art keywords
synthetic data
task
data
machine learning
asset
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
CN201980060892.5A
Other languages
English (en)
Inventor
K·扎盖伊
S·陈
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN112714909A publication Critical patent/CN112714909A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • 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
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/96Management of image or video recognition tasks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • G06N3/045Combinations of networks
    • 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
    • G06N3/047Probabilistic or stochastic networks
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Library & Information Science (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

描述了用于对合成数据任务进行分类并且在合格资源组之间协调资源分配以用于处理合成数据任务的各种技术。所接收的合成数据任务可以通过标识任务类别以及用于处理任务类别中的合成数据任务的对应合格资源组(例如,处理器)来进行分类。例如,合成数据任务可以包括源资产的生成、源资产的摄取、变化参数的标识、变化参数的变化以及合成数据的创建。某些类别的合成数据任务可以被分类,以使用特定合格资源组来进行处理。例如,摄取合成数据资产的任务可以被分类用于仅在CPU上处理,而创建合成数据资产的任务可以被分类用于仅在GPU上处理。合成数据任务可以被排队并且被路由以用于由合格资源处理。

Description

合成数据任务的分类和资源分配的协调
背景技术
用户依靠不同类型的技术***来完成任务。技术***可以基于机器学习来改进,机器学习使用统计技术来使得计算机具有在无需被显式编程的情况下利用数据来逐步改进特定任务的性能的能力。例如,机器学习可以被用于数据安全、人身安全、欺诈检测、医疗保健、自然语言处理、在线搜索和推荐、金融交易和智能汽车。对于这些领域或域中的每一个,机器学习模型均利用训练数据集来训练。训练数据集是用于创建将学习任务和机器学习应用匹配的框架的示例数据集。例如,面部识别***可以被训练为将人脸的独特特征与人脸的已知特征集合进行比较来恰当地标识人。随着机器学习在不同领域中的不断增加的使用以及恰当训练机器学习模型的重要性,对机器学习训练***的计算操作的改进将提供机器学习任务和应用的更高效的性能,并且还改进机器学习训练***的图形用户界面的用户导航。
发明内容
本发明的实施例涉及用于提供支持合成数据即服务的分布式计算***的方法、***和计算机存储介质。作为背景,分布式计算***可以基于面向服务的架构来操作,其中服务使用不同的服务模型来提供。在较高级别处,服务模型可以提供与提供对应服务相关联的基础操作的抽象。服务模型的示例包括基础设施即服务、平台即服务、软件即服务和功能即服务。利用这些模型中的任一个,客户可以在不必维持或开发使用面向服务的架构进行抽象的操作特征的情况下,开发、运行和管理服务的各个方面。
转向机器学习和训练数据集,机器学习使用统计技术来使得计算机能够在无需被显式编程的情况下,利用数据来逐步改进特定任务的性能。训练数据集是机器学习领域不可或缺的组成部分。高质量的数据集可以帮助改进与机器学习硬件和软件相关联的机器学习算法和计算操作。创建高质量的训练数据集可能需要大量的精力。例如,标记训练数据集的数据可能特别繁琐,这通常会导致标记过程不准确。
当涉及使得训练数据集大众化,换言之,使得训练数据集普遍可用于多个不同领域时,寻找训练数据集的常规方法明显不足。例如,有限的训练数据集生成资源、机器学习***提供方之间的竞争、机密性、安全性和隐私注意事项以及其他因素可能会限制可以被生成或共享的训练数据集的数量,并且还会限制训练数据集可用的不同领域。而且,用于开发机器学习训练数据集的理论解决方案尚未被完全定义、实现或描述,因为实现这样的解决方案的基础设施不可访问或太昂贵,以致无法实现用于开发训练数据集的当前技术的备选方案。总体而言,在常规的机器学习训练服务中,用于开发机器学习训练数据集的综合功能性和资源被限制。
本公开中描述的实施例针对用于使用提供合成数据即服务(“SDaaS”)的分布式计算***来改进对机器学习训练数据集的访问的技术。SDaaS可以指代使用面向服务的架构实现的分布式(云)计算***服务。面向服务的架构提供了机器学习训练服务,同时将经由SDaaS管理的基础操作抽象化。例如,SDaaS提供了允许客户配置、生成、访问、管理和处理针对机器学习的合成数据训练数据集的机器学习训练***。特别地,SDaaS在没有通常与手动开发训练数据集相关联的复杂性的情况下进行操作。SDaaS可以基于SDaaS引擎、管理器、模块或组件来以多种方式交付,其包括资产组装引擎、场景组装引擎、帧集(frameset)组装引擎、帧集程序包(package)生成器、帧集程序包存储库、管理层、反馈回路引擎、众包引擎和机器学习训练服务。在分布式计算***上实现SDaaS的可观察到的效果是支持生成训练数据集的合成数据资产的大量生产和可用性。特别地,训练数据集通过更改(altering)合成数据资产(例如,3D模型)或场景(例如,3D场景和视频)的本征参数和非本征参数来生成。换言之,训练数据集基于本征参数变化(例如,资产形状、位置和材料属性)和非本征参数变化(例如,环境和/或场景参数(诸如,照明、视角)的变化)来生成,其中本征参数变化和非本征参数变化提供了资产和具有多个资产的场景的可编程机器学习数据表示。附加特定功能性使用下文更加详细描述的SDaaS的组件来提供。
这样,本文所述的实施例改进了用于基于使用分布式计算***提供合成数据即服务来生成训练数据集的计算功能和操作。例如,训练数据集的手动开发(例如,标记和贴标签)和细化(例如,更新)所需的计算操作基于SDaaS操作而被消除。SDaaS操作使用合成数据资产来自动开发训练数据集,并且基于训练数据集报告来将训练数据集自动细化,训练数据集报告指示将改进机器学习训练服务中的机器学习模型的附加合成数据资产或场景。在该方面,SDaaS解决了由机器学习训练数据集的手动开发引起的问题,并且改进了用于在分布式计算***中训练机器学习模型的现有过程。
提供本发明内容来以简化形式介绍一些概念,这些概念将在以下的具体实施方式中进一步描述。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
以下参考附图来详细描述本文的技术,在附图中:
图1A和图1B是根据本发明的实施例的用于提供合成数据即服务的一个示例分布式计算的框图;
图2A和图2B是图示了根据本发明的实施例的分布式计算***合成数据即服务的示例实现的流程图;
图3描绘了根据本发明的实施例的一个示例分布式计算***合成数据即服务接口;
图4描绘了根据本发明的实施例的一个示例分布式计算***合成数据即服务工作流;
图5描绘了根据本发明的实施例的一个示例分布式计算***合成数据即服务接口;
图6是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务工作流的框图;
图7是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务工作流的框图;
图8是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图9是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图10是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图11是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图12是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图13是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图14是图示了根据本发明的实施例的一个示例分布式计算***合成数据即服务操作的流程图;
图15是图示了根据本发明的实施例的用于建议变化参数的示例方法的流程图;
图16是图示了根据本发明的实施例的用于将合成数据集预程序包的一个示例方法的流程图;
图17是图示了根据本发明的实施例的用于协调资源分配的一个示例方法的流程图;
图18是图示了根据本发明的实施例的用于在具有不同架构的处理器组之间协调资源分配的一个示例方法的流程图;
图19是图示了根据本发明的实施例的用于改变资源分配的一个示例方法的流程图;
图20是图示了根据本发明的实施例的用于将合成数据任务批量处理的一个示例方法的流程图;
图21是图示了用于使用多个合成数据资产来对机器学习模型进行再训练的一个示例方法的流程图;
图22是适用于实现本发明的实施例的一个示例分布式计算环境的框图;以及
图23是适用于实现本发明的实施例的一个示例计算环境的框图。
具体实施方式
分布式计算***可以被用来提供不同类型的面向服务的模型。作为背景,服务模型可以提供与提供对应服务相关联的基础操作的抽象化。服务模型的示例包括基础设施即服务、平台即服务、软件即服务和功能即服务。利用这些模型中的任一个,客户均可以在不必维持或开发使用面向服务的架构而被抽象化的操作特征的情况下,开放、运行、管理服务的各方面。
使用统计技术的机器学***台基于支持监督和半监督机器学习算法的训练数据集来操作;然而,因为标记数据需要大量时间,所以高质量的训练数据集通常很难生成且成本昂贵。机器学习模型依赖于高质量的经标记的训练数据集来进行监督学习,使得模型可以在预测、分类和分析不同类型的现象时提供可靠的结果。在没有正确类型的训练数据集的情况下,开发可靠的机器学习模型可能是不可能的。训练数据集包括经标记、经贴标签和经注释的条目来有效地训练机器学习算法。
当涉及使得训练数据集大众化,换言之,使得训练数据集普遍可用于多个不同领域时,寻找训练数据集的常规方法明显不足。当前,这样的有限的解决方案包括将标记功能外包、重新利用现有的训练数据和标签、从免费源中收集您自己的训练数据和标签、依赖已对所标记的数据进行预训练的第三方模型以及利用众包标记服务。这些解决方案中的大多数要么耗时、昂贵、不适合敏感项目,要么显然不够稳健,无法应对大规模的机器学习项目。此外,用于开发机器学习训练数据集的理论解决方案尚未被完全定义、启用或描述,因为实现这样的解决方案的基础设施不可访问或太昂贵,以致无法实现用于开发训练数据集的当前技术的备选方案。总体而言,在常规的机器学习训练服务中,关于开发机器学习训练数据集的综合功能性被限制。
本文中描述的实施例提供了用于实现提供合成数据即服务(“SDaaS”)的分布式计算***的简单且有效的方法和***。SDaaS可以指代使用面向服务的架构而被实现为提供机器学习训练服务、同时将经由SDaaS服务管理的基础操作抽象化的分布式(云)计算***服务。例如,SDaaS提供了允许客户配置、生成、访问、管理和处理针对机器学习的合成数据训练数据集的机器学习训练***。特别地,SDaaS在没有通常与手动开发训练数据集相关联的复杂性的情况下进行操作。SDaaS可以基于SDaaS引擎、管理器、模块或组件来以多种方式交付,其包括资产组装引擎、场景组装引擎、帧集组装引擎、帧集程序包生成器、帧集程序包存储库、管理层、反馈回路引擎、众包引擎和机器学习训练服务。在分布式计算***上实现SDaaS即服务的可观察到的效果是支持生成训练数据集的合成数据资产的大量生产和可用性。特别地,训练数据集通过更改合成数据资产(例如,3D模型)或场景(例如,3D场景和视频)的本征参数和非本征参数来生成。换言之,训练数据集基于本征参数变化(例如,资产形状、位置和材料属性)和非本征参数变化(例如,环境和/或场景参数(诸如,照明、视角)的变化)来生成,其中本征参数变化和非本征参数变化提供了资产和具有多个资产的场景的可编程机器学习数据表示。附加特定功能性使用下文更加详细描述的SDaaS的组件来提供。
作为背景,计算机技术和计算机图形学的进步支持虚拟环境的生成。例如,图形处理单元(GPU)可以被用于操纵计算机图形(例如,3D对象)和图像处理。虚拟环境可以使用计算机图形来生成,以创建对现实世界的逼真描绘。虚拟环境可以完全由计算机图形组成,也可以部分地具有计算机图形和现实世界对象的组合。部分虚拟环境有时被称为增强现实虚拟环境。例如,为了生成虚拟环境,3D扫描仪可以被用来扫描现实世界环境,并且现实世界环境中的对象以编程方式被标识并被赋予属性或性质。例如,房间以及所标识的房间的墙壁和房间中的桌子可以被扫描,并且墙壁和桌子可以被分配属性,诸如颜色、纹理和尺寸。其他不同类型的环境和对象可以被扫描、被映射到属性并且被用于逼真地绘制现实世界环境和对象的虚拟表示。常规地,图像可以使用摄像机和其他图像捕获设备来捕获,而虚拟环境使用不同类型的计算机图形过程来生成。常规地,所捕获的图像可以被用于训练机器学习模型,并且虚拟图像可以被用于训练机器学习模型。常规捕获的图像可以被称为非合成数据,而虚拟图像可以被称为合成数据。
合成数据比非合成数据具有多个优点。特别地,由于非合成数据中缺少合成数据的固有性质,因此合成数据可以被用于改进机器学习(即,将计算机编程为学习如何执行和逐渐改进特定任务的性能)。在较高级别处,合成数据的程序结构允许基于本征参数变化和非本征参数变化来生成训练数据集,其中本征参数变化和非本征参数变化提供资产以及具有多个资产的场景的可编程机器学习数据表示。例如,合成数据可以包括资产或基于资产来生成,资产可以***纵为产生相同虚拟环境的不同变化(例如,资产、场景和帧集变化)。与其中如本文所述的本征参数和非本征参数可以被更改的虚拟资产相反,被用于训练关于特定对象、特征或环境的机器学习模型的非合成数据(例如,录像和图像)是静态的并且通常不可更改。创建虚拟环境(即,资产、场景和帧集)变化的能力允许生成可以用于机器学习的训练数据集的无限组合。预期本发明可以消除或限制在训练数据集中提供隐私和安全性所需的手动干预的量。例如,常规训练数据集可以包括个人标识信息、人脸或出于安全隐私目的而必须手动编辑的位置。利用合成数据,训练数据集可以在没有任何隐私或安全隐患的情况下被生成,和/或被生成为移除或编辑与隐私或安全性有关的信息,同时保留更改资产的本征参数和非本征参数的能力。
借助上述可编程结构,合成数据可以具有多种应用,上述可编程结构可以解决机器学习中面临的问题,特别是在获取训练数据集方面的问题。如所讨论的,由于多种原因,获取训练数据集可能很困难。一个具体的示例是正确标记合成数据的困难。用于面部识别的机器学习模型可以使用已被手动标记的训练数据集来训练,这会引入人为错误。例如,包括人脸的图像帧可以利用人脸周围的边界框来处理;然而,与边界框相关联的准确性和性质易于人为解释,并且可能会产生影响训练数据集并最终影响从训练数据集生成的机器学习模型的错误。合成数据可以被用于改进标记过程并消除与标记过程相关联的人为错误。在另一示例中,为了将机器学习模型训练为理解并推断交叉路口处的汽车碰撞,机器学习模型将必须包括表示汽车碰撞的训练数据集。此处的问题是,存在有限数量的汽车碰撞图像,并且在特定的感兴趣交叉点处甚至存在更少的碰撞图像。此外,被用于捕获的设备、上下文和场景在机器学习训练过程中引入了特定的局限性和挑战,当依靠常规的训练数据集开发方法时无法克服这些局限性和挑战。例如,如果来自记录设备的伪像无法被移除或被编程到机器学习训练过程和模型中,则伪像可能会使得图片质量和从训练数据集开发的机器学习模型产生偏差。
因此,定义合成数据或被用于生成合成数据的资产的程序结构可以被用于改进机器学习训练本身的基本元素。被用于机器学习的规则、数据结构和过程常规地与非合成数据相关联。这样,机器学习训练可以被重组,以并入以其他方式在非合成数据中丢失的合成数据的各方面。特别地,机器学习训练可以包括用于以改进机器学习训练和所产生的机器学习模型的方式来管理资产的不同变化的规则、数据结构以及过程。合成数据资产、场景和帧集可以被组装和管理,并且帧集程序包通过SDaaS操作和接口而被生成和访问。此外,在混合式机器学习模型中,机器学习模型可以仅利用合成数据或合成数据与非合成数据的组合来训练和细化。机器学习训练可以在已定义的阶段和持续时间内完成,已定义的阶段和持续时间利用合成数据和非合成数据的各个方面。本发明的实施例预期了基于合成数据的SDaaS操作的其他变型和组合。
在一个实施例中,源资产可以包括可以基于本领域中的已知技术通过计算确定的若干不同参数。例如,源资产可以指代几何数据的三维表示(例如,3D模型)。源资产可以被表示为由三角形组成的网格,其中三角形越平滑,并且模型的表面越详细,则源的尺寸越大。源资产被访问和处理,以用作合成数据资产。在这方面,源资产可以跨从具有大量细节的高级多边形模型到具有较少细节的低级多边形模型的频谱来表示。以不同的详细级别表示源资产的过程可以被称为抽取(decimation)。低级多边形模型可以被用于对于高级模型而言在计算上昂贵的不同类型的过程中。自动抽取过程可以被实现为以不同详细级别来存储源资产。其他类型的可编程参数可以被确定并且与作为合成数据资产而存储的源资产相关联。
本发明的实施例可以在两层可编程参数***上操作,在两层可编程参数***中,机器学习训练服务可以自动地或者基于手动干预或输入,基于访问和确定第一层参数(例如,资产参数)和/或第二层参数(例如,场景参数或帧集参数)来训练模型,并且使用这些参数来改进训练数据集,并通过扩展来改进机器学习训练的过程和机器学习训练模型本身。机器学习训练服务可以支持深度学习和深度学习网络以及其他类型的机器学习算法和网络。机器学习训练服务还可以将生成式对抗网络实现为一种类型的无监督机器学习。SDaaS可以以不同的方式来利用这些基础分层参数。例如,分层参数可以被用于确定针对帧集收费多少、如何针对特定设备来开发不同类型的帧集(例如,了解设备参数并能够操纵参数来开发训练数据集)等。
被用于训练机器学习模型的数据集通常被定制为特定机器学习场景。为了完成该定制,场景的特定属性(场景变化参数)和/或场景内的资产(资产变化参数)可以被选择和改变来针对帧集程序包,生成不同的帧集(例如,基于3D场景的绘制图像)。潜在的变化参数的数量在理论上是无限的。然而,并非所有参数都可以被改变来产生将改进针对给定场景的机器学习模型的准确性的帧集程序包。例如,用户可以生成包括环境(例如,一块土地)和各种3D资产(例如,汽车、人和树)的合成数据场景(例如,3D场景)。在一些机器学习场景(诸如面部识别)中,变化参数(诸如人体形状、纬度、经度、太阳角、一天中的时间、相机视角和相机位置)可能与改进对应机器学习模型的准确性有关。在其他场景(诸如,使用计算机视觉和光学字符识别(OCR)来读取健康保险卡)中,这些变化参数中的一些是不相关的。更具体地,诸如纬度、经度、太阳角和一天中的时间的变化参数可能与基于OCR的场景无关,而诸如相机视角、相机位置和A至Z变化性的其他参数可能与基于OCR的场景相关。如本文所使用的,A至Z变化性指代不同的笔迹、字体等表示特定字母的方式上的差异。通常,一些变化参数将与一些场景相关,而与其他场景无关。
此外,并非所有用户(例如,客户、数据科学家等)都将知道哪些变化参数可能与特定场景有关,并且可能选择无效的变化参数。在这种情况下,生成对应帧集程序包将导致大量不必要的计算资源的消耗。即使用户可以准确地选择相关的变化参数,但是当可能的变化参数的数量很大时,选择相关子集的过程也可能既耗时又易出错。
这样,在一些实施例中,针对特定场景的所建议的变化参数可以被呈现来支持生成帧集程序包。相关变化参数可以通过将机器学习场景与变化参数的相关子集相关联的种子分类标准(seeding taxonomy)来指定。通常,支持场景生成和/或帧集生成的用户界面可以被提供。在标识了特定机器学习场景之后,与种子分类标准中的场景相关联的变化参数的子集可以被访问并且被呈现作为所建议的变化参数。种子分类标准可以是预定的和/或可适配的。可适配的种子分类标准可以使用反馈回路来实现,反馈回路基于确定针对帧集生成请求的所选择的变化参数与种子分类标准中的所建议的变化参数不同,而跟踪所选择的变化参数并更新种子分类标准。这样,所建议的变化参数的呈现帮助用户更快且更有效地标识和选择相关变化参数。在一些情况下,所建议的变化参数的呈现会防止无效的变化参数的选择,以及伴随的不必要的计算资源的消耗。
在一些实施例中,将机器学习场景映射到针对场景的相关变化参数的种子分类标准可以被维持。例如,种子分类标准可以包括机器学习场景的列表(例如,OCR、面部识别、视频监控、垃圾邮件检测、产品推荐、营销个性化、欺诈检测、数据安全、物理安全筛查、金融交易、计算机辅助诊断、在线搜索、自然语言处理、智能汽车控件、物联网控件等)。通常,特定机器学习场景可以与相关的变化参数集合(例如,资产变化参数、场景变化参数等)相关联,该变化参数可以被改变以产生可以用于训练和改进针对场景的对应机器学习模型的帧集程序包。种子分类标准可以将每个场景与变化参数的相关子集相关联。例如,针对所有场景的变化参数可以被分配唯一的标识符,并且种子分类标准可以维持指示针对每个场景的相关变化参数的唯一标识符列表。
支持场景生成和/或帧集生成的用户界面可以支持对期望的机器学习场景的标识(例如,基于指示期望场景的用户输入)。与种子分类标准中所标识的场景相关联的变化参数子集的列表或其他指示可以经由用户界面来访问,并且被呈现为所建议的变化参数。例如,用户界面可以包括接受指示一个或多个机器学习场景的输入的表格。输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示机器学习场景的输入可以触发对种子分类标准中维持的相关变化参数的查找和表示。相关变化参数可以被呈现为针对所选择的机器学习场景的所建议的变化参数的列表或其他指示。用户界面可以接受指示对所建议的一个或多个变化参数和/或一个或多个附加变化参数的选择的输入。类似于指示机器学习场景的输入,指示所选择的变化参数的输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示所选择的变化参数的输入可以使得帧集程序包使用所选择的变化参数来生成,并且帧集程序包可以例如通过下载或其他方式来获得。
通常,种子分类标准可以是预定的和/或可适配的。例如,在包括可适配种子分类标准的实施例中,反馈回路可以被实现,该反馈回路跟踪针对每个机器学习场景的所选择的变化参数。反馈回路可以基于针对特定帧集程序包的所选择的变化参数与针对对应机器学习场景的所建议的变化参数的比较,来更新种子分类标准。变化参数可以以多种方式从种子分类标准中针对特定场景的相关联变化参数的列表或其他指示中被添加或移除。例如,变化参数可以基于确定针对特定帧集生成请求的所选择的变化参数与种子分类标准中针对对应机器学习场景的所建议的变化参数不同,而被添加或移除。对种子分类标准的该更新可以基于所确定的针对单个请求、阈值数量的请求、大多数请求或其他合适标准的差异来执行。这样,在这些实施例中,种子分类标准是不断发展和自我修复的。
如上所述,被用于训练机器学习模型的数据集通常被定制到特定机器学习场景。此外,特别是在重(人工智能)AI行业(诸如政府、医疗保健、零售、石油和天然气、游戏和金融)中,一些场景可能会再次发生。然而,每次数据集被请求时,针对特定机器学习场景重新创建合成数据集将会导致计算资源的大量消耗。
这样,在一些实施例中,针对常见或预期机器学习场景的合成数据集(例如,帧集程序包)可以通过在客户或其他用户请求数据集之前创建数据集而被预先打包。用户界面可以被提供,该用户界面包括允许用户指定期望场景的表格或其他合适工具。例如,表格可以允许用户指定行业部门以及行业部门内的特定场景。作为响应,针对该行业部门和场景的合成数据的可用程序包表示可以被呈现,用户可以选择可用程序包,并且所选择的程序包可以例如通过下载或其他方式来获得。通过将诸如此类的合成数据集预先打包,将以其他方式被要求按需多次生成数据集的计算资源的大量消耗可以被避免。
一个常见的机器学习场景示例可能在政府部门中发生。例如,某机构可能希望使用计算机视觉和光学字符识别(OCR)来读取退伍军人的健康保险卡。如果该机构需要每天读取1000张卡,但是当前模型的准确度为75%,则当前模型每天无法正确读取250张卡。为了提高模型的准确性(例如,提高到85%),该机构可能希望可以被用于训练模型的数据集提高其准确性。在一些实施例中,代表人可以使用本文所述的技术来创建用于改进OCR的合成数据集。然而,在其他实施例中,数据集可以被预先打包并按需提供。
在一些实施例中,经预先打包的合成数据集的列表或其他指示可以经由支持场景生成和/或帧集生成的用户界面来呈现。例如,用户界面可以呈现接受指示一个或多个行业部门的输入的表格。输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示行业部门的输入可以触发表示针对所选择的(多个)行业部门而被预先打包的合成数据集的列表或其他指示。用户界面可以接受指示对一个或多个经预先打包的合成数据集的选择的输入。类似于指示行业部门的输入,指示经预先打包的合成数据集的输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示经预先打包的合成数据集的输入可以使得所选择的经预先打包的合成数据集例如通过下载或其他方式来获得。
不同类型的处理器可以更好地执行与本发明的实施例相关联的不同任务。例如,CPU通常被优化来执行各种不同任务的串行处理,而GPU针对诸如3D可视化、游戏、图像处理、大数据、深度机器学习等应用被优化来执行繁重计算任务的并行处理。由于创建合成数据资产的过程可能会占用大量视觉资源,因此使用GPU可以加快该过程并提高计算效率。然而,GPU可能由于各种原因(包括用于其他任务、成本约束或其他原因)而具有有限的可用性。因此,CPU可以被附加地或备选地使用。这样,需要用于协调资源分配来处理合成数据任务的技术。
在一些实施例中,管理层可以被用于对合成数据任务进行分类,并且可以协调诸如处理器或处理器组(例如,CPU和GPU)的资源分配来处理任务。通常,管理层可以基于任务的分类和/或资源可用性来分配执行用于在CPU或GPU上执行的合成数据任务的请求。在一些实施例中,管理层可以通过按照任务类别和/或用于处理任务的合格资源来对传入的任务进行分类、对经分类的任务进行排队并且基于任务分类、资源可用性或一些其他标准,将经排队的任务路由或以其他方式分配给对应的处理器,来完成该任务。
例如,当管理层接收执行合成数据任务的请求时,管理层可以按任务类别对任务进行分类。支持合成数据创建的任务类别可以包括源资产(例如,3D模型)的生成或指定、源资产的摄取、模拟(例如,第一层和/或第二层参数的标识和变化)、合成数据创建(例如,基于3D模型来绘制图像)、其某个子类别等。一些任务可能是GPU偏爱的,诸如模拟。其他任务可能是CPU偏爱的,诸如变化或摄取。例如,摄取可以包括大量的空闲活动,因此可能需要在CPU上处理摄取任务来避免使GPU空闲。同时,一些任务可能不支持CPU或GPU。这样,诸如此类的一些任务可以根据用于处理任务的合格资源来分类(例如,仅CPU、仅GPU、混合等),并且分类可以基于任务类别。经分类的任务可以被排队来进行处理(例如,在单个队列中、针对每个分类的单独队列中或者其他方式)。
通常,管理层可以使用多种技术来监视资源(例如,CPU和GPU)的可用性,并且将任务路由或以其他方式分配给资源。例如,任务可以基于任务分类、排队(例如,FIFO、LIFO等)、优先级划分方案(例如,将优先级赋予特定帐户或队列)、调度(例如,根据每天、每周、每年等时间改变分配)、资源可用性、一些其他标准或它们的某种组合而被分配。通常,被分类为在CPU上进行处理的任务被分配给CPU,被分类为在GPU上进行处理的任务被分配给GPU,并且混合任务可以被分配给其中一个(例如,基于资源可用性、将优先级赋予可用的GPU等)。
在一些情况下,计算效率可以通过保持GPU加载来提高。这样,管理层可以监视一个或多个GPU来确定GPU何时可用(例如,何时GPU进入待机或挂起模式),并且管理层可以将任务(例如,经分类和/或排队的任务)路由或以其他方式分配到可用GPU来执行。例如,可用GPU可以被分配用于处理基于处理任务的合格资源(例如,将优先级赋予混合任务或仅GPU任务)、基于任务类别(例如,将优先级赋予创建合成数据的请求)、基于请求被接收的时间(例如,将优先级赋予最早排队的队列)、基于队列填充(例如,将优先级赋予最多填充的队列)、基于所估计的完成时间(例如,将优先级赋予被估计执行耗时最长或最短时间的任务)等而被选择的经排队的特定任务。这样,合成数据创建中的任务可以基于各种标准而被路由或以其他方式分配到特定资源(例如,处理器)。
在一些情况下,创建合成数据可能会花费大量时间。例如,客户端可以提交合成数据请求来从所选择的源资产(例如,3D模型)创建50k的合成数据资产(例如,图像)。处理如此大的请求可能涉及执行多个任务并且可能花费数小时的时间。这样,门户可以被提供,即使在开始处理请求之后,该门户也允许请求帐户主动监视SDaaS在处理请求中的进度和/或发布分配资源来处理任务的命令。例如,门户可以支持用于在运行中(on the fly)(例如,中间请求)改变或添加资源(例如,CPU/GPU)或以其他方式协调资源分配的命令。通过在运行中改变资源分配(例如,通过将一批合成数据的创建分配给一个或多个GPU),门户可以允许用户减少处理请求所花费的时间(例如,从10个小时减少到6个小时)。这样,门户可以允许客户端或其他用户将进度的特性可视化和/或影响处理方式。
门户可以提供关于合成数据请求的处理的各种类型的反馈。在其他类型的反馈中,门户可以呈现处理请求的进度的指示(例如,50k图像中的20k被创建)、CPU/GPU使用率、CPU上创建合成数据所花费的平均时间、GPU上创建合成数据所花费的平均时间、剩余的估计时间(例如,基于现有的或估计的创建模式)、对应的服务成本(例如,针对完成请求处理而发生、估计或预测等)或其他信息。例如,门户可以呈现资源消耗或可用性的指示(例如,现有服务水平协议中的可用性、可用于附加收费的资源等)并且可以通过任务分类来细分。在另一示例中,门户可以呈现指示哪个(哪些)资源被分配给哪个请求和/或任务的信息。在又一示例中,门户可以呈现指示到目前为止的资源消耗量的信息(例如,出于计费目的)。这些仅是示例,并且其他类型的反馈也是可能的。
在一些实施例中,门户可以执行用于分配资源的命令,并且即使在请求已开始处理(中间请求)之后,门户也可以支持这样的命令。例如,用于批量创建合成数据资产(例如,来自创建50k资产的请求的20k到30k的资产)的命令可以被执行,并且对应任务可以被分配给特定的处理器(例如,GPU)。以这种方式,用户可以在运行中手动设置或改变资源分配。类似地,用于取消处理请求(例如,创建合成资产)的命令可以被创建。这样,命令接口可以被提供以允许SDaaS(例如,经由自动控制)和/或用户(例如,经由手动控制、选择对应的自动控制等)将处理时间、成本(例如,通过将任务分配为在相对便宜的处理器(诸如CPU)上执行)、输出质量等减少和/或最小化。消耗阈值量的资源(和/或引起阈值成本)可以触发自动停止进一步处理请求、任务、其特定分类等。
本发明的实施例可以支持固有地改进机器学习训练过程,因为合成数据本身可以在机器学习训练中引入新的挑战和机遇。例如,合成数据引入了无限量的训练数据集的可能性。存储训练数据集可能很困难,因为计算存储是有限的资源。绘制资产也需要计算资源。为了解决这些问题,利用合成数据进行机器学习训练可以包括在不必预先绘制和存储资产的情况下,实时地绘制资产。机器学习模型可以使用在运行中生成的合成数据(例如,资产、场景和帧集)来训练,从而避免训练数据集的存储。在这方面,机器学习训练的过程已被改变为并入处理训练数据集的实时生成的能力,该能力通常是非合成数据不需要的。机器学习训练可以包括对API或服务的实时调用,以生成具有所标识的参数的相关训练数据集。对应地,在基于实时生成的机器学习训练合成数据的训练完成之后,训练数据集可以被丢弃。由于不必存储经预绘制的合成数据,因此从存储装置中读取千兆字节的机械过程也被避免。
此外,例如,利用合成数据的机器学习可以被用于解决机器学习偏差的问题。特别地,已观察到由不同机构训练的不同机器学习模型具有与如何训练机器学习模型相关的属性。训练数据的类型在机器学习模型的操作方式中引入了偏差。例如,训练数据集可能在识别白人男性方面具有较高的准确性,而在识别非裔美国女性方面具有较低的准确性,这是因为训练数据集缺少足够的非裔美国女性图像来适当地训练机器学习模型。利用合成数据,非裔美国女性的资产可以被生成,并且被用于训练机器学习模型来消除在机器学习模型在没有足够的非裔美国女性图像的情况下被生成时可能存在的偏差。这样,针对现有机器学习模型的机器学习训练过程可以包括:利用机器训练模型来标识缺陷(例如,用于分类准确度的分类混淆矩阵)并且基于生成解决缺陷的合成图像数据来对模型进行再训练,以生成去除了机器学习模型的偏差的经更新的机器学习训练模型。在一个示例中,用于改进机器学习模型的评估过程可以被标准化,使得数据科学家借助机器学习训练反馈界面,可以访问和查看训练数据集中的缺陷。例如,训练数据集可以被贴标签来帮助标识集群,其中资产参数或场景参数的集群可以被用来生成新的训练数据集,以对机器学习模型进行再训练。对新的训练数据集进行再训练可以包括标识不相关的参数并丢弃不相关的参数、标识相关的参数以及基于分析来自机器学习模型训练结果的度量,添加新的相关的参数。
机器学习模型也可以针对特定场景而被生成、训练和再训练。在较高级别处,模板机器学习模型可以针对一般问题而生成;然而,同一模板机器学习模型可以使用多种不同的训练数据集、以若干不同方式来进行再训练,以解决同一问题的不同特定场景或变化。模板机器学习模型解决了机器学习训练中使用非合成数据可能无法解决的两个挑战。首先,机器学习模型有时可能被定制用于可用的训练数据集,而不是相反地,生成机器学习模型的特定原因决定了待生成的训练数据集。其次,仅使用可用训练数据集进行机器学习训练会导致花费大量精力才能重新利用的不灵活的机器学习模型。相比之下,利用合成资产,机器学习模型指示针对模板机器学习模型而被生成的训练数据集类型、或者基于模板机器学习模型而被生成的专用机器学习模型。
模板机器学习模型可以指代经部分构造或训练的机器学习模型,其可以利用补充训练数据集来将机器学习模型重新用于不同的专用场景而被扩充。例如,面部识别模型可以被训练为模板,但是然后被再训练来容纳特定的相机,其中相机具有已知的伪像或特定位置或配置,伪像或特定位置或配置被引入到再训练数据集中,以专门针对特定相机的经训练的机器学习模型。补充训练数据集可以专门生成来用于训练专用机器学习模型。模板专用的机器学习训练可以包括用于训练模板的界面、为专用训练数据集选择特定的再训练参数以及训练专用机器学习模型。模板机器学习模型和专用机器学习模型的其他变型和组合利用本文描述的实施例而被预期。
附加地,训练数据集可以针对可用于执行机器学习训练的特定硬件而被生成。例如,可以访问GPU处理器的第一客户可以请求并生成合成数据训练数据集,以利用GPU处理器进行理想处理。可以访问CPU处理器的第二客户可以请求并针对CPU处理器生成合成数据训练数据集。可以访问GPU和CPU处理器或与GPU或CPU注意事项无关的第三客户可以简单地请求并据此生成合成数据训练数据集。当前,训练数据集指示在机器学习训练过程期间可以使用哪些处理器,而对于合成数据,以及在一些特定情况下,合成数据和非合成数据的组合可以影响针对机器学习而被生成的合成数据类型。合成数据训练数据将对应于不同类型的处理器的强度或能力,以处理用于机器学习模型训练中的操作的不同类型的训练数据集。
本发明的实施例还支持不同类型的基于混合的机器学习模型。机器学习模型可以利用非合成数据来训练,并且然后通过利用合成数据进行训练来扩充,以填补非合成数据资产。混合训练可以是迭代的或组合的,因为训练可以完全利用非合成数据然后再利用合成数据来执行。备选地,训练可以同时利用非合成数据和合成数据的组合来执行。例如,A至Z变化性机器学习模型可以利用现有的训练数据集进行训练,并且然后通过利用合成数据进行训练来扩充。然而,可以在训练机器学习模型之前首先扩充或填补训练数据集。另一类型的基于混合的训练可以指代仅在合成数据上训练机器学习模型;然而,混合机器学习模型与非合成数据机器学习模型进行比较,或者基于参考非合成数据机器学习模型而被构建。在这方面,最终的基于混合的机器学习模型仅使用合成数据进行训练,但是可以从现有的非合成数据机器学习模型产生的先前机器学习模型训练结果中受益。
对于其中一个信息集是与场景的第一方面相关联的非合成数据,而第二数据集是与场景的第二方面相关联的合成数据的某些类型的场景,合成数据可以进一步被用于生成补充数据。例如,训练数据集可能具有针对夏季的非合成数据,从而使得机器学习模型在夏季的月份中精确,而在一年中的其他月份不精确。同一机器学习模型可以在夏季使用非合成数据来训练,同时使用针对非夏季月份生成的合成数据来同时训练。此外,利用合成数据,存在可以被生成的无限量的训练数据集。这样,本发明的实施例可以支持在线训练和离线训练,其中在高级别处,在线训练指代使用新的训练数据集来连续训练机器学习模型,而离线训练可以指代仅周期性地训练机器学习模型。可以设想,训练可以包括向机器学习模型周期性地馈送非合成数据和合成数据的组合。
本发明的实施例还可以使用与每个资产、场景、帧集或帧集程序包相关联的广泛元数据来改进机器学习模型的训练。在较高级别处,机器学习训练过程可以使用与合成数据相关联的元数据来扩充和训练。这解决了由非合成数据引起的问题,非合成数据包括有限的元数据或不包括元数据,使得机器学习模型无法从训练过程期间,由元数据提供的附加细节中受益。例如,在交叉路口处的碰撞图片可能示出潮湿情况,但不进一步包括下雨多长时间的具体指示、可见性级别的精确量化或特定场景的其他参数。非合成数据通常限于具有对象边界的像素级数据。相比之下,合成数据不仅可以包括有关以上标识的参数的信息,而且可以包括可以帮助机器学习模型正确进行预测的任何相关参数。
此外,与人工干预标记非合成数据相比,合成数据参数被准确地标记。附加的且准确的元数据改进了使用经训练的机器学习模型进行预测的准确性。而且,如上所述,附加元数据支持使用来自附加元数据的细节来生成针对特殊场景的预测机器学习模型。使用附加元数据训练的机器学习模型还可以支持使用机器学习模型改进对预测的查询处理,以及还用于进行此类查询的新颖界面。查询可以基于可用于训练机器学习模型的附加元数据,并且对应的结果可以被提供。可以设想,用于访问、查看附加元数据以及与附加元数据进行交互来进行训练、查询的用户界面和查询结果可以被提供给SDaaS***的用户。
示例操作环境和示意图
参考图1A和图1B,分布式计算***100的组件可以一起操作来提供本文描述的SDaaS的功能性。分布式计算***100支持处理合成数据资产,来生成和处理用于机器学习的训练数据集。在较高级别处,分布式计算支持用于大规模生产训练数据集的分布式框架。特别地,基于包括文件压缩、大规模启用GPU的硬件、非结构化存储和/或分布式骨干网络等构建的分布式计算架构固有地支持以分布式方式提供SDaaS功能性的能力,使得多个用户(例如,设计师或数据管理员)可以同时访问合成数据资产并对其进行操作。
图1A包括客户端设备130A和接口128A、客户端设备130B和接口128B以及客户端设备130C和接口128C。分布式计算***还包括支持SDaaS功能性的若干组件,组件包括资产组装引擎110、场景组装引擎112、帧集组装引擎114、帧集程序包生成器116、帧集程序包存储库118、反馈回路引擎120、众包引擎122、机器学习训练服务124、SDaaS存储库126和种子分类标准140。图1B图示了SDaaS储存库126中存储并且与机器学习训练服务集成在一起的资产126A和帧集126B,以自动访问如下文更详细地描述的资产、场景和帧集。
资产组装引擎110可以被配置为从第一分布式合成数据即服务(SDaaS)上传接口接收第一源资产,并且可以从第二分布式SDaaS上传接口接收第二源资产。第一源资产和第二源资产可以被摄取,其中摄取源资产包括自动计算源资产的资产变化参数的值。例如,图2A包括被摄取到资产存储库(即,资产220)中的源资产210。资产变化参数可编程用于机器学习。资产组装引擎可以生成第一合成数据资产、并且第二合成数据资产,第一合成数据资产包括针对资产变化参数的第一值集合,第二合成数据资产包括针对资产变化参数的第二值集合。第一合成数据资产和第二合成数据资产被存储在合成数据资产存储库中。
分布式SDaaS上传接口(例如,接口128A、128B或128C)与SDaaS集成开发环境(IDE)相关联。SDaaS IDE支持标识源资产的资产变化参数的其他值。这些值与基于本征参数变化和非本征参数变化生成训练数据集相关联,其中本征参数变化和非本征参数变化提供资产和场景的可编程机器学习数据表示。摄取源资产基于机器学习合成数据标准,机器学习合成数据标准包括文件格式和数据集训练架构。文件格式可以指代硬标准,而数据集训练架构可以指代软标准,例如,自动化或手动的人工干预。
参考图2,摄取源资产(例如,源资产202)还包括自动计算源资产的场景变化参数的值,其中场景变化参数可编程用于机器学习。合成数据资产配置文件(profile)可以被生成,其中合成数据资产配置文件包括资产变化参数的值。图2B图示了诸如边界框208、缩略图210、3D可视化212和优化资产214的附加工件。参考图3,上传接口300是示例SDaaS接口,示例SDaaS接口可以支持上传和贴标签用于摄取的源资产。
场景组装引擎112可以被配置为从分布式合成数据即服务(SDaaS)集成开发环境(IDE)中接收对第一合成数据资产的选择和对第二合成数据资产(例如,3D模型)的选择。例如,参考图4,第一层处的资产和资产变化参数410可以被用于生成场景(例如,3D场景),并且第二层处的场景变化参数420被进一步用于根据场景来定义帧集430(例如,图像)。合成数据资产与资产变化参数和场景变化参数相关联,资产变化参数和场景变化参数可以被用于改变合成数据资产和/或所得场景的各个方面。资产变化参数和场景变化参数可编程用于机器学习。场景组装引擎可以接收用于生成合成数据场景的值,其中这些值对应于资产变化参数或场景变化参数。基于这些值,场景组装引擎可以使用第一合成数据资产和第二合成数据资产来生成合成数据场景。
场景组装引擎客户端(例如,客户端设备130B)可以被配置为接收对合成数据资产的查询,其中查询经由SDaaS IDE来接收,生成查询结果合成数据资产并且使得显示基于查询结果合成数据资产而生成的对应合成数据场景。生成合成数据场景可以基于从至少两个场景组装引擎客户端接收的用于场景生成的值。合成数据场景可以与场景预览和元数据相关联地生成。
帧集组装引擎114可以被配置为访问合成数据场景并确定场景变化参数的第一值集合,其中第一值集合被自动确定来生成合成数据场景帧集(例如,基于场景变化生成的图像集合)。帧集组装引擎还可以基于第一值集合来生成合成数据场景帧集,其中合成数据场景帧集至少包括帧集中的第一帧并且存储合成数据场景帧集,第一帧包括基于场景变化参数的值而更新的合成数据场景。场景变化参数的第二值集合被手动选择来生成合成数据场景帧集。第二值集合使用支持机器学习合成数据标准的合成数据即服务(SDaaS)集成开发环境(IDE)来手动选择,机器学习合成数据标准包括文件格式和数据集训练架构。生成合成数据场景帧集包括基于以下来迭代地针对合成数据场景帧集生成帧:基于第一值集合来更新合成数据场景。
帧集程序包生成器116可以被配置为访问帧集程序包生成器配置文件,其中帧集程序包生成器配置文件与第一图像生成设备相关联,其中帧集程序包生成器配置文件包括与第一图像生成设备相关联的已知设备可变性参数。帧集程序包基于帧集程序包生成器配置文件,其中帧集程序包生成器配置文件包括已知设备可变性参数的值。帧程序包包括基于至少两个合成数据场景的类别。生成帧集程序包基于将使用帧集程序包来训练的预期机器学习算法,其中预期机器学习算法在帧集程序包生成器配置文件中被标识。帧集程序包包括为帧集程序包分配值量词(value quantifier)。帧集程序包基于包括合成数据资产的合成数据场景而被生成。
帧集程序包存储库118可以被配置为从帧集程序包查询接口接收对帧集程序包的查询,其中帧集查询接口包括多个帧集程序包类别,基于帧集程序包配置文件来标识查询结果帧集程序包;并且传送查询结果帧集程序包。查询的至少一部分触发自动建议的帧集程序包,其中自动建议的帧集程序包与帧集的合成数据场景相关联,合成数据场景具有合成数据资产。帧集程序包与图像生成设备相关联,其中图像生成设备包括可编程用于机器学习的已知设备可变性参数。查询结果帧集程序包被传送到在分布式计算***上操作的内部机器学习模型训练服务(例如,机器学习训练服务124)或外部机器学习模型训练服务。
反馈回路引擎120可以被配置为访问训练数据集报告,其中训练数据集报告标识具有资产变化参数的值的合成数据资产,其中合成数据资产与帧集相关联。反馈回路引擎120可以被配置为基于训练数据集报告,利用合成数据资产变化参数来更新合成数据资产;并且使用经更新的合成数据资产来更新帧集。值在训练数据集报告中被手动或自动标识,以用于更新帧集。更新帧集被分配值量词。训练数据集报告与在分布式***上操作的内部机器学习模型训练服务或外部机器学习模型训练服务相关联。
众包引擎122可以被配置为:从分布式合成数据即服务(SDaaS)众包接口接收源资产;经由分布式SDaaS众包接口来接收源资产的众包标签;部分地基于众包标签,摄取源资产,其中摄取源资产包括自动计算源资产的资产变化参数的值,其中资产变化参数可编程用于机器学习;以及生成经众包的合成数据资产,经众包的合成数据资产包括资产变化参数的值。针对经众包的合成数据资产分配了值量词。经众包的合成数据资产配置文件包括资产变化参数。参考图5,众包接口500是可以支持众包、上传和贴标签用于摄取的源资产的示例SDaaS接口。
自动建议变化参数
返回图1A,在一些实施例中,针对特定机器学习场景的所建议的变化参数可以被呈现来支持生成帧集程序包。相关的变化参数可以通过种子分类标准140来指定,种子分类标准140将机器学习场景与变化参数的对应相关子集相关联。在经由支持场景生成和/或帧集生成的用户界面(例如,界面128B或128C)标识了特定机器学习场景后,与种子分类标准140中所标识的场景相关联的变化参数子集可以被访问并呈现作为所建议的变化参数。所建议的变化参数中的一个或多个和/或一个或多个附加变化参数可以被选择,帧集组装引擎114可以通过改变所选择的变化参数(例如,资产和/或场景变化参数)来生成帧集(例如,图像),并且帧集程序包生成器116可以使用所生成的帧集来生成帧集程序包。
通常,用户(例如,客户、数据科学家等)可以寻求生成用于训练特定机器学习模型的帧集程序包(即,合成数据集)。在较高级别处,可以提供支持场景生成和/或帧集生成的用户界面(例如,界面128B或128C)。例如,用户界面可以允许用户设计或以其他方式指定3D场景(例如,使用3D建模软件)。用户界面可以允许用户指定一个或多个变化参数,以在为帧集程序包生成不同的帧集(例如,基于3D场景的图像)时进行改变。潜在变化参数的数量在理论上是无限的。然而,并非所有参数都可以被改变来产生将改进针对给定场景的机器学习模型的准确性的帧集程序包。
在诸如面部识别的一些场景中,诸如人体形状、纬度、经度、太阳角、一天中的时间以及相机视角和位置的变化参数可能与改进对应机器学习模型的准确性有关。在其他场景(诸如,使用计算机视觉和光学字符识别(OCR)来读取健康保险卡)中,这些变化参数中的一些是不相关的。更具体地,一些变化参数(诸如纬度、经度、太阳角和一天中的时间)可能与基于OCR的场景无关,而诸如相机视角、相机位置和A至Z变化性的其他参数可能相关。种子分类标准140可以维持机器学习场景和相关变化参数之间的关联,以呈现针对特定场景的所建议的变化参数。
种子分类标准140将机器学习场景与场景的相关变化参数相关联。例如,种子分类标准140可以包括各种机器学习场景(例如,OCR、面部识别、视频监控、垃圾邮件检测、产品推荐、营销个性化、欺诈检测、数据安全、物理安全筛查、金融交易、计算机辅助诊断、在线搜索、自然语言处理、智能汽车控件、物联网控件等)的列表或其他标识。对于任何特定机器学习场景,相关的变化参数集合(例如,资产变化参数、场景变化参数等)可以被改变来产生可以改进针对场景的对应机器学习模型的帧集程序包。种子分类标准140可以将一个或多个机器学习场景与变化参数的对应相关子集相关联。例如,跨所有场景的变化参数可以被分配唯一的标识符,并且种子分类标准140可以维持指示每个场景的相关变化参数的唯一标识符的列表。
在一些实施例中,支持场景生成和/或帧集生成的用户界面(例如,界面128B或128C)可以支持对期望的机器学习场景的标识(例如,基于指示期望场景的用户输入)。与种子分类标准140中的所标识的场景相关联的变化参数的子集的列表或其他指示可以经由用户界面被访问并且被呈现为所建议的变化参数。例如,用户界面可以包括接受指示一个或多个机器学习场景的输入的表格。输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示机器学习场景的输入可以触发在种子分类标准140中维持的相关变化参数的查找和呈现。相关变化参数可以被呈现为针对所选择的机器学习场景的所建议的变化参数的列表或其他指示。用户界面可以接受输入,输入指示对所建议的变化参数中的一个或多个和/或一个或多个附加变化参数的选择。类似于与指示机器学习场景的输入,指示所选择的变化参数的输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示所选择的变化参数的输入可以由帧集组装引擎114用来通过改变所选择的变化参数来生成帧集(例如,图像),并且帧集程序包生成器116可以利用所生成的帧集来生成帧集程序包。例如,帧集程序包可以通过下载或其他方式来获得。
通常,种子分类标准140可以是预定的和/或可适配的。在种子分类标准140是可适配的实施例中,反馈回路引擎120可以跟踪针对每个机器学习场景的所选择的变化参数。反馈回路引擎120可以基于针对特定帧集程序包的所选择的变化参数与针对对应机器学习场景的所建议的变化参数的比较来更新种子分类标准140。变化参数可以以各种方式,在种子分类标准140中从针对特定场景的相关联变化参数的列表或其他指示中添加或移除。例如,变化参数可以基于确定针对特定帧集生成请求的所选择的变化参数与针对对应机器学习场景的种子分类标准140中的所建议的变化参数不同而被添加或移除。对种子分类标准140的该更新可以基于针对单个请求、针对阈值数量的请求、大多数请求或其他合适标准的所确定的差异来执行。这样,在这些实施例中,种子分类标准是不断发展和自我修复的。
针对常见机器学习场景的经预先打包的合成数据集
在一些实施例中,针对常见或预期机器学习场景的合成数据集(例如,帧集程序包)可以通过在客户或其他用户请求数据集之前创建数据集来进行预先打包。用户界面(例如,界面128B或128C)可以被提供,该用户界面包括允许用户指定期望场景的表格或其他合适的工具。例如,表格可以允许用户指定行业部门和部门内的特定场景。作为响应,针对该行业和场景的合成数据的可用程序包的表示可以被呈现,用户可以选择可用程序包,并且所选择的程序包可以例如通过下载或其他方式来获得。
通常,针对任何数量的机器学习场景的合成数据集可以被预先打包。例如,合成数据集可以针对重AI行业(诸如政府、医疗保健、零售、石油和天然气、游戏、以及金融)中的一些常见或预期场景而被预先打包。通过将诸如此类的合成数据集预先打包,计算资源的大量消耗可以被避免,否则该计算资源将以其他方式被用于按需生成数据集。
在一些实施例中,经预先打包的合成数据集的列表或其他指示可以经由支持场景生成和/或帧集生成的用户界面(例如,界面128B或128C)来呈现。例如,用户界面可以呈现表格,表格接受指示一个或多个行业部门的输入。输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示行业部门的输入可以触发针对所选择的(多个)行业部门的经预先打包的合成数据集的列表或其他指示的呈现。用户界面可以接受指示对一个或多个经预先打包的合成数据集的选择的输入。类似于指示行业部门的输入,指示经预先打包的合成数据集的输入可以经由文本框、下拉菜单、单选按钮、复选框、交互式列表或其他合适的输入。指示经预先打包的合成数据集的输入可以使得所选择的经预先打包的合成数据集例如通过下载或其他方式来获得。
合成数据任务的分类和资源分配的协调
现在转向图6,图6图示了示例环境600,在示例环境600中,执行合成数据任务的请求可以被处理。环境600的组件可以在分布式计算***内操作,以提供针对本文描述的SDaaS的功能性。环境600支持处理合成数据任务,诸如源资产(例如,3D模型)的生成或指定、源资产的摄取、模拟(例如,第一层和/或第二层参数的标识和变化)、合成数据资产的创建(例如,基于3D模型绘制图像)等。
环境600包括任务分类器610、CPU队列620、GPU队列622、混合队列624、调度器630和负载监视器660(被统称为管理层)。在较高级别处,管理层可以接收执行合成数据任务的请求。管理层对任务进行分类,并且将它们路由到处理器组(例如,CPU 640或GPU650)来执行。以该方式,管理层在CPU 640和GPU 650之间协调资源分配来处理合成数据任务。环境600仅是一个示例环境,并且变型是可能的。例如,尽管本文的实施例指代CPU和GPU之间的分配协调,但是环境600可以包括任何合适的处理器/架构(例如,CPU、GPU、ASIC、FPGA等),并且对应分配可以被协调。
任务分类器610接收执行合成数据任务的传入请求。任何给定的请求可以对应于一个或多个合成数据任务。例如,创建包括100k合成数据资产(例如,图像)的帧集程序包的请求可以被分解为任意数量的合成数据任务。在一个示例中,请求可以被分解为合成数据任务,合成数据任务分批次创建合成数据资产(例如,1k、5k、10k等批次),并且合成数据任务可以被分配给特定处理器(或处理器组)来生成对应批次的合成数据资产。更一般地,任何传入请求可以被分解为对应合成数据任务集合。以这种方式,任务分类器610可以基于所接收的请求来生成一个或多个合成数据任务。
任务分类器610通过任务类别、用于处理任务的合格资源或一些其他标准来对合成数据任务进行分类。例如,任务分类器可以标识任务的类别以及用于处理该类别中的任务的对应合格资源。在一个示例中,与摄取合成数据资产有关的合成数据任务可以被分类为仅在CPU上处理(例如,避免使得GPU空闲),或者可以被分类为混合式(例如,有资格在CPU或GPU上处理)。在另一示例中,用于创建合成数据资产(例如,绘制来自源资产的图像)的合成数据任务可以被分类为仅在GPU上处理(例如,以将处理时间最小化),或者被分类为混合式(例如,有资格在CPU或GPU上处理)。当然,这些分类仅是示例,并且任何其他分类方案可以被实现。任务类别和/或对应的合格资源可以是预定的、学习的等。
在一些实施例中,任务分类器610可以在一个或多个队列中将合成数据任务排队。在一个示例中,合成数据任务可以被填充到单个队列中,并且调度器630可以从队列中选择用于路由或分配在CPU 640或GPU 650上处理的任务(例如,基于指示任务应被分配给哪个资源的任务的某个性质或其他特性)。在另一示例中,合成数据任务可以被填充到多个队列中,诸如CPU队列620、GPU队列622和混合队列624。在后一示例中,被分类为仅在CPU 640上处理的合成数据任务被放置在CPU队列620中,被分类为仅在GPU 650上处理的合成数据任务被放置在GPU队列622中,并且被分类为在CPU 640或GPU650上处理的合成数据任务被放置在混合队列624中。应理解,队列和/或任务性质的使用仅是示例实现,并且其他技术也可以用于指示任务应被分配给哪个(哪些)资源。
在图6所示的实施例中,调度器630从CPU队列620、GPU队列622和混合队列624中选择合成数据任务,并且将任务路由或以其他方式分配给资源(例如,CPU 640或GPU 650)来进行处理。各种标准可以被用来指示应分配哪个资源。例如,资源可以基于任务分类(例如,被分类为摄取任务的任务可以被分配给CPU 640)、基于排队(例如,基于FIFO,来自CPU队列620的任务可以被分配给CPU640)、基于优先级方案(例如,将优先级赋予特定帐户或队列)、基于调度(例如,根据日、周、年等的时间来改变分配)、基于资源可用性、基于其他一些标准或其某个组合来分配。CPU 640和GPU 650可以按任何合适的方式来处理经分配和/或路由的任务。
在一些实施例中,负载监视器660从CPU 640和/或GPU 650接收遥测或某种其他健康或状态信号,遥测或某种其他健康或状态信号提供资源可用性的指示。这样,负载监视器660可以确定何时CPU或GPU可用。负载监视器660可以向调度器630提供特定资源可用的指示,并且调度器630可以在确定哪个资源来分配特定任务时使用该信息。例如,负载监视器660可以确定何时GPU可用(例如,何时GPU进入待机或挂起模式),并且可以向调度器630提供对应信号或其他指示。因此,调度器630可以将特定任务(例如,经分类和/或排队的任务)路由或以其他方式分配给可用GPU来执行。用于路由或分配的任务可以基于各种标准来选择(例如,从队列中),各种标准包括用于处理任务的合格资源的分类(例如,仅GPU)、基于队列(例如,将优先级赋予混合队列624或GPU队列622)、基于任务类别(例如,将优先级赋予创建合成数据的请求)、基于请求被接收的时间(例如,将优先级赋予跨多个队列最早排队的任务)、基于队列填充(例如,将优先级赋予最多填充的队列)、基于所估计的完成时间(例如,将优先级赋予被估计要花费最长或最短时间来执行的排队任务)等。用于将任务分配给特定资源的这些和其他变型是可能的。这样,合成数据创建中的任务可以被路由或以其他方式分配给特定资源来进行处理。
针对合成数据任务的进度门户
图7图示了示例环境700,在示例环境700中,执行合成数据任务的请求可以被管理。环境700的组件可以在分布式计算***内操作,以提供针对本文描述的SDaaS的功能性。环境700支持处理合成数据任务,诸如源资产(例如,3D模型)的生成或指定、源资产的摄取、模拟(例如,第一层和/或第二层参数的标识和变化)、合成数据资产的创建(例如,基于3D模型来绘制图像)等。环境700的组件可以与图6中的环境600的组件相对应。例如,图7的任务分类器710、CPU队列720、GPU队列722、混合队列724、调度器730和负载监视器760可以分别对应于图6的任务分类器610、CPU队列620、GPU队列622、混合队列624、调度器630和负载监视器660。尽管使用CPU和GPU描述了本文的实施例,但是环境700可以包括任何合适的处理器/架构(例如,CPU、GPU、ASIC、FPGA等)和对应队列。
环境700在管理层中包括进度门户772。在较高级别处,进度门户772允许客户端设备705在处理合成数据请求时主动监视SDaaS进度。此外,即使在处理对应请求开始之后,进度门户772也允许客户端设备705发布用于分配资源来处理合成数据任务的命令。进度门户772可以提供指示处理请求中的进度的各种类型的反馈。在一些实施例中,进度门户772可以接受并执行改变或添加资源来处理请求(或对应任务)或者以其他方式在运行中协调资源分配(例如,中间请求)的命令。
在图7所示的实施例中,进度门户772包括反馈组件772和命令组件774。进度门户772被通信地耦合到管理层中的组件和/或CPU740和GPU 750。这样,反馈组件可以借助管理层并且借助在CPU 740和GPU 750上执行来监视特定合成数据请求和对应合成数据任务的进度。反馈组件772可以呈现(或以其他方式引起在客户端设备705上呈现)有关合成数据请求的处理的信息。在其他类型的反馈中,反馈组件772可以呈现请求处理的总体进度的指示(例如,完成百分比、所创建的合成数据资产的数量、剩余待创建的合成数据资产的数量等)、CPU/GPU使用情况、在CPU上创建合成数据所花费的平均时间、在GPU上创建合成数据所花费的平均时间、剩余估计时间(例如,基于现有的或所估计的创建模式)、对应的服务成本(例如,为完成处理请求而产生、估计或预测等)或者其他信息。以这种方式,发布特定合成数据请求的用户或帐户可以监视处理请求的进度。
在一些实施例中,命令组件774可以与和客户端设备705相关联的命令接口通信。用户可以使用命令接口来输入命令,并且命令可以被传输到命令组件774来执行。命令组件774可以接受并执行各种命令,包括用于分配资源来处理合成数据请求、批量创建合成资产或处理某个其他合成数据请求、改变或自动瞄准特定结果(例如,处理时间、成本、输出质量等)的命令。即使在开始处理请求(中间请求)之后,命令组件774也可以支持命令的执行。
例如,命令组件774可以接受并执行用于分配资源来处理合成数据请求的命令。作为非限制性示例,处理创建大量合成数据资产的请求可能需要数小时。虽然反馈组件772可以提供关于请求处理的信息(进度、所分配的资源、资源消耗等),但是命令组件774可以允许用户影响请求被处理的方式。例如,假设已开始处理生成50k资产的请求并且已使用CPU740生成了10k资产。用户可能更喜欢加快处理速度。在这种情况下,用户可以使用GPU 750,经由命令组件774来发布生成剩余合成数据资产的命令。命令组件774可以以各种方式来执行这样的命令。例如,命令组件774可以标识尚未被路由或分配给CPU 740的对应合成数据任务(例如,通过标识在CPU队列720和/或混合队列724中排队的合成数据任务),并且可以将合成数据任务重新分类为在GPU 750上处理(例如,通过将合成数据任务移动到GPU队列722)。这样,调度器730可以从GPU队列722中拾取合成数据任务,并且将其路由或以其他方式分配为在GPU 750上处理。以此方式,用户可以通过经由进度门户770发布命令来在运行中手动改变资源分配(例如,任务分类)。
在一些实施例中,命令组件774可以支持改变或自动瞄准特定结果的命令。例如,命令接口可以允许用户向命令组件774发布命令来减少或增加(或最小化或最大化)所得出的处理特性,诸如处理时间、成本、输出质量等。以该方式,命令接口可以触发命令组件774来将处理时间减少和/或最小化(例如,通过将合成数据任务在运行中分配给GPU 750)、将成本减少和/或最小化(例如,通过将任务分配为在相对便宜的处理器(诸如CPU)上执行,通过自动减小所生成的合成数据资产的大小或质量等)等。在一些实施例中,用户可以发布直接设置输出质量(例如,所生成的合成数据资产的大小或质量)的命令。附加地或备选地,消耗阈值量的资源(和/或发生阈值成本)可以触发自动停止请求、任务、其特定分类等的进一步处理。阈值可以被预定义(例如,通过服务水平协议、通过传入请求等)并且可以在运行中被改变(例如,通过所接收的命令)。在一些实施例中,命令可以被发布来停止对请求、任务、其特定分类等的进一步处理。这些只是可以被实现的可能命令的几个示例。
示例流程图
参考图8-图14,提供了流程图,流程图图示了用于实现分布式计算***合成数据即服务的方法。方法可以使用本文描述的分布式计算***来执行。在实施例中,一个或多个计算机存储介质具有体现在其上的计算机可执行指令,计算机可执行指令在由一个或多个处理器执行时,可以使得一个或多个处理器在分布式计算***100中执行方法。
图8是图示了根据实施例的用于实现分布式计算***资产组装引擎的过程800的流程图。初始在框810处,第一源资产从第一分布式合成数据即服务(SDaaS)上传接口被接收。在框820处,第二源资产从第二分布式SDaaS上传接口被接收。在框830处,第一源资产和第二源资产被摄取。摄取源资产包括自动计算源资产的资产变化参数的值,其中资产变化参数可编程用于机器学习。在框840处,包括资产变化参数的第一值集合的第一合成数据资产被生成。在框850处,包括资产变化参数的第二值集合的第二合成数据资产被生成。在框860处,第一合成数据资产和第二合成数据资产被存储在合成数据资产存储库中。
图9是图示了根据实施例的用于实现分布式计算***场景组装引擎的过程900的流程图。初始在框910处,对第一合成数据资产的选择和对第二合成数据资产的选择从分布式合成数据即服务(SDaaS)集成开发环境(IDE)被接收。合成数据资产与资产变化参数和场景变化参数相关联,资产变化参数和场景变化参数可编程用于机器学习。在框920处,用于生成合成数据场景的值被生成。值对应于资产变化参数或场景变化参数。在框930处,基于值,合成数据场景使用第一合成数据资产和第二合成数据资产来生成。
图10是图示了根据实施例的用于实现分布式计算***帧集组装引擎的过程1000的流程图。初始在框1010处,合成数据场景被访问。在框1020处,场景变化参数的第一值集合被确定。第一值集合被自动确定来生成合成数据场景帧集。在框1030处,合成数据场景帧集基于第一值集合来生成。合成数据场景帧集至少包括帧集中的第一帧,第一帧包括基于场景变化参数的值而被更新的合成数据场景。在框1040处,合成数据场景帧集被存储。
图11是图示了根据实施例的用于实现分布式计算帧集程序包生成器的过程1100的流程图。在框1110处,帧集程序包生成器配置文件被访问。帧集程序包生成器配置文件与第一图像生成设备相关联。帧集程序包生成器配置文件包括与第一图像生成设备相关联的已知设备可变性参数。在框1120处,帧集程序包基于帧集程序包生成器配置文件而被生成。帧集程序包生成器配置文件包括已知设备可变性参数的值。在框1130处,帧集程序包被存储。
图12是图示了根据实施例的用于实现分布式计算***帧集程序包存储库的过程1200的流程图。在框1210处,对帧集程序包的查询从帧集程序包查询接口被接收。帧集查询接口包括多个帧集程序包类别。在框1220处,查询结果帧集程序包基于帧集程序包配置文件来标识。在框1230处,查询结果帧集程序包被传送。
图13是图示了根据实施例的用于实现分布式计算***反馈回路引擎的过程1300的流程图。在框1310处,训练数据集报告被访问。训练数据集报告标识具有资产变化参数值的合成数据资产。合成数据资产与帧集相关联。在框1320处,基于训练数据集报告,具有合成数据资产变化的合成数据资产被更新。在框1330处,帧集使用经更新的合成数据资产来更新。
图14是图示了根据实施例的用于实现分布式计算***众包引擎的过程1400的流程图。在框1410处,源资产从分布式合成数据即服务(SDaaS)众包接口被接收。在框1420处,针对源资产的众包标签经由分布式SDaaS众包接口被接收。在框1430处,部分地基于众包标签,源资产被摄取。摄取源资产包括自动计算源资产的资产变化参数的值。资产变化参数可编程用于机器学习。在框1440处,包括资产变化参数值的众包合成数据资产被生成。
图15是图示了根据本发明的实施例的用于建议变化参数的过程1500的流程图。在框1510处,从多个机器学习场景中对机器学习场景的选择从分布式合成数据即服务(SDaaS)接口被接收。在框1520处,与所选择的机器学习场景相关联的变化参数子集从种子分类标准被取回,种子分类标准将多个机器学习场景与多个变化参数的对应子集相关联。在框1530处,将变化参数的子集呈现为针对所选择的机器学习场景的所建议的变化参数在SDaaS接口上引起。在框1540处,从多个变化参数中对变化参数的选择和相关联的帧集生成请求从SDaaS接口被接收。在框1550处,对应帧集程序包利用改变了所选择的变化参数的帧来生成。
图16是图示了根据本发明的实施例的用于将合成数据集预先打包的过程1600的流程图。在框1610处,为训练第一机器学习场景而定制的合成数据集被预先打包。在框1620处,从多个机器学习场景中对第一机器学习场景的选择从分布式合成数据即服务(SDaaS)接口被接收。在框1630处,在SDaaS接口上呈现针对所选择的机器学习场景而经预先打包的合成数据集的可用性的指示。在框1640处,下载经预先打包的合成数据集的选择经由SDaaS接口被接收。在框1650处,对经预先打包的合成数据集的访问被提供。
图17是图示了根据本发明的实施例的用于协调资源分配的过程1700的流程图。在框1710处,执行合成数据任务的请求从分布式合成数据即服务(SDaaS)接口被接收。在框1720处,资源分配通过标识用于处理合成数据任务的合格资源的对应类别并且将合成数据任务路由到合格资源类别中的第一资源来协调。在框1730处,合成数据任务在第一资源上被执行。
图18是图示了根据本发明的实施例的用于在具有不同架构的处理器组之间协调资源分配的过程1800的流程图。在框1810处,执行合成数据任务的请求从分布式合成数据即服务(SDaaS)接口被接收。在框1820处,具有不同架构的处理器组之间的资源分配通过从各组中标识用于执行合成数据任务的对应合格处理器组来协调,对应合格处理器组将合成数据任务分配给合格处理器组中的第一处理器。在框1830处,合成数据任务在第一处理器上被执行。
图19是图示了根据本发明的实施例的用于改变资源分配的过程1900的流程图。在框1910处,呈现进度门户,进度门户被配置为监视分布式合成数据即服务(SDaaS)在处理执行相关联的合成数据任务的请求中的进度。在框1920处,改变用于处理合成数据任务的资源分配的命令经由进度门户的命令接口被接收。在框1930处,命令通过以下来执行:从合成数据任务中标识被分类为利用第一资源进行处理并且尚未被路由来处理的合成数据任务子集,并且将合成数据任务的子集重新分类为在第二资源上进行处理。
图20是图示了根据本发明的实施例的用于批量处理合成数据任务的过程2000的流程图。在框2010处,呈现进度门户,进度门户被配置为监视SDaaS在处理执行合成数据任务的请求中的进度。在框2020处,批量处理合成数据任务的命令经由进度门户的命令接口来接收。在框2030处,命令通过从执行合成数据任务的请求中得出多个经批量处理的合成数据任务并且将多个经批量处理的合成数据任务分类为处理来执行。
图21是图示了根据本发明的实施例的用于再训练机器学习模型的过程2100的流程图。在框2110处,机器学习模型被访问。在框2120处,多个合成数据资产被访问,其中合成数据资产与可编程用于机器学习的资产变化参数相关联。在框2130处,机器学习模型使用多个合成数据资产而被再训练。
有利地,本文所述的实施例改进了用于使用分布式计算***,基于提供合成数据即服务来生成训练数据集的计算功能和操作。特别地,对计算功能和操作的改进与基于SDaaS操作的大规模生产训练数据集的分布式基础设施相关联。例如,基于SDaaS操作,手动开发(例如,标记和贴标签)和细化(例如,搜索)训练数据集所需的计算操作被避免,SDaaS操作使用合成数据资产来自动开发训练数据集并且基于训练数据集报告来自动细化训练数据集,训练数据集报告指示将在机器学习训练服务中改进机器学习模型的附加合成数据资产或场景。
此外,训练数据集的存储和取回使用在同一分布式计算***中操作的内部机器学习训练服务来改进,从而减轻了计算开销。SDaaS操作基于引擎的非常规布置和针对SDaaS***的步骤的有序组合所定义的非常规规则集合来实现。在这方面,SDaaS解决了由手动开发机器学习训练数据集引起的问题,并且改进了在分布式计算***中训练机器学习模型的现有过程。总体而言,这些改进还导致更少的CPU计算、更小的存储器需求以及在生成和利用机器学习训练数据集方面的更大灵活性。
本发明的示例实施例
因此,本发明的一个示例实施例提供了分布式计算***资产组装引擎。资产组装引擎被配置为从第一分布式合成数据即服务(SDaaS)上传接口接收第一源资产。资产组装引擎还被配置为从第二分布式SDaaS上传接口接收第二源资产。资产组装引擎还被配置为摄取第一源资产和第二源资产。摄取源资产包括自动计算针对源资产的资产变化参数的值。资产变化参数可编程用于机器学习。资产组装引擎还被配置为生成第一合成数据资产,第一合成数据资产包括针对资产变化参数的第一值集合。资产组装引擎还被配置为生成第二合成数据资产,第二合成数据资产包括针对资产变化参数的第二值集合。资产组装引擎还被配置为将第一合成数据资产和第二合成数据资产存储在合成数据资产存储库中。
本发明的另一示例实施例提供了分布式计算***场景组装引擎。场景组装引擎被配置为从分布式合成数据即服务(SDaaS)集成开发环境(IDE)接收对第一合成数据资产的选择和对第二合成数据资产的选择。合成数据资产与资产变化参数和场景变化参数相关联。资产变化参数和场景变化参数可编程用于机器学习。引擎还被配置为接收用于生成合成数据场景的值。值对应于资产变化参数或场景变化参数。场景组装引擎还被配置为基于值,使用第一合成数据资产和第二合成数据资产来生成合成数据场景。
本发明的另一示例实施例提供了分布式计算***帧集组装引擎。帧集组装引擎被配置为访问合成数据场景。帧集组装引擎还被配置为确定针对场景变化参数的第一值集合。第一值集合被自动确定来生成合成数据场景帧集。帧集组装引擎还被配置为基于第一值集合来生成合成数据场景帧集。合成数据场景帧集至少包括帧集中的第一帧,第一帧包括基于针对场景变化参数的值而被更新的合成数据场景。帧集组装引擎还被配置为存储合成数据场景帧集。
本发明的另一示例实施例提供了分布式计算***帧集程序包生成器。帧集程序包生成器被配置为访问帧集程序包生成器配置文件。帧集程序包生成器配置文件与第一图像生成设备相关联。帧集程序包生成器配置文件包括与第一图像生成设备相关联的已知设备可变性参数。帧集程序包生成器还被配置为基于帧集程序包生成器配置文件来生成帧集程序包。帧集程序包生成器配置文件包括已知设备可变性参数的值。帧集程序包生成器还被配置为存储帧集程序包。
本发明的另一示例实施例提供了分布式计算***帧集程序包存储库。帧集程序包存储库被配置为从帧集程序包查询接口接收对帧集程序包的查询。帧集查询接口包括多个帧集程序包类别。引擎还被配置为基于帧集程序包配置文件来标识查询结果帧集程序包。引擎还配置为传送查询结果帧集程序包。
本发明的另一示例实施例提供了分布式计算***反馈回路引擎。反馈回路引擎被配置为访问训练数据集报告。训练数据集报告标识具有资产变化参数值的合成数据资产。合成数据资产与帧集相关联。反馈回路引擎还被配置为基于训练数据集报告,利用合成数据资产变化来更新合成数据资产。反馈引擎还被配置为使用经更新的合成数据资产来更新帧集。
本发明的另一示例实施例提供了分布式计算***众包引擎。众包引擎被配置为从分布式合成数据即服务(SDaaS)众包接口接收源资产。众包引擎还被配置为经由分布式SDaaS众包接口来接收源资产的众包标签。众包引擎还被配置为部分基于众包标签来摄取源资产。摄取源资产包括自动计算源资产的资产变化参数的值。资产变化参数可编程用于机器学习。众包引擎还被配置为生成经众包的合成数据资产,经众包的合成数据资产包括资产变化参数的值。
示例分布式计算环境
现在参考图22,图22图示了可以在其中采用本公开的实现的示例分布式计算环境2200。特别地,图22示出了分布式计算***合成数据即服务在云计算平台2210中的高级架构,其中***支持软件组件的无缝修改。应当理解,本文描述的该布置和其他布置仅作为示例来阐述。例如,如上所述,本文描述的许多元素可以被实现为分立组件或分布式组件或与其他组件结合,并且以任何合适的组合和位置来实现。除了所示的布置和元素之外或代替之,还可以使用其他布置和元素(例如,机器、接口、功能、命令和功能分组等)。
数据中心可以支持分布式计算环境2200,分布式计算环境2200包括云计算平台2210、机架2220和机架2220中的节点2230(例如,计算设备、处理单元或刀片)。***可以利用跨不同数据中心和地理区域运行云服务的云计算平台2210来实现。云计算平台2210可以实现结构控制器2240组件来供应和管理对云服务的资源分配、部署、升级和管理。通常,云计算平台2210用于以分布式方式存储数据或运行服务应用。数据中心中的云计算基础设施2210可以被配置为托管和支持特定服务应用的端点的操作。云计算基础设施2210可以是公共云、私有云或专用云。
节点2230可以利用在节点2230上运行所定义的软件堆栈的主机2250(例如,操作***或运行时环境)来配置。节点2230还可以被配置为在云计算平台2210内执行专用功能性(例如,计算节点或存储节点)。节点2230被分配来运行租户的服务应用的一个或多个部分。租户可以指代利用云计算平台2210的资源的客户。云计算平台2210的支持特定租户的服务应用组件可以被称为租户基础设施或租户(tenancy)。术语服务应用、应用或服务在本文中可互换使用,并且泛指在数据中心之上运行的、或访问数据中心内的存储装置和计算设备位置的任何软件或软件部分。
当节点2230支持多于一个的单独服务应用时,节点2230可以被分割为虚拟机(例如,虚拟机2252和虚拟机2254)。物理机也可以同时运行单独的服务应用。虚拟机或物理机可以被配置为由云计算平台2210中的资源2260(例如,硬件资源和软件资源)所支持的个性化计算环境。可以预期,资源可以针对特定服务应用来配置。此外,每个服务应用可以被划分为功能部分,使得每个功能部分能够在单独虚拟机上运行。在云计算平台2210中,多个服务器可以被用来运行服务应用并在集群中执行数据存储操作。特别地,服务器可以独立地执行数据操作,但是作为被称为集群的单个设备而公开。集群中的每个服务器可以被实现为节点。
客户端设备2280可以被链接到云计算平台2210中的服务应用。客户端设备2280可以是任何类型的计算设备,其可以对应于例如参考图22描述的计算设备2200。客户端设备2280可以被配置为向云计算平台2210发布命令。在实施例中,客户端设备2280可以借助虚拟互联网协议(IP)和负载均衡器或将通信请求定向到云计算平台2210中的指定端点的其他方式来与服务应用进行通信。云计算平台2210的组件可以通过网络(未示出)彼此通信,网络可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。
示例计算环境
在简要描述了本发明的实施例的概述之后,以下描述可以在其中实现本发明的实施例的示例性操作环境,以为本发明的各个方面提供一般上下文。首先特别参考图23,用于实现本发明的实施例的一个示例性操作环境被示出并且被总体上指定为计算设备2300。计算设备2300仅是合适计算环境的一个示例并且不旨在暗示对本发明的使用范围或功能性的任何限制。计算设备2300也不应被解释为具有与所示出的组件中的任一个或组合有关的任何相关性或要求。
本发明可以在计算机代码或机器可用指令的一般上下文中被描述,计算机代码或机器可用指令包括由计算机或其他机器(诸如个人数据助理或其他手持式设备)执行的计算机可执行指令,诸如程序模块。通常,包括例程、程序、对象、组件、数据结构等的程序模块指代执行特定任务或实现特定抽象数据类型的代码。本发明可以在包括手持式设备、消费电子产品、通用计算机、更多专业计算设备等的各种***配置中实践。本发明还可以在分布式计算环境中实践,在分布式计算环境中,任务由远程处理设备执行,远程处理设备借助通信网络来链接。
参考图23,计算设备2300包括直接或间接耦合以下设备的总线2310:存储器2312、一个或多个处理器2314、一个或多个呈现组件2316、输入/输出端口2318、输入/输出组件2320和例示性电源2322。总线2310表示可以是一个或多个总线(诸如地址总线、数据总线或其组合)。为了概念上的清楚起见,图23的各个框用线来示出,并且还预期了所描述的组件和/或组件功能性的其他布置。例如,可以考虑将诸如显示设备的呈现组件视为I/O组件。而且,处理器具有存储器。我们认识到这是本领域的本质,并且重申,图23的图仅说明可以结合本发明的一个或多个实施例使用的一个示例性计算设备。在“工作站”、“服务器”、“膝上型电脑”、“手持式设备”等类别之间未进行区分,因为所有这些都预期在图23的范围内并指代“计算设备”。
计算设备2300通常包括各种计算机可读介质。计算机可读介质可以是可以由计算设备2300访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能磁盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储设备或者可以用于存储所需信息并且可以由计算设备2300访问的任何其他介质。计算机存储介质本身不包括信号。
通信介质通常在诸如载波或其他传输机制的调制数据信号中体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指具有以将信息编码在信号中的方式来设置或改变其一个或多个特性集的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其他无线介质的无线介质。以上任何内容的组合也应包括在计算机可读介质的范围内。
存储器2312包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移除的、不可移除的或其组合。示例性硬件设备包括固态存储装置、硬盘驱动装置、光盘驱动装置等。计算设备2300包括一个或多个处理器,一个或多个处理器从诸如存储器2312或I/O组件2320的各种实体读取数据。(多个)呈现组件2316向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。
I/O端口2318允许计算设备2300被逻辑耦合到包括I/O组件2320的其他设备,其中一些I/O组件2320可以内置。例示性组件包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪、打印机、无线设备等。
参考分布式计算***合成数据即服务,分布式计算***合成数据即服务组件指代用于提供合成数据即服务的集成组件。集成组件指代支持***内功能性的硬件架构和软件框架。硬件架构指代物理组件及其相互关系,并且软件框架指代提供可以使用设备上体现的硬件来实现的功能性的软件。
基于端到端软件的***可以在***组件内操作,以操作计算机硬件来提供***功能性。在较低级别处,硬件处理器执行从给定处理器的机器语言(也被称为机器代码或本机)指令集中选择的指令。处理器识别本机指令并执行与例如逻辑、控制和存储器操作有关的对应低级别功能。使用机器代码编写的低级别软件可以为高级别软件提供更复杂的功能性。如本文所使用的,计算机可执行指令包括任何软件,包括以机器代码编写的低级别软件、诸如应用程序软件的较高级别软件及其任何组合。在这方面,***组件可以管理资源并为***功能性提供服务。对于本发明的实施例,可以预期任何其他变型及其组合。
作为示例,分布式计算***合成数据即服务可以包括API库,API库包括指代例程、数据结构、对象类的规范,并且变量可以支持设备的硬件架构与分布式计算***合成数据即服务的软件框架之间的交互。这些API包括针对分布式计算***合成数据即服务的配置规范,使得其中的不同组件可以在如本文所述的分布式计算***合成数据即服务中彼此通信。
已标识了本文中使用的各种组件,应当理解,在本公开的范围内,可以采用任何数量的组件和布置来实现期望的功能性。例如,为了概念上的清楚起见,图中所描绘的实施例中的组件用线来示出。这些组件和其他组件的其他布置也可以实现。例如,尽管一些组件被描绘为单个组件,但是本文描述的许多元件可以被实现为分立组件或分布式组件或与其他组件结合,并且以任何合适的组合和位置来实现。某些元素可以被完全省略。此外,如下所述,本文中被描述为由一个或多个实体执行的各种功能可以由硬件、固件和/或软件来执行。例如,各种功能可以通过处理器执行存储器中存储的指令来执行。这样,除了所示出的布置和元素之外,或者代替所示出的布置和元素,可以使用其他布置和元素(例如,机器、接口、功能、命令和功能分组等)。
在以下段落中描述的实施例可以与一个或多个具体描述的备选方案组合。特别地,所要求保护的实施例可以备选地包含对多于一个的其他实施例的引用。所要求保护的实施例可以指定所要求保护的主题的进一步限制。
本文中具体描述本发明的实施例的主题,以满足法定要求。然而,说明书本身并不旨在限制本专利的范围。相反,发明人已预期,所要求保护的主题还可以结合其他当前或将来的技术,以其他方式来体现,以包括与本文档中所描述的步骤不同的步骤或步骤的组合。此外,尽管本文中可以使用术语“步骤”和/或“框”来表示所采用的方法的不同元素,但是除非单独步骤的顺序被明确描述时,否则这些术语不应被解释为暗示本文所公开的各个步骤之中或之间的任何特定顺序。
为了本公开的目的,词语“包括(including)”具有与词语“包括(comprising)”相同的广义含义,并且词语“访问”包括“接收”、“引用”或“取回”。此外,词语“通信”与由基于软件或硬件的总线、发射机或接收机使用本文所述的通信介质来“接收”或“传送”具有相同的广义含义。附加地,除非另外相反地指出,否则诸如“一(a)”和“一个(an)”的词语包括复数以及单数。因此,例如,在存在一个或多个特征的情况下,满足“特征”的约束。同样,术语“或者”包括连接词、反意连接词和两者(因此a或者b包括a或者b以及a和b)。
为了以上的详细讨论的目的,参考分布式计算环境描述了本发明的实施例;然而,本文描述的分布式计算环境仅是示例性的。组件可以被配置用于执行实施例的新颖方面,其中术语“被配置用于”可以指代“被编程为”使用代码来执行特定任务或实现特定抽象数据类型。此外,尽管本发明的实施例可以通常参考分布式计算***合成数据即服务和本文描述的示意图,但是应当理解,所描述的技术可以扩展到其他实现的上下文。
已关于特定实施例描述了本发明的实施例,这些特定实施例在所有方面都旨在进行例示而不是限制。在不脱离本发明范围的情况下,备选实施例对于本发明所属领域的普通技术人员将变得明显。
从前述内容可以看出,本发明非常适合于实现以上阐述的所有目的和目标以及其他明显的优点和结构固有的优点。
将理解,某些特征和子组合是有用的,并且可以在不参考其他特征或子组合的情况下被采用。这是权利要求所预期的并且在权利要求的范围之内。

Claims (10)

1.一种计算机***,包括:
一个或多个硬件处理器和存储器,所述存储器被配置为向所述一个或多个硬件处理器提供计算机程序指令;
任务分类器,被配置为使用所述一个或多个硬件处理器以:
从分布式合成数据即服务(SDaaS)接口接收执行合成数据任务的请求;以及
标识所述合成数据任务的任务类别以及用于执行所述任务类别中的合成数据任务的对应的合格处理器组,其中所述合格处理器组从多个组中被选择,所述多个组包括:仅CPU组、仅GPU组、以及CPU和GPU的组;以及
调度器,被配置为使用所述一个或多个硬件处理器以将所述合成数据任务路由到所述合格处理器组中的第一处理器。
2.根据权利要求1所述的***,其中所述任务分类器还被配置为将所述合成数据任务排队到与所述合格处理器组相对应的队列中,并且其中所述调度器还被配置为通过将优先级赋予创建合成数据的请求,从所述队列中选择所述合成数据任务以用于分配。
3.根据权利要求1所述的***,其中所述任务分类器还被配置为从所述请求中得出批量创建合成数据资产的多个合成数据任务。
4.根据权利要求1所述的***,其中所述调度器还被配置为基于指示所述第一处理器的可用性的监视信号来路由所述合成数据任务。
5.一种或多种计算机存储介质,存储计算机可用指令,所述计算机可用指令在由一个或多个计算设备使用时使所述一个或多个计算设备执行操作,所述操作包括:
从分布式合成数据即服务(SDaaS)接口接收执行合成数据任务的请求;
通过以下来协调资源分配:
标识用于处理所述合成数据任务的对应的合格资源类别;以及
将所述合成数据任务路由到所述合格资源类别中的第一资源;以及
在所述第一资源上执行所述合成数据任务。
6.根据权利要求5所述的介质,其中标识对应的合格资源类别包括:标识所述合成数据任务的任务类别、以及标识用于处理所述任务类别中的合成数据任务的所述对应的合格资源类别。
7.根据权利要求5所述的介质,其中所述合成数据任务包括执行以下至少一项的任务:源资产的生成、源资产的摄取、变化参数的标识、变化参数的变化、或合成数据的创建。
8.根据权利要求5所述的介质,其中标识对应的合格资源类别包括:将摄取合成数据资产的任务分类为有资格用于仅在CPU上处理,或者将创建合成数据资产的任务分类为有资格用于仅在GPU上处理。
9.根据权利要求5所述的介质,其中所述合格资源类别从多个类别中被选择,所述多个类别包括仅CPU、仅GPU、以及CPU或GPU。
10.一种用于执行合成数据任务的方法,所述方法包括:
从分布式合成数据即服务(SDaaS)接口接收执行合成数据任务的请求;
通过以下来协调具有不同架构的处理器组之间的资源分配:
从所述组中标识用于执行所述合成数据任务的对应的合格处理器组;以及
将所述合成数据任务分配给所述合格处理器组中的第一处理器;以及
在所述第一处理器上执行所述合成数据任务。
CN201980060892.5A 2018-09-18 2019-06-28 合成数据任务的分类和资源分配的协调 Pending CN112714909A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862732949P 2018-09-18 2018-09-18
US62/732,949 2018-09-18
US16/206,732 US11544499B2 (en) 2018-09-18 2018-11-30 Classification of synthetic data tasks and orchestration of resource allocation
US16/206,732 2018-11-30
PCT/US2019/039655 WO2020060643A1 (en) 2018-09-18 2019-06-28 Classification of synthetic data tasks and orchestration of resource allocation

Publications (1)

Publication Number Publication Date
CN112714909A true CN112714909A (zh) 2021-04-27

Family

ID=69772950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980060892.5A Pending CN112714909A (zh) 2018-09-18 2019-06-28 合成数据任务的分类和资源分配的协调

Country Status (4)

Country Link
US (6) US11836530B2 (zh)
EP (3) EP3853730A1 (zh)
CN (1) CN112714909A (zh)
WO (4) WO2020060645A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190351A (zh) * 2021-05-06 2021-07-30 天津大学 一种面向分布式深度学习训练任务的高效资源分配***

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10679129B2 (en) * 2017-09-28 2020-06-09 D5Ai Llc Stochastic categorical autoencoder network
US11836530B2 (en) 2018-09-18 2023-12-05 Microsoft Technology Licensing, Llc Automatic suggestion of variation parameters and pre-packaged synthetic datasets
US10877799B2 (en) * 2018-10-16 2020-12-29 Cisco Technology, Inc. Evolutionary modelling based non-disruptive scheduling and management of computation jobs
US10930032B1 (en) 2019-08-22 2021-02-23 International Business Machines Corporation Generating concept images of human poses using machine learning models
US11941519B2 (en) * 2019-12-02 2024-03-26 Waymo Llc Machine learning training platform
US11170424B1 (en) * 2020-03-23 2021-11-09 Carmax Business Services, Llc Systems and methods for dynamically ingesting and monitoring online products
US20230297831A1 (en) * 2020-08-17 2023-09-21 Saad Saadi Systems and methods for improving training of machine learning systems
US20230029920A1 (en) * 2021-08-02 2023-02-02 Dell Products L.P. Optimizing performance of a computing device in a mixed workload environment
CN117377945A (zh) * 2021-10-18 2024-01-09 英特尔公司 用于分布式数据并行dnn训练中的批量再均衡的装置和方法
US11790591B2 (en) * 2021-10-21 2023-10-17 Hewlett-Packard Development Company, L.P. Graphics processor health predictions
CN114546608B (zh) * 2022-01-06 2024-06-07 上海交通大学 一种基于边缘计算的任务调度方法
EP4246323A1 (en) * 2022-03-17 2023-09-20 Tata Consultancy Services Limited Method and system to process asynchronous and distributed training tasks
CN114610500B (zh) * 2022-03-22 2024-04-30 重庆邮电大学 一种基于模型蒸馏的边缘缓存方法
WO2024020422A2 (en) * 2022-07-18 2024-01-25 Sun & Thunder, Llc Systems and methods for computing featuring synthetic computing operators and collaboration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844371A (zh) * 2017-10-12 2018-03-27 北京京东尚科信息技术有限公司 任务处理方法、***及电子设备

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060168467A1 (en) * 2002-10-16 2006-07-27 Couturier Russell L Load testing methods and systems with transaction variability and consistency
US7539652B2 (en) * 2003-11-28 2009-05-26 Manyworlds, Inc. Adaptive self-modifying and recombinant systems
US8145731B2 (en) 2003-12-17 2012-03-27 Hewlett-Packard Development Company, L.P. System and method for determining how many servers of at least one server configuration to be included at a service provider's site for supporting an expected workload
US8392927B2 (en) 2005-05-19 2013-03-05 Hewlett-Packard Development Company, L. P. System and method for determining a partition of a consumer's resource access demands between a plurality of different classes of service
US8935317B2 (en) 2010-06-23 2015-01-13 Microsoft Corporation Dynamic partitioning of applications between clients and servers
US9031317B2 (en) 2012-09-18 2015-05-12 Seiko Epson Corporation Method and apparatus for improved training of object detecting system
US9430280B1 (en) 2013-02-11 2016-08-30 Amazon Technologies, Inc. Task timeouts based on input data characteristics
US10186007B2 (en) 2014-08-25 2019-01-22 Intel Corporation Adaptive scheduling for task assignment among heterogeneous processor cores
US10068385B2 (en) 2015-12-15 2018-09-04 Intel Corporation Generation of synthetic 3-dimensional object images for recognition systems
US10417346B2 (en) 2016-01-23 2019-09-17 Microsoft Technology Licensing, Llc Tool for facilitating the development of new language understanding scenarios
US10345914B2 (en) * 2016-01-26 2019-07-09 Infinity Augmented Reality Israel Ltd. Method and system for generating a synthetic database of postures and gestures
US9996771B2 (en) * 2016-02-15 2018-06-12 Nvidia Corporation System and method for procedurally synthesizing datasets of objects of interest for training machine-learning models
JP2017182114A (ja) 2016-03-28 2017-10-05 ソニー株式会社 情報処理装置、情報処理方法および情報提供方法
US20180018610A1 (en) 2016-07-14 2018-01-18 Lendinghome Corp. Systems and methods for optimizing parallel task completion
US10437648B2 (en) 2016-07-22 2019-10-08 Board Of Regents, The University Of Texas System Guided load balancing of graph processing workloads on heterogeneous clusters
WO2018055507A1 (en) 2016-09-20 2018-03-29 Ramon Chips Ltd. Scheduling of tasks in a multiprocessor device
FR3056786B1 (fr) 2016-09-29 2019-11-22 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de gestion des taches de calcul sur un processeur multi-cœurs fonctionnellement asymetrique
EP3571667A1 (en) * 2017-02-23 2019-11-27 Siemens Mobility GmbH Real-time generation of synthetic data from multi-shot structured light sensors for three-dimensional object pose estimation
US20180300653A1 (en) 2017-04-18 2018-10-18 Distributed Systems, Inc. Distributed Machine Learning System
US20180314971A1 (en) * 2017-04-26 2018-11-01 Midea Group Co., Ltd. Training Machine Learning Models On A Large-Scale Distributed System Using A Job Server
US10585703B2 (en) 2017-06-03 2020-03-10 Apple Inc. Dynamic operation allocation for neural networks
US10235182B2 (en) 2017-06-20 2019-03-19 Palo Alto Research Center Incorporated System and method for hybrid task management across CPU and GPU for efficient data mining
US10235601B1 (en) * 2017-09-07 2019-03-19 7D Labs, Inc. Method for image analysis
US10552665B2 (en) 2017-12-12 2020-02-04 Seiko Epson Corporation Methods and systems for training an object detection algorithm using synthetic images
US10755115B2 (en) * 2017-12-29 2020-08-25 Here Global B.V. Method, apparatus, and system for generating synthetic image data for machine learning
CN111819583B (zh) 2018-03-21 2024-06-04 科磊股份有限公司 用于使用合成缺陷图像训练机器学习模型的方法和***
US10877152B2 (en) 2018-03-27 2020-12-29 The Mathworks, Inc. Systems and methods for generating synthetic sensor data
US20190310888A1 (en) 2018-04-05 2019-10-10 The Fin Exploration Company Allocating Resources in Response to Estimated Completion Times for Requests
US10878285B2 (en) * 2018-04-12 2020-12-29 Seiko Epson Corporation Methods and systems for shape based training for an object detection algorithm
US11132444B2 (en) 2018-04-16 2021-09-28 International Business Machines Corporation Using gradients to detect backdoors in neural networks
US10635939B2 (en) * 2018-07-06 2020-04-28 Capital One Services, Llc System, method, and computer-accessible medium for evaluating multi-dimensional synthetic data using integrated variants analysis
US10740694B2 (en) 2018-08-10 2020-08-11 Vis Machina Inc. System and method for capture and adaptive data generation for training for machine vision
US10740643B2 (en) 2018-08-28 2020-08-11 Sony Corporation Automatic license plate recognition based on augmented datasets
US11836530B2 (en) 2018-09-18 2023-12-05 Microsoft Technology Licensing, Llc Automatic suggestion of variation parameters and pre-packaged synthetic datasets

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844371A (zh) * 2017-10-12 2018-03-27 北京京东尚科信息技术有限公司 任务处理方法、***及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GLORIA Y.K. KIM 等: "Exploration of Supervised Machine Learning Techniques for Runtime Selection of CPU vs. GPU Execution in Java Programs", SPRINGER, 31 January 2018 (2018-01-31), pages 125 - 144, XP047464263, DOI: 10.1007/978-3-319-74896-2_7 *
RASHID KALEEM 等: "Adaptive Heterogeneous Scheduling for Integrated GPUs", 《IEEE》, 16 February 2017 (2017-02-16) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190351A (zh) * 2021-05-06 2021-07-30 天津大学 一种面向分布式深度学习训练任务的高效资源分配***
CN113190351B (zh) * 2021-05-06 2022-06-21 天津大学 一种面向分布式深度学习训练任务的高效资源分配***

Also Published As

Publication number Publication date
US20200089999A1 (en) 2020-03-19
US20230229513A1 (en) 2023-07-20
EP3853729B1 (en) 2023-09-06
WO2020060643A1 (en) 2020-03-26
US11544499B2 (en) 2023-01-03
US11809909B2 (en) 2023-11-07
US11836530B2 (en) 2023-12-05
US11580329B2 (en) 2023-02-14
EP3853728A1 (en) 2021-07-28
US20200089541A1 (en) 2020-03-19
WO2020060648A1 (en) 2020-03-26
US20240095080A1 (en) 2024-03-21
US20200090000A1 (en) 2020-03-19
EP3853730A1 (en) 2021-07-28
EP3853729A1 (en) 2021-07-28
WO2020060645A1 (en) 2020-03-26
US20200090001A1 (en) 2020-03-19
WO2020060642A1 (en) 2020-03-26

Similar Documents

Publication Publication Date Title
US11809909B2 (en) Machine-learning training service for synthetic data
US10877927B2 (en) Distributed computing system with a synthetic data as a service asset assembly engine
JP7516263B2 (ja) サービスとしての合成データのフレームセットパッケージストアを伴う分散型コンピューティングシステム
EP3803701B1 (en) Distributed computing system with a synthetic data as a service frameset package generator
EP3803721B1 (en) Distributed computing system with a synthetic data as a service feedback loop engine
US11023517B2 (en) Distributed computing system with a synthetic data as a service frameset assembly engine
US11550841B2 (en) Distributed computing system with a synthetic data as a service scene assembly engine
US11615137B2 (en) Distributed computing system with a crowdsourcing engine

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