JP2022042495A - 新しい械学習プロジェクトにおける使用のために適応可能なコーパスへの既存機械学習プロジェクトの自動キュレーション - Google Patents

新しい械学習プロジェクトにおける使用のために適応可能なコーパスへの既存機械学習プロジェクトの自動キュレーション Download PDF

Info

Publication number
JP2022042495A
JP2022042495A JP2021139554A JP2021139554A JP2022042495A JP 2022042495 A JP2022042495 A JP 2022042495A JP 2021139554 A JP2021139554 A JP 2021139554A JP 2021139554 A JP2021139554 A JP 2021139554A JP 2022042495 A JP2022042495 A JP 2022042495A
Authority
JP
Japan
Prior art keywords
project
projects
pipeline
quality
dataset
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
JP2021139554A
Other languages
English (en)
Inventor
ケイ サハ・リポン
K Saha Ripon
アール プラサド・ムクル
R Prasad Mukul
ジュ・チェヌグアン
Chenguang Zhu
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2022042495A publication Critical patent/JP2022042495A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

【課題】新しい機械学習プロジェクトにおける使用のために適応可能なコーパスへの既存機械学習プロジェクトの自動キュレーションする方法及びプログラムを提供する。【解決手段】方法は、フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリからMLプロジェクトのセットを収集し、MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証し、MLプロジェクトのセットの中のMLパイプラインの無関係な部分を識別し、MLプロジェクトのセットについて品質特徴を生成する。方法はさらに、MLプロジェクトのセットについて多様性特徴を生成し、品質特徴及び多様性特徴に基づき、MLプロジェクトのセットからMLプロジェクトのサブセットを選択し、新しいMLプロジェクトにおいて使用するために適応され得るMLプロジェクトのコーパスに、MLプロジェクトのサブセットを格納する。【選択図】図5

Description

