(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】情報資源割当支援装置、情報資源割当支援方法、及び、情報資源割当支援プログラム
(51)【国際特許分類】
G06Q 50/10 20120101AFI20240925BHJP
【FI】
G06Q50/10
(21)【出願番号】P 2023509130
(86)(22)【出願日】2022-03-18
(86)【国際出願番号】 JP2022012662
(87)【国際公開番号】W WO2022202676
(87)【国際公開日】2022-09-29
【審査請求日】2023-08-31
(31)【優先権主張番号】P 2021051807
(32)【優先日】2021-03-25
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】赤池 雄一
【審査官】牧 裕子
(56)【参考文献】
【文献】特開2020-144510(JP,A)
【文献】特表2017-521765(JP,A)
【文献】特開2002-183416(JP,A)
【文献】特開2007-140906(JP,A)
【文献】特開2001-319153(JP,A)
【文献】米国特許出願公開第2014/0279320(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
(57)【特許請求の範囲】
【請求項1】
ユーザが
実行を所望する、第一のAI(Artificial Intelligence)処理に要する実行時間と前記第一のAI処理に使用されるハードウェア資源の使用料金とに関する許容条件を取得する取得手段と、
過去に実行された第二のAI処理に要
した実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係に関する
前記ユーザの評価を用いて生成された算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出する算出手段と、
前記算出手段により算出され
た実行時間及び使用料金を出力する出力手段と、
を備える情報資源割当支援装置。
【請求項2】
前記取得手段は、チャットボットを介して、前記ユーザにより入力される前記許容条件を取得する、
請求項1に記載の情報資源割当支援装置。
【請求項3】
前記第二のAI処理に要
した実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係
と当該関係に関する前記ユーザの評価を学習することで、前記算出基準を生成する生成手段をさらに備える、
請求項1または請求項2に記載の情報資源割当支援装置。
【請求項4】
前記取得手段は、前記出力手段により出力される前記第一のAI処理に要する実行時間及び前記第一のAI処理に使用されるハードウェア資源の使用料金に対する前記ユーザによる評価を取
得する
請求項3に記載の情報資源割当支援装置。
【請求項5】
前記取得手段は、前記第一のAI処理が使用する入力データの大きさを含む前記許容条件を取得する、
請求項1乃至請求項4のいずれか一項に記載の情報資源割当支援装置。
【請求項6】
前記取得手段は、前記第一のAI処理に関するプログラムコードのデータサイズをさらに取得し、
前記算出手段は、前記データサイズをさらに用いて、前記算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出する
請求項1乃至請求項5のいずれか一項に記載の情報資源割当支援装置。
【請求項7】
情報処理装置によって、
ユーザが
実行を所望する、第一のAI処理に要する実行時間と前記第一のAI処理に使用されるハードウェア資源の使用料金とに関する許容条件を取得し、
過去に実行された第二のAI処理に要
した実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係に関する
前記ユーザの評価を用いて生成された算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出し、
算出した実行時間及び使用料金を出力する、
情報資源割当支援方法。
【請求項8】
ユーザが
実行を所望する、第一のAI処理に要する実行時間と前記第一のAI処理に使用されるハードウェア資源の使用料金とに関する許容条件を取得する取得処理と、
過去に実行された第二のAI処理に要
した実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係に関する
前記ユーザの評価を用いて生成された算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出する算出処理と、
前記算出処理により算出され
た実行時間及び使用料金を出力する出力処理と、
をコンピュータに実行させるための情報資源割当支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報資源割当支援装置、情報資源割当支援方法、及び、情報資源割当支援プログラムに関する。
【背景技術】
【0002】
コンピュータシステムにおいては、実行する情報処理に対する性能等に関する要件に応じて、その情報処理を実行する情報処理資源(リソース)を適切に割り当てることが重要である。例えば、性能等の要件に対して過大な情報処理資源を割り当てた場合、一部の情報処理資源が有効活用されないとともに、情報処理資源の使用料金が必要以上に高くなるおそれがある。あるいは例えば、性能等の要件に対して過少な情報処理資源を割り当てた場合、情報処理の実行時間が許容できないほど長くなったり、資源不足により情報処理が異常終了したりするおそれがある。したがって、情報処理に対する要件に応じて、情報処理資源の割り当てを適切に行う技術が期待されている。
【0003】
このような技術に関連する技術として、特許文献1には、複数種のハードウェアへのネットワーク機能の配置を行う配置装置が開示されている。この装置は、機能の配置先の候補である複数種のハードウェアのそれぞれのリソース消費量と性能を表す性能情報とを含む統計情報を記憶する。この装置は、複数種のハードウェアに対応したハードウェア記述言語である高位言語による機能の記述内容と、要求される性能を表す性能要件との入力を受け付ける。この装置は、ハードウェアごとに、記述内容と所定のアルゴリズムとを用いて、予測される性能である予測性能と、予測されるリソース消費量である予測リソース消費量とを算出する。そしてこの装置は、算出された予測性能および性能情報が性能要件を満たし、かつ予測リソース消費量とリソース消費量との合計値がリソース容量以下であるハードウェアを、配置先として選択する。
【0004】
また、特許文献2には、サービスレイヤの要望に適したリソースの組合せおよびリソースのパラメータを決定するリソース決定装置が開示されている。この装置は、通信サービスについて、自然言語で表現されたサービスレイヤの要望を解析する。この装置は、解析したサービスレイヤの要望に適したリソースの組合せを決定する。そしてこの装置は、決定したリソースの組合せに含まれるリソースのパラメータを決定する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2019-212069号公報
【文献】特開2019-087105号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、クラウドAI(Artificial Intelligence)では、所定の料金を支払うことでクラウド上のリソースを使用し、所望のAI処理を実行することができる。しかしながら、クラウド上のリソースを使用する場合、ユーザの希望に沿った使用料金と、ユーザの許容するAI処理の実行時間とのバランスを取ることは難しい。
【0007】
本発明の主たる目的は、上述した課題を解決する情報資源割当支援装置等を提供することにある。
【課題を解決するための手段】
【0008】
ユーザが所望する、第一のAI処理の実行に要する実行時間と前記第一のAI処理に使用されるハードウェア資源の使用料金とに関する許容条件を取得する取得手段と、第二のAI処理に要する実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係に関する算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出する算出手段と、前記算出手段により算出される実行時間及び使用料金を出力する出力手段と、を備える。
【0009】
上記目的を達成する他の見地において、本発明の一態様に係る情報資源割当支援方法は、ユーザが所望する、第一のAI処理の実行に要する実行時間と前記第一のAI処理に使用されるハードウェア資源の使用料金とに関する許容条件を取得し、第二のAI処理に要する実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係に関する算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出し、算出した実行時間及び使用料金を出力する。
【0010】
また、上記目的を達成する更なる見地において、本発明の一態様に係る情報資源割当支援プログラムは、ユーザが所望する、第一のAI処理の実行に要する実行時間と前記第一のAI処理に使用されるハードウェア資源の使用料金とに関する許容条件を取得する取得処理と、第二のAI処理に要する実行時間及び前記第二のAI処理に使用したハードウェア資源の使用料金の関係に関する算出基準に基づいて、前記許容条件を満たすような前記第一のAI処理に要する実行時間と、前記第一のAI処理に使用されるハードウェア資源の使用料金とを算出する算出処理と、前記算出処理により算出される実行時間及び使用料金を出力する出力処理と、をコンピュータに実行させる。
【0011】
更に、本発明は、係る情報資源割当支援プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【0012】
本発明によれば、ユーザの許容する利用料金及びAI処理の実行時間で所望のAI処理を実行可能なリソースを、ユーザに提供することができる。
【図面の簡単な説明】
【0013】
【
図1】本発明の第1の実施形態に係る情報資源割当支援装置10の構成を示すブロック図である。
【
図2】本発明の第1の実施形態に係る取得部11がチャットボットを介して許容条件情報141を取得する際の、チャットボットによる許容条件情報141の入力指示と、当該入力指示に応じてユーザが入力した許容条件情報141とを例示する図である。
【
図3】本発明の第1の実施形態に係る実行履歴情報143を例示する図である。
【
図4】本発明の第1の実施形態に係る情報資源割当支援装置10の全体動作を示すフローチャートである。
【
図5】本発明の第1の実施形態に係る情報資源割当支援装置10が、スクリプトの実行時間及びハードウェア資源15の使用料金の評価実績に対する回帰分析を行いながら生成あるいは更新した算出基準142に基づいて、実行時間及び使用料金を算出する詳細動作を示すフローチャートである。
【
図6】本発明の第2の実施形態に係る情報資源割当支援装置30の構成を示すブロック図である。
【
図7】本発明の各実施形態に係る情報資源割当支援装置を実現可能な情報処理装置900の構成を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0015】
<第1の実施形態>
図1は、本発明の第1の実施の形態に係る情報資源割当支援装置10の構成を示すブロック図である。情報資源割当支援装置10は、ハードウェア資源15を用いてスクリプト(第1のAI処理の一例)を実行するに当たって、スクリプトの実行時間及びハードウェア資源15の使用料金に関してユーザの許容条件に基づくバランスのとれた値を算出する装置である。尚、本実施形態に係るスクリプトは、例えば、分析対象とする事象に対して機械学習により分析を行うAI処理である。尚、AI処理は、学習済みモデルを生成するための「学習処理」と、当該学習済みモデルを用いて実行される「分析処理」とに大別される。
【0016】
ハードウェア資源15は、CPU(Central Processing Unit)151、及び、メモリ152を備える。ハードウェア資源15は、複数のCPU151を備えてもよく、CPU151は、複数のコアを有するプロセッサであってもよい。メモリ152は、CPU151が実行するスクリプトを表すプログラム、及び、CPU151が当該スクリプトを実行する際に使用するデータを記憶する主記憶である。ハードウェア資源15は、CPU151が当該スクリプトを実行する際の拡張記憶として使用される、ハードディスク等の記憶デバイスを含んでもよい。
【0017】
ハードウェア資源15は、
図1に例示する通り、情報資源割当支援装置10に備えられてもよいし、情報資源割当支援装置10とは異なるサーバ等の装置であって、通信ネットワークによって情報資源割当支援装置10と通信可能に接続された装置に備えられてもよい。
【0018】
情報資源割当支援装置10は、端末装置20と通信可能に接続されている。端末装置20は、表示画面200を備える、例えばパーソナルコンピュータ、タブレット、スマートフォン等の情報処理装置である。端末装置20は、ユーザが情報資源割当支援装置10に対して情報を入力する際に、ユーザによる入力操作を受け付ける。端末装置20は、また、情報資源割当支援装置10から出力された情報を、表示画面200に表示する。
【0019】
情報資源割当支援装置10は、取得部11、算出部12、出力部13、記憶部14、及び、生成部16を備える。取得部11、算出部12、出力部13、生成部16は、順に、取得手段、算出手段、出力手段、生成手段の一例である。
【0020】
記憶部14は、例えば
図7を参照して後述するRAM(Random Access Memory)903、あるいはハードディスク904のような記憶デバイスである。記憶部14は、後述する許容条件情報141、算出基準142、及び、実行履歴情報143を記憶する。
【0021】
取得部11は、AI処理の実行に要する実行時間と、当該AI処理に使用されるハードウェア資源の使用料金と、に関する許容条件情報141を取得する。尚、許容条件情報141は、上記以外にも、ハードウェア資源15に実行させるスクリプトの名称(識別情報)と、当該スクリプトが使用する入力データの大きさと、を含んでもよい。また、許容条件情報141は、AI処理の実行に関する情報であれば、上記に限定されない。
【0022】
図2は、本実施形態に係る取得部11がチャットボットを介して許容条件情報141を取得する際の、チャットボットによる許容条件情報141の入力指示と、当該入力指示に応じてユーザが入力した許容条件情報141とを例示する図である。取得部11は、
図2に例示する許容条件情報141の入力指示を、端末装置20の表示画面200に表示し、当該入力指示に応じてユーザにより入力された許容条件情報141を取得する。尚、情報資源割当支援装置10は、
図2に例示する画面を表示画面200に表示する前に、ユーザID(Identification)を用いたログイン処理(認証処理)を行うこととする。
【0023】
図2の例では、取得部11は、「実行するスクリプトを入力してください。」という、スクリプトの名称の入力指示を表示画面200に表示し、当該入力指示に応じてユーザにより入力された「/home/hoge/script1.py」というスクリプトの名称を取得する。
【0024】
次に取得部11は、「サンプル数(データ行数)を入力してください。」という、スクリプトが使用する入力データのサンプル数の大きさの入力指示を表示画面200に表示し、当該入力指示に応じてユーザにより入力された「300000」というサンプル数の値を取得する。
【0025】
次に取得部11は、「属性数(データ列数)を入力してください。」という、スクリプトが使用する入力データの属性数の大きさの入力指示を表示画面200に表示し、当該入力指示に応じてユーザにより入力された「50」という属性数の値を取得する。
【0026】
次に取得部11は、「許容可能実行時間(秒)を入力してください。」という、スクリプトの許容可能実行時間(ユーザが許容するスクリプトの実行時間の最大値)の入力指示を表示画面200に表示し、当該入力指示に応じてユーザにより入力された「2000」という許容可能実行時間(秒)の値を取得する。
【0027】
次に取得部11は、「サーバ使用料金は1000円の見込みです。このまま実行する場合はY、許容可能実行時間を変更する場合はNを入力してください。」という、サーバ(ハードウェア資源15)の使用料金についてユーザに確認を求める指示を表示画面200に表示する。但し、サーバ使用料金は、後述する算出部12によって算出される、当該スクリプトの実行に使用されるハードウェア資源15の量に基づく金額である。
図2の例では、許容可能実行時間を変更することを示す「N」がユーザによって入力されている。これは、ユーザが1000円というサーバ使用料金では高いと判断したことによる。
【0028】
次に取得部11は、ユーザにより「N」が入力されたことに応じて、「許容可能実行時間(秒)を入力してください。」という、ユーザによる許容可能実行時間を変更する入力を受け付けることを表示画面200に表示する。
図2の例では、「3000」という新たな許容可能実行時間(秒)の値がユーザによって入力されている。
【0029】
次に取得部11は、「サーバ使用料金は700円の見込みです。このまま実行する場合はY、許容可能実行時間を変更する場合はNを入力してください。」という、サーバの使用料金についてユーザに再度確認を求める指示を表示画面200に表示する。但し、700円というサーバ使用料金は、3000秒という新たな許容可能実行時間に基づいて算出部12によって算出された当該スクリプトの実行に使用されるハードウェア資源15の量に基づく金額である。
図2の例では、許容可能実行時間を変更せずにこのままスクリプトを実行することを示す「Y」がユーザによって入力されている。これは、ユーザが700円というサーバ使用料金が妥当であると判断したことによる。
【0030】
この後、取得部11は、「実行環境を準備中です。しばらくお待ちください。」、「実行環境が整いました。こちらのボタンからアクセスしてください。」を表示画面200に表示し、「実行環境にアクセス」というユーザが画面上で押下可能なボタンを表示する。当該ボタンがユーザにより押下されたのち、ハードウェア資源15は、「/home/hoge/script1.py」というスクリプトの実行を開始する。
【0031】
取得部11は、上述したチャットボットを介したUI(User Interface)において、スクリプトの名称に応じて、スクリプトが使用する入力データの大きさ等の実行要件に関するユーザによる入力形式を変更する。
【0032】
尚、
図2に例示するチャットボットによる許容条件情報141の入力指示と、当該入力指示に応じてユーザが入力した許容条件情報141は一例であり、当該入力指示及びユーザが入力した許容条件情報141の態様は、
図2の例とは異なってもよい。
【0033】
図2の例では、使用料金をサーバ側からユーザに提示される使用料金の金額を承諾するか否かを選択可能であるが、ユーザが希望する使用料金の金額を入力するようにしてもよい。例えば、取得部11は、ユーザの希望するサーバの使用料金としてユーザから「1000円から1500円」などの金額(許容使用料金)を取得してもよい。
【0034】
また、取得部11は、上述したチャットボットのようなUIとは別の方法を用いて、許容条件情報141を取得してもよい。取得部11は、例えば、API(Application Programming Interface)を介して入力された許容条件情報141を取得してもよい。
【0035】
取得部11は、上述の通りに取得した許容条件情報141を、記憶部14に格納する。
【0036】
算出部12は、記憶部14に記憶されている許容条件情報141と、算出基準142とに基づいて、スクリプトの実行時間及びハードウェア資源15の使用料金を算出する。
【0037】
算出基準142は、実行するスクリプトに関する許容条件情報141から、当該スクリプトの実行時間と使用するハードウェア資源15の使用料金とを、性能(実行時間)とコスト(使用料金)とのバランスの観点で、ユーザの許容条件(実行要件)をふまえて好適に算出するための基準である。算出基準142は、ユーザにより与えられた基準であるとともに、生成部16によって後述する通り実行履歴情報143を用いて生成あるいは更新される。但し、実行履歴情報143は、過去に実行されたスクリプト(第2のAI処理の一例)に関する実行要件と、実行時間及び使用料金と、当該スクリプトを実行したハードウェア資源15の量とを表し、情報資源割当支援装置10によって生成あるいは更新される情報である。
【0038】
図3は、本実施形態に係る実行履歴情報143を例示する図である。実行履歴情報143は、ハードウェア資源15を使用するユーザ毎に管理された情報であってもよい。
図3に例示する実行履歴情報143において、個々に番号が付与されている1つの行は、ある日時に実行されたスクリプトに関する実行履歴を表す。
図3に例示する実行履歴情報143では、番号1乃至6の行は、「script1.py」というスクリプトに関する実行履歴を表し、番号7乃至10の行は、「script2.py」というスクリプトに関する実行履歴を表している。
【0039】
実行履歴情報143は、実行されたスクリプトが使用した入力データの大きさとして、データサイズ(MB:メガバイト)、データ属性数(データ列数)、データサンプル数(データ行数)を含んでいる。データ属性数及びデータサンプル数は、
図2に例示する通り、スクリプトが実行される際にユーザによって入力される値であり、データサイズは、データ属性数及びデータサンプル数から決定する値である。
【0040】
実行履歴情報143は、また、
図3に例示する通り、スクリプトの実際の実行時間(秒)を含んでいる。
【0041】
実行履歴情報143は、また、スクリプトを実行したハードウェア資源15の量として、CPU151に関する使用コア数、及び、メモリ152に関する最大使用メモリ(MB)及び確保メモリ(MB)を含んでいる。尚、確保メモリは、スクリプトが使用可能なデータの格納領域としてメモリ152に確保された領域の大きさを表し、最大使用メモリは、その確保された領域のうちでスクリプトによって実際に使用された領域の大きさを表す。
【0042】
実行履歴情報143は、また、算出部12によって算出された、スクリプトを実行したハードウェア資源15の使用料金(円)を含んでいる。
【0043】
実行履歴情報143は、また、スクリプトの実際の実行時間とハードウェア資源15の使用料金とに対するユーザによる評価を含んでいる。例えば、
図3に例示する実行履歴情報143における番号1の実行履歴は、「実行時間はもっと長くなってもよいので使用料金をもっと安くしたい」というユーザによる評価を含んでいる。このことは、番号1の実行履歴が示すスクリプトの実行において、ユーザが本来望んでいた実行要件に対して過大な量のハードウェア資源15が使用されたことを意味している。
【0044】
あるいは例えば、
図3に例示する実行履歴情報143における番号2の実行履歴は、「使用料金はもっと高くなってもよいので実行時間をもっと短くしたい」というユーザによる評価を含んでいる。このことは、番号2の実行履歴が示すスクリプトの実行において、ユーザが本来望んでいた実行要件に対して過少な量のハードウェア資源15が使用されたことを意味している。
【0045】
あるいは例えば、
図3に例示する実行履歴情報143における番号4の実行履歴は、「適切である」というユーザによる評価を含んでいる。このことは、番号4の実行履歴が示すスクリプトの実行において、ユーザが本来望んでいた実行要件に合致する適切な量のハードウェア資源15が使用されたことを意味している。
【0046】
尚、
図3に例示する実行履歴情報143は一例であり、実行履歴情報143は、
図3に例示する項目とは異なる項目を含んでもよい。
【0047】
算出部12は、スクリプトの実行時間及びハードウェア資源15の使用料金を算出するにあたり、実行履歴情報143を参照する。
【0048】
算出部12は、まず、実行履歴情報143において、実行対象のスクリプトの実行回数が所定の閾値以上であるか否かを判定する。即ち算出部12は、実行対象のスクリプトに関して、実行履歴が十分に蓄積されているか否かを判定する。算出部12は、当該スクリプトの実行回数が所定の閾値未満である(即ち、実行履歴がまだ十分に蓄積されていない)場合、ユーザにより事前に与えられている算出式を算出基準142として使用する。算出部12は、この算出式と許容条件情報141とに基づいて、当該スクリプトの実行時間及びハードウェア資源15の使用料金を算出する。当該算出式は、例えば、許容条件情報141に含まれる、スクリプトの名称(識別情報)と、当該スクリプトが使用する入力データの大きさと、当該スクリプトの許容可能実行時間とを変数とする算出式である。
【0049】
算出部12は、上述した実行履歴情報143における判定において、実行対象のスクリプトの実行回数が所定の閾値以上である(即ち、実行履歴が十分に蓄積されている)場合、算出基準142に基づいて、当該スクリプトの実行時間及びハードウェア資源15の使用料金を算出する。この際、生成部16は、実行履歴情報143が示すユーザの評価に対する回帰分析を行いながら算出基準142を生成あるいは更新する。
【0050】
この場合、算出部12は、使用するハードウェア資源15の量を変数Xとし、変数Xの値を、所定の初期値に設定する。算出部12は、例えばCPU151のコア数を変数Xとし、その初期値として「1」を設定する。
【0051】
算出部12は、実行対象のスクリプトに関する実行履歴の中に、入力データの大きさが同等であり、かつ、使用するハードウェア資源15の量がX(即ち初期値である「1」)と同等であるものを検索する。例えば、実行履歴情報143が
図3に例示する通りであり、許容条件情報141において、実行対象のスクリプトが「script1.py」であり、データ属性数が「30」であり、データサンプル数が「12000」であるとする。この場合、実行履歴情報143における番号2の実行履歴が上述した検索の条件にほぼ合致する。そして、当該番号2の実行履歴におけるユーザによる評価は「使用料金はもっと高くなってもよいので実行時間をもっと短くしたい」であるので、生成部16は、算出基準142を更新し、例えば、変数Xを現在の値の2倍である「2」に設定する。
【0052】
算出部12は、続いて、実行対象のスクリプトに関する実行履歴の中に、入力データの大きさが同等であり、かつ、使用するハードウェア資源15の量がX(即ち「2」)と同等であるものを検索する。この場合、実行履歴情報143における番号3の実行履歴が上述した検索の条件にほぼ合致する。そして、当該番号3の実行履歴におけるユーザによる評価は「使用料金はもっと高くなってもよいので実行時間をもっと短くしたい」であるので、生成部16は、算出基準142を更新し、例えば、変数Xを現在の値の2倍である「4」に設定する。
【0053】
算出部12は、さらに続いて、実行対象のスクリプトに関する実行履歴の中に、入力データの大きさが同等であり、かつ、使用するハードウェア資源15の量がX(即ち「4」)と同等であるものを検索する。この場合、実行履歴情報143における番号4の実行履歴が上述した検索の条件にほぼ合致する。そして、当該番号4の実行履歴におけるユーザによる評価は「適切である」であるので、生成部16は、求める変数X(即ちCPU151のコア数)の値を「4」に決定する。
【0054】
算出部12及び生成部16は、また、上述した手順とは異なる手順により、許容条件情報141と、算出基準142とに基づいて、スクリプトの実行時間及びハードウェア資源15の使用料金を算出してもよい。
【0055】
例えば、
図3に例示する実行履歴情報143における番号1の実行履歴が示すユーザの評価によれば、スクリプトの実行要件に対して過大なハードウェア資源15がスクリプトの実行に使用されている。即ち、番号1の実行履歴における許容可能実行時間(不図示)は実際の実行時間である130秒よりも長い値である。生成部16は、「script1.py」というスクリプトの実行に関して、入力データの大きさと許容可能実行時間とに関する実行要件が実行履歴情報143の番号1に示す通りである場合、当該スクリプトの実行時間がもっと長くなり、ハードウェア資源15の使用料金がもっと安くなるように、算出基準142を生成あるいは更新する。
【0056】
また、
図3に例示する実行履歴情報143における番号2の実行履歴が示すユーザの評価によれば、スクリプトの実行要件に対して過少なハードウェア資源15がスクリプトの実行に使用されている。即ち、番号2の実行履歴における許容可能実行時間(不図示)は実際の実行時間である1350秒よりも短い値である。生成部16は、「script1.py」というスクリプトの実行に関して、入力データの大きさと許容可能実行時間とに関する実行要件が実行履歴情報143の番号2に示す通りである場合、当該スクリプトの実行時間がもっと短くなり、ハードウェア資源15の使用料金がもっと高くなるように、算出基準142を生成あるいは更新する。
【0057】
また、
図3に例示する実行履歴情報143における番号4の実行履歴が示すユーザの評価によれば、スクリプトの実行要件に合致する適切な量のハードウェア資源15がスクリプトの実行に使用されている。即ち、番号2の実行履歴における許容可能実行時間(不図示)は実際の実行時間である658秒とほぼ同等の値である。生成部16は、「script1.py」というスクリプトの実行に関して、入力データの大きさと許容可能実行時間とに関する実行要件が実行履歴情報143の番号4に示す通りである場合、当該スクリプトの実行時間及びハードウェア資源15の使用料金が、番号4に示す値となるように算出基準142を生成あるいは更新する。
【0058】
生成部16は、過去に取得した許容条件情報141と、その許容条件情報141に対応する実行履歴情報143との関係を学習することで、算出基準142を生成する。
【0059】
例えば、生成部16は、実行履歴情報143を学習データとする学習を行うことによって、算出基準142を表すモデルを生成あるいは更新する。この場合、生成部16は、例えば、実行対象のスクリプトごとに、入力データの大きさ及び許容可能実行時間(不図示)と、当該スクリプトの実行時間及びハードウェア資源15の使用料金との関係を、ユーザの評価をラベルとして用いた学習を行えばよい。
【0060】
出力部13は、算出部12により算出される使用料金及び実行時間を出力する。
【0061】
例えば、出力部13は、算出部12により算出される使用料金及び実行時間を端末装置20に出力する。
【0062】
また、例えば、出力部13は、ユーザから了承を得たら、許容条件情報141と算出基準142とに基づいて上述の通りに算出されたスクリプトの実行時間及びハードウェア資源15の使用料金を、情報資源割当支援装置10が備える割当部(図示せず)に出力してもよい。
【0063】
当該割当部は、算出部12から出力されたスクリプトの実行時間及びハードウェア資源15の使用料金に応じて、使用するハードウェア資源15の量を決定する。そして当該割当部は、決定した量のハードウェア資源15に、スクリプトの実行を割り当てる。
【0064】
尚、ハードウェア資源15は、CPU151及びメモリ152に関して構成が異なる、スクリプトを実行可能な状態にある複数の実行環境を含むようにしてもよい。構成が異なる複数の実行環境とは、例えば、CPU151における1つのコアとメモリ152における1GB(ギガバイト)の記憶領域とを含む実行環境、及び、CPU151における2つのコアとメモリ152における2GBの記憶領域とを含む実行環境等である。そして、この場合、情報資源割当支援装置10は、出力部13から出力されたスクリプトの実行時間及びハードウェア資源15の使用料金に基づいて、上述した複数の実行環境のうちのいずれかにスクリプトの実行を割り当てればよい。情報資源割当支援装置10は、割当部により決定されたハードウェア資源15の量に合致する構成の実行環境が存在しない場合、当該量に合致する実行環境を新たに立ち上げるようにハードウェア資源15を制御してもよい。
【0065】
情報資源割当支援装置10は、当該スクリプトの実行を開始するように、当該スクリプトの実行を割り当てたハードウェア資源15を制御する。情報資源割当支援装置10は、ハードウェア資源15によるスクリプトの実行が終了したのち、当該スクリプトの実行履歴を表す実行履歴情報143を生成あるいは更新する。
【0066】
情報資源割当支援装置10は、記憶部14からデータ(ファイル)を読み込むためのライブラリ関数を備えることとする。情報資源割当支援装置10は、当該ライブラリ関数によりデータを読み込んだ場合に、読み込んだデータの大きさ、データ属性数、データサンプル数等の情報を実行履歴情報143として記憶部14に格納する。情報資源割当支援装置10は、当該ライブラリ関数を読み出すことによって、スクリプトの実行開始日時、及び、実行終了日時と実行開始日時との差分から求められる実行時間を、実行履歴情報143として記憶部14に格納する。
【0067】
次に
図4及び
図5のフローチャートを参照して、本実施形態に係る情報資源割当支援装置10の動作(処理)について詳細に説明する。
【0068】
図4は、本実施形態に係る情報資源割当支援装置10の全体動作を示すフローチャートである。
【0069】
取得部11は、チャットボットを介して、実行するスクリプトに関する許容条件情報141を取得し、記憶部14に格納する(ステップS101)。算出部12は、記憶部14に記憶されている実行履歴情報143に含まれる実行対象のスクリプトに関する実行履歴を参照する(ステップS102)。算出部12は、当該スクリプトの実行回数が閾値以上であるか否かを判定する(ステップS103)。
【0070】
当該スクリプトの実行回数が閾値以上である場合(ステップS104でYes)、情報資源割当支援装置10は、
図5を参照して後述するステップS200の処理を行い、処理はステップS106へ進む。当該スクリプトの実行回数が閾値以上でない場合(ステップS104でNo)、算出部12は、事前に与えられている算出式を算出基準142として使用し、算出基準142と許容条件情報141とに基づいて、当該スクリプトの実行時間とハードウェア資源15の使用料金とを算出する(ステップS105)。出力部13は、算出された当該スクリプトの実行時間とハードウェア資源15の使用料金とを端末装置20に出力し、端末装置20において、使用料金及び実行時間がユーザによって了承されたのち、使用料金及び実行時間を、割当部に出力する(ステップS106)。
【0071】
割当部は、算出部12によって算出された実行時間及び使用料金に基づいて、ハードウェア資源15に含まれる、構成が異なる複数の実行環境の中から、当該スクリプトを実行させる好適な実行環境を選択する(ステップS107)。情報資源割当支援装置10は、当該スクリプトを実行するように、選択した実行環境を制御する(ステップS108)。情報資源割当支援装置10は、当該スクリプトの実行が完了した後、その実行履歴、及び、実行時間と使用料金に対するユーザによる評価を含む実行履歴情報143を生成あるいは更新し(ステップS109)、全体の処理は終了する。
【0072】
図5は、本実施形態に係る情報資源割当支援装置10が、スクリプトの実行時間及びハードウェア資源15の使用料金の評価実績に対する回帰分析を行いながら生成あるいは更新した算出基準142に基づいて、実行時間及び使用料金を算出する詳細動作を示すフローチャートである。但し、
図5に示すフローチャートは、
図4を参照して上述したステップS200の処理に相当する。
【0073】
算出部12は、変数Xの値を、使用するハードウェア資源15の量に関する所定の初期値に設定する(ステップS201)。算出部12は、実行対象のスクリプトに関する実行履歴の中に、入力データの大きさが同等であり、かつ、使用するハードウェア資源15の量がXと同等であるものを検索する(ステップS202)。
【0074】
条件を満たす未確認の実行履歴が存在しない場合(ステップS203でNo)、算出部12は、
図4を参照して上述したステップS105の処理を行い、ステップS200の処理は終了する。条件を満たす未確認の実行履歴が存在する場合(ステップS203でYes)、算出部12は、条件を満たす実行履歴におけるスクリプトの実行時間及びハードウェア資源15の使用料金に対する評価を確認する(ステップS204)。
【0075】
評価が「適切」である場合(ステップS205でYes)、算出部12は、使用するハードウェア資源15の量を、Xの値に決定し(ステップS207)、ステップS200の処理は終了する。評価が「適切」でない場合(ステップS205でNo)、算出部12は、評価が「実行時間は長くなってもよいので使用料金をもっと安くしたい」である場合は、Xの値を所定の基準により減少させ、評価が「使用料金は高くなってもよいので実行時間をもっと短くしたい」である場合、Xの値を所定の基準により増加させ(ステップS206)、処理はステップS202へ戻る。
【0076】
本実施形態に係る情報資源割当支援装置10は、ユーザの許容する利用料金及びAI処理の実行時間で所望のAI処理を実行可能なリソースを、ユーザに提供することができる。その理由は、情報資源割当支援装置10は、情報処理を実行させるハードウェア資源15に関して、ユーザの許容条件を満たすような実行時間及び使用料金を、算出基準142を用いて算出するからである。
【0077】
以下に、本実施形態に係る情報資源割当支援装置10によって実現される効果について、説明する。
【0078】
例えば、クラウドAIでは、所定の料金を支払うことで他社のデータセンター等のハードウェア資源を使用し、所望のAI処理を実行することができる。しかしながら、他社のハードウェア資源を使用する場合、ユーザの希望に沿った使用料金と、ユーザの許容するAI処理の実行時間とのバランスを取ることは難しい。
【0079】
本実施形態に係る情報資源割当支援装置10は、取得部11と算出部12と出力部13とを備え、例えば
図1乃至
図5を参照して上述した通り動作する。即ち、取得部11は、ユーザが所望する、第1のAI処理の実行に要する実行時間と当該第1のAI処理に使用されるハードウェア資源15の使用料金とに関する許容条件情報141を取得する。算出部12は、第2のAI処理に要する実行時間及び当該第2のAI処理に使用したハードウェア資源15の使用料金の関係に関する算出基準142に基づいて、許容条件を満たすような第1のAI処理に要する実行時間と、第1のAI処理に使用されるハードウェア資源15の使用料金とを算出する。そして、出力部13は、算出部12により算出される実行時間及び使用料金を出力する。
【0080】
即ち、本実施形態に係る情報資源割当支援装置10は、スクリプトを実行させるハードウェア資源15に関して、ユーザの許容条件を満たすような実行時間及び使用料金を算出基準142を用いて算出するので、ユーザの許容する利用料金及びAI処理の実行時間で所望のAI処理を実行可能なリソースを、ユーザに提供することができる。
【0081】
また、本実施形態に係る情報資源割当支援装置10は、スクリプトの実行に要した実行時間と、当該スクリプトの実行におけるハードウェア資源15の使用料金とを含む実行履歴情報143を取得する。そして情報資源割当支援装置10は、当該実行時間と当該使用料金とが適切であるか否かの評価実績を参照する。これにより、情報資源割当支援装置10は、スクリプトの実行に関して、バランスの取れた使用料金と実行時間とを算出することができる。
【0082】
また、本実施形態に係る取得部11は、実行するスクリプトに関するプログラムコードのデータサイズをさらに取得してもよい。そしてこの場合、算出部12は、当該データサイズをさらに用いて、算出基準142に基づいて、許容条件情報141が示す許容条件を満たすような当該スクリプトの実行に要する実行時間と、使用されるハードウェア資源15の使用料金とを算出してもよい。
【0083】
また、本実施形態に係る情報資源割当支援装置10は、チャットボットを介して、ユーザにより入力された許容条件情報141を取得する。そして、情報資源割当支援装置10は、チャットボットを介したUIにおいて、実行対象とするスクリプトに応じて、入力データの大きさ等の実行要件に関するユーザによる入力形式を変更する。これにより情報資源割当支援装置10は、ユーザの要求がより正確に反映された許容条件情報141を、ユーザによる簡易な入力操作によって取得することを実現できる。
【0084】
また、本実施形態に係る情報資源割当支援装置10は、スクリプトを実行可能な状態にある、構成が異なる複数のハードウェア資源15を備え、算出した実行時間及び使用料金に応じたハードウェア資源15の量に基づいて、当該複数のハードウェア資源15のいずれかにスクリプトの実行を割り当てる。これにより、情報資源割当支援装置10は、ハードウェア資源15によるスクリプトの速やかな実行開始を実現することができる。
【0085】
<第2の実施形態>
図6は、本発明の第2の実施形態に係る情報資源割当支援装置30の構成を示すブロック図である。但し、説明の都合上、ハードウェア資源34を
図6に記載し、ハードウェア資源34との関係もふまえて、情報資源割当支援装置30の動作について説明することとする。
【0086】
本実施形態に係る情報資源割当支援装置30は、取得部31、算出部32、及び、出力部33を備えている。取得部31、算出部32、及び、出力部33は、順に、取得手段、算出手段、及び、割当手段の一例である。
【0087】
取得部31は、ユーザが所望する、第1のAI処理の実行に要する実行時間と当該第1のAI処理に使用されるハードウェア資源34の使用料金とに関する許容条件310を取得する。ハードウェア資源34は、例えば、第1の実施形態に係るハードウェア資源15と同様な資源である。第1のAI処理は、例えば、第1の実施形態に係るスクリプトのような処理である。許容条件310は、例えば、第1の実施形態に係る許容条件情報141と同様な情報である。取得部31は、例えば、第1の実施形態に係る取得部11と同様に動作する。
【0088】
算出部32は、第2のAI処理に要する実行時間及び当該第2の情報処理に使用したハードウェア資源34の使用料金の関係に関する算出基準320に基づいて、許容条件310を満たすような第1のAI処理に要する実行時間と、当該第1のAI処理に使用されるハードウェア資源の使用料金とを算出する。算出基準320は、例えば、第1の実施形態に係る算出基準142と同様な基準である。算出部32は、例えば、第1の実施形態に係る算出部12と同様に動作する。
【0089】
出力部33は、算出部32により算出される実行時間及び使用料金を出力する。出力部33は、例えば、第1の実施形態に係る出力部13と同様に動作する。
【0090】
本実施形態に係る情報資源割当支援装置30は、ユーザの許容する利用料金及びAI処理の実行時間で所望のAI処理を実行可能なリソースを、ユーザに提供することができる。その理由は、情報資源割当支援装置30は、情報処理を実行させるハードウェア資源34に関して、ユーザの許容条件を満たすような実行時間及び使用料金を、ユーザに提示できるからである。
【0091】
<ハードウェア構成例>
上述した各実施形態において
図1、及び、
図6に示した情報資源割当支援装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、
図1、及び、
図6において、少なくとも、下記構成は、プロセッサによって実行される命令を含むソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・取得部11及び31、
・算出部12及び32、
・出力部13及び33、
・記憶部14における記憶制御機能、
・生成部16。
【0092】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、
図7を参照して説明する。
【0093】
図7は、本発明の各実施形態に係る情報資源割当支援装置を実現可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、
図7は、
図1及び
図6に示した情報資源割当支援装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【0094】
図7に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・モニターやスピーカ、キーボード等の入出力インタフェース909。
【0095】
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
【0096】
そして、上述した実施形態は、
図7に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給してもよい。例えば、その機能とは、その実施形態の説明において参照したブロック構成図(
図1及び
図6)における上述した構成、或いはフローチャート(
図4及び
図5)の機能である。本実施形態に係る情報資源割当支援装置の機能は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
【0097】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本実施形態に係る情報処理装置に供給されるコンピュータプログラムは、そのプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
【0098】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【0099】
この出願は、2021年3月25日に出願された日本出願特願2021-051807を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0100】
10 情報資源割当支援装置
11 取得部
12 算出部
13 出力部
14 記憶部
141 許容条件情報
142 算出基準
143 実行履歴情報
15 ハードウェア資源
151 CPU
152 メモリ
16 生成部
20 端末装置
200 表示画面
30 情報資源割当支援装置
31 取得部
310 許容条件
32 算出部
320 算出基準
33 出力部
34 ハードウェア資源
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース