JP2023184233A - モデル学習システム及び方法 - Google Patents
モデル学習システム及び方法 Download PDFInfo
- Publication number
- JP2023184233A JP2023184233A JP2022098271A JP2022098271A JP2023184233A JP 2023184233 A JP2023184233 A JP 2023184233A JP 2022098271 A JP2022098271 A JP 2022098271A JP 2022098271 A JP2022098271 A JP 2022098271A JP 2023184233 A JP2023184233 A JP 2023184233A
- Authority
- JP
- Japan
- Prior art keywords
- learning
- model
- time
- amount
- resource
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 title claims description 25
- 238000010801 machine learning Methods 0.000 claims abstract description 38
- 238000013468 resource allocation Methods 0.000 claims description 38
- 238000012544 monitoring process Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 9
- 230000007423 decrease Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 19
- 238000003860 storage Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000003111 delayed effect Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013341 scale-up Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000007786 learning performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】モデル学習の遅延回復と過剰なリソース量の割当回避の両方を実現する。
【解決手段】システムが、機械学習モデルの学習の都度に、複数種類の計算リソースの各々について、当該機械学習モデルの学習に割り当てられている計算リソース量であるリソース割当量を取得し、且つ、複数種類の計算リソースの各々について、当該機械学習モデルの学習に使用される計算リソース量であるリソース使用量を監視する。システムが、機械学習モデルの今回の学習に要する時間を推定し、当該推定された時間が、当該機械学習モデルの過去の学習に要した時間よりも長いか否かの判定である時間判定を行う。当該時間判定の結果が真の場合、システムが、複数種類の計算リソースの少なくとも一つについて今回の学習におけるリソース割当量を増加させる。
【選択図】 図1
【解決手段】システムが、機械学習モデルの学習の都度に、複数種類の計算リソースの各々について、当該機械学習モデルの学習に割り当てられている計算リソース量であるリソース割当量を取得し、且つ、複数種類の計算リソースの各々について、当該機械学習モデルの学習に使用される計算リソース量であるリソース使用量を監視する。システムが、機械学習モデルの今回の学習に要する時間を推定し、当該推定された時間が、当該機械学習モデルの過去の学習に要した時間よりも長いか否かの判定である時間判定を行う。当該時間判定の結果が真の場合、システムが、複数種類の計算リソースの少なくとも一つについて今回の学習におけるリソース割当量を増加させる。
【選択図】 図1
Description
本発明は、概して、機械学習モデルの学習に関する。
コンピュータシステムにおいては、仮想化技術を利用してハードウェアリソース(CPU(Central Processing Unit)/メモリ/ストレージ)などを持つ仮想サーバやネットワークといったデジタルインフラをインターネット経由でオンデマンドで提供するIaaS(Infrastructure as a Service)と呼ばれるサービスが存在し、リソースの使用量や使用時間などの状況に応じてユーザへ課金を行う例が一般的である。
また、コンピュータシステムにおいては、リソース量の増加(典型的には、スケールアウト及び/又はスケールアップ)、及び/又は、リソース量の減少(典型的には、スケールイン及び/又はスケールダウン)が行われ得る。
また、特許文献1には、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にする情報処理装置が記載されている。
昨今、各種データを分析し予測する方法として、機械学習、特にニューラルネットワークを用いたディープラーニングが広く利用されている。機械学習により得られるモデルを用いてデータの予測を実行する場合、予測精度を保つためには最新データに基づくモデルの再学習が必要となる。
ここで、一例として、IaaSにおける機械学習のモデル再学習に時間がかかる場合を取り上げる。例えば、1週間ごとに新たなデータを入力して再学習を必要とする機械学習のモデルにおいて、モデルの再学習が遅延して数日かかってしまうと、その間に当該モデルの活用機会を失ってしまうことになる。あらかじめモデル再学習にリソース量を大きく割り当てることで遅延を発生させないことは期待できるかもしれないが、過剰なリソース量の割り当てという別の課題が生じ得る。
特許文献1には、このような課題もその課題の解決手段も開示も示唆もされていない。
本発明はこうした背景に鑑みてなされたものであり、モデル学習の遅延回復と過剰なリソース量の割当回避の両方を実現することを目的とする。
モデル学習システムが、機械学習モデルの学習の都度に、複数種類の計算リソースの各々について、当該機械学習モデルの学習に割り当てられている計算リソース量であるリソース割当量を取得し、且つ、複数種類の計算リソースの各々について、当該機械学習モデルの学習に使用される計算リソース量であるリソース使用量を監視する。モデル学習システムが、機械学習モデルの今回の学習に要する時間を推定し、当該推定された時間が、当該機械学習モデルの過去の学習に要した時間よりも長いか否かの判定である時間判定を行う。当該時間判定の結果が真の場合、モデル学習システムが、当該時間判定の結果が真の場合、複数種類の計算リソースの少なくとも一つについて今回の学習におけるリソース割当量を増加させる。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
本発明によれば、モデル学習の遅延回復と過剰なリソース量の割当回避の両方を実現することができる。
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスで良い。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つで良い。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスで良い。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでも良い。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であっても良いし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であっても良い。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスで良い。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでも良い。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であっても良いし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であっても良い。
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスで良い。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであっても良いし不揮発性メモリデバイスであっても良い。
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)である。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリで良い。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでも良い。少なくとも一つのプロセッサデバイスは、シングルコアでも良いしマルチコアでも良い。少なくとも一つのプロセッサデバイスは、プロセッサコアでも良い。少なくとも一つのプロセッサデバイスは、処理の一部または全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでも良い。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されても良いし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されても良いし、それらの組合せによって実現されても良い。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置および/またはインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされても良い。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としても良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であっても良い。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしても良い。
また、以下の説明では、「xxxテーブル」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでも良いし(例えば、構造化データでも良いし非構造化データでも良いし)、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでも良い。従って、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、テーブルの構成は一例であり、一つのテーブルは、二つ以上のテーブルに分割されても良いし、二つ以上のテーブルの全部又は一部が一つのテーブルであっても良い。
また、以下の説明において、「モデル」は、機械学習モデルであり、例えば、ニューラルネットワークで良い。
以下、発明を実施するための形態について図面を用いて詳細に説明する。
図1は、本発明の一実施形態に係るモデル学習システム1の構成例を示している。
同図に示すように、モデル学習システム1は、インターフェース装置101、記憶装置102及びプロセッサ103を備えた物理的なコンピュータシステムでもよいし、物理的なコンピュータシステムに基づく論理的なコンピュータシステム(例えば、仮想マシン又はクラウドコンピューティングシステム)でもよい。インターフェース装置101に、ユーザ装置3と通信ネットワーク2を介して通信可能に接続されている。通信ネットワーク2は、無線方式又は有線方式の通信手段であり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、専用線、各種公衆通信網等である。ユーザ装置3は、パーソナルコンピュータやスマートフォンといった情報処理端末で良い。モデル学習システム1がサーバの一例で良くユーザ装置3がクライアントの一例で良い。
記憶装置102に、プロセッサ103によりアクセスされるデータやプロセッサ103により実行されるコンピュータプログラムが格納される。記憶装置102に格納されるデータとして、例えば、学習履歴テーブル400、学習リソーステーブル410及び実行コストテーブル600がある。記憶装置102に格納されるコンピュータプログラムとして、例えば、後述の学習実行部12を実現するためのコンピュータプログラムと、後述の学習監視部10、学習制御部11及び情報出力部13を実現するためのコンピュータプログラムとがある。学習監視部10及び学習制御部11を実現するためのコンピュータプログラムと、情報出力部13を実現するためのコンピュータプログラムとは別々のプログラムでもよい。
プロセッサ103が記憶装置102に格納されている一つ以上のコンピュータプログラムを実行することにより、学習監視部10、学習制御部11、学習実行部12、及び情報出力部13といった機能が実現される。学習監視部10は、モデル学習のリソース使用量と実行時間(学習時間)を収集する。学習制御部11は、モデル学習の遅延時に学習遅延を回復するための制御を行う。情報出力部13は、モデルに関する情報であるモデル情報をユーザ装置3に表示する(モデル情報の表示用の情報をユーザ装置3に送信する)。
学習実行部12は、指定されたリソース割当量の範囲のリソース使用量でモデル学習を実行する。学習実行部12は、例えば、IaaSを用いて実現されるデジタルインフラで良い。学習実行部12は、リソース量の増加又は減少の指示に従い、モデル学習に必要なリソース使用量を制御する(例えば、IaaSにおける仮想マシンのCPUの割り当てを増やしたり、メモリの割り当てを減らしたりする)。
インターフェース装置101、記憶装置102及びプロセッサ103のうちの少なくとも一部が、モデル学習に使用される複数種類の計算リソースの一例でよい。具体的には、例えば、記憶装置102は、メモリを含み、プロセッサ103は、複数のCPUコアを有する一つ以上のCPUを含んでよく、複数種類の計算リソースは、メモリとCPUでよい。モデル学習に使用される計算リソースとして、ポートや通信帯域といったリソースが採用されてもよい。
学習監視部10は、モデルの学習の都度に、複数種類の計算リソースの各々について、当該モデルのリソース割当量(当該モデルの学習に割り当てられている計算リソース量)を取得し、且つ、複数種類の計算リソースの各々について、当該モデルのリソース使用量(当該モデルの学習に使用される計算リソース量)を監視する。学習制御部11は、当該モデルの今回の学習に要する時間を推定し、当該推定された時間が、当該モデルの過去の学習に要した時間(学習履歴テーブル400から特定される時間)よりも長いか否かの判定である時間判定を行う。当該時間判定の結果が真の場合、学習制御部11は、今回の学習での複数種類の計算リソースのリソース使用量を基にボトルネックの計算リソース種類を特定し、当該特定された計算リソース種類の計算リソースについて今回の学習におけるリソース割当量を増加させる(例えば、学習実行部12に、当該モデルについてリソース使用量の増加を指示する)。
このモデル学習システム1によれば、今回の学習に要すると推定された時間が過去の学習時間よりも長いと判定された場合に学習のためのリソース割当量が増加するため、モデル学習の遅延回避を実現することができ、且つ、このようなリソース割当量の増加が可能であるためあらかじめ過剰なリソース量を割り当てておくことは不要である。
なお、推定された学習時間は過去の履歴としての学習時間と比較されるが、この技術的意義の一例は次の通りである。すなわち、同一モデルの学習に使用される訓練データのサイズは学習によって大きく変わることは少ないと考えられる。そのため、推定された学習時間の比較対象として過去の学習時間を採用することで、効率的に、今回の学習に遅延が生じるか否かを判定することができる。
以下、本実施形態を詳細に説明する。なお、以下、説明の便宜上、モデルの精度を「学習精度」と呼ぶ。
図2は、学習履歴テーブル400の一例を示す。
同図に示すように、学習履歴テーブル400は、モデル毎の過去の学習の履歴を表す。例えば、学習履歴テーブル400は、モデル学習毎にレコードを有する。レコードは、モデル名401、Epoch402、学習精度403、日時404、時間405、データ数406、CPU407及びメモリ408といった情報を保持する。一つのモデル学習を例に取る。
モデル名401は、モデル学習の対象のモデルの名前を表す。Epoch402は、モデル学習におけるエポックの回数を表す。すなわち、本実施形態では、モデル学習に訓練データ群が使用されるが、一の訓練データが繰り返し入力される。一の訓練データの入力を含んだ学習が「エポック」である。既定の回数(エポック数)のエポックが行われた場合に、学習が終了する。具体的には、例えば、学習監視部10は、モデルの学習の都度に、下記を行うようになっている。
・当該学習について初めてのエポックの開始を当該学習の開始と判定する。
・当該学習の開始後、当該学習について規定されたエポック数分のエポックが完了していないことを、当該モデルの学習中と判定する。
・当該学習の開始後、当該学習について規定されたエポック数分のエポックが完了したことを、当該モデルの学習の終了と判定する。
・当該学習について初めてのエポックの開始を当該学習の開始と判定する。
・当該学習の開始後、当該学習について規定されたエポック数分のエポックが完了していないことを、当該モデルの学習中と判定する。
・当該学習の開始後、当該学習について規定されたエポック数分のエポックが完了したことを、当該モデルの学習の終了と判定する。
学習精度403は、学習を終了したモデルの学習精度を表す。例えば、学習精度の要素として、正解率、損失及び他の要素の少なくとも一つが採用されてよい。本実施形態では、学習精度は、正解率及び損失で定義される。また、「学習の終了」は、下記のうちのいずれかに該当することでよい。
・既定のエポック数分のエポックが行われること。
・学習精度が収束したこと(既定のエポック数分のエポックが行われていなくても学習が終了するケースの一例)。
・既定のエポック数分のエポックが行われること。
・学習精度が収束したこと(既定のエポック数分のエポックが行われていなくても学習が終了するケースの一例)。
日時404は、レコードが記憶された日時(モデル学習の開始日時)を表す。時間405は、学習開始時と学習終了時の日時の差、すなわち、モデル学習に要した時間を表す。データ数406は、モデル学習に使用した訓練データを構成するデータ要素数を表す。例えば、訓練データが、複数の画像ファイルの集合の場合、データ数は、画像のファイルの数でよい。
CPU407は、モデル学習に割り当てられたCPU割当量を表す。メモリ408は、モデル学習に割り当てられたメモリ割当量を表す。CPU割当量及びメモリ割当量がリソース割当量の一例である。
図3は、学習リソーステーブル410の一例を示す。
同図に示すように、学習リソーステーブル410は、モデル毎に当該モデルの今回の学習の状況を表す。例えば、学習リソーステーブル410は、エポック毎にレコードを有する。レコードは、モデル名411、日時419、Epoch412、学習精度403、CPU141、メモリ415、時間416、遅延417及びリソース418といった情報を保持する。一つのエポックを例に取る。
モデル名401は、学習対象のモデルの名前を表す。Epoch402は、今回の学習において当該エポックが何回目のエポックであるかを表す。学習精度403は、学習中のモデルの学習精度(本実施形態では、正解率及び損失)を表す。CPU414は、モデルの学習に伴うCPU使用量(例えば、CPU使用率及び/又はCPU使用時間)を表す。メモリ415は、学習処理に伴うメモリ使用量(例えば、メモリ使用率及び/又はメモリ使用量)を表す。時間416は、学習開始時と測定時の日時の差、すなわち、モデル学習に要している時間を表す。
遅延417は、時間416を基に推定された学習時間(今回の学習に要すると推定された時間)が同じモデルの過去の学習時間と比べて長い(遅延している)かどうかを示す値である。例えば遅延ありの場合は値が「あり」であり、遅延なしの場合は値が「なし」である。
リソース418は、学習に対するCPU割当量やメモリ割当量といったリソース割当量を表す。例えば、リソース418の値は、CPUコア数(CPU割当量の一例)とメモリサイズ(メモリ割当量)のペアであるリソース量ペアである。
図4は、実行コストテーブル600の一例を示す。
同図に示すように、実行コストテーブル600は、複数種類の計算リソースのコストを表す。例えば、実行コストテーブル600は、リソース量ペア毎にレコードを有する。レコードは、割当リソース601及びコスト602といった情報を保持する。一つのリソース量ペアを例に取る。
割当リソース601は、当該ペアにおけるCPU割当量とメモリ割当量とを表す。また、コスト602は、当該ペアについて単位時間あたりのリソース利用コスト(実行コスト)を表す。
続いて、以上の構成からなるモデル学習システム1において行われる処理の例を説明する。
図5は、モデル学習処理のフローチャートである。
まず、学習実行部12は、例えばユーザ装置3からの操作に応答して、学習対象のモデル(例えばニューラルネットワーク)を定義する(ステップ801)。ここで、モデルの定義は、学習実行時のモデル作成でもよいし、作成済のモデルの取り込みでも良い。
次に、学習実行部12は、例えばユーザ装置3からの操作に応答して、ステップ801で定義されたモデルのエポック数(学習の繰り返しの回数)を指定する(ステップ802)。例えば、ニューラルネットワークの学習においては、学習精度を向上させるために、同一の訓練データの入力によるモデル学習を繰り返すことが一般的である。1回の訓練データの入力でのモデル学習が「エポック」である。ステップ802では、このエポックの数が指定される。
次に、学習実行部12は、学習対象のモデルに訓練データを入力するモデル学習を実行する(ステップ803)。つまり、学習実行部12は、1回のエポックを実行し、エポック数(例えばメモリに記憶されているカウント値)を更新(1インクリメント)する。
次に、学習実行部12は、更新後のエポック数がステップ802で指定したエポック数に達したかどうかを判定する(ステップ804)。ステップ804の判定結果が偽の場合、処理がテップ803に戻る。ステップ804の判定結果が真の場合、学習対象のモデルの学習が終了する。
図6は、学習監視処理のフローチャートである。学習監視部10は、モデル学習処理の実行を契機として、学習実行部12から呼び出され、学習監視処理を開始する。例えば、呼び出されるタイミングは、図5に示したモデル学習処理の開始時、ステップ803の完了時(エポックの完了時)、及び、モデル学習処理の終了時である。
学習実行部12から呼び出された学習監視部10は、まずモデル学習処理の開始時かどうかを判定する(ステップ301)。
ステップ301の判定結果が真の場合は、学習監視部10は、当該学習対象のモデルについて、学習リソーステーブル410に、日時419(学習開始日時)を記録し、データ数(入力された訓練データにおけるデータ要素数)をメモリに格納する(ステップ302)。学習監視部10は、学習実行部12に対してリソース割当量の設定を指示する(ステップ308)。ここで、ステップ308における「リソース割当量」とは、例えば、CPU“4コア”及びメモリ“4GB”といったリソース量ペアでよい。リソース割当量は、実行コストの観点で選択されても良いし、過去の学習実績からの統計的な演算(例えば、当該学習対象のモデルの過去のデータ数406、CPU407及びメモリ408のそれぞれの回帰分析)から得られる推定値に基づいて選択されても良い。なお、ステップ308は、学習監視処理とは独立して、モデル学習開始時に実行されても良い。
ステップ301の判定結果が偽の場合は、学習監視部10は、学習実行部12から、モデル学習処理のリソース使用量(CPU使用量及びメモリ使用量)とリソース割当量(CPU割当量及びメモリ割当量)を取得する(ステップ303)。ここで、リソース使用量は、取得時点の値でも良いし、1回前のエポックから測定時までの間のリソース使用量の統計値(例えば平均値又は最大値)でも良い。統計値が平均値の場合は、学習処理のリソース使用量の実態に近いため有用である。学習監視部10は、学習実行部12から、学習中のモデルの名前(モデル名)、現時点のエポック数(カウント値)、及び学習精度といった情報を取得する(ステップ304)。学習監視部10は、モデル学習の終了時かどうかを判定する(ステップ305)。
ステップ305の判定結果が真の場合は、学習監視部10は、学習対象のモデルの日時419と現在日時との差からモデルの学習時間を算出し、さらに、当該モデルのエポック毎のCPU414及びメモリ415からCPU割当量とメモリ割当量の統計値(例えば平均値)を算出する。学習監視部10は、取得済みのモデル名401、Epoch402(エポック数)、学習精度403、データ数406と共に、日時404、時間405(算出された学習時間)、CPU407(CPU割当量の算出された統計値)及びメモリ(メモリ割当量の算出された統計値)を学習履歴テーブル400に記録する(ステップ306)。
ステップ305の判定結果が偽の場合は、学習監視部10は、日時419と現在日時の差からモデルの学習時間を算出し、取得済みのモデル名411、Epoch412、学習精度413、リソース使用量(CPU414及びメモリ415)及びリソース418と共に、時間416を学習リソーステーブル410に記録する(ステップ307)。
以上のように、学習監視部10は、モデルの学習の都度に、学習対象のモデルのモデル精度を監視(例えば、エポックの都度にモデル精度を取得)するようになっている。学習が完了した場合、当該モデルのモデル精度やデータ数等が学習履歴テーブル400に記録される。
図7は、学習制御処理のフローチャートである。
学習制御部11は、学習監視部10と同様に、モデル学習処理の実行を契機として、学習実行部12から呼び出される。例えば、呼び出されるタイミングは、図5に示したモデル学習処理の開始時、ステップ803の完了時(エポックの完了時)、及び、モデル学習処理の終了時である。
学習実行部12から呼び出された学習制御部11は、学習リソーステーブル410から、学習中のモデル(モデル名411)の全てのレコードにおける時間416、Epoch412、リソース使用量(CPU414及びメモリ415)及び学習精度413を取得する(ステップ501)。
続いて、学習制御部11は、学習履歴テーブル400から、当該モデルの過去のモデル学習に対応した時間405及び学習精度403を取得する(ステップ502)。
続いて、学習制御部11は、ステップ501にて取得した学習精度が収束しているかどうかの判定である収束判定を行う(ステップ503)。ステップ503の収束判定の結果が真の場合に、学習制御部11は、学習実行部12に対してモデル学習を中止(終了)するように指示する(ステップ509)。ステップ503の収束判定の結果が偽の場合は、学習制御部11は、モデル学習を継続することを決定する(例えば、学習実行部12に特段の指示を送信しない)(ステップ508)。ここで、学習精度が収束しているとは、学習精度413の変動が小さく収まっていることでよく、例えば、下記のうちのいずれかでよい。
・ステップ501にて取得した最新のエポックに対応の学習精度413(例えば正解率)と、一つ前のエポック(最新のEpoch412より一つ小さいEpoch412)に対応の学習精度413(例えば正解率)との差が、閾値よりも小さい。
・最新のエポックからあらかじめ指定した数遡ったエポックまでの期間での学習精度413(例えば正解率)の範囲(最大値と最小値の差)が閾値より小さい。このように学習精度が収束している場合にモデル学習を終了することで(具体的には、後述のステップ505の判定を行うことなくモデル学習を終了することで)、モデル学習の遅延回避と実行コストの削減という効果が得られる。
・ステップ501にて取得した最新のエポックに対応の学習精度413(例えば正解率)と、一つ前のエポック(最新のEpoch412より一つ小さいEpoch412)に対応の学習精度413(例えば正解率)との差が、閾値よりも小さい。
・最新のエポックからあらかじめ指定した数遡ったエポックまでの期間での学習精度413(例えば正解率)の範囲(最大値と最小値の差)が閾値より小さい。このように学習精度が収束している場合にモデル学習を終了することで(具体的には、後述のステップ505の判定を行うことなくモデル学習を終了することで)、モデル学習の遅延回避と実行コストの削減という効果が得られる。
ステップ503の収束判定の結果が偽の場合に、学習制御部11は、学習中のモデルの学習時間を推定する(ステップ504)。ここで、学習時間の推定方法としては、例えば、ステップ501にて取得した最新の時間416を最新のEpoch412で除算して得られるエポックごとの平均学習時間に対して最新のエポック数(カウント値)を乗算することで得られた値を、今回のモデル学習に要する時間の推定値とする方法がある。以上のように、学習制御部11は、今回の学習において、エポック毎の学習精度413を基に収束判定(ステップ503)を行い、最新のEpoch412(カウント値)と最新のエポックまでに要した時間416とを基に今回の学習に要する時間を推定する。このように、エポック毎に取得された情報を、収束判定と学習時間推定に利用することができる。
続いて、学習制御部11は、ステップ504で推定された学習時間が、ステップ502で取得した過去の時間405よりも長いかどうかの判定である時間判定、つまり、学習処理が遅延しているかどうかの判定を行う(ステップ505)。ステップ505の時間判定の結果が真の場合に、学習処理に割り当てるリソース割当量を増やすために、学習制御部11は、学習実行部12に対してリソース割当量を増加するよう指示する(ステップ510)。
ここで、今回の学習に要する推定時間と比較される過去の学習時間は、当該モデルの全ての過去の時間405のうちの少なくとも一つに基づいて良く、例えば、当該モデルの過去の時間405のうち最も長い時間405でも良いし、当該モデルの過去の時間405の平均値でもよい。また、当該モデルの過去の時間405の平均値μと標準偏差σに基づいて統計的に外れた範囲(μ+3σ以上など)に含まれる推定学習時間が遅延とみなされても良い。
また、ここで、リソース割当量の増加については、例えば、閾値よりも使用率の高いCPU及びメモリに対する割当量をあらかじめ設定した値で増加するのでも良いし、実行コストの低い方のCPUあるいはメモリの割当量を増加するのでも良い。実行コストに基づいてリソース割当量を増やすことは、実行コストテーブル600を参照して行われても良い。
また、ここで、学習制御部11は、ステップ505の時間判定の結果が真の場合に、今回の学習での複数種類の計算リソースのリソース使用量(本実施形態では、当該学習中のモデルの各エポックに対応のCPU414及びメモリ415)を基に、ボトルネックの計算リソース種類を特定してよい。例えば、CPU414及びメモリ415のうち閾値を超えている方に対応した計算リソース、CPU414及びメモリ415のいずれも閾値を超えていれば閾値との差が大きい方の使用率に対応した計算リソースが、ボトルネックの計算リソース種類の計算リソースでよい。学習制御部11は、当該特定された計算リソース種類の計算リソースについて、ステップ510において、今回の学習におけるリソース割当量を増加させてよい。これにより、効率的なリソース割当量の増加が期待される。
ステップ505の時間判定の結果が偽の場合は、学習制御部11は、ステップ501にて取得した最新の学習精度413が、ステップ502で取得した過去の学習実績における学習精度よりも高いかどうかの判定である精度判定を行う(ステップ506)。ステップ506の精度判定の結果が真の場合に、学習制御部11は、学習処理に割り当てるリソース量を減らすために、学習制御部11は、学習実行部12に対してリソース割当量を減少するよう指示する(ステップ507)。これにより、リソース割当量の最適化が期待できる。
ここで、最新の学習精度413と比較される過去の学習精度は、当該モデルの全ての過去の学習精度403のうちの少なくとも一つに基づいて良く、例えば、過去の学習実績での最も高い学習精度403でも良いし、過去の学習実績での学習精度403の平均値でも良い。
また、ここで、リソース割当量の減少については、例えば、閾値よりも使用率の低いCPU及びメモリについての割当量をあらかじめ設定した値に削減するのでも良いし、実行コストの低い方のCPUあるいはメモリの割当量を削減するのでも良い。実行コストに基づいてリソース割当量を減らすことは、実行コストテーブル600を参照して行われても良い。例えば、学習制御部11は、複数種類の計算リソースのうちいずれの種類の計算リソースのリソース割当量を維持することが最もコストが減るかを特定し、特定された種類以外の種類の計算リソースのリソース割当量を減少させてよい。具体的には、例えば、現在のリソース量ペアが、CPU“8コア”及びメモリ“8GB”の場合、図4に例示の実行コストテーブル600によれば、メモリ“8GB”を維持しCPUコア数を減らすよりもCPU“8コア”を維持しメモリを減らす方がコストが下がる。このため、リソース割当量を減少する指示は、CPU“8コア”及びメモリ“8GB”をCPU“8コア”及びメモリ“4GB”に変更する指示である。これにより、リソース割当量を適切に減らすことが期待できる。
ステップ507の後、上述したステップ508を経て、学習制御処理が終了する。また、テップ506の精度判定の結果が偽の場合も、上述のステップ508を経て、学習制御処理が終了する。
学習制御処理において、学習制御部11は、ステップ505の時間判定で比較される少なくとも一方の時間を、今回の学習に使用される訓練データの量と当該過去の学習に使用された訓練データの量との差分に基づき調整してよい。例えば、学習制御部11は、当該モデルの過去の学習に要した時間(例えば時間405の統計値)、及び/又は、ステップ504で推定された時間を、今回の学習に使用される訓練データの量(ステップ302で記録され学習制御部11により取得されたデータ数)と当該過去の学習に使用された訓練データの量(例えばデータ数406の統計値)との差分に基づき調整してよい。ステップ505の時間判定は、調整された推定時間が過去の学習時間よりも長いか否か、ステップ504で推定された時間が過去の調整後の学習時間よりも長いか否か、又は、調整された推定時間が過去の調整後の学習時間よりも長いか否かの判定でよい。学習時間の長さは、データ数(訓練データの量)の大きさに依存するが、時間判定で比較される少なくとも一方の学習時間が、今回のデータ数と過去のデータ数との差を基に調整されるので、学習遅延が生じているかどうかの判定の正確性の向上が期待できる。
図9は、モデル情報画面の一例を示す図である。
情報出力部13が、モデル情報(モデルの学習状態に関する情報でありステップ505の時間判定の結果に基づく情報を含んだ情報)を表示する(例えば、ユーザ装置3に、モデル情報の表示用情報を送信する)。モデル情報画面700は、モデル情報の表示画面であり、モデル情報は、モデルの学習状態を表す。このモデル情報画面700により、ユーザは、モデルの学習状態を把握することができる。
具体的には、例えば、情報出力部13が、学習リソーステーブル410と学習履歴テーブル400から取得した情報に基づき、モデル情報を生成し表示する。モデル情報は、一つ以上のモデル(例えばユーザから指定された一つ以上のモデル)の各々について、モデル名701、学習状態702、終了予定日時703、実行状態704、及び実行制御705といった情報を有する。
モデル名701は、モデル名を表す。
学習状態702は、モデルの学習状態(例えば、学習中、学習完了)を表す。学習履歴テーブル400にモデル名が記録されており学習リソーステーブル410にモデル名が記録されていないモデルの学習状態702は、“学習完了”であり、学習履歴テーブル400にモデル名が記録されているか否かに関わらず学習リソーステーブル410にモデル名が記録されているモデルの学習状態702は“学習中”である。
終了予定日時703は、学習リソーステーブル410に基づいて推定された学習時間(ステップ504で推定された学習時間)の終了日時を表す。
実行状態704は、学習中のモデルの学習時間が遅延しているかどうかを表す。具体的には、ステップ505の時間判定の結果が真の場合に実行状態704は“遅延”であり、ステップ505の時間判定の結果が偽の場合に実行状態704は“順調”で良い。
実行制御705は、学習制御部11によってリソース割当量が増減された場合の情報である。例えば、ステップ510が行われその内容がCPU割当量増加の場合に実行制御705は“CPUスケールアップ”で良く、ステップ507が行われその内容がCPU割当量減少の場合に実行制御705は“CPUスケールダウン”で良い。
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記憶部、又は、ICカード、SDカード、DVD、BD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えても良い。
1:モデル学習システム 10:学習監視部 11:学習制御部
Claims (10)
- 機械学習モデルの学習の都度に、複数種類の計算リソースの各々について、当該機械学習モデルの学習に割り当てられている計算リソース量であるリソース割当量を取得し、且つ、前記複数種類の計算リソースの各々について、当該機械学習モデルの学習に使用される計算リソース量であるリソース使用量を監視する学習監視部と、
前記機械学習モデルの今回の学習に要する時間を推定し、当該推定された時間が、当該機械学習モデルの過去の学習に要した時間よりも長いか否かの判定である時間判定を行い、当該時間判定の結果が真の場合、前記複数種類の計算リソースの少なくとも一つについて前記今回の学習におけるリソース割当量を増加させる学習制御部と
を備えるモデル学習システム。 - 前記学習監視部は、前記機械学習モデルの学習の都度に、当該機械学習モデルのモデル精度を監視し、
前記学習制御部は、
前記今回の学習においてモデル精度が収束しているか否かの判定である収束判定を行い、
当該収束判定の結果が真の場合、前記今回の学習を終了し、
当該収束判定の結果が偽の場合、前記今回の学習に要する時間を推定する、
請求項1に記載のモデル学習システム。 - 前記学習監視部は、前記機械学習モデルの学習の都度に、
当該学習について初めてのエポックの開始を当該学習の開始と判定し、
当該学習の開始後、当該学習について規定されたエポック数分のエポックが完了していないことを前記機械学習モデルの学習中と判定し、
当該学習の開始後、当該学習について規定されたエポック数分のエポックが完了したことを前記機械学習モデルの学習の終了と判定し、
前記学習制御部は、前記今回の学習において、エポック毎のモデル精度を基に前記収束判定を行い、最新のエポック数と最新のエポックまでに要した時間とを基に前記今回の学習に要する時間を推定する、
請求項2に記載のモデル学習システム。 - 前記学習制御部は、
前記時間判定の結果が偽の場合、前記今回の学習におけるモデル精度が当該機械学習モデルの過去の学習におけるモデル精度よりも高いか否かの判定である精度判定を行い、
当該精度判定の結果が真の場合、前記複数種類の計算リソースのコストを基に、リソース割当量の減少対象の計算リソース種類を決定し、当該決定された計算リソース種類の計算リソースについて前記今回の学習におけるリソース割当量を減少させる、
請求項1に記載のモデル学習システム。 - 前記精度判定の結果が真の場合、前記学習制御部は、前記複数種類の計算リソースのうちいずれの種類の計算リソースのリソース割当量を維持することが最もコストが減るかを特定し、特定された種類以外の種類の計算リソースのリソース割当量を減少させる、
請求項4に記載のモデル学習システム。 - 前記学習制御部は、前記時間判定で比較される少なくとも一方の時間を、前記今回の学習に使用される訓練データの量と当該過去の学習に使用された訓練データの量との差分に基づき調整する、
請求項1に記載のモデル学習システム。 - 前記機械学習モデルの学習状態に関する情報であり前記時間判定の結果に基づく情報を含んだ情報であるモデル情報を表示する情報出力部
を更に備える請求項1に記載のモデル学習システム。 - 前記学習制御部は、前記時間判定の結果が真の場合、前記今回の学習での前記複数種類の計算リソースのリソース使用量を基にボトルネックの計算リソース種類を特定し、当該特定された計算リソース種類の計算リソースについて前記今回の学習におけるリソース割当量を増加させる、
請求項1に記載のモデル学習システム。 - 機械学習モデルの学習の都度に、複数種類の計算リソースの各々について、コンピュータが、当該機械学習モデルの学習に割り当てられている計算リソース量であるリソース割当量を取得し、且つ、前記複数種類の計算リソースの各々について、当該機械学習モデルの学習に使用される計算リソース量であるリソース使用量を監視し、
コンピュータが、前記機械学習モデルの今回の学習に要する時間を推定し、
コンピュータが、当該推定された時間が、当該機械学習モデルの過去の学習に要した時間よりも長いか否かの判定である時間判定を行い、
当該時間判定の結果が真の場合、コンピュータが、前記複数種類の計算リソースの少なくとも一つについて前記今回の学習におけるリソース割当量を増加させる、
モデル学習方法。 - 機械学習モデルの学習の都度に、複数種類の計算リソースの各々について、当該機械学習モデルの学習に割り当てられている計算リソース量であるリソース割当量を取得し、且つ、前記複数種類の計算リソースの各々について、当該機械学習モデルの学習に使用される計算リソース量であるリソース使用量を監視し、
前記機械学習モデルの今回の学習に要する時間を推定し、
当該推定された時間が、当該機械学習モデルの過去の学習に要した時間よりも長いか否かの判定である時間判定を行い、
当該時間判定の結果が真の場合、前記複数種類の計算リソースの少なくとも一つについて前記今回の学習におけるリソース割当量を増加させる、
ことをコンピュータに実行させるコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022098271A JP2023184233A (ja) | 2022-06-17 | 2022-06-17 | モデル学習システム及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022098271A JP2023184233A (ja) | 2022-06-17 | 2022-06-17 | モデル学習システム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023184233A true JP2023184233A (ja) | 2023-12-28 |
Family
ID=89333748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022098271A Pending JP2023184233A (ja) | 2022-06-17 | 2022-06-17 | モデル学習システム及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023184233A (ja) |
-
2022
- 2022-06-17 JP JP2022098271A patent/JP2023184233A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108089921B (zh) | 用于云端大数据运算架构的服务器及其运算资源最佳化方法 | |
EP3577561B1 (en) | Resource management for virtual machines in cloud computing systems | |
JP6457447B2 (ja) | データセンターのネットワークトラフィックスケジューリング方法及び装置 | |
EP3577558B1 (en) | Resource management for virtual machines in cloud computing systems | |
JP5218390B2 (ja) | 自律制御サーバ、仮想サーバの制御方法及びプログラム | |
US11256595B2 (en) | Predictive storage management system | |
US9760392B1 (en) | Adaptive throttling in hybrid storage environments | |
JP6640242B2 (ja) | ハイブリッドストレージシステム内のサービス品質を改善するためのシステム及び方法 | |
US20120221730A1 (en) | Resource control system and resource control method | |
US11489735B2 (en) | Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium | |
US10394606B2 (en) | Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy | |
CN111124254B (zh) | 调度存储空间回收请求的方法、电子设备和程序产品 | |
JP6730522B2 (ja) | ストレージシステム内に入力/出力帯域を割り当てるシステムと方法 | |
CN112948279A (zh) | 管理存储系统中的访问请求的方法、设备和程序产品 | |
CN110347546B (zh) | 监控任务动态调整方法、装置、介质及电子设备 | |
US10587527B1 (en) | Systems and methods for apportioning bandwidth in storage systems | |
CN114442910B (zh) | 管理存储系统的方法、电子设备和计算机可读介质 | |
US11995460B2 (en) | Resource determination device, method, and program | |
US11586475B2 (en) | Application aware resource allocation for deep learning job scheduling | |
JP2023184233A (ja) | モデル学習システム及び方法 | |
JP6848278B2 (ja) | ストレージ管理装置、性能調整方法及び性能調整プログラム | |
JP6627475B2 (ja) | 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法 | |
US11144427B2 (en) | Storage system performance models based on empirical component utilization | |
US10481801B1 (en) | Optimizing storage quality of service (SQOS) by dynamically determining and managing optimal queue depth and system capacity | |
JP4999932B2 (ja) | 仮想計算機システム及び仮想計算機重み付け設定処理方法及び仮想計算機重み付け設定処理プログラム |