JP2022009364A - フレキシブル・パイプライン生成のための方法及びシステム - Google Patents

フレキシブル・パイプライン生成のための方法及びシステム Download PDF

Info

Publication number
JP2022009364A
JP2022009364A JP2021172467A JP2021172467A JP2022009364A JP 2022009364 A JP2022009364 A JP 2022009364A JP 2021172467 A JP2021172467 A JP 2021172467A JP 2021172467 A JP2021172467 A JP 2021172467A JP 2022009364 A JP2022009364 A JP 2022009364A
Authority
JP
Japan
Prior art keywords
task
output
input
tasks
mapping
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.)
Granted
Application number
JP2021172467A
Other languages
English (en)
Other versions
JP7478318B2 (ja
Inventor
バクーリン、ユーリ
Bakulin Yuri
マルケス、マルシオ
Marques Marcio
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.)
Rubikloud Technologies Inc
Original Assignee
Rubikloud Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Rubikloud Technologies Inc filed Critical Rubikloud Technologies Inc
Publication of JP2022009364A publication Critical patent/JP2022009364A/ja
Application granted granted Critical
Publication of JP7478318B2 publication Critical patent/JP7478318B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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/5038Allocation 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 the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0202Market predictions or forecasting for commercial activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)

Abstract

【課題】フレキシブル・パイプライン生成のためのシステム及び方法を提供する。【解決手段】本方法は、2つ又はそれ以上のタスクを生成することであって、2つ又はそれ以上のタスクが、パイプラインの少なくとも一部分を定義する、生成することと、2つ又はそれ以上のタスクについての関連付けを定義するための再構成可能なワークフローを生成することであって、ワークフローが、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることと、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることと、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることとを含む、生成することと、2つ又はそれ以上のタスクの実行の順序のためにワークフローを使用して、パイプラインを実行することとを含む。【選択図】図3

Description

以下は、一般に、データ処理に関し、より詳細には、フレキシブル・パイプライン生成のための方法及びシステムに関する。
いくつかの実世界の問題を解決するために、データ科学、特に、機械学習技法が使用され得る。したがって、これらの問題は大幅に変動することがあるが、データ科学手法のうちの1つから結果を生成するための技術プロセスは、概して、同様の手法、構造、又はパターンの形態をとることができる。いくつかの状況では、異なるデータ科学モデル又は機械学習モデルは異なり得るが、全体的構造において共通性があり得る。
大きいデータセットに対処するとき、リアル・タイムでエンド・ツー・エンドで処理することは、しばしば困難である。この場合、異なる段階が、データ処理パイプラインにコンパイルされ得る。それにより、データ処理パイプラインは、概して、システムがどのように動作するかに、論理構造を与えることを意味する。しかしながら、従来のパイプライン実装形態は、それらの接続及び構造において融通のきかないことがあり、並びに他の望ましくない態様を有し得る。
したがって、本発明の目的は、上記の欠点が取り除かれ又は緩和され、望ましい属性の達成が実現される、方法及びシステムを提供することである。
一態様では、フレキシブル・パイプライン生成のための方法が提供され、本方法は、少なくとも1つの処理ユニット上で実行され、本方法は、2つ又はそれ以上のタスクを生成することであって、2つ又はそれ以上のタスクが、パイプラインの少なくとも一部分を定義する、生成することと、各タスクについて、それぞれのタスクについての機能性を受信し、それぞれのタスクに関連付けられた少なくとも1つの入力と少なくとも1つの出力とを受信することと、2つ又はそれ以上のタスクについての関連付けを定義するための再構成可能なワークフローを生成することであって、ワークフローが、発生した入力と完遂した出力とを有し、ワークフローを生成することが、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることと、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることと、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることとを含む、生成することと、2つ又はそれ以上のタスクの実行の順序のためにワークフローを使用して、パイプラインを実行することと含む。
特定の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、マッピングされていない入力を有するタスクの各々について、他のタスクのどの出力が、それぞれのタスクの機能性についての入力として受信されるために依存されるかを決定することを含む。
別の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、マッピングされていない出力を有するタスクの各々について、他のタスクのどの入力が、そのような他のタスクの機能性についての出力として与えられるために依存されるかを決定することを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、タスクのうちの少なくとも1つの出力を完遂した出力にマッピングされた少なくとも1つのタスクの入力とマッピングすることであって、そのような入力が、それぞれのタスクの機能性について依存される、マッピングすることと、マッピングされた出力を有するタスクの入力が、そのようなタスクの機能性について他のタスクの出力に依存するかどうかを反復的に決定することと、そのような依存がある場合、それぞれのタスクの入力を、それぞれのタスクが依存するタスクの出力にマッピングすることと、そのような依存がない場合、マッピングされていない入力をもつ少なくとも1つのタスクについて、少なくとも1つのタスクの入力を発生した入力とマッピングすることを実施することとを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、タスクのうちの少なくとも1つの入力を発生した入力にマッピングされた少なくとも1つのタスクの出力とマッピングすることであって、そのような出力が、それぞれのタスクの機能性について依存される、マッピングすることと、マッピングされた入力を有するタスクの出力が、そのようなタスクの機能性について他のタスクの入力に依存するかどうかを反復的に決定することと、そのような依存がある場合、それぞれのタスクの出力を、それぞれのタスクが依存するタスクの入力にマッピングすることと、そのような依存がない場合、マッピングされていない出力をもつ少なくとも1つのタスクについて、少なくとも1つのタスクの出力を完遂した出力とマッピングすることを実施することとを含む。
また別の場合には、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることは、タスクのうちの少なくとも1つの出力が、他のタスクのうちの少なくとも1つへの入力として依存されないかどうかを決定することと、そのようなタスクの出力を完遂した出力にマッピングすることとを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることは、タスクのうちの少なくとも1つの入力が、他のタスクのうちの少なくとも1つへの出力として依存されないかどうかを決定することと、そのようなタスクの入力を発生した入力にマッピングすることとを含む。
また別の場合には、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることは、出力表明子を含むタスクのうちの少なくとも1つの出力を完遂した出力にマッピングすることを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることは、入力表明子を含むタスクのうちの少なくとも1つの入力を発生した入力にマッピングすることを含む。
また別の場合には、本方法は、修正を受信することであって、修正が、タスクのうちの少なくとも1つについての修正された機能性、タスクのうちの少なくとも1つについての修正された入力、タスクのうちの少なくとも1つについての修正された出力、タスクのうちの少なくとも1つの除去、機能性と入力と出力とを含む新しいタスクの追加のうちの少なくとも1つを含む、受信することと、修正をもつタスクについての関連付けを再定義することによるワークフローを再構成することであって、ワークフローを再構成することが、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることと、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることと、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることとを含む、再構成することと、タスクの実行の順序のために、再構成されたワークフローを使用して、パイプラインを実行することとをさらに含む。
別の態様では、フレキシブル・パイプライン生成のためのシステムが提供され、本システムは、少なくとも1つの処理ユニットとデータ・ストレージとを備え、少なくとも1つの処理ユニットは、データ・ストレージと通信しており、2つ又はそれ以上のタスクを生成するためのタスク・モジュールであって、2つ又はそれ以上のタスクが、パイプラインの少なくとも一部分を定義し、各タスクについて、タスク・モジュールが、それぞれのタスクについての機能性を受信し、それぞれのタスクに関連付けられた少なくとも1つの入力と少なくとも1つの出力とを受信する、タスク・モジュールと、2つ又はそれ以上のタスクについての関連付けを定義するための再構成可能なワークフローを生成するためのワークフロー・モジュールであって、ワークフローが、発生した入力と完遂した出力とを有し、ワークフローを生成することが、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることと、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることと、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることとを含む、ワークフロー・モジュールと、2つ又はそれ以上のタスクの実行の順序のためにワークフローを使用して、パイプラインを実行するための実行モジュールとを実行するように構成される。
特定の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、マッピングされていない入力を有するタスクの各々について、他のタスクのどの出力が、それぞれのタスクの機能性についての入力として受信されるために依存されるかを決定することを含む。
別の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、マッピングされていない出力を有するタスクの各々について、他のタスクのどの入力が、そのような他のタスクの機能性についての出力として与えられるために依存されるかを決定することを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、タスクのうちの少なくとも1つの出力を完遂した出力にマッピングされた少なくとも1つのタスクの入力とマッピングすることであって、そのような入力が、それぞれのタスクの機能性について依存される、マッピングすることと、マッピングされた出力を有するタスクの入力が、そのようなタスクの機能性について他のタスクの出力に依存するかどうかを反復的に決定することと、そのような依存がある場合、それぞれのタスクの入力を、それぞれのタスクが依存するタスクの出力にマッピングすることと、そのような依存がない場合、マッピングされていない入力をもつ少なくとも1つのタスクについて、少なくとも1つのタスクの入力を発生した入力とマッピングすることを実施することとを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることは、タスクのうちの少なくとも1つの入力を発生した入力にマッピングされた少なくとも1つのタスクの出力とマッピングすることであって、そのような出力が、それぞれのタスクの機能性について依存される、マッピングすることと、マッピングされた入力を有するタスクの出力が、そのようなタスクの機能性について他のタスクの入力に依存するかどうかを反復的に決定することと、そのような依存がある場合、それぞれのタスクの出力を、それぞれのタスクが依存するタスクの入力にマッピングすることと、そのような依存がない場合、マッピングされていない出力をもつ少なくとも1つのタスクについて、少なくとも1つのタスクの出力を完遂した出力とマッピングすることを実施することとを含む。
また別の場合には、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることは、タスクのうちの少なくとも1つの出力が、他のタスクのうちの少なくとも1つへの入力として依存されないかどうかを決定することと、そのようなタスクの出力を完遂した出力にマッピングすることとを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることは、タスクのうちの少なくとも1つの入力が、他のタスクのうちの少なくとも1つへの出力として依存されないかどうかを決定することと、そのようなタスクの入力を発生した入力にマッピングすることとを含む。
また別の場合には、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることは、出力表明子を含むタスクのうちの少なくとも1つの出力を完遂した出力にマッピングすることを含む。
また別の場合には、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることは、入力表明子を含むタスクのうちの少なくとも1つの入力を発生した入力にマッピングすることを含む。
また別の場合には、タスク・モジュールがさらに、修正を受信し、修正が、タスクのうちの少なくとも1つについての修正された機能性、タスクのうちの少なくとも1つについての修正された入力、タスクのうちの少なくとも1つについての修正された出力、タスクのうちの少なくとも1つの除去、機能性と入力と出力とを含む新しいタスクの追加のうちの少なくとも1つを含み、ワークフロー・モジュールが、修正をもつタスクについての関連付けを再定義することによってワークフローを再構成し、ワークフローを再構成することが、タスクのうちの少なくとも1つの出力を完遂した出力とマッピングすることと、タスクのうちの少なくとも1つの入力を他のタスクのうちの少なくとも1つの出力とマッピングすることと、タスクのうちの少なくとも1つの入力を発生した入力とマッピングすることとを含み、実行モジュールがさらに、タスクの実行の順序のために、再構成されたワークフローを使用して、パイプラインを実行する。
これら及び他の実施例は、本明細書で企図及び説明される。上記の概要は、以下の発明を実施するための形態を理解する際に熟練した読者を支援するために、システム及び方法の代表的態様を提示することが諒解されよう。
本発明の特徴は、添付の図面に対して参照が行われる以下の発明を実施するための形態においてより明らかになろう。
一実施例による、フレキシブル・パイプライン生成のためのシステムの概略図である。 図1のシステムと例示的な動作環境とを示す、概略図である。 一実施例による、フレキシブル・パイプライン生成のための方法のフローチャートである。 図1のシステムの例示的な実装形態の図である。 異なる構成を有する図4の例示的な実装形態の図である。 図1のシステムの例示的な実装形態の図である。 パイプラインの概略の実例を示す図である。
次に、図を参照しながら実施例が説明される。説明の簡潔及び明快のために、適切であると見なされた場合、対応する又は類似する要素を示すために参照番号が図の間で繰り返され得る。さらに、本明細書で説明される実施例の完全な理解を与えるために多数の具体的な詳細が記載される。ただし、本明細書で説明される実施例はこれらの具体的な詳細なしに実施され得ることを当業者は理解されよう。他の事例では、本明細書で説明される実施例を不明瞭にしないように、よく知られている方法、手順及び構成要素は詳細に説明されていない。また、説明は、本明細書で説明される実施例の範囲を限定するものと見なされるべきではない。
本明細書全体にわたって使用される様々な用語は、コンテキストが別段に示さない限り、以下のように読まれ、理解され得、すなわち、全体を通して使用される「又は」は、「及び/又は」と書かれたかのように包含的であり、全体を通して使用される単数の冠詞及び代名詞は、それらの複数形を含み、その逆も同様であり、同様に、性別を表す代名詞は、その逆の性別を表す代名詞を含み、その結果、代名詞は、本明細書で説明されるいかなるものをも、単一の性別による使用、実装、実施などに限定するものとして理解されるべきではなく、「例示的な(exemplary)」は、「例示的な(illustrative)」又は「例示する(exemplifying)」と理解されるべきであり、必ずしも他の実施例よりも「好ましい」と理解されるべきであるとは限らない。用語についてのさらなる定義が本明細書に提示され、これらは、本明細書を読むことから理解されるように、それらの用語の前の事例及び後続の事例に適用され得る。
命令を実行する、本明細書で例示されるモジュール、ユニット、構成要素、サーバ、コンピュータ、端末、エンジン又はデバイスは、記憶媒体などのコンピュータ可読媒体、コンピュータ記憶媒体、又は、例えば磁気ディスク、光ディスク、又はテープなどのデータ・ストレージ・デバイス(リムーバブル及び/又は非リムーバブル)を含むか又はそれへのアクセスを有し得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール、又は他のデータなど、情報の記憶のための任意の方法又は技術において実装される揮発性及び不揮発性のリムーバブル及び非リムーバブル媒体を含み得る。コンピュータ記憶媒体の実例は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気ストレージ・デバイス、或いは、所望の情報を記憶するために使用され得、アプリケーション、モジュール、又はその両方によってアクセスされ得る任意の他の媒体を含む。そのようなコンピュータ記憶媒体は、デバイスの一部であるか或いはそれにアクセス可能又は接続可能であり得る。さらに、コンテキストが別段に明らかに示さない限り、本明細書で提示されるプロセッサ又はコントローラは、単数のプロセッサとして又は複数のプロセッサとして実装され得る。複数のプロセッサが配列されるか又は分散され得、本明細書で言及される処理機能は、単一のプロセッサが例示されることがあっても、1つのプロセッサによって実行されるか又は複数のプロセッサによって実行され得る。本明細書で説明される方法、アプリケーション又はモジュールは、コンピュータ可読/実行可能命令を使用して実装され得、それらの命令は、そのようなコンピュータ可読媒体によって記憶され又は場合によっては保持され、1つ又は複数のプロセッサによって実行され得る。
以下の説明では、「ユーザ」、「開発者」、及び「管理者」という用語が、互換的に使用され得ることを理解されたい。
以下は、一般に、データ処理に関し、より詳細には、フレキシブル・パイプライン生成のための方法及びシステムに関する。
本明細書で説明されるように、大きいデータセットに対処するとき、リアル・タイムでエンド・ツー・エンドに処理することは、しばしば困難である。この場合、異なる段階が、データ処理パイプラインにコンパイルされ得る。それにより、データ処理パイプラインは、概して、機械学習技法を採用するシステムの動作に、構造を与えることを意味する。
機械学習を採用するシステムの場合、一般的なパイプラインは、様々な段階又は構成要素、例えば、生データを収集するためのデータ収集段階、生データの変換を実施するための変換段階、機械学習モデルをトレーニングするために、変換されたデータを機械学習モデルに供給するためのトレーニング段階、トレーニングされたモデルを実際のテスト・データに適用するための適用段階、及び様々なモデル・パラメータについてのスコアを作り出すための出力段階を含むことができる。いくつかの場合には、出力データのユーザ固有の操作を可能にするための操作段階もあり得る。ソリューションのタイプに応じて、いくつかのパイプラインが変動し得、段階の間に異なる段階及び異なる分岐を有することを含む。
一般に、パイプラインの独立した構成要素の各々が、パイプラインの各単一の実装形態において実行される。本明細書で説明される実施例では、例えば、機械学習ベース・システムに関する技術的問題を解決するために、フレキシブルであるように、個々の構成要素の各々を実装し、それらを互いに結びつけるための、バッチ・データ処理システムが与えられる。
特定の場合、バッチ・データ処理は、パイプラインを介して、例えば「Luigi」と呼ばれるPython(商標)モジュールを介して実装され得る。そのようなモジュールを使用することは、システムが、大きいマルチステップ・データ処理タスクを、特定の相互依存をもつより小さいサブタスクのグラフに分解することを可能にする。したがって、特に、依存解消をハンドリングすること、ワークフロー管理、可視化、失敗をハンドリングすること、コマンド・ライン統合によって、システムがバッチ・ジョブの複雑なパイプラインを構築することを可能にする。Luigiは、特定の構成要素の、「タスク」への定義を可能にする。Luigiは、モジュラーであり、タスク間の依存の作成を可能にする。システムは、ユーザから所望の出力を受信し、システムは、Luigiを介して、所望の出力を達成するために実行されるべき必要とされるタスク又はジョブをスケジュールする。
例えばLuigiを用いてパイプラインを構築するとき、各タスクが、概して、定義されるべきである。各タスクの定義は、各タスクの機能と、そのような機能を達成するために何が必要とされるかとを定義することを伴う。したがって、各タスクについての依存、各タスクがどの他のタスクに依存するかは、概して、各タスクの定義にハードコーディングされるべきである。一実例として、「タスクA」の機能が定義され得、そのような機能が別のタスク「タスクB」に依存することが、定義され得る。この実例では、Luigiを採用するシステムは、ラン・タイムにおいて、タスクBへのタスクAの依存により、タスクBがすでに完了した場合のみタスクAが実行されることになることを、識別することになる。この場合、依存は、タスクAの入力のうちの少なくとも1つが、タスクBの出力の少なくとも1つに関する値があることに依存することを意味すると理解される。したがって、タスクAが実行されるたびに、システムは、タスクBがすでに完了したかどうかを照会し、したがって、タスクBが完了するまでタスクAを実行しないことになる。
Luigi及び同様のモジュールのハードコーディングされた依存は、新しいタスクの挿入又は依存の変更など、パイプラインを変更することが、影響を受けたタスクを再定義することを必要とするので、コストがかかり、時間がかかり、不都合であり得ることを意味する。一実例として、機械学習モデルのトレーニング中、異なるタイプの入力されたデータを用いた実験が望まれる場合、各実験について1つ又は複数のタスクについてのコードを変更しなければならないことは、非常に非効率的であろう。
本明細書で説明される一実施例では、出願人は、フレキシブル・パイプラインを生成するために、タスクの機能性をそれの依存から分離することの実質的な利点を認識した。
次に図1を参照すると、一実施例による、フレキシブル・パイプライン生成のためのシステム100が示されている。本実施例では、システム100は、クライアント側デバイス(図2における26)上で実行され、インターネット(図2における24)など、ネットワークを介してサーバ(図2における32)に位置するコンテンツにアクセスする。さらなる実施例では、システム100は、任意の他のコンピューティング・デバイス、例えば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、スマートフォン、タブレット・コンピュータ、ポイントオブセール(「PoS:point-of-sale」)デバイス、サーバ、スマートウォッチ、(1つ又は複数の)分散型又はクラウド・コンピューティング・デバイスなどの上で実行され得る。
いくつかの実施例では、システム100の構成要素は、単一のコンピュータ・システムによって記憶され、その上で実行される。他の実施例では、システム100の構成要素は、ローカルに又は遠隔で分散され得る、2つ又はそれ以上のコンピュータ・システムの間で分散される。
図1は、システム100の実施例の様々な物理及び論理構成要素を示す。示されているように、システム100は、(1つ又は複数のプロセッサを備える)中央処理ユニット(「CPU:central processing unit」)102と、ランダム・アクセス・メモリ(「RAM:random access memory」)104と、入力インターフェース106と、出力インターフェース108と、ネットワーク・インターフェース110と、不揮発性ストレージ112と、CPU102が他の構成要素と通信することを可能にするローカル・バス114とを含む、いくつかの物理及び論理構成要素を有する。CPU102は、オペレーティング・システムと、以下でより詳細に説明される、様々なモジュールとを実行する。RAM104は、相対的にレスポンシブな揮発性ストレージをCPU102に与える。入力インターフェース106は、管理者又はユーザが入力デバイス、例えばキーボード及びマウスを介して入力を与えることを可能にする。出力インターフェース108は、出力デバイス、例えば、ディスプレイ及び/又はスピーカーに情報を出力する。ネットワーク・インターフェース110は、一般的なクラウドベース・アクセス・モデルのためになど、システム100から遠隔に位置する他のコンピューティング・デバイス及びサーバなど、他のシステムとの通信を可能にする。不揮発性ストレージ112は、オペレーティング・システム及びモジュールを実装するためのコンピュータ実行可能命令を含む、オペレーティング・システム及びプログラム、並びにこれらのサービスによって使用されるデータを記憶する。以下で説明される追加の記憶されるデータは、データベース116に記憶され得る。システム100の動作中、オペレーティング・システム、モジュール、及び関係データは、実行を可能にするために、不揮発性ストレージ112から取り出され、RAM104中に配置され得る。
一実施例では、CPU102は、タスク・モジュール120と、ワークフロー・モジュール122と、実行モジュール124とを実行するように構成可能である。本明細書で説明されるように、パイプラインの一部として、システム100は、1つ又は複数のタスクに組み込まれた機械学習モデル及び/又は統計モデルを使用することができる。1つ又は複数のモデルは、補間モデル(例えば、ランダム・フォレスト)、外挿モデル(例えば、線形回帰)、深層学習モデル(例えば、人工ニューラル・ネットワーク)、そのようなモデルのアンサンブルなどを含むことができる。
本明細書で言及される、タスクは、任意の実行可能サブルーチン又は動作、例えば、データ収集動作、データ変換動作、機械学習モデル・トレーニング動作、重み付け動作、スコアリング動作、出力操作動作などを含むことができる。
図3は、一実施例による、フレキシブル・パイプライン生成のための方法300のためのフローチャートを示す。
ブロック302において、タスク・モジュール120は、パイプラインを集合的に構成する、2つ又はそれ以上のタスクを生成する。2つ又はそれ以上のタスクは、パイプラインのビルディング・ブロックを形成する。ブロック304において、各タスクについて、タスク・モジュール120は、そのそれぞれのタスクの機能性を定義するラン・コマンドを実施する。ブロック306において、各タスクについて、タスク・モジュール120はまた、そのそれぞれのタスクの機能性を実現するために、少なくとも1つの入力と少なくとも1つの出力とを定義する。一実施例では、説明されるように、少なくとも1つの入力と少なくとも1つの出力との定義は、ユーザ又は開発者によって定義される。一実例として、タスクを定義することは、以下のように実装され得る。
Figure 2022009364000002
上記の実施例では、transaction_data関数は、関数を実装するための英数字ストリング又は整数、並びに他の関数に与えるための英数字ストリング又は整数(例えば、order_count_model関数に与えるための整数)を取り出すための構造の期待される値を(例えば、カンマ区切り値(CSV:comma-separated values)ファイルへの経路を介して)有する。order_count_model関数は、「model.fit(feature_vector)」方法を実装する、選ばれたモデル・オブジェクトへの経路を含むことができる。
ブロック308において、ワークフロー・モジュール122は、タスクに関連する論理構成要素を自動的に定義するためのワークフロー・フレームワークを生成する。ワークフローは、タスク間の論理関係のセットである。いくつかの場合には、ワークフローは、「依存ツリー」と呼ばれることがある。一実施例では、ワークフロー・フレームワークは、完遂した出力と発生した入力とを含む。
ブロック310において、ワークフロー・モジュール122は、他のタスクの入力を照会し、どのタスク出力からのデータが他のタスクのうちの1つへの入力として依存されないかを決定することによって、1つ又は複数のタスク出力を完遂した出力にマッピングする。一実施例では、ワークフロー・モジュール122は、それぞれのタスクの定義内で定義された又はそれぞれのタスクの出力を用いて定義された、所定の出力表明子について照会することによって、1つ又は複数のタスク出力を完遂した出力にマッピングすることができる。特定の場合には、出力表明子は、完遂した出力に何がマッピングされることを望まれるかを表明するために、ユーザ又は開発者によって定義され得る。完遂した出力にマッピングされた出力をもつ1つ又は複数のタスクは、本明細書では「第1のアップストリーム・タスク」と呼ばれる。ブロック312において、ワークフロー・モジュール122は、1つ又は複数のタスク出力を第1のアップストリーム・タスクの入力にマッピングし、そのような1つ又は複数のタスクは本明細書では「第2のアップストリーム・タスク」と呼ばれる。第2のアップストリーム・タスクの出力は、第1のアップストリーム・タスクが機能するために、どのタスク出力からのデータが第1のアップストリーム・タスクへの入力として依存されるかを決定することによって、第1のアップストリーム・タスクの入力にマッピングされる。
ブロック314において、ワークフロー・モジュール122は、機能するために、第2のアップストリーム・タスクの入力が他のタスクの出力からのデータに依存するかどうかを決定する。ブロック314における決定が肯定である場合、ワークフロー・モジュール122は、1つ又は複数のタスク出力を第2のアップストリーム・タスクの入力にマッピングすることによってブロック312を繰り返し、そのような1つ又は複数のタスクは本明細書では「第3のアップストリーム・タスク」と呼ばれる。現在のアップストリーム・レベルにおけるタスクの入力の、(「第nのアップストリーム・タスク(’n’ upstream tasks)」と呼ばれる)連続するアップストリーム・タスクの出力へのそのようなマッピングは、ブロック314における決定が否定になるまで、ワークフロー・モジュール122によって繰り返される。
ブロック316において、ブロック314における決定が否定である場合、ワークフロー・モジュール122は、他のタスクの出力にマッピングされていないタスクの入力を発生した入力にマッピングする。一実施例では、ワークフロー・モジュール122は、それぞれのタスクの定義内で定義された又はそれぞれのタスクの入力を用いて定義された、所定の入力表明子について照会することによって、1つ又は複数のタスク入力を発生した入力にマッピングすることができる。特定の場合には、表明子は、発生した入力に何がマッピングされることを望まれるかを表明するために、ユーザ又は開発者によって定義され得る。
ブロック318において、実行モジュール124が、パイプライン中のタスクを実行する。実行モジュール124は、タスクを実行するための順序を決定するために、ワークフロー・モジュール122によって生成されたワークフローと相談する。
一実施例では、ワークフロー・モジュール122は、入力インターフェース106を介して与えられたユーザ又は開発者入力に基づいてどのタスク出力がどのタスク入力に依存するかを決定する。
有利に、システム100は、パイプラインの構成及び最終的な機能性に関してフレキシビリティを与えるために、Luigiにおいて必要とされることとは対照的に、タスクの定義からの依存の分離を可能にする。このようにして、ワークフローは、パイプラインの実装形態に関して、例えばユーザ又は開発者によって、再定義可能である。さらに、有利に、上記は、個々のタスクの各々が再使用可能であることを可能にする。このようにして、ユーザ又は開発者は、既存のタスクのいずれにおいても入力及び/又は出力定義を変更する必要がない。ユーザ又は開発者は、既存のワークフローを変更することをも必要とされない。いくつかの場合には、本明細書で説明されるように、システム100は、関係するワークフロー構成要素をオーバーライドすることができる既存のワークフローの下位分類が定義されるように、再定義されたタスクとともに上記の手法を再び実行することができる。
さらなる実施例では、ワークフロー・モジュール122は、発生した入力から開始してパイプラインを構築し、ダウンストリーム・タスクをマッピングすることによって、方法300を逆に実行することができる。例えば、他のタスクの出力に依存しない入力をもつ(「第1のダウンストリーム・タスク」と呼ばれる)タスクを、発生した入力にマッピングすること。次いで、第1のダウンストリーム・タスクの出力を、第1のダウンストリーム・タスクの出力に依存する(「第2のダウンストリーム・タスク」と呼ばれる)他のタスクの入力にマッピングすることなど。出力の、ダウンストリーム・タスクの入力へのこのマッピングは、特定のタスクの出力が他のタスクの入力によって依存されなくなり、それにより、そのような出力が完遂した出力にマッピングされ得るまで続けられ得る。
本明細書で与えられる実例では、予測は、履歴データを使用してある対象についての推定される将来の値を取得するプロセスを意味すると理解される。たいていの場合、予測は、1つ又は複数の予測を生成するための履歴データのセットがあることに基づいている。これらの場合、機械学習技法は、それらのモデルをトレーニングし、したがって合理的に正確な予想を作り出すために、極めて多くの履歴データに依拠することができる。
本明細書で説明される実施例の例示的な実装形態では、ユーザは、以下を定義することができる。
Figure 2022009364000003
上記は、2つの論理構成要素(producer_component、consumer_component)を定義し、前者の出力を後者の入力にマッピングする、最小ワークフローのための本明細書で説明される実施例の一実例である。それは、それぞれProducerTaskA及びConsumerTaskであるように、それらの構成要素の実装形態をも定義する。
上記は、本明細書で説明される実施例を使用して生成されるので、ユーザが、例えば、ProducerTaskAを何らかの他の論理と置き換えて、新しいワークフローを作ることを希望する場合、ユーザはただ、新しいタスクを書く必要がある。新しいタスクは単に、新しいタスクの出力が消費者構成要素によって期待される構造に適合することを確実にし、元のワークフローを拡張/下位分類する新しいワークフローにおけるその構成要素定義をオーバーライドするための、新しい論理を必要とする。一実例として、以下の通りである。
Figure 2022009364000004
図4は、本明細書で説明される実施例の別の例示的な実装形態を示す。この実例では、パイプライン400が、機械学習モデルを使用して、製品の販売の増加又は減少を予測することなど、製品の販売促進の結果を予測することを対象とする。パイプライン400は、発生した入力420と、完遂した出力422と、タスク・モジュール120によって生成された5つの別個のタスクとを含む。パイプラインの第1の場合、5つのタスクは、製品の前の購入のデータベースからデータを取り出す機能性を有する第1のタスク402と、入力データを用いて機械学習モデルをトレーニングする機能性を有する第2のタスク404と、ポイントオブサービス・コンソールからテスト・データを取り出す機能性を有する第3のタスク406と、予測に到達するためにテスト・データをスコアリングする機能性を有する第4のタスク408と、出力(予測)を公開及び操作する機能性を有する第5のタスク410とである。
この実例では、パイプライン400は、ワークフロー・モジュール122によって生成されたワークフロー430をも含む。第1の場合、ワークフロー・モジュール122は、第5のタスク410の出力に依存する入力を有する他のタスクがないと決定することによって、第5のタスク410を完遂した出力422にマッピングする。ワークフロー・モジュール122は、次いで、第5のタスク410の入力が第4のタスク408の出力に依存するので、第4のタスク408の出力を第5のタスク410の入力にマッピングする。ワークフロー・モジュール122は、次いで、第4のタスク408の入力が第2のタスク404の出力と第3のタスク406の出力からのデータに依存するので、両方のタスクの出力をこの入力にマッピングする。ワークフロー・モジュール122は、次いで、第1のタスク402の出力を第2のタスク404の入力にマッピングする。ワークフロー・モジュール122は、次いで、第1のタスク402と第3のタスク406との入力が他のタスクの出力に依存しないので、両方のそれらのタスクの入力を発生した入力420にマッピングする。ワークフロー・モジュール122によって生成されたワークフロー430と相談して、実行モジュール124は、各々のタスクを適切な順序で実行することができる。したがって、システム100は、生成されたパイプライン400に従って、データベースから顧客データを取り出し、そのようなデータを使用して、機械学習モデルをトレーニングすることができ、トレーニングされた機械学習モデルは、顧客データを使用して販売促進結果を予測することが可能である。トレーニングされた機械学習モデルを使用して、入力されたテスト・データ(及びテスト・パラメータ)は、その特定の入力されたデータについての予測に到達するためにスコアリングされ得る。スコアリングされたデータ(予測)は、公開され(例えば、JavaScriptオブジェクト表記法(JSON:JavaScript Object Notation)又はカンマ区切り値(CSV)フォーマットで、出力インターフェース108を介してスクリーン上に表示されるか、又はネットワーク・インターフェース110上で送られる)、いくつかの場合には、入力インターフェース106を介してユーザによって操作され得る。その出力が、パイプライン400の完遂した出力422を形成することができる。
図5は、図4の例示的な実装形態の例示的な適応を示す。この場合、ユーザは、異なるデータセットを取り出し、そのデータを使用して、異なる機械学習モデルをトレーニングすることによって、実験することを決めた。この実例では、タスク・モジュール120は、オンライン販売データベースからトレーニング・データを取り出す機能性をもつ第6のタスク412を生成する。タスク・モジュール120は、オンライン販売データを用いて新しい機械学習モデルをトレーニングするための第7のタスク414をも生成する。したがって、ワークフロー・モジュール122は、上記で説明された手法を使用して、ワークフロー430を再生成するが、この場合、ワークフロー・モジュール122は、第7のタスク414の出力と第3のタスク406の出力とを、第4のタスク408の入力にマッピングする。ワークフロー・モジュール122はまた、第6のタスク412の出力を第7のタスク414の入力にマッピングし、次いで、第6のタスク412の入力を発生した入力420にマッピングする。次いで、ワークフロー・モジュール122によって生成された補正されたワークフロー430と再び相談して、実行モジュール124は、補正されたパイプライン400中のタスクから各々を適切な順序で実行することができる。
図6は、システム100の例示的な実装形態600の図を示す。この実例では、そこは、ワークフロー実行サーバと統合するための、及び、例えばユーザによるワークフローの構成、提出、及び監視を可能にするためのユーザ・インターフェース602を含む。そこは、ジョブ構成の集中型モジュラー管理のためのサービスである、構成API604をも含む。そこは、「プラガブル(pluggable)」並列化及び/又は分散処理のためのスパーク・クラスタ614をも含む。そこは、各々が1つ又は複数のプロセッサと、データ・ストレージ・メモリと、ロード・バランサ616とを備える、1つ又は複数のサーバを備えるサーバ・クラスタ606をも含む。このようにして、サーバ・クラスタ606は、ワークフローのための分散型実行環境であり得る。サーバ・クラスタ606は、ジョブ、ワーカーなどに関するサーバ状態を維持するためのデータベース608を含む。サーバ・クラスタ606は、複数のワーカーの間で作業を同期させるための、及びワークフローを実行するための監視インターフェースを与えるための、スケジューラ610をも含む。サーバ・クラスタ606は、それぞれのワークフローを実行するための複数の(「ソース」とも呼ばれる)ワーカー612をも含む。この例示的な実装形態600では、有利に、ジョブ又はワークフローのリソース要件をそれのパラメータ(及び履歴実行)から学習し、リソース使用率、時間又はコストを最適化するやり方でワーカー・ノードにジョブを割り当てる能力を有することによる、インテリジェント・ロード・バランシングがあり得る。この例示的な実装形態600では、また有利に、各関係する構成要素が、明確に定義されたインターフェースを通してシステム100と対話することができるので、プラガビリティ(pluggability)があり得る。これは、使用されるリソースのインスタンスを容易に切り替えることを可能にする。スパーク・クラスタの場合、例えば、システム100の同じ展開が、スパークのローカル・インスタンス、ローカル・クラスタ、又は管理されたクラウド・サービスをそれのセットアップの変更なしで使用することができる。
本明細書で説明される実施例の例示として、図7は、本明細書で説明される実施例において、この場合、トランザクション特徴(履歴)に基づいてインベントリ中の(1つ又は複数の)特定の製品の販売の予想を生成するために、使用され得る例示的なパイプラインと例示的な関連するタスクとを示す。この実例において説明されるタスクは、本明細書で説明されるフレキシブル・パイプライン生成に関して説明されるように、フレキシブルに生成及びルーティングされ得ることを理解されたい。依存において非線形性があり得るように、タスクが必ずしも連続的であるとは限らないことを理解されたい。
この実例では、パイプライン700は、最初に、トランザクション特徴702、インベントリ特徴704、及び結合特徴706のタスクを含む、トレーニング特徴を生成すること701を伴う。この実例では、トランザクション特徴タスク702は、機能として、データベースからトランザクション・データを抽出することと、トランザクション・データからの特定の特徴を変換及び抽出することと、トランザクション特徴セットを、例えばカンマ区切り値(CSV)ファイル中に、保存することとを含む。トランザクション特徴タスク702は、ワークフロー・モジュール122によって、発生した入力730にマッピングされ、ここで、トランザクション特徴タスク702は入力CSVファイルを受信する。トランザクション特徴タスク702は、修正されたCSVファイル又は修正されたCSVファイルへの経路を出力することをさらに含む。
この実例では、インベントリ特徴タスク704は、機能として、データベースからインベントリ・データを抽出することと、インベントリ・データからの特定の特徴を変換及び抽出することと、インベントリ特徴セットを、例えばカンマ区切り値(CSV)ファイル中に、保存することとを含む。インベントリ特徴タスク704は、ワークフロー・モジュール122によって、発生した入力730にマッピングされ、ここで、インベントリ特徴タスク704は入力CSVファイルを受信する。インベントリ特徴タスク704は、第2の修正されたCSVファイル又は第2の修正されたCSVファイルへの経路を出力することをさらに含む。
この実例では、結合特徴タスク706が機能するために、ワークフロー・モジュール122は、結合特徴タスク706の入力を、(関連するCSVファイル中で)トランザクション特徴を受信するためにトランザクション特徴タスク702の出力にマッピングし、(関連するCSVファイル中で)インベントリ特徴を受信するためにインベントリ特徴タスク704の出力にマッピングする。結合特徴タスク706は、機能として、インベントリ及びトランザクション特徴セットをロードすることと、インデックス列上でインベントリ特徴セットとトランザクション特徴セットとを結合することと、可能な場合、失われたレコードを挿入することと、結合された特徴セットを、例えばカンマ区切り値(CSV)ファイル中に、保存することとをさらに含む。結合特徴タスク706は、後続の修正されたCSVファイル又は後続の修正されたCSVファイルへの経路を出力することをさらに含む。
この実例では、パイプライン700は、次に、平均価格モデルをトレーニングするタスク708とユニット予想モデルをトレーニングするタスク710とを含む、モデルのトレーニング707を伴う。
この実例では、平均価格モデル・タスク708が機能するために、ワークフロー・モジュール122は、(関連する後続の修正されたCSVファイル中で)平均価格モデル・タスク708の入力を結合特徴タスク706の出力にマッピングする。平均価格モデル・タスク708は、機能として、結合された特徴データセットをロードし、(列などの)関係する情報を抽出することと、ランダム・フォレスト回帰モデルをトレーニングすることと、メタデータとともに平均価格モデルをデータ・ストレージに保存することとをさらに含む。平均価格モデル・タスク708は、保存する平均価格モデル・ファイル又は保存する平均価格モデルへの経路を出力することをさらに含む。
この実例では、ユニット予想モデル・トレーニング・タスク710が機能するために、ワークフロー・モジュール122は、(関連する後続の修正されたCSVファイル中で)ユニット予想モデル・トレーニング・タスク710の入力を結合特徴タスク706の出力にマッピングする。ユニット予想モデル・トレーニング・タスク710は、機能として、結合された特徴データセットをロードし、(列などの)関係する情報を抽出することと、アンサンブル・モデルをトレーニングすることと、関連するメタデータとともにユニット予想モデルをデータ・ストレージに保存することとをさらに含む。ユニット予想モデル・トレーニング・タスク710は、ユニット予想モデル・ファイル又はユニット予想モデルへの経路を出力することをさらに含む。
この実例では、パイプライン700は、次に、スコアリング特徴を生成するタスク712と予想を生成するタスク714とを含む、トレーニングされたモデルを使用して予測すること711を伴う。
この実例では、スコアリング特徴を生成するタスク712が機能するために、ワークフロー・モジュール122は、スコアリング特徴を生成するタスク712の入力を発生した入力730にマッピングし、ここで、スコアリング特徴を生成するタスク712は入力CSVファイルを受信する。スコアリング特徴を生成するタスク712は、機能として、データベースから将来のインベントリ・データを抽出することと、インベントリ・データからスコアリング特徴を変換及び抽出することと、スコアリング特徴セットを、例えばカンマ区切り値(CSV)ファイル中に、保存することとを含む。スコアリング特徴を生成するタスク712は、スコアリング特徴CSVファイル又はスコアリング特徴CSVファイルへの経路を出力することをさらに含む。
この実例では、予想を生成するタスク714が機能するために、ワークフロー・モジュール122は、予想を生成するタスク714の入力を(保存する平均価格モデル・ファイル中の)平均価格モデル・タスク708の出力と、(ユニット予想モデル・ファイル中の)ユニット予想モデル・トレーニング・タスク710の出力と、(スコアリング特徴CSVファイル中の)スコアリング特徴を生成するタスク712の出力とにマッピングする。予想を生成するタスク714は、機能として、スコアリング特徴セットをロードすることと、平均価格モデルをロードすることと、ユニット予想モデルをロードすることと、モデルをスコアリング特徴データセットに適用することと、予想を生成することと、予想を、例えばカンマ区切り値(CSV)ファイル中に、保存することとを含む。予想を生成するタスク714は、予想CSVファイル中の予想又は予想CSVファイルへの経路を出力することをさらに含む。
この実例では、パイプライン700は、次に、報告生成のタスク716と予想配信のタスク718とを含む、配信及び/又は報告715を伴う。この実例では、報告生成タスク716が機能するために、ワークフロー・モジュール122は、(予想CSVファイル中で)報告生成タスク716の入力を予想を生成するタスク714の出力にマッピングする。報告生成タスク716は、機能として、予測データをロードすることと、異常報告を生成することと、相関報告を生成することと、異常報告及び相関報告をデータ・ストレージに保存することとをさらに含む。報告生成タスク716は、異常報告及び/又は相関報告を完遂した出力740に出力することをさらに含み、例えば、パイプライン中の他のタスクが報告生成タスク716の出力に依存しないので、スコアリング特徴タスク704は、ワークフロー・モジュール122によって、完遂した出力740にマッピングされる。
この実例では、予想配信タスク718が機能するために、ワークフロー・モジュール122は、(予想CSVファイル中で)予想配信タスク718の入力を予想を生成するタスク714の出力にマッピングする。予想配信タスク718は、機能として、予想ファイルをロードすることと、ファイル・ホスティング・サービス又はプロトコルに接続することと、予想ファイルをファイル・ホスティング・サービス又はサーバにアップロードすることと、成功フラグ・ファイルをデータ・ストレージに保存することとをさらに含む。予想配信タスク718は、成功フラグ・ファイル又は成功フラグ・ファイルへの経路を完遂した出力740に出力することをさらに含み、例えば、パイプライン中の他のタスクが予想配信タスク718の出力に依存しないので、予想配信タスク718は、ワークフロー・モジュール122によって、完遂した出力740にマッピングされる。
有利に、本明細書で説明される実施例は、上記で例示されたように、当技術分野において特徴的な問題の一実例である、タスクのハードコーディングされた依存を変更する必要なしに、パイプラインを容易に及び効率的に補正する能力を可能にする。このようにして、タスクが、依存を定義しなくてはならないことから分離されるので、タスク定義は、任意のパイプラインにおける再展開のためにコンテナ化される。これは、パイプラインのフレキシブル構成を与えることによって、開発の速度を実質的に上げることができ、パイプラインの異なる態様について実験又は機械学習モデル微調整が望まれる研究プロセスを大幅に改善することができる。さらに、これは、パイプラインが、例えば、異なる対象及びデータセットとともに使用するために、極めてカスタマイズ可能であることを可能にすることができる。
有利に、本明細書で説明される実施例では、1つ又は複数の他のタスクを再定義する必要があれば、個々のタスクが、変更されるか又は置換され得、これは、パイプラインの容易な再使用、パイプラインの容易なスケーラビリティ、開発における実質的な時間節約、及びパイプライン全体を再生成する必要がないことについての計算量的節約を可能にする。有利に、本明細書で説明される実施例は、システムの破損に対する何らかの保護をも与え、パイプライン中の実際のタスクを再定義する必要がなく、むしろワークフローの調節のみを必要とすることにより、あまり経験をもたない管理者又は開発者が変更を行うことを可能にする。
したがって、本明細書で説明される実施例は、パイプライン・フレキシビリティがないことによる当技術分野における特徴的な技術的問題に技術的ソリューションを与える。本明細書で説明される実施例は、様々なプラットフォーム上で迅速に展開可能であり得、フォールト・トレラントであり得る、コンテナ化されフレキシブルなソリューションを与えることができる。本明細書で説明される実施例は、様々なパイプライン構成において機械学習を使用することを通して、インテリジェント・ロード・バランシングをも可能にすることができる。本明細書で説明される実施例はまた、独立してスケーラブルな算出リソースについて(スパーク/テンソル・フローを介してなど)プラガブルであり得る。
特定の実施例では、ワークフロー・モジュール122によって生成されたワークフローは、ワークフロー又はタスク定義を下位分類及び/又はオーバーライドすることを通して使用するためのパイプラインの複数の実装形態を可能にすることができる。
さらなる実施例では、それぞれのワークフローを有し、本明細書で説明されるように生成されたパイプラインは、より大きいパイプラインの一部分であり得、或いは、シリアル化され、ネスト化され、又はさもなければ、それら自体のそれぞれのワークフローを各々有する、他のパイプラインと組み合わせられ得る。したがって、特定のパイプラインのワークフローは、より大きいワークフローの応答フローの一部であり得、システム全体の実装のためのさらにより大きいフレキシビリティを可能にする。一実例では、1つのワークフローの発生した入力を他のワークフローの完遂した出力にマッピングすることによって、2つのワークフローが組み合わせられ得る。
本発明は、いくつかの特定の実施例に関して説明されたが、それらの様々な変更形態が、本明細書に添付された特許請求の範囲において概説される本発明の趣旨及び範囲から逸脱することなく当業者に明らかであろう。上記で具陳されたすべての参照の全開示が、参照により本明細書に組み込まれる。