本開示で議論する実施形態は、新しい機械学習プロジェクトにおける使用のために適用可能なコーパスへの、既存機械学習プロジェクトの自動キュレーション(curating)に関する。
機械学習(Machine learning (ML))は、通常、現行のトレーニングにより自動的により正確になる予測を行うためにトレーニングデータによりトレーニングされたMLモデルを利用する。MLは、限定ではないが、交通予測、ウェブ検索、オンライン詐欺検出、医療診断、スピーチ認識、電子メールフィルタリング、画像認識、仮想個人支援、及び自動翻訳を含む広範な用途で使用され得る。
MLが益々一般的になるにつれ、新しいMLプロジェクトを実装するために利用可能なML専門家(例えば、熟練したデータ科学者)の不足がしばしば生じる。例えば、幾つかの推定によると、新しいMLプロジェクトの開発に現在従事しているデータ科学者の大多数は、専門家ではなく(例えば、比較的未熟又は初心者)、修士又は博士号を有する5人のうちの2人程度しか、益々複雑なMLプロジェクトの開発に適格を有しない。
自動化ML(AutoML)は、MLを現実世界の問題に適用するプロセスを自動化するプロセスである。AutoMLは、先ずML専門家になることを要求せずに、非専門家が、MLモデル及び技術を利用することを可能にし得る。AutoMLは、ML専門家が不足しているにも拘わらず、新しいMLプロジェクトを実装するという益々増大する課題に対する解決策として提案されている。しかしながら、現在のAutoMLソリューションは、非専門家が新しいMLプロジェクトを完全に実装できるようにするためには不十分である簡易且つ部分的なソリューションしか提供しない。
本開示で請求される主題は、任意の欠点を解決する又は上述のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載の幾つかの実施形態が実施され得る一例である技術領域を説明するためにのみ提供される。
実施形態の態様によると、動作は、フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリからMLプロジェクトのセットを収集するステップを含んでよい。動作は、前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップを更に含んでよい。更に、動作は、前記MLプロジェクトのセットの中のMLパイプラインの無関係な部分を識別するステップを含んでよい。更に、動作は、前記MLプロジェクトのセットについて品質特徴を生成するステップを含んでよい。更に、動作は、前記MLプロジェクトのセットについて多様性特徴を生成するステップを含んでよい。更に、動作は、前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップを含んでよい。更に、動作は、新しいMLプロジェクトにおいて使用するために適応され得るMLプロジェクトのコーパスに、MLプロジェクトのサブセットを格納するステップを含んでよい。
実施形態の目的及び利点は、請求項において特に指摘される要素、特徴、及び組み合わせにより少なくとも実現され達成される。
前述の一般的説明及び以下の詳細な説明は両方とも例として与えられ、説明のためであり、請求される本発明の限定ではない。
例示的な実施形態は、以下の添付の図面の使用を通じて更なる特殊性及び詳細事項により記載され説明される。
既存のMLプロジェクトを自動的に検索し、新しいMLプロジェクトに適応することに関連する例示的な環境を表す図である。
既存のMLプロジェクトをコーパスへと自動的にキュレーションすることに関連する例示的な環境を表す図である。
コーパスに格納された既存のMLプロジェクトのパイプラインから新しいMLプロジェクトのパイプラインを自動的に生成することに関連する例示的な環境を表す図である。
例示的なコンピューティングシステムのブロック図を示す。
新しいMLプロジェクトにおける使用のために適応可能なコーパスに既存のMLプロジェクトを自動的にキュレーションする例示的な方法のフローチャートである。
フィルタリング基準に基づき、MLプロジェクトの1つ以上のレポジトリからMLプロジェクトのセットを収集する例示的な方法のフローチャートである。
MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証する例示的な方法のフローチャートである。
既存のMLプロジェクトの例示的なMLパイプラインコードを示す。
クリーニングされた図8Aの例示的なMLパイプラインコードから生じる例示的なクリーニングされたMLパイプラインコードを示す。
例示的な品質特徴の表である。
例示的な多様性特徴の表である。
品質特徴及び多様性特徴に基づき、MLプロジェクトのセットからMLプロジェクトのサブセットを選択する例示的な方法のフローチャートである。
新しいMLプロジェクトにおける使用のために適応可能なコーパスに既存のMLプロジェクトのパイプラインの中の自動ラベル付け機能ブロックの例示的な方法のフローチャートである。
正規化前の既存のMLプロジェクトの例示的な元のMLパイプラインコードを示す。
図13Aの例示的な元のMLパイプラインコードの正規化後の例示的な正規化MLパイプラインコードを示す。
イディオム法機能ブロック及びカスタム機能ブロックを識別する例示的な方法のフローチャートである。
有向グラフを用いて正規化MLパイプラインから機能ブロックを抽出することを示す。
正規化MLパイプラインの中の機能ブロックの各々にラベルを割り当てる例示的な方法のフローチャートである。
MLパイプラインの中の機能ブロックの自動ラベル付けを示す。
コーパスに格納された既存のMLプロジェクトのパイプラインから新しいMLプロジェクトのパイプラインを自動的に生成する例示的な方法のフローチャートである。
新しいMLプロジェクトのシーケンスグラフおよびパイプラインスケルトンを示す。
図19のパイプラインスケルトン、及びパイプラインスケルトンに一致する機能ブロックについて検索され得るMLパイプラインの表を示す。
本開示に記載される幾つかの実施形態は、既存のMLプロジェクトを自動的に検索し新しいMLプロジェクトに適応する方法及びシステムに関する。
MLが益々一般的になるにつれ、新しいMLプロジェクトを実装するために利用可能なML専門家(例えば、熟練したデータ科学者)の不足がしばしば生じる。種々のAutoMLソリューション(例えば、Auto-Sklearn、AutoPandas、等)は、ML専門家の不足にも拘わらず新しいMLプロジェクトを実装するという増大し続ける課題を解決するために提案されているが、現在のAutoMLソリューションは、非専門家が新しいMLプロジェクトを完全に実装できるようにするには単純化された且つ部分的なソリューションしか提供しない。更に、既存のMLプロジェクトのオープンソースソフトウェア(OSS)データベース(例えば、Kaggle、GitHub、等)も、非専門家による新しいMLプロジェクトの実装という課題のための別のソリューションとして提案されているが、非専門家がこれらのデータベースの中で有用な可能性のある既存のMLプロジェクトを見付けることは困難であるか又は不可能であり得る。更に、非専門家がこれらのデータベースの中で有用な可能性のある既存のMLプロジェクトを見付けることに成功したとしても、非専門家が新しいMLプロジェクトの新しい要件のために有用な可能性のある既存のMLプロジェクトを変更することは困難であるか又は不可能であり得る。
本開示では、用語「MLプロジェクト」は、データセット、該データセット上に定義されたMLタスク、データセット上でMLタスクについてMLモデルをトレーニングし及びMLモデルを新しい予測のために使用するために動作シーケンスを実施するよう構成されるMLパイプライン(例えば、スクリプト又はプログラムコード)を含むプロジェクトを表してよい。本開示では、用語「計算ノートブック(computational notebook)」は、特に開発段階の間に、MLパイプラインを開発し及び/又は表すために使用される計算構造を表してよい(例えば、Jupyter notebook)。ここに開示される実施形態は、Pythonプログラミング言語のMLパイプライン及びJupyterノートブックにより構造化された計算ノートブックにより示されるが、理解されるべきことに、他の実施形態は、異なる言語で記述されたMLパイプライン及び他のプラットフォームで構造化された計算ノートブックを含んでよい。
本開示の1つ以上の実施形態によると、動作は、既存のMLプロジェクトを自動的に検索し、新しいMLプロジェクトに適応するために実行されてよい。例えば、幾つかの実施形態では、コンピュータシステムは、データ科学者が先ず新しいMLプロジェクトを構築するのに良好な開始点を提供する既存のMLプロジェクトを検索するワークフローを「検索及び適応(search-and-adapt)」スタイルで構築し、次に既存のMLプロジェクトを適切に適応して、新しいデータベースのためのMLパイプライン及び新しいMLプロジェクトの新しいMLタスクを構築することにより、データ科学者の自然なワークフローを組織的にサポートしてよい。
例えば、幾つかの実施形態では、コンピュータシステムは、既存のMLプロジェクトのOSSデータベースから未処理の(raw)MLプロジェクトを自動的にマイニングしてよく、それらを既存のMLプロジェクトのコーパスに格納する前に、新しいMLプロジェクトを自動的にキュレーション(curate)してよい。幾つかの実施形態では、大規模レポジトリからの既存のMLプロジェクトのこのマイニング及びキュレーションは、検索及び適応ワークフローにおいて使用可能な多様な高品質な既存のMLプロジェクトのコーパスを生じ得る。また、このキュレーションは、(例えば、動的プログラムスライシングを用いて)既存のMLプロジェクトのMLパイプラインをクリーニングすることを含んでよく、特徴セットを計算して、各MLプロジェクトの品質及び多様性をキャプチャし及びこれらの目的に合う最適な数の既存のMLプロジェクトを選択することを含んでよい。
また、幾つかの実施形態では、このキュレーションは、既存のMLプロジェクトのMLパイプラインの中の機能ブロックを自動的に識別し及びインデックス付けするために実行される動作を伴ってよい。伝統的なソフトウェアプログラムと異なり、MLプロジェクトのMLパイプラインは、通常、データセットプロパティに基づく明確に定義されたワークフローに従い、機能ブロックのシーケンスとして考えることができる。従って、幾つかの実施形態は、MLパイプラインの中の機能ブロックを自動的に抽出し及びラベル付けして、それらをコーパスの中で正しくインデックス付けし、その結果、それらが新しいMLタスクのための新しいMLパイプラインを合成するために効率的に検索できるようにする技術を含む。より具体的には、この技術は、適切なレベルでMLパイプラインを抽象化してよく、グラフに基づくシーケンスマイニングアルゴリズムを利用して、カスタム及びイディオム(idiomatic)機能ブロックの両方を抽出してよい。最後に、各機能ブロックは、意味論的にラベル付けされてよい。
幾つかの実施形態では、非専門家データ科学者からのような新しいMLプロジェクトのための新しいデータベース及び新しいタスクを受信すると、コンピュータシステムは、先ず、階層構造アプローチを自動的に使用して、MLモデルを用いて新しいMLプロジェクトのために機能ブロックレベルのパイプラインスケルトンを合成し、次に、キュレーション及びラベル付けされたコーパスを通じて明示的に検索して、このパイプラインスケルトンをインスタンス化するために関連する既存のMLプロジェクトを識別してよい。次に、コンピュータシステムは、関連する既存のMLプロジェクトのセットのMLパイプラインから機能ブロックを自動的に選択し、パイプラインスケルトンを新しいMLプロジェクトのための新しいMLパイプラインへと具体化(concretize)してよい。最後に、コンピュータシステムは、新しいデータセットで新しいMLタスクを実行するために新しいMLパイプラインが実行可能になるよう、新しいMLパイプラインの機能ブロックを適応してよい。
従って、幾つかの実施形態では、非専門家データ科学者は、単に、新しいデータセット及び新しいMLタスクを新しいMLプロジェクトのために定式化するだけでよい。次に、コンピュータシステムは、ツールにより支援される対話型検索及び適応ワークフローを実施して、新しいMLプロジェクトのための新しいMLパイプラインを自動的に生成してよい。これは、新しいデータセットで新しいMLタスクを実行するために直ちに実行でき、非専門家データ科学者による変更を伴わない。従って、幾つかの実施形態は、初心者のデータ科学者が新しいMLプロジェクトのために新しい高品質のエンドツーエンドMLパイプラインを効率的に生成する力を与えることができる。
本開示の1つ以上の実施形態によると、MLプロジェクト開発の技術分野は、データ科学者(例えば、非専門家であることが多い)に有用な可能性のある既存のMLプロジェクトを手動で発見させ有用な可能性のある既存のMLプロジェクトを新しいMLプロジェクトの新しい要件のために変更させる仕事を課すのに対して、自動的に既存のMLプロジェクトを検索して新しいMLプロジェクトへと適応するよう、コンピュータシステムを構成することにより改善され得る。このような構成は、既存のMLパイプラインから機能ブロックを識別して抽出し及び新しいMLパイプラインにおける使用のためにそれらを自動的に適応することにより、コンピューティングシステムに、関連する既存のMLプロジェクトを良好に検索させ、それらを新しいMLプロジェクトに適応させることができる。
本開示の実施形態は、添付の図面を参照して説明される。
図1は、本開示に記載される少なくとも1つの実施形態に従い構成される、自動的に既存のMLプロジェクトを検索し新しいMLプロジェクトへと適応することに関連する例示的な環境100を示す図である。環境100は、OSS MLプロジェクトデータベース102a~102n、既存のMLプロジェクトをMLプロジェクトコーパス104へとキュレーションするよう構成されるキュレーションモジュール114、新しいデータセット106及び新しいMLプロジェクトの新しいMLタスク108(こ例えば、これらはデータ科学者118により提供されたものである)に基づき新しいMLプロジェクトのためにMLプロジェクトコーパス104から関連する既存のMLプロジェクトを検索するよう構成される検索モジュール、関連する既存のMLプロジェクト110のMLパイプライン111から機能ブロックを合成し及び新しいMLプロジェクトの新しいMLパイプライン112へと適応するよう構成される適応モジュール120、を含んでよい。
OSS MLプロジェクトデータベース102a~102nは、既存のMLプロジェクトの大規模なレポジトリであってよく、各MLプロジェクトは、少なくとも、データセット、該データセット上に定義されたMLタスク、MLタスクについてMLモデルをトレーニングし及びMLモデルを新しい予測のために使用するために動作シーケンスを実施するよう構成されるMLパイプライン(例えば、スクリプト又はプログラムコード)を含む。既存のMLプロジェクトの大規模レポジトリの幾つかの例は、限定ではないが、Kaggle及びGitHubを含む。幾つかの実施形態では、OSS MLプロジェクトデータベース102a~102nの中の各MLプロジェクトは、計算ノートブックを含んでよい。計算ノートブックは、特に開発段階の間に、MLパイプラインを開発し及び/又は表すために使用される計算構造であってよい。計算ノートブックの一例は、Jupyterノートブックである。
キュレーションモジュール114、検索モジュール116、及び適応モジュール120の各々は、コンピューティング装置が1つ以上の動作を実行することを可能にするよう構成されるコード及びルーチンを含んでよい。追加又は代替として、これらのモジュールの各々は、プロセッサ、(例えば、1つ以上の動作を実行する又は実行を制御する)マイクロプロセッサ、FPGA(field-programmable gate array)、又はASIC(application-specific integrated circuit)を含むハードウェアを用いて実装されてよい。幾つかの他の例では、各モジュールは、ハードウェア及びソフトウェアの組み合わせを用いて実装されてよい。本開示では、これらの各モジュールにより実行されるとして記載される動作は、これらの各モジュールが対応するシステムに実行するよう指示し得る動作を含んでよい。
キュレーションモジュール114は、MLプロジェクトコーパス104に既存のMLプロジェクトを格納する前又は後に、OSS MLプロジェクトデータベース102a~102nに格納された既存のMLプロジェクトに関して、動作シリーズを実行するよう構成されてよい。例えば、キュレーションモジュール114は、未処理(raw)MLプロジェクトをMLプロジェクトコーパス104に格納する前又は後に自動的にキュレーションするために、OSS MLプロジェクトデータベース102a~102nから未処理MLプロジェクトを自動的にマイニング(mine)するよう構成されてよい。MLプロジェクトコーパス104は、OSS MLプロジェクトデータベース102a~102nからキュレーションされた既存のMLプロジェクトのレポジトリであってよい。幾つかの実施形態では、MLプロジェクトコーパス104は、自動「検索及び適応」スタイルのワークフローの中で利用され得るクリーニングされた高品質のインデックス付けされた既存のMLプロジェクトの大規模コーパスであってよい。このスタイルのワークフローでは、検索は、新しいMLタスク及び新しいデータセットに関連し及び新しいMLパイプラインを含む新しいMLプロジェクトを構築するための「シード」として使用されるべき存MLプロジェクトを識別することを含んでよい。更に、このスタイルのワークフローでは、適応することは、対話型の合成アプローチを使用して関連する既存のMLプロジェクトを適応し、新しいMLプロジェクトの新しいMLパイプラインを生成することを含んでよい。
幾つかの実施形態では、キュレーションモジュール114は、既存のMLプロジェクトをマイニングし及びキュレーションし、その結果、多様な高品質の既存のMLプロジェクトのみがMLプロジェクトコーパス104に格納されるようにするよう構成されてよい。また、幾つかの実施形態では、キュレーションモジュール114は、(例えば、動的プログラムスライシングを用いて)既存のMLプロジェクトのMLパイプラインをクリーニング(clean)するよう構成されてよい。更に、幾つかの実施形態では、キュレーションモジュール114は、各MLプロジェクトの品質及び多様性をキャプチャするために特徴セットを計算し、OSS MLプロジェクトデータベース102a~102nからMLプロジェクトコーパス104に格納すべき最適な数の既存のMLプロジェクトを選択するよう構成されてよい。更に、幾つかの実施形態では、キュレーションモジュール114は、既存のMLプロジェクトのMLパイプラインの中の機能ブロックを自動的に識別し及びインデックス付けするよう構成されてよい。伝統的なソフトウェアプログラムと異なり、MLプロジェクトのMLパイプラインは、通常、データセットプロパティに基づく明確に定義されたワークフローに従い、機能ブロックのシーケンスとして考えることができる。従って、キュレーションモジュール114は、MLパイプラインの中で(「読み出しデータ(read data)」のような意味論的ラベルを用いて)自動的に機能ブロックを抽出し及びラベル付けして、それらをMLプロジェクトコーパス104の中で正しくインデックス付けし、その結果、それらが新しいデータセット106及び新しいMLタスク108について効率的に検索され新しいMLパイプライン112を効率的に合成できるようにするよう構成されてよい。より具体的には、キュレーションモジュール114は、適切なレベルでMLパイプラインを抽象化して、グラフに基づくシーケンスマイニングアルゴリズムを利用して、カスタム及びイディオム(idiomatic)機能ブロックの両方を抽出するよう構成されてよい。最後に、キュレーションモジュール114は、意味論的ラベルを生成し、各機能ブロックに割り当てるよう構成されてよい。
検索モジュール116は、MLプロジェクトコーパス104に格納された既存のMLプロジェクトを通じて検索することに関する動作シリーズを実行するよう構成されてよい。例えば、検索モジュール116は、例えばデータ科学者118からの新しいMLプロジェクトのための新しいデータセット106及び新しいMLタスク108を受信するよう構成されてよい。受信すると、検索モジュール116は、先ず、自動的に階層構造アプローチを使用して、MLモデルを用いて新しいMLプロジェクトのための機能ブロックレベルのパイプラインスケルトンを合成するよう構成され、次に、MLプロジェクトコーパス104を通じて明示的に検索して、関連する既存のMLプロジェクト110を識別するよう構成されてよい。該関連する既存のMLプロジェクト110から、このパイプラインスケルトンをインスタンス化する。
適応モジュール120は、関連する既存のMLプロジェクト110のMLパイプライン111から機能ブロックを合成し及び新しいMLプロジェクト112へと適応することに関する動作シリーズを実行するよう構成されてよい。例えば、適応モジュール120は、自動的にMLパイプライン111から機能ブロックを選択して、パイプラインスケルトンを新しいMLプロジェクト(例えば、新しいデータセット106、新しいMLタスク108、及び新しいMLパイプライン112を含む)のための新しいMLパイプライン112へと具体化(concretize)するよう構成されてよい。更に、適応モジュール120は、新しいデータセット106で新しいMLタスク108を実行するために新しいMLパイプライン112が実行可能になるよう、新しいMLパイプライン112の機能ブロックを適応するよう構成されてよい。
従って、幾つかの実施形態では、非専門家であってよいデータ科学者118は、新しいMLプロジェクトのための新しいデータセット106及び新しいMLタスク108を組織立てる(formulate)だけでよく、キュレーションモジュール114、検索モジュール116、及び適応モジュール120が、(例えば、ここに開示される方法のうちの1つ以上を実行することにより)一緒に機能して、新しいデータセット106で新しいMLタスク108を実行するために直ちに実行可能な新しいMLプロジェクトのための新しいMLパイプライン112を最終的に生成でき、データ科学者118による変更を伴わない。
変更、追加、又は省略が、本開示の範囲から逸脱することなく図1に対して行われてよい。例えば、環境100は、図示され本開示で説明されるよりも多数又は少数の要素を含んでよい。
図2は、本開示に記載される少なくとも1つの実施形態に従い構成される、自動的に既存のMLプロジェクトをコーパスへとキュレーションすることに関連する例示的な環境200を示す図である。図1の環境100と同様に、環境200は、OSS MLプロジェクトデータベース102a~102n、キュレーションモジュール114、及びMLプロジェクトコーパス104を含んでよい。更に、環境200に開示されるように、データ科学者202a~202nが既存のMLプロジェクト204をOSS MLプロジェクトデータベース102a~102nに格納した後に、キュレーションモジュール114は、OSS MLプロジェクトデータベース102a~102nをクロールして、既存のMLプロジェクト204のセットを生成するよう構成されてよい。既存のMLプロジェクト204のこのセットは、次にキュレーションモジュール114により更に分析されてよい。
既存のMLプロジェクト204を更に分析している間に、キュレーションモジュール114は、品質及び関連について既存のMLプロジェクト204をフィルタリングし206、関連のないコンテンツを識別し及び/又は除去するために既存のMLプロジェクト204をクリーニングする208よう構成されてよい。このフィルタリング206及びクリーニング208は、既存のMLプロジェクト204における種々の課題を克服するよう構成されてよい。例えば、既存のMLプロジェクト204のうちの幾つかの幾つかの計算ノートブックは、高品質のMLプロジェクトコーパスを構築するのに十分に高い品質を有しないことがある。従って、このフィルタリング206は、MLプロジェクトコーパス104に含めるために、(例えば、カスタムコードではなく標準的なAPIを使用する、適切な分類器を使用する、及び高精度を有する)より高い品質の計算ノートブックを自動的に識別してよい。更に、高品質のMLプロジェクトコーパスは、多様な計算ノートブックを有する既存のMLプロジェクトを含むべきである。従って、このフィルタリング206は、MLプロジェクトコーパス104に含めるために、より大きな多様性の計算ノートブックを自動的に識別してよい。また、既存のMLプロジェクト204の計算ノートブックの中のMLパイプラインは、相当な量の無関係なコード(例えば、デバッギングコード、視覚化コード、及び/又は実験用コード)を有し得るJupyterノートブック、或いは良好な品質のコードを実行不能にしてしまう非推奨APIのように、通常、ノイズが多いことがある。従って、このクリーニング208は、計算ノートブックの中のMLパイプラインを自動的にクリーニングして、ノイズ(例えば、無関係なコード及び/又は非推奨API)を解決してよい。無関係なコードは、MLパイプライン全体にプログラム的に貢献せず、従って全体的な技術にノイズを加える可能性のあるコードの部分をマークすることにより、解決されてよい。非推奨APIは、API適応技術を用いて非推奨APIを新しいAPIにより自動的に置き換えることにより、解決されてよい。
更に、キュレーションモジュール114は、クリーニングされフィルタリングされた既存のMLプロジェクトを抽象化して210、インデックス付けを目的として既存のMLプロジェクト204のプロジェクトアーチファクト212を生成するよう構成されてよい。この抽象化210及び生成されたプロジェクトアーチファクト212は、既存のMLプロジェクト204における種々の課題を克服するよう構成されてよい。例えば、よりよい検索を実現するように、MLプロジェクトコーパス104の中のMLパイプラインを表すことは困難であり得る。従って、この抽象化210は、MLパイプラインコードの中の機能ブロックを自動的に識別して、更にデータセットの中の特定のメタ特徴と機能ブロックとの間のマッピングを識別してよい。更に、機能ブロックが任意のコード行の中で識別され得るように機能ブロックを見付けるために抽象化の適切なレベルを決定することは困難であり得る。従って、この抽象化210は、MLパイプラインがAPIに大きく依存することが多く、同様の機能ブロックが同様のAPIセットを含むことが多く、及び計算ノートブック(例えば、Jupyterノートブック)の構造も機能ブロックに関する重要な情報を提供し得る、という見識に基づき、機能ブロックを自動的に識別してよい。また、各機能ブロックの意味論的目的を抽出すること、及び意味論的ラベルを使用して特定の機能の代替的実装を識別することは困難であり得る。従って、抽象化210は、計算ノートブック(例えば、Jupyterノートブック)のマークダウンセルから導出された情報を利用し、ソースコードコメント、及びライブラリAPIの文書は、意味論的ラベルを自動的に生成するために,及び機能ブロックが異なるシンタックスを使用する場合でも機能的に等価である機能ブロックを識別するために意味論的ラベルを後に使用するために提供する。この方法では、機能ブロックの代替的実装が識別され一緒にグループ化できる(例えば、このグループ化は「クラスタリング」と呼ばれてよい)。
最後に、フィルタリング260、クリーニング208、及び抽象化210の前及び/又は後に、(例えばここに開示された方法のうちの1つ以上を実行することにより)プロジェクトアーチファクト212を生成するために、キュレーションモジュール114は、MLプロジェクトコーパス104にキュレーションされた既存のMLプロジェクト204を格納するよう構成されてよい。従って、幾つかの実施形態では、環境200は、既存のMLプロジェクトをMLプロジェクトコーパス104へと自動的にキュレーションして、既存のMLプロジェクトが後に検索され新しいMLプロジェクトに適応されることを可能にするために利用されてよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく図2に対して行われてよい。例えば、環境200は、図示され本開示で説明されるよりも多数又は少数の要素を含んでよい。
図3は、コーパスに格納された既存のMLプロジェクトのパイプラインから新しいMLプロジェクトのパイプラインを自動的に生成することに関連する例示的な環境300を表す図である。図1の環境100と同様に、環境300は、MLプロジェクトコーパス104、新しいデータセット106、新しいMLタスク108、関連する既存のMLプロジェクト110、新しいMLパイプライン112、検索モジュール116、及び適応モジュール120を含んでよい。更に、環境300で開示されるように、既存のMLプロジェクトがMLプロジェクトコーパス104に格納された後に、検索モジュール116は、新しいデータセット106及び新しいMLプロジェクト310のための新しいMLタスク108を、例えばデータ科学者118から受信するよう構成されてよい。次に、検索モジュール116は、(MLプロジェクトコーパス104から導出されたトレーニングデータを用いて予めトレーニングされてよい)パイプラインスケルトンMLモデル302を利用して、新しいMLタスクプロジェクト310のためにブロックレベルのパイプラインスケルトン304を合成するよう構成されてよい。
次に、検索モジュール116は、パイプラインスケルトン304に基づきクエリ306を生成し、キュレーションされラベル付けされたMLプロジェクトコーパス104を通じて関連する既存のMLプロジェクト110を検索するよう構成されてよい。このクエリ306は、種々の課題を克服するよう構成されてよい。例えば、新しいデータセット106及び新しいMLタスク108から効果的なクエリを組織立てることは困難であり得る。従って、クエリ306は、新しいMLタスク108を伴う新しいデータセット106の中に特定のメタ特徴と、このデータセットのためにMLパイプラインソリューションが含むべき機能ブロックのセットと、の間にマッピングが存在することが多いという見識に基づき組織立てられてよい。従って、パイプラインスケルトン304に含まれる機能ブロックのセットは、クエリ306の基礎を形成できる。
次に、検索モジュール116は、クエリ306に基づきMLプロジェクトコーパス104を検索するよう構成されてよい。この検索は、種々の課題を克服するよう構成されてよい。例えば、多くの他の関連する計算ノートブックの中から、適応すべきMLプロジェクトコーパス104の既存のMLプロジェクトの中の最良の計算ノートブックを識別することは困難であり得る。従って、検索は、新しいMLパイプライン112のために必要な機能ブロックを有する多くの計算ノートブックが存在する可能性があるという見識に基づき組織立てられてよい。従って、品質を保証しながら、全部の必要な意味論的ラベルを有する計算ノートブックの小型セットが、検索の間に識別され得る。
次に、幾つかの実施形態では、適応モジュール120は、関連する既存のMLプロジェクト110のMLパイプライン111から機能ブロックのパイプラインマージ308を実行して、新しいMLパイプライン212を生成するよう構成されてよい。このパイプラインマージ308は、種々の課題を克服するよう構成されてよい。例えば、全部の計算ノートブックをマージすることは困難であり得る。従って、結果として生じるコードは、構文的に正しく、新しいデータセット106及び新しいMLタスク108のために適切なソリューションである。従って、パイプラインマージ308は、(パイプラインスケルトン304からパイプラインマージ308への矢印により示されるように)パイプラインスケルトン304を利用するよう構成されてよく、プログラム分析は、新しいMLパイプライン112のコードを構文的に正しくし及び更なる変更を伴わずに実行可能にするために利用されてよい。
従って、幾つかの実施形態では、非専門家であってよいデータ科学者118は、新しいMLプロジェクトのための新しいデータセット106及び新しいMLタスク108を組織立てる(formulate)だけでよく、検索モジュール116及び適応モジュール120が、(例えば、ここに開示される方法のうちの1つ以上を実行することにより)一緒に機能して、新しいデータセット106で新しいMLタスク108を実行するために直ちに実行可能な新しいMLプロジェクト310のための新しいMLパイプライン112を最終的に生成でき、一部にデータ科学者118による任意の更なる変更を伴わない。
変更、追加、又は省略が、本開示の範囲から逸脱することなく図3に対して行われてよい。例えば、環境300は、図示され本開示で説明されるよりも多数又は少数の要素を含んでよい。
図4は、本開示の少なくとも1つの実施形態による、例示的なコンピューティングシステム402のブロック図を示す。コンピューティングシステム402は、1つ以上のモジュール(例えば、図1~3のキュレーションモジュール114、検索モジュール116、又は適応モジュール120、或いはそれらの何らかの組合せ)に関連付けられた1つ以上の動作を実施し又は指示するよう構成されてよい。コンピューティングシステム402は、プロセッサ450、メモリ452、及びデータ記憶装置454を含んでよい。プロセッサ450、メモリ452、及びデータ記憶装置454は、通信可能に結合されてよい。
通常、プロセッサ450は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む、任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理装置を含んでよく、任意の適切なコンピュータ可読記憶媒体に格納された命令を実行するよう構成されてよい。例えば、プロセッサ450は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム命令を解釈し及び/又は実行し及び/又はデータを処理するよう構成される任意の他のデジタル若しくはアナログ回路を含んでよい。図4には単一のプロセッサとして示されるが、プロセッサ450は、個々に又は集合的に本開示に記載の任意の数の動作を実行する又は実行を指示するよう構成される任意の数のプロセッサを含んでよい。さらに、プロセッサのうちの1つ以上は、異なるサーバのような1つ以上の異なる電子装置上に存在してよい。
幾つかの実施形態では、プロセッサ450は、プログラム命令を解釈し及び/又は実行し、及び/又はメモリ820、データ記憶装置454、又はメモリ452及びデータ記憶装置454に格納されたデータを処理するよう構成されてよい。幾つかの実施形態では、プロセッサ450は、プログラム命令をデータ記憶装置454からフェッチし、プログラム命令をメモリ452にロードしてよい。プログラム命令がメモリ452にロードされた後に、プロセッサ450は、プログラム命令を実行してよい。
例えば、幾つかの実施形態では、上述のモジュール(例えば、キュレーションモジュール114、検索モジュール116、又は適応モジュール120、或いはそれらの何らかの組合せ)のうちの1つ以上は、プログラム命令としてデータ記憶装置454に含まれてよい。プロセッサ450は、データ記憶装置454から対応するモジュールのプログラム命令をフェッチしてよく、対応するモジュールのプログラム命令をメモリ452にロードしてよい。対応するモジュールのプログラム命令がメモリ452にロードされた後に、プロセッサ450はプログラム命令を実行し、その結果、コンピューティングシステムは、命令により指示されるように、対応するモジュールに関連付けられた動作を実施してよい。
メモリ452及びデータ記憶装置454は、格納されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有するコンピュータ可読記憶媒体を含んでよい。このようなコンピュータ可読記憶媒体は、プロセッサ450のような汎用又は専用コンピュータによりアクセスされ得る任意の市販の媒体を含んでよい。例として、限定ではなく、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ素子(例えば、個体メモリ装置)、又はコンピュータ実行可能命令若しくはデータ構造の形式で特定のプログラムコードを運ぶ又は格納するために使用され得る且つ汎用又は専用コンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形又は非一時的コンピュータ可読媒体を含んでよい。上記の組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ450に特定動作または一群の動作を実行させるよう構成される命令及びデータを含んでよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなくコンピューティングシステム402に対して行われてよい。例えば、幾つかの実施形態では、コンピューティングシステム402は、明示され又は記載されないことのある任意の数の他のコンポーネントを含んでよい。
図5は、本開示に記載された少なくとも1つの実施形態による、新しいMLプロジェクトにおける使用のために適応可能なコーパスに既存のMLプロジェクトを自動的にキュレーションする例示的な方法500のフローチャートである。方法500は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法500に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法500のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
幾つかの実施形態では、図2に示されるように、方法500は、キュレーションモジュール114により、既存のMLプロジェクト204のサブセットをMLプロジェクトコーパス104に格納する前に、既存のMLプロジェクト204をフィルタリング206及びクリーニング208するために利用されてよい。
方法500は、少なくともブロック502で、MLプロジェクトのレポジトリからMLプロジェクトのセットを収集するステップを含んでよい。幾つかの実施形態では、この収集するステップは、フィルタリング基準に基づいてよい。例えば、キュレーションモジュール114は、フィルタリング基準に基づき、OSS MLプロジェクトデータベース102a~102nから既存のMLプロジェクト204のセットを収集してよい。幾つかの実施形態では、MLプロジェクトのセットは、図6を参照して更に後述される方法600の1つ以上の動作に従い収集されてよい。
方法500は、ブロック504で、MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のセットの実行可能性を保証してよい。幾つかの実施形態では、MLパイプラインの実行可能性は、図7を参照して更に後述される方法700の1つ以上の動作に従い保証されてよい。更に、幾つかの実施形態では、MLパイプラインの実行可能性は、更に後述される図8A及び8BのMLパイプライン800及び850に示されるように、保証されてよい。
方法500は、ブロック506で、MLプロジェクトのセットの中のMLパイプラインの無関係な部分を識別するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のセットの無関係な部分を識別し注釈付け(annotate)してよい。幾つかの実施形態では、MLパイプラインの無関係な部分は、更に後述される図8A及び8BのMLパイプライン800及び850に示されるように、識別されてよい。
方法500は、ブロック508で、MLプロジェクトのセットについて品質特徴を収集するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のセットの品質特徴を生成してよい。幾つかの実施形態では、品質特徴は、更に後述される図9の表900に示されるように生成されてよい。
方法500は、ブロック510で、MLプロジェクトのセットについて多様性特徴を生成するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のセットについて多様性特徴を生成してよい。幾つかの実施形態では、多様性特徴は、更に後述される図10の表1000に示されるように生成されてよい。
方法500は、ブロック512で、品質特徴及び多様性特徴に基づき、MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップを含んでよい。例えば、キュレーションモジュール114は、品質特徴及び多様性特徴に基づき、既存のMLプロジェクト204のセットからMLプロジェクトのサブセットを選択してよい。幾つかの実施形態では、MLプロジェクトのサブセットは、図11を参照して更に後述される方法1100の1つ以上の動作に従いMLプロジェクトのセットから選択されてよい。
方法500は、ブロック514で、新しいMLプロジェクトにおいて使用するために適応され得るMLプロジェクトのコーパスに、MLプロジェクトのサブセットを格納するステップを含んでよい。例えば、キュレーションモジュール114は、(新しいMLプロジェクト310のような)新しいMLプロジェクトのために適応され得るMLプロジェクトコーパス104に、既存のMLプロジェクト204のサブセットを格納してよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法500に対して行われてよい。例えば、方法500の動作のうちの幾つかは、異なる順序で実施されてよい。追加又は代替として、2以上の動作が同時に実行されてよい。さらに、概説された工程及び動作は例として提供されたものであり、工程及び動作の幾つかは、開示した実施形態を減じることなく、任意であり、少ない工程及び動作に結合され、又は追加の工程及び動作に拡張されてよい。
図6は、本開示に記載される少なくとも1つの実施形態による、フィルタリング基準に基づき、MLプロジェクトの1つ以上のレポジトリからMLプロジェクトのセットを収集する例示的な方法600のフローチャートである。幾つかの実施形態では、図5の方法500に関して上述したブロック502の動作は、方法600に従い実行されてよい。
方法600は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法600に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法600のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
方法600は、ブロック602で、データセットの品質に基づき、MLプロジェクトの1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップを含んでよい。例えば、キュレーションモジュール114は、データセットの品質に基づき、OSS MLプロジェクトデータベース102a~102nからの既存のMLプロジェクト204の全部のデータセットをランク付けしてよい。幾つかの実施形態では、データセットの品質は、他のユーザによる投票(例えば、Kaggleにおける投票)に基づき、データセットがプロジェクトデータベースに(例えば、Kaggleに)ホスティングされたデータセットの「特徴付けられたセット(featured set)」の部分であることに基づき、又はデータセットがどれくらい最近のものかに基づき、決定されてよい。
方法600は、ブロック604で、第1の所定数の上位にランク付けされたデータセットを選択するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204から第1の所定数の上位にランク付けされたデータセットを選択してよい。
方法600は、ブロック606で、選択されたデータセットの各々について、重要性基準に基づき、対応するMLプロジェクトをランク付けするステップを含んでよい。例えば、キュレーションモジュール114は、選択されたデータセットの各々について、重要性基準に基づき、既存のMLプロジェクト204からの対応するMLプロジェクトをランク付けしてよい。幾つかの実施形態では、データセットの重要性は、他のユーザによる投票(例えば、Kaggleにおける投票)に基づき決定されてよい。他の実施形態では、データセットの重要性は、対応するパイプラインの精度に基づき決定されてよい。
方法600は、ブロック608で、MLプロジェクトのセットに包含するために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト20のセットに包含するために、既存のMLプロジェクト204から第2の所定数の上位にランク付けされたMLプロジェクトを選択してよい。例えば、(Kaggleの他のユーザによる賛成投票に基づき)上位15個の上位にランク付けされたMLプロジェクトがKaggleの中の上位150個のデータセットの各々について選択された場合、これは、2250個のMLプロジェクトを生成し得る。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法600に対して行われてよい。例えば、方法600の動作は、異なる順序で実施されてよい。更に、幾つかの実施形態では、方法600は、図5のブロック502に関して繰り返し又は同時に実行されてよい。
図7は、本開示に記載された少なくとも1つの実施形態による、MLプロジェクトのセットにおけるMLパイプラインの実行可能性を保証する例示的な方法700のフローチャートである。幾つかの実施形態では、図5の方法500に関して上述したブロック504の動作は、方法700に従い実行されてよい。
方法700は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法600に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法700のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
方法700は、ブロック702で、MLパイプラインの変更を伴わずにMLプロジェクト内のMLパイプラインが実行可能かどうかを決定するステップを含んでよい。実行可能な場合(ブロック702でYes)、方法700はブロック704に進んでよく、実行可能ではない場合(ブロック702でNo)、方法700はブロック706に進んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のうちの1つの中のMLパイプラインが変更せずに実行可能かどうかを決定してよい。
方法は、ブロック704で、MLプロジェクトのセットの中のMLパイプラインを維持するステップを含んでよい。例えば、キュレーションモジュール114は、MLパイプラインでAPI適応を実行する前又は後に、MLプロジェクトのMLパイプラインが実行可能であることに起因して、既存のMLプロジェクト204のセットの中のMLプロジェクトを維持してよい。
方法は、ブロック706で、MLパイプラインでAPI適応を実行した後にMLプロジェクト内のMLパイプラインが実行可能かどうかを決定するステップを含んでよい。実行可能な場合(ブロック706でYes)、方法700はブロック704に進んでよく、実行可能ではない場合(ブロック706でNo)、方法700はブロック708に進んでよい。例えば、キュレーションモジュール114は、MLパイプラインに対するAPI適応の実行後に、既存のMLプロジェクト204のうちの1つの中のMLパイプラインが実行可能かどうかを決定してよい。
方法は、ブロック708で、MLプロジェクトのセットからMLパイプラインを除去するステップを含んでよい。例えば、キュレーションモジュール114は、MLパイプラインでAPI適応を実行する前又は後のいずれにも、MLプロジェクトのMLパイプラインが実行可能ではないことに起因して、既存のMLプロジェクト204のセットからMLプロジェクトを除去してよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法700に対して行われてよい。例えば、方法700の動作は、異なる順序で実施されてよい。更に、幾つかの実施形態では、方法700は、図5のブロック504に関して繰り返し又は同時に実行されてよい。
図8Aは、既存のMLプロジェクトの例示的なMLパイプラインコード800を示し、図8Bは、図8Aの例示的なMLパイプラインコード800がクリーニングされることにより生じる、例示的なクリーニングされたMLパイプラインコード850を示す。MLパイプラインコード800は、既存のMLプロジェクト204のうちの1つの計算ノートブック(例えば、Jupyterノートブック)の部分であってよい。ここで、MLタスクは、年齢、仕事分類(workclass)、教育、職業、家格、及び複数の労働者の人種のような特徴を含むデータセットに基づき、人物が年収50kドルより多いかどうかを予測することである。図8A及び8Bは、方法500のブロック504及び506が既存のMLプロジェクト204のセットの中のMLパイプラインに関してどのように実行され得るかの例を提供するためにここで議論される。
図8A及び8Bに示した例では、示されたAPI適応は、MLパイプラインコード800に対して実行されてよく、結果として、MLパイプラインコードの実行可能性を保証するためにMLパイプラインコード850を生じる。更に、MLパイプラインコード800の無関係な部分は、MLパイプラインコード850の中で太字体及び斜体でマークされ、特定の環境ではこの無関係なコードを実行することを回避するべきであると識別されてよい。幾つかの実施形態では、これらの無関係な部分は、デバッギングコード、チェックコード、及びグラフ描画コードを含んでよい。
幾つかの実施形態では、MLパイプラインコード800の無関係な部分のこの識別は、MLプロジェクトP<D,L>のデータセットのプロパティ保存サンプルDsampleを生成すること(例えば、データセット全体を処理するのに関連する時間を低減するが、データセットをスマートサンプリングすることによりデータセットのプロパティの範囲を犠牲にしない)、MLパイプラインLの各ステートメントの中で変更された変数及びオブジェクトをトレースするためにMLパイプラインLをインストルメント化すること(instrumenting)、データセットのサンプルDsampleでインストルメント化されたMLパイプラインLinstrを実行して、実行トレースEを収集すること、MLパイプラインLの中のターゲットステートメントT(例えば、MLパイプラインコード850の中に示されるターゲットステートメント)を識別すること、ターゲットステートメントTから全部の変数及びオブジェクトBを抽出すること、実行トレースEから抽出された変数及びオブジェクトBのバックワードスライスBを生成すること、(注釈付けされたMLパイプラインLを生成するために)バックワードスライスBからのMLパイプラインの中のステートメントに関連有りとして及び注釈付けされたMLパイプラインLの中の全部の他のステートメントに関連無しとして注釈を付けること、を含んでよい。この方法では、ターゲットステートメントに関連するMLパイプラインコード800の中のステートメントのみが、関連有りとして注釈付けされる。幾つかの実施形態では、データセットのスマートサンプリングは、階層化サンプリングを用いて全部のカテゴリ値をカテゴリ列の元の割合で保持すること、連続する(数値的な)列の示された範囲に渡り一様にサンプリングすること、ストリング列についてインスタンスをランダムにサンプリングすること、列が元のデータの中で失われた値を有する場合に、データセットの縮小の後のその列に失われた値を有すること、のうちの1つ以上を含んでよい。幾つかの実施形態では、データセットのこのスマートサンプリングは、データセットの有意な縮小をもたらし得る。例えば、2GBのデータセットは、9MBにまで縮小されてよく、結果として10分~20秒にまで実行時間を短縮する。
幾つかの実施形態では、Jupyterノートブックの部分であてよいMLパイプラインコード800のクリーニングは、(プロジェクト選択のための)特徴抽出に及び検索及び適応ワークフローの後続のステップ(例えば、計算ノートブックのインデックス付け、検索、及び適応)により適するクリーニングされたMLパイプラインコード850をもたらし得る。
変更、追加、又は省略が、本開示の範囲から逸脱することなくMLパイプラインコード800及びクリーニングされたMLパイプラインコード850に対して行われてよい。例えば、MLパイプラインコード800の幾つかのステートメントは、異なる順序で実施されてよい。
図9は、例示的な品質特徴の表900である。図9は、方法500のブロック508が既存のMLプロジェクト204のセットに関してどのように実行され得るかの例を提供するためにここで議論される。図9に示した例では、品質特徴は、性能特徴、コード品質特徴、及びコミュニティメトリック特徴を含んでよい。これらの品質特徴は、既存のMLプロジェクト204のセットについて生成されてよい。これらの品質特徴の各々は、測定、メトリック、及び正規化メトリックを含んでよい。
幾つかの実施形態では、図9の表900に開示されるように、(例えば、方法500のブロック508で)既存のMLプロジェクト204のセットについて品質特徴を生成するステップは、既存のMLプロジェクト204のセットの中の各MLプロジェクトについて、MLプロジェクトのトレーニング済みMLモデルの精度、MLプロジェクトのMLパイプラインの文書化品質、MLプロジェクトのMLパイプラインのモジュール性品質、MLプロジェクトのMLパイプラインの標準API使用品質、MLプロジェクトの評価、に基づき、MLプロジェクトの数値品質スコアを生成するステップを含んでよい。
幾つかの実施形態では、品質特徴を抽出する目的は、MLプロジェクトコーパス104内の置かれる既存のMLプロジェクトの選択のための基礎を形成し得る特徴を計算することであってよい。これらの品質特徴は、トレーニングされたモデルの品質、コード構造、及びコミュニティによる価値、の観点で、MLパイプラインの本質的価値を表し得る。これらの品質特徴は、所与のMLパイプラインについて個別に評価でき、各MLパイプラインについてその品質を表す単一の数値スコア(例えば、0と1.0との間)として計算されてよい。幾つかの実施形態では、この単一の数値スコアは、以下の式に従い計算されてよい。
Figure 2022042495000002
ここで、fiは、表900による個々の特徴の値に対応し、uは、各特徴のそれらの相対的重要性を示す重みに対応し、nは、このような特徴の総数である。
変更、追加、又は省略が、本開示の範囲から逸脱することなく表900に対して行われてよい。例えば、追加品質特徴が、表900に開示された品質特徴に追加されてよい。
図10は、例示的な多様性特徴の表1000である。図10は、方法500のブロック510が既存のMLプロジェクト204のセットに関してどのように実行され得るかの例を提供するためにここで議論される。図10に示した例では、多様性特徴は、データセット特徴及び計算ノートブック特徴を含んでよい。これらの多様性特徴は、既存のMLプロジェクト204のセットについて生成されてよい。これらの多様性特徴の各々は、意図、メトリック、及び正規化を含んでよい。
幾つかの実施形態では、表1000に開示されたように、(例えば、方法500のブロック510で)既存のMLプロジェクト204のセットについて多様性特徴を生成するステップは、既存のMLプロジェクト204のセットの中の各MLプロジェクトについて、MLプロジェクトのデータセットのサイズ、MLプロジェクトのデータセットの中の失われた値の存在又は不存在、MLプロジェクトのデータセットの中のデータのタイプ、MLプロジェクトのMLパイプラインの中の所定のライブラリAPIの存在又は不存在、MLプロジェクトのデータセットの中の成分データストリームの相対範囲、に基づき、MLプロジェクトについて特徴ベクトルを抽出するステップを含んでよい。
幾つかの実施形態では、多様性特徴を抽出する目的は、MLプロジェクトコーパス104内の置かれる既存のMLプロジェクトの選択のための基礎を形成し得る特徴を計算することであってよい。これらの多様性特徴は、MLプロジェクトコーパス104の中で最終的に利用可能な広範なソリューションを追加するために、MLパイプラインの能力をキャプチャしてよい。これらの多様性特徴は、他のMLパイプラインが選択されることに関して評価されてよく、多様性に対する自身の貢献を表す各MLプロジェクトの特徴ベクトルとして計算されてよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく表1000に対して行われてよい。例えば、追加多様性特徴が、表1000に開示された多様性特徴に追加されてよい。
図11は、本開示で記載される少なくとも1つの実施形態による、品質特徴及び多様性特徴に基づき、MLプロジェクトのセットからMLプロジェクトのサブセットを選択する例示的な方法1100のフローチャートである。幾つかの実施形態では、図5の方法500に関して上述したブロック512の動作は、方法1100に従い実行されてよい。
方法1100は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法600に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法1100のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
方法1100は、ブロック1102で、MLプロジェクトのセットの中の各MLプロジェクトについて、MLプロジェクトの品質特徴に基づき品質指標を生成するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のセットの中の各MLプロジェクトについて、MLプロジェクトの品質特徴に基づき品質指標を生成してよい。例えば、クリーニングされたMLプロジェクトのセットが次式のように与えられ:
Figure 2022042495000003
これは、以下の領域から導出される特徴を集合的に示す:
Figure 2022042495000004
各MLプロジェクトPは品質qを有してよく、次式の特徴セットを含む:
Figure 2022042495000005
方法1100は、ブロック1104で、MLプロジェクトのセットの中の各MLプロジェクトについて、MLプロジェクトの品質指標から重みを生成するステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のセットの中の各MLプロジェクトについて、MLプロジェクトの品質指標から重みを生成してよい。例えば、各プロジェクトについて、その重みは次式の通りである:
Figure 2022042495000006
方法1100は、ブロック1106で、重み及び多様性特徴に基づき、MLプロジェクトのセットの中のMLプロジェクトから加重セットカバー(Weighted Set Cover (WSC))問題を構成するステップを含んでよい。例えば、キュレーションモジュール114は、重み及び多様性特徴に基づき、既存のMLプロジェクト204のセットの中のMLプロジェクトからWSC問題を構成してよい。各MLパイプラインの品質指標から重みを計算することは、選択されたパイプラインの集合的品質を最大化するパイプラインのセットを選択する元のタスク(つまり最大化目標)を、WSC問題として自然に解くことが可能な最小重みを有するパイプラインのセットを選択する問題(つまり最小化目標)として、定式化することを可能にし得る。更に、(Wの選択により)品質値に関して重みをより大きくすることは、選択されたセットの濃度(cardinality)を最小化する動機付けをする。WSCがNP完全(NP-Complete)問題なので、WSCのよく知られた近似アルゴリズムは、上記を解くために使用されてよい。2つの可能性は、欲張りアルゴリズム又は線形計画(Linear Programming (LP))緩和(relaxation)に基づくアルゴリズムを含む。
方法は、ブロック1108で、MLプロジェクトのサブセットを選択するためにWSC問題を解くステップを含んでよい。例えば、キュレーションモジュール114は、既存のMLプロジェクト204のサブセットを選択するためにWSC問題を解いてよい。WSC問題を解くことは、最小重みのサブセットについて解いてよく、そうすることは、選択されたパイプラインの集約的品質を間接的に最大化し得る。例えば、目標は、Uの中の全部の特徴を一緒に示す以下のサブセットを選択することであってよい:
Figure 2022042495000007
つまり、
Figure 2022042495000008
これは、選択されたプロジェクトSの集合的品質を最大化し、つまり次式を最大化する:
Figure 2022042495000009
幾つかの実施形態では、これは、最小数のMLプロジェクトを選択するという理想的なもの(ideal)を含んでよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法1100に対して行われてよい。例えば、方法1100の動作は、異なる順序で実施されてよい。更に、幾つかの実施形態では、方法1100は、図5のブロック512に関して繰り返し又は同時に実行されてよい。
図12は、本開示に記載された少なくとも1つの実施形態による、新しいMLプロジェクトにおける使用のために適応可能なコーパスの中の既存のMLプロジェクトのパイプラインの中の機能ブロックを自動的にラベル付けする例示的な方法1200のフローチャートである。方法1200は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法1200に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法1200のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
幾つかの実施形態では、図2に示されるように、方法1200は、キュレーションモジュール114により、既存のMLプロジェクト204のサブセットをMLプロジェクトコーパス104に格納する前に、既存のMLプロジェクト204上でプロジェクトアーチファクト212を抽象化し210、生成するために利用されてよい。
方法1200は、ブロック1202で、既存のMLプロジェクトのコーパスに格納された既存のMLプロジェクトのMLパイプラインを正規化するステップを含んでよい。例えば、キュレーションモジュール114は、(場合によっては既存のMLプロジェクト204がフィルタリング206及びクリーニング208された後に、)MLプロジェクトコーパス104に格納される既存のMLプロジェクト204のサブセットのMLパイプラインを正規化してよい。幾つかの実施形態では、MLパイプラインは、更に後述される図13A及び13Bの元のMLパイプラインコード1300及び正規化MLパイプラインコード1350に示されるように、正規化されてよい。
方法1200は、ブロック1204で、正規化MLパイプラインから機能ブロックを抽出するステップを含んでよい。例えば、キュレーションモジュール114は、正規化MLパイプラインから機能ブロックを抽出してよい。幾つかの実施形態では、機能ブロックは、図14を参照して更に後述される方法1400の1つ以上の動作に従い抽出されてよい。
方法1200は、ブロック1206で、正規化MLパイプラインの中の機能ブロックの各々にラベルを割り当てるステップを含んでよい。例えば、キュレーションモジュール114は、正規化MLパイプラインの中の機能ブロックの各々にラベルを割り当ててよい。幾つかの実施形態では、ラベルは、図16を参照して更に後述される方法1600の1つ以上の動作に従い割り当てられてよい。
方法1200は、ブロック1208で、機能ブロックに割り当てられたラベルに基づき、コーパス内のMLパイプラインの各々をインデックス付けするステップを含んでよい。例えば、キュレーションモジュール114は、機能ブロックに割り当てられたラベルに基づき、MLプロジェクトコーパス内のMLパイプラインの各々をインデックス付けしてよい。
方法1200は、ブロック1210で、コーパス内の機能ブロックに割り当てられたラベルを利用して、新しいMLプロジェクトの新しいデータセットで新しいMLタスクを実行するために新しいMLパイプラインを生成するステップを含んでよい。例えば、検索モジュール116及び適応モジュール120は、MLプロジェクトコーパス104内の機能ブロックに割り当てられたラベルを利用して、新しいMLプロジェクト310の新しいデータセット106で新しいMLタスク108を実行するために新しいMLパイプライン112を生成してよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法1200に対して行われてよい。例えば、方法1200の動作のうちの幾つかは、異なる順序で実施されてよい。追加又は代替として、2以上の動作が同時に実行されてよい。さらに、概説された工程及び動作は例として提供されたものであり、工程及び動作の幾つかは、開示した実施形態を減じることなく、任意であり、少ない工程及び動作に結合され、又は追加の工程及び動作に拡張されてよい。
図13Aは、正規化前の既存のMLプロジェクトの例示的な元のMLパイプラインコード1300を示し、図13Bは、元のMLパイプラインコード1300の正規化後の例示的な正規化MLパイプラインコード1350を示す。もとのMLパイプラインコード1300は、既存のMLプロジェクト204のうちの1つの計算ノートブック(例えば、Jupyterノートブック)の部分であってよい。ここで、MLタスクは、年齢、仕事分類(workclass)、教育、職業、家格、及び複数の労働者の人種のような特徴を含むデータセットに基づき、人物が年収50kドルより多いかどうかを予測することである。図13A及び13Bは、方法1200のブロック1202が既存のMLプロジェクト204のセットの中のMLパイプラインに関してどのように実行され得るかの例を提供するためにここで議論される。
図13A及び13Bに示される例では、元のMLパイプラインコード1300は変数名を正規化すること、列の名称を列のデータタイプで置き換えること、APIステートメントからパラメータを除去すること、及びAPIステートメントの繰り返されるインスタンスをAPIステートメントの単一のインスタンスに畳むこと(collapsing)、のうちの1つ以上を含む種々の方法で正規化されてよい。例えば、元のMLパイプラインコード1300の中の変数名「dataset」、「array」、「X」、「Y」、「X_train」、「X_validation」、「Y_train」、「Y_validation」、「random_forest」、「predictions」は、それぞれ正規化MLパイプラインコード1350の中の「_var_」に正規化されてよい。また、元のMLパイプラインコード1300の中の列「workclass」、「occupation」、「native.country」、「sex」は、それぞれ正規化MLパイプラインコード1350の中の「_str_category_」に正規化されてよい。更に、元のMLパイプラインコード1300の中のAPIステートメントのパラメータ「filna」、「map」、「train_test_split」、「RandomForestClassifier」、「fit」、「predict」(例えば、「X」、「United-States」、「Male」、「0」、「Female」、「1」等のようなパラメータ)の各々は、それぞれ正規化MLパイプラインコード1350の中のパラメータを除去することにより正規化されてよい。また、元のMLパイプラインコード1300の中の3回繰り返されるAPIステートメント:
Figure 2022042495000010
は、図15の正規化MLパイプラインコード1500の中の「x3」ラベルにより開示されるように、APIステートメントの単一のインスタンスに畳まれてよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく元のMLパイプラインコード1300及び正規化MLパイプラインコード1350に対して行われてよい。例えば、元のMLパイプラインコード1300の幾つかのステートメントは異なる順序で実施されてよく、他の正規化が元のMLパイプラインコード1300に実行されてよい。
図14は、本開示に記載される少なくとも1つの実施形態による、イディオム機能ブロック及びカスタム機能ブロックを識別する例示的な方法1400のフローチャートを示す。幾つかの実施形態では、図12の方法1200に関して上述したブロック1204の動作は、方法1400に従い実行されてよい。
方法1400は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法1400に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法1400のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
幾つかの実施形態では、方法1400は、MLプロジェクトコーパス104に格納された既存のMLプロジェクトの各々の各MLパイプラインをコードセルに分割するために利用されてよい。幾つかの実施形態では、計算ノートブック(例えば、Jupyterノートブック)は、自然に構造化されて、計算ノートブックの中の全部のコードがコードセルのセットに組織化され、そのそれぞれは最初に異なる機能ブロックであると想定されてよいが、この想定は追加分析の後に無効になってよい。方法1400は、次に、イディオム機能ブロックとしてコードセルに渡り繰り返されるステートメントグループを識別するために、及びカスタム機能ブロックとしてコードセルの中の全部の他のステートメントグループを識別するために利用されてよい。
方法1400は、ブロック1402で、有向グラフを生成するステップを含んでよい。例えば、キュレーションモジュール114は、有向グラフを生成してよい(例えば、図15に示した有向グラフを参照)。幾つかの実施形態では、有向グラフ内の各ノードは、MLプロジェクトコーパス104内でのそれらの発生により正規化されたステートメントを表してよく、各エッジは、エッジが接続する2個のノードに対応するステートメントの共起の平均確率スコアを表してよい。1つのセルの最後のステートメントと次のセルの最初のステートメントとの間に接続が存在しなくてよい。例えば、2個のノードA及びBが与えられた場合、それらのエッジの値は次式のように表されてよい:
Figure 2022042495000011
方法1400は、ブロック1404で、コードセルの各々の中の各ステートメントについて、有向グラフの中のノードとしてステートメントを追加するステップ、又は該ステートメントの有向グラフの中の既存のノードの中のカウントをインクリメントするステップと、ブロック1404bで、コードセルの中のステートメントと該ステートメントの直前のステートメントとの間の共起スコアを計算するステップと、ブロック1404cで、共起スコアが共起スコア閾値より大きい場合に、ステートメントのノードと該ステートメントの直前のステートメントのノードとの間のエッジを生成するステップと、を含んでよい。例えば、コードセルの各々の中の各ステートメントについて(例えば、Jupyterノートブックのような計算ノートブックの中の各コードセル)、キュレーションモジュール114は、有向グラフの中のノードとしてステートメントを追加するか、又は該ステートメントの有向グラフの中の既存のノードの中のカウントをインクリメントし(例えば、各ノードの内側にカウントを有する、図15に示した有向グラフのノードを参照)、コードセルの中のステートメントと該ステートメントの直前のステートメントとの間の共起スコアを計算し(例えば、図15に示した複数行のイディオムの有向グラフの中の共起スコアを参照)、共起スコアが共起スコア閾値より大きい場合に、ステートメントのノードと該ステートメントの直前のステートメントのノードとの間のエッジを生成してよい(例えば、図15に示した複数行のイディオムの有向グラフの中のノードの間のエッジを参照)。幾つかの実施形態では、エッジのこの生成は、代替として、共起スコアに関係なく最初に全部のエッジを生成するが、次に特定の閾値より小さい共起スコアを有する全部のエッジを除去することにより実行されてよい。閾値は、経験的に決定されてよい。エッジの除去の後に、接続されたコンポーネントのセットが残ってよい。ここで、各コンポーネントは、イディオムを表す(例えば、機能を実装するために一緒に生じるステートメント/APIのセット)。
方法1400は、ブロック1406で、イディオム機能ブロックとして、エッジにより接続された全部のノードをマークするステップを含んでよい。例えば、キュレーションモジュール114は、エッジにより接続された全部のノードを、イディオム機能ブロックとしてマークしてよい(例えば、図15に示した複数行のイディオムの有向グラフの中のエッジにより接続されたノードを参照)。
方法1400は、ブロック1408で、正規化MLパイプラインのうちの任意のものの中で、イディオム機能ブロックのうちの1つとしてマークされていない、カスタム機能ブロックのような、連続するステートメントに対応するノードの各セットをマークするステップを含んでよい。例えば、キュレーションモジュール114は、イディオム機能ブロックのうちの1つとしてマークされていない、カスタム機能ブロックのような、正規化MLパイプラインのうちのいずれかの中の連続するステートメントに対応するノードの各セットをマークしてよい(例えば、図15に示した単一行の機能ブロック及び複数行の機能ブロックを参照)。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法1400に対して行われてよい。例えば、方法1400の動作は、異なる順序で実施されてよい。更に、幾つかの実施形態では、方法1400は、図12のブロック1204に関して繰り返し又は同時に実行されてよい。
図15は、有向グラフを用いて正規化MLパイプラインから機能ブロックを抽出することを示す。図15は、方法1200のブロック1204、及び方法1400のブロック1402~1408が正規化MLパイプラインコード1500に関してどのように実行され得るかの例を提供するためにここで議論される。図15に示した例では、正規化MLパイプラインコード1500は、1つ以上の有向グラフを生成するために使用されてよい。ここで、各ノードはステートメントを表し、各エッジは、閾値より高いスコアを有するステートメントの間の共起を表す。単一行の機能ブロックにおいて開示したように、全部の正規化MLパイプラインに渡り、ステートメント1が94回発生し、ステートメント2が6回発生し、ステートメント3が6回発生する。更に、複数行の機能ブロックにおいて開示したように、ステートメント4、5、6、7は1回のみ発生する。これは、これらのステートメントが正規化MLパイプラインコード1500にのみ現れ、任意の他の正規化MLパイプラインに現れないことを示す。また、複数行のイディオムにおいて開示したように、ステートメント8が10回発生し、ステートメント9が10回発生し、ステートメント11が2回発生する。対応する共起スコアがそれぞれ閾値スコア(例えば、0.5の閾値)より高いエッジは、ステートメントシーケンス8、9、10、及び8、9、11が複数の正規化MLパイプライン内に一緒に現れることを示し、従って、それらが現れる各々の正規化MLパイプラインの中でイディオム機能ブロックとして一緒にマークされるべきである。更に、イディオム8、9、10を正規化MLパイプラインコード16500の中でイディオム機能ブロックとしてマークした後に、正規化MLパイプラインコード1500内の残りのステートメントは、それらの存在するコードセルの境界により、単一行の機能ブロック1、2、3、及びステートメント4、5、6、7を含む複数行のカスタム機能ブロックに分解できる。
変更、追加、又は省略が、本開示の範囲から逸脱することなく図15の正規化MLパイプラインコード1500及び有向グラフに対して行われてよい。例えば、追加の正規化MLパイプラインコードのための追加有向グラフが追加されてよい。
図16は、正規化MLパイプラインの中の機能ブロックの各々にラベルを割り当てる例示的な方法1600のフローチャートである。幾つかの実施形態では、図12の方法1200に関して上述したブロック1206の動作は、方法1600に従い実行されてよい。
方法1600は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~2のキュレーションモジュール114又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法1600に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法1600のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
方法1600は、ブロック1602で、機能ブロック内の任意のコメントからテキストを抽出するステップ、又は、機能ブロック内にコメントが存在しないとき、機能ブロック内の任意のAPIステートメントの文書からテキストをマイニングするステップを含んでよい。例えば、キュレーションモジュール114は、機能ブロック内の任意のコメント(例えば、正規化MLパイプラインコード1500内の各機能ブロックの前にある「#」で始まるステートメント)からテキストを抽出するか、又は、機能ブロック内にコメントが存在しないとき、機能ブロック内の任意のAPIステートメントの文書(例えば、APIコードをホスティングするウェブサイトにあるようなAPIコードのレポジトリにおいて取得できるAPIステートメントの文書)からテキストをマイニングしてよい。この抽出又はマイニングは、追加又は代替として、標準的な前処理技術を適用することにより(例えば、停止語の除去、語幹処理、トークン化、等)、抽出又はマイニングされたテキストを前処理することを含んでよい。
方法1600は、ブロック1604で、抽出又はマイニングされたテキスト内の第1共通動詞及び名詞又は名詞句を識別するステップを含んでよい。例えば、キュレーションモジュール114は、抽出又はマイニングされたテキスト内の共通動詞(例えば、「scale」又は「apply」)及び名詞又は名詞句(例えば、「data」又は「standard」又は「unit variance」)を識別してよい。方法1600の文脈では、用語「共通」は、イディオム機能ブロックの複数のインスタンスに渡り共通である又はラベルに渡り共通である動詞、名詞、又は名詞句を表してよい。幾つかの実施形態では、ブロック1604は、イディオムブロックの全部のインスタンスについて、ラベルを形成する可能性のある抽出又はマイニングされたテキストから、イディオム機能ブロックの各インスタンスについて、名詞/動詞候補を抽出するステップを含んでよい。
方法1600は、ブロック1606で、第1共通動詞及び名詞又は名詞句に基づき、機能ブロックのラベルを生成するステップを含んでよい。例えば、キュレーションモジュール114は、「scale the data to be between -1 and 1(-1と1の間になるようデータをスケーリングする)」というコメントから、「scale date」というラベルを生成してよい。幾つかの実施形態では、このラベルを生成することは、最も重要な動詞及び名詞又は名詞句を取り入れ、これらの単語を機能ブロックの及び同じイディオム機能ブロックの他のインスタンスの意味論的ラベルとして割り当てることを含んでよい。これらの実施形態では、最も重要な単語は、上位N個の頻繁に使用された単語として決定されてよく、又はトピックモデル化を通じて決定されてよく、又は何らかの他の方法で決定されてよい。幾つかの実施形態では、ブロック1606は、イディオム機能ブロックの各インスタンスにより貢献されるラベル候補の中で一致動作(consensus operation)を行い、これらの異なる候補に渡り最も重要な共通名詞/動詞インスタンスを見付けるステップを含んでよい。これは、イディオム機能ブロックの全部のインスタンスについて、初期ラベルを形成してよい。例えば、イディオム機能ブロックからの4個のラベル「scale data」、「apply standard」、「scale numerical column data」、「standard feature remove mean scale unit variance」は、単一の共通ラベル「scale standard data」で再ラベル付けされてよい。
幾つかの実施形態では、ブロック1604及び1606は、イディオム機能ブロックについて実行されてよいが、カスタム機能ブロックについて変更されてよい。これらの実施形態では、ブロック1604及び1606は、カスタム機能ブロックの抽出又はマイニングされたテキストから最も重要な名詞及び動詞を取り入れることにより、各カスタム機能ブロックについて変更されてよく、一致動作を実行するのではなく、ブロック1608の開始点を提供する。
方法1600は、ブロック1608で、正規化MLパイプラインの中の機能ブロックのペア毎に類似性スコアを生成するステップを含んでよい。例えば、キュレーションモジュール114は、正規化MLパイプライン内の機能ブロックの各ペアについて類似性スコア(例えば、0と1.0の間のスコア)を生成してよい。幾つかの実施形態では、類似性スコアは、単純な単語照合を通じて計算できる。例えば、単語セットA及びBを有する2つのラベルについて、類似性スコアは以下のように計算されてよい:
Figure 2022042495000012
方法1600は、ブロック1610で、類似性スコアが類似性スコア閾値より大きい場合、機能ブロックのグループを生成するステップを含んでよい。例えば、キュレーションモジュール114は、類似性スコアが類似性スコア閾値(例えば、0.5の閾値)より大きい場合に、機能ブロックのグループを生成してよい。幾つかの実施形態では、所与の機能ブロックについて、他の機能ブロックは、意味論的ラベルに基づく類似性スコアに基づきソートされてよく、上位Kが同じ機能の異なる実装としてマークされてよい。幾つかの実施形態では、類似性スコア閾値は経験的に調整されてよい。
方法1600は、ブロック1612で、機能ブロックグループの中の機能ブロックの各々のラベル内の第2共通動詞及び名詞又は名詞句を識別するステップを含んでよい。例えば、キュレーションモジュール114は、機能ブロックグループの中の機能ブロックの各々の第2共通動詞(例えば、「scale」)及び名詞又は名詞句(例えば、「data」)を識別してよい。この第2の識別は、1回目のラベルが生成された後に第2の反復を可能にして、機能が等価であると考えられる十分に類似するラベルにより機能ブロックグループを更に強化してよい。
方法1600は、ブロック1614で、第2共通動詞及び名詞又は名詞句に基づき、機能ブロックグループの共通ラベルを生成するステップを含んでよい。例えば、キュレーションモジュール114は、第2共通動詞及び名詞又は名詞句から共通ラベルを生成してよい。幾つかの実施形態では、意味論的ラベルの共通又は頻出単語は、グループ全体の共通意味論的ラベルとして割り当てられてよい。例えば、キュレーションモジュール114は、各機能ブロックグループ内の機能ブロックの各々に割り当てられたラベルを共通ラベルに更新してよい。例えば、機能的に等価であると決定された機能ブロックからの2個のラベル「scale standard data」及び「scale data feature」は、単一の共通ラベル「scale data」により再ラベル付けされてよい。
方法1600は、ブロック1616で、各機能ブロックグループ内の機能ブロックの各々に割り当てられたラベルを共通ラベルに更新するステップを含んでよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法1600に対して行われてよい。例えば、方法1600の動作は、異なる順序で実施されてよい。更に、幾つかの実施形態では、方法1600は、図12のブロック1206に関して繰り返し又は同時に実行されてよい。
図17は、MLパイプラインの中の機能ブロックの自動ラベル付けを示す。図17は、方法1600の種々のブロックがどのように実行され得るかの例を提供するために、ここで議論される。図17に示した例では、機能ブロックBlock-1は、2個の正規化されたステートメント、つまり「_var_=StandardScaler()」及び「_var1_=_var_.fit_transform()」を含んでよい。この機能ブロックは、4個の別個の計算ノートブック、つまりnotebook-1、notebook-2、notebook-3、及びnotebook-4に現れるので、イディオム機能ブロックであってよい。更に、第2機能ブロックBlock-2は、2個の正規化されたステートメント、つまり「_var_=MinMaxScaler()」及び_var1_=_var_.fit_transform()」を含んでよい。これらの2個の機能ブロックは同じではないが、それらは、後述するように、それらの割り当てられたラベルの間の類似性に基づき、機能的に等価であると決定されてよい。
Block-1に関して、方法1600のブロック1602で、テキストがnotebook-1、notebook-2、及びnotebook-3についてのコメントから抽出されてよく、notebook-4については利用可能なコメントが存在しなくてよい。従って、テキストは、notebook-4の代替ソース(例えば、API文書)からマイニングされてよい。次に、方法1600のブロック1604で、抽出又はマイニングされたテキストから、共通動詞(例えば、「scale」又は「apply」)及び名詞又は名詞句(例えば、「data」又は「standard」又は「unit variance」)が識別されてよい。次に、方法1600のブロック1606で、第1共通動詞及び名詞又は名詞句に基づき、ラベル「scale standard data」が、Block-1について生成されてよい。同様にBlock-2について、ブロック1602で、及び(上述のように)ブロック1604及び1606の変更されたバージョンで、ラベル「scale data feature」が生成されてよい。
方法1600のブロック1608で、Block-1及びBlock-2のペアについて、0.67の類似性スコアが生成されてよい。方法1600のブロック1610で、Block-1及びBlock-2は、それらの類似性スコア(0.67)が類似性スコア閾値(例えば、0.60の閾値)より高いので、一緒にグループ化されてよい。方法1600のブロック1612で、Block-1及びBlock-2のラベルの中で、共通動詞(例えば「scale」)及び名詞(例えば「data」)が識別されてよい。方法1600は、ブロック1614で、共通動詞(例えば「scale」)及び名詞(例えば「data」)に基づき、Block-1及びBlock-2について共通ラベル(「scale data」)を生成するステップを含んでよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく機能ブロック、抽出又はマイニングされたテキスト、類似性スコア、及び自動的に割り当てられたラベルに対して行われてよい。
図18は、本開示に記載された少なくとも1つの実施形態による、コーパスに格納された既存のMLプロジェクトのパイプラインから新しいMLプロジェクトのパイプラインを自動的に生成する例示的な方法1800のフローチャートである。方法1800は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1~3のキュレーションモジュール114、検索モジュール116、及び適応モジュール120、又は(1つ以上のモジュールにより指示されるとき)図4のコンピューティングシステム402は、方法1800に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法1800のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
幾つかの実施形態では、方法1800は、キュレーションモジュール114、検索モジュール116、及び適応モジュール120により、図1及び2に開示された動作を実行するために利用されてよい。
方法1800は、ブロック1802で、既存のMLプロジェクトをコーパスに格納するステップを含んでよい。ここで、既存のMLプロジェクトは機能ブロックを有するMLパイプラインを含む。例えば、キュレーションモジュール114は、既存のMLプロジェクト204をMLプロジェクトコーパス104に格納してよい。幾つかの実施形態では、既存のMLプロジェクト204は、機能ブロックを有するMLパイプラインを含んでよい。幾つかの実施形態では、これらの機能ブロックは、方法1200のブロック1204の動作に従い識別されてよい。
方法1800は、ブロック1804で、新しいMLプロジェクトのための新しいデータセット及び新しいMLプロジェクトのための新しいMLタスクに基づき、新しいMLプロジェクトのための検索クエリを生成するステップを含んでよい。例えば、検索モジュール116は、新しいMLプロジェクト310のための新しいデータセット106及び新しいMLプロジェクト310のための新しいMLタスク108に基づき、新しいMLプロジェクト310からのクエリ306を生成してよい。
方法1800は、ブロック1806で、コーパスに格納された既存のMLプロジェクトを通じて、検索クエリに基づき、関連する既存のMLプロジェクトのセットを検索するステップを含んでよい。例えば、検索モジュール116は、MLプロジェクトコーパス104に格納された既存のMLプロジェクトを通じて、クエリ306に基づき、関連する既存のMLプロジェクト110を検索してよい。
方法1800は、ブロック1808で、関連する既存のMLプロジェクトのセットのMLパイプラインをマージして、新しいMLプロジェクトのための新しいMLパイプラインを生成するステップを含んでよい。ここで、新しいMLパイプラインは、関連する既存のMLプロジェクトのセットのMLパイプラインから取り入れられた機能ブロックを有する。例えば、適応モジュール120は、関連する既存のMLプロジェクト110のMLパイプライン111のパイプラインマージ308を実行して、新しいMLプロジェクト310のための新しいMLパイプライン112を生成してよい。本例では、新しいMLパイプライン112は、関連する既存のMLプロジェクト110のMLパイプライン111から取り入れられた機能ブロックを有してよい。
方法1800は、ブロック1810で、新しいデータセットで新しいMLタスクを実行するために新しいMLパイプラインが実行可能になるよう、新しいMLプロジェクトのための新しいMLパイプラインの機能ブロックを適応するステップを含んでよい。例えば、適応モジュール120は、新しいデータセット106で新しいMLタスク108を実行するために新しいMLパイプライン112が実行可能になるよう、新しいMLプロジェクト310のための新しいMLパイプライン112の機能ブロックを適応してよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法1800に対して行われてよい。例えば、方法1800の動作のうちの幾つかは、異なる順序で実施されてよい。追加又は代替として、2以上の動作が同時に実行されてよい。さらに、概説された工程及び動作は例として提供されたものであり、工程及び動作の幾つかは、開示した実施形態を減じることなく、任意であり、少ない工程及び動作に結合され、又は追加の工程及び動作に拡張されてよい。
図19は、シーケンスグラフ1900、及び新しいMLプロジェクト(例えば、新しいMLプロジェクト1310)のためのパイプラインスケルトン2002を示す。図20は、パイプラインスケルトン2002、及びパイプラインスケルトン2002に一致する機能ブロックについて検索され得るMLパイプラインの表2050を示す。図19及び図20は、方法1800のブロック1804、1806、1808、1810がMLパイプラインコーパス104に関してどのように実行され得るかの例を提供するためにここで議論される。
図19及び20に開示されるように、パイプラインスケルトン2002は、新しいMLプロジェクト310の新しいMLパイプライン112のための機能ブロックの順序付きセットであってよく、MLプロジェクトコーパス104に格納された既存のMLプロジェクトのMLパイプラインの機能ブロックに割り当てられたラベルに対応してよい。幾つかの実施形態では、パイプラインスケルトン2002は、パイプラインスケルトンMLモデル302により生成されてよい。パイプラインスケルトンMLモデル302(又はMLモデルのセット)は、データセットメタ特徴と意味論的ラベルとの間のマッピングを学習するようトレーニングされてよい。例えば、新しいデータセット1056のメタ特徴が与えられると、パイプラインスケルトンMLモデル302は、それらのシーケンスを有する所要の意味論的ラベルを含むパイプラインスケルトン2002を合成するようトレーニングされてよい。
幾つかの実施形態では、パイプラインスケルトンMLモデル302は、パイプラインスケルトン2002を生成する前にトレーニングされる多変量多値分類器を含んでよい。多変量多値分類器は、データセットメタ特徴を、パイプラインスケルトン304又は2002が含むべき機能ブロックの非順序付きセット(対応する意味論的ラベルにより示される)にマッピングするよう構成されてよい。このトレーニングは、特定のラベルに関連付けられたMLプロジェクトコーパス104の中の既存のMLプロジェクトのデータセットからデータセット特徴を抽出するステップと、既存のMLプロジェクトの機能ブロックから全部のラベルのセットを識別するステップと、データセット特徴を有する入力ベクトルと全部のラベルのセットの各々の存在又は不存在を示す2値出力タプルとを含むトレーニングデータを準備するステップと、データセット特徴と全部のラベルのセットの対応するラベルとの間のマッピングを学習するようパイプラインスケルトンMLモデル302をトレーニングするステップと、を含んでよい。幾つかの実施形態では、パイプラインスケルトンMLモデル302のトレーニングは、パイプラインスケルトンMLモデル302が新しいデータセット106及び新しいMLタスク108(メタ特徴)の顕著な特性を用いて、新しいMLパイプライン112のMLパイプラインを構成できる(例えば、パイプラインスケルトン304又は2002の中の)機能ブロックの順序付きセットを予測することを可能にしてよい。データセットのメタ特徴は、限定ではないが、行の数、特徴の数、数値の存在、失われた値の存在、個数の存在、数値カテゴリの存在、ストリングカテゴリの存在、テキストの存在、及びターゲットのタイプを含んでよい。
幾つかの実施形態では、パイプラインスケルトンMLモデル302は、トレーニングデータから学習された機能ブロックの間の部分的順序を表す(シーケンスグラフ1900と同様の)シーケンスグラフを更に含んでよい。シーケンスグラフは、トレーニングプロジェクトコーパスから学習されたブロックの中の部分的順序に基づき、(例えば、パイプラインスケルトン2002に示されるように)ブロックの非順序付きセットを順序付きセットへとマッピングするよう構成されてよい。シーケンスグラフは、既存のMLプロジェクトの機能ブロックから全部のラベルのセットのラベル毎にノードを含んでよい。シーケンスグラフは、第1ノードと第2ノードの各ペアの間の有向エッジも含んでよく、第1ノードは、既存のMLプロジェクトのうちの1つの中で、第2ノードに先行する。
パイプラインスケルトンMLモデル302がトレーニングされると、パイプラインスケルトンMLモデル302は、新しいMLプロジェクト310のためのクエリ306を生成するために利用されてよい。幾つかの実施形態では、クエリ306のこの生成は、データセット特徴を新しいMLプロジェクト310の新しいMLパイプライン112のラベルの非順序付きセットへとマッピングするステップを含んでよく、シーケンスグラフ(例えば、シーケンスグラフ1900)に表された部分的順序を用いて、ラベルの非順序付きセットをラベルの順序付きセットにマッピングするステップを更に含んでよい。クエリ306は、このようなラベルの順序付きシーケンスをパイプラインスケルトン2002として含んでよい。例えば、図19は、シーケンスグラフ1900を用いて、パイプラインスケルトンMLモデルにより生成されたラベルの非順序付きセットをラベルの順序付きシーケンスへとマッピングするステップの例を示す。ラベルの非順序付きセットは、先ず、太字体のノード、つまり「Read Data」、「Fill Missing Values」、「Convert String to Int」、「Split Train Test」、「Random Forest」のセットにより示されるシーケンスグラフ1900の中の対応するノードにマッピングされてよい。次に、これらのノードにより表されるシーケンスグラフ1900のサブグラフが抽出されてよく、ノードのトポロジ順序は、パイプラインスケルトン2002に表される、これらのラベルの順序付きシーケンスを提供するために、このサブグラフに基づき計算されてよい。
幾つかの実施形態では、クエリ306は、MLプロジェクトコーパス104に格納された既存のMLプロジェクトを通じて検索するために利用されてよい。この検索は、MLプロジェクトコーパス104に格納された各々の既存のMLプロジェクトについて、ラベルベクトルを生成し、及び既存のMLプロジェクトの品質指標から重みを生成するステップを含んでよい。次に、この検索は、MLプロジェクトコーパス104に格納された既存のMLプロジェクトからの、それらの重み及びラベルベクトルに基づく加重セットカバー(Weighted Set Cover (WSC))問題を含んでよく、順序付きラベルセットの中のラベルの全部を一緒に含む既存のMLプロジェクトのセットを選択するためにWCS問題を解くことを含んでよい。例えば、領域:U={s,s,...,s}から導出される意味論的ラベルと、必要な意味論的ラベルのセット:R={s,s,...,s}と、を集合的に含む、クリーニングされた候補計算ノートブックのセット:J={J,J,...,J}が与えられると、検索は、R内の全部の意味論的ラベルを一緒に含む以下のサブセットを選択するよう定式化されてよい:
Figure 2022042495000013
つまり、次式の通りである:
Figure 2022042495000014
幾つかの実施形態では、これは、最小数の計算ノートブックを含む選択をもたらし得る。
検索が完了した後に、新しいMLプロジェクト310のための新しいMLパイプライン112を生成するために、(例えば、パイプラインマージ308において)関連する既存のMLプロジェクト110のような検索結果がマージされてよい。このパイプラインマージ308は、(例えば、ラベルの順序付きセットに対応する)新しいMLプロジェクトの全部の機能ブロックを、関連する既存のMLプロジェクト110のMLパイプライン111セットから取り入れるステップを含んでよい。例えば、図20に開示されるように、表2050の中の「Mushroom Classification」、「WorldHappinessReport2019」、「Cardio」とラベル付けされた関連する既存のMLプロジェクト110が3個のMLプロジェクトにより表される場合、パイプラインスケルトン2002の中の機能ブロックの各々は、これらの3個のMLプロジェクトの機能ブロックから取り入れられてよい。「Mushroom Classification」とラベル付けされたMLプロジェクトは必要な機能ブロックの大部分を有するので、メインMLプロジェクトとして扱われてよく、一方で、残りの機能ブロックはMLプロジェクト「World Happiness Report 2019」から取り入れられてよく、これは補助MLプロジェクトとして扱われてよい。幾つかの実施形態では、同じラベルが複数の補助計算ノートブックに存在する場合、(例えば、品質に基づき、ランダムに、等)計算ノートブックのうちの1つが選択されてよい。例えば、図20は、MLプロジェクトコーパス103が全部で3個のMLプロジェクトを含み、検索(例えば、ここに開示されるWSC問題を通じて解かれる)が、パイプラインスケルトン2002を適合するのに十bnであるとして第1の2個のMLプロジェクトを読み出す場合を示す。
パイプラインマージ308は、新しいMLプロジェクトのための新しいMLパイプラインの機能ブロックを適応するステップを更に含んでよい。この適応は、種々の名称又はオブジェクト名の矛盾を解決して(例えば、プログラム分析に基づき名称を適応して)、新しいデータセット106で新しいMLタスク108を実行するために新しいMLパイプライン112を実行可能にすることを含んでよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなくシーケンスグラフ1900、パイプラインスケルトン2002、及び表2050に対して行われてよい。例えば、シーケンスグラフ1900、パイプラインスケルトン2002、及び表2050の各々は、図19及び20に示されたものより、少ないコンポーネント又は多くのコンポーネントを含んでよい。
上述のように、本願明細書に記載の実施形態は、以下に更に詳細に議論されるように、種々のコンピュータハードウェア又はソフトウェアモジュールを含む特定用途向け又は汎用コンピュータの使用を含んでよい。更に、上述のように、本開示に記載の実施形態は、格納されたコンピュータ実行可能命令又はデータ構造を有するコンピュータ可読媒体を用いて実装されてよい。
本開示で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ可読媒体、処理装置、等)により格納され及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを表してよい。幾つかの実施形態では、本開示に記載されたものと異なるコンポーネント、モジュール、エンジン、及びサービスが、コンピューティングシステム上で実行するオブジェクト又はプロセス(例えば、別個のスレッド)として実装されてよい。本開示に記載されたシステム及び方法のうちの一部は、概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるとして記載されたが、専用ハードウェア実装又はソフトウェア及び専用ハードウェア実装の組み合わせも、可能であり想定される。この記載において、「コンピューティングエンティティ」は、本開示において前述した任意のコンピューティングシステム、又はコンピューティングシステム上で実行する任意のモジュール若しくはモジュールの組み合わせであってよい。
本開示で及び特に添付の特許請求の範囲(例えば、添付の請求項本体)で使用される用語は、通常、「広義」の用語として意図される(例えば、用語「含む」は「含むが、これに限定されない」と解釈されるべきであり、用語「有する」は「有するが、これに限定されない」と解釈されるべきである、等)。
さらに、特定数の導入された請求項の列挙が意図される場合、このような意図は、請求項中に明示的に示され、このような列挙のない場合、このような意図は存在しない。例えば、理解の支援として、以下の添付の請求項は、請求項の列挙を導入するために、導入フレーズ「少なくとも1つ」及び「1つ以上」の使用を含み得る。しかしながら、このようなフレーズの使用は、同じ請求項が導入フレーズ「1つ以上」又は「少なくとも1つ」及び不定冠詞「a」又は「an」を含むときでも(例えば、「a」及び/又は「an」は「少なくとも1つ」又は「1つ以上」を意味すると解釈されるべきである)、不定冠詞「a」又は「an」による請求項の列挙の導入が、このような導入された請求項の列挙を含む任意の特定の請求項を、1つのこのような列挙のみを含む実施形態に限定することを意味すると考えられるべきではない。つまり、同じことが、請求項の列挙を導入するために使用される定冠詞の使用にも当てはまる。
さらに、特定数の導入された請求項の列挙が明示的に記載される場合、当業者は、このような列挙が、少なくとも列挙された数を意味すると解釈されるべきであることを理解する(例えば、他の修飾のない「2つの列挙」の記載は、少なくとも2つの列挙、又は2以上の列挙を意味する)。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」と同様の記載が使用される例では、通常、このような構成は、A単独で、B単独で、C単独で、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、又はA、B、及びCを一緒に、等を含むことを意図する。語句「A又はB」のこの解釈は、時に「A」又は「B」又は「A及びB」の可能性を含むために用語「A及び/又はB」が使用されるときでも依然として適用可能である。
さらに、2以上の選択的な用語を表す任意の離接的な語又はフレーズは、説明、請求項、又は図面にあるかにかかわらず、用語のうちの1つ、用語のうちのいずれか、又は両方の用語を含む可能性を想定すると理解されるべきである。例えば、フレーズ「A又はB」は、「A」又は「B」又は「A及びB」の可能性を含むと理解されるべきである。
本開示に記載された全ての例及び条件付き言語は、読者が本開示及び本開示が技術を更に発展させることに貢献する概念を理解するのを支援する教示目的を意図しており、そのような具体的に列挙された例及び条件に限定されないと解釈されるべきである。本開示の実施形態は詳細に記載されたが、本開示の精神及び範囲から逸脱することなく、これらに種々の変更、代替、及び選択が行われ得る。
以上の実施形態に加えて、更に以下の付記を開示する。
(付記1)
フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリから、MLプロジェクトのセットを収集するステップと、
前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップと、
前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別するステップと、
前記MLプロジェクトのセットについて品質特徴を生成するステップと、
前記MLプロジェクトのセットについて多様性特徴を生成するステップと、
前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップと、
前記MLプロジェクトのサブセットを、新しいMLプロジェクトにおける使用のために適応される前記MLプロジェクトに格納するステップと、
を含む方法。
(付記2)
前記MLプロジェクトのセットを収集する前記ステップは、
データセットの品質に基づき、MLプロジェクトの前記1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップと、
第1の所定数の上位にランク付けされたデータセットを選択するステップと、
選択したデータセットの各々について、重要度基準に基づき、対応するMLプロジェクトをランク付けするステップと、
前記MLプロジェクトのセットに含めるために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップと、
を含む、付記1に記載の方法。
(付記3)
前記MLプロジェクトのセットの中の前記MLパイプラインの実行可能性を保証する前記ステップは、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインを変更せずに実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインに対してアプリケーションプログラムインタフェース(API)適応を実行した後に実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップ、又は、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにAPI適応を実行した後でも実行可能ではないと決定し、前記MLプロジェクトを前記MLプロジェクトのセットから除去するステップ、
を含む、付記1に記載の方法。
(付記4)
前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
前記MLプロジェクトのデータセットのプロパティ保存サンプルを生成するステップと、
前記MLパイプラインの各ステートメントの中で変更された変数及びオブジェクトを追跡するよう前記MLパイプラインをインストルメント化するステップと、
前記データセットの前記サンプルに対してインストルメント化したMLパイプラインを実行して、実行トレースを収集するステップと、
前記MLパイプラインの中のターゲットステートメントを識別するステップと、
前記ターゲットステートメントから全部の変数及びオブジェクトを抽出するステップと、
前記実行トレースから抽出した変数及びオブジェクトのバックワードスライスを生成するステップと、
前記バックワードスライスからの前記MLパイプラインの中のステートメントに関係有りと、前記MLパイプラインの中の全部の他のステートメントに関係無しと、注釈を付けるステップと、
を含む、付記1に記載の方法。
(付記5)
前記MLプロジェクトのセットについて前記品質特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
前記MLプロジェクトのトレーニング済みMLモデルの精度、
前記MLプロジェクトの前記MLパイプラインの文書化品質、
前記MLプロジェクトの前記MLパイプラインのモジュール性品質、
前記MLプロジェクトの前記MLパイプラインの標準API使用品質、
前記MLプロジェクトの評価、
に基づき、前記MLプロジェクトの数値品質スコアを生成するステップを含む、付記1に記載の方法。
(付記6)
前記MLプロジェクトのセットについて前記多様性特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
前記MLプロジェクトのデータセットのサイズ、
前記MLプロジェクトの前記データセットの中の失われた値の存在又は不存在、
前記MLプロジェクトの前記データセットの中のデータのタイプ、
前記MLプロジェクトの前記MLパイプラインの中の所定のライブラリAPIの存在又は不存在、
前記MLプロジェクトの前記データセットの中の成分データストリームの相対範囲、
に基づき、前記MLプロジェクトについて特徴ベクトルを抽出するステップを含む、付記1に記載の方法。
(付記7)
前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットから前記MLプロジェクトのサブセットを選択する前記ステップは、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質特徴に基づき品質指標を生成するステップと、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質指標から重みを生成するステップと、
前記重み及び前記多様性特徴に基づき、前記MLプロジェクトのセットの中の前記MLプロジェクトから、加重セットカバー(WSC)問題を構成するステップと、
前記WSC問題を解いて、前記MLプロジェクトのサブセットを選択するステップと、
を含む、付記1に記載の方法。
(付記8)
命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体であって、前記命令は実行されることに応答してシステムに動作を実行させ、前記動作は、
フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリから、MLプロジェクトのセットを収集するステップと、
前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップと、
前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別するステップと、
前記MLプロジェクトのセットについて品質特徴を生成するステップと、
前記MLプロジェクトのセットについて多様性特徴を生成するステップと、
前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップと、
前記MLプロジェクトのサブセットを、新しいMLプロジェクトにおける使用のために適応される前記MLプロジェクトに格納するステップと、
を含む、1つ以上の非一時的コンピュータ可読記憶媒体。
(付記9)
前記MLプロジェクトのセットを収集する前記ステップは、
データセットの品質に基づき、MLプロジェクトの前記1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップと、
第1の所定数の上位にランク付けされたデータセットを選択するステップと、
選択したデータセットの各々について、重要度基準に基づき、対応するMLプロジェクトをランク付けするステップと、
前記MLプロジェクトのセットに含めるために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記10)
前記MLプロジェクトのセットの中の前記MLパイプラインの実行可能性を保証する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインを変更せずに実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにアプリケーションプログラムインタフェース(API)適応を実行した後に実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにAPI適応を実行した後でも実行可能ではないと決定し、前記MLプロジェクトのセットから前記MLプロジェクトを除去するステップと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記11)
前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
前記MLプロジェクトのデータセットのプロパティ保存サンプルを生成するステップと、
前記MLパイプラインの各ステートメントの中で変更された変数及びオブジェクトを追跡するよう前記MLパイプラインをインストルメント化するステップと、
前記データセットの前記サンプルに対してインストルメント化したMLパイプラインを実行して、実行トレースを収集するステップと、
前記MLパイプラインの中のターゲットステートメントを識別するステップと、
前記ターゲットステートメントから全部の変数及びオブジェクトを抽出するステップと、
前記実行トレースから抽出した変数及びオブジェクトのバックワードスライスを生成するステップと、
前記バックワードスライスからの前記MLパイプラインの中のステートメントに関係有りと、前記MLパイプラインの中の全部の他のステートメントに関係無しと、注釈を付けるステップと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記12)
前記MLプロジェクトのセットについて前記品質特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
前記MLプロジェクトのトレーニング済みMLモデルの精度、
前記MLプロジェクトの前記MLパイプラインの文書化品質、
前記MLプロジェクトの前記MLパイプラインのモジュール性品質、
前記MLプロジェクトの前記MLパイプラインの標準API使用品質、
前記MLプロジェクトの評価、
に基づき、前記MLプロジェクトの数値品質スコアを生成するステップを含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記13)
前記MLプロジェクトのセットについて前記多様性特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
前記MLプロジェクトのデータセットのサイズ、
前記MLプロジェクトの前記データセットの中の失われた値の存在又は不存在、
前記MLプロジェクトの前記データセットの中のデータのタイプ、
前記MLプロジェクトの前記MLパイプラインの中の所定のライブラリAPIの存在又は不存在、
前記MLプロジェクトの前記データセットの中の成分データストリームの相対範囲、
に基づき、前記MLプロジェクトについて特徴ベクトルを抽出するステップを含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記14)
前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットから前記MLプロジェクトのサブセットを選択する前記ステップは、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質特徴に基づき品質指標を生成するステップと、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質指標から重みを生成するステップと、
前記重み及び前記多様性特徴に基づき、前記MLプロジェクトのセットの中の前記MLプロジェクトから、加重セットカバー(WSC)問題を構成するステップと、
前記WSC問題を解いて、前記MLプロジェクトのサブセットを選択するステップと、
を含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。

