(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024115446
(43)【公開日】2024-08-26
(54)【発明の名称】情報処理方法、プログラム、及び情報処理装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20240819BHJP
G06F 9/455 20180101ALI20240819BHJP
【FI】
G06F9/50 120A
G06F9/455 150
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023021149
(22)【出願日】2023-02-14
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業CREST「イノベーション創発に資する人工知能基盤技術の創出と統合化」委託研究、研究題目名:「データ処理とペルソナマッチング・行動予測転移」、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】599108264
【氏名又は名称】株式会社KDDI総合研究所
(74)【代理人】
【識別番号】110004222
【氏名又は名称】弁理士法人創光国際特許事務所
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【弁理士】
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】斉藤 和広
(72)【発明者】
【氏名】米川 慧
(57)【要約】
【課題】パイプライン処理に要する計算リソースを有効に活用する。
【解決手段】取得部120は、パイプライン処理の処理順序と、各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得する。生成部121は、設定ファイルに定義されたパイプラインの処理の順序に沿って、パラメータに基づいてコンテナを生成する。ここで、設定ファイルに定義される各コンポーネントは、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナの計算リソースを算出し、設定ファイルにおいて隣接コンポーネントのコンテナの計算リソースを規定するパラメータを書き換えるように定義されている。生成部121は、パイプラインの処理における上流側のコンポーネントを実行するコンテナによって書き換えられた設定ファイルに基づいて、隣接コンポーネントを実行するためのコンテナを生成する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
プロセッサが、
パイプライン処理の処理順序と、前記パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得するステップと、
前記設定ファイルに定義されたパイプライン処理の順序に沿って、前記パラメータに基づいてコンテナを生成するステップと、
生成された前記コンテナによって実行されるコンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出するステップと、
前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるステップと、
パラメータが書き換えられた設定ファイルに基づいて、前記隣接コンポーネントを実行するためのコンテナを生成するステップと、を実行する、
情報処理方法。
【請求項2】
前記設定ファイルに定義される各コンポーネントは、当該コンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出し、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるように定義されている、
請求項1に記載の情報処理方法。
【請求項3】
前記プロセッサが、
パラメータが書き換えられた前記設定ファイルに基づいて生成された前記コンテナによって実行されるコンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出するステップと、
前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるステップと、をさらに実行する、
請求項1に記載の情報処理方法。
【請求項4】
前記パイプライン処理は転移学習を実行するための処理であり、少なくとも(1)ターゲットデータの表現学習モデルを生成するためのコンポーネント、(2)ソースデータの表現学習モデルを生成するためのコンポーネント、(3)表現変換モデルを生成するためのコンポーネント、(4)ドメイン適応処理のためのコンポーネント、及び(5)タスクの機械学習モデルを生成するためのコンポーネントを含む、
請求項1から3のいずれか1項に記載の情報処理方法。
【請求項5】
前記計算リソースは、コンテナに割り当てるメモリとコンテナに割り当てるプロセッサのコア数との少なくともいずれかを含む、
請求項1から3のいずれか1項に記載の情報処理方法。
【請求項6】
コンピュータに、
パイプライン処理の処理順序と、前記パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得する機能と、
前記設定ファイルに定義されたパイプライン処理の順序に沿って、前記パラメータに基づいて前記コンテナを生成する機能と、
生成されたコンテナによって実行されるコンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出する機能と、
前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換える機能と、
パラメータが書き換えられた設定ファイルに基づいて、前記隣接コンポーネントを実行するためのコンテナを生成する機能と、を実現させる、
プログラム。
【請求項7】
パイプライン処理の処理順序と、各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得する取得部と、
前記設定ファイルに定義されたパイプラインの処理の順序に沿って、前記パラメータに基づいて前記コンテナを生成する生成部と、を備え、
前記設定ファイルに定義される各コンポーネントは、当該コンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出し、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるように定義されており、
前記生成部は、前記パイプラインの処理における上流側のコンポーネントを実行するコンテナによって書き換えられた前記設定ファイルに基づいて、前記隣接コンポーネントを実行するためのコンテナを生成する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理方法、プログラム、及び情報処理装置に関し、特にコンテナ仮想化技術を用いたパイプライン処理を管理する技術に関する。
【背景技術】
【0002】
コンピュータを用いた計算処理の手法として、処理の要素を直列に配列し、ある要素の出力が下流側に隣接する次の要素の入力となるようにして順次処理させる「パイプライン処理」が知られている。特許文献1には、1つの機械学習(Machine Learning;ML)モデルを対象として、データ加工のパイプラインを選択する手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
機械学習手法のうち、特に転移学習をパイプライン処理で実装するためには、複数のMLモデルを作成して連携する必要があり、処理の流れが複雑となる。このため、転移学習を従来のパイプライン処理で実装しようとすると、処理すべきデータ量の最大値を想定した計算リソースを常に確保しなくてはならず、計算リソースを有効に利用できない。
【0005】
本発明はこれらの点に鑑みてなされたものであり、パイプライン処理に要する計算リソースを有効に活用するための技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様は、情報処理方法である。この方法において、プロセッサが、パイプライン処理の処理順序と、前記パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得するステップと、前記設定ファイルに定義されたパイプライン処理の順序に沿って、前記パラメータに基づいてコンテナを生成するステップと、生成された前記コンテナによって実行されるコンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出するステップと、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるステップと、パラメータが書き換えられた設定ファイルに基づいて、前記隣接コンポーネントを実行するためのコンテナを生成するステップと、を実行する。
【0007】
前記設定ファイルに定義される各コンポーネントは、当該コンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出し、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるように定義されていてもよい。
【0008】
前記情報処理方法において、前記プロセッサが、パラメータが書き換えられた前記設定ファイルに基づいて生成された前記コンテナによって実行されるコンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出するステップと、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるステップと、をさらに実行してもよい。
【0009】
前記パイプライン処理は転移学習を実行するための処理であってもよく、少なくとも(1)ターゲットデータの表現学習モデルを生成するためのコンポーネント、(2)ソースデータの表現学習モデルを生成するためのコンポーネント、(3)表現変換モデルを生成するためのコンポーネント、(4)ドメイン適応処理のためのコンポーネント、及び(5)タスクの機械学習モデルを生成するためのコンポーネントを含んでもよい。
【0010】
前記計算リソースは、コンテナに割り当てるメモリとコンテナに割り当てるプロセッサのコア数と、の少なくともいずれかを含んでもよい。
【0011】
本発明の第2の態様は、プログラムである。このプログラムは、コンピュータに、パイプライン処理の処理順序と、前記パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得する機能と、前記設定ファイルに定義されたパイプライン処理の順序に沿って、前記パラメータに基づいて前記コンテナを生成する機能と、生成されたコンテナによって実行されるコンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出する機能と、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換える機能と、パラメータが書き換えられた設定ファイルに基づいて、前記隣接コンポーネントを実行するためのコンテナを生成する機能と、を実現させる。
【0012】
このプログラムを提供するため、あるいはプログラムの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
【0013】
本発明の第3の態様は、情報処理装置である。この装置は、パイプライン処理の処理順序と、各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを取得する取得部と、前記設定ファイルに定義されたパイプラインの処理の順序に沿って、前記パラメータに基づいて前記コンテナを生成する生成部と、を備える。ここで、前記設定ファイルに定義される各コンポーネントは、当該コンポーネントの出力のデータサイズに基づいて、当該コンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出し、前記設定ファイルにおいて前記隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換えるように定義されており、前記生成部は、前記パイプラインの処理における上流側のコンポーネントを実行するコンテナによって書き換えられた前記設定ファイルに基づいて、前記隣接コンポーネントを実行するためのコンテナを生成する。
【0014】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0015】
本発明によれば、パイプライン処理に要する計算リソースを有効に活用することができる。
【図面の簡単な説明】
【0016】
【
図2】実施の形態に係る情報処理装置が実行するパイプライン処理の概要を説明するための模式図である。
【
図3】設定ファイルに規定されているパイプライン処理の一例を模式的に示す図である。
【
図4】各コンテナによって実行されるコンポーネントの機能構成を模式的に示す図である。
【
図5】実施の形態に係る情報処理装置が実行する情報処理の流れを説明するためのフローチャートである。
【
図6】転移学習に適用したパイプライン処理を示す図である。
【発明を実施するための形態】
【0017】
<実施の形態の前提となる技術>
図1は、コンテナ仮想化を説明するための図である。以下、
図1を参照しながら、実施の形態に係る情報処理装置1における処理の前提となるコンテナ仮想化技術について簡単に説明する。
【0018】
情報処理装置1は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、揮発性メモリ及び不揮発性メモリを含む記憶装置を持つハードウェアであり、具体的にはブレードサーバやクラウドサーバである。
【0019】
実施の形態に係る情報処理装置1は、コンテナ仮想化技術を用いてパイプライン処理を実行する。コンテナ仮想化技術は、仮想的な計算環境を構築するための仮想化技術の一種である。仮想化技術は、サーバ等の物理的な計算リソースを抽象化し、計算リソースを分割して運用するための技術である。ここで、「計算リソース」は、仮想的な計算環境に割り当てるメモリと仮想的な計算環境に割り当てるプロセッサのコア数との少なくともいずれかを含んでいる。これに加えて、計算リソースは、仮想的な計算環境に割り当てるGPU等のコプロセッサ数を含んでもよい。
【0020】
コンテナ仮想化技術とは異なる従来の仮想化技術は、物理サーバ上でゲストオペレーティングシステム(Operating System)を起動し、ゲストオペレーティングシステム上で処理を実行させる技術である。従来の仮想化技術においては、物理的なサーバ上に複数のゲストオペレーティングシステムを起動させることにより、一つの物理サーバ上に複数の仮想的な計算環境を構築している。
【0021】
これに対し、コンテナ仮想化技術においては、物理サーバ上で動作するホストオペレーティングシステムにインストールされた「コンテナエンジン」が、「コンテナ」と呼ばれる独立した計算実行環境を構築し、アプリケーションを実行する。物理サーバ上に複数の仮想的な計算実行環境を構築する点ではコンテナ仮想化技術も従来の仮想化技術と同様である。ただし、コンテナ仮想化技術において構築される仮想的な計算環境であるコンテナは、ゲストオペレーティングシステムを必要としない点で、従来の仮想化技術と異なる。
【0022】
図1に示す例では、情報処理装置1は複数の物理サーバから構成されるクラウドサーバである。
図1に示すように、情報処理装置1上にホストオペレーティングシステムOが動作しており、ホストオペレーティングシステム上でコンテナエンジンVが動作している。コンテナエンジンVは、あらかじめ定められたコンテナを管理するための設定ファイルに基づいて1又は複数のコンテナCを生成し、各コンテナCにおいてアプリケーションを動作させる。
図1では、コンテナエンジンVは第1コンテナC1から第NコンテナCnまでのN個(Nは自然数)のコンテナCを管理していることを示している。
【0023】
従来の仮想化技術においては一つの仮想環境毎にゲストOSを起動させることになるため起動が遅くなり、動作させるための計算リソースも多く必要となる。一方、コンテナ仮想化技術ではコンテナをホストオペレーティングシステムOが直接起動するためゲストオペレーティングシステムが不要となり、ゲストオペレーティングシステムの起動時間やゲストオペレーティングシステムを動作させるために必要な計算リソースも不要となる。
図1においてコンテナエンジンVとコンテナCとが仮想的な計算環境を実現している仮想化レイヤとなるが、コンテナ仮想化技術においては仮想化レイヤにゲストオペレーティングシステムが存在しない。これにより、コンテナ仮想化技術は、従来の仮想化技術よりも情報処理装置1の計算リソースを有効に活用することができる。
【0024】
<実施の形態の概要>
以上を前提として、実施の形態の概要を述べる。実施の形態に係る情報処理装置1は、入力データ、入力データに対する処理(アプリケーションプログラムが実行)、及び処理結果である出力データの出力を処理単位(以下、「コンポーネント」と記載する。)として、コンポーネントをパイプライン処理の構成要素に割り当てて計算を実行させる。既知のように、パイプライン処理は、少なくとも二つの異なるコンポーネントが直列に連結されており、上流側のコンポーネントの出力データが、下流側に隣接するコンポーネント(以下、「隣接コンポーネント」と記載する。)の入力データとなる処理である。実施の形態に係る情報処理装置1は、パイプライン処理を構成する各コンポーネントをコンテナCに割り当て、各コンポーネントをコンテナCのアプリケーションとして実行する。
【0025】
ここで、実施の形態に係る情報処理装置1においては、各コンテナCが実行するコンポーネントが自身の出力データに基づいて、隣接コンテナに割り当てるべき計算リソースを算出するように構成されている。実施の形態に係る情報処理装置1は、算出された計算リソースに基づいて隣接コンポーネントのコンテナを生成する。
【0026】
このように、実施の形態に係る情報処理装置1は、各コンテナにおいて実行されるコンポーネントが計算によって隣接コンテナの計算リソースを算出するため隣接コンテナの計算リソースを動的に変更しながらパイプライン処理を実行する。このため、処理すべきデータ量の最大値を想定してあらかじめ計算リソースを多めに確保する必要がなくなり、計算リソースを適応的に変更しながら活用できる。さらに、実施の形態に係る情報処理装置1はゲストオペレーティングシステムに起因するオーバーヘッドが少ないコンテナ仮想化技術によってパイプライン処理を実行する。これにより、実施の形態に係る情報処理装置1は、パイプライン処理に要する計算リソースを有効に活用することができる。
【0027】
<実施の形態に係る情報処理装置1の機能構成>
図2は、実施の形態に係る情報処理装置1の機能構成を模式的に示す図である。情報処理装置1は、記憶部10、通信部11、及び制御部12を備える。
図2において、矢印は主なデータの流れを示しており、
図2に示していないデータの流れがあってもよい。
図2において、各機能ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、
図2に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
【0028】
記憶部10は、情報処理装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)や情報処理装置1の作業領域となるRAM(Random Access Memory)、オペレーティングシステムやコンテナエンジンV等のアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される設定ファイル等の種々の情報を格納するHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置である。
【0029】
通信部11は、情報処理装置1が外部の装置と通信するための通信インターフェースであり、LAN(Local Area Network)モジュールやWi-Fi(登録商標)モジュール等の既知の通信モジュールで実現されている。以下、本明細書において、情報処理装置1が外部の装置と通信するときは通信部11を介することを前提として通信部11の記載を省略することがある。
【0030】
制御部12は、情報処理装置1のCPUやGPU等のプロセッサであり、記憶部10に記憶されたプログラムを実行することによって取得部120及び生成部121として機能する。
【0031】
なお、
図2は、情報処理装置1が単一の装置で構成されている場合の例を示している。しかしながら、
図1を参照して上述したように、情報処理装置1は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。
【0032】
取得部120は、パイプライン処理の処理順序と、そのパイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナを規定するパラメータとを定義する設定ファイルを記憶部10から読み出して取得する。
【0033】
図3は、設定ファイルに規定されているパイプライン処理の一例を模式的に示す図である。以下、
図2、
図3、及び後述する
図4を参照して、実施の形態に係る情報処理装置1が実行するコンテナ仮想化技術を用いたパイプライン処理を説明する。
【0034】
図3は、
図3における横方向に流れる3本のパイプラインと、縦方向に流れる1本のパイプラインとから構成されるパイプライン処理を図示している。具体的には、
図3に示されるパイプライン処理は、第1-1処理と第1-2処理とを含むパイプラインと、第2-1処理と第2-2処理とを含むパイプラインと、第3処理を含むパイプラインと、第4処理及び第5処理を含むパイプラインとを含んでいる。ここで、第1-1処理は第1入力データを入力データとし、第1-1中間データを出力データとする。また、第1-2処理は第1-1中間データを入力データとし、第1-2中間データを出力データとする。
【0035】
また、第2-1処理は第2入力データを入力データとし、第2-1中間データを出力データとする。同様に、第2-2処理は第2-1中間データを入力データとし、第2-2中間データを出力データとする。第3処理は、第1-2中間データと第2-2中間データとの両方を入力データとし、第3中間データを出力データとする。
【0036】
さらに、第4処理は第3中間データを入力データとして第4中間データを出力データとする。第5処理は第4中間データを入力データとして、本パイプラインの最終的な出力データである最終出力データを出力する。すなわち、
図3に示すパイプライン処理は、第1入力データと第2入力データとに基づいて、最終出力データを出力することを目的とする処理ととらえることもできる。ただし、
図3に示すパイプライン処理において、処理の途中で複数の中間データが生成され、各中間データを生成するために複数の処理が実行される。中間データは記憶部10に記憶され、事後的に利用されることもある。
【0037】
取得部120が取得した設定ファイルには、パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナCを規定する各種パラメータが定義されている。このパラメータは、コンテナCに割り当てる計算リソースの初期設定値と、コンテナCにおいて実行されるプログラムやその実行条件と、コンテナC自体の起動条件(例えば、コンテナCの設定値や初期インストールライブラリ等)とを規定するためのパラメータを含んでいる。
【0038】
図3に示す例では、第1コンテナC1には、第1入力データを入力データとして第1-1中間データを出力する第1-1処理を実行するコンポーネントが割り当てられている。同様に、第2コンテナC2には、第2入力データを入力データとして第2-1中間データを出力する第2-1処理を実行するコンポーネントが割り当てられている。以下同様であり、例えば、第7コンテナC7には、第4中間データを入力データとして最終出力データを出力する第5処理を実行するコンポーネントが割り当てられている。
【0039】
生成部121はコンテナエンジンVとして機能し、具体的には取得部120が取得した設定ファイルに定義されたパイプライン処理の順序に沿って、パラメータに基づいてコンテナを生成する。
図3に示すパイプライン処理の例では、生成部121は、まず、情報処理装置1の計算リソースを用いて第1コンテナC1を生成する。
図3に示すように、第1-1処理と第2-1処理とは独立しており、互いの処理を待たずに個別に処理を実行することができる。そこで、生成部121は、情報処理装置1の計算リソースに余裕がある場合、第2コンテナC2も生成する。
【0040】
第1コンテナC1によって実行される第1-1処理の出力である第1-1中間データは、第3コンテナC3によって実行される第1-2処理の入力となる。このため、第1-1中間データのデータサイズは、第3コンテナC3を生成するために割り当てる情報処理装置1の計算リソースを決定するための情報となる。例えば、第1-1中間データのデータサイズが大きい場合、第1-1中間データを格納するために必要なメモリのサイズが大きくなる。
【0041】
図4は、各コンテナCによって実行されるコンポーネントの機能構成を模式的に示す図である。各コンテナCは、それぞれ処理実行部100、算出部101、及び書換部102を備えている。より具体的には、設定ファイルに各コンテナCで実行されるコンポーネントが定義されており、情報処理装置1の計算リソースを用いて構築された仮想的な計算環境で実行されるコンピュータプログラムによって、処理実行部100、算出部101、及び書換部102が実現される。
【0042】
処理実行部100は、各コンテナCが担う処理の本体を実行する。
図3に示す例において、第1コンテナC1における処理実行部100は、第1入力データに基づいて第1-1処理を実行し、第1-1中間データを生成する。同様に、例えば第3コンテナC3における処理実行部100は、第1-2中間データと第2-2中間データとに基づいて第3処理を実行し、第3中間データを生成する。
【0043】
算出部101は、コンテナCによって実行されるコンポーネントの出力のデータサイズ、すなわち、処理実行部100が生成した出力データのデータサイズに基づいて、そのコンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出する。例えば、第1コンテナC1における算出部101は、第1-1中間データのデータサイズに基づいて、隣接コンポーネントのコンテナCである第3コンテナC3に割り当てる計算リソースを算出する。
【0044】
書換部102は、取得部120が記憶部10から読み出して情報処理装置1のメインメモリに格納した設定ファイルにおいて、隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換える。書換部102が設定ファイルを書き換えると、コンテナCにおいて実行されるコンポーネントの処理は終了する。
【0045】
生成部121は、あるコンテナCの処理が終了すると、書換部102によってパラメータが書き換えられた設定ファイルに基づいて、隣接コンポーネントを実行するためのコンテナCを生成する。生成部121は、設定ファイルに規定されているパイプライン処理が終了するまで、コンテナCの生成を繰り返す。このように、実施の形態に係る情報処理装置1は、各コンテナCが隣接コンテナの計算リソースを算出するため隣接コンテナの計算リソースを動的に変更しながらパイプライン処理を実行するので、上流のコンポーネントの処理結果に応じて計算リソースを確保でき、計算リソースを有効に活用することができる。
【0046】
上述したように、実施の形態に係る設定ファイルは、パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナCを規定する各種パラメータを定義している。このため、コンポーネントの出力のデータサイズに基づいてそのコンポーネントの下流側に隣接する隣接コンポーネントのコンテナに割り当てる計算リソースを算出する算出部101と、設定ファイルにおいて隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換える書換部102も、設定ファイルに定義されている。設定ファイルが処理実行部100に加えて算出部101と書換部102とも定義することで、実施の形態に係る情報処理装置1は、隣接コンテナの計算リソースを動的に変更しながらパイプライン処理を実行することができる。
【0047】
隣接コンポーネントにおける算出部101は、パラメータが書き換えられた設定ファイルに基づいて生成部121が生成したコンテナCによって実行されるコンポーネントの出力のデータサイズに基づいて、隣接コンポーネントのさらに下流側に隣接する隣接コンポーネント(以下、便宜上「隣接隣接コンポーネント」と記載する。)のコンテナに割り当てる計算リソースを算出する。また、隣接コンポーネントにおける書換部102は、設定ファイルにおいて隣接隣接コンポーネントのコンテナに割り当てる計算リソースを規定するパラメータを書き換える。
【0048】
このように、実施の形態に係る情報処理装置1が実行するパイプライン処理では、あるコンポーネントが隣接コンポーネントを生成するための設定ファイルを書き換え、隣接コンポーネントが隣接隣接コンポーネントを生成するための設定ファイルを書き換えることで、各コンポーネントの処理結果を次のコンポーネントを実行するためのコンテナCに割り当てる計算リソースの決定に反映させることができる。
【0049】
<情報処理装置1が実行する情報処理方法の処理フロー>
図5は、実施の形態に係る情報処理装置1が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置1が起動したときに開始する。
【0050】
取得部120は、パイプライン処理の処理順序と、パイプライン処理を構成する各コンポーネントを実行するための仮想環境となるコンテナCを規定するパラメータとを定義する設定ファイルを取得する(S2)。生成部121は、設定ファイルに定義されたパイプライン処理のパラメータに基づいてコンテナCを生成する(S4)。
【0051】
コンテナCにおける処理実行部100は、コンポーネントのメインタスクを実行する(S6)。パイプライン処理を構成する各コンポーネントの処理が終了するまでの間(S8のNo)、コンテナCにおける算出部101は、処理実行部100の出力データに基づいて、隣接コンポーネントのコンテナCに割り当てる計算リソースを算出する(S10)。コンテナCにおける書換部102は、設定ファイルにおける隣接コンポーネントのコンテナCに割り当てる計算リソースを定義するパラメータが、算出部101が算出した計算リソースとなるように設定ファイルを書き換える(S12)。
【0052】
書換部102が設定ファイルを書き換えると、本フローチャートにおける処理はステップS4に戻って処理を継続する。パイプライン処理を構成する各コンポーネントの処理が終了すると(S8のYes)、本フローチャートにおける処理は終了する。
【0053】
<実施の形態に係る情報処理装置1の利用シーン>
以上、隣接コンポーネントのコンテナCの計算リソースを動的に割り当てながらパイプライン処理を実行する手法について説明した。続いて、実施の形態に係る情報処理装置1が実行するパイプライン処理の利用シーンの一例を説明する。
【0054】
実施の形態に係る情報処理装置1が実行するパイプライン処理は、例えば、転移学習の実行に利用される。転移学習は、学習対象のドメインとは異なるドメインのデータを活用するための機械学習手法である。
【0055】
図6は、転移学習に適用したパイプライン処理を示す図である。
図6に示す例は、ソースドメインのデータであるソースデータから得られた知識を、ターゲットドメインのデータであるターゲットデータに適応して機械学習を行い、機械学習モデル(MLモデル)を生成することを目的とする転移学習である。限定はしないが、例えば、ソースデータはユーザ属性が既知であるユーザ群のウェブ閲覧履歴であり、ターゲットデータは別のユーザ群の購買情報(どのような属性のユーザが何を購入したか)である。
【0056】
図6において、第1コンテナC1は、生データであるターゲットデータに対しデータクレンジングや不要な情報の削除、データ形式の変更等のターゲット加工処理を実行する。第2コンテナC2は、ソースデータに対しデータクレンジングや不要な情報の削除、データ形式の変更等のソース加工処理を実行する。
【0057】
第3コンテナC3は、ターゲット加工処理によって加工されたターゲットデータに対してターゲットドメインの表現学習(Representation Learning;RL)を実行し、ターゲットデータの表現学習モデルを生成するためのコンポーネントのためのコンテナCである。ターゲット加工処理によって加工されたターゲットデータが行列である場合の一例として、ターゲットドメインの表現学習は既知の非負値行列因子分解(Non-negative Matrix Factorization;NMF)である。同様に、第4コンテナC4は、ソース加工処理によって加工されたソースデータに対してソースドメインの表現学習を実行し、ソースデータの表現学習モデルを生成するためのコンポーネントのためのコンテナCである。ソースドメインの表現学習も、既知のNMFによって実現できる。
【0058】
第5コンテナC5は、第3コンテナC3及び第4コンテナC4の出力データに対して表現変換(Representation Transformation;RT)処理を実行し、表現変換モデルを生成するためのコンポーネントのためのコンテナCである。ターゲットドメインの表現学習及びソースドメインの表現学習にNMFが用いられた場合の一例として、表現変換は既知の行列分解によるドメイン適用(HeMap)によって実現できる。
【0059】
第6コンテナC6は、RT処理の処理結果に対してドメイン適応(Domain Adaptation;DA)処理を実行するためのコンポーネントのコンテナCである。DA処理は、例えば既知の事例選択によるドメイン適応(HEGS)によって実現できる。第7コンテナC7は、タスクの機械学習を実行し、タスクの機械学習モデルを生成するためのコンポーネントのコンテナCである。タスクの機械学習は、例えば既知のロジスティクス回帰(Logistic Regression)によって実現できる。
【0060】
転移学習において、各コンテナCに要求される計算リソースは学習用に用意されたターゲットデータやソースデータによって異なる。各コンテナCは、自身が出力した中間データのデータサイズを隣接コンポーネントが格納できるように、中間データサイズ以上のメモリを確保できるように設定ファイルを書き換える。これにより、実施の形態に係る情報処理装置1は、転移学習をパイプライン処理する際に処理の進行に応じて動的に計算リソースを確保できるので、計算リソースを効率よく使用しながら転移学習を実行できる。
【0061】
<実施の形態に係る情報処理装置1が奏する効果>
以上説明したように、実施の形態に係る情報処理装置1によれば、パイプライン処理に要する計算リソースを有効に活用することができる。
【0062】
なお、本発明により、国連が主導する持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」に貢献することが可能となる。
【0063】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果をあわせ持つ。
【符号の説明】
【0064】
1・・・情報処理装置
10・・・記憶部
11・・・通信部
12・・・制御部
120・・・取得部
121・・・生成部