Claims (16)

  1. フレキシブル・パイプライン生成のための方法であって、前記方法が、少なくとも1つの処理ユニット上で実行され、前記方法は、
    2つ又はそれ以上のタスクを生成することであって、前記2つ又はそれ以上のタスクが、前記パイプラインの少なくとも一部分を定義する、生成することと、
    各タスクについて、前記それぞれのタスクについての機能性を受信し、前記それぞれのタスクに関連付けられた少なくとも1つの入力と少なくとも1つの出力とを受信することと、
    前記2つ又はそれ以上のタスクについての関連付けを定義するためのワークフローを生成することであって、前記ワークフローが、発生した入力と完遂した出力とを有し、前記ワークフローを前記生成することが、
    前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力とマッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を他のタスクのうちの少なくとも1つの前記出力とマッピングすることであって、マッピングされていない出力を有する各タスクについて、他のタスクのどの入力が、前記他のタスクの前記機能性についての出力として与えられるために依存されるかを決定する、前記マッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を前記発生した入力とマッピングすることと
    を含む、生成することと、
    前記2つ又はそれ以上のタスクの実行の順序のために前記ワークフローを使用して、前記パイプラインを実行することと
    含む、方法。
  2. 前記タスクのうちの少なくとも1つの前記入力を前記他のタスクのうちの少なくとも1つの前記出力と前記マッピングすることは、
    前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力にマッピングされた前記少なくとも1つのタスクの前記入力とマッピングすることであって、前記入力が、前記それぞれのタスクの前記機能性について依存される、マッピングすることと、
    マッピングされた出力を有するタスクの入力が、前記タスクの前記機能性について他のタスクの出力に依存するかどうかを反復的に決定することと、前記依存がある場合、前記それぞれのタスクの前記入力を、前記それぞれのタスクが依存する前記他のタスクの前記出力にマッピングすることと、前記依存がない場合、マッピングされていない入力をもつ前記少なくとも1つのタスクについて、前記少なくとも1つのタスクの前記入力を前記発生した入力と前記マッピングすることを実施することと
    を含む、請求項1に記載の方法。
  3. 前記タスクのうちの少なくとも1つの前記入力を前記他のタスクのうちの少なくとも1つの前記出力と前記マッピングすることは、
    前記タスクのうちの少なくとも1つの前記入力を前記発生した入力にマッピングされた前記少なくとも1つのタスクの前記出力とマッピングすることであって、前記出力が、前記それぞれのタスクの前記機能性についての入力として依存される、マッピングすることと、
    マッピングされた入力を有するタスクの出力が、他のタスクの前記機能性についての前記他のタスクの入力として与えられるために依存されるかどうかを反復的に決定することと、前記依存がある場合、前記それぞれのタスクの前記出力を、前記それぞれのタスクが依存する前記他のタスクの前記入力にマッピングすることと、前記依存がない場合、マッピングされていない出力をもつ前記少なくとも1つのタスクについて、前記少なくとも1つのタスクの前記出力を前記完遂した出力と前記マッピングすることを実施することと
    を含む、請求項1に記載の方法。
  4. 前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力と前記マッピングすることは、前記タスクのうちの少なくとも1つの出力が、前記他のタスクのうちの少なくとも1つへの入力として依存されないかどうかを決定することと、前記タスクの前記出力を前記完遂した出力にマッピングすることとを含む、請求項1に記載の方法。
  5. 前記タスクのうちの少なくとも1つの前記入力を前記発生した入力と前記マッピングすることは、前記タスクのうちの少なくとも1つの入力が、他のタスクの出力に依存しないかどうかを決定することと、前記タスクの前記入力を前記発生した入力にマッピングすることとを含む、請求項1に記載の方法。
  6. 前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力と前記マッピングすることは、前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力にマッピングすることであって、前記タスクが予め定められた出力表明子を含み、前記出力表明子は、前記完遂した出力に何がマッピングされることを望まれるかを表明するために定義される、マッピングすることを含む、請求項1に記載の方法。
  7. 前記タスクのうちの少なくとも1つの前記入力を前記発生した入力と前記マッピングすることは、前記タスクのうちの少なくとも1つの前記入力を前記発生した入力にマッピングすることであって、前記タスクが予め定められた入力表明子を含み、前記入力表明子は、前記発生した入力に何がマッピングされることを望まれるかを表明するために定義される、マッピングすることを含む、請求項1に記載の方法。
  8. 修正を受信することであって、前記修正が、前記タスクのうちの少なくとも1つについての修正された機能性、前記タスクのうちの少なくとも1つについての修正された入力、前記タスクのうちの少なくとも1つについての修正された出力、前記タスクのうちの少なくとも1つの除去、機能性と入力と出力とを含む新しいタスクの追加のうちの少なくとも1つを含む、受信することと、
    前記タスクについての関連付けを再定義することによる前記修正を含む前記ワークフローを再構成することであって、前記ワークフローを再構成することが、
    前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力とマッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を前記他のタスクのうちの少なくとも1つの前記出力とマッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を前記発生した入力とマッピングすることと
    を含む、再構成することと、
    前記タスクの実行の順序のために、前記再構成されたワークフローを使用して、前記パイプラインを実行することと
    をさらに含む、請求項1に記載の方法。
  9. フレキシブル・パイプライン生成のためのシステムであって、前記システムが、少なくとも1つの処理ユニットとデータ・ストレージとを備え、前記少なくとも1つの処理ユニットは、前記データ・ストレージと通信しており、
    2つ又はそれ以上のタスクを生成するためのタスク・モジュールであって、前記2つ又はそれ以上のタスクが、前記パイプラインの少なくとも一部分を定義し、各タスクについて、前記タスク・モジュールが、前記それぞれのタスクについての機能性を受信し、前記それぞれのタスクに関連付けられた少なくとも1つの入力と少なくとも1つの出力とを受信する、タスク・モジュールと、
    前記2つ又はそれ以上のタスクについての関連付けを定義するためのワークフローを生成するためのワークフロー・モジュールであって、前記ワークフローが、発生した入力と完遂した出力とを有し、前記ワークフローを前記生成することが、
    前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力とマッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を他のタスクのうちの少なくとも1つの前記出力とマッピングすることであって、マッピングされていない出力を有する各タスクについて、他のタスクのどの入力が、前記他のタスクの前記機能性についての出力として与えられるために依存されるかを決定する、前記マッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を前記発生した入力とマッピングすることと
    を含む、ワークフロー・モジュールと、
    前記2つ又はそれ以上のタスクの実行の順序のために前記ワークフローを使用して、前記パイプラインを実行するための実行モジュールと
    を実行するように構成された、システム。
  10. 前記タスクのうちの少なくとも1つの前記入力を前記他のタスクのうちの少なくとも1つの前記出力と前記マッピングすることは、
    前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力にマッピングされた前記少なくとも1つのタスクの前記入力とマッピングすることであって、前記入力が、前記それぞれのタスクの前記機能性について依存される、マッピングすることと、
    マッピングされた出力を有するタスクの入力が、前記タスクの前記機能性について他のタスクの出力に依存するかどうかを反復的に決定することと、前記依存がある場合、前記それぞれのタスクの前記入力を、前記それぞれのタスクが依存する前記他のタスクの前記出力にマッピングすることと、前記依存がない場合、マッピングされていない入力をもつ前記少なくとも1つのタスクについて、前記少なくとも1つのタスクの前記入力を前記発生した入力と前記マッピングすることを実施することと
    を含む、請求項9に記載のシステム。
  11. 前記タスクのうちの少なくとも1つの前記入力を前記他のタスクのうちの少なくとも1つの前記出力と前記マッピングすることは、
    前記タスクのうちの少なくとも1つの前記入力を前記発生した入力にマッピングされた前記少なくとも1つのタスクの前記出力とマッピングすることであって、前記出力が、前記それぞれのタスクの前記機能性についての入力として依存される、マッピングすることと、
    マッピングされた入力を有するタスクの出力が、他のタスクの前記機能性についての前記他のタスクの入力として与えられるために依存されるかどうかを反復的に決定することと、前記依存がある場合、前記それぞれのタスクの前記出力を、前記それぞれのタスクが依存する前記他のタスクの前記入力にマッピングすることと、前記依存がない場合、マッピングされていない出力をもつ前記少なくとも1つのタスクについて、前記少なくとも1つのタスクの前記出力を前記完遂した出力と前記マッピングすることを実施することと
    を含む、請求項9に記載のシステム。
  12. 前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力と前記マッピングすることは、前記タスクのうちの少なくとも1つの出力が、前記他のタスクのうちの少なくとも1つへの入力として依存されないかどうかを決定することと、前記タスクの前記出力を前記完遂した出力にマッピングすることとを含む、請求項9に記載のシステム。
  13. 前記タスクのうちの少なくとも1つの前記入力を前記発生した入力と前記マッピングすることは、前記タスクのうちの少なくとも1つの入力が、他のタスクの出力に依存しないかどうかを決定することと、前記タスクの前記入力を前記発生した入力にマッピングすることとを含む、請求項9に記載のシステム。
  14. 前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力と前記マッピングすることは、前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力にマッピングすることであって、前記タスクが予め定められた出力表明子を含む、マッピングすることを含み、前記出力表明子は、前記完遂した出力に何がマッピングされることを望まれるかを表明するために定義される、請求項9に記載のシステム。
  15. 前記タスクのうちの少なくとも1つの前記入力を前記発生した入力と前記マッピングすることは、前記タスクのうちの少なくとも1つの前記入力を前記発生した入力にマッピングすることであって、前記タスクが予め定められた入力表明子を含む、マッピングすることを含み、前記入力表明子は、前記発生した入力に何がマッピングされることを望まれるかを表明するために定義される、請求項9に記載のシステム。
  16. 前記タスク・モジュールがさらに、修正を受信し、前記修正が、前記タスクのうちの少なくとも1つについての修正された機能性、前記タスクのうちの少なくとも1つについての修正された入力、前記タスクのうちの少なくとも1つについての修正された出力、前記タスクのうちの少なくとも1つの除去、機能性と入力と出力とを含む新しいタスクの追加のうちの少なくとも1つを含み、
    前記ワークフロー・モジュールが、前記タスクについての関連付けを再定義することによる前記修正を含む前記ワークフローを再構成し、前記ワークフローを再構成することが、
    前記タスクのうちの少なくとも1つの前記出力を前記完遂した出力とマッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を前記他のタスクのうちの少なくとも1つの前記出力とマッピングすることと、
    前記タスクのうちの少なくとも1つの前記入力を前記発生した入力とマッピングすることと
    を含み、
    前記実行モジュールがさらに、前記タスクの実行の順序のために、前記再構成されたワークフローを使用して、前記パイプラインを実行する、
    請求項9に記載のシステム。