(付記15)
システムであって、
1つ以上のプロセッサと、
命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体と、
を含み、前記命令は前記1つ以上のプロセッサにより実行されることに応答して前記システムに動作を実行させ、前記動作は、
フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリから、MLプロジェクトのセットを収集するステップと、
前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップと、
前記MLプロジェクトのセットの中に前記MLパイプラインの無関係な部分を識別するステップと、
前記MLプロジェクトのセットについて品質特徴を生成するステップと、
前記MLプロジェクトのセットについて多様性特徴を生成するステップと、
前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップと、
前記MLプロジェクトのサブセットを、新しいMLプロジェクトにおける使用のために適応される前記MLプロジェクトに格納するステップと、
を含む、システム。
(付記16)
前記MLプロジェクトのセットを収集する前記ステップは、
データセットの品質に基づき、MLプロジェクトの前記1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップと、
第1の所定数の上位にランク付けされたデータセットを選択するステップと、
選択したデータセットの各々について、重要度基準に基づき、対応するMLプロジェクトをランク付けするステップと、
前記MLプロジェクトのセットに含めるために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップと、
を含む、付記15に記載のシステム。
(付記17)
前記MLプロジェクトのセットの中の前記MLパイプラインの実行可能性を保証する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインを変更せずに実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにAPI適応を実行した後でも実行可能ではないと決定し、前記MLプロジェクトのセットから前記MLプロジェクトを除去するステップと、
を含む、付記15に記載のシステム。
(付記18)
前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
前記MLプロジェクトのデータセットのプロパティ保存サンプルを生成するステップと、
前記MLパイプラインの各ステートメントの中で変更された変数及びオブジェクトを追跡するよう前記MLパイプラインをインストルメント化するステップと、
前記データセットの前記サンプルに対してインストルメント化したMLパイプラインを実行して、実行トレースを収集するステップと、
前記MLパイプラインの中のターゲットステートメントを識別するステップと、
前記ターゲットステートメントから全部の変数及びオブジェクトを抽出するステップと、
前記実行トレースから抽出した変数及びオブジェクトのバックワードスライスを生成するステップと、
前記バックワードスライスからの前記MLパイプラインの中のステートメントに関係有りと、前記MLパイプラインの中の全部の他のステートメントに関係無しと、注釈を付けるステップと、
を含む、付記15に記載のシステム。
(付記19)
前記MLプロジェクトのセットについて前記品質特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
前記MLプロジェクトのトレーニング済みMLモデルの精度、
前記MLプロジェクトの前記MLパイプラインの文書化品質、
前記MLプロジェクトの前記MLパイプラインのモジュール性品質、
前記MLプロジェクトの前記MLパイプラインの標準API使用品質、
前記MLプロジェクトの評価、
に基づき、前記MLプロジェクトの数値品質スコアを生成するステップを含み、
前記MLプロジェクトのセットにt前記多様性特徴を生成する前記ステップは、前記MLプロジェクトについて、
前記MLプロジェクトのデータセットのサイズ、
前記MLプロジェクトの前記データセットの中の失われた値の存在又は不存在、
前記MLプロジェクトの前記データセットの中のデータのタイプ、
前記MLプロジェクトの前記データセットの中の成分データストリームの相対範囲、
に基づき特徴ベクトルを抽出するステップを含む、付記15に記載のシステム。
(付記20)
前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットから前記MLプロジェクトのサブセットを選択する前記ステップは、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質特徴に基づき品質指標を生成するステップと、
前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質指標から重みを生成するステップと、
前記重み及び前記多様性特徴に基づき、前記MLプロジェクトのセットの中の前記MLプロジェクトから、加重セットカバー(WSC)問題を構成するステップと、
前記WSC問題を解いて、前記MLプロジェクトのサブセットを選択するステップと、
を含む、付記15に記載のシステム。
102 OSS MLプロジェクトデータベース
104 MLプロジェクトコーパス
106 新しいデータセット
108 新しいMLタスク
109 データセット
110 関連する既存のMLプロジェクト
111 MLパイプライン
112 新しいMLパイプライン
114 キュレーションモジュール
116 検索モジュール
120 適応モジュール

