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

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

▶ エレメント エーアイ インコーポレイテッドの特許一覧

特表2022-528787ソフトウェアモジュール開発用システム
<>
  • 特表-ソフトウェアモジュール開発用システム 図1
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-15
(54)【発明の名称】ソフトウェアモジュール開発用システム
(51)【国際特許分類】
   G06F 9/445 20180101AFI20220608BHJP
【FI】
G06F9/445
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021560736
(86)(22)【出願日】2020-04-08
(85)【翻訳文提出日】2021-12-08
(86)【国際出願番号】 CA2020050462
(87)【国際公開番号】W WO2020206536
(87)【国際公開日】2020-10-15
(31)【優先権主張番号】62/833,193
(32)【優先日】2019-04-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.JAVA
3.Python
(71)【出願人】
【識別番号】521107068
【氏名又は名称】エレメント エーアイ インコーポレイテッド
(74)【代理人】
【識別番号】110002066
【氏名又は名称】特許業務法人筒井国際特許事務所
(72)【発明者】
【氏名】ブーケ,トーマス
(72)【発明者】
【氏名】シューシェール,ネイサン
(72)【発明者】
【氏名】フォンセカ,ジョナス
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA07
5B376AA10
5B376AA21
5B376AA28
5B376AE12
5B376AE15
5B376AE20
(57)【要約】
本発明は、ソフトウェアモジュール開発に使用されるシステムおよび方法に関する。設定ファイルおよびプロセスエージェントモジュールは、コンピュータシステムと連携して動作し、開発中のユーザのソフトウェアモジュールの1つまたは複数のインスタンスを実装するために、1つまたは複数の実行環境を準備/提供する。設定ファイルには、実行環境の制限と機能、およびソフトウェアモジュールが必要とするパラメータを定義するハードウェアおよびソフトウェアの設定が含まれる。プロセスエージェントは、実行環境を起動し、実行環境で実行されるソフトウェアモジュールが設定ファイルに記載されているリソースにアクセスできるようにする。ソフトウェアモジュールの実行が完了すると、パフォーマンスの結果がプロセスエージェントに送られて、照合および分析が行われる。これらの結果は、ソフトウェアモジュールのどの実装が最良のパフォーマンスを発揮したかを決定するために使用される。
【選択図】図1
【特許請求の範囲】
【請求項1】
ソフトウェアモジュールの1つまたは複数のインスタンスを準備/提供および起動するためのシステムであって、
・ 前記ソフトウェアモジュールの少なくとも1つの前記インスタンスの実装に使用されるハードウェアおよびソフトウェアの設定を詳細に記述した設定ファイルと、
・ 前記ソフトウェアモジュールの前記少なくとも1つのインスタンスを実装するために、少なくとも1つのコンピュータシステムの設定に使用されるプロセスエージェントモジュールであって、前記少なくとも1つのコンピュータシステムを設定するために前記設定ファイルを使用する、プロセスエージェントモジュールと、
を備え、
・ 前記設定ファイルは、検索可能であるようにデータストレージに格納され、これにより、前記ソフトウェアモジュールのすべての実装が前記設定ファイルを使用することができ、
・ 前記設定ファイルは、識別子によって一意に識別され、前記識別子は、前記ソフトウェアモジュールと一意に関連付けられる、
システム。
【請求項2】
前記ソフトウェアモジュールは、ニューラルネットワークを実装している、
請求項1に記載のシステム。
【請求項3】
前記設定ファイルには、前記ニューラルネットワークのためのハイパーパラメータとして使用される値の範囲が含まれる、
請求項2に記載のシステム。
【請求項4】
前記設定ファイルは、前記プロセスエージェントに、前記ソフトウェアモジュールの前記複数のインスタンスを起動させる、
請求項2に記載のシステム。
【請求項5】
前記ソフトウェアモジュールの前記複数のインスタンスの各々は、異なるハイパーパラメータ値のセットを使用する、
請求項4に記載のシステム。
【請求項6】
前記ソフトウェアモジュールの前記インスタンスの各々は、前記プロセスエージェントに送られる出力を生成する、
請求項5に記載のシステム。
【請求項7】
前記プロセスエージェントは、前記ソフトウェアモジュールの前記インスタンスの出力を評価し、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力に基づいて、前記ニューラルネットワークの最適な前記ハイパーパラメータのセットを決定する、
請求項6に記載のシステム。
【請求項8】
前記設定ファイルには、前記ソフトウェアモジュールのためのパラメータとして使用される値の範囲が含まれ、前記パラメータは、前記ソフトウェアモジュールのパフォーマンスに影響を与える値である、
請求項1に記載のシステム。
【請求項9】
前記設定ファイルは、前記プロセスエージェントに、前記ソフトウェアモジュールの前記複数のインスタンスを起動させる、
請求項8に記載のシステム。
【請求項10】
前記ソフトウェアモジュールの前記複数のインスタンスの各々は、異なるパラメータ値のセットを使用する、
請求項4に記載のシステム。
【請求項11】
前記ソフトウェアモジュールの前記インスタンスの各々は、前記プロセスエージェントに送られる出力を生成する、
請求項10に記載のシステム。
【請求項12】
前記プロセスエージェントは、前記ソフトウェアモジュールの前記インスタンスの出力を評価し、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力に基づいて、前記ソフトウェアモジュールの最適なパラメータのセットを決定する、
請求項11に記載のシステム。
【請求項13】
ソフトウェアモジュールの複数のインスタンスを起動するためのシステムであって、
・ 前記ソフトウェアモジュールの前記複数のインスタンスの実装に使用される設定を詳細に記述した設定ファイルと、
・ 前記ソフトウェアモジュールの前記複数のインスタンスを実装するために、少なくとも1つのコンピュータシステムの設定に使用されるプロセスエージェントモジュールであって、前記少なくとも1つのコンピュータシステムを設定するために前記設定ファイルを使用する、プロセスエージェントモジュールと、
を備え、
・ 前記設定ファイルは、識別子によって一意に識別され、前記識別子は、前記ソフトウェアモジュールと一意に関連付けられる、
システム。
【請求項14】
前記設定ファイルは、検索可能であるようにデータストレージに格納され、これにより、前記ソフトウェアモジュールのすべての実装が前記設定ファイルを使用することができる、
請求項13に記載のシステム。
【請求項15】
前記設定ファイルには、前記ソフトウェアモジュールのためのパラメータとして使用される値の範囲が含まれ、前記パラメータは、前記ソフトウェアモジュールのパフォーマンスに影響を与える値である、
請求項13に記載のシステム。
【請求項16】
前記ソフトウェアモジュールの前記複数のインスタンスの各々は、異なるパラメータ値のセットを使用する、
請求項14に記載のシステム。
【請求項17】
前記ソフトウェアモジュールの前記インスタンスの各々は、前記プロセスエージェントに送られる出力を生成する、
請求項13に記載のシステム。
【請求項18】
前記プロセスエージェントは、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力を評価し、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力に基づいて、前記ソフトウェアモジュールの最適なパラメータのセットを決定する、
請求項17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェア開発に関する。より具体的には、本発明は、ソフトウェアモジュールの開発に使用されるシステムおよび方法に関する。
【背景技術】
【0002】
近年、人工知能、より具体的には機械学習やニューラルネットワークへの関心と発展が爆発的に高まっており、これらの技術の開発に使用されるシステムの開発が急務となっている。そのため、より多くのコンピュータ科学者、開発者やエンジニアが技術の限界に挑戦し、より良いシステムを実現しようとしている。しかしながら、その一方で、これらの科学者、エンジニアや開発者にとっては、様々な問題が発生している。
【0003】
ソフトウェアを開発する際には、設定の違いがパフォーマンスに対して異なる結果をもたらす。そのため、開発中のソフトウェアのパフォーマンスを最適化するためには、開発者は、これらの設定の違いを記録し、最も良好な結果が得られた設定を保存しておく必要がある。しかしながら、ソフトウェアのなかには、数百とは言わないまでも数十の設定を有するものもあり、このような多数のパラメータや設定を記録しておくことは、負担であるとしか言いようがない。また、ソフトウェアを動作させるシステムの設定も、ソフトウェアのパフォーマンスに影響を与える。したがって、ソフトウェアの様々な設定が同じ土俵で戦えるように、システムの設定を把握する必要がある。これもまた、大変な負担になる。
【0004】
ソフトウェア開発は、様々な形態の実行環境を用いて実行されるため、上記はより困難になることは明らかである。開発中のソフトウェアの様々な設定をすべて正しく評価するためには、そのソフトウェアを実行する実行環境の設定を、可能な限り同一にする必要がある。
【0005】
上述した問題は、ニューラルネットワークや機械学習システムを開発する際にはさらに深刻になる。このようなシステムで使用されるハイパーパラメータは、数百にも及ぶことがあり、開発中のソフトウェアシステムの各バージョンを同一の実行環境で確実に実行することは、困難であるとしか言いようがない。それだけではなく、使用しているハイパーパラメータを変更するたびに、異なる結果となる場合がある。したがって、各システムのパフォーマンスを照合、追跡および管理して、正しいパラメータ設定が正しいパフォーマンス指標に関連付けられることを確実にする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、上述した問題に対処するシステムおよび/または方法が求められている。好ましくは、このような方法またはシステムは、上述した問題を克服しないまでも緩和し、また、好ましくは、このようなシステムまたは方法は、開発者および/または研究者にとっても使用しやすい。
【課題を解決するための手段】
【0007】
本発明は、ソフトウェアモジュール開発に使用されるシステムおよび方法を提供する。該システムにおいて、設定ファイルおよびプロセスエージェントモジュールは、コンピュータシステムと連携して動作し、開発中のユーザのソフトウェアモジュールの1つまたは複数のインスタンスを実装するために、1つまたは複数の実行環境を準備/提供(provisioning)する。設定ファイルには、実行環境の制限と機能、およびソフトウェアモジュールが必要とするパラメータを定義するハードウェアおよびソフトウェアの設定が含まれる。プロセスエージェントは、実行環境を起動し、実行環境で実行されるソフトウェアモジュールが設定ファイルに記載されているリソースにアクセスできるようにする。ソフトウェアモジュールの実行が完了すると、パフォーマンスの結果がプロセスエージェントに送られて、照合および分析が行われる。これらの結果は、ソフトウェアモジュールのどの実装が最良のパフォーマンスを発揮したかを決定するために使用される。特定の実装例において、プロセスエージェントは、仮想マシンそのものであり、他の仮想マシン、実行環境や他のジョブの設定、提供および起動を管理する。
【0008】
第1の態様において、本発明は、ソフトウェアモジュールの1つまたは複数のインスタンスを準備/提供および起動するためのシステムを提供する。該システムは、
・ ソフトウェアモジュールの少なくとも1つのインスタンスの実装に使用されるハードウェアおよびソフトウェアの設定を詳細に記述した設定ファイルと、
・ ソフトウェアモジュールの少なくとも1つのインスタンスを実装するために、少なくとも1つのコンピュータシステムの設定に使用されるプロセスエージェントモジュールであって、少なくとも1つのコンピュータシステムを設定するために設定ファイルを使用する、プロセスエージェントモジュールと、
を備える。設定ファイルは、検索可能であるようにデータストレージに格納される。これにより、ソフトウェアモジュールのすべての実装が設定ファイルを使用することができる。設定ファイルは、識別子によって一意に識別される。識別子は、ソフトウェアモジュールと一意に関連付けられる。
【0009】
第2の態様において、本発明は、ソフトウェアモジュールの複数のインスタンスを起動するためのシステムを提供する。該システムは、
・ ソフトウェアモジュールの複数のインスタンスの実装に使用される設定を詳細に記述した設定ファイルと、
・ ソフトウェアモジュールの複数のインスタンスを実装するために、少なくとも1つのコンピュータシステムの設定に使用されるプロセスエージェントモジュールであって、少なくとも1つのコンピュータシステムを設定するために設定ファイルを使用する、プロセスエージェントと、
を備える。設定ファイルは、識別子によって一意に識別される。識別子は、ソフトウェアモジュールと一意に関連付けられる。
【図面の簡単な説明】
【0010】
以下、本発明の実施形態を、図面を参照して説明する。これらの図面に示される同一の参照符号は、同一の要素を示している。
図1】本発明の一態様によるシステムの構成要素を示すブロック図である。
【発明を実施するための形態】
【0011】
一態様において、本発明は、設定ファイルおよびプロセスエージェントモジュールを含むシステムを提供する。設定ファイルとプロセスエージェントモジュールとが協力して上述した問題に対処する。動作中には、設定ファイルは、ユーザによって準備され、ユーザが準備中/開発中のソフトウェアモジュールと一意に関連付けられる。設定ファイルは、ユーザのソフトウェアモジュールを実行する仮想マシンに必要なソフトウェアおよびハードウェアの設定を含むようにユーザによって準備される。これには、仮想マシンで利用可能なRAM(ランダムアクセスメモリ)の容量、仮想マシンに割り当てられるまたは仮想マシンで利用可能なプロセッサコア(またはプロセッサ)の数、仮想マシンに割り当てられるGPUの数、およびマルチタスク環境を用いる一部の実装例において、ソフトウェアモジュールのプロセスに与えられる優先度が含まれる。また、設定ファイルには、ソフトウェアモジュールが必要とする様々なパラメータの範囲が含まれてもよい。例えば、ソフトウェアモジュールは、ニューラルネットワークを実装している。そのため、ニューラルネットワーク内の様々なノードは、ハイパーパラメータ値を必要とする場合がある。設定ファイルには、ニューラルネットワーク内の様々なノードのための様々なハイパーパラメータの範囲が含まれてもよい。
【0012】
プロセスエージェントは、設定ファイルと協力して、設定ファイルの内容に基づいて実行環境の設定を実行するように動作する。このように、プロセスエージェントは、設定ファイルの内容を読み取り、必要に応じて、その内容に基づいて1つまたは複数の実行環境を準備/提供する。また、プロセスエージェントは、設定ファイルに一意に関連付けられたソフトウェアモジュールを実際に起動し、必要に応じて、ソフトウェアモジュールの関連する構成要素について、設定ファイルのパラメータ値を使用する。設定ファイルには、ソフトウェアモジュールの試行/テスト/実装の回数などのパラメータも含まれてもよいことに留意されたい。このように、プロセスエージェントは、これらの試行パラメータに基づいて、ソフトウェアモジュールが必要とする数のインスタンスを並行して実行するために必要な数の実行環境を準備/提供する。例えば、ソフトウェアモジュールの5つのインスタンスが必要であり、使用される特定のパラメータセットを各インスタンスが有することを設定ファイルが示している場合、プロセスエージェントは、5つの同一の実行環境を設定および起動する。これらの実行環境は、関連するパラメータでソフトウェアモジュールを実行する。
【0013】
また、プロセスエージェントは、テスト中および/または開発中のソフトウェアモジュールの様々なインスタンスによって生成されたあらゆる結果を受け取って照合することもできる。これには、ソフトウェアモジュールの様々に設定されたインスタンス(パラメータによる)のパフォーマンスデータが含まれる。これにより、プロセスエージェントは、様々な結果を収集、照合および(パフォーマンス結果に応じて)順位付けすることができる。このように、プロセスエージェントは、どのパラメータを使用したときにソフトウェアモジュールの最良のパフォーマンスの設定が得られたかを決定することができる。次いで、これらの結果と順位がユーザに提示される。ユーザは、必要または所望に応じて、最適なパラメータが設定ファイルにあるように、設定ファイルを書き換え/修正することができる。
【0014】
なお、設定ファイルおよびプロセスエージェントによって制御、準備/提供および起動される実行環境の概念には、プラットフォームに依存しない環境で実行される孤立したリソース(CPU、RAM、GPU、ネットワークアダプタなど)が含まれ、それらのリソースをユーザが定義したプログラムのセットに公開することができる。「実行環境」の例として、仮想マシン、プロセス仮想マシン、Dockerコンテナ、および物理マシンの完全な仮想化またはエミュレーションが挙げられる。このように、プロセスエージェントが実行環境を起動する際には、具体的に準備/提供された仮想マシン、(特定のリソースで準備/提供される)物理マシンのエミュレーション、または単にユーザのプログラム(すなわちソフトウェアモジュール)が利用可能な特定のリソースで準備/提供された特定のソフトウェア環境を起動することが含まれる。
【0015】
設定ファイルおよびプロセスエージェントを使用することで、さらなる利点が得られることに留意されたい。ソフトウェアモジュールに最適な(または最適に近い)パラメータが見つかり、設定ファイルに入力されると、そのファイルをデータストレージに格納することができる。ソフトウェアモジュールを再度実行または実装する際には、プロセスエージェントは、データストレージから設定ファイルを取得するだけで、そのソフトウェアモジュールに最適であると決定されたのと同じハードウェアおよびソフトウェアの設定を使用することができる。また、ソフトウェアモジュールに最適なパフォーマンスを提供することが判明した(現時点で設定ファイルの一部となっている)パラメータを使用することができる。これにより、ソフトウェアモジュールの実装を使用する際に、最適な設定を確実に使用することができる。また、研究者や開発者がソフトウェアモジュールを再実行する必要がある場合、最良のパフォーマンスを発揮したバージョンを確実に使用することができる。また、ソフトウェアモジュールのハードウェアおよびソフトウェアの設定に関わる条件が、以前に実装されたときのソフトウェアモジュールのものと同じであることを保証することができる。ソフトウェアモジュールのすべてのバージョンが同じハードウェアおよびソフトウェアの設定で実行されるため、研究者や開発者は、どの実験やバージョンでどの設定を使用したかを注意深くメモする必要がなくなる。ただし、ソフトウェアモジュールの設定は、そのソフトウェアモジュールの過去の実行履歴のみに基づく必要はない。設定ファイルにおける設定およびパラメータは、ソフトウェアモジュールの特定のニーズや、ソフトウェアモジュールが実装する可能性のあるモデルに基づいていてもよい。
【0016】
なお、どの設定ファイルがどのソフトウェアモジュールに関連付けられているかを容易に識別できるように、設定ファイルとソフトウェアモジュールを一意に関連付けることができることに留意されたい。これは、設定ファイルとソフトウェアモジュールの両方に埋め込まれた一意の識別コードによって行うことができる。このように、ソフトウェアモジュールを実装する前に、プロセスエージェントは、ソフトウェアモジュールをチェックし、データストレージを検索して、同じ識別コードをもつ設定ファイルが存在するかどうかを決定することができる。そのような設定ファイルが存在する場合、この設定ファイルが取得され、その設定およびパラメータが、ソフトウェアモジュールを実行する実行環境で実装または使用される。
【0017】
本発明のシステムの使いやすさを確保するために、プロセスエージェントおよび設定ファイルは、ソフトウェアモジュールの特性に依存しないようになっている。これは、TensorFlow、Python、Torchまたは他の適切なシステムおよび/またはプログラミング言語を使用して、ソフトウェアモジュールを開発/作製することができることを意味する。好ましくは、設定ファイルには、ソフトウェアモジュールの作製に使用されるシステムのタイプ/特性に関する指標が含まれる。プロセスエージェントがこの指標を使用して、設定ファイル内のパラメータがその特定のシステムでの使用に適していることを確認することができる。また、プロセスエージェントがこの指標を使用して、このシステムに必要なライブラリやサポートリソースがソフトウェアモジュールで利用可能であることを保証することができる。代替例において、設定ファイルには、ソフトウェアモジュールが実行/実装のために必要とする可能性のあるライブラリや他のモジュール(すなわち、標準セットの一部ではないライブラリや他のモジュール)に関する指標が含まれてもよい。プロセスエージェントがこの指標を使用して、これらのライブラリやモジュールが、プロセスエージェントによって起動される様々な仮想マシンで利用可能且つアクセス可能であることを保証することができる。また、一実装例において、プロセスエージェントは、本明細書に記載されているようなシステム全体の機能性に基づいて他の仮想マシン(またはジョブや他の実行環境の準備/提供)を起動する仮想マシンであることに留意されたい。代替的に、プロセスエージェントは、仮想マシンを起動したり、実行環境を準備/提供したりするスタンドアロンのサブシステムであってもよい。本明細書に記載するように、プロセスエージェントは(仮想マシンとしてであれ、スタンドアロンサブシステムまたはプロセスとしてであれ)、設定ファイル内の内容に基づいて、実行環境の設定、準備/提供および実行/起動を統括する。プロセスエージェントは、1つのサーバ/クラスタで常駐/起動して、他のサーバ/クラスタ上の仮想マシンを起動/制御してもよいし、プロセスエージェントとそれが起動する実行環境がすべて同じサーバ/クラスタに常駐していてもよい。
【0018】
ニューラルネットワークベースのソフトウェアモジュールに特有の実装において、設定ファイルには、ニューラルネットワークがハイパーパラメータとして使用するための値の範囲が含まれてもよい。この値は、プロセスエージェントがソフトウェアモジュールの複数のインスタンス(すなわち、各インスタンスが設定ファイルで与えられた範囲に基づいて異なるハイパーパラメータのセットを有する、ニューラルネットワークの複数のインスタンス)を起動するための基準として使用されてもよい。これにより、プロセスエージェントは、ソフトウェアモジュールの複数の並列インスタンスを、同一の仮想マシン/実行環境上で実行させることができる。ソフトウェアモジュールのこれらの複数のインスタンスを同時に並行して実行することができるが、システムの実装に応じて、プロセスエージェントは、様々な仮想マシン/実行環境を、順番に、または千鳥状に並行して、または同時に並行して動作するように設定してもよい。
【0019】
本発明の一変形例において、システムは、単一または複数のソフトウェアモジュールの設定ファイル内の内容にかかわらず、これらのモジュールの実行履歴に基づいて、モジュールの最適な設定を決定することができる。一実装例において、特定のモジュール(しきい値は設定可能な設定可能変数)の実行が十分にあった場合、システムは、その実行データを機械学習モデルに送信して、1つまたは複数の最適な設定パラメータを決定する。その特定のモジュールの後続の実行は、1つまたは複数の最適なパラメータを使用して準備/提供または設定される。例えば、特定のソフトウェアモジュールの実行が100回行われた後に、そのプロセスに対して設定ファイルに5つのGPUの準備/提供が記載されている場合、その実行データは、機械学習システムに送られる。機械学習システムは、(実行データから)5つのGPUが準備/提供されているが、特定のモジュールでは実際には3つのGPUしか使用していないと判断した場合、その特定のモジュールにおける後続の実行では、設定ファイルに記載されている5つのGPUではなく、3つのGPUが設定される。このように、システムは、ソフトウェアモジュールの十分な量の実行データに基づいて、そのソフトウェアモジュールのリソース消費量を予測的に決定することができる。予測された消費量は、ソフトウェアモジュールのリソース消費量を最適化または削減することを目的として、そのソフトウェアモジュールの今後の1つまたは複数の実行を準備/提供するために使用することができる。また、システムは、ソフトウェアモジュールがリソース不足に陥らないように、実行に必要なリソースの最高レベルの最少量を決定することもできる。
【0020】
図1を参照すると、本発明の一態様によるシステムの構成要素のブロック図が示されている。システム10は、設定ファイル20と、プロセスエージェント30と、を含む。プロセスエージェント30は、コンピュータシステム40と連携して動作し、設定ファイル20に記載されている設定パラメータに基づいて、1つまたは複数の仮想マシン/実行環境50を準備/提供、設定および起動する。様々な実行環境が起動された後、設定ファイル20は、後に使用するためにデータストレージ60に格納することができる。設定ファイル20は、ソフトウェアモジュールを再実行または再実装する必要があるときに、プロセスエージェント30によってデータストレージ60から取得することができる。
【0021】
上述したように、起動したソフトウェアモジュールのパフォーマンス指標は、収集、照合および分析のためにプロセスエージェントに送られる。ソフトウェアモジュールの最適な動作パラメータが決定されると、プロセスエージェントによるパフォーマンス指標の分析によって自動的に、またはユーザがソフトウェアモジュールで使用するパラメータを分析および選択することによって手動で、データストレージに格納されている設定ファイルにこれらのパラメータを含めることができる。これにより、今後のソフトウェアモジュールの実行または実装において、設定ファイルに格納されている最適なパラメータを使用することができる。
【0022】
上記のことから、システムは、収集したソフトウェアモジュールの実行データに基づいて、好ましい最適な設定やパラメータを自動的に決定することもできる。システムは、機械学習モデルまたはその他の適切なデータ分析モデルを使用して、ソフトウェアモジュールの適切な数の実行データのセットを分析し、この分析結果に基づいて、システムは、モジュールの最適なパラメータおよび設定を予測することができる。これらのパラメータおよび設定は、必要に応じて、設定ファイルのパラメータの代わりに使用することができる。上述したように、この機能により、研究者やユーザは、ソフトウェアモジュールの今後の実行が最適化され、ソフトウェアモジュールがリソース不足に陥らないようにしながら、最小限のリソースが使用されるようにすることができる。
【0023】
なお、本発明の様々な態様は、全体的なソフトウェアシステムにおけるソフトウェアモジュールとして実装されてもよいことに留意されたい。このように、本発明は、実行されたときに、所定の機能を有する様々なソフトウェアモジュールを実装する、コンピュータで実行可能な命令の形態をとることができる。
【0024】
本発明の実施形態は、方法ステップとしてプログラムされたコンピュータプロセッサまたは同様の装置によって実行されてもよく、これらのステップを実行するための手段が設けられた電子システムによって実行されてもよい。同様に、コンピュータディスク、CD-ROM、RAM(ランダムアクセスメモリ)、ROM(リードオンリーメモリ)、または当該技術分野で知られている同様のコンピュータソフトウェア記録媒体などの電子記憶手段が、上記のような方法ステップを実行するようにプログラムされていてもよい。また、これらの方法ステップを表す電子信号が、通信ネットワークを介して送信されてもよい。
【0025】
本発明の実施形態は、任意の従来のコンピュータプログラミング言語で実装されてもよい。例えば、好ましい実施形態は、手続き型プログラミング言語(C言語やGoなど)で実装されてもよく、またはオブジェクト指向プログラミング言語(C++、Java、PHP、Python、C#など)で実装されてもよい。本発明の代替実施形態は、あらかじめプログラムされたハードウェア要素、他の関連構成要素、またはハードウェアおよびソフトウェアの構成要素の組み合わせとして実装されてもよい。
【0026】
本実施形態は、コンピュータシステムで使用するためのコンピュータプログラム製品として実装され得る。このような実装例には、コンピュータで読み取り可能な記録媒体(ディスク、CD-ROM、ROM、固定ディスクなど)などの有形媒体上に固定された一連のコンピュータ命令、または媒体上のネットワークに接続された通信アダプタなどのモデムや他のインタフェース装置を介して、コンピュータシステムに送信可能な一連のコンピュータ命令が含まれる。媒体は、有形の媒体(光通信や電気通信線など)であってもよく、無線技術で実装された媒体(マイクロ波や赤外線などの送信技術など)であってもよい。一連のコンピュータ命令は、本明細書に記載されているすべてまたは一部の機能を包含する。当業者であれば、このようなコンピュータ命令は、多くのコンピュータアーキテクチャまたはオペレーティングシステムで使用するために、多くのプログラミング言語で記載することができることを理解するであろう。さらに、このような命令は、半導体、磁気、光学またはその他の記憶装置を含む任意の記憶装置に格納されてもよく、光学、赤外線、マイクロ波またはその他の伝送技術などの通信技術を使用して送信されてもよい。このようなコンピュータプログラム製品は、印刷または電子文書を添付したリムーバブル媒体(市販ソフトウェアなど)として配布されてもよく、コンピュータシステム(システムROM上または固定ディスク上など)に予め組み込まれていてもよく、ネットワーク(インターネットやワールドワイドウェブなど)上のサーバから配布されてもよい。言うまでもなく、本発明の一部の実施形態は、ソフトウェア(コンピュータプログラム製品など)とハードウェアの両方の組み合わせとして実装されてもよい。さらに、本発明の別の実施形態は、完全にハードウェアとして、または完全にソフトウェア(コンピュータプログラム製品)として実装されてもよい。
【0027】
当業者であれば、上述した実施形態の代替構造や実施形態、または変形例を想起することができるであろう。ただし、それらはすべて、添付の特許請求の範囲で定義される本発明の範囲内に含まれるように意図されている。
図1
【手続補正書】
【提出日】2021-12-14
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ソフトウェアモジュールの1つまたは複数のインスタンスを準備/提供および起動するためのシステムであって、
・ 前記ソフトウェアモジュールの少なくとも1つの前記インスタンスの実装に使用されるハードウェアおよびソフトウェアの設定を詳細に記述した設定ファイルと、
・ 前記ソフトウェアモジュールの前記少なくとも1つのインスタンスを実装するために、少なくとも1つのコンピュータシステムの設定に使用されるプロセスエージェントモジュールであって、前記少なくとも1つのコンピュータシステムを設定するために前記設定ファイルを使用する、プロセスエージェントモジュールと、
を備え、
・ 前記設定ファイルは、検索可能であるようにデータストレージに格納され、これにより、前記ソフトウェアモジュールのすべての実装が前記設定ファイルを使用することができ、
・ 前記設定ファイルは、識別子によって一意に識別され、前記識別子は、前記ソフトウェアモジュールと一意に関連付けられる、
システム。
【請求項2】
前記ソフトウェアモジュールは、ニューラルネットワークを実装している、
請求項1に記載のシステム。
【請求項3】
前記設定ファイルには、前記ニューラルネットワークのためのハイパーパラメータとして使用される値の範囲が含まれる、
請求項2に記載のシステム。
【請求項4】
前記設定ファイルは、前記プロセスエージェントに、前記ソフトウェアモジュールの前記複数のインスタンスを起動させる、
請求項2に記載のシステム。
【請求項5】
前記ソフトウェアモジュールの前記複数のインスタンスの各々は、異なるハイパーパラメータ値のセットを使用する、
請求項4に記載のシステム。
【請求項6】
前記ソフトウェアモジュールの前記インスタンスの各々は、前記プロセスエージェントに送られる出力を生成する、
請求項5に記載のシステム。
【請求項7】
前記プロセスエージェントは、前記ソフトウェアモジュールの前記インスタンスの出力を評価し、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力に基づいて、前記ニューラルネットワークの最適な前記ハイパーパラメータのセットを決定する、
請求項6に記載のシステム。
【請求項8】
前記設定ファイルには、前記ソフトウェアモジュールのためのパラメータとして使用される値の範囲が含まれ、前記パラメータは、前記ソフトウェアモジュールのパフォーマンスに影響を与える値である、
請求項1に記載のシステム。
【請求項9】
前記設定ファイルは、前記プロセスエージェントに、前記ソフトウェアモジュールの前記複数のインスタンスを起動させる、
請求項8に記載のシステム。
【請求項10】
前記ソフトウェアモジュールの前記複数のインスタンスの各々は、異なるパラメータ値のセットを使用する、
請求項4に記載のシステム。
【請求項11】
前記ソフトウェアモジュールの前記インスタンスの各々は、前記プロセスエージェントに送られる出力を生成する、
請求項10に記載のシステム。
【請求項12】
前記プロセスエージェントは、前記ソフトウェアモジュールの前記インスタンスの出力を評価し、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力に基づいて、前記ソフトウェアモジュールの最適なパラメータのセットを決定する、
請求項11に記載のシステム。
【請求項13】
ソフトウェアモジュールの複数のインスタンスを起動するためのシステムであって、
・ 前記ソフトウェアモジュールの前記複数のインスタンスの実装に使用される設定を詳細に記述した設定ファイルと、
・ 前記ソフトウェアモジュールの前記複数のインスタンスを実装するために、少なくとも1つのコンピュータシステムの設定に使用されるプロセスエージェントモジュールであって、前記少なくとも1つのコンピュータシステムを設定するために前記設定ファイルを使用する、プロセスエージェントモジュールと、
を備え、
・ 前記設定ファイルは、識別子によって一意に識別され、前記識別子は、前記ソフトウェアモジュールと一意に関連付けられる、
システム。
【請求項14】
前記設定ファイルは、検索可能であるようにデータストレージに格納され、これにより、前記ソフトウェアモジュールのすべての実装が前記設定ファイルを使用することができる、
請求項13に記載のシステム。
【請求項15】
前記設定ファイルには、前記ソフトウェアモジュールのためのパラメータとして使用される値の範囲が含まれ、前記パラメータは、前記ソフトウェアモジュールのパフォーマンスに影響を与える値である、
請求項13に記載のシステム。
【請求項16】
前記ソフトウェアモジュールの前記複数のインスタンスの各々は、異なるパラメータ値のセットを使用する、
請求項14に記載のシステム。
【請求項17】
前記ソフトウェアモジュールの前記インスタンスの各々は、前記プロセスエージェントに送られる出力を生成する、
請求項13に記載のシステム。
【請求項18】
前記プロセスエージェントは、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力を評価し、前記ソフトウェアモジュールの前記複数のインスタンスの前記出力に基づいて、前記ソフトウェアモジュールの最適なパラメータのセットを決定する、
請求項17に記載のシステム。
【請求項19】
ソフトウェアモジュールの少なくとも1つのインスタンスを起動する方法であって、
前記ソフトウェアモジュールの前記少なくとも1つのインスタンスの実装に使用される設定を詳細に記述した設定ファイルを提供するステップと、
前記設定ファイルを一意に識別し、且つ前記ソフトウェアモジュールと一意に関連付けられる識別子を提供するステップと、
プロセスエージェントモジュールを使用して、少なくとも部分的に前記設定ファイルに基づいて、前記ソフトウェアモジュールの複数の前記インスタンスを実装するために、少なくとも1つの実行環境を設定するステップと、
前記ソフトウェアモジュールの前記複数のインスタンスを起動するステップと、
を含む、
方法。
【請求項20】
前記ソフトウェアモジュールは、ニューラルネットワークを実装し、
前記設定ファイルを提供するステップは、前記ソフトウェアモジュールのハイパーパラメータとして使用される値の範囲を提供するステップを含む、
請求項19に記載の方法。
【国際調査報告】