JP2021172467A 2018-01-29 2021-10-21 フレキシブル・パイプライン生成のための方法及びシステム Active JP7478318B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862623242P 2018-01-29 2018-01-29
US62/623,242 2018-01-29
JP2020562802A JP6975866B2 (ja) 2018-01-29 2019-01-28 フレキシブル・パイプライン生成のための方法及びシステム
PCT/CA2019/050098 WO2019144240A1 (en) 2018-01-29 2019-01-28 Method and system for flexible pipeline generation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020562802A Division JP6975866B2 (ja) 2018-01-29 2019-01-28 フレキシブル・パイプライン生成のための方法及びシステム

Publications (2)

Publication Number Publication Date
JP2022009364A true JP2022009364A (ja) 2022-01-14
JP7478318B2 JP7478318B2 (ja) 2024-05-07

Family

ID=67395113

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020562802A Active JP6975866B2 (ja) 2018-01-29 2019-01-28 フレキシブル・パイプライン生成のための方法及びシステム
JP2021172467A Active JP7478318B2 (ja) 2018-01-29 2021-10-21 フレキシブル・パイプライン生成のための方法及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020562802A Active JP6975866B2 (ja) 2018-01-29 2019-01-28 フレキシブル・パイプライン生成のための方法及びシステム

Country Status (5)