Claims (20)

  1. フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリから、MLプロジェクトのセットを収集するステップと、
    前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップと、
    前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別するステップと、
    前記MLプロジェクトのセットについて品質特徴を生成するステップと、
    前記MLプロジェクトのセットについて多様性特徴を生成するステップと、
    前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップと、
    前記MLプロジェクトのサブセットを、新しいMLプロジェクトにおける使用のために適応される前記MLプロジェクトに格納するステップと、
    を含む方法。
  2. 前記MLプロジェクトのセットを収集する前記ステップは、
    データセットの品質に基づき、MLプロジェクトの前記1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップと、
    第1の所定数の上位にランク付けされたデータセットを選択するステップと、
    選択したデータセットの各々について、重要度基準に基づき、対応するMLプロジェクトをランク付けするステップと、
    前記MLプロジェクトのセットに含めるために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップと、
    を含む、請求項1に記載の方法。
  3. 前記MLプロジェクトのセットの中の前記MLパイプラインの実行可能性を保証する前記ステップは、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインを変更せずに実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインに対してアプリケーションプログラムインタフェース(API)適応を実行した後に実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップ、又は、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにAPI適応を実行した後でも実行可能ではないと決定し、前記MLプロジェクトを前記MLプロジェクトのセットから除去するステップ、
    を含む、請求項1に記載の方法。
  4. 前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
    前記MLプロジェクトのデータセットのプロパティ保存サンプルを生成するステップと、
    前記MLパイプラインの各ステートメントの中で変更された変数及びオブジェクトを追跡するよう前記MLパイプラインをインストルメント化するステップと、
    前記データセットの前記サンプルに対してインストルメント化したMLパイプラインを実行して、実行トレースを収集するステップと、
    前記MLパイプラインの中のターゲットステートメントを識別するステップと、
    前記ターゲットステートメントから全部の変数及びオブジェクトを抽出するステップと、
    前記実行トレースから抽出した変数及びオブジェクトのバックワードスライスを生成するステップと、
    前記バックワードスライスからの前記MLパイプラインの中のステートメントに関係有りと、前記MLパイプラインの中の全部の他のステートメントに関係無しと、注釈を付けるステップと、
    を含む、請求項1に記載の方法。
  5. 前記MLプロジェクトのセットについて前記品質特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
    前記MLプロジェクトのトレーニング済みMLモデルの精度、
    前記MLプロジェクトの前記MLパイプラインの文書化品質、
    前記MLプロジェクトの前記MLパイプラインのモジュール性品質、
    前記MLプロジェクトの前記MLパイプラインの標準API使用品質、
    前記MLプロジェクトの評価、
    に基づき、前記MLプロジェクトの数値品質スコアを生成するステップを含む、請求項1に記載の方法。
  6. 前記MLプロジェクトのセットについて前記多様性特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
    前記MLプロジェクトのデータセットのサイズ、
    前記MLプロジェクトの前記データセットの中の失われた値の存在又は不存在、
    前記MLプロジェクトの前記データセットの中のデータのタイプ、
    前記MLプロジェクトの前記MLパイプラインの中の所定のライブラリAPIの存在又は不存在、
    前記MLプロジェクトの前記データセットの中の成分データストリームの相対範囲、
    に基づき、前記MLプロジェクトについて特徴ベクトルを抽出するステップを含む、請求項1に記載の方法。
  7. 前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットから前記MLプロジェクトのサブセットを選択する前記ステップは、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質特徴に基づき品質指標を生成するステップと、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質指標から重みを生成するステップと、
    前記重み及び前記多様性特徴に基づき、前記MLプロジェクトのセットの中の前記MLプロジェクトから、加重セットカバー(WSC)問題を構成するステップと、
    前記WSC問題を解いて、前記MLプロジェクトのサブセットを選択するステップと、
    を含む、請求項1に記載の方法。
  8. 命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体であって、前記命令は実行されることに応答してシステムに動作を実行させ、前記動作は、
    フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリから、MLプロジェクトのセットを収集するステップと、
    前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップと、
    前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別するステップと、
    前記MLプロジェクトのセットについて品質特徴を生成するステップと、
    前記MLプロジェクトのセットについて多様性特徴を生成するステップと、
    前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップと、
    前記MLプロジェクトのサブセットを、新しいMLプロジェクトにおける使用のために適応される前記MLプロジェクトに格納するステップと、
    を含む、1つ以上の非一時的コンピュータ可読記憶媒体。
  9. 前記MLプロジェクトのセットを収集する前記ステップは、
    データセットの品質に基づき、MLプロジェクトの前記1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップと、
    第1の所定数の上位にランク付けされたデータセットを選択するステップと、
    選択したデータセットの各々について、重要度基準に基づき、対応するMLプロジェクトをランク付けするステップと、
    前記MLプロジェクトのセットに含めるために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップと、
    を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
  10. 前記MLプロジェクトのセットの中の前記MLパイプラインの実行可能性を保証する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインを変更せずに実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにアプリケーションプログラムインタフェース(API)適応を実行した後に実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにAPI適応を実行した後でも実行可能ではないと決定し、前記MLプロジェクトのセットから前記MLプロジェクトを除去するステップと、
    を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
  11. 前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
    前記MLプロジェクトのデータセットのプロパティ保存サンプルを生成するステップと、
    前記MLパイプラインの各ステートメントの中で変更された変数及びオブジェクトを追跡するよう前記MLパイプラインをインストルメント化するステップと、
    前記データセットの前記サンプルに対してインストルメント化したMLパイプラインを実行して、実行トレースを収集するステップと、
    前記MLパイプラインの中のターゲットステートメントを識別するステップと、
    前記ターゲットステートメントから全部の変数及びオブジェクトを抽出するステップと、
    前記実行トレースから抽出した変数及びオブジェクトのバックワードスライスを生成するステップと、
    前記バックワードスライスからの前記MLパイプラインの中のステートメントに関係有りと、前記MLパイプラインの中の全部の他のステートメントに関係無しと、注釈を付けるステップと、
    を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
  12. 前記MLプロジェクトのセットについて前記品質特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
    前記MLプロジェクトのトレーニング済みMLモデルの精度、
    前記MLプロジェクトの前記MLパイプラインの文書化品質、
    前記MLプロジェクトの前記MLパイプラインのモジュール性品質、
    前記MLプロジェクトの前記MLパイプラインの標準API使用品質、
    前記MLプロジェクトの評価、
    に基づき、前記MLプロジェクトの数値品質スコアを生成するステップを含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
  13. 前記MLプロジェクトのセットについて前記多様性特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
    前記MLプロジェクトのデータセットのサイズ、
    前記MLプロジェクトの前記データセットの中の失われた値の存在又は不存在、
    前記MLプロジェクトの前記データセットの中のデータのタイプ、
    前記MLプロジェクトの前記MLパイプラインの中の所定のライブラリAPIの存在又は不存在、
    前記MLプロジェクトの前記データセットの中の成分データストリームの相対範囲、
    に基づき、前記MLプロジェクトについて特徴ベクトルを抽出するステップを含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
  14. 前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットから前記MLプロジェクトのサブセットを選択する前記ステップは、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質特徴に基づき品質指標を生成するステップと、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質指標から重みを生成するステップと、
    前記重み及び前記多様性特徴に基づき、前記MLプロジェクトのセットの中の前記MLプロジェクトから、加重セットカバー(WSC)問題を構成するステップと、
    前記WSC問題を解いて、前記MLプロジェクトのサブセットを選択するステップと、
    を含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
  15. システムであって、
    1つ以上のプロセッサと、
    命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体と、
    を含み、前記命令は前記1つ以上のプロセッサにより実行されることに応答して前記システムに動作を実行させ、前記動作は、
    フィルタリング基準に基づき、機械学習(ML)プロジェクトの1つ以上のレポジトリから、MLプロジェクトのセットを収集するステップと、
    前記MLプロジェクトのセットの中のMLパイプラインの実行可能性を保証するステップと、
    前記MLプロジェクトのセットの中に前記MLパイプラインの無関係な部分を識別するステップと、
    前記MLプロジェクトのセットについて品質特徴を生成するステップと、
    前記MLプロジェクトのセットについて多様性特徴を生成するステップと、
    前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットからMLプロジェクトのサブセットを選択するステップと、
    前記MLプロジェクトのサブセットを、新しいMLプロジェクトにおける使用のために適応される前記MLプロジェクトに格納するステップと、
    を含む、システム。
  16. 前記MLプロジェクトのセットを収集する前記ステップは、
    データセットの品質に基づき、MLプロジェクトの前記1つ以上のレポジトリからの全部のMLプロジェクトの全部のデータセットをランク付けするステップと、
    第1の所定数の上位にランク付けされたデータセットを選択するステップと、
    選択したデータセットの各々について、重要度基準に基づき、対応するMLプロジェクトをランク付けするステップと、
    前記MLプロジェクトのセットに含めるために、第2の所定数の上位にランク付けされたMLプロジェクトを選択するステップと、
    を含む、請求項15に記載のシステム。
  17. 前記MLプロジェクトのセットの中の前記MLパイプラインの実行可能性を保証する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインを変更せずに実行可能であると決定し、前記MLプロジェクトのセットの中の前記MLプロジェクトを維持するステップと、
    前記MLプロジェクトの中の前記MLパイプラインが前記MLパイプラインにAPI適応を実行した後でも実行可能ではないと決定し、前記MLプロジェクトのセットから前記MLプロジェクトを除去するステップと、
    を含む、請求項15に記載のシステム。
  18. 前記MLプロジェクトのセットの中の前記MLパイプラインの無関係な部分を識別する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、
    前記MLプロジェクトのデータセットのプロパティ保存サンプルを生成するステップと、
    前記MLパイプラインの各ステートメントの中で変更された変数及びオブジェクトを追跡するよう前記MLパイプラインをインストルメント化するステップと、
    前記データセットの前記サンプルに対してインストルメント化したMLパイプラインを実行して、実行トレースを収集するステップと、
    前記MLパイプラインの中のターゲットステートメントを識別するステップと、
    前記ターゲットステートメントから全部の変数及びオブジェクトを抽出するステップと、
    前記実行トレースから抽出した変数及びオブジェクトのバックワードスライスを生成するステップと、
    前記バックワードスライスからの前記MLパイプラインの中のステートメントに関係有りと、前記MLパイプラインの中の全部の他のステートメントに関係無しと、注釈を付けるステップと、
    を含む、請求項15に記載のシステム。
  19. 前記MLプロジェクトのセットについて前記品質特徴を生成する前記ステップは、前記MLプロジェクトのセットの中の各MLプロジェクトについて、以下:
    前記MLプロジェクトのトレーニング済みMLモデルの精度、
    前記MLプロジェクトの前記MLパイプラインの文書化品質、
    前記MLプロジェクトの前記MLパイプラインのモジュール性品質、
    前記MLプロジェクトの前記MLパイプラインの標準API使用品質、
    前記MLプロジェクトの評価、
    に基づき、前記MLプロジェクトの数値品質スコアを生成するステップを含み、
    前記MLプロジェクトのセットにt前記多様性特徴を生成する前記ステップは、前記MLプロジェクトについて、
    前記MLプロジェクトのデータセットのサイズ、
    前記MLプロジェクトの前記データセットの中の失われた値の存在又は不存在、
    前記MLプロジェクトの前記データセットの中のデータのタイプ、
    前記MLプロジェクトの前記データセットの中の成分データストリームの相対範囲、
    に基づき特徴ベクトルを抽出するステップを含む、請求項15に記載のシステム。
  20. 前記品質特徴及び前記多様性特徴に基づき、前記MLプロジェクトのセットから前記MLプロジェクトのサブセットを選択する前記ステップは、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質特徴に基づき品質指標を生成するステップと、
    前記MLプロジェクトのセットの中の各MLプロジェクトについて、前記MLプロジェクトの前記品質指標から重みを生成するステップと、
    前記重み及び前記多様性特徴に基づき、前記MLプロジェクトのセットの中の前記MLプロジェクトから、加重セットカバー(WSC)問題を構成するステップと、
    前記WSC問題を解いて、前記MLプロジェクトのサブセットを選択するステップと、
    を含む、請求項15に記載のシステム。
