IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-146866探索的及び生成的コード生成ツールを使用したMLパイプラインの生成
<>
  • 特開-探索的及び生成的コード生成ツールを使用したMLパイプラインの生成 図1
  • 特開-探索的及び生成的コード生成ツールを使用したMLパイプラインの生成 図2
  • 特開-探索的及び生成的コード生成ツールを使用したMLパイプラインの生成 図3
  • 特開-探索的及び生成的コード生成ツールを使用したMLパイプラインの生成 図4A
  • 特開-探索的及び生成的コード生成ツールを使用したMLパイプラインの生成 図4B
  • 特開-探索的及び生成的コード生成ツールを使用したMLパイプラインの生成 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024146866
(43)【公開日】2024-10-15
(54)【発明の名称】探索的及び生成的コード生成ツールを使用したMLパイプラインの生成
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241004BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024051767
(22)【出願日】2024-03-27
(31)【優先権主張番号】18/194478
(32)【優先日】2023-03-31
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ZIGBEE
2.BLUETOOTH
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】チェン・ウェイ-ペン
(72)【発明者】
【氏名】リィウ・レイ
(72)【発明者】
【氏名】バーラミ・メフディ
(57)【要約】      (修正有)
【課題】探索的及び生成的コード生成ツールを使用したMLパイプラインを生成する方法及び記憶媒体を提供する。
【解決手段】方法は、機械学習(ML)タスクに関連付けられた入力データセットを受信し、生成的コード生成ツールを実行することでMLタスクに関連付けられた第1MLパイプラインを生成し、1つ以上の探索的コード生成ツールを実行し、パイプラインコンポーネントのセットからパイプラインコンポーネントを選択し、選択に基づいて第1MLパイプラインを修正して第2MLパイプラインを生成し、入力データセット上で第1MLパイプラインを実行することで第1性能メトリックを決定し、入力データセットで第2MLパイプラインを実行することで第2性能メトリックを決定し、第1性能メトリックと第2性能メトリックとの比較に基づいて、MLパイプラインの推奨を第1MLパイプライン又は第2MLパイプラインのうちの1つとしてレンダリングする。
【選択図】図3
【特許請求の範囲】
【請求項1】
方法であって、システムのプロセッサによって実行可能であり、
機械学習(ML)タスクに関連する入力データセットを受信するステップと、
生成的コード生成ツールを実行することによって、前記MLタスクに関連する第1MLパイプラインを生成するステップと、
1つ以上の探索的コード生成ツールを実行することによって、前記MLタスクに関連するパイプラインコンポーネントのセットを決定するステップと、
前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、
前記選択に基づいて前記第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、
前記入力データセットで前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップと、
前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、
前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記第1MLパイプライン又は前記第2MLパイプラインの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御するステップと、
を含む方法。
【請求項2】
前記第1MLパイプラインは、
前記入力データセットに対する変換の第1セットを表す第1の複数のパイプラインコンポーネントと、
前記MLタスクに対する第1モデル選択動作と、
を含む、請求項1に記載の方法。
【請求項3】
前記第2MLパイプラインは、
前記入力データセットに対する変換の第2セットを表す第2の複数のパイプラインコンポーネントと、
前記MLタスクに対する第2モデル選択動作と、
を含む、請求項1に記載の方法。
【請求項4】
前記システムに関連する計算リソースの制約及び前記MLタスクに関連する性能要件を含む仕様を受信するステップと、
前記仕様に基づいて前記パイプラインコンポーネントのセットを決定するステップと、
を更に含む請求項1に記載の方法。
【請求項5】
前記仕様に基づいて前記1つ以上の探索的コード生成ツールの実行のための最大実行時間を決定するステップと、
前記最大実行時間に基づいて前記1つ以上の探索的コード生成ツールの実行を制御するステップと、
を更に含み、
前記1つ以上の探索的コード生成ツールは、パイプラインコンポーネントの最適化空間にわたって検索を実行し、前記検索に基づいて前記パイプラインコンポーネントのセットを決定するために実行される、請求項4に記載の方法。
【請求項6】
前記1つ以上の探索的コード生成ツールを使用して、前記パイプラインコンポーネントのセットに関連付けられた性能データを生成するステップと、
前記性能データに基づいて前記パイプラインコンポーネントのセットから前記パイプラインコンポーネントを選択するステップと、
を更に含み、
前記性能データは、前記パイプラインコンポーネントのセットのうちの各パイプラインコンポーネントの性能スコアを含み、
前記パイプラインコンポーネントの前記性能スコアは、前記性能データにおける最大値である、請求項1に記載の方法。
【請求項7】
前記パイプラインコンポーネントのセットは、MLモデルのセットに対応する関数呼び出しのセットを含む、請求項6に記載の方法。
【請求項8】
前記性能スコアは、前記入力データセットに対する前記MLモデルのセットのうちの対応するMLモデルの予測メトリック又はトレーニング時間を測定する、請求項7に記載の方法。
【請求項9】
前記第1MLパイプラインのコンテンツを解析して、前記コンテンツ内の関数呼び出しを介して第1MLモデルへの参照を決定するステップと、
前記第1MLモデルの性能スコアと前記MLモデルのセットのうちの他のMLモデルとの比較に基づいて、前記関数呼び出しのセットから、前記パイプラインコンポーネントとして第2MLモデルへの関数呼び出しを選択するステップと、
を更に含む請求項7に記載の方法。
【請求項10】
前記MLモデルのセットの各MLモデルは、
ハイパーパラメータ最適化を備えたMLモデルの単一層、
前記MLモデルの2つの層のスタック、
2つのMLモデルの単一層のアンサンブル、又は、
前記2つのMLモデルの2つの層のアンサンブル、
のうちの1つである、請求項7に記載の方法。
【請求項11】
前記第1MLパイプラインは、前記選択されたパイプラインのハイパーパラメータに基づいて更に修正される、請求項1に記載の方法。
【請求項12】
前記修正は、前記第1MLパイプラインのパイプラインコンポーネントの変数名、モデルクラス、及びモジュールパスに関連付けられた変更を含む、請求項1に記載の方法。
【請求項13】
1つ以上の非一時的コンピュータ可読記憶媒体であって、命令を格納するように構成され、前記命令は実行されることに応答してシステムに動作を実行させ、前記動作は、
機械学習(ML)タスクに関連する入力データセットを受信するステップと、
生成的コード生成ツールを実行することによって、前記MLタスクに関連する第1MLパイプラインを生成するステップと、
1つ以上の探索的コード生成ツールを実行することによって、前記MLタスクに関連するパイプラインコンポーネントのセットを決定するステップと、
前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、
前記選択に基づいて前記第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、
前記入力データセットで前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップと、
前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、
前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記第1MLパイプライン又は前記第2MLパイプラインの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御するステップと、
を含む1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項14】
前記動作は、
前記システムに関連する計算リソースの制約及び前記MLタスクに関連する性能要件を含む仕様を受信するステップと、
前記仕様に基づいて前記パイプラインコンポーネントのセットを決定するステップと、
を更に含む、請求項13に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項15】
前記動作は、
前記1つ以上の探索的コード生成ツールを使用して、前記パイプラインコンポーネントのセットに関連付けられた性能データを生成するステップと、
前記性能データに基づいて前記パイプラインコンポーネントのセットから前記パイプラインコンポーネントを選択するステップと、
を更に含み、
前記性能データは、前記パイプラインコンポーネントのセットのうちの各パイプラインの性能スコアを含み、
前記パイプラインコンポーネントの前記性能スコアは、前記性能データにおける最大値である、請求項13に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記パイプラインコンポーネントのセットは、MLモデルのセットに対応する関数呼び出しのセットを含む、請求項15に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記性能スコアは、前記入力データセットに対する前記MLモデルのセットのうちの対応するMLモデルの予測メトリック又はトレーニング時間を測定する、請求項16に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記動作は、
前記第1MLパイプラインのコンテンツを解析して、前記コンテンツ内の関数呼び出しを介して第1MLモデルへの参照を決定するステップと、
前記第1MLモデルの性能スコアと前記MLモデルのセットのうちの他のMLモデルとの比較に基づいて、前記関数呼び出しのセットから、前記パイプラインコンポーネントとして第2MLモデルへの関数呼び出しを選択するステップと、
を更に含む、請求項16に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記第1MLパイプラインは、前記選択されたパイプラインのハイパーパラメータに基づいて更に修正される、請求項13に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
【請求項20】
システムであって、
命令を格納するよう構成されるメモリと、
前記メモリに結合され、前記命令を実行して処理を実行するよう構成されるプロセッサと、
を含み、前記処理は、
機械学習(ML)タスクに関連する入力データセットを受信するステップと、
生成的コード生成ツールを実行することによって、前記MLタスクに関連する第1MLパイプラインを生成するステップと、
1つ以上の探索的コード生成ツールを実行することによって、前記MLタスクに関連するパイプラインコンポーネントのセットを決定するステップと、
前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、
前記選択に基づいて前記第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、
前記入力データセットで前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップと、
前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、
前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記第1MLパイプライン又は前記第2MLパイプラインの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御するステップと、
を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示で説明する実施形態は、探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成に関するものである。
【背景技術】
【0002】
機械学習及び人工知能(Artificial Intelligent (AI))の分野における進歩により、自動コード生成ツールが開発された。これらのツールは、様々な種類の工学的及び科学的問題を解決するために、学生、研究者、及びエンジニア等によって使用されることが増えている。自動機械学習ツールは、現実世界の問題に機械学習を適用するタスクを自動化するために使用できるプロセスを提供する、コード生成ツールの一形態である。例えば、自動機械学習ツールは、機械学習プロジェクトの開発の異なる段階、すなわち、生のデータセットから、デプロイのための機械学習モデルの構築まで、ユーザを助けることができる。初心者ユーザは、自動機械学習ツールを使用して、データの処理と機械学習モデルのトレーニングのための機械学習アプローチを学ぶことができる。一方、データサイエンティスト又はエキスパートユーザは、自動機械学習ツールを使用して、異なるアプローチと多様なパイプライン利用を適用することによって、機械学習モデルの適合率を向上させることができる。自動機械学習ツールは、通常、ツールのユーザによって提供される所定のタスクとデータセットのコンピュータ実行可能コードを生成することができる。
【0003】
本開示で請求される主題は、任意の欠点を解決する又は上述のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本開示に記載の幾つかの実施形態が実施され得る一例である技術領域を説明するためにのみ提供される。
【発明の概要】
【0004】
本発明の態様によると、方法は動作セットを含んでよい。前記動作セットは、機械学習(ML)タスクに関連付けられた入力データセットを受信するステップと、生成的コード生成ツールを実行することによって前記MLタスクに関連付けられた第1MLパイプラインを生成するステップとを含む。前記動作セットは、更に、1つ以上の探索的コード生成ツールを実行することにより、前記MLタスクに関連付けられたパイプラインコンポーネントのセットを決定するステップと、前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、を含む。前記動作セットは、更に、前記選択に基づいて第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、前記入力データセット上で前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップとを含む。前記動作セットは、更に、前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記MLパイプラインの推奨を前記第1MLパイプライン又は前記第2MLパイプラインのうちの1つとしてレンダリングするように電子装置を制御するステップとを含んでよい。
【0005】
実施形態の目的及び利点は、請求項において特に指摘される要素、特徴、及び組み合わせにより少なくとも実現され達成される。
【0006】
前述の一般的説明及び以下の詳細な説明は両方とも例として与えられ、説明のためであり、請求される本発明の限定ではない。
【図面の簡単な説明】
【0007】
例示的な実施形態は、以下の添付の図面の使用を通じて更なる特殊性及び詳細事項により記載され説明される。
【0008】
図1】探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成に関する例示的な環境を表す図である。
【0009】
図2】探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成のための例示的な電子装置を示すブロック図である。
【0010】
図3】探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成のための例示的な方法のフローチャートを示す図である。
【0011】
図4A】第1MLパイプラインを修正するための例示的なシナリオを示す図である。
図4B】第1MLパイプラインを修正するための例示的なシナリオを示す図である。
【0012】
図5】探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成のための例示的なシナリオを示す図である。
【0013】
全図は、本開示に記載される少なくとも1つの実施形態に従う。
【発明を実施するための形態】
【0014】
本開示で説明する幾つかの実施形態は、探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成のための方法及びシステムに関するものである。本開示では、探索的コード生成ツール又は生成的コード生成ツールなどの1つのタイプの自動機械学習(AutoML)ツールを選択する代わりに、生成的コード生成ツールによって生成される機械学習(ML)パイプラインを、探索的コード生成ツールによって探索される様々なモデルと組み合わせることができる。従って、探索的コード生成ツール及び生成的コード生成ツールの各々に関連する利点を保持することができ、性能が向上したカスタマイズ可能なMLパイプラインを合成することができる。
【0015】
本開示の1つ以上の実施形態によれば、人工知能(AI)モデルの技術分野は、コンピュータシステムが探索的及び生成的コード生成ツールを使用して機械学習(ML)パイプラインを生成できるようにコンピュータシステムを構成することによって改善することができる。コンピュータシステムは、機械学習(ML)タスクに関連する入力データセットを受け取ることができる。コンピュータシステムは、生成的コード生成ツールを実行することによって、MLタスクに関連する第1MLパイプラインを生成することができる。コンピュータシステムは、1つ以上の探索的コード生成ツールを実行することによって、MLタスクに関連するパイプラインコンポーネントのセットを決定することができる。コンピュータシステムは、パイプラインコンポーネントのセットからパイプラインコンポーネントを選択することができる。コンピュータシステムは、選択に基づいて第1MLパイプラインを修正して、第2MLパイプラインを生成することができる。コンピュータシステムは、入力データセット上で第1MLパイプラインを実行することによって、第1性能メトリックを決定することができる。コンピュータシステムは、入力データセット上で第2MLパイプラインを実行することによって、第2性能メトリックを決定することができる。コンピューティングシステムは、第1性能メトリックと第2性能メトリックとの比較に基づいて、第1MLパイプライン又は第2MLパイプラインのうちの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御することができる。
【0016】
自動機械学習ツールは、現実世界の問題に機械学習を適用するタスクを自動化するために使用できるプロセスを提供する、コード生成ツールの一形態である。例えば、自動機械学習ツールは、機械学習プロジェクトの開発の異なる段階、すなわち、生のデータセットから、デプロイのための機械学習モデルの構築まで、ユーザを助けることができる。従って、自動機械学習(AutoML)は、機械学習の問題を解決するためのローコード/ノーコード(low-codeno-code (LCNC))ソリューションであってよい。所与の入力データセットについて、AutoMLは自動的にMLモデルをトレーニングし、予測を行うことができる。自動機械学習ツールは、通常、ツールのユーザによって提供される所定のタスクとデータセットのコンピュータ実行可能コードを生成することができる。
【0017】
AutoMLツールの2つの主要なアプローチは、生成的コード生成ツールと探索的コード生成ツールである。生成的コード生成ツールは、データサイエンティストのための実行可能なMLパイプラインを短時間で生成することができる。ここで、MLパイプラインは、既存のドメイン固有のベストプラクティスに基づいて生成することができる。生成的コード生成ツールは、ソースコードのラベリングや、データサイエンティストが記述したソースコードからMLパイプラインのテンプレートを抽出するための高度なエンジニアリング作業に多大な労力を必要とする可能性がある。一方、探索的コード生成ツールは、MLパイプラインの探索空間から最適なMLパイプラインを探索するために、多くの計算リソースと長い計算時間を必要とする可能性がある。しかし、異なる探索的コード生成ツールは、特徴エンジニアリングと機械学習アルゴリズムの様々なオプションを探索するための独自の体系的なエンジニアリングアプローチを有する可能性がある。従って、探索的コード生成ツールを使用してMLパイプラインを生成するために、トレーニングデータを準備する必要がない。更に、理論的には、任意の所与のデータセットに対して、及び、MLパイプラインの大きな探索空間を探索するための所与の十分な期間と予算に対して、探索的コード生成ツールは、妥当な性能でMLパイプラインを見つけるために、生成的コード生成ツールよりも信頼性が高い可能性がある。従って、生成的コード生成ツールと探索的コード生成ツールには、各々長所と短所がある。
【0018】
一方、開示されたシステムは、探索的コード生成ツールと生成的コード生成ツールの両方を使用して機械学習(ML)パイプラインを生成することができる。開示されたシステムは、生成的コード生成ツールによって生成された機械学習パイプラインを、1つ以上の探索的コード生成ツールを実行することによって決定されるパイプラインコンポーネントのセットから選択されたパイプラインコンポーネントと組み合わせることができる。従って、開示されたシステムは、探索的コード生成ツールと生成的コード生成ツールの両方の利点を保持することができる。すなわち、開示されたシステムは、より短い期間で、MLタスクに対して妥当な性能を有するMLパイプラインを推奨することができる。生成的コード生成ツールが使用されるため、MLパイプラインは、データサイエンティストによって使用されるドメイン固有のベストプラクティスを考慮することによって推奨され得る。更に、1つ以上の探索的コード生成ツールが使用されるため、推奨されるMLパイプラインは、信頼性が高く、妥当な性能スコアを有することができる。
【0019】
本開示の実施形態は、添付の図面を参照して説明される。
【0020】
図1は、本開示に記載される少なくとも1つの実施形態に従って構成される、自動パイプライン推奨のための機械学習(ML)パイプラインの合成に関連する例示的な環境を表す図である。図1を参照すると、環境100が示される。環境100は、システムを含んでよい。システムは、電子装置102、ウェブベースのデータソース104、サーバ106、データベース108、及び通信ネットワーク110を含むことができる。電子装置102は、生成的コード生成ツール102A及び探索的コード生成ツール102Bを含むことができ、又はこれらにアクセスすることができる。電子装置102、ウェブベースのデータソース104、及びデータベース108は、通信ネットワーク110を介して互いに通信可能に結合することができる。データベース108は、入力データセット112を含んでよい。図1では、電子装置102に関連付けられるか又はそれを操作するユーザ114が更に示されている。
【0021】
システム(図示せず)は、本明細書に記載されるように、探索的及び生成的コード生成ツール推奨を使用して機械学習(ML)パイプラインを生成するように構成することができる、適切なロジック、回路、インタフェース、及び/又はコードを含むことができる。システムの例には、メタ学習マシン、モバイル装置、デスクトップコンピュータ、ラップトップ、コンピュータワークステーション、コンピューティング装置、メインフレームマシン、クラウドサーバなどのサーバ、及びサーバ群が含まれるが、これらに限定されない。1つ以上の実施形態では、システムは、ユーザエンド端末装置、及びユーザエンド端末装置に通信可能に結合されたサーバを含んでよい。システムは、プロセッサ、(例えば、1つ以上の動作を実行する又は実行を制御する)マイクロプロセッサ、FPGA(field-programmable gate array)、又はASIC(application-specific integrated circuit)を含むハードウェアを用いて実装されてよい。幾つかの他の例では、システムは、ハードウェア及びソフトウェアの組み合わせを用いて実装されてよい。
【0022】
電子装置102は、適切なロジック、回路、インタフェース、及び/又はコードを含むことができ、これらは、ユーザ114(例えば、開発者)を支援するために、表示画面上にMLパイプライン推奨をレンダリングするように構成することができる。電子装置102の例には、メタ学習マシン、モバイル装置、デスクトップコンピュータ、ラップトップ、コンピュータワークステーション、コンピューティング装置、メインフレームマシン、クラウドサーバなどのサーバ、及びサーバ群が含まれるが、これらに限定されない。1つ以上の実施形態では、電子装置102は、ユーザエンド端末装置、及びユーザエンド端末装置に通信可能に結合されたサーバを含んでよい。
【0023】
生成的コード生成ツール102Aは、MLタスクに関連付けられた第1MLパイプラインを生成するために使用することができる。一実施形態では、生成的コード生成ツール102Aは、生成的自動機械学習(automated machine learning (AutoML))であってもよく、人間が記述したパイプラインでトレーニングされてもよい。生成的コード生成ツール102Aは、データサイエンティスト又はMLエンジニアのドメイン固有のベストプラクティスを考慮することによってMLパイプラインを生成するように構成することができる。生成的コード生成ツール102Aは、MLタスクに関連付けられた第1MLパイプラインを生成するために、多数のパイプライン候補を探索し、動的に実行する必要がない場合がある。従って、生成的コード生成ツール102Aは、第1MLパイプラインを生成するために、より短い実行時間の間、実行すればよい。生成された第1MLパイプラインは、ビジネス目的のためにカスタマイズする必要がある場合があるので、生成された第1MLパイプラインは、複数回実行する必要がある場合がある。従って、生成的コード生成ツール102Aに関連付けられたより短い実行時間とより小さなコストは、第1MLパイプラインのカスタマイズ手順全体に役立つ場合がある。生成的コード生成ツール102Aは、多数のMLパイプライン候補を動的に実行することなく、第1MLパイプラインを生成することができる。例として、生成的コード生成ツール102Aは、「SapientML」、「AlphaD3M(登録商標)」、「Oracle(登録商標)AutoML」などを含むことができる。
【0024】
探索的コード生成ツール102Bは、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定するために使用することができる。探索的コード生成ツール102Bは、自動ML問題を探索及び最適化問題とみなすことができる。探索及び最適化問題では、性能スコアの最大値を有するMLパイプラインコンポーネントをパイプラインコンポーネントの探索空間から選択することができる。
【0025】
任意の所与のデータセットについて、探索的コード生成ツール102Bは、MLパイプラインの大きな探索空間を探索するための十分な時間と予算が与えられた場合に、妥当な性能を有するMLパイプライン(パイプラインコンポーネントのセットを有するパイプラインなど)を見つけるために、他のコード生成アプローチよりも信頼性が高い。しかし、探索的コード生成ツール102Bは、多数のMLパイプライン候補を探索して動的に実行する必要があり、その結果、処理時間が長くなり、探索コストが高くなる可能性がある。また、探索的コード生成ツール102Bは、データサイエンティストのドメイン固有のベストプラクティスから学習できない可能性がある。例えば、探索的コード生成ツール102Bは、人間のデータサイエンティストのように、特定の特徴エンジニアリング変換を特定のデータセット列に適用できない可能性がある。
【0026】
ウェブベースのデータソース104は、データセット、ディスカッション、コードリポジトリ、及び/又は実行可能カーネル(コードノートブックなど)のようなウェブデータをホストするためのプラットフォームであってもよい。一実施形態では、ウェブベースのデータソース104は、ウェブサイトサーバ、クラウドストレージ、ウェブアプリケーション、又はデータダウンロードのためのウェブAPIを公開するウェブベースのサービスであってもよい。カーネルは、特定のデータセットのための機械学習パイプラインを含んでもよい。場合によっては、入力データセット112をウェブベースのデータソース104から受け取り、データベース108に格納してもよい。一実施形態では、入力データセット112は、ウェブベースのデータソース104とは異なる(リンクされていない)独自データソースから受け取ってもよい。
【0027】
サーバ106は、入力データセット及び生成された第1MLパイプラインに関連する情報を格納するように構成されてもよい適切なロジック、回路、及びインタフェース、及び/又はコードを含んでもよい。サーバ106は、クラウドサーバとして実装されてもよく、ウェブアプリケーション、クラウドアプリケーション、HTTP要求、リポジトリ操作、ファイル転送などを介して操作を実行してもよい。サーバ106の他の実装例としては、データベースサーバ、ファイルサーバ、ウェブサーバ、メディアサーバ、アプリケーションサーバ、メインフレームサーバ、又はクラウドコンピューティングサーバが挙げられるが、これらに限定されない。
【0028】
少なくとも一実施形態では、サーバ106は、当業者によく知られている幾つかの技術を使用して、複数の分散型クラウドベースリソースとして実装され得る。当業者は、開示の範囲が、サーバ106及び電子装置102の2つの別個のエンティティとしての実装に限定されないことを理解するであろう。特定の実施形態では、サーバ106の機能は、開示の範囲から逸脱することなく、その全体又は少なくとも部分的に電子装置102に組み込むことができる。ある実施例では、サーバ106は、データベース108をホストしてもよい。あるいは、サーバ106は、データベース108から分離されていてもよく、データベース108に通信可能に結合されていてもよい。
【0029】
データベース108は、入力データセット112を格納するように構成されてもよい適切なロジック、インタフェース、及び/又はコードを含んでもよい。データベース108は、リレーショナルデータベース又は非リレーショナルデータベースからのデータ、又は従来の若しくはビッグデータストレージ内のカンマ区切り値(comma-separated values (csv))ファイルのセットから導出することができる。データベース108は、サーバ106又は電子装置102などの装置に格納又はキャッシュすることができる。データベース108を格納する装置は、電子装置102から入力データセット112に対するクエリを受信するように構成されてもよい。これに応答して、データベース108を格納する装置は、受信したクエリに基づいて、クエリされた入力データセット112を検索し、電子装置102に提供するように構成されてもよい。幾つかの実施形態では、データベース108は、1つ以上の場所にある複数のサーバ上にホストすることができる。データベース108の動作は、プロセッサ、(例えば、1つ以上の動作を実行する又は実行を制御する)マイクロプロセッサ、FPGA(field-programmable gate array)、又はASIC(application-specific integrated circuit)を含むハードウェアを用いて実行されてよい。幾つかの他の例では、データベース108は、ソフトウェアを用いて実装されてよい。
【0030】
通信ネットワーク110は通信媒体を含んでよく、該通信媒体を通じて、電子装置102が、データベース108を格納し得るサーバ104通信してよい。通信ネットワーク110の例は、限定ではないが、インターネット、クラウドネットワーク、Wi-Fi(Wireless Fidelity)ネットワーク、PAN(Personal Area Network)、LAN(Local Area Network)、及び/又はMAN(Metropolitan Area Network)を含んでよい。環境100内の種々の装置は、種々の有線及び無線通信プロトコルに従い、通信ネットワーク110に接続するよう構成されてよい。このような有線及び無線通信プロトコルの例は、限定ではないが、TCP/IP(Transmission Control Protocol and Internet Protocol)、UDP(User Datagram Protocol)、HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、ZigBee、EDGE、IEEE802.11、Li-Fi(light fidelity)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、装置間通信、セルラ通信プロトコル、及び/又はBT(Bluetooth)通信プロトコル、又はそれらの組み合わせを含んでよい。
【0031】
入力データセット112は、ユーザ114又はウェブベースのデータソース104から受信したデータであってもよく、MLパイプライン推奨を行う必要がある場合がある。一実施形態では、入力データセット112は、住宅価格予測問題に関連するデータセットなどの表形式のデータセットであってもよい。受信した入力データセット112は、生の形式であってもよく、データベース108にcsv、tsv、txt、又はjsonなどの形式で格納してもよい。
【0032】
動作において、ユーザ入力は、電子装置102を介して提供されてもよい。例えば、電子装置102は、ユーザ114が、データセット(入力データセット112など)を含む要求をシステムに送信して、コンピュータ実行可能コード又はカーネル(コンピュータ実行可能ノートブックなど)の形式でデータセットに対するMLパイプライン推奨を生成することを可能にしてもよい。
【0033】
システムは、要求を介してMLタスクに関連付けられた入力データセット112を受信し、生成的コード生成ツール102Aを実行することによってMLタスクに関連付けられた第1MLパイプラインを生成してもよい。生成的コード生成ツール102Aは生成的AutoMLツールとも呼ばれてもよく、これは、古いデータセットのコーパス及び人間が記述したMLパイプラインから学習することによって新しいデータセットに対する予測タスクのためのMLパイプラインを生成することができる。一例として、生成的コード生成ツール102Aは、「SapientML」であってもよい。第1MLパイプラインの生成に関連する詳細は、例えば、図3(304)に更に提供される。
【0034】
システムは、探索的コード生成ツール102Bなどの1つ以上の探索的コード生成ツールを実行することによって、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定してもよい。1つ以上の探索的コード生成ツールの各々は、異なる構成を必要としてもよい。探索的コード生成ツール102Bの実行中に、探索的コード生成ツール102Bへの入力として仕様が提供されてもよい。パイプラインコンポーネントのセットを決定するために、システムは、受信した仕様に基づいて探索的コード生成ツール102Bを実行してもよい。パイプラインコンポーネントのセットの決定に関連する詳細は、例えば、図3(306)に更に提供される。
【0035】
システムは、パイプラインコンポーネントのセットからパイプラインコンポーネントを選択することができる。パイプラインコンポーネントを選択するために、パイプラインコンポーネントのセットに関連する性能データを決定してもよい。その後、性能データに基づいてパイプラインコンポーネントを選択してもよい。パイプラインコンポーネントの選択に関する詳細は、例えば、図3(符号308)に更に提供される。
【0036】
システムは、選択に基づいて第1MLパイプラインを修正して、第2MLパイプラインを生成することができる。第2MLパイプラインを生成するために、システムは、パイプラインコンポーネントのセットから選択されたパイプラインコンポーネントを第1MLパイプラインのパイプラインコンポーネントで置き換えることができる。第1MLパイプラインの修正に関連する詳細は、例えば、図3(310)に更に提供される。
【0037】
システムは、入力データセット上で第1MLパイプラインを実行することによって、第1性能メトリックを決定することができる。第1性能メトリックは、第1MLパイプラインを評価するために使用することができる、正解率メトリック、混同行列、適合率メトリックなどの予測メトリックであってもよい。第1性能メトリックの決定に関する詳細は、例えば、図3(312)に更に提供される。
【0038】
システムは、入力データセット上で第2MLパイプラインを実行することによって、第2性能メトリックを決定することができる。第1性能メトリックと同様に、第2性能メトリックは、第2MLパイプラインを評価するために使用することができる予測メトリックであってもよい。第2性能メトリックの決定に関する詳細は、例えば、図3(314)に更に提供される。
【0039】
システムは、第1性能メトリックと第2性能メトリックとの比較に基づいて、第1MLパイプライン又は第2MLパイプラインのうちの1つとしてMLパイプライン推奨をレンダリングするように電子装置102を制御することができる。ここで、MLパイプラインは、第1性能メトリックが第2性能メトリックより大きい場合に、第1MLパイプラインとして推奨することができる。同様に、第1性能メトリックが第2性能メトリックより小さい場合には、第2MLパイプラインを推奨することができる。電子装置102の制御に関連する詳細は、例えば、図3(316)に更に提供される。
【0040】
変更、追加、又は省略が、本開示の範囲から逸脱することなく図1に対して行われてよい。例えば、環境100は、図示され本開示で説明されるよりも多数又は少数の要素を含んでよい。例えば、幾つかの実施形態では、環境100は、電子装置102を含むが、データベース108を含まなくてよい。更に、幾つかの実施形態では、データベース108の機能は、本開示の範囲から逸脱することなく、電子装置102に組み込まれてよい。
【0041】
図2は、本開示に記載されている少なくとも1つの実施形態に従って構成された、探索的及び生成的コード生成ツールを使用して機械学習(ML)パイプラインを生成するための例示的なシステムを示すブロック図である。図2は、図1の要素と関連して説明される。図2を参照すると、電子装置102のブロック図200が示される。電子装置102は、生成的コード生成ツール102A、探索的コード生成ツール102B、プロセッサ204、メモリ206、ネットワークインタフェース208、入力/出力(I/O)装置210、及びディスプレイ装置210Aを含むことができる。
【0042】
システム202は、本願明細書に記載されるように、探索的及び生成的コード生成ツール推奨を使用してMLパイプラインを生成するように構成することができる、適切なロジック、回路、インタフェース、及び/又はコードを含むことができる。システム202の例には、メタ学習マシン、モバイル装置、デスクトップコンピュータ、ラップトップ、コンピュータワークステーション、コンピューティング装置、メインフレームマシン、クラウドサーバなどのサーバ、及びサーバ群が含まれるが、これらに限定されない。1つ以上の実施形態では、システム202は、ユーザエンド端末装置、及びユーザエンド端末装置に通信可能に結合されたサーバを含んでよい。システム202は、プロセッサ、(例えば、1つ以上の動作を実行する又は実行を制御する)マイクロプロセッサ、FPGA(field-programmable gate array)、又はASIC(application-specific integrated circuit)を含むハードウェアを用いて実装されてよい。幾つかの他の例では、システムは、ハードウェア及びソフトウェアの組み合わせを用いて実装されてよい。
【0043】
プロセッサ204は、システム202によって実行される異なる動作に関連付けられたプログラム命令を実行するように構成することができる適切な論理、回路、及び/又はインタフェースを含むことができる。プロセッサ204は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む、任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理装置を含んでよく、任意の適切なコンピュータ可読記憶媒体に格納された命令を実行するよう構成されてよい。例えば、プロセッサ204は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラム命令を解釈し及び/又は実行し及び/又はデータを処理するよう構成される任意の他のデジタル若しくはアナログ回路を含んでよい。
【0044】
図2には単一のプロセッサとして示されるが、プロセッサ204は、個々に又は集合的に本開示に記載のような電子装置102の任意の数の動作を実行する又は実行を指示するよう構成される任意の数のプロセッサを含んでよい更に、プロセッサのうちの1つ以上は、異なるサーバのような1つ以上の異なる電子装置上に存在してよい。幾つかの実施形態では、プロセッサ204は、プログラム命令をするように構成され解釈し及び/又は実行し、及び/又はメモリ206に格納されたデータを処理するよう構成されてよい。プロセッサ204の例のうちの幾つかは、グラフィック処理ユニット(graphics processing unit (GPU))、中央処理ユニット(central processing unit (CPU))、縮小命令セットコンピュータ(Reduced Instruction Set Computer (RISC)プロセッサ、ASICプロセッサ、複雑命令セットコンピュータ(complex instruction set computer (CISC))プロセッサ、コプロセッサ、及び/又はそれらの組み合わせであってよい。
【0045】
メモリ206は、入力データセット112を格納するように構成されてもよい適切なロジック、回路、インタフェース、及び/又はコードを含んでもよい。メモリ206は、プロセッサ204により実行可能なプログラム命令を格納してよい。特定の実施形態では、メモリ206は、オペレーティングシステム及び関連する特定用途情報を格納するよう構成されてよい。メモリ206は、格納されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有するコンピュータ可読記憶媒体を含んでよい。このようなコンピュータ可読記憶媒体は、プロセッサ204のような汎用又は専用コンピュータによりアクセスされ得る任意の市販の媒体を含んでよい。例として、限定ではなく、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD-ROM)、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ素子(例えば、個体メモリ装置)、又はコンピュータ実行可能命令若しくはデータ構造の形式で特定のプログラムコードを運ぶ又は格納するために使用され得る且つ汎用又は専用コンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形又は非一時的コンピュータ可読媒体を含んでよい。上記の組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ204に、電子装置102に関連付けられた特定動作又は一群の動作を実行させるよう構成される命令及びデータを含んでよい。
【0046】
ネットワークインタフェース208は、電子装置102とデータベース108のサーバ/装置との間の通信を通信ネットワーク110を介して確立するよう構成され得る、適切なロジック、回路、インタフェース、及び/又はコードを有してよい。ネットワークインタフェース208は、通信ネットワーク110を、介して電子装置102の有線又は無線通信をサポートする種々の知られている技術の使用により実装されてよい。ネットワークインタフェース208は、限定ではないが、アンテナ、無線周波数(RF)通信機、1つ以上の増幅器、チューナ、1つ以上の発信器、デジタル信号プロセッサ、コードデコーダ(CODEC)チップセット、加入者識別モジュール(SIM)カード、及び/又はローカルバッファを含んでよい。
【0047】
I/O装置210は、ユーザ入力を受信するよう構成され得る、適切なロジック、回路、インタフェース、及び/又はコードを含んでよい。例えば、I/O装置210は、入力データセット112に対応する第1ユーザ入力を受信してもよい。I/O装置210は、プロセッサ204及びネットワークインタフェース208のような他のコンポーネントと通信するよう構成され得る種々の入力及び出力装置を含んでよい。入力装置の例は、限定ではないが、タッチスクリーン、キーボード、マウス、ジョイスティック、及び/又はマイクロフォンを含んでよい。出力装置の例は、限定ではないが、ディスプレイ(例えば、ディスプレイ装置210A)及びスピーカを含んでよい。
【0048】
ディスプレイ装置210Aは、自動パイプライン推奨を表示するように構成され得る適切なロジック、回路及び/又はコードを含むことができる。ディスプレイ装置210Aは、ユーザ114からユーザ入力(例えば、入力データセット112に対する要求に対応する第1ユーザ入力)を受け取るように構成することができる。このような場合には、ディスプレイ装置210Aは、ユーザ入力を受信するタッチスクリーンであってよい。ディスプレイ装置210Aは、限定ではないが、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、及び/又は有機LED(OLED)ディスプレイ技術、及び/又は他のディスプレイ技術のような、幾つかの知られている技術を通じて実現されてよい。
【0049】
変更、追加、又は省略が、本開示の範囲から逸脱することなく例示的な電子装置102に対して行われてよい。例えば、幾つかの実施形態では、例示的な電子装置102は、簡単のために明示され又は記載されないことのある任意の数の他のコンポーネントを含んでよい。
【0050】
図3は、本開示の一実施形態による、探索的及び生成的コード生成ツールを使用した機械学習(machine learning (ML))パイプラインの生成のための例示的な方法のフローチャートを示す図である。図3Aは、図1及び図2の要素と関連して記載される。図3を参照すると、フローチャート300が示される。フローチャート300に示される方法は、302で開始してよく、任意の適切なシステム、機器、又は装置、により、例えば図1、の例示的な電子装置が102又は図2のプロセッサ204により、実行されてよい。別個のブロックにより示したが、フローチャート300のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
【0051】
ブロック302で、MLタスクに関連する入力データセット112が受信されてもよい。一実施形態では、プロセッサ204は、入力データセット112を受信するように構成されてもよい。MLタスクの例には、分類タスク、回帰タスク、クラスタリングタスク、生成タスク、又は敵対的学習タスクが含まれるが、これらに限定されない。一実施形態では、入力データセット112の1つ以上のターゲット特徴に関連する情報が更に受信されてもよい。このような情報は、ユーザが入力データセット112を使用して実行したい又は実行できるMLタスクのタイプを決定するために必要とされてもよい。例示的な実施形態では、入力データセット112は、住宅価格予測問題に関連する表形式のデータセットであってもよい。入力データセット112は、土地面積、住宅の状態、住宅の建設年、プール面積、及び住宅の販売価格などの特徴を含んでもよい。MLタスクは回帰タスクであってもよく、MLタスクのターゲット特徴は販売価格であってもよい。
【0052】
ブロック304において、生成的コード生成ツール102Aを実行することによって、MLタスクに関連する第1MLパイプラインを生成することができる。一実施形態では、プロセッサ204は、生成的コード生成ツール102Aを実行することによって、MLタスクに関連する第1MLパイプラインを生成するように構成することができる。生成的コード生成ツール102Aは生成的AutoMLツールとも呼ばれてもよく、これは、古いデータセットのコーパス及び人間が記述したMLパイプラインから学習することによって、新しいデータセットに対する予測タスクのための高品質MLパイプラインを迅速に生成することができる。例えば、「SapientML」などの生成的コード生成ツール102Aは、探索空間を削減するために漸進的に小さい探索領域に基づいて推論する3段階プログラム合成アプローチを使用することができる。第1ステップでは、パイプラインの実現可能なMLコンポーネントをMLモデルを使用して予測することができる。第2ステージでは、MLモデル及びコーパスに関連付けられたシンタックス制約を使用して、コンポーネントを実行可能な具体的なパイプラインの限られたプールに凝縮することができる。第3ステージでは、パイプライン推奨のために(第2ステージからの)選択された数のパイプラインを評価することができる。
【0053】
生成的コード生成ツール102Aは、第1MLパイプラインを生成するために、多数のMLパイプライン候補を探索して動的に実行する必要がない場合がある。従って、生成的コード生成ツール102Aは、より短い時間で第1MLパイプラインを生成することができる。入力データセット112に関連付けられた特徴が一意であるシナリオでは、人間が記述したパイプラインを利用できない場合がある。このような場合、生成的コード生成ツール102Aは、生成されたMLパイプラインで良好な性能スコアを保証できない場合がある。
【0054】
一実施形態では、第1MLパイプラインは、入力データセットに対する第1変換セット及びMLタスクに対する第1モデル選択動作を表す第1の複数のパイプラインコンポーネントを含むことができる。第1MLパイプラインは、データ前処理コンポーネントなど0個又は少なくとも1つの前処理コンポーネントを含むことができる。場合によっては、第1の複数のパイプラインコンポーネントは、データ前処理コンポーネントに加えて、特徴選択コンポーネント及び/又は特徴エンジニアリングコンポーネントを含むことができる。所定の前処理コンポーネントは、対応する入力データセット112の特徴のサブセット又はセット全体に適用することができ、MLモデルは、特徴のセット全体に適用することができる。
【0055】
データ前処理コンポーネントは、入力データセット112を前処理することができ、例えば、欠損値処理コンポーネント、データ不均衡コンポーネント、及び入力データセット112に適用可能なスケーリングコンポーネントを含むことができる。入力データセット112のデータ不均衡は、「imblearn.under_sampling」、「NearMiss imblearn.over_sampling.SMOTENC」等のようなデータ不均衡コンポーネントを使用して処理できる。入力データセット112は、「sklearn.preprocessing.StandardScaler」、「sklearn.preprocessing.MinMaxScaler」などのスケーリングコンポーネントを使用してスケーリングすることができる。特徴選択コンポーネントは、受信した入力データセット112に関連付けられた特徴のセットから特徴のサブセットを選択することができる。特徴選択コンポーネントの例は、「pandas.DataFrame.drop」及び「sklearn.feature_selection.RFE」を含むことができるが、これらに限定されない。特徴エンジニアリングコンポーネントは、入力データセット112から特徴を抽出することができる。例えば、特徴エンジニアリングコンポーネントは、「patsy.dmatrices」、「sklearn.cluster.KMeans」などを含むことができる。複数のパイプラインコンポーネントは、「pandas.to_datetime」、「sklearn.feature_extraction.text.TfidfVectorizer」などの特徴抽出コンポーネントを含むこともできる。複数のパイプラインコンポーネントは、「pandas.get_dummies」、「sklearn.preprocessing.LabelEncoder」などのカテゴリエンコーダはコンポーネントを更に含むこともできる。
【0056】
第1MLパイプラインは、MLタスクに対するモデル選択動作に関連付けられたMLモデルコンポーネントを含むこともできる。モデル選択動作は、MLタスクに基づいて回帰モデル又は分類モデルなどの第1MLモデルを選択するために使用することができる。例えば、モデル選択及び評価コンポーネントは、「sklearn.model_selection.learning_curve」、「sklearn.model_selection.cross_val_predict」などとして第1MLモデルを選択することができる。第1MLパイプラインは、選択された第1MLモデルをトレーニングすることができるモデルトレーニング動作を更に含むことができる。
【0057】
一実施形態では、プロセッサ204は、システム202に関連付けられた計算リソース制約及びMLタスクに関連付けられた性能要件を含むことができる仕様を受け取るように構成することができる。計算リソース制約は、例えば、利用可能な中央処理ユニット(CPU)の数、グラフィカル処理ユニット(GPU)の数、計算又は記憶のための利用可能なメモリなどを含むことができる。MLタスクに関連付けられた性能要件は、例えば、最大トレーニング時間、1つ以上の探索的コード生成ツールの実行のための最大実行時間などを含むことができる。
【0058】
ブロック306で、探索的コード生成ツール102Bなどの1つ以上の探索的コード生成ツールを実行することによって、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定してもよい。一実施形態では、プロセッサ204は、1つ以上の探索的コード生成ツールを実行することによってMLタスクに関連付けられたパイプラインコンポーネントのセットを決定するように構成することができる。
【0059】
一実施形態では、探索的コード生成ツール102Bの実行中に、探索的コード生成ツール102Bへの入力として仕様が提供されてもよい。追加で又は代替的に、パイプラインコンポーネントのMLモデルのタイプ(スタックモデルなど)に対するユーザ選好を、電子装置102を介して提供することができる。仕様及び/又はユーザ選好を受信すると、プロセッサ204は、パイプラインコンポーネントのセットを決定するように構成されてもよい。
【0060】
上述のように、探索的コード生成ツール102Bなどの1つ以上の探索的コード生成ツールを実行することによって、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定してもよい。1つ以上の探索的コード生成ツールの各々は、異なる構成を必要としてもよい。場合によっては、仕様は、利用可能な計算リソース及び実行時間などの全体的な制約を提供してもよい。仕様は、利用可能なCPUコアの数又は最大トレーニング時間などの適切な構成を更に提供してもよい。仕様に基づいて、1つ以上の探索的コード生成ツールの実行に関連する制約を決定し、実行中に実施してもよい。例えば、パイプラインコンポーネントのセットを決定するために使用できる探索的コード生成ツールの数は、利用可能なグラフィカル処理ユニット(GPU)の数に依存してもよい。
【0061】
一実施形態では、プロセッサ204は、仕様に基づいて1つ以上の探索的コード生成ツールを実行するための最大実行時間を決定するように構成されてもよい。プロセッサ204は、更に、最大実行時間に基づいて1つ以上の探索的コード生成ツールの実行を制御するように構成されてもよい。1つ以上の探索的コード生成ツールは、パイプラインコンポーネントの最適化空間にわたって検索を実行し、検索に基づいてパイプラインコンポーネントのセットを決定するために実行されてもよい。上述のように、探索的コード生成ツール102B、例えば、「Mljar-supervised」ツールは、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定するために、検索空間において利用可能な複数のMLパイプラインを実行してもよい。最大実行時間は、探索的コード生成ツール102Bのような1つ以上の探索的コード生成ツールの各々が実行され得る最大期間であってもよい。しかしながら、計算リソース及び実行時間が主要な制約ではない場合には、パイプラインコンポーネントの潜在的により良好なセットを得るために、1つ以上の探索的コード生成ツールがより長い時間にわたって実行されてもよいことに留意されたい。
【0062】
パイプラインコンポーネントのセットと共に、プロセッサ204は、1つ以上の探索的コード生成ツール(例えば、探索的コード生成ツール102B)を使用することによって、そのようなコンポーネントに関連する性能データを生成してもよい。性能データは、パイプラインコンポーネントのセットの各パイプラインコンポーネントに対する性能スコアを含んでもよい。
【0063】
一実施形態では、パイプラインコンポーネントのセットは、MLモデルのセットに対応する関数呼び出しのセットを含んでもよい。追加で又は代替的に、パイプラインコンポーネントのセットは、データ前処理コンポーネント、特徴選択コンポーネント、特徴エンジニアリングコンポーネント、又はモデルトレーニングコンポーネントなどの他のコンポーネントを含んでもよい。モデルのセットは、生成的コード生成ツール102Aによって生成された第1MLパイプライン内のモデルを置き換えるためのオプションとして利用可能であってもよい。例として、モデルのセットは、ハイパーパラメータ最適化を備えたMLモデルの単一層、MLモデルの2つの層のスタック、2つのMLモデルの単一層のアンサンブル、又は、2つのMLモデルの2つの層のアンサンブル、のうちの1つであってよい。ハイパーパラメータ最適化を備えたMLモデルの単一層は、基本MLモデルであってもよい。一例では、MLモデルの単一層は、バギング(bagging)モデル、例えば、「ランダムフォレスト(random forest)」モデルであってもよい。別の例では、MLモデルの単一層は、ブーストモデル、例えば、適応型ブースト(「AdaBoost」)モデル、勾配ブーストモデル、及び極端な勾配ブーストモデル(「XGBoost」モデル)であってもよい。トレーニングデータセットは、バギングモデル及び/又はブーストモデルに適用する前に、サンプルのセットにサンプリングされてもよいことに留意されたい。バギングモデルとブーストモデルはどちらも、弱い学習器(例えば、決定木)の集合を取り入れ、単一の強い学習器を形成することができるアンサンブル学習方法の2つの主要なタイプである。バギングモデルとブーストモデルの主な違いは、バギングモデル及び/又はブーストモデルがトレーニングされる方法にある。バギングモデルでは、弱い学習器を並列にトレーニングすることができ、ブーストモデルでは、弱い学習器を順次トレーニングすることができる。
【0064】
MLモデルの2つの層のスタックは、MLモデルの第1層をMLモデルの第2層にスタックすることができる。2つのMLモデルの単一層のアンサンブルは、1つの層に2つのモデルを含むことができる。2つのMLモデルの2つの層のアンサンブルは、第1層に第1モデルを、第2層に第2モデルを含むことができる。
【0065】
バッギングとは異なり、アンサンブルスタッキングでは、MLモデルが異なる場合があり、トレーニングデータセットのサンプルではなく、同じトレーニングデータセットに適合する場合がある。更に、ブーストとは異なり、アンサンブルスタッキングの単一のMLモデルを使用して、以前のMLモデルの予測を修正する可能性のあるMLモデルのシーケンスではなく、関与するMLモデルからの予測を組み合わせることを学習することができる。アンサンブルスタッキングモデルのアーキテクチャには、「レベル0」MLモデルと呼ばれることが多い2つ以上のベースMLモデルと、ベースMLモデルの予測を組み合わせることができる「レベル1」MLモデルと呼ばれるメタモデルが含まれる場合がある。「レベル0」MLモデルは、トレーニングデータセットに適合するモデルであってもよい。「レベル0」MLモデルからの予測は、コンパイルされ、「レベル1」MLモデルに提供されてもよい。「レベル1」MLモデルは、基本モデルの予測を最適に組み合わせる方法に基づいて予測を提供することを学習してもよい。
【0066】
各MLモデルは、性能スコア(すなわち、性能データに含まれるスコア)に関連付けられてもよい。性能スコアは、入力データセットに対するMLモデルのセットのうちの対応するMLモデルの予測メトリック又はトレーニング時間を測定してもよい。モデル選択コンポーネント及びそのようなコンポーネントに関連付けられた情報(性能データなど)をリストするランキング(leaderboard)の例を以下の表1に示す:
[表1]例示的な性能データ
【表1】
表1から、MLモデルのセットのうちの各MLモデルに対する曲線下面積(the area under the curve (AUC))が決定され、設定されたMLモデルのセットのうちの各MLモデルに対するAUCの値が「メトリック値」列の下の対応する行に提供されていることが分かる。更に、表1は、「トレーニング時間」列の下に、各MLモデルをトレーニングするために使用できるトレーニング時間期間を提供する。表1に提供されたデータは、単なる例であり、そのような例が本開示を制限するものと解釈することはできない。
【0067】
探索的コード生成ツール102B、例えば、「Mljar-supervised(登録商標)」は、データセットに対するパイプライン推奨問題を探索及び最適化問題としてアプローチすることができること(すなわち、候補の空間から最良のパイプラインを選択すること)に留意されたい。幾つかの例では、探索的コード生成ツール102Bは、パイプライン構築の特定の態様、例えば、深層学習モデルのためのニューラルアーキテクチャ探索によるモデル構築、ニューラルアーキテクチャ又は従来のMLモデルのためのハイパーパラメータ最適化、又は特徴エンジニアリングに依存することがある。探索的コード生成ツール102Bは、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定するために空間において利用可能な複数のMLパイプラインを実行してもよい。従って、入力データセット112のような所与の入力データセット、及びMLパイプラインの広大な空間を探索するための所与の十分な時間期間及び予算に対して、探索的コード生成ツール102Bは、生成的コード生成ツール102Aよりも妥当な性能を有するパイプラインを見つける信頼性が高い。
【0068】
ブロック308で、パイプラインコンポーネントをパイプラインコンポーネントのセットから選択することができる。一実施形態では、プロセッサ204は、パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するように構成することができる。限定ではなく一例として、(表1に示すように)パイプラインコンポーネントのセットがMLモデルのセットに対応する関数呼び出しのセットを含む場合、MLモデルに対応する関数呼び出し(すなわち、パイプラインコンポーネント)をパイプラインコンポーネントのセットから選択することができる。
【0069】
一実施形態では、プロセッサ204は、性能データに基づいてパイプラインコンポーネントのセットからパイプラインコンポーネントを選択するように構成することができる。性能データは、パイプラインコンポーネントのセットのうちの各パイプラインに対する性能スコアを含むことができ、選択されたパイプラインコンポーネントに対する性能スコアは、性能データにおける最大値であってよい。性能スコアは、入力データセットに対するMLモデルのセットのうちの対応するMLモデルの予測メトリック又はトレーニング時間を測定してもよい。予測メトリックは、例えば、正解率メトリック、混同行列、適合率メトリック、再現率メトリック、Fスコア、曲線下面積(AUC)、平均絶対誤差(mean absolute error (MAE))、平均二乗誤差(mean squared error (MSE))、R2スコア、調整済みR2等を含むことができる。一例として、第1MLモデルの性能スコアは、AUCに関して「0.83945」として、及びトレーニング時間に関して「150」と決定することができる。第1MLモデルの性能スコアを表1の各MLモデルと比較して、パイプラインコンポーネントを選択することができる。図1を参照すると、MLモデルのセットから選択することができるパイプラインコンポーネント(すなわちMLモデル)は「46_CatBoost」とすることができ、メトリック値を「0.83950733」とし、及びトレーニング時間を比較に基づいて「104.52」として有する。
【0070】
一実施形態では、プロセッサ204は、(304で取得された)第1MLパイプラインのコンテンツを解析して、コンテンツ内の関数呼び出しを介して第1MLモデルへの参照を決定するように構成することができる。第1MLパイプラインは、プログラムパーサを使用して解析することができる。第1MLパイプラインのコンテンツを解析する際に、プロセッサ204は、第1MLモデルとMLモデルのセットのうちの他のMLモデルとの性能スコアの比較に基づいて、関数呼び出しのセットから、パイプラインコンポーネントとして第2MLモデルへの関数呼び出しを選択するように更に構成することができる。プログラムパーサは、コンパイラの一部であってもよく、第1MLパイプラインなどのパイプラインの解析に使用されてもよいプログラムであってもよいことが理解されよう。関数呼び出しを介した第1MLモデルへの参照は、プログラムパーサを使用して決定されてもよい。例えば、第1MLモデルは、「CatBoostRegressor(X、Y)」として選択されてもよい。
【0071】
ブロック310において、第1MLパイプラインは、選択に基づいて修正され、第2MLパイプラインを生成することができる。一実施形態では、プロセッサ204は、選択に基づいて第1MLパイプラインを修正し、第2MLパイプラインを生成するように構成することができる。パイプラインコンポーネントのセットから選択されたパイプラインコンポーネントを第1MLパイプラインのパイプラインコンポーネントに置き換えて、第2MLパイプラインを生成することができる。例えば、モデル選択コンポーネントをパイプラインコンポーネントのセットから選択することができる。第1MLパイプラインに関連付けられた第1MLモデル選択コンポーネントを、第2MLパイプラインを生成するモデル選択コンポーネントに置き換えることができる。
【0072】
一実施形態では、修正は、第1MLパイプラインのパイプラインコンポーネントの変数名、モデルクラス、及びモジュールパスに関連付けられた変更を含むことができる。「Scikit-Learn」ライブラリは、一般的な機械学習アルゴリズムをサポートすることができ、統一されたインタフェースでアプリケーションプログラミングインタフェース(API)を公開することができる一般的なオープンソースソフトウェア(OSS)であることができる。例えば、異なるMLアルゴリズムは、「fit()」、「predict()」、「predict_proba()」などの同じ名前のメソッドを有することができる。「SapientML」ツールなどの生成的コード生成ツール102Aは、「Scikit-Learn」ライブラリを採用することができる。「SapientML」ツールなどの生成的コード生成ツール102Aを使用して生成された第1MLパイプラインからの変数名、モデルクラス、及びモジュールパスは、事前定義されたマッピングテーブルに基づいて、(探索的コード生成ツール102Bを実行することによって生成された)選択されたパイプラインコンポーネントからの変数名、モデルクラス、及びモジュールパスに置き換えることができる。
【0073】
「Mljar-supervised」ツールからオープンソースソフトウェア(OSS)のクラスへのマッピングの例を、以下の表2に示す:
[表2]「Mljar-supervised」ツールからOSSのクラスへの例示的なマッピング
【表2】
表2に提供されたデータは、単なる例であり、そのような例が本開示を制限するものと解釈することはできない。
【0074】
一実施形態では、第1MLパイプラインは、選択されたパイプラインコンポーネント(例えば、MLモデルへの関数呼び出し)のハイパーパラメータに基づいて更に修正されてもよい。ハイパーパラメータは、第1MLパイプラインに関連付けられた第1MLモデルの学習を制御してもよい。ハイパーパラメータの例は、重みの数、コスト関数、入力サイズ、層の数などを含んでもよい。第1MLパイプラインのハイパーパラメータは、第1MLパイプラインを修正するために、選択されたパイプラインのハイパーパラメータで置き換えられてもよい。「Mljar-supervised」によって評価された「CatBoostモデル」のハイパーパラメータの例を、以下の表3に示す:
[表3]例示的なハイパーパラメータ
【表3】
「Mljar-supervised」ツールの出力は、「CatBoostモデル」のハイパーパラメータを復元するために分析されてもよい。表3から、「CatBoostモデル」のハイパーパラメータは、学習率及び深度を含むことができることが分かる。第1MLパイプラインのハイパーパラメータは、第1MLパイプラインを修正し第2MLパイプラインを生成するために、選択されたパイプラインのハイパーパラメータで置き換えられてもよい。表3に提供されたデータは、単なる例であり、そのような例が本開示を制限するものと解釈することはできないことに留意されたい。
【0075】
一実施形態では、第2MLパイプラインは、入力データセットに対する第2変換セット及びMLタスクに対する第2モデル選択動作を表す第2の複数のパイプラインコンポーネントを含むことができる。第2MLパイプラインは、MLタスクに対する第2モデル選択動作に関連付けられた1つ以上のデータ前処理コンポーネント及び1つのMLモデルコンポーネントなどの0個又は少なくとも1つの前処理コンポーネントであってよい。更に、第2MLパイプラインは、特徴選択コンポーネント及び特徴エンジニアリングコンポーネントを含むことができる。第2の複数のパイプラインコンポーネントは、第1の複数のパイプラインコンポーネントと同様であってもよい。従って、簡潔にするために、第2の複数のパイプラインコンポーネントの説明は開示において省略される。
【0076】
ブロック312において、第1性能メトリックは、入力データセット112上で第1MLパイプラインを実行することによって決定されてもよい。一実施形態では、プロセッサ204は、入力データセット112上で第1MLパイプラインを実行することによって第1性能メトリックを決定するように構成されてもよい。性能メトリックは、MLパイプラインの出力が正解であることを保証するために機械学習パイプラインを評価するために使用できる予測メトリックであってもよい。第1性能メトリックの例には、正解率メトリック、混同行列、適合率メトリック、再現率メトリック、Fスコア、曲線下面積(AUC)、平均絶対誤差(MAE)、平均二乗誤差(MSE)、R2スコア、及び調整済みR2が含まれるが、これらに限定されない。正解率(accuracy)メトリックは、第1MLパイプラインに関連付けられた第1MLモデルによって行われた予測の総数に対する、第1MLパイプラインに関連付けられた第1MLモデルによって行われた正解の予測の数の割合として決定されてもよい。混同行列(confusion matrix)は、バイナリ(又はマルチクラス)分類子の予測の表形式表現であってもよい。つまり、第1MLパイプラインに関連付けられた第1MLモデルが分類子である場合、混同行列を使用して、テストデータセットの真の値が既知である可能性がある場合に、第1MLモデルがテストデータセットでどの程度適切に実行できるかを特徴付けることができる。適合率(precision)メトリックは、テストデータセットでの第1MLパイプラインの実行に基づいて正解であると決定される陽性の予測の割合を決定することができる。再現率(recall)メトリックは、テストデータセットでの第1MLパイプラインの実行に基づいて不正解であると決定される陽性(positive)予測の割合を決定することができる。F1スコアは、適合率メトリックと再現率メトリックの調和平均として計算することができる。AUCは、第1MLパイプラインに関連付けられている第1MLモデルが、ランダムに選択された陽性の例をランダムに選択された陰性の例よりも高くランク付けする可能性である。平均絶対誤差(mean absolute error (MAE))は、実際の値とMLモデルによって予測された値との絶対差の平均であってよい。MSEは、実際の値と予測値との差の二乗平均であってもよい。R2スコア又はR二乗誤差は、第1MLパイプラインの第1MLモデルを一定のベースラインと比較して決定する決定係数であってもよい。一実施形態では、AUCは、入力データセット112上で第1MLパイプラインを実行することによって、第1性能メトリックとして決定されてもよい。
【0077】
ブロック314において、第2性能メトリックは、入力データセット112上で第2MLパイプラインを実行することによって決定されてもよい。一実施形態では、プロセッサ204は、入力データセット112上で第2MLパイプラインを実行することによって、第2性能メトリックを決定するように構成されてもよい。第2性能メトリックの例には、正解率メトリック、混同行列、適合率メトリック、再現率メトリック、Fスコア、曲線下面積(AUC)、平均絶対誤差(MAE)、平均二乗誤差(MSE)、R2スコア、及び調整済みR2が含まれるが、これらに限定されない。第2性能メトリックは、第1性能メトリックと同様であってもよい。従って、第2性能メトリックの説明は、簡単のために本開示から省略される。一実施形態では、AUCは、入力データセット112上で第2MLパイプラインを実行することによって、第2性能メトリックとして決定されてもよい。
【0078】
ブロック316において、第1性能メトリックと第2性能メトリックとの比較に基づいて、第1MLパイプライン又は第2MLパイプラインのうちの1つとしてMLパイプライン推奨をレンダリングするように電子装置102を制御することができる。一実施形態では、プロセッサ204は、電子装置102を制御して、第1性能メトリックと第2性能メトリックとの比較に基づいてMLパイプライン推奨をレンダリングするように構成されてもよい。
【0079】
第1性能メトリックが第2性能メトリックよりも大きい場合、第1MLパイプラインは、第2MLパイプラインよりも性能が高いと決定されてもよい。このような場合、第1MLパイプラインが推奨されてもよい。第1性能メトリックが第2性能メトリックよりも小さい場合、第2MLパイプラインは、第1MLパイプラインよりも性能が高いと決定されてもよい。このような場合、第2MLパイプラインが推奨されてもよい。一実施形態では、第1性能メトリック及び第2性能メトリックは、正解率メトリックであってもよい。第1性能メトリックは0.8567であってよく、第2性能メトリックは0.8921であってもよい。両方のメトリックを比較すると、第2MLパイプラインが推奨されてもよい。推奨されたMLパイプラインは、図2のディスプレイ装置210Aなどのディスプレイ装置上でレンダリングされてもよい。ユーザ114は、推奨されたMLパイプラインをMLタスクのために使用してもよい。
【0080】
フローチャート300は、302、304、306、308、310、312、314、及び316のような個別の動作として図示された。しかしながら、特定の実施形態では、開示の実施形態の本質を損なうことなく、特定の実装に依存して、このような個別の動作は、追加動作に更に分けられ、より少数の動作に結合され、又は削除されてよい。
【0081】
図4A及び4Bは、本開示に記載される少なくとも1つの実施形態による、第1MLパイプラインを修正するための例示的なシナリオを示す図である。図4A及び4Bは、図1図2及び図3の要素と関連して記載される。図4A及び4Bを参照すると、例示的なシナリオ400が示される。例示的なシナリオ400は、生成された第1MLパイプライン402及び選択されたパイプラインコンポーネント404を含むことができる。生成された第1MLパイプライン402は、第1MLモデルに関連付けられ得るコードのセット402Aを含むことができる。
【0082】
図4Aを参照すると、生成された第1MLパイプライン402は、第1MLモデルに関連付けられ得るコードのセット402Aを含むことができる。第1MLモデルは、コードのセット402Aから観察されるように、「CatBoostRegressor」であることができる。図4Bを参照すると、第1MLパイプライン402は、第1MLパイプライン402のコードのセット402Aを、アンサンブルスタックドモデルに関連付けられた選択されたパイプラインコンポーネント404で置き換えることによって修正することができる。図示されるように、例えば、第1MLパイプライン402内のCatBoostRegressor()モデルは、選択されたパイプラインコンポーネント404からのCatBoostRegressor()及びRandomForestRegressor()のアンサンブルによって置き換えられる。図4A及び4Bのシナリオ400は、例示的な目的のためのものであり、そのような例が開示の範囲を制限すると解釈されてはならないことに留意されたい。
【0083】
図5は、本開示に記載されている少なくとも1つの実施形態に従う、探索的及び生成的コード生成ツールを使用して機械学習(ML)パイプラインを生成するための例示的なシナリオを示す図である。図5は、図1図2図3図4A、及び図4Bの要素と関連して記載される。図5を参照すると、例示的なシナリオ500が示される。例示的なシナリオ500は、生成的コード生成ツール102A、入力データセット502、探索的コード生成ツールのセット504、第1MLパイプライン506、パイプラインコンポーネントのセット508、第2MLパイプライン510、及び推奨されるMLパイプライン512を含むことができる。探索的コード生成ツールのセット504は、第1探索的コード生成ツール504A、第2探索的コード生成ツール504B、及び...、第N探索的コード生成ツール504Nを含むことができる。
【0084】
例示的なシナリオ500は、動作514、516、518、及び520のセットを含むことができる。動作セットは、本明細書に記載されるように、探索的及び生成的コード生成ツールを使用してMLパイプラインを生成するシステム202によって実行されてもよい。
【0085】
図5を参照すると、入力データセット502を受け取ることができる。入力データセット502は、住宅価格予測問題に関連する表形式のデータセットであってもよい。入力データセット502は、生成的コード生成ツール102A及び探索的コード生成ツールのセット504に提供することができる。生成的コード生成ツール102Aは、入力データセット502を分析することができ、住宅価格を予測するMLタスクのための第1MLパイプライン506を生成することができる。探索的コード生成ツールのセット504は、住宅価格を予測するMLタスクに関連するパイプラインコンポーネントのセット508を決定することができる。
【0086】
ブロック514において、パイプラインコンポーネント選択の動作を実行することができる。プロセッサ204は、パイプラインコンポーネントのセット508からパイプラインコンポーネントを選択するように構成することができる。パイプラインコンポーネントのセット508からのパイプラインコンポーネントの選択に関する詳細は、例えば、図3に更に提供される。
【0087】
プロセッサ204は、選択に基づいて第1MLパイプライン506を修正して、第2MLパイプライン510を生成することができる。その後、ブロック516において、プロセッサ204は、AUCのような第1性能メトリックを、入力データセット502上で第1MLパイプラインを実行することによって決定してもよい。
【0088】
ブロック518において、プロセッサ204は、入力データセット502上で第2MLパイプラインを実行することによって、第2性能メトリックを決定してもよい。一旦、第1性能メトリック及び第2性能メトリックが決定されると、プロセッサ204は、ブロック520において、第1性能メトリックを第2性能メトリックと比較する。比較に基づき、推奨されたMLパイプライン512は、図2のディスプレイ装置210Aなどのディスプレイ装置上でレンダリングされてもよい。第1性能メトリック及び第2性能メトリックが正解率メトリックであり、第1性能メトリックのメトリック値が第2性能メトリックのメトリック値より大きい場合、推奨されるMLパイプライン512は、第1MLパイプライン506であってよい。しかし、第1性能メトリックのメトリック値が第2性能メトリックのメトリック値より小さい場合、推奨されるMLパイプライン512は、第2MLパイプライン510であってよい。
【0089】
本開示の種々の実施形態は、実行されることに応答してシステム(例えば、例示的なシステム202)に動作を実行させる命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体を提供してよい。動作は、機械学習(ML)タスクに関連付けられた入力データセット(例えば、図1の入力データセット112)を受信するステップを含むことができる。動作は、生成的コード生成ツール(例えば、図1の生成的コード生成ツール102A)を実行することによって、MLタスクに関連付けられた第1MLパイプラインを生成することを更に含むことができる。動作は、1つ以上の探索的コード生成ツール(例えば、図1の探索的コード生成ツール102B)を実行することによって、MLタスクに関連付けられたパイプラインコンポーネントのセットを決定するステップを更に含んでもよい。動作は、パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップを更に含むことができる。動作は、選択に基づいて第1MLパイプラインを修正して、第2MLパイプラインを生成するステップを更に含むことができる。動作は、入力データセット(例えば、図1の入力データセット112)上で第1MLパイプラインを実行することによって第1性能メトリックを決定するステップを更に含むことができる。動作は、入力データセット(例えば、図1の入力データセット112)上で第2MLパイプラインを実行することによって第2性能メトリックを決定するステップを更に含むことができる。動作は、第1性能メトリックと第2性能メトリックとの比較に基づいて、第1MLパイプライン又は第2MLパイプラインのうちの1つとしてMLパイプライン推奨をレンダリングするように電子装置(例えば、図1の電子装置)を制御するステップを更に含むことができる。
【0090】
本開示で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び/又は、電子装置の汎用ハードウェア(例えば、コンピュータ可読媒体、処理装置、等)により格納され及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを表してよい。幾つかの実施形態では、本開示に記載されたものと異なるコンポーネント、モジュール、エンジン、及びサービスが、電子装置上で実行するオブジェクト又はプロセス(例えば、別個のスレッド)として実装されてよい。本開示に記載されたシステム及び方法のうちの一部は、概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるとして記載されたが、専用ハードウェア実装又はソフトウェア及び専用ハードウェア実装の組み合わせも、可能であり想定される。本願明細書において、「コンピューティングエンティティ」は、本開示において前述した任意の電子装置、又は電子装置上で実行する任意のモジュール若しくはモジュールの組み合わせであってよい。
【0091】
本開示で及び特に添付の特許請求の範囲(例えば、添付の請求項本体)で使用される用語は、通常、「広義」の用語として意図される(例えば、用語「含む」は「含むが、これに限定されない」と解釈されるべきであり、用語「有する」は「有するが、これに限定されない」と解釈されるべきである、等)。
【0092】
更に、特定数の導入された請求項の列挙が意図される場合、このような意図は、請求項中に明示的に示され、このような列挙のない場合、このような意図は存在しない。例えば、理解の支援として、以下の添付の請求項は、請求項の列挙を導入するために、導入フレーズ「少なくとも1つ」及び「1つ以上」の使用を含み得る。しかしながら、このようなフレーズの使用は、同じ請求項が導入フレーズ「1つ以上」又は「少なくとも1つ」及び不定冠詞「a」又は「an含むときでも(例えば、「a」及び/又は「an少なくとも1つ」又は「1つ以上」を意味すると解釈されるべきである)、不定冠詞「a」又は「an」による請求項の列挙の導入が、このような導入された請求項の列挙を含む任意の特定の請求項を、1つのこのような列挙のみを含む実施形態に限定することを意味すると考えられるべきではない。つまり、同じことが、請求項の列挙を導入するために使用される定冠詞の使用にも当てはまる。
【0093】
更に、特定数の導入された請求項の列挙が明示的に記載される場合、当業者は、このような列挙が、少なくとも列挙された数を意味すると解釈されるべきであることを理解する(例えば、他の修飾のない「2つの列挙」の記載は、少なくとも2つの列挙、又は2以上の列挙を意味する)。更に、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」と同様の記載が使用される例では、通常、このような構成は、A単独で、B単独で、C単独で、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、又はA、B、及びCを一緒に、等を含むことを意図する。
【0094】
更に、2以上の選択的な用語を表す任意の離接的な語又はフレーズは、説明、請求項、又は図面にあるかにかかわらず、用語のうちの1つ、用語のうちのいずれか、又は両方の用語を含む可能性を想定すると理解されるべきである。例えば、フレーズ「A又はB」は、「A」又は「B」又は「A及びB」の可能性を含むと理解されるべきである。
【0095】
本開示に記載された全ての例及び条件付き言語は、読者が本開示及び本開示が技術を更に発展させることに貢献する概念を理解するのを支援する教示目的を意図しており、そのような具体的に列挙された例及び条件に限定されないと解釈されるべきである。本開示の実施形態は詳細に記載されたが、本開示の精神及び範囲から逸脱することなく、これらに種々の変更、代替、及び選択が行われ得る。
【0096】
以上の実施形態に加えて、更に以下の付記を開示する。
(付記1)
方法であって、システムのプロセッサによって実行可能であり、
機械学習(ML)タスクに関連する入力データセットを受信するステップと、
生成的コード生成ツールを実行することによって、前記MLタスクに関連する第1MLパイプラインを生成するステップと、
1つ以上の探索的コード生成ツールを実行することによって、前記MLタスクに関連するパイプラインコンポーネントのセットを決定するステップと、
前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、
前記選択に基づいて前記第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、
前記入力データセットで前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップと、
前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、
前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記第1MLパイプライン又は前記第2MLパイプラインの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御するステップと、
を含む方法。
(付記2)
前記第1MLパイプラインは、
前記入力データセットに対する変換の第1セットを表す第1の複数のパイプラインコンポーネントと、
前記MLタスクに対する第1モデル選択動作と、
を含む、付記1に記載の方法。
(付記3)
前記第2MLパイプラインは、
前記入力データセットに対する変換の第2セットを表す第2の複数のパイプラインコンポーネントと、
前記MLタスクに対する第2モデル選択動作と、
を含む、付記1に記載の方法。
(付記4)
前記システムに関連する計算リソースの制約及び前記MLタスクに関連する性能要件を含む仕様を受信するステップと、
前記仕様に基づいて前記パイプラインコンポーネントのセットを決定するステップと、
を更に含む付記1に記載の方法。
(付記5)
前記仕様に基づいて前記1つ以上の探索的コード生成ツールの実行のための最大実行時間を決定するステップと、
前記最大実行時間に基づいて前記1つ以上の探索的コード生成ツールの実行を制御するステップと、
を更に含み、
前記1つ以上の探索的コード生成ツールは、パイプラインコンポーネントの最適化空間にわたって検索を実行し、前記検索に基づいて前記パイプラインコンポーネントのセットを決定するために実行される、付記4に記載の方法。
(付記6)
前記1つ以上の探索的コード生成ツールを使用して、前記パイプラインコンポーネントのセットに関連付けられた性能データを生成するステップと、
前記性能データに基づいて前記パイプラインコンポーネントのセットから前記パイプラインコンポーネントを選択するステップと、
を更に含み、
前記性能データは、前記パイプラインコンポーネントのセットのうちの各パイプラインコンポーネントの性能スコアを含み、
前記パイプラインコンポーネントの前記性能スコアは、前記性能データにおける最大値である、付記1に記載の方法。
(付記7)
前記パイプラインコンポーネントのセットは、MLモデルのセットに対応する関数呼び出しのセットを含む、付記6に記載の方法。
(付記8)
前記性能スコアは、前記入力データセットに対する前記MLモデルのセットのうちの対応するMLモデルの予測メトリック又はトレーニング時間を測定する、付記7に記載の方法。
(付記9)
前記第1MLパイプラインのコンテンツを解析して、前記コンテンツ内の関数呼び出しを介して第1MLモデルへの参照を決定するステップと、
前記第1MLモデルの性能スコアと前記MLモデルのセットのうちの他のMLモデルとの比較に基づいて、前記関数呼び出しのセットから、前記パイプラインコンポーネントとして第2MLモデルへの関数呼び出しを選択するステップと、
を更に含む付記7に記載の方法。
(付記10)
前記MLモデルのセットの各MLモデルは、
ハイパーパラメータ最適化を備えたMLモデルの単一層、
前記MLモデルの2つの層のスタック、
2つのMLモデルの単一層のアンサンブル、又は、
前記2つのMLモデルの2つの層のアンサンブル、
のうちの1つである、付記7に記載の方法。
(付記11)
前記第1MLパイプラインは、前記選択されたパイプラインのハイパーパラメータに基づいて更に修正される、付記1に記載の方法。
(付記12)
前記修正は、前記第1MLパイプラインのパイプラインコンポーネントの変数名、モデルクラス、及びモジュールパスに関連付けられた変更を含む、付記1に記載の方法。
(付記13)
1つ以上の非一時的コンピュータ可読記憶媒体であって、命令を格納するように構成され、前記命令は実行されることに応答してシステムに動作を実行させ、前記動作は、
機械学習(ML)タスクに関連する入力データセットを受信するステップと、
生成的コード生成ツールを実行することによって、前記MLタスクに関連する第1MLパイプラインを生成するステップと、
1つ以上の探索的コード生成ツールを実行することによって、前記MLタスクに関連するパイプラインコンポーネントのセットを決定するステップと、
前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、
前記選択に基づいて前記第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、
前記入力データセットで前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップと、
前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、
前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記第1MLパイプライン又は前記第2MLパイプラインの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御するステップと、
を含む1つ以上の非一時的コンピュータ可読記憶媒体。
(付記14)
前記動作は、
前記システムに関連する計算リソースの制約及び前記MLタスクに関連する性能要件を含む仕様を受信するステップと、
前記仕様に基づいて前記パイプラインコンポーネントのセットを決定するステップと、
を更に含む、付記13に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記15)
前記動作は、
前記1つ以上の探索的コード生成ツールを使用して、前記パイプラインコンポーネントのセットに関連付けられた性能データを生成するステップと、
前記性能データに基づいて前記パイプラインコンポーネントのセットから前記パイプラインコンポーネントを選択するステップと、
を更に含み、
前記性能データは、前記パイプラインコンポーネントのセットのうちの各パイプラインの性能スコアを含み、
前記パイプラインコンポーネントの前記性能スコアは、前記性能データにおける最大値である、付記13に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記16)
前記パイプラインコンポーネントのセットは、MLモデルのセットに対応する関数呼び出しのセットを含む、付記15に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記17)
前記性能スコアは、前記入力データセットに対する前記MLモデルのセットのうちの対応するMLモデルの予測メトリック又はトレーニング時間を測定する、付記16に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記18)
前記動作は、
前記第1MLパイプラインのコンテンツを解析して、前記コンテンツ内の関数呼び出しを介して第1MLモデルへの参照を決定するステップと、
前記第1MLモデルの性能スコアと前記MLモデルのセットのうちの他のMLモデルとの比較に基づいて、前記関数呼び出しのセットから、前記パイプラインコンポーネントとして第2MLモデルへの関数呼び出しを選択するステップと、
を更に含む、付記16に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記19)
前記第1MLパイプラインは、前記選択されたパイプラインのハイパーパラメータに基づいて更に修正される、付記13に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記20)
システムであって、
命令を格納するよう構成されるメモリと、
前記メモリに結合され、前記命令を実行して処理を実行するよう構成されるプロセッサと、
を含み、前記処理は、
機械学習(ML)タスクに関連する入力データセットを受信するステップと、
生成的コード生成ツールを実行することによって、前記MLタスクに関連する第1MLパイプラインを生成するステップと、
1つ以上の探索的コード生成ツールを実行することによって、前記MLタスクに関連するパイプラインコンポーネントのセットを決定するステップと、
前記パイプラインコンポーネントのセットからパイプラインコンポーネントを選択するステップと、
前記選択に基づいて前記第1MLパイプラインを修正して第2MLパイプラインを生成するステップと、
前記入力データセットで前記第1MLパイプラインを実行することによって第1性能メトリックを決定するステップと、
前記入力データセットで前記第2MLパイプラインを実行することによって第2性能メトリックを決定するステップと、
前記第1性能メトリックと前記第2性能メトリックとの比較に基づいて、前記第1MLパイプライン又は前記第2MLパイプラインの1つとしてMLパイプライン推奨をレンダリングするように電子装置を制御するステップと、
を含む、システム。
【符号の説明】
【0097】
100 環境
102 電子装置
102A 生成的コード生成ツール
102B 探索的コード生成ツール
104 ウェブベースのデータソース
108 データベース
110 通信ネットワーク
112 入力データセット
図1
図2
図3
図4A
図4B
図5
【外国語明細書】