Country Link
US (1) US20210042168A1 (ja)
EP (1) EP3746884A4 (ja)
JP (2) JP6975866B2 (ja)
CA (1) CA3089911A1 (ja)
WO (1) WO2019144240A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768945B2 (en) * 2020-04-07 2023-09-26 Allstate Insurance Company Machine learning system for determining a security vulnerability in computer software
US11836640B2 (en) * 2020-05-15 2023-12-05 Motorola Mobility Llc Artificial intelligence modules for computation tasks
JP2022059247A (ja) * 2020-10-01 2022-04-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11789779B2 (en) 2021-03-01 2023-10-17 Bank Of America Corporation Electronic system for monitoring and automatically controlling batch processing
US11604691B2 (en) * 2021-03-01 2023-03-14 Bank Of America Corporation Electronic system for monitoring and automatically controlling batch processing
CN112801546A (zh) * 2021-03-18 2021-05-14 中国工商银行股份有限公司 一种任务调度方法、装置及存储介质
CN113066153B (zh) * 2021-04-28 2023-03-31 浙江中控技术股份有限公司 管道流程图的生成方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243543A1 (en) * 2003-05-12 2004-12-02 Microsoft Corporation System and method for employing object-based pipelines
JP2005352618A (ja) * 2004-06-09 2005-12-22 Sony Corp 信号処理装置
JP2008176804A (ja) * 2008-02-18 2008-07-31 Nec Corp タスクスケジューリングシステム、方法、およびプログラム
JP2014513372A (ja) * 2011-05-13 2014-05-29 ベネフィットフォーカス ドット コム インコーポレーテッド 高度並行処理タスクの登録及び実行
JP2015512099A (ja) * 2012-02-14 2015-04-23 アマゾン テクノロジーズ インコーポレイテッド 構成可能なワークフロー機能の提供
US20160103706A1 (en) * 2014-10-09 2016-04-14 Google Inc. Automatically Generating Execution Sequences for Workflows

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110225565A1 (en) * 2010-03-12 2011-09-15 Van Velzen Danny Optimal incremental workflow execution allowing meta-programming
US10467050B1 (en) * 2015-04-06 2019-11-05 State Farm Mutual Automobile Insurance Company Automated workflow creation and management
KR102071335B1 (ko) * 2015-06-11 2020-03-02 한국전자통신연구원 워크플로우 모델 생성 방법과 워크플로우 모델 실행 방법 및 장치
US10331495B2 (en) * 2016-02-05 2019-06-25 Sas Institute Inc. Generation of directed acyclic graphs from task routines

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040243543A1 (en) * 2003-05-12 2004-12-02 Microsoft Corporation System and method for employing object-based pipelines
JP2005352618A (ja) * 2004-06-09 2005-12-22 Sony Corp 信号処理装置
JP2008176804A (ja) * 2008-02-18 2008-07-31 Nec Corp タスクスケジューリングシステム、方法、およびプログラム
JP2014513372A (ja) * 2011-05-13 2014-05-29 ベネフィットフォーカス ドット コム インコーポレーテッド 高度並行処理タスクの登録及び実行
JP2015512099A (ja) * 2012-02-14 2015-04-23 アマゾン テクノロジーズ インコーポレイテッド 構成可能なワークフロー機能の提供
US20160103706A1 (en) * 2014-10-09 2016-04-14 Google Inc. Automatically Generating Execution Sequences for Workflows

Also Published As

Publication number Publication date
WO2019144240A1 (en) 2019-08-01
CA3089911A1 (en) 2019-08-01
JP2021508903A (ja) 2021-03-11
JP6975866B2 (ja) 2021-12-01
US20210042168A1 (en) 2021-02-11
EP3746884A1 (en) 2020-12-09
EP3746884A4 (en) 2021-11-03
JP7478318B2 (ja) 2024-05-07

Similar Documents

Publication Publication Date Title
JP6975866B2 (ja) フレキシブル・パイプライン生成のための方法及びシステム
US11663257B2 (en) Design-time information based on run-time artifacts in transient cloud-based distributed computing clusters
US11074107B1 (en) Data processing system and method for managing AI solutions development lifecycle
US11568404B2 (en) Data monetization and exchange platform
US20180240062A1 (en) Collaborative algorithm development, deployment, and tuning platform
US10929771B2 (en) Multimodal, small and big data, machine tearing systems and processes
US10459979B2 (en) Graphically managing data classification workflows in a social networking system with directed graphs
US20200334293A1 (en) Computation platform agnostic data classification workflows
JP2020024711A (ja) データ系統の要約
US20190196672A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
US10685319B2 (en) Big data sourcing simulator
US20160313874A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
US20170124492A1 (en) System for automated capture and analysis of business information for reliable business venture outcome prediction
US10628217B1 (en) Transformation specification format for multiple execution engines
US20220004914A1 (en) Code generation for auto-ai
US20170075332A1 (en) Scheduling in manufacturing environments
US10296376B2 (en) Planning for manufacturing environments
CN110249312A (zh) 数据集成作业转换
WO2017219044A1 (en) Accurate and detailed modeling of systems using a distributed simulation engine
US20220036370A1 (en) Dynamically-guided problem resolution using machine learning
WO2022122811A1 (en) Forecasting system and method
US11507820B1 (en) Automated generation of delivery dates using machine learning
Sadiq et al. A method for the selection of software testing techniques using analytic hierarchy process
WO2019136178A1 (en) Collaborative algorithm development, deployment, and tuning platform
US11971907B2 (en) Component monitoring framework with predictive analytics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230627

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20230726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240327

R150 Certificate of patent or registration of utility model

Ref document number: 7478318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150