JP2020144553A - Storage device and data processing method in the same - Google Patents
Storage device and data processing method in the same Download PDFInfo
- Publication number
- JP2020144553A JP2020144553A JP2019039970A JP2019039970A JP2020144553A JP 2020144553 A JP2020144553 A JP 2020144553A JP 2019039970 A JP2019039970 A JP 2019039970A JP 2019039970 A JP2019039970 A JP 2019039970A JP 2020144553 A JP2020144553 A JP 2020144553A
- Authority
- JP
- Japan
- Prior art keywords
- data
- program
- processing
- storage device
- server
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、ストレージ装置及びストレージ装置におけるデータ処理方法に関し、例えば監視カメラなどIoT(Internet of Things)センサデバイスにより取得されストレージ装置に蓄積された画像データを機械学習に用いる画像系AI(Artificial Intelligence)の情報処理システムに適用して好適なるものである。 The present invention relates to a storage device and a data processing method in the storage device, for example, an image system AI (Artificial Intelligence) that uses image data acquired by an IoT (Internet of Things) sensor device such as a surveillance camera and stored in the storage device for machine learning. It is suitable for application to the information processing system of.
特許文献1には、データをひとつの拠点のファイルサーバ又は他の拠点のファイルサーバの何れかで管理し、データが何れのファイルサーバで管理されているかに基づいて、適切にデータ参照を行う技術が開示されている。詳細には、ファイルサーバが、ユーザ端末から受信したファイルのデータを記憶デバイスに格納すると共にリモートのファイルサーバにレプリケーションし、記憶デバイスに格納したファイルのデータをスタブ化する。ファイルサーバは、ユーザ端末から受信したアクセス要求に係るファイルがスタブ化されていない場合には、記憶デバイスから該当のファイルのデータを読み出してユーザ端末に送信する。一方、ファイルサーバは、ユーザ端末から受信したアクセス要求に係るファイルがスタブ化されていない場合には、記憶デバイスから該当のファイルのデータを読み出してユーザ端末に送信する。 Patent Document 1 describes a technique in which data is managed by either a file server at one base or a file server at another base, and data is appropriately referred to based on which file server the data is managed by. Is disclosed. Specifically, the file server stores the data of the file received from the user terminal in the storage device and replicates it to the remote file server, and stubs the data of the file stored in the storage device. When the file related to the access request received from the user terminal is not stubbed, the file server reads the data of the file from the storage device and sends it to the user terminal. On the other hand, when the file related to the access request received from the user terminal is not stubbed, the file server reads the data of the file from the storage device and sends it to the user terminal.
近年のIoT及びAIの発展に伴い、IoTデバイスであるカメラなどで取得されストレージ装置に蓄積された画像データをサーバで機械学習する情報処理システムがある。かかる情報処理システムにおいて、機械学習の効率化及び精度向上のために、画像データをもとにした加工画像(元画像に対して位置シフトや回転などの加工を施した画像)を追加するデータオーギュメンテーションが行われている。この情報処理システムにおいては、データオーギュメンテーションの際、ストレージ装置から全ての加工対象の画像データがサーバに読み出され、サーバでデータオーギュメンテーションが行われ全ての加工画像のデータがストレージ装置に書き出される。 With the development of IoT and AI in recent years, there is an information processing system in which a server machine-learns image data acquired by an IoT device such as a camera and stored in a storage device. In such an information processing system, in order to improve the efficiency and accuracy of machine learning, a data augment that adds a processed image (an image that has been processed such as position shift or rotation to the original image) based on the image data. Mentioning is done. In this information processing system, at the time of data augmentation, all the image data to be processed is read from the storage device to the server, the data augmentation is performed by the server, and the data of all the processed images is stored in the storage device. Will be written out.
よって、上述の従来技術では、IoTデバイスで取得されストレージ装置に蓄積された画像データをサーバで機械学習する情報処理システムにおいて、全ての加工画像データを一旦ストレージ装置に書き出すことによりストレージ装置の記憶容量が圧迫されるという問題がある。 Therefore, in the above-mentioned conventional technique, in an information processing system in which image data acquired by an IoT device and stored in a storage device is machine-learned by a server, all processed image data is once written to the storage device to store the storage capacity of the storage device. There is a problem that is squeezed.
さらに、機械学習を行う情報処理システムには、当該システムが搭載する主記憶容量以上の教師データを取り扱う際、HDD(Hard Disk Drive)などからなる二次記憶領域に機械学習用データを格納し、主記憶へ部分的に読み出すことで機械学習を行うシステムが利用されている。このようなシステムでは、複数の学習用データを束ねてサイズの大きな中間データとすることで、HDDなどへのアクセスを効率化することが知られている。しかし、これら中間データについてもいったんストレージ装置に書き出されるため、前述のデータオーギュメンテーションと合わせて、学習用データの規模が大きくなればなるほど、ストレージ装置の記憶容量が圧迫される問題はより大きくなる。 Furthermore, in an information processing system that performs machine learning, when handling teacher data that exceeds the main storage capacity installed in the system, machine learning data is stored in a secondary storage area consisting of an HDD (Hard Disk Drive) or the like. A system that performs machine learning by partially reading into main memory is used. In such a system, it is known that access to an HDD or the like is made more efficient by bundling a plurality of learning data into large-sized intermediate data. However, since these intermediate data are also once written to the storage device, the problem that the storage capacity of the storage device is compressed becomes greater as the scale of the training data increases in combination with the above-mentioned data augmentation. ..
本発明は以上の点を考慮してなされたもので、IoTデバイスで取得されストレージ装置に蓄積されたデータをサーバで機械学習する情報処理システムにおいて、ストレージ装置の記憶容量の消費を削減し、記憶容量の小容量化及び容量効率の向上を図ることができるストレージ装置及びストレージ装置におけるデータ処理方法を提案しようとするものである。 The present invention has been made in consideration of the above points, and in an information processing system in which data acquired by an IoT device and stored in a storage device is machine-learned by a server, consumption of the storage capacity of the storage device is reduced and storage is performed. We are trying to propose a storage device and a data processing method in the storage device that can reduce the capacity and improve the capacity efficiency.
かかる課題を解決するため本発明においては、ストレージ装置は、サーバとネットワークを介して接続され、外部から取得された元データを記憶する記憶部と、前記サーバからの加工データの要求に応じて、前記記憶部に記憶されている元データのうちから選択した元データに対して加工を行って加工データを生成する生成部と、前記生成部による加工データの生成に先立って、前記生成部が該加工データを生成する際の処理性能を評価する評価部とを有し、前記評価された処理性能に基づいて前記生成部により前記加工データを生成し、生成した加工データを前記サーバに送信することを特徴とする。 In order to solve such a problem, in the present invention, the storage device is connected to the server via a network, has a storage unit that stores the original data acquired from the outside, and responds to a request for processed data from the server. A generation unit that processes the original data selected from the original data stored in the storage unit to generate processing data, and the generation unit prior to the generation of the processing data by the generation unit. It has an evaluation unit that evaluates the processing performance when generating processing data, generates the processing data by the generation unit based on the evaluated processing performance, and transmits the generated processing data to the server. It is characterized by.
本発明によれば、ストレージ装置の記憶容量の小容量化及び記憶効率の向上により、機械学習に用いるAIの情報処理システムにおける設備コスト及び運用コストを低減できる。 According to the present invention, it is possible to reduce the equipment cost and the operation cost in the AI information processing system used for machine learning by reducing the storage capacity of the storage device and improving the storage efficiency.
以下図面に基づき、本発明の実施例を詳述する。以下の実施例を説明するための各図面において、同一の参照番号で同一あるいは類似の機能を備えた構成要件を示し、後出の説明を省略する。また実施例及び変形例は、本発明の技術思想の範囲内及び整合する範囲内でその一部又は全部を組合せることができる。 Examples of the present invention will be described in detail below with reference to the drawings. In each of the drawings for explaining the following examples, the configuration requirements having the same or similar functions with the same reference number will be shown, and the description below will be omitted. Further, the examples and modifications can be combined in part or in whole within the scope of the technical idea of the present invention and within the range consistent with them.
以下の説明では、「aaaリスト」又は「aaaテーブル」の表現にて各種情報を説明することがあるが、各種情報は、リスト及びテーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「aaaリスト」及び「aaaテーブル」を「aaa情報」と呼ぶこともできる。「aaaリスト」、「aaaテーブル」、又は「aaa情報」は、記憶資源(例えばメモリ)に確保された記憶領域に格納される。 In the following description, various information may be described by the expression of "aaa list" or "aaa table", but various information may be expressed by a data structure other than the list and the table. The "aaa list" and the "aaa table" can also be referred to as "aaa information" to show that they do not depend on the data structure. The "aaa list", "aaa table", or "aaa information" is stored in a storage area reserved for a storage resource (for example, memory).
また、以下の説明では、「プログラム」を主語として処理フローを説明する場合がある。プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって、記憶資源(例えばメモリ)にロードされ実行されることで、記憶資源及び通信インタフェースのうちの少なくとも1つを適宜に使用しながら予め定められた処理を実行する。例えば「xxxプログラム」のように説明又は図示される要素は、プロセッサが、記憶資源又は通信インタフェースを使用し、プログラムソースを解析実行することで、予め定められた処理を実行する処理部である。このため、プログラムによる処理の主語が、プロセッサ、もしくはそのプロセッサを有する装置とされてもよい。また、「xxxプログラム」は、「xxx部」とも言い換えることができる。 Further, in the following description, the processing flow may be described with "program" as the subject. The program is loaded into a storage resource (for example, memory) by a processor (for example, a CPU (Central Processing Unit)) and executed, so that the program is predetermined while appropriately using at least one of the storage resource and the communication interface. Execute the processing. For example, an element described or illustrated as "xxx program" is a processing unit in which a processor executes a predetermined process by analyzing and executing a program source using a storage resource or a communication interface. Therefore, the subject of processing by the program may be a processor or a device having the processor. Further, the "xxx program" can be paraphrased as a "xxx part".
また、プロセッサが実行する処理の一部又は全部は、ハードウェア回路により処理されてもよい。プロセッサが実行する処理を規定するプログラムは、例えば外部装置からネットワークを介して取得して、あるいは記憶メディアを介して取得して、プロセッサにより実行されるものとしてもよい。 In addition, a part or all of the processing executed by the processor may be processed by the hardware circuit. The program that defines the processing to be executed by the processor may be, for example, acquired from an external device via a network or acquired via a storage medium and executed by the processor.
本発明の実施例1について、図1〜図10を用いて説明する。 Example 1 of the present invention will be described with reference to FIGS. 1 to 10.
<実施例1のストレージ装置を含む学習システムの構成>
図1を用いて、本発明の前提となるシステムのハードウェアの論理的構造を説明する。図1は、実施例1のストレージ装置を含む学習システムのハードウェアの論理的構成の一例を示す図である。実施例1のストレージ装置104を含む学習システム1Sは、複数の学習サーバ101、102とストレージ装置104とが、ネットワーク103で接続されたシステムである。
<Configuration of learning system including storage device of Example 1>
The logical structure of the hardware of the system which is the premise of the present invention will be described with reference to FIG. FIG. 1 is a diagram showing an example of a logical configuration of hardware of a learning system including the storage device of the first embodiment. The
学習システム1Sの複数の学習サーバ101、102は、教師データの機械学習を行うサーバであり、積和演算や誤差逆伝搬処理などの学習処理を分担して行う学習サーバ(従)102と、学習処理に加えて初期化や学習結果の集約なども行う学習サーバ(主)101とによって構成される。これら学習サーバ101、102のそれぞれは、CPU111と、メモリ112と、IF113とから構成される。なお、学習サーバ101、102は、HDD(Hard Disk Drive)などの記憶装置を搭載することもある。また、学習サーバ101、102は、学習処理を高速化するためのアクセラレータを搭載していてもよい。学習サーバ(従)102を用いずに、学習サーバ(主)101のみで学習処理を行うことも可能である。
The plurality of learning
CPU111は、メモリ112に格納された各プログラム、管理情報などを使用して、学習処理を含む各種処理を実行する。
The
メモリ112は、CPU111が実行するプログラムやプログラムが使用する管理情報などを格納する。このメモリ112には、これら以外の情報、例えばOS(Operating System)の管理情報を格納するなどの用途に使用してもよい。また、メモリ112は、SDRAM(Synchronous Dynamic Random Access Memory)で構成されることが一般的であるが、これ以外の記憶素子で構成されてもよい。
The
IF113は、ネットワーク103を介して、学習サーバ101、102が相互に情報をやり取りしたり、ストレージ装置104から学習データを読み出したりするためのインタフェースである。このIF113は、ネットワーク103の構成に合わせて選択することが可能であり、また用途ごとに分けることも可能である。例えば学習サーバ101、102が相互にやり取りする場合はEthernet(登録商標、以下同様)を使用する、ストレージ装置104から学習データを読み出す場合はFibre Channelを利用する、といった具合である。また、複数のIF113を連携させることで、冗長性を得るなども可能である。
The
ネットワーク103は、集線装置とケーブルからなり、学習サーバ101、102同士、もしくはストレージ装置104との間の通信を取り持つ。本実施例では全てEthernetによるネットワーク103を例としているが、全てもしくは部分的に異なる通信規格、例えばInfiniband(登録商標)やFibre Channelなどを用いることができる。異なる通信規格を混在させる場合は、通信規格に合わせた集線装置とケーブルを併用することができる。
The
ストレージ装置104は、FE(フロントエンド)121と、CPU122と、BE(バックエンド)123と、メモリ124と、1つ以上のドライブ125とから構成される。
The
FE121は、ネットワーク103を介して、学習サーバ101、102からストレージ装置104への通信を受け付けるたり、応答したりする。通信規格としてはEthernetやFibre Channelなどを使用することができる。
The
CPU122は、メモリ124に格納された各プログラム、管理情報などを使用して、学習サーバ101、102やその他サーバからのFE121を介してのデータアクセスに対し応答する。
The
BE123は、CPU122が学習サーバ101、102やその他サーバからのアクセスの際に、実際のデータが格納されているドライブ125へのアクセスを仲介する。通信規格としてはSAS(Serial Attached SCSI)やNVMe(Non-Volatile Memory Express)などを使用できる。
The
メモリ124は、CPU122が実行するプログラムやプログラムが使用する管理情報などを格納する。このメモリ124には、これら以外の情報、例えばストレージファームウェアの管理情報を格納するなどの用途に使用してもよい。また、メモリ124は、SDRAM(Synchronous Dynamic Random Access Memory)で構成されることが一般的であるが、これ以外の記憶素子で構成されてもよい。
The
1又は複数のドライブ125は、HDDやSSD(Solid State Drive)で構成される記憶装置である。また、複数のドライブ125をパリティグループと呼ばれる単位にまとめ、RAID(Redundant Arrays of Independent Disks)のような高信頼化技術を使用して、論理的な記憶領域として使用してもよい。なお、SSDはNAND Flash Memoryを記憶領域として使用したものに限らず、Phase Change Memoryなどの記憶素子を用いたもので構成してもよい。
One or
<実施例1のストレージ装置のメモリに格納されるプログラムとデータ>
図2を用いて、ストレージ装置104のメモリ124に格納されるプログラム及び情報を示す。図2は、実施例1のストレージ装置のメモリに格納されるプログラムとデータの一例を示す図である。
<Programs and data stored in the memory of the storage device of Example 1>
FIG. 2 shows a program and information stored in the
メモリ124には、データ生成管理プログラム201と、バッファサイズ抑制プログラム202と、事前性能評価プログラム203と、データ生成処理プログラム204と、パラメータ受信プログラム205と、IO観測プログラム206と、ファイルエミュレーションプログラム207とが格納される。また、メモリ124は、データを一時格納する一時領域として生成済みデータバッファ211を有する。詳細は後述するが、後述のストレージデータ領域301の生成済みデータ退避領域303(図3参照)も、生成済みデータバッファ211と共に、データを一時格納する一時領域となる。なお、メモリ124は、これ以外の制御プログラム、制御データなども保持してよい。
The
データ生成管理プログラム201は、データ生成処理プログラム204を起動させ、学習サーバ101、102が要求する学習データサイズや、学習サーバ101、102のデータ読み出しスループットに応じたデータ生成スループットで、オーギュメンテーションデータを動的に生成し、一時領域に格納する制御を行う。生成されたオーギュメンテーションデータは、学習データとなる。
The data
バッファサイズ抑制プログラム202は、学習サーバ101、102からの読み出しが終わった、すなわちクローズされた生成済みのオーギュメンテーションデータが使用していた一時領域を解放し、一時領域の肥大化を抑える制御を行う。
The buffer
事前性能評価プログラム203は、データオーギュメンテーションの単位処理性能(1処理あたりの処理性能)、すなわちデータ生成スループットを実際の学習処理前に事前評価する。
The
データ生成処理プログラム204は、データ生成管理プログラム201から起動され、実際のデータオーギュメンテーションを行う。
The data
パラメータ受信プログラム205は、ユーザが学習サーバ101、102を使用する際に動的に決定する動的パラメータ、例えば学習サーバ(従)102の台数や、学習サーバ101、102における処理のスレッド数、メモリ112に一度に読み出す教師データ数、エポック数などを、学習サーバ(主)101から受信する。また、動的パラメータをストレージ装置104が受け取った後、ストレージ装置104内部でオーギュメンテーションデータの応答準備が完了すると、学習サーバ(主)101にオーギュメンテーションデータの読み出しが可能な状態になったことを通知する。
The
なお、教師データとは、学習対象になる画像などの学習データと学習データに対する正解情報を組み合わせたもののことを言う。また、エポック数とは、ある教師データ群を何回繰り返し使用して学習するかを示す数値である。 The teacher data is a combination of learning data such as an image to be learned and correct answer information for the learning data. The epoch number is a numerical value indicating how many times a certain teacher data group is repeatedly used for learning.
IO観測プログラム206は、学習サーバ101、102による学習データのファイルのオープン、リード、クローズといったイベントや、学習サーバ101、102への学習データのデータ転送速度を観測し、データ生成管理プログラム201とバッファサイズ抑制プログラム202へ通知する。
The
ファイルエミュレーションプログラム207は、学習サーバ101、102に対して、一時領域に格納している作成済みのオーギュメンテーションデータを通常のファイルとして公開したり、生成前のオーギュメンテーションデータがあたかも存在するかのように見せ、学習サーバ101、102に動的なデータオーギュメンテーションがされていることを意識させないようにする仮想化を行ったりする。
The
生成済みデータバッファ211は、データ生成処理プログラム204が生成したオーギュメンテーションデータが格納される一時領域である。生成済みデータバッファ211に格納されるオーギュメンテーションデータは、ファイルエミュレーションプログラム207が学習サーバ101、102に対して公開するオーギュメンテーションデータの実体となる。
The generated
<実施例1のストレージ装置のストレージデータ領域に格納されるデータ>
図3を用いて、ストレージ装置104の記憶領域に格納される情報を示す。図3は、実施例1のストレージ装置のストレージデータ領域に格納されるデータの一例を示す図である。
<Data stored in the storage data area of the storage device of the first embodiment>
FIG. 3 shows information stored in the storage area of the
ストレージデータ領域301は、ストレージ装置104が内蔵するドライブ125上に論理的に構成された記憶領域である。このストレージデータ領域301には、事前性能評価結果302と、生成済みデータ退避領域303と、データ生成リストセット311と、データオーギュメンテーションプログラム312と、元データ313とが格納される。
The
このうち、事前性能評価結果302と生成済みデータ退避領域303は、ストレージデータ領域301に格納されるもののユーザには公開されないデータである。一方、データ生成リストセット311と、データオーギュメンテーションプログラム312と、元データ313は、ユーザによってストレージデータ領域301に格納される画像データなどのデータである。このストレージデータ領域301には、上記以外のデータも格納されてもよい。
Of these, the
事前性能評価結果302は、事前性能評価プログラム203が行う事前評価の結果を記録したテーブルを格納する領域である。事前性能評価結果302の詳細は、後述する。
The
生成済みデータ退避領域303は、データ生成処理プログラム204により生成され生成済みデータバッファ211に格納されているオーギュメンテーションデータのうち、容量制限のために生成済みデータバッファ211に格納しきれないデータを一時的に退避させて格納する領域である。
The generated data save
データ生成リストセット311は、ユーザが元データ313に対して行いたいデータオーギュメンテーションと、データオーギュメンテーションの結果として学習サーバ101、102が学習に使用することとなるデータの関係づけを記載するデータ生成リスト401(図4参照)の集合である。データ生成リスト401の詳細は、後述する。
The data generation list set 311 describes the relationship between the data augmentation that the user wants to perform on the
データオーギュメンテーションプログラム312は、データオーギュメンテーションに用いられるプログラムもしくはスクリプトであり、ストレージ装置104のCPU122により実行される。
The
元データ313は、ユーザが加工(データオーギュメンテーション)の対象とするデータである。複数のファイル、リストなどから構成され、例えば学習用の画像データや正解データなどである。
The
<実施例1のデータ生成リスト>
図4を用いて、データ生成リストセット311に含まれるデータ生成リスト401を説明する。図4は、実施例1のデータ生成リストセットに含まれるデータ生成リストの一例を示す図である。なお、データ生成リストセット311に含まれる複数のデータ生成リスト401のそれぞれは、データ生成リストセット311内でユニークなIDが付与されて識別される。
<Data generation list of Example 1>
The
データ生成リスト401は、入力データ411と、データオーギュメンテーションプログラム412と、オプション413と、出力データ414との各列を含む。データ生成リスト401は、複数行からなり、1組の入力データ411とデータオーギュメンテーションプログラム412とオプション413と出力データ414との対応が1行に記載される。1行が1つの出力ファイルに対応する。
The
入力データ411には、データオーギュメンテーションを行う対象の元データ313のファイル名が記載される。入力データ411に記載される加工対象の元データ313のファイル名には、該当の元データ313のパス情報も含まれる。
In the
データオーギュメンテーションプログラム412には、入力データ411に記載されたファイル名の元データ313に対して実行するデータオーギュメンテーションのプログラム名が記載される。オプション413には、データオーギュメンテーションプログラム412に記載されたデータオーギュメンテーションプログラムを、入力データ411に記載されたファイル名の元データ313に対して実行する際に、与える引数などのオプションが記載される。
In the
出力データ414は、入力データ411に記載されたファイル名の元データ313に対して、データオーギュメンテーションプログラム412に記載されたデータオーギュメンテーションプログラムを、オプション413に記載されたオプションを与えて実行した処理結果であるオーギュメンテーションデータの出力ファイル名が記載される。出力データ414に記載される出力ファイル名には、該当の出力ファイルのパス情報も含まれる。出力データ414に記載の出力ファイル名は、データオーギュメンテーションの処理結果を学習サーバ101、102に公開する際のファイル名である。
The
なお、データオーギュメンテーションプログラム412に、データオーギュメンテーションを行わないことを示すキーワードとして、NONEと記載することもできる。
In the
例えば、図4における1行目は、入力データ411が“imgs01.jpg”である入力データに対して、データオーギュメンテーションプログラム412が“img_augmentation”というデータオーギュメンテーションプログラムを、“-flip”のオプションを与えて実行することを示す。その出力データ414は、“imgs01-f.jpg”である。
For example, in the first line in FIG. 4, for the input data in which the
また例えば、図4における2行目は、入力データ411が“imgs02.lst”であるリストファイル内で列挙されている複数の入力データに対して、データオーギュメンテーションプログラム412が“imgs_aug”というデータオーギュメンテーションプログラムを、“-flip”及び“-pack bin”のオプションを与えて実行することを示す。その出力データ414は、“imgs02-f.bin”である。“imgs02-f.bin”は、“-pack bin”のオプションにより、複数の入力データがそれぞれデータオーギュメンテーションされた複数の出力データがパッキングされた中間ファイルである。
Further, for example, in the second line in FIG. 4, the
<実施例1の事前性能評価結果を記録するテーブル>
図5を参照して、事前性能評価結果302を記録するテーブルについて説明する。図5は、実施例1の事前性能評価結果を記録するテーブルの一例を示す図である。
<Table for recording the preliminary performance evaluation results of Example 1>
A table for recording the
事前性能評価302のテーブルは、データオーギュメンテーションプログラム321と、オプション322と、単位処理性能323との各列を含む。事前性能評価結果302のテーブルは、複数行からなり、1組のデータオーギュメンテーションプログラム321とオプション322と単位処理性能323との対応が1行に記載される。
The table of
データオーギュメンテーションプログラム321とオプション322との組合せは、データ生成リスト401に記載されているデータオーギュメンテーションプログラム412とオプション413との組合せに対応する。すなわち、事前性能評価プログラム203は、事前性能評価結果302のテーブルの各行に記載のデータオーギュメンテーションプログラム412とオプション413との全ての組合せから重複排除した組合せを、該当する加工対象の入力データ411のうちの1つに対して実行し、単位スレッドあたりの性能を測定する。そして、事前性能評価プログラム203は、データオーギュメンテーションプログラム321とオプション322との組合せを実行して測定した単位スレッドあたりの性能を、単位処理性能323に記録する。単位処理性能323は、例えば単位スレッドでの単位時間あたりの処理データ量(スループット)である。
The combination of the
<学習サーバ装置のメモリに格納されるプログラム>
図6を用いて、学習サーバ101、102のメモリ112に格納されるプログラムを説明する。図6は、実施例1の学習サーバ装置のメモリに格納されるプログラムの一例を示す図である。メモリ112には、学習プログラム501とパラメータ送信ライブラリ502とが格納される。
<Program stored in the memory of the learning server device>
A program stored in the
学習プログラム501は、ユーザが実際に行いたい学習処理の内容を記述したプログラムである。学習プログラム501による処理は、一般的に初期化フェーズと学習フェーズとに分かれている。
The
学習プログラム501は、初期化フェーズにおいて学習処理時に使用するパラメータを決定する。パラメータの具体例としては、学習プログラム501が使用する学習データに対応するデータ生成リスト401のファイル名、学習サーバ101、102の数、スレッド数、メモリ112に一度に読み出す教師データ数、エポック数などである。
The
これらのパラメータをパラメータ受信プログラム205に送信するため、学習プログラム501の初期化フェーズ部分にはパラメータ送信API(Application Programing Interface)が記述される。
In order to transmit these parameters to the
なお、一般的には、学習サーバ(主)101と学習サーバ(従)102とは、学習サーバ101、102が持つ識別情報をもとに、学習サーバ(主)101か学習サーバ(従)102かが判別される。学習サーバ(主)101と学習サーバ(従)102との間で、学習プログラム501自体は共有されるが、学習サーバ101、102全体で1回だけ実施すればよい処理などは、学習サーバ(主)101のみに実施させるなどの制御を行うことができる。
In general, the learning server (main) 101 and the learning server (slave) 102 are either the learning server (main) 101 or the learning server (slave) 102 based on the identification information of the learning
パラメータ送信ライブラリ502は、学習プログラム501に記述されるパラメータ送信APIから呼び出されるプログラムの実体である。パラメータ送信ライブラリ502は、パラメータ受信プログラム205を経由してストレージ装置104に学習プログラム501の動的パラメータを通知する機能と、動的パラメータ通知後からストレージ装置104へのデータアクセス準備完了まで学習プログラム501の実行を待機させる機能を有する。
The
<実施例1の学習システムにおける学習処理>
以上を有する実施例1の学習システム1Sにおける学習処理を行う手順を以降に示す。学習システム1Sにおける学習処理には、大きく2つのフェーズがある。ユーザのデータ生成リスト401、データオーギュメンテーションプログラム312及び元データ313をストレージ装置104に登録するデータ登録フェーズ、及び、教師データの機械学習を行う学習フェーズである。
<Learning process in the learning system of Example 1>
The procedure for performing the learning process in the
<実施例1のデータ登録フェーズ>
図7及び図8を用いて、実施例1のデータ登録フェーズの動作を説明する。図7は、実施例1のストレージ装置のデータ登録フェーズにおける論理的構成の一例を示す図であり、データ登録フェーズにおける学習サーバ(主)101とストレージ装置104の各プログラム及びデータの関係を示す。図8は、実施例1のストレージ装置におけるデータ登録フェーズの処理の一例を示すフローチャートであり、データ登録フェーズにおけるストレージ装置104の動作フローを示す。
<Data registration phase of Example 1>
The operation of the data registration phase of the first embodiment will be described with reference to FIGS. 7 and 8. FIG. 7 is a diagram showing an example of a logical configuration in the data registration phase of the storage device of the first embodiment, and shows the relationship between each program and data of the learning server (main) 101 and the
実施例1のデータ登録フェーズの処理において、先ず、学習サーバ(主)101は、図7のステップS700で示すように、ストレージ装置104の事前に決められたデータ領域(フォルダなど)に、データ生成リストセット311に含まれるあるデータ生成リスト401と、データオーギュメンテーションプログラム312と、元データ313とを書き込む。ストレージ装置104のデータ領域に書き込まれるデータ生成リスト401に記載されている入力データ411及びデータオーギュメンテーションプログラム412のそれぞれが指し示すデータ及びプログラムが、データ生成リスト401とほぼ同時に書き込まれる元データ313及びデータオーギュメンテーションプログラム312である。
In the process of the data registration phase of the first embodiment, first, as shown in step S700 of FIG. 7, the learning server (main) 101 generates data in a predetermined data area (folder or the like) of the
図8に示すように、ステップS701では、ストレージ装置104の事前性能評価プログラム203は、データ生成リストセット311が更新されるのを監視する。事前性能評価プログラム203は、データ生成リストセット311に含まれるデータ生成リスト401が新規登録もしくは更新されている場合(ステップS701:YES)、ステップS702に処理を移し、新規登録も更新もされていない場合(ステップS701:NO)、ステップS701を繰り返す。
As shown in FIG. 8, in step S701, the
続いて、ステップS702では、事前性能評価プログラム203は、新規登録もしくは更新されたデータ生成リスト401に対応するデータオーギュメンテーションプログラム312及び元データ313が格納済みかを確認する。事前性能評価プログラム203は、データ生成リスト401に対応するデータオーギュメンテーションプログラム312及び元データ313が格納済みの場合(ステップS702:YES)、ステップS703に処理を移し、格納済みでない場合(ステップS702:NO)、ステップS702を繰り返し、格納の完了を待つ。
Subsequently, in step S702, the
続いて、ステップS703では、事前性能評価プログラム203は、データ生成処理プログラム204に、新規追加もしくは更新が確認されたデータ生成リスト401に記載されているデータオーギュメンテーション(データオーギュメンテーションプログラム及びオプションの組合せ)の1つを、例えば、CPU122の1スレッドで1つの入力データに対して実行させる事前性能評価を行う。
Subsequently, in step S703, the
データ生成処理プログラム204は、事前性能評価の際、オーギュメンテーションデータを作成するとともに、単位スレッドあたりの性能(スループットなど)を測定する。続いて、ステップS704では、事前性能評価プログラム203は、データ生成処理プログラム204による処理が完了した後、性能測定結果をストレージデータ領域にある事前性能評価結果302のテーブルに記録する(図5参照)。
The data
続いて、ステップS705では、事前性能評価プログラム203は、データ生成処理プログラム204に、生成済みデータバッファ211に空き領域があるかを確認させる。事前性能評価プログラム203は、生成済みデータバッファ211に空き領域がある場合(ステップS705:YES)、ステップS712に処理を移し、空き領域がない場合(ステップS705:NO)、ステップS706に処理を移す。
Subsequently, in step S705, the
ステップS706では、事前性能評価プログラム203は、データ生成処理プログラム204に、生成済みデータ退避領域303に空き領域があるかを確認させる。事前性能評価プログラム203は、生成済みデータ退避領域303に空き領域がある場合(ステップS706:YES)、ステップS711に処理を移し、空き領域がない場合(ステップS706:NO)、ステップS707に処理を移す。
In step S706, the
ステップS707では、事前性能評価プログラム203は、データ生成処理プログラム204に、生成済みデータ退避領域303の一部が解放可能かを確認させる。事前性能評価プログラム203は、生成済みデータ退避領域303の一部が解放可能である場合(ステップS707:YES)、ステップS710に処理を移し、解放可能でない場合(ステップS707:NO)、ステップS708に処理を移す。
In step S707, the
ステップS708では、事前性能評価プログラム203は、データ生成処理プログラム204に、事前性能評価の際に作成したオーギュメンテーションデータを破棄させる。
In step S708, the
続いて、ステップS709では、事前性能評価プログラム203は、ステップS701で新規追加もしくは更新が確認されたデータ生成リスト401内に、ステップS703の性能測定を行っていないデータオーギュメンテーションが有るかを判定する。事前性能評価プログラム203は、新規追加もしくは更新が確認されたデータ生成リスト401内に性能測定を行っていないデータオーギュメンテーションが有る場合(ステップS709:YES)、ステップS703に処理を移す。一方、事前性能評価プログラム203は、新規追加もしくは更新が確認されたデータ生成リスト401内に、性能測定を行っていないデータオーギュメンテーションが無い場合(ステップS709:NO)、ステップS701に処理を移す。
Subsequently, in step S709, the
他方、ステップS710では、事前性能評価プログラム203は、生成済みデータ退避領域303に空き領域がないことから、データ生成処理プログラム204に、生成済みデータ退避領域303に格納されたデータのうち保持優先度の低いものを破棄させることで空き領域を確保する。ステップS710が終了すると、事前性能評価プログラム203は、ステップS711に処理を移す。
On the other hand, in step S710, since the
また、ステップS711では、事前性能評価プログラム203は、データ生成処理プログラム204に、生成済みデータバッファ211に格納されたオーギュメンテーションデータの一部を生成済みデータ退避領域303に退避させる。ステップS711が終了すると、事前性能評価プログラム203は、ステップS712に処理を移す。
Further, in step S711, the
また、ステップS712では、事前性能評価プログラム203は、データ生成処理プログラム204に、ステップS703の事前性能評価時に作成したオーギュメンテーションデータを生成済みデータバッファ211に格納させる。ステップS712が終了すると、事前性能評価プログラム203は、ステップS709に処理を移す。
Further, in step S712, the
ステップS709から処理を移されたステップS701では、事前性能評価プログラム203は、データ生成リストセット311を再確認し、事前性能評価が未実行のデータオーギュメンテーションプログラム312が、存在する場合は再度ステップS703の事前性能評価を行い、存在しない場合はデータ生成リストセット311が更新されるのを待つ。以上がデータ登録フェーズの動作である。
In step S701, the process is transferred from step S709, the
なお、ストレージ装置104の事前に決められたデータ領域(フォルダなど)にデータ生成リストセット311、データオーギュメンテーションプログラム312、及び元データ313を書き込むのは、必ずしも学習サーバ(主)101である必要はなく、ストレージ装置104にアクセスできる機器であれば、何れでもよい。
It is not always the learning server (main) 101 that writes the data generation list set 311 and the
<実施例1の学習フェーズ>
図9、図10、及び図11を用いて、実施例1の学習フェーズの動作を示す。学習フェーズは、さらに、データ生成動作フロー及び生成済みデータ領域の解放動作フローを含む。図9は、実施例1のストレージ装置の学習フェーズにおける論理的構成の一例を示す図であり、学習フェーズにおける学習サーバ101、102とストレージ装置104の各プログラム及びデータの関係を示す。図10は、実施例1のストレージ装置における学習フェーズの処理の一例を示すフローチャートであり、学習フェーズにおけるストレージ装置104のデータ生成動作フローを示す。図11は、実施例1のストレージ装置におけるバッファ領域解放処理の一例を示すフローチャートであり、不要になった生成済みデータ領域の解放動作フローを示す。
<Learning phase of Example 1>
The operation of the learning phase of the first embodiment is shown with reference to FIGS. 9, 10, and 11. The learning phase further includes a data generation operation flow and a generation data area release operation flow. FIG. 9 is a diagram showing an example of a logical configuration in the learning phase of the storage device of the first embodiment, and shows the relationship between each program and data of the learning
学習フェーズは、図9に示すように、学習サーバ(主)101が学習プログラム501を起動するところから始まる。学習サーバ(主)101は、学習プログラム501の初期化フェーズを実行し、その中でパラメータ送信APIを呼び出す。そして、学習サーバ(主)101において、パラメータ送信APIにより起動されたパラメータ送信ライブラリ502は、学習プログラム501の動的パラメータをストレージ装置104のパラメータ受信プログラム205に送信する。動的パラメータは、既述の通り、例えば学習サーバ(従)102の台数や、学習サーバ101、102における処理のスレッド数、メモリ112に一度に読み出す教師データ数、エポック数などである。その後、パラメータ送信ライブラリ502は、パラメータ受信プログラム205からの応答を待ち、学習プログラム501を待機させる。
As shown in FIG. 9, the learning phase starts from the point where the learning server (main) 101 starts the
<実施例1のデータ生成動作フロー>
図10に示すように、先ず、ステップS901では、データ生成管理プログラム201は、パラメータ受信プログラム205がパラメータ送信ライブラリ502から動的パラメータを受信したかを判定する。データ生成管理プログラム201は、パラメータ受信プログラム205がパラメータ送信ライブラリ502から動的パラメータを受信した場合(ステップS901:YES)、ステップS902に処理を移す。一方、データ生成管理プログラム201は、パラメータ受信プログラム205がパラメータ送信ライブラリ502から動的パラメータを受信していない場合(ステップS901:NO)、ステップS901を繰り返す。
<Data generation operation flow of Example 1>
As shown in FIG. 10, first, in step S901, the data
ステップS902では、データ生成管理プログラム201は、パラメータ受信プログラム205に、パラメータ送信ライブラリ502から受信した動的パラメータを、各プログラムから参照可能に保持させる。パラメータ受信プログラム205は、動的パラメータを各プログラムが利用可能な状態に保持するとともに、データ生成管理プログラム201とバッファサイズ抑制プログラム202に学習フェーズ開始を通知する。
In step S902, the data
続いて、ステップS903では、データ生成管理プログラム201は、パラメータ受信プログラム205から学習フェーズ開始の通知を受け、学習フェーズで読み出されるオーギュメンテーションデータに対応したデータ生成リスト401を読み出し、事前性能評価時に生成したオーギュメンテーションデータが生成済みデータ退避領域303に保持されているかを確認する。データ生成管理プログラム201は、事前性能評価時に生成したオーギュメンテーションデータが生成済みデータ退避領域303に保持されている場合(ステップS903:YES)、ステップS904に処理を移し、保持されていない場合(ステップS903:NO)、ステップS905に処理を移す。
Subsequently, in step S903, the data
ステップS904では、データ生成管理プログラム201は、ステップS903で生成済みデータ退避領域303に保持されているとされたオーギュメンテーションデータを、生成済みデータ退避領域303から生成済みデータバッファ211に読み出す。
In step S904, the data
続いて、ステップS905では、データ生成管理プログラム201は、データ生成処理プログラム204に、1回目の学習時に使用する初回データを生成させ、生成した初回データをもとにファイルエミュレーションプログラム207に応答準備をさせる。なお、この初回データは、学習サーバ101、102の台数、スレッド数、メモリ112に一度に読み出す教師データ数をもとに、そのサイズとファイル数が決定され、決定されたサイズで必要データ数分だけ生成される。また、この初回データに該当するデータのうち、ステップS904で生成済みデータバッファ211に読み出されたデータや、事前性能評価時に生成され生成済みデータバッファ211に残存しているデータは、再利用される。
Subsequently, in step S905, the data
続いて、ステップS906では、データ生成管理プログラム201は、データ生成処理プログラム204の応答準備が完了すると、パラメータ受信プログラム205に応答準備完了を通知し、応答準備完了をパラメータ送信ライブラリ502へ応答させる。その後、パラメータ送信ライブラリ502は、パラメータ受信プログラム205から応答準備完了を受信すると、待機させていた学習プログラム501を再開させ、学習サーバ101、102からストレージ装置104へのデータアクセスを開始させる。
Subsequently, in step S906, when the response preparation of the data
続いて、ステップS907では、データ生成管理プログラム201は、学習サーバ101、102からストレージ装置104へのデータアクセス(ファイルオープン)が発生したかを判定する。ここで、IO観測プログラム206は、学習サーバ101、102からストレージ装置104へのデータアクセスと、ファイルエミュレーションプログラム207による生成済みデータバッファ211に格納されているオーギュメンテーションデータを使用した学習サーバ101、102へのアクセス対象のデータ返却とを監視している。IO観測プログラム206は、このデータアクセス及びデータ返却をデータ生成管理プログラム201に通知する。また、同時に、IO観測プログラム206は、学習サーバ101、102がオーギュメンテーションデータを読み出す速度と、次データへのアクセス間隔についても監視する。
Subsequently, in step S907, the data
データ生成管理プログラム201は、学習サーバ101、102からストレージ装置104へのデータアクセス(ファイルオープン)が発生した場合(ステップS907:YES)、ステップS908に処理を移す。一方、データ生成管理プログラム201は、学習サーバ101、102からストレージ装置104へのデータアクセス(ファイルオープン)が発生していない場合(ステップS907:NO)、ステップS907を繰り返す。
When the data access (file open) from the learning
ステップS908では、データ生成管理プログラム201は、ステップS907でのデータアクセスに続く後続データアクセスが発生するかを判定する。ここで、データ生成管理プログラム201は、ステップS907でIO観測プログラム206から通知されたデータアクセスの後続データが存在する場合、もしくは、後続データは存在しないがエポック回数分のデータ読み出しが繰り返されていない場合、後続データアクセスが発生すると判定する。後続データとは、データ生成リスト401において現在読み出されているオーギュメンテーションデータに該当する行の次の行に該当するデータであり、後続する加工データの要求が見込まれと判断できるデータである。
In step S908, the data
データ生成管理プログラム201は、後続データアクセスが発生する場合(ステップS908:YES)、ステップS909に処理を移し、後続データアクセスが発生しない場合(ステップS908:NO)、ステップS901に処理を戻す。データ生成管理プログラム201は、後続データアクセスが発生しないと判定した場合、アクセス中の学習データを使用した学習が終了したと判定し、次のパラメータ送信APIの起動を待つ。
When the subsequent data access occurs (step S908: YES), the data
ステップS909では、データ生成管理プログラム201は、生成済みデータバッファ211及び生成済みデータ退避領域303の何れかに後続データアクセスに該当する必要データがあるかに応じて後続データの生成の要否を判定する。データ生成管理プログラム201は、生成済みデータバッファ211及び生成済みデータ退避領域303の何れにも後続データアクセスに該当する必要データが無い場合に後続データの生成が必要と判定し(ステップS909:YES)、ステップS910に処理を移す。一方、データ生成管理プログラム201は、生成済みデータバッファ211及び生成済みデータ退避領域303の何れかに後続データアクセスに該当する必要データが有る場合に後続データの生成が不要と判定し(ステップS909:NO)、ステップS907に処理を移し、データアクセスの発生を待つ。
In step S909, the data
ステップS910では、データ生成管理プログラム201は、後続データの生成が必要であるので、パラメータ受信プログラム205が保持する動的パラメータと、IO観測プログラム206が観測しているデータアクセス状況とをもとに、学習サーバ101、102が学習データを読み出すスループットを計算する。この計算結果と、事前性能評価結果302に格納された、後続データに対するデータオーギュメンテーションプログラム312の単位処理性能(単位スレッド性能)をもとに、データ生成スループットが学習データの読み出しスループットを上回るようにデータ生成用リソース(例えばCPU122のスレッド数)を調整し決定する。
In step S910, since the data
続いて、ステップS911では、データ生成管理プログラム201は、データ生成処理プログラム204に、ステップS909で生成が必要と判定された後続データアクセスのデータ生成処理を、ステップS910で調整したデータ生成用リソースで実行させる。データ生成処理プログラム204は、後続データアクセスで使用されるオーギュメンテーションデータを生成し、生成済みデータバッファ211に格納する。ステップS911が終了すると、データ生成管理プログラム201は、ステップS907に処理を移し、学習サーバ101、102からのデータアクセスを待つ。
Subsequently, in step S911, the data
<実施例1の生成済みデータ領域の解放動作フロー>
図11に示すステップS1001及びステップS1002では、バッファサイズ抑制プログラム202は、図10に示すデータ生成管理プログラム201が行うステップS901及びステップS902と同様の処理を実行する。
<Release operation flow of the generated data area of Example 1>
In steps S1001 and S1002 shown in FIG. 11, the buffer
続いて、ステップS1003では、バッファサイズ抑制プログラム202は、パラメータ受信プログラム205から、パラメータ送信APIを受信及び保持の通知を受け、IO観測プログラム206による学習サーバ101、102からの生成済みデータバッファ211の生成済みデータに対するファイルクローズ(アクセス終了)の検出通知を待ち、アクセス終了が発生したかを判定する。バッファサイズ抑制プログラム202は、ファイルクローズ発生の場合(ステップS1003:YES)、ステップS1004に処理を移し、ファイルクローズ発生でない場合(ステップS1003:NO)、ステップS1003を繰り返す。
Subsequently, in step S1003, the buffer
ステップS1004では、バッファサイズ抑制プログラム202は、IO観測プログラム206からのファイルクローズの検出通知を、生成済みのオーギュメンテーションデータ毎にカウントし、ファイルクローズ回数が同時アクセス数、すなわち学習サーバ101、102の数と等しくなったかを判定する。バッファサイズ抑制プログラム202は、ファイルクローズ回数が同時アクセスと等しくなった場合(ステップS1004:YES)、ステップS1005に処理を移し、ファイルクローズ回数が同時アクセス数未満の場合(ステップS1004:NO)、ステップS1003に処理を戻す。
In step S1004, the buffer
ステップS1005では、バッファサイズ抑制プログラム202は、データ生成処理プログラム204に、ステップS1004でファイルクローズ回数が同時アクセス数と等しくなったという解放条件を満たした生成済みデータが格納される生成済みデータバッファ211及び生成済みデータ退避領域303のバッファ領域を解放させる。ファイルクローズ回数が、学習サーバ101、102の数と等しくなった生成済みデータは、学習サーバ101、102からのアクセスが終了したとみなすことができる。
In step S1005, the buffer
続いて、ステップS1006では、バッファサイズ抑制プログラム202は、データ生成リストセット311で使用している全てのバッファ領域が解放されたかを判定する。すなわち、バッファサイズ抑制プログラム202は、データ生成処理プログラム204を介して、生成済みデータが格納される生成済みデータバッファ211及び生成済みデータ退避領域303のバッファ領域に、データ生成リストセット311に含まれる現在学習対象のオーギュメンテーションデータが記載されているデータ生成リスト401の使用中領域が残っているかを判定する。
Subsequently, in step S1006, the buffer
バッファサイズ抑制プログラム202は、データ生成リストセット311で使用している全てのバッファ領域が解放された場合(ステップS1006:YES)、ステップS1001に処理を移し、全てのバッファ領域が解放されていない場合(ステップS1006:NO)、ステップS1003に処理を移す。バッファサイズ抑制プログラム202は、ステップS1003〜ステップS1006の処理を、データ生成リストセット311に含まれるデータ生成リスト401で使用している全ての生成済みデータバッファ211及び生成済みデータ退避領域303が解放されるまで繰り返し実行する。
When all the buffer areas used in the data generation list set 311 are released (step S1006: YES), the buffer
以上の実施例1では、ストレージ装置104は、学習システム1Sで用いられる学習データのデータ準備処理(画像データの加工による教師データの水増し)をストレージ装置104側で行う。つまり、ストレージ装置104は、学習サーバ101、102からデータ要求を受け付けてからデータ準備処理を行う。
In the above-described first embodiment, the
ここで、データ準備処理で生成する教師データのファイルサイズが大容量となる場合、例えば学習サーバ101、102のメモリ上に展開し切れない大容量の教師データをパッキングして中間データとして取り扱う場合に、ストレージ装置104がデータ要求を受け付けてからファイル生成して送信開始するまでの時間(レイテンシ)が長くなり、学習サーバ側がタイムアウトするなどの問題が発生しうる。
Here, when the file size of the teacher data generated in the data preparation process becomes large, for example, when packing a large amount of teacher data that cannot be expanded on the memories of the learning
これに対し、実施例1では、ストレージ装置104は、データ要求を受け付ける前に、事前に送信用データを用意し、学習サーバの要求に即したバッファサイズ及びバッファ領域の解放可否を判別し、バッファサイズが必要最低限になるよう最適管理する。
On the other hand, in the first embodiment, the
すなわち、実施例1では、ストレージ装置104は、学習サーバ101、102へのデータ供給の速度に合わせてデータ生成を制御し、また、複数の学習サーバ101、102からのデータアクセスを監視して不要となったバッファ領域を解放することで、ストレージ装置によるデータ供給とバッファ破棄を最適に制御する。
That is, in the first embodiment, the
このように、ストレージ装置104は、データ生成動作フロー及び生成済みデータ領域の解放動作フローの2つの動作フローで、学習時のアクセス開始前における動的なオーギュメンテーションデータ生成と、アクセス終了後におけるオーギュメンテーションデータの格納バッファ領域の解放とを並行して行う。これにより、必要最小限のストレージリソースで学習データを準備し、ファイルオープン時には遅延を起こすことなくオーギュメンテーションデータを学習処理に使用することが可能となる。
In this way, the
本発明の実施例2について、図12〜図10を用いて説明する。実施例2では、実施例1と比較して、ストレージ装置におけるオーギュメンテーションデータの生成の際に、CPUに加えてアクセラレータを用いる点が異なる。 Example 2 of the present invention will be described with reference to FIGS. 12 to 10. The second embodiment is different from the first embodiment in that an accelerator is used in addition to the CPU when generating augmentation data in the storage device.
図12を用いて、本発明の前提となるシステムのハードウェアの論理的構造を説明する。図12は、実施例2のストレージ装置を含む学習システムのハードウェアの論理的構成の一例を示す図である。実施例2のストレージ装置1104を含む学習システム2Sは、実施例1のストレージ装置104を含む学習システム1Sと比較して、ストレージ装置1104がアクセラレータ1126をさらに有する点が異なる。その他については、実施例2の学習システム2Sは、実施例1の学習システム1Sと同様であるので、説明を省略する。
The logical structure of the hardware of the system which is the premise of the present invention will be described with reference to FIG. FIG. 12 is a diagram showing an example of the logical configuration of the hardware of the learning system including the storage device of the second embodiment. The
アクセラレータ1126は、データオーギュメンテーションに関わる処理をCPU122の代わりに、もしくは連携して高速で実行するものである。アクセラレータ1126は、ASIC(Application Specific Integrated Circuit)やGPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)などを用いて、構成することができる。
The
<実施例2のストレージ装置のメモリに格納されるプログラムとデータ>
図13を用いて、ストレージ装置1104のメモリ124に格納されるプログラム及び情報を示す。図13は、実施例2のストレージ装置のメモリに格納されるプログラムとデータの一例を示す図である。
<Program and data stored in the memory of the storage device of Example 2>
FIG. 13 shows programs and information stored in the
実施例2のストレージ装置1104は、実施例1のストレージ装置104と比較して、メモリ124に、データ生成処理プログラム204に代えてアクセラレータ対応データ生成処理プログラム1204が格納される点が異なる。実施例2のストレージ装置1104のメモリ124に格納されるその他のプログラムとデータは、実施例1のストレージ装置104のメモリ124に格納されるプログラムとデータと同様であるので、説明を省略する。
The
アクセラレータ対応データ生成処理プログラム1204は、データ生成管理プログラム201から起動され、実際のデータオーギュメンテーションを行う。アクセラレータ対応データ生成処理プログラム1204は、CPU122に加えアクセラレータ1126も使用して処理を行う。
The accelerator-compatible data
<実施例2のストレージ装置のストレージデータ領域に格納されるデータ>
図14を用いて、ストレージ装置1104の記憶領域に格納される情報を示す。図14は、実施例2のストレージ装置のストレージデータ領域に格納されるデータの一例を示す図である。
<Data stored in the storage data area of the storage device of the second embodiment>
FIG. 14 shows information stored in the storage area of the
実施例2のストレージデータ領域1301は、ストレージ装置104が内蔵するドライブ125上に論理的に構成された記憶領域である。実施例2のストレージデータ領域1301は、実施例1のストレージデータ領域301と比較して、事前性能評価結果302に代えて事前性能評価結果1302格納され、アクセラレータ用プログラム1314がさらに格納される点が異なる。実施例2のストレージデータ領域1301に格納されるその他のデータは、実施例1のストレージデータ領域に301に格納されるデータと同様であるので、説明を省略する。
The
事前性能評価結果1302と生成済みデータ退避領域303は、ストレージデータ領域1301に格納されるもののユーザには公開されないデータである。一方、データ生成リストセット311、データオーギュメンテーションプログラム312、アクセラレータ用プログラム1314、元データ313については、ユーザによってストレージデータ領域1301に格納されるデータである。このストレージデータ領域1301には、上記データ以外のデータも格納されてもよい。
The
データ生成リストセット311は、ユーザが元データ313に対して行いたいデータオーギュメンテーションと、利用するアクセラレータ1126、データオーギュメンテーションの結果として学習サーバ101、102が学習に使用することとなるデータの関係づけを記載するリストの集合である。実施例1では、データ生成リストセット311には、データ生成リスト401が含まれるとしたが、実施例2では、データ生成リスト401に代えて拡張データ生成リスト1401が含まれる。
The data generation list set 311 includes data augmentation that the user wants to perform on the
<実施例1の拡張データ生成リスト>
図15は、実施例2のデータ生成リストセットに含まれるデータ生成リストの一例を示す図である。なお、データ生成リストセット311に含まれる複数の拡張データ生成リスト1401のそれぞれには、データ生成リストセット311内でユニークなIDが付与されて識別される。
<Extended data generation list of Example 1>
FIG. 15 is a diagram showing an example of a data generation list included in the data generation list set of the second embodiment. Each of the plurality of extended data generation lists 1401 included in the data generation list set 311 is assigned a unique ID in the data generation list set 311 and identified.
拡張データ生成リスト1401は、実施例1のデータ生成リスト401と比較して、アクセラレータ1411と、アクセラレータプログラム1412との2つの列をさらに含む点が異なる。拡張データ生成リスト1401は、その他の点では、実施例1のデータ生成リスト401と同様であるので、説明を省略する。
The extended
拡張データ生成リスト1401は、複数行からなり、1組の入力データ411とデータオーギュメンテーションプログラム412とオプション413とアクセラレータ1411とアクセラレータプログラム1412と出力データ414との対応が1行に記載される。1行が1つの出力ファイルに対応する。
The extended
拡張データ生成リスト1401では、入力データ411に対してデータオーギュメンテーションで使用するアクセラレータ1126の種類がアクセラレータ1411に、アクセラレータ1126が実行するプログラム名がアクセラレータプログラム1412に記載される。アクセラレータプログラムには、オプションが付与されていてもよい。
In the extended
なお、アクセラレータ1411に、アクセラレータ1126を使用しないことを示すキーワードとして、NONEと記載することもできる。また、ストレージ装置1104に複数のアクセラレータ1126が搭載されている場合には、アクセラレータ1126毎にアクセラレータ1411及びアクセラレータプログラム1412の各列を設け、アクセラレータ1126毎に、アクセラレータ1126の使用又は不使用と、アクセラレータ1126が実行するプログラム名とが記載されてもよい。
In addition, NONE may be described as a keyword indicating that the
<実施例2の事前性能評価結果を記録するテーブル>
図16を参照して、事前性能評価結果1302を記録するテーブルについて説明する。図16は、実施例2の事前性能評価結果を記録するテーブルの一例を示す図である。
<Table for recording the preliminary performance evaluation results of Example 2>
A table for recording the
事前性能評価結果1302のテーブルは、実施例1の事前性能評価結果302のテーブルと比較して、アクセラレータ1321と、アクセラレータプログラム1322との2つの列をさらに含む点が異なる。事前性能評価結果1302のテーブルは、その他の点では、実施例1の事前性能評価結果302のテーブルと同様であるので、説明を省略する。
The table of the
事前性能評価結果1302のテーブルは、複数行からなり、1組のデータオーギュメンテーションプログラム321とオプション322とアクセラレータ1321とアクセラレータプログラム1322と単位処理性能323との対応が1行に記載される。
The table of the
データオーギュメンテーションプログラム321とオプション322とアクセラレータ1321とアクセラレータプログラム1322との組合せは、拡張データ生成リスト1401に記載されているデータオーギュメンテーションプログラム412とオプション413とアクセラレータ1411とアクセラレータプログラム1412との組合せに対応する。すなわち、事前性能評価プログラム203は、事前性能評価結果1302のテーブルの各行に記載のデータオーギュメンテーションプログラム412とオプション413とアクセラレータ1411とアクセラレータプログラム1412との全ての組合せから重複排除した組合せを、該当する加工対象の入力データ411のうちの1つに対して実行し、単位スレッドあたりの性能を測定する。そして、事前性能評価プログラム203は、データオーギュメンテーションプログラム321とオプション322とアクセラレータ1321とアクセラレータプログラム1322との組合せを実行して測定した単位スレッドあたりの性能を、単位処理性能323に記録する。
The combination of the
<実施例2の学習システムにおける学習処理>
以上を有する実施例2の学習システム2Sにおける学習処理を行う手順を以降に示す。学習システム2Sにおける学習処理は、実施例1の学習システム1Sにおける学習処理と同様に、データ登録フェーズ及び学習フェーズがある。以下、実施例1との差分についてのみ説明する。
<Learning process in the learning system of Example 2>
The procedure for performing the learning process in the
<実施例2のデータ登録フェーズ>
図17を用いて、実施例2のデータ登録フェーズの動作を説明する。図17は、実施例2のストレージ装置のデータ登録フェーズにおける論理的構成の一例を示す図であり、データ登録フェーズにおける学習サーバ(主)101とストレージ装置1104の各プログラム及びデータの関係を示す。なお、実施例2のストレージ装置におけるデータ登録フェーズの処理フローの説明は、図8を援用し、実施例1のストレージ装置104、データ生成処理プログラム204、及びデータ生成リスト401を、実施例2のストレージ装置1104、アクセラレータ対応データ生成処理プログラム1204、及び拡張データ生成リスト1401に読み替えて説明する。
<Data registration phase of Example 2>
The operation of the data registration phase of the second embodiment will be described with reference to FIG. FIG. 17 is a diagram showing an example of a logical configuration in the data registration phase of the storage device of the second embodiment, and shows the relationship between each program and data of the learning server (main) 101 and the
実施例2のデータ登録フェーズの処理において、先ず、学習サーバ(主)101は、図17のステップS1700で示すように、ストレージ装置1104の事前に決められたデータ領域(フォルダなど)に、データ生成リストセット311に含まれるある拡張データ生成リスト1401と、データオーギュメンテーションプログラム312と、アクセラレータ用プログラム1214と、元データ313とを書き込む。ストレージ装置1104のデータ領域に書き込まれる拡張データ生成リスト1401に記載されている入力データ411、データオーギュメンテーションプログラム412、及びアクセラレータプログラム1412のそれぞれが指し示すデータとプログラムとが、データ生成リスト401とほぼ同時に書き込まれる元データ313、データオーギュメンテーションプログラム312、及びアクセラレータ用プログラム1214とである。
In the process of the data registration phase of the second embodiment, first, as shown in step S1700 of FIG. 17, the learning server (main) 101 generates data in a predetermined data area (folder or the like) of the
また、実施例2では、図8のステップS701において、ストレージ装置104の事前性能評価プログラム203は、データ生成リストセット311が更新されるのを監視する。事前性能評価プログラム203は、データ生成リストセット311に含まれる拡張データ生成リスト1401が新規登録もしくは更新されている場合(ステップS701:YES)、ステップS702に処理を移し、新規登録も更新もされていない場合(ステップS701:NO)、ステップS701を繰り返す。
Further, in the second embodiment, in step S701 of FIG. 8, the
また、実施例2では、図8のステップS702において、事前性能評価プログラム203は、新規登録もしくは更新された拡張データ生成リスト1401に対応するデータオーギュメンテーションプログラム312、アクセラレータ用プログラム1214、及び元データ313が格納済みかを確認する。事前性能評価プログラム203は、拡張データ生成リスト1401に対応するデータオーギュメンテーションプログラム312、アクセラレータ用プログラム1214、及び元データ313が格納済みの場合(ステップS702:YES)、ステップS703に処理を移し、格納済みでない場合(ステップS702:NO)、ステップS702を繰り返し、格納の完了を待つ。
Further, in the second embodiment, in step S702 of FIG. 8, the
また、実施例2では、図8のステップS703において、事前性能評価プログラム203は、アクセラレータ対応データ生成処理プログラム1204に、新規追加もしくは更新が確認された拡張データ生成リスト1401に記載されているデータオーギュメンテーション(データオーギュメンテーションプログラム、オプション、アクセラレータ、及びアクセラレータプログラムの組合せ)の1つを、例えばCPU122の1スレッドで1つの入力データに対して実行させる事前性能評価を行う。
Further, in the second embodiment, in step S703 of FIG. 8, the
アクセラレータ対応データ生成処理プログラム1204は、拡張データ生成リスト1401にアクセラレータ1126を使用する指定がある場合は、アクセラレータ1126も使用してオーギュメンテーションデータを作成する。アクセラレータ対応データ生成処理プログラム1204は、事前性能評価の際、オーギュメンテーションデータを作成するとともに、単位スレッドあたりの性能(スループットなど)を測定する。
When the extended
また、実施例2では、図8のステップS704において、事前性能評価プログラム203は、アクセラレータ対応データ生成処理プログラム1204による処理が完了した後、性能測定結果をストレージデータ領域にある事前性能評価結果1302のテーブルに記録する(図16参照)。
Further, in the second embodiment, in step S704 of FIG. 8, the
また、実施例2では、図8のステップS705〜ステップS708、ステップS710〜ステップS712においては、実施例1と同様の処理を行う。 Further, in the second embodiment, the same processing as in the first embodiment is performed in steps S705 to S708 and steps S710 to S712 of FIG.
また、実施例2では、図8のステップS709において、事前性能評価プログラム203は、テップS701で新規追加もしくは更新が確認された拡張データ生成リスト1401内に、ステップS703の性能測定を行っていないデータオーギュメンテーションが有るかを判定する。事前性能評価プログラム203は、新規追加もしくは更新が確認された拡張データ生成リスト1401内に性能測定を行っていないデータオーギュメンテーションが有る場合(ステップS709:YES)、ステップS703に処理を移す。一方、事前性能評価プログラム203は、新規追加もしくは更新が確認されたデータ生成リスト401内に、性能測定を行っていないデータオーギュメンテーションが無い場合(ステップS709:NO)、ステップS701に処理を移す。以上が実施例2のデータ登録フェーズの動作である。
Further, in the second embodiment, in step S709 of FIG. 8, the
なお、ストレージ装置1104の事前に決められたデータ領域(フォルダなど)にデータ生成リストセット311、データオーギュメンテーションプログラム312、アクセラレータ用プログラム1214、及び元データ313を書き込むのは、必ずしも学習サーバ(主)101である必要はなく、ストレージ装置1104にアクセスできる機器であれば、何れでもよい。
It is not always the learning server (mainly) that writes the data generation list set 311, the
<実施例2の学習フェーズ>
図18を用いて、実施例2の学習フェーズの動作を示す。実施例2においても、実施例1と同様に、学習フェーズは、さらに、データ生成動作フロー及び生成済みデータ領域の解放動作フローを含む。図18は、実施例2のストレージ装置の学習フェーズにおける論理的構成の一例を示す図であり、学習フェーズにおける学習サーバ101、102とストレージ装置1104の各プログラム及びデータの関係を示す。
<Learning phase of Example 2>
FIG. 18 shows the operation of the learning phase of the second embodiment. In the second embodiment as well, the learning phase further includes the data generation operation flow and the release operation flow of the generated data area, as in the first embodiment. FIG. 18 is a diagram showing an example of a logical configuration in the learning phase of the storage device of the second embodiment, and shows the relationship between each program and data of the learning
なお、実施例2のストレージ装置における学習フェーズのデータ生成動作フローの説明は、図10を援用し、実施例1のストレージ装置104、データ生成処理プログラム204、及びデータ生成リスト401を、実施例2のストレージ装置1104、アクセラレータ対応データ生成処理プログラム1204、及び拡張データ生成リスト1401に読み替えて説明する。以下では、実施例1との差分があるステップのみ説明する。
For the explanation of the data generation operation flow of the learning phase in the storage device of the second embodiment, FIG. 10 is referred to, and the
実施例2の学習フェーズは、図18に示すように、学習サーバ(主)101が学習プログラム501を起動するところから始まる。学習サーバ(主)101は、学習プログラム501の初期化フェーズを実行し、その中でパラメータ送信APIを呼び出す。そして、学習サーバ(主)101において、パラメータ送信APIにより起動されたパラメータ送信ライブラリ502は、学習プログラム501の動的パラメータをストレージ装置1104のパラメータ受信プログラム205に送信する。
As shown in FIG. 18, the learning phase of the second embodiment starts from the point where the learning server (main) 101 starts the
<実施例2のデータ生成動作フロー>
実施例2では、図10のステップS903において、データ生成管理プログラム201は、パラメータ受信プログラム205から学習フェーズ開始の通知を受け、学習フェーズで読み出されるオーギュメンテーションデータに対応した拡張データ生成リスト1401を読み出し、事前性能評価時に生成したオーギュメンテーションデータが生成済みデータ退避領域303に保持されているかを確認する。データ生成管理プログラム201は、事前性能評価時に生成したオーギュメンテーションデータが生成済みデータ退避領域303に保持されている場合(ステップS903:YES)、ステップS904に処理を移し、保持されていない場合(ステップS903:NO)、ステップS905に処理を移す。
<Data generation operation flow of Example 2>
In the second embodiment, in step S903 of FIG. 10, the data
また、実施例2では、図10のステップS905において、データ生成管理プログラム201は、アクセラレータ対応データ生成処理プログラム1204に、1回目の学習時に使用する初回データを生成させ、生成した初回データをもとにファイルエミュレーションプログラム207に応答準備をさせる。この際、拡張データ生成リスト1401にアクセラレータ1126の使用が指定されている場合は、アクセラレータ1126とアクセラレータ用プログラム1214も使用する。なお、この初回データは、学習サーバ101、102の台数、スレッド数、メモリ112に一度に読み出す教師データ数をもとに、そのサイズとファイル数が決定され、決定されたサイズで必要データ数分だけ生成される。また、この初回データに該当するデータのうち、ステップS904で生成済みデータバッファ211に読み出されたデータや、事前性能評価時に生成され生成済みデータバッファ211に残存しているデータは、再利用される。
Further, in the second embodiment, in step S905 of FIG. 10, the data
また、実施例2では、図10のステップS906において、データ生成管理プログラム201は、アクセラレータ対応データ生成処理プログラム1204の応答準備が完了すると、パラメータ受信プログラム205に応答準備完了を通知し、応答準備完了をパラメータ送信ライブラリ502へ応答させる。その後、パラメータ送信ライブラリ502は、パラメータ受信プログラム205から応答準備完了を受信すると、待機させていた学習プログラム501を再開させ、学習サーバ101、102からストレージ装置1104へのデータアクセスを開始させる。
Further, in the second embodiment, in step S906 of FIG. 10, when the response preparation of the accelerator-compatible data
また、実施例2では、図10のステップS908において、データ生成管理プログラム201は、ステップS907でのデータアクセスに続く後続データアクセスが発生するかを判定する。ここで、データ生成管理プログラム201は、ステップS907でIO観測プログラム206から通知されたデータアクセスの後続データが存在する場合、もしくは、後続データは存在しないがエポック回数分のデータ読み出しが繰り返されていない場合、後続データアクセスが発生すると判定する。後続データとは、拡張データ生成リスト1401において現在読み出されているオーギュメンテーションデータに該当する行の次の行に該当するデータである。
Further, in the second embodiment, in step S908 of FIG. 10, the data
また、実施例2では、図10のステップS911において、データ生成管理プログラム201は、アクセラレータ対応データ生成処理プログラム1204に、ステップS909で生成が必要と判定された後続データのデータ生成処理を実行させる。ステップS911が終了すると、データ生成管理プログラム201は、ステップS907に処理を移し、生成済みデータバッファ211に次のアクセスで使用されるデータを準備させて、学習サーバ101、102からのデータアクセスを待つ。
Further, in the second embodiment, in step S911 of FIG. 10, the data
<実施例1の生成済みデータ領域の解放動作フロー>
実施例2のストレージ装置における生成済みデータ領域の解放動作フローの説明は、図11を援用し、実施例1のストレージ装置104、データ生成処理プログラム204、及びデータ生成リスト401を、実施例2のストレージ装置1104、アクセラレータ対応データ生成処理プログラム1204、及び拡張データ生成リスト1401に読み替えて説明する。以下では、実施例1との差分があるステップのみ説明する。
<Release operation flow of the generated data area of Example 1>
For the explanation of the release operation flow of the generated data area in the storage device of the second embodiment, FIG. 11 is referred to, and the
実施例2では、図11のステップS1005において、バッファサイズ抑制プログラム202は、アクセラレータ対応データ生成処理プログラム1204に、ステップS1004でファイルクローズ回数が同時アクセス数と等しくなった生成済みデータが格納される生成済みデータバッファ211及び生成済みデータ退避領域303のバッファ領域を解放させる。
In the second embodiment, in step S1005 of FIG. 11, the buffer
また、実施例2では、図11のステップS1006において、バッファサイズ抑制プログラム202は、データ生成リストセット311で使用している全てのバッファ領域が解放されたかを判定する。すなわち、バッファサイズ抑制プログラム202は、アクセラレータ対応データ生成処理プログラム1204を介して、生成済みデータが格納される生成済みデータバッファ211及び生成済みデータ退避領域303のバッファ領域にデータ生成リストセット311の使用中領域が残っているかを判定する。
Further, in the second embodiment, in step S1006 of FIG. 11, the buffer
また、実施例2では、バッファサイズ抑制プログラム202は、データ生成リストセット311で使用している全てのバッファ領域が解放された場合(ステップS1006:YES)、ステップS1001に処理を移し、全てのバッファ領域が解放されていない場合(ステップS1006:NO)、ステップS1003に処理を移す。バッファサイズ抑制プログラム202は、ステップS1003〜ステップS1006の処理を、データ生成リストセット311に含まれる拡張データ生成リスト1401で使用している全ての生成済みデータバッファ211及び生成済みデータ退避領域303が解放されるまで繰り返し実行する。
Further, in the second embodiment, the buffer
以上のデータ生成動作フロー及び生成済みデータ領域の解放動作フローの2つの動作フローで、学習時のアクセス開始前におけるアクセラレータ1126を使用した動的なオーギュメンテーションデータ生成と、アクセス終了後におけるオーギュメンテーションデータの格納バッファ領域の解放とを並行して行うことができる。これにより、必要最小限のストレージリソースで、アクセラレータを使用して高速に学習データを準備し、ファイルオープン時には遅延を起こすことなくオーギュメンテーションデータを学習処理に使用することが可能となる。
In the above two operation flows, the data generation operation flow and the release operation flow of the generated data area, the dynamic augmentation data generation using the
本発明は上記した実施例に限定されるものではなく、様々な変形例を含む。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した構成を備えるものに限定されない。また、矛盾しない限りにおいて、ある実施例の構成の一部を他の実施例の構成で置き換えたり、ある実施例の構成に他の実施例の構成を加えたりすることも可能である。また、各実施例の構成の一部について、追加、削除、置換、統合、及び分割をすることが可能である。 The present invention is not limited to the above-described examples, but includes various modifications. For example, the above-described embodiment has been described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to those having the described configuration. Further, as long as there is no contradiction, it is possible to replace a part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. In addition, it is possible to add, delete, replace, integrate, and divide a part of the configuration of each embodiment.
1S,2S:学習システム、101:学習サーバ(主)、102:学習サーバ(従)、103:ネットワーク、104:ストレージ装置、112:メモリ、122:CPU、124:メモリ、125:ドライブ、201:データ生成管理プログラム、202:バッファサイズ抑制プログラム、203:事前性能評価プログラム、204:データ生成処理プログラム、205:パラメータ受信プログラム、206:IO観測プログラム、207:ファイルエミュレーションプログラム、211:生成済みデータバッファ、301:ストレージデータ領域、302:事前性能評価結果、303:生成済みデータ退避領域、311:データ生成リストセット、312:データオーギュメンテーションプログラム、313:元データ、321:データオーギュメンテーションプログラム、322:オプション、323:単位処理性能、401:データ生成リスト、411:入力データ、412:データオーギュメンテーションプログラム、413:オプション、414:出力データ、501:学習プログラム、502:パラメータ送信ライブラリ、1104:ストレージ装置、1126:アクセラレータ、1204:アクセラレータ対応データ生成処理プログラム、
1214:アクセラレータ用プログラム、1301:ストレージデータ領域、1302:事前性能評価結果、1314:アクセラレータ用プログラム、1321:アクセラレータ、1322:アクセラレータプログラム、1401:拡張データ生成リスト、1411:アクセラレータ、1412:アクセラレータプログラム
1S, 2S: Learning system, 101: Learning server (main), 102: Learning server (subordinate), 103: Network, 104: Storage device, 112: Memory, 122: CPU, 124: Memory, 125: Drive, 201: Data generation management program, 202: Buffer size suppression program, 203: Pre-performance evaluation program, 204: Data generation processing program, 205: Parameter reception program, 206: IO observation program, 207: File emulation program, 211: Generated data buffer , 301: Storage data area, 302: Preliminary performance evaluation result, 303: Generated data save area, 311: Data generation list set, 312: Data augmentation program, 313: Original data, 321: Data augmentation program, 322: Option, 323: Unit processing performance, 401: Data generation list, 411: Input data, 412: Data augmentation program, 413: Option, 414: Output data, 501: Learning program, 502: Parameter transmission library, 1104 : Storage device, 1126: Accelerator, 1204: Accelerator-compatible data generation processing program,
1214: Accelerator program, 1301: Storage data area, 1302: Pre-performance evaluation result, 1314: Accelerator program, 1321: Accelerator, 1322: Accelerator program, 1401: Extended data generation list, 1411: Accelerator, 1412: Accelerator program
Claims (13)
外部から取得された元データを記憶する記憶部と、
前記サーバからの加工データの要求に応じて、前記記憶部に記憶されている元データのうちから選択した元データに対して加工を行って加工データを生成する生成部と、
前記生成部による加工データの生成に先立って、前記生成部が該加工データを生成する際の処理性能を評価する評価部と
を有し、
前記評価された処理性能に基づいて前記生成部により前記加工データを生成し、生成した加工データを前記サーバに送信することを特徴とするストレージ装置。 In a storage device connected to a server via a network
A storage unit that stores the original data acquired from the outside,
A generation unit that generates processing data by processing the original data selected from the original data stored in the storage unit in response to a request for processing data from the server.
Prior to the generation of the processing data by the generation unit, the generation unit has an evaluation unit for evaluating the processing performance when the processing data is generated.
A storage device characterized in that the generation unit generates the processing data based on the evaluated processing performance and transmits the generated processing data to the server.
前記生成管理部は、
予め通知された前記ストレージ装置から前記サーバへのデータ読み出しに関するパラメータと前記サーバから前記ストレージ装置へのアクセス状況とから、前記ストレージ装置から前記サーバへのデータ読み出し速度を計算し、前記評価部により評価された加工データの単位リソースあたりの生成速度と前記計算したデータ読み出し速度とから、前記生成部が加工データを生成する生成速度を調整し、
前記生成部は、
前記生成管理部により調整された生成速度で、前記サーバに送信する加工データを生成する
ことを特徴とする請求項1に記載のストレージ装置。 It also has a generation management unit that manages the generation of machining data by the generation unit.
The generation management unit
The data read speed from the storage device to the server is calculated from the parameters related to data read from the storage device to the server and the access status from the server to the storage device notified in advance, and evaluated by the evaluation unit. The generation speed at which the generation unit generates the processing data is adjusted from the generation speed per unit resource of the processed processing data and the calculated data reading speed.
The generator
The storage device according to claim 1, wherein processing data to be transmitted to the server is generated at a generation rate adjusted by the generation management unit.
前記サーバからの加工データの要求に応じて、前記記憶領域に記憶されている加工データを前記サーバに送信することを特徴とする請求項1に記載のストレージ装置。 It has a storage area for storing the processing data generated by the generation unit, and has a storage area.
The storage device according to claim 1, wherein the processing data stored in the storage area is transmitted to the server in response to a request for processing data from the server.
前記サーバからの加工データの要求があった際に、前記評価の際に前記生成部により生成された加工データが前記記憶領域に記憶されている場合には、該加工データを前記記憶領域から読み出して前記サーバに送信することを特徴とする請求項5に記載のストレージ装置。 The processing data generated by the generation unit at the time of evaluation of the processing performance by the evaluation unit is stored in the storage area.
When the processing data is requested from the server and the processing data generated by the generation unit at the time of the evaluation is stored in the storage area, the processing data is read out from the storage area. The storage device according to claim 5, wherein the data is transmitted to the server.
前記サーバからの要求に応じて加工データを前記サーバに送信した後、前記サーバから該加工データの要求に後続する加工データの要求が見込まれるか否かを判定し、
前記生成部は、
前記生成管理部により後続する加工データの要求が見込まれと判定された場合に、前記サーバからの該要求に応じて前記サーバに送信する該後続する加工データを、予め生成して前記記憶領域に記憶させておくことを特徴とする請求項5に記載のストレージ装置。 The generation management unit
After transmitting the machining data to the server in response to the request from the server, it is determined whether or not the request for machining data following the request for the machining data is expected from the server.
The generator
When it is determined by the generation management unit that a request for subsequent processing data is expected, the subsequent processing data to be transmitted to the server in response to the request from the server is generated in advance and stored in the storage area. The storage device according to claim 5, wherein the storage device is stored.
前記生成部は、前記元データのうちから選択したデータに対してデータオーギュメンテーションを行って、前記教師データとなる前記加工データを生成することを特徴とする請求項1に記載のストレージ装置。 The server is a server that performs machine learning of teacher data.
The storage device according to claim 1, wherein the generation unit performs data augmentation on data selected from the original data to generate the processed data to be the teacher data.
前記生成部は、前記アクセラレータを用いて前記加工データを生成することを特徴とする請求項1に記載のストレージ装置。 Has more accelerators,
The storage device according to claim 1, wherein the generation unit uses the accelerator to generate the processing data.
前記ストレージ装置が、
外部から取得された元データを記憶部に記憶し、
前記サーバからの加工データの要求に応じて、前記記憶部に記憶されている元データのうちから選択した元データに対して加工を行って加工データを生成し、
前記加工データの生成に先立って、該加工データを生成する際の処理性能を評価し、
前記評価した処理性能に基づいて前記加工データを生成し、
前記生成した加工データを前記サーバに送信する
各処理を含んだことを特徴とするストレージ装置におけるデータ処理方法。 In the data processing method in the storage device connected to the server via the network
The storage device
The original data acquired from the outside is stored in the storage unit,
In response to a request for processing data from the server, processing is performed on the original data selected from the original data stored in the storage unit to generate processing data.
Prior to the generation of the processing data, the processing performance at the time of generating the processing data is evaluated.
The processing data is generated based on the evaluated processing performance, and the processing data is generated.
A data processing method in a storage device, which includes each process of transmitting the generated processed data to the server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019039970A JP2020144553A (en) | 2019-03-05 | 2019-03-05 | Storage device and data processing method in the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019039970A JP2020144553A (en) | 2019-03-05 | 2019-03-05 | Storage device and data processing method in the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020144553A true JP2020144553A (en) | 2020-09-10 |
Family
ID=72354212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019039970A Pending JP2020144553A (en) | 2019-03-05 | 2019-03-05 | Storage device and data processing method in the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020144553A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024038555A1 (en) * | 2022-08-18 | 2024-02-22 | 日本電気株式会社 | System, device, method, and non-transitory computer-readable medium |
-
2019
- 2019-03-05 JP JP2019039970A patent/JP2020144553A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024038555A1 (en) * | 2022-08-18 | 2024-02-22 | 日本電気株式会社 | System, device, method, and non-transitory computer-readable medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853139B2 (en) | Dynamic workload management based on predictive modeling and recommendation engine for storage systems | |
EP2851807B1 (en) | Method and system for supporting resource isolation under multi-core architecture | |
US20230350595A1 (en) | Data Migration Method, Host, and Solid State Disk | |
US9213500B2 (en) | Data processing method and device | |
US9262090B2 (en) | Asynchronous data mirroring in memory controller | |
US20200356282A1 (en) | Distributed Storage System, Data Processing Method, and Storage Node | |
JP2016539406A (en) | Hybrid storage | |
US20140298333A1 (en) | Migration processing program, migration method, and cloud computing system | |
WO2018054079A1 (en) | Method for storing file, first virtual machine and namenode | |
US9558232B1 (en) | Data movement bulk copy operation | |
WO2017092002A1 (en) | Data migration method applicable to computer system, and device and computer system utilizing same | |
CN104937564B (en) | The data flushing of group form | |
US20160085445A1 (en) | Method operating raid system and data storage systems using write command log | |
CN109564502B (en) | Processing method and device applied to access request in storage device | |
CN107729536A (en) | A kind of date storage method and device | |
CN109522154A (en) | Data reconstruction method and relevant device and system | |
JP6652647B2 (en) | Storage system | |
CN107250995B (en) | Memory management device | |
US20200301599A1 (en) | Storage system and data transfer method | |
CN108733585B (en) | Cache system and related method | |
US10069698B2 (en) | Fault-tolerant monitoring apparatus, method and system | |
JP4719801B2 (en) | Device management apparatus, device initialization method, device initialization program, and device system | |
JP2020144553A (en) | Storage device and data processing method in the same | |
US10564847B1 (en) | Data movement bulk copy operation | |
US10698638B2 (en) | Data transmission method and host system using the same |