JP2021139554A 2020-09-02 2021-08-30 新しい械学習プロジェクトにおける使用のために適応可能なコーパスへの既存機械学習プロジェクトの自動キュレーション Pending JP2022042495A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/010,656 US11403304B2 (en) 2020-09-02 2020-09-02 Automatically curating existing machine learning projects into a corpus adaptable for use in new machine learning projects
US17/010656 2020-09-02

Publications (1)

Publication Number Publication Date
JP2022042495A true JP2022042495A (ja) 2022-03-14

Family

ID=77398458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021139554A Pending JP2022042495A (ja) 2020-09-02 2021-08-30 新しい械学習プロジェクトにおける使用のために適応可能なコーパスへの既存機械学習プロジェクトの自動キュレーション

Country Status (3)

Country Link
US (1) US11403304B2 (ja)
EP (1) EP3968244A1 (ja)
JP (1) JP2022042495A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220076143A1 (en) * 2020-09-04 2022-03-10 Fujitsu Limited Automatically recommending an existing machine learning project as adaptable for use in a new machine learning project
US20230100289A1 (en) * 2021-09-28 2023-03-30 Capital One Services, Llc Searchable data processing operation documentation associated with data processing of raw data
US20230316100A1 (en) * 2022-03-29 2023-10-05 Fujitsu Limited Machine learning pipeline augmented with explanation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521224B2 (en) 2018-02-28 2019-12-31 Fujitsu Limited Automatic identification of relevant software projects for cross project learning
WO2019215713A1 (en) 2018-05-07 2019-11-14 Shoodoo Analytics Ltd. Multiple-part machine learning solutions generated by data scientists

Also Published As

Publication number Publication date
US11403304B2 (en) 2022-08-02
EP3968244A1 (en) 2022-03-16
US20220067054A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
Gottipati et al. Finding relevant answers in software forums
De Lucia et al. Information retrieval methods for automated traceability recovery
US11551151B2 (en) Automatically generating a pipeline of a new machine learning project from pipelines of existing machine learning projects stored in a corpus
US9465865B2 (en) Annotating entities using cross-document signals
JP2022042495A (ja) 新しい械学習プロジェクトにおける使用のために適応可能なコーパスへの既存機械学習プロジェクトの自動キュレーション
CN110889275A (zh) 一种基于深度语义理解的信息抽取方法
Kochbati et al. From user stories to models: A machine learning empowered automation
Xue et al. Automatic generation and recommendation for API mashups
CN113806489A (zh) 用于数据集创建的方法、电子设备和计算机程序产品
JP2022042496A (ja) 新しい械学習プロジェクトにおける使用のために適応可能なコーパスの中の既存機械学習プロジェクトのパイプライン内の機能ブロックの自動ラベル付け
EP4254279A1 (en) Machine learning pipeline augmented with explanation
CN110705285B (zh) 一种政务文本主题词库构建方法、装置、服务器及可读存储介质
WO2021080735A1 (en) Automated exception featurization and search
Kumar et al. OntoCat: Automatically categorizing knowledge in API Documentation
Salman Test Case Generation from Specifications Using Natural Language Processing
US11392358B1 (en) Machine learning pipeline skeleton instantiation
EP4053759A1 (en) Machine learning pipeline skeleton instantiation
EP4050524A2 (en) Machine learning pipeline skeleton instantiation
Otto et al. Knowledge extraction from scholarly publications: The GESIS contribution to the rich context competition
Ganapathy et al. Improving and analyzing the quality of system model lexicons using semantic based information mining
Nawal On the Identification of the Energy related Issues from the App Reviews
Vardanega et al. Analysis of sentiment direction based on two centuries of the Hansard Debate Archive
Sharma et al. Keyword Based Contextual Dependency Graph Model for Source Code to API Documentation Mapping
GOTTOPATI et al. Finding Relevant Answers in Software Forums.(2011). ASE 2011: Proceedings of the 26th IEEE
Yilmaz In-site Hypertext Link Prediction