WO2019082982A1 - 分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体 - Google Patents

分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体

Info

Publication number
WO2019082982A1
WO2019082982A1 PCT/JP2018/039734 JP2018039734W WO2019082982A1 WO 2019082982 A1 WO2019082982 A1 WO 2019082982A1 JP 2018039734 W JP2018039734 W JP 2018039734W WO 2019082982 A1 WO2019082982 A1 WO 2019082982A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
machine learning
data format
distributed processing
execution
Prior art date
Application number
PCT/JP2018/039734
Other languages
English (en)
French (fr)
Inventor
理人 浅原
Original Assignee
日本電気株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2019550290A priority Critical patent/JP6922995B2/ja
Priority to US16/759,202 priority patent/US11656917B2/en
Publication of WO2019082982A1 publication Critical patent/WO2019082982A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a distributed processing system constituting a distributed processing infrastructure, a distributed processing management apparatus for managing execution servers in the distributed infrastructure, and a distributed processing method, and further, a computer reading a program for realizing the same. It relates to a possible recording medium.
  • Patent Document 1 Patent Document 1
  • Apache Hadoop and Apache Spark are known as an example of the distributed processing infrastructure.
  • Apache Spark it is possible to reduce the latency when processing a job configured in multiple stages, and to realize data use between jobs. For this reason, Apache Spark is particularly effective for machine learning in which the same process needs to be repeatedly performed many times (see, for example, Non-Patent Document 1).
  • the user selects a machine learning library according to the purpose from various available machine learning libraries. Then, the user executes machine learning on the distributed processing platform using the selected machine learning library.
  • Patent Document 2 discloses a technique for comparing a plurality of machine learning libraries and presenting the comparison result to the user.
  • An example of the object of the present invention is a distributed processing management apparatus and distributed processing method which can solve the above problems and enable use of a plurality of machine learning libraries while reducing the burden on the user on a distributed processing platform. And providing a computer readable recording medium.
  • the distributed processing management apparatus is a distributed processing management apparatus communicably connected to a plurality of execution servers that execute distributed processing, For each of the plurality of execution servers, a data format usable by a machine learning engine executed by the execution server is specified, and the data format of data held by the execution server is converted into the specified data format It has a conversion instruction unit that gives instructions. It is characterized by
  • a distributed processing method is a method for performing distributed processing using a plurality of execution servers, (A) For each of the plurality of execution servers, a data format usable by the machine learning engine executed by the execution server is specified, and the data format of data held by the execution server is the specified data format Give instructions to convert, with steps It is characterized by
  • a computer readable recording medium is a computer readable recording medium recording a program for performing distributed processing by a computer using a plurality of execution servers. And On the computer (A) For each of the plurality of execution servers, a data format usable by the machine learning engine executed by the execution server is specified, and the data format of data held by the execution server is the specified data format It is characterized in that a program is recorded that includes instructions for instructing to convert, executing steps, and the like.
  • a plurality of machine learning libraries can be used on a distributed processing platform while reducing the burden on the user.
  • FIG. 1 is a block diagram showing a schematic configuration of a distributed processing management apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a specific configuration of the distributed processing management apparatus according to the embodiment of the present invention.
  • FIG. 3 is a flow chart showing the operation of the distributed processing management apparatus in the embodiment of the present invention.
  • FIG. 4 is a diagram showing instruction data when the distributed processing management device designates a machine learning engine in the embodiment of the present invention.
  • FIG. 5 is a diagram showing instruction data when the distributed processing management device instructs conversion to a common format in the embodiment of the present invention.
  • FIG. 6 is a diagram showing instruction data when the distributed processing management device instructs conversion to a format corresponding to a machine learning engine in the embodiment of the present invention.
  • FIG. 1 is a block diagram showing a schematic configuration of a distributed processing management apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a specific configuration of the distributed processing management apparatus according to the embodiment of the present invention
  • FIG. 7 is a flow chart showing one operation of the execution server used in the embodiment of the present invention.
  • FIG. 8 is a view showing an example of data held by each execution server in the specific example 1 of the embodiment of the present invention.
  • FIG. 9 is a view showing an example of the common format used in the specific example 1 of the embodiment of the present invention.
  • FIG. 10 is a diagram showing an example in which the data format of data held by each execution server shown in FIG. 8 is converted into a common format.
  • FIG. 11 is a diagram showing an example of a data format used by the machine learning engine in the specific example 1 of the embodiment of the present invention.
  • FIG. 12 is a diagram showing a state in which the data of the common format shown in FIG. 9 is converted into the data format shown in FIG. FIG.
  • FIG. 13 is a diagram showing an example of a data format used by the machine learning engine in the second specific example of the embodiment of the present invention.
  • FIG. 14 is a diagram showing the data of the common format shown in FIG. 9 converted to the data format shown in FIG.
  • FIG. 15 is a block diagram showing an example of a computer for realizing the distributed processing management apparatus according to the embodiment of this invention.
  • the first machine learning engine handling the first data format and the second machine learning engine handling the second data format different from the first data format are The idea of “perform” does not exist and is not disclosed in any prior art. This is because, originally, a plurality of different machine learning engines use different data formats. For example, one machine learning engine needs to read data in LibSVM format, while another machine learning engine needs to read data in CSV format. For this reason, conventionally, a plurality of machine learning engines with different data types are not executed on one distributed processing platform.
  • the machine learning engine to be used is specified on the distributed processing base, and the data held on the distributed processing base is converted into the data format usable by the specified machine learning engine.
  • the function is provided. According to the present invention, it is possible to execute a plurality of machine learning engines different in data format on one distributed processing platform. In particular, when the first machine learning engine and the second machine learning engine belong to different machine learning libraries, according to the present invention, a plurality of machine learning libraries are executed on one distributed processing infrastructure. Is possible.
  • Machine learning library A machine learning library is a set of a plurality of programs (object code) required for machine learning. Each program is componentized so that it can be called and used from other programs. Specific examples of the machine learning library include, for example, scikit-learn or TensorFlow.
  • Machine learning engine Of a plurality of programs included in a machine learning library, a program for executing machine learning is called a machine learning engine.
  • machine learning engines included in scikit-learn are LinearSVC and RandomForestClassifier.
  • LinearSVC is a machine learning engine that implements the Support Vector Classification algorithm using a linear kernel.
  • RandomForestClassifier is a machine learning engine that executes the Random Forest algorithm, which is a group learning algorithm that uses a decision tree as a weak learner.
  • the Random Forest algorithm is a group learning algorithm that uses a decision tree as a weak learner.
  • LSTM Long Short-term Memory
  • CNN Convolution Neural Network
  • Data format Specific examples of the data format include an RDD format, a LibSVM format, a CSV format, and the like.
  • the column in which the objective variable (label) is to be arranged, the difference in delimiter, and the like can also be mentioned as the difference in data format.
  • data formats read by a plurality of machine learning engines included in one machine learning library are often common.
  • a plurality of machine learning engines included in scikit-learn can commonly read data in LibSVM format.
  • a plurality of machine learning engines included in TensorFlow can read data in a CSV (comma-separated value) format in common.
  • machine learning engines belonging to different machine learning libraries often handle different data types.
  • Embodiment The distributed processing management apparatus, distributed processing method, and computer readable recording medium according to the embodiment of the present invention will be described below with reference to FIGS. 1 to 15.
  • FIG. 1 is a block diagram showing a schematic configuration of a distributed processing management apparatus according to an embodiment of the present invention.
  • the distributed processing management apparatus 10 in the present embodiment is communicably connected to a plurality of execution servers 20 that execute distributed processing via a network 40.
  • the distributed processing management apparatus 10 constructs a distributed processing platform 30 together with the execution server 20.
  • the distributed processing management device 10 in the present embodiment is provided with a conversion instruction unit 11.
  • the conversion instruction unit 11 first specifies, for each execution server 20, data formats that can be used by the machine learning engine executed by the execution server 20.
  • the conversion instructing unit 11 instructs, for each execution server 20, to convert the data format of the data held by the execution server into the specified data format.
  • the distributed processing management device 10 specifies data formats that can be used by the machine learning engine executed by each execution server 20, and for each execution server 20, the data format is Convert to a data format compatible with the learning engine.
  • the data format handled in one distributed processing infrastructure is not limited to one type.
  • the distributed processing management device 10 converts data into a data format suitable for each machine learning engine, the user can use a plurality of machine learning libraries without performing complicated task definition, and The burden of task definition can be reduced.
  • FIG. 2 is a block diagram showing a specific configuration of the distributed processing management apparatus according to the embodiment of the present invention.
  • the distributed processing management device 10 includes, in addition to the conversion instructing unit 11, a pre conversion instructing unit 12, a task receiving unit 13, a data relocation instructing unit 14, and learning. And a model generation instruction unit 15.
  • the pre-conversion instructing unit 12 instructs, for each execution server 20, the data format of the data held by each execution server 20 to be converted into a predetermined common format.
  • a common format for example, there is a data format including only feature amounts and labels used by a machine learning engine used by each execution server 20 (see FIG. 6 described later).
  • the conversion instructing unit 11 specifies, for each execution server 20, the data format of the data converted into the common format when the data format usable by the machine learning engine executed there is specified.
  • An instruction is given to convert to a data format (eg, LibSVM format, CSV format, etc.).
  • the task accepting unit 13 accepts task definitions of distributed processing executed by each of the execution servers 20.
  • the data relocation instructing unit 14 should hold each of the execution servers 20 based on the task definition received by the task reception unit 13 when each of the execution servers 20 holds data used for distributed processing in advance. Determine the data.
  • the data relocation instruction unit 14 instructs each of the execution servers 20 to relocate data so as to hold data according to the determination.
  • the pre-conversion instructing unit 12 instructs the execution server 20 to convert the data format of the rearranged data into the common format.
  • the learning model generation instructing unit 15 specifies a machine learning engine to be executed by each execution server 20 for each execution server 20, and gives an instruction to generate a learning model using the specified machine learning engine. Further, in this case, the conversion instructing unit 11 can use, for each of the execution servers 20, data formats of data held by the execution server 20, data usable by the machine learning engine designated by the learning model generation instructing unit 15. Give instructions to convert to a format.
  • the execution server group in which the plurality of execution servers 20 execute the first machine learning engine capable of using the first data format, and the second data different from the first data format may be an aspect including an execution server group that executes a second machine learning engine that can use the format.
  • the first machine learning engine and the second machine learning engine belong to different machine learning libraries.
  • FIGS. 1 and 2 will be referred to as appropriate.
  • the distributed processing method is implemented by operating the distributed processing management apparatus 10. Therefore, the description of the distributed processing method in the present embodiment is replaced with the following description of the operation of the distributed processing management apparatus 10.
  • FIG. 3 is a flow chart showing the operation of the distributed processing management apparatus in the embodiment of the present invention.
  • FIG. 4 is a diagram showing instruction data when the distributed processing management device designates a machine learning engine in the embodiment of the present invention.
  • FIG. 5 is a diagram showing instruction data when the distributed processing management device instructs conversion to a common format in the embodiment of the present invention.
  • FIG. 6 is a diagram showing instruction data when the distributed processing management device instructs conversion to a format corresponding to a machine learning engine in the embodiment of the present invention.
  • the task receiving unit 13 receives a task definition of distributed processing executed by each of the execution servers 20 (step A1).
  • the task definition is input, for example, by an administrator of the distributed processing platform 30 via an external terminal device.
  • the data relocation instructing unit 14 holds each of the execution servers 20 based on the task definition received in step A1.
  • the data to be determined is determined (step A2).
  • step A3 the learning model generation instructing unit 15 specifies, for each execution server 20, a machine learning engine to be used by the execution server 20 (step A3). Specifically, for example, the learning model generation instructing unit 15 transmits instruction data shown in FIG. 4 to each execution server 20.
  • the pre-conversion instructing unit 12 instructs each of the execution servers 20 to convert the data format of the held data into a common format (step A4). Specifically, the pre-conversion instructing unit 12 transmits, for example, instruction data shown in FIG. 5 to each execution server 20. As a result, steps B1 and B2 shown in FIG. 7 described later are executed, and each execution server 20 converts the data format of the held data into a common format.
  • the data relocation instruction unit 14 instructs each of the execution servers 20 to relocate data so as to hold data according to the determination in step A2 (step A5).
  • step A5 When step A5 is executed, each execution server 20 executes steps B3 and B4 shown in FIG. 7 described later.
  • the data converted to the common format is in a state of being properly disposed on each execution server.
  • the learning model generation instructing unit 15 instructs each of the execution servers 20 to generate a learning model using the machine learning engine designated in step A3 (step A6). Specifically, the learning model generation instructing unit 15 instructs each execution server 20 to generate a learning model by specifying a machine learning library to be used there. Thereby, in each execution server 20, step B5 shown in FIG. 7 described later is executed.
  • the “machine learning library” is a file including a machine learning engine and various tools required for machine learning, and is provided for each machine learning.
  • the machine learning library may be prepared by the distributed processing management device 10 or may be prepared in an external device.
  • step A6 conversion instruction unit 11 instructs each execution server 20 to convert the data format of the data held by it into the data format usable by the designated machine learning engine.
  • step A7 the conversion instructing unit 11 transmits, for example, instruction data shown in FIG. 7 to each execution server 20.
  • steps B6 to B8 shown in FIG. 7 described later are executed.
  • FIG. 7 is a flow chart showing one operation of the execution server used in the embodiment of the present invention. In the following, the operation will be described by taking one of a plurality of execution servers as an example.
  • Step B1 Convert the data format of the held data into a common format
  • step A5 shown in FIG. 3 is executed by the distributed processing management apparatus 10, and when data relocation is instructed, the execution server 20 receives the data relocation instruction (step B3), Data relocation is performed to correspond to the received instruction (step B4). Specifically, in step B4, the execution server 20 transmits data instructed to be transmitted to another execution server 20 to the execution server, and receives data transmitted from the other execution server 20. , Hold received data.
  • step A6 when the distributed processing management apparatus 10 executes step A6 shown in FIG. 3 and instructs generation of a learning model using the specified machine learning engine, the execution server 20 instructs generation of a learning model. Receive (step B5). Subsequently, step A6 is executed by the distributed processing management apparatus 10, and when the data format of the held data is instructed to be converted into a data format usable by the designated machine learning engine, the process is executed. The server 20 also receives this instruction (step B6).
  • the execution server 20 converts the data format of the held data into the data format instructed in step B6 (step B7), and using the converted data, the machine by the designated machine learning engine The learning is performed (step B8).
  • machine learning can be performed using different machine learning engines for each execution server.
  • the distributed processing platform 30 it is possible to use a plurality of machine learning libraries.
  • each execution server 20 since the data format of the data held by each execution server 20 is temporarily converted to the common format, each execution server 20 can easily use the data format. It can be converted into a format corresponding to a machine learning engine.
  • each execution server 20 specifies a current data format, and can convert the specified data format into a format corresponding to the machine learning engine used. Need to find out and then do the conversion. In this case, the processing load on the execution server is large, and the learning processing is delayed.
  • the conversion module used in this embodiment for converting the common format into a data format read by the new machine learning engine converts the data format suitable for the distributed processing platform into the data format read by the new machine learning engine Different from conversion module.
  • the conversion module that converts a common format into a data format read by a new machine learning engine it is possible to reduce the burden of implementation. Furthermore, as a result, the amount of program execution code at the time of adding a new machine learning engine is reduced, so that the risk of introducing a defect such as a bug can be reduced.
  • FIG. 6 is a diagram showing an example of conversion from a common format to a data format read by a machine learning engine.
  • two functions are shown.
  • One is a learnWithLibLinear () function (lines 12 to 24) that converts a common format into a data format read by a machine learning engine called LibLinear and executes the machine learning engine.
  • the other is a learnWithScikitLearn () function (lines 26 to 34) that converts the common format into a data format read by a machine learning engine called scikit-learn and executes the machine learning engine.
  • FIG. 8 is a view showing an example of data held by each execution server in the specific example 1 of the embodiment of the present invention.
  • FIG. 9 is a view showing an example of the common format used in the specific example 1 of the embodiment of the present invention.
  • FIG. 10 is a diagram showing an example in which the data format of data held by each execution server shown in FIG. 8 is converted into a common format.
  • FIG. 11 is a diagram showing an example of a data format used by the machine learning engine in the specific example 1 of the embodiment of the present invention.
  • FIG. 12 is a diagram showing a state in which the data of the common format shown in FIG. 9 is converted into the data format shown in FIG.
  • execution server A and execution server B the number of execution servers 20 is two, and each of them is referred to as execution server A and execution server B.
  • machine learning engines to be used are different, and it is assumed that available data formats are also different.
  • execution servers A and B hold data in different data formats.
  • the common format is the feature quantities (feature quantities 1 to 3, predicted target variables) used by the machine learning engine used by the execution servers A and B. It is a data format including a label (sample ID). In this case, the feature amount is used as a candidate for an explanatory variable in machine learning.
  • the pre-conversion instructing unit 12 instructs each of the execution servers A and B to convert the data format of the held data into a common format
  • the execution servers A and B As shown in FIG. 10, the data format is converted to a common format.
  • the conversion instructing unit 11 instructs the execution server A to convert the data format into the data format of the machine learning engine A. Furthermore, the conversion instruction unit 11 instructs the execution server B to convert the data format into the data format of the machine learning engine B.
  • the data format of the data held by each of the execution servers A and B shown in FIG. 10 is converted as shown in FIG. Specifically, the execution server A removes the column of the sample ID in the common format, and also removes the column names of the remaining columns. Also, the execution server B moves the column of predicted target variables in the common format to the second column from the left, and further removes each column name.
  • FIG. 12 column names are written in parentheses together for the sake of explanation.
  • each execution server 20 can easily convert the data format into a format corresponding to the machine learning engine used. .
  • a one-dimensional array may be adopted as a common format.
  • the common format may be a format obtained by converting the common format shown in FIG. 9 into a one-dimensional array in the row direction.
  • the data shown in FIG. 9 is as follows.
  • the first element indicates the number of rows of the original table
  • the second element indicates the number of columns of the original table. (2,5, 1.0, 1.8, 3.0, 2.5, 1.0, 2.0, 3.4, 1.0, -2.9, -1.0)
  • the machine learning engine requests a data format in which a one-dimensional array in the column direction is adopted as the data format.
  • the data in the row-direction one-dimensional array is converted as follows. (2,5, 1.0, 2.0, 1.8, 3.4, 3.0, 1.0, 2.5, -2.9, 1.0, -1.0)
  • FIG. 13 is a diagram showing an example of a data format used by the machine learning engine in the second specific example of the embodiment of the present invention.
  • FIG. 14 is a diagram showing the data of the common format shown in FIG. 9 converted to the data format shown in FIG.
  • the data held by the execution servers A and B is the same as the first example, and the common format is also the same as the first example.
  • the data format required by the machine learning engine A is the same as that of the first example, and is expressed by dense matrix representation.
  • the data format required by the machine learning engine B is expressed by a sparse matrix expression unlike the specific example 1.
  • the sparse matrix representation is a linked list representation in which element positions and values are arranged.
  • the execution server A removes the string of the sample ID in the common format as in the first embodiment. And remove the column names of the remaining columns.
  • the execution server B changes the dense matrix expression to the sparse matrix expression and removes the column name.
  • the data format of the data held by each of the execution servers A and B shown in FIG. 10 is converted as shown in FIG. Also in the second example, as in the first example, since the data format of the data held by each execution server 20 is once converted to the common format, each execution server 20 can easily use the data format. It can be converted into a format corresponding to a machine learning engine.
  • a machine learning engine can be executed using Java Native Interface (JNI) on Java.
  • JNI Java Native Interface
  • machine learning can be performed on Java without separately providing a memory space.
  • the program in the embodiment of the present invention may be a program which causes a computer to execute steps A1 to A7 shown in FIG.
  • the processor of the computer functions as the conversion instructing unit 11, the pre conversion instructing unit 12, the task receiving unit 13, the data relocation instructing unit 14, and the learning model generation instructing unit 15, and performs processing.
  • the program in the present embodiment may be executed by a computer system constructed by a plurality of computers.
  • each computer functions as any of the conversion instructing unit 11, the pre conversion instructing unit 12, the task receiving unit 13, the data relocation instructing unit 14, and the learning model generation instructing unit 15. good.
  • FIG. 15 is a block diagram showing an example of a computer for realizing the distributed processing management apparatus according to the embodiment of this invention.
  • the computer 110 includes a central processing unit (CPU) 111, a main memory 112, a storage device 113, an input interface 114, a display controller 115, a data reader / writer 116, and a communication interface 117. And these units are communicably connected to each other via a bus 121.
  • CPU central processing unit
  • main memory 112 main memory
  • storage device 113 main memory
  • input interface 114 input interface
  • display controller 115 a data reader / writer 116
  • communication interface 117 a communication interface 117.
  • These units are communicably connected to each other via a bus 121.
  • the CPU 111 develops the program (code) in the present embodiment stored in the storage device 113 in the main memory 112 and executes various operations by executing these in a predetermined order.
  • the main memory 112 is typically a volatile storage device such as a dynamic random access memory (DRAM).
  • DRAM dynamic random access memory
  • the program in the present embodiment is provided in the state of being stored in computer readable recording medium 120.
  • the program in the present embodiment may be distributed on the Internet connected via communication interface 117.
  • the storage device 113 besides a hard disk drive, a semiconductor storage device such as a flash memory may be mentioned.
  • the input interface 114 mediates data transmission between the CPU 111 and an input device 118 such as a keyboard and a mouse.
  • the display controller 115 is connected to the display device 119 and controls the display on the display device 119.
  • the data reader / writer 116 mediates data transmission between the CPU 111 and the recording medium 120, and executes reading of a program from the recording medium 120 and writing of the processing result in the computer 110 to the recording medium 120.
  • the communication interface 117 mediates data transmission between the CPU 111 and another computer.
  • the recording medium 120 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital), magnetic recording media such as flexible disk (Flexible Disk), or CD- An optical recording medium such as a ROM (Compact Disk Read Only Memory) may be mentioned.
  • CF Compact Flash
  • SD Secure Digital
  • magnetic recording media such as flexible disk (Flexible Disk)
  • CD- An optical recording medium such as a ROM (Compact Disk Read Only Memory) may be mentioned.
  • the distributed processing management apparatus 10 can also be realized by using hardware corresponding to each unit, not a computer on which a program is installed. Furthermore, the distributed processing management apparatus 10 may be partially realized by a program, and the remaining portion may be realized by hardware.
  • a distributed processing management apparatus communicably connected to a plurality of execution servers that execute distributed processing, comprising: For each of the plurality of execution servers, a data format usable by a machine learning engine executed by the execution server is specified, and the data format of data held by the execution server is converted into the specified data format It has a conversion instruction unit that gives instructions.
  • Distributed processing management apparatus characterized in that.
  • the plurality of execution servers execute an execution server group that executes a first machine learning engine that can use a first data format, and a second data format that can use a second data format different from the first data format And an execution server group that executes the machine learning engine of The first machine learning engine and the second machine learning engine belong to different machine learning libraries.
  • the distributed processing management device according to appendix 1.
  • the system further comprises a pre-conversion instructing unit that instructs each of the plurality of execution servers to convert the data format of the data held by the execution server into a predetermined common format.
  • the conversion instructing unit instructs each of the plurality of execution servers to convert the data format of the data converted into the common format into the specified data format.
  • the distributed processing management device according to appendix 1 or 2.
  • the common format is a data format including only feature quantities and labels used by a machine learning engine used by each of the plurality of execution servers.
  • the distributed processing management device according to appendix 3.
  • the system further comprises a task accepting unit that accepts task definitions of distributed processing executed by the plurality of execution servers.
  • the distributed processing management device according to appendix 3 or 4.
  • a learning model generation instructing unit for designating a machine learning engine to be executed by the execution server for each of the plurality of execution servers and giving an instruction to generate a learning model using the designated machine learning engine is further provided. Equipped The conversion instructing unit instructs each of the plurality of execution servers to convert the data format of the data held by the execution server into a data format usable by the designated machine learning engine.
  • the distributed processing management device according to any one of appendices 1 to 6.
  • a method for performing distributed processing using multiple execution servers comprising: (A) For each of the plurality of execution servers, a data format usable by the machine learning engine executed by the execution server is specified, and the data format of data held by the execution server is the specified data format Give instructions to convert, with steps Distributed processing method characterized by
  • the plurality of execution servers execute an execution server group that executes a first machine learning engine that can use a first data format, and a second data format that can use a second data format different from the first data format And an execution server group that executes the machine learning engine of The first machine learning engine and the second machine learning engine belong to different machine learning libraries.
  • each of the plurality of execution servers further comprising the step of instructing to convert the data format of the data held by the execution server into a predetermined common format;
  • the common format is a data format including only feature quantities and labels used by a machine learning engine used by each of the plurality of execution servers.
  • each of the plurality of execution servers holds data used for the distributed processing in advance
  • each of the plurality of execution servers is based on the task definition accepted in the step (c). Determining the data to be held, and instructing each of the plurality of execution servers to rearrange the data so as to hold the data corresponding to the determination;
  • the data format of the relocated data is converted to the common format for each of the plurality of execution servers.
  • (E) specifying a machine learning engine to be executed by the execution server for each of the plurality of execution servers, and instructing to generate a learning model using the designated machine learning engine; And In the step (a), for each of the plurality of execution servers, an instruction is given to convert the data format of the data held by the execution server into a data format usable by the designated machine learning engine.
  • the distributed processing method according to any one of appendices 9-14.
  • a computer-readable recording medium storing a program for performing distributed processing using a plurality of execution servers by a computer, comprising: On the computer (A) For each of the plurality of execution servers, a data format usable by the machine learning engine executed by the execution server is specified, and the data format of data held by the execution server is the specified data format
  • a computer readable recording medium recording a program, comprising instructions for instructing to convert, performing a step.
  • the plurality of execution servers execute an execution server group that executes a first machine learning engine that can use a first data format, and a second data format that can use a second data format different from the first data format And an execution server group that executes the machine learning engine of The first machine learning engine and the second machine learning engine belong to different machine learning libraries.
  • an execution server group that executes the machine learning engine of The first machine learning engine and the second machine learning engine belong to different machine learning libraries.
  • each of the plurality of execution servers further comprising the step of instructing to convert the data format of the data held by the execution server into a predetermined common format;
  • the computer-readable recording medium according to appendix 17 or 18.
  • the common format is a data format including only feature quantities and labels used by a machine learning engine used by each of the plurality of execution servers.
  • 24. The computer-readable recording medium according to appendix 19.
  • the program further causes the computer to (C) including an instruction to execute a step of accepting a task definition of distributed processing to be executed by the plurality of execution servers; 24.
  • the program further causes the computer to (D) When each of the plurality of execution servers holds data used for the distributed processing in advance, each of the plurality of execution servers is based on the task definition accepted in the step (c). Determining the data to be held, and instructing each of the plurality of execution servers to execute the step of instructing data relocation so as to hold the data corresponding to the determination; In the step (b), the data format of the relocated data is converted to the common format for each of the plurality of execution servers. 24.
  • the program further causes the computer to (E) An instruction to execute a step of designating a machine learning engine to be executed by the execution server for each of the plurality of execution servers, and instructing to generate a learning model using the designated machine learning engine Including
  • an instruction is given to convert the data format of the data held by the execution server into a data format usable by the designated machine learning engine.
  • the computer readable recording medium according to any one of appendices 17-22.
  • a plurality of machine learning libraries can be used on a distributed processing platform without increasing the burden on the user.
  • the present invention is useful for performing machine learning on a large amount of data by a distributed system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

分散処理管理装置10は、複数の実行サーバ20に通信可能に接続されている。分散処理管理装置10は、実行サーバ20毎に、実行サーバ20で実行される機械学習エンジンが利用可能なデータ形式を特定し、実行サーバ20が保持するデータのデータ形式を、特定したデータ形式に変換するよう指示を与える、変換指示部11を備えている。

Description

分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体
 本発明は、分散処理基盤を構成する分散処理システム、分散基盤において実行サーバを管理するための分散処理管理装置、及び分散処理方法に関し、更には、これらを実現するためのプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
 従来から、機械学習の分野においては、大量のデータを効率良く処理する必要があるため、データ処理を多数の実行サーバに分散して実行させる分散処理基盤が利用されている(例えば、特許文献1参照)。
 また、分散処理基盤の例としては、例えば、Apache Hadoop、Apache Sparkが知られている。このうち、Apache Sparkによれば、多段で構成されたジョブを処理する際のレイテンシーを小さくでき、更に、ジョブ間でのデータ利用を実現できる。このため、Apache Sparkは、同一の処理を反復して何度も実行する必要がある機械学習に特に有効である(例えば、非特許文献1参照)。
 また、通常、分散処理基盤を利用して機械学習を行う場合、ユーザは、利用可能な種々の機械学習ライブラリの中から、目的に応じた機械学習ライブラリを選択する。そして、ユーザは、選択した機械学習ライブラリを用いて、分散処理基盤上で機械学習を実行する。
 加えて、近年、利用可能な機械学習ライブラリは多数あり、適切な機械学習ライブラリを選択することは難しくなっている。このため、特許文献2は、複数の機械学習ライブラリを比較し、比較結果をユーザに提示する技術を開示している。
特開2012-22558号公報 特開2017-04509号公報
Sparks et al. "Automating Model Search for Large Scale Machine Learning." In ACM SoCC, 2015.
 ところで、特許文献2に開示された技術によれば、ユーザにおける機械学習ライブラリの選択は容易なものになると考えられるが、ユーザにおいては、一つだけではなく、複数の機械学習ライブラリを用いて、機械学習を実行したい場合がある。
 しかしながら、従来からの分散処理基盤では、複数の機械学習ライブラリを利用することは予定されておらず、複数の機械学習ライブラリを利用する場合は、ユーザにおけるタスク定義が煩雑となり、ユーザの負担が増大してしまう。
 本発明の目的の一例は、上記問題を解消し、分散処理基盤において、ユーザにおける負担の増大を軽減しつつ、複数の機械学習ライブラリの利用を可能にし得る、分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体を提供することにある。
 上記目的を達成するため、本発明の一側面における分散処理管理装置は、分散処理を実行する複数の実行サーバに通信可能に接続された分散処理管理装置であって、
 前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、変換指示部を備えている、
ことを特徴とする。
 また、上記目的を達成するため、本発明の一側面における分散処理方法は、複数の実行サーバを用いて分散処理を行うための方法であって、
(a)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、ステップを有する、
ことを特徴とする。
 更に、上記目的を達成するため、本発明の一側面におけるコンピュータ読み取り可能な記録媒体は、コンピュータによって複数の実行サーバを用いた分散処理を行うためのプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、ステップを実行させる、命令を含む、プログラムを記録していることを特徴とする。
 以上のように、本発明によれば、分散処理基盤において、ユーザにおける負担の増大を軽減しつつ、複数の機械学習ライブラリを利用することができる。
図1は、本発明の実施の形態における分散処理管理装置の概略構成を示すブロック図である。 図2は、本発明の実施の形態における分散処理管理装置の具体的構成を示すブロック図である。 図3は、本発明の実施の形態における分散処理管理装置の動作を示すフロー図である。 図4は、本発明の実施の形態における分散処理管理装置が機械学習エンジンを指定する際の指示データを示す図である。 図5は、本発明の実施の形態における分散処理管理装置が共通形式への変換を指示する際の指示データを示す図である。 図6は、本発明の実施の形態における分散処理管理装置が機械学習エンジンに対応する形式への変換を指示する際の指示データを示す図である。 図7は、本発明の実施の形態で用いられる実行サーバの一つの動作を示すフロー図である。 図8は、本発明の実施の形態の具体例1において各実行サーバが保持しているデータの一例を示す図である。 図9は、本発明の実施の形態の具体例1で用いられる共通形式の一例を示す図である。 図10は、図8に示した各実行サーバが保持しているデータのデータ形式を共通形式に変換した例を示す図である。 図11は、本発明の実施の形態の具体例1における機械学習エンジンで利用されるデータ形式の一例を示す図である。 図12は、図9に示す共通形式のデータを図11に示すデータ形式に変換した状態を示す図である。 図13は、本発明の実施の形態の具体例2における機械学習エンジンで利用されるデータ形式の一例を示す図である。 図14は、図9に示す共通形式のデータを図13に示すデータ形式に変換した状態を示す図である。 図15は、本発明の実施の形態における分散処理管理装置を実現するコンピュータの一例を示すブロック図である。
(発明の概要)
 従来においては、「第1のデータ形式を扱う第1の機械学習エンジンと、この第1のデータ形式とは異なる第2のデータ形式を扱う第2の機械学習エンジンとを、同じ分散処理基盤で実行する」という思想は、存在しておらず、いずれの先行文献にも開示されていない。これは、そもそも、複数の異なる機械学習エンジンは、互いに異なるデータ形式を用いているからである。例えば、ある機械学習エンジンは、LibSVM形式でデータを読みこむ必要があるのに対して、別の機械学習エンジンは、CSV形式でデータを読み込む必要がある。このため、従来において、データ形式の異なる複数の機械学習エンジンが一つの分散処理基盤で実行されることはない。
 これに対して、本発明では、分散処理基盤上に、使用される機械学習エンジンを特定し、分散処理基盤で保持されているデータを、特定した機械学習エンジンで利用可能なデータ形式に変換する機能が備えられている。本発明によれば、データ形式の異なる複数の機械学習エンジンを一つの分散処理基盤で実行することが可能となる。特に、第1の機械学習エンジンと第2の機械学習エンジンとが互いに異なる機械学習ライブラリに属している場合に、本発明によれば、複数の機械学習ライブラリを一つの分散処理基盤で実行することが可能となる。
(用語の説明)
 理解を容易にするため、以下に示す用語を説明する。
「機械学習ライブラリ」:機械学習ライブラリは、機械学習に必要となる複数のプログラム(オブジェクトコード)の集合である。各プログラムは他のプログラムから呼び出して利用可能なように部品化されている。機械学習ライブラリの具体例としては、例えばscikit-learnまたはTensorFlowなどが挙げられる。
 「機械学習エンジン」:機械学習ライブラリに含まれる複数のプログラムのうち、機械学習を実行するプログラムのことを機械学習エンジンと呼ぶ。例えば、scikit-learnに含まれる機械学習エンジンの具体例としてはLinearSVC、RandomForestClassifierがある。LinearSVCは、線形カーネルを使用したSupport Vector Classificationアルゴリズムを実行する機械学習エンジンである。RandomForestClassifierは、決定木を弱学習器とする集団学習アルゴリズムであるRandom Forestアルゴリズムを実行する機械学習エンジンである。Random Forestアルゴリズムは、決定木を弱学習器とする集団学習アルゴリズムである。例えば、TensorFlowに含まれる機械学習エンジンの具体例としてLSTM(Long short-term memory)、CNN(Convolution Neural Network)がある。LSTMは、再帰型ニューラルネットワークモデルの一種であるLong short-termmemoryモデルを学習するアルゴリズムを実行する、機械学習エンジンである。CNNは、畳み込みニューラルネットワークモデルを学習するアルゴリズムを実行する、機械学習エンジンである。
 「データ形式」:データ形式の具体例としては、RDD形式、LibSVM形式またはCSV形式などが挙げられる。他にも、教師有り機械学習のための訓練データについて、目的変数(ラベル)を何列目に配置するか、区切り文字の違いなども、データ形式の違いとして挙げられる。典型的には、一つの機械学習ライブラリに含まれる複数の機械学習エンジンが読み込むデータ形式は共通していることが多い。例えば、scikit-learnに含まれる複数の機械学習エンジンは共通してLibSVM形式でデータを読み込むことができる。TensorFlowに含まれる複数の機械学習エンジンは共通してCSV(comma-separated value)形式でデータを読み込むことができる。一方、同じ機械学習ライブラリに属する機械学習エンジンでも、典型的なデータ構造の違いとして、例えば数値0の要素も含めてすべての行列要素を記録する密行列表現と、要素の行・列の位置情報と要素の値を組にして記録する疎行列表現との違いがある。
 典型的には、異なる機械学習ライブラリに属する機械学習エンジンは、異なるデータ形式を扱うことが多い。
(実施の形態)
 以下、本発明の実施の形態における分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体について、図1~図15を参照しながら説明する。
[装置構成]
 最初に、本実施の形態における分散処理管理装置の概略構成について説明する。図1は、本発明の実施の形態における分散処理管理装置の概略構成を示すブロック図である。
 図1に示すように、本実施の形態における分散処理管理装置10は、ネットワーク40を介して、分散処理を実行する複数の実行サーバ20に通信可能に接続されている。分散処理管理装置10は、実行サーバ20と共に、分散処理基盤30を構築している。
 また、図1に示すように、本実施の形態における分散処理管理装置10は、変換指示部11を備えている。変換指示部11は、まず、実行サーバ20毎に、その実行サーバ20で実行される機械学習エンジンが利用可能なデータ形式を特定する。次いで、変換指示部11は、実行サーバ20毎に、その実行サーバが保持するデータのデータ形式を、特定したデータ形式に変換するよう指示を与える。
 このように、本実施の形態では、分散処理管理装置10は、各実行サーバ20で実行される機械学習エンジンで利用可能なデータ形式を特定し、実行サーバ20毎に、データ形式を、その機械学習エンジンに対応したデータ形式に変換する。
 従って、本実施の形態では、従来の分散処理基盤のように、一つの分散処理基盤において扱われるデータ形式が一種類に限定されることはない。言い換えると、本実施の形態では、一つの分散処理基盤において複数のデータ形式を扱うことが可能となる。典型的には、本実施の形態では、一つの分散処理基盤において複数の機械学習ライブラリを利用することが可能となる。また、分散処理管理装置10によって、各機械学習エンジンに適したデータ形式への変換が行われるので、ユーザは、複雑なタスク定義を行わなくても、複数の機械学習ライブラリを利用でき、ユーザにおけるタスク定義の負担を軽減することができる。
 続いて、図2を用いて、本実施の形態における分散処理管理装置10の構成についてより具体的に説明する。図2は、本発明の実施の形態における分散処理管理装置の具体的構成を示すブロック図である。
 図2に示すように、本実施の形態では、分散処理管理装置10は、変換指示部11に加えて、プレ変換指示部12と、タスク受付部13と、データ再配置指示部14と、学習モデル生成指示部15とを更に備えている。
 プレ変換指示部12は、実行サーバ20毎に、各実行サーバ20が保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える。共通形式としては、例えば、各実行サーバ20で利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式が挙げられる(後述の図6参照)。
 変換指示部11は、本実施の形態では、実行サーバ20毎に、そこで実行される機械学習エンジンが利用可能なデータ形式を特定すると、共通形式に変換されているデータのデータ形式を、特定したデータ形式(例えば、LibSVM形式、CSV形式等)に変換するよう指示を与える。
 タスク受付部13は、実行サーバ20それぞれによって実行される分散処理のタスク定義を受け付ける。
 データ再配置指示部14は、実行サーバ20それぞれが、分散処理に用いるデータを予め保持している場合において、タスク受付部13によって受け付けられたタスク定義に基づいて、実行サーバ20それぞれが保持すべきデータを決定する。
 また、データ再配置指示部14は、実行サーバ20それぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する。この場合、プレ変換指示部12は、実行サーバ20毎に、再配置後のデータのデータ形式を共通形式に変換するよう指示を与える。
 学習モデル生成指示部15は、実行サーバ20それぞれ毎に、各実行サーバ20で実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える。また、この場合において、変換指示部11は、実行サーバ20それぞれ毎に、その実行サーバ20が保持するデータのデータ形式を、学習モデル生成指示部15に指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える。
 また、本実施の形態は、複数の実行サーバ20が、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含んでいる態様であっても良い。この場合において、第1の機械学習エンジンと第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する。
[装置動作]
 次に、本発明の実施の形態における分散処理管理装置10及び各実行サーバ20の動作について図3及び図4を用いて説明する。以下の説明においては、適宜図1及び図2を参酌する。また、本実施の形態では、分散処理管理装置10を動作させることによって、分散処理方法が実施される。よって、本実施の形態における分散処理方法の説明は、以下の分散処理管理装置10の動作説明に代える。
 最初に、図3~図6を用いて、分散処理管理装置10の動作について説明する。図3は、本発明の実施の形態における分散処理管理装置の動作を示すフロー図である。図4は、本発明の実施の形態における分散処理管理装置が機械学習エンジンを指定する際の指示データを示す図である。図5は、本発明の実施の形態における分散処理管理装置が共通形式への変換を指示する際の指示データを示す図である。図6は、本発明の実施の形態における分散処理管理装置が機械学習エンジンに対応する形式への変換を指示する際の指示データを示す図である。
 図3に示すように、最初に、分散処理管理装置10において、タスク受付部13は、実行サーバ20それぞれによって実行される分散処理のタスク定義を受け付ける(ステップA1)。タスク定義は、例えば、分散処理基盤30の管理者によって、外部の端末装置を介して入力される。
 次に、データ再配置指示部14は、実行サーバ20それぞれが、分散処理に用いるデータを予め保持している場合において、ステップA1で受け付けられたタスク定義に基づいて、実行サーバ20それぞれが保持すべきデータを決定する(ステップA2)。
 次に、ステップA2が実行されると、学習モデル生成指示部15は、各実行サーバ20に対して、その実行サーバ20で利用される機械学習エンジンを指定する(ステップA3)。具体的には、学習モデル生成指示部15は、例えば、図4に示す指示データを各実行サーバ20に送信する。
 次に、プレ変換指示部12は、各実行サーバ20に、保持しているデータのデータ形式を共通形式に変換するよう指示を与える(ステップA4)。具体的には、プレ変換指示部12は、例えば、図5に示す指示データを各実行サーバ20に送信する。これにより、後述の図7に示すステップB1及びB2が実行され、各実行サーバ20は、保持しているデータのデータ形式を共通形式に変換する。
 次に、データ再配置指示部14は、実行サーバ20それぞれに対して、ステップA2の決定に応じたデータを保持するように、データの再配置を指示する(ステップA5)。ステップA5が実行されると、各実行サーバ20においては、後述の図7に示すステップB3及びB4が実行される。共通形式に変換されたデータが、各実行サーバに適切に配置された状態となる。
 続いて、学習モデル生成指示部15は、各実行サーバ20に、ステップA3で指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える(ステップA6)。具体的には、学習モデル生成指示部15は、各実行サーバ20に対して、そこで利用される機械学習ライブラリを指定して、学習モデルの生成を指示する。これにより、各実行サーバ20においては、後述の図7に示すステップB5が実行される。
 また、「機械学習ライブラリ」は、機械学習エンジンを始め、機械学習に必要となる各種ツールを含むファイルであり、機械学習毎に提供されている。本実施の形態では、機械学習ライブラリは、分散処理管理装置10によって用意されていても良いし、外部の機器に用意されていても良い。
 更に、ステップA6が実行されると、変換指示部11は、各実行サーバ20に、それが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える(ステップA7)。具体的には、変換指示部11は、例えば、図7に示す指示データを各実行サーバ20に送信する。これにより、各実行サーバ20においては、後述の図7に示すステップB6~B8が実行される。
 続いて、図7を用いて、実行サーバ20の動作について説明する。図7は、本発明の実施の形態で用いられる実行サーバの一つの動作を示すフロー図である。なお、以下においては、複数ある実行サーバのうちの一つを例にとって動作を説明する。
 図7に示すように、分散処理管理装置10によって、図3に示したステップA1~A4が実行され、共通形式への変換が指示されると、実行サーバ20は、この変換指示を受信し(ステップB1)、保持しているデータのデータ形式を共通形式に変換する(ステップB2)
 次に、分散処理管理装置10によって、図3に示したステップA5が実行され、データの再配置が指示されると、実行サーバ20は、データの再配置の指示を受信し(ステップB3)、受信した指示に対応するようにデータの再配置を実行する(ステップB4)。具体的には、ステップB4では、実行サーバ20は、他の実行サーバ20に送信するように指示されたデータをその実行サーバに送信し、他の実行サーバ20から送信されてきたデータを受信し、受信したデータを保持する。
 次に、分散処理管理装置10によって、図3に示したステップA6が実行され、指定した機械学習エンジンを用いた学習モデルの生成が指示されると、実行サーバ20は、学習モデルの生成指示を受信する(ステップB5)。続いて、分散処理管理装置10によって、ステップA6が実行され、保持しているデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するように指示が行われると、実行サーバ20は、この指示も受信する(ステップB6)。
 次に、実行サーバ20は、保持しているデータのデータ形式を、ステップB6で指示されたデータ形式に変換し(ステップB7)、変換後のデータを用いて、指定された機械学習エンジンによる機械学習を実行する(ステップB8)。
 このように、本実施の形態では、分散処理基盤30において、実行サーバ毎に、異なる機械学習エンジンを用いて機械学習を実行することができる。本実施の形態によれば、分散処理基盤30において、複数の機械学習ライブラリを利用することが可能である。
 また、本実施の形態では、各実行サーバ20が保持しているデータのデータ形式は、一旦、共通形式に変換されているので、各実行サーバ20は、データ形式を、簡単に、使用される機械学習エンジンに対応する形式に変換できる。
 仮に、データ形式が共通形式に変換されていない場合は、各実行サーバ20は、現在のデータ形式を特定し、特定したデータ形式を、使用される機械学習エンジンに対応する形式に変換できる変換モジュールを探し出し、その後、変換を行う必要がある。この場合、実行サーバにおける処理負担は大きく、学習処理が遅延してしまう。
 ところで、従来からの分散処理基盤において、新たな機械学習エンジンを追加する場合は、その分散処理基盤に適したデータ形式を新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールを用意する必要があり、このことはユーザにとって煩雑となる。一方、本実施の形態においても、分散処理基盤30において、新たな機械学習エンジンを追加する場合は、データ形式を共通形式に変換するための変換モジュールとして、そのエンジン専用の変換モジュールを用意する必要がある。
 しかしながら、本実施の形態において用いられる、共通形式を新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールは、分散処理基盤に適したデータ形式を新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールと異なる。共通形式から新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールを用いる場合は、実装の工数負荷を軽減できる。更に、この結果、新たな機械学習エンジンを追加する際のプログラムの実行コード量が低減されるので、バグ等の不具合が混入されるリスクの低減も図られる。
 つまり、分散処理基盤に適したデータ形式を新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールを用意するよりも、データ形式を共通形式から新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールを用意する方が、より簡単である。
 この理由を説明する。図6は、共通形式から機械学習エンジンが読み込むデータ形式に変換する例を示す図である。図6の例では、2つの関数が示されている。一つは、共通形式をLibLinearという機械学習エンジンが読み込むデータ形式に変換して当該機械学習エンジンを実行するlearnWithLibLinear()関数(12行目~24行目)である。もう一つは、共通形式をscikit-learnという機械学習エンジンが読み込むデータ形式に変換して当該機械学習エンジンを実行するlearnWithScikitLearn()関数(26行目~34行目)である。
 図6の例において着目すべき点は、機械学習エンジンを実行する命令の行を除き、2つの関数の変換処理で互いに相違する点が14行目と28行目とのそれぞれの1行部分のみにとどまっている点である。つまり変換モジュールの実装者は、機械学習エンジンによってデータ形式を変更する数行のみを変更するだけで変換モジュールを実装することができる。以上、共通形式から新たな機械学習エンジンが読み込むデータ形式に変換する変換モジュールを用意することが簡単である理由を説明した。
[具体例1]
 続いて、本実施の形態における具体例1について、図8~図12を用いて説明する。
図8は、本発明の実施の形態の具体例1において各実行サーバが保持しているデータの一例を示す図である。図9は、本発明の実施の形態の具体例1で用いられる共通形式の一例を示す図である。図10は、図8に示した各実行サーバが保持しているデータのデータ形式を共通形式に変換した例を示す図である。図11は、本発明の実施の形態の具体例1における機械学習エンジンで利用されるデータ形式の一例を示す図である。図12は、図9に示す共通形式のデータを図11に示すデータ形式に変換した状態を示す図である。
 以下の説明においては、実行サーバ20は2つであり、それぞれを実行サーバA、実行サーバBと表記するとする。そして、図8に示すように、実行サーバA及びBそれぞれにおいて、利用される機械学習エンジンは異なっており、利用可能なデータ形式も異なっているとする。更に、実行サーバA及びBは、それぞれ異なるデータ形式でデータを保持しているとする。
 また、本具体例1では、図9に示すように、共通形式は、実行サーバA及びBで利用される機械学習エンジンにより用いられる、特徴量(特徴量1~3、予測ターゲット変数)と、ラベル(サンプルID)とを含むデータ形式である。この場合、特徴量は、機械学習において、説明変数の候補として用いられる。
 本具体例1において、プレ変換指示部12は、実行サーバA及びBそれぞれに対して、保持しているデータのデータ形式を共通形式に変換するよう指示を与えると、実行サーバA及びBは、図10に示すように、データ形式を共通形式に変換する。
 また、本具体例1で使用される機械学習エンジンが、機械学習エンジンA及びBの2つであり、各機械学習エンジンが要求するデータ形式が、図11に示す通りであるとする。この場合において、変換指示部11が、実行サーバAに対して、データ形式を機械学習エンジンAのデータ形式に変換するよう指示を与える。更に、変換指示部11は、実行サーバBに対して、データ形式を機械学習エンジンBのデータ形式に変換するよう指示を与える。
 この結果、図10に示した実行サーバA及びBそれぞれが保持しているデータのデータ形式は、図12に示すように変換される。具体的には、実行サーバAは、共通形式におけるサンプルIDの列を除去し、残った列の列名も除去する。また、実行サーバBは、共通形式における予測ターゲット変数の列を左から2列目に移動させ、更に、各列名も除去する。なお、図12においては、説明のため、括弧書きで列名を併記している。
 このように、各実行サーバ20が保持するデータのデータ形式を一旦共通形式に変換すれば、各実行サーバ20は、データ形式を、簡単に、使用される機械学習エンジンに対応する形式に変換できる。
 また、本実施の形態では、共通形式として、一次元配列が採用されていても良い。例えば、共通形式は、図9に示す共通形式を行方向の一次元配列に変換して得られた形式であっても良い。この場合、図9に示されたデータは下記の通りとなる。また、下記において、1つ目の要素は元のテーブルの行数、2つめの要素は元のテーブルの列数を示している。
(2,5, 1.0, 1.8, 3.0, 2.5, 1.0, 2.0, 3.4, 1.0, -2.9, -1.0)
 また、機械学習エンジンが、データ形式として、列方向の一次元配列が採用されたデータ形式を要求しているとする。この場合、上記の行方向の一次元配列のデータは、下記のように変換される。
(2,5, 1.0, 2.0, 1.8, 3.4, 3.0, 1.0, 2.5, -2.9, 1.0, -1.0)
[具体例2]
 続いて、本実施の形態における具体例2について、図13及び図14を用いて説明する。図13は、本発明の実施の形態の具体例2における機械学習エンジンで利用されるデータ形式の一例を示す図である。図14は、図9に示す共通形式のデータを図13に示すデータ形式に変換した状態を示す図である。
 具体例2においても、実行サーバA及びBが保持するデータは、具体例1と同様であり、共通形式も具体例1と同様であるとする。また、具体例2においても、図13に示すように、機械学習エンジンAが要求するデータ形式は、具体例1と同じであり、密行列表現によって表現されている。但し、機械学習エンジンBが要求するデータ形式は、具体例1と異なり、疎行列表現によって表現されている。疎行列表現は、要素の位置と値とを並べた連結リスト表現になっている。
 このため、具体例2において、変換指示部11が、実行サーバAに対して、データ形式の変換を指示すると、実行サーバAは、具体例1と同様に、共通形式におけるサンプルIDの列を除去し、残った列の列名も除去する。一方、変換指示部11が、実行サーバBに対して、データ形式の変換を指示すると、実行サーバBは、密行列表現を疎行列表現に変更し、列名を除去する。
 この結果、具体例2では、図10に示した実行サーバA及びBそれぞれが保持しているデータのデータ形式は、図14に示すように変換される。具体例2においても、具体例1と同様に、各実行サーバ20が保持するデータのデータ形式は一旦共通形式に変換されるので、各実行サーバ20は、データ形式を、簡単に、使用される機械学習エンジンに対応する形式に変換できる。
[変形例]
 分散処理基盤30で実行されたプログラム(例えば、Java(登録商標)プログラム)上で機械学習を行なう場合は、オペレーティングシステムとは別のプロセスを実行する必要がある。このため、実行サーバ20においては、プログラムが使用するメモリ空間と、学習エンジンのメモリ空間とを別々に設け、両者間でデータのコピーを行なう必要がある。
 このため、本変形例では、例えば、Java上で、JNI(Java Native Interface)を使用して、機械学習エンジンを実行することができる。この場合、メモリ空間を別々に設けることなく、Java上で機械学習を行うことが可能となる。
[プログラム]
 本発明の実施の形態におけるプログラムは、コンピュータに、図3に示すステップA1~A7を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における分散処理管理装置10と分散処理方法とを実現することができる。この場合、コンピュータのプロセッサは、変換指示部11、プレ変換指示部12、タスク受付部13、データ再配置指示部14、及び学習モデル生成指示部15として機能し、処理を行なう。
 また、本実施の形態におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、変換指示部11、プレ変換指示部12、タスク受付部13、データ再配置指示部14、及び学習モデル生成指示部15のいずれかとして機能しても良い。
[物理構成]
 ここで、本実施の形態におけるプログラムを実行することによって、分散処理管理装置を実現するコンピュータについて図15を用いて説明する。図15は、本発明の実施の形態における分散処理管理装置を実現するコンピュータの一例を示すブロック図である。
 図15に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
 CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
 また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
 データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
 また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。
 なお、本実施の形態における分散処理管理装置10は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、分散処理管理装置10は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。
 上述した実施の形態の一部又は全部は、以下に記載する(付記1)~(付記24)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
 分散処理を実行する複数の実行サーバに通信可能に接続された分散処理管理装置であって、
 前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、変換指示部を備えている、
ことを特徴とする分散処理管理装置。
(付記2)
 前記複数の実行サーバは、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、前記第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含み、
 前記第1の機械学習エンジンと前記第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する、
付記1に記載の分散処理管理装置。
(付記3)
 前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える、プレ変換指示部を更に備え、
 前記変換指示部は、前記複数の実行サーバそれぞれ毎に、前記共通形式に変換されているデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、
付記1または2に記載の分散処理管理装置。
(付記4)
 前記共通形式が、前記複数の実行サーバそれぞれで利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式である、
付記3に記載の分散処理管理装置。
(付記5)
 前記複数の実行サーバによって実行される分散処理のタスク定義を受け付ける、タスク受付部を更に備えている、
付記3または4に記載の分散処理管理装置。
(付記6)
 前記複数の実行サーバそれぞれが、前記分散処理に用いるデータを予め保持している場合において、前記タスク受付部によって受け付けられた前記タスク定義に基づいて、前記複数の実行サーバそれぞれが保持すべきデータを決定し、前記複数の実行サーバそれぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する、データ再配置指示部を、更に備え、
 前記プレ変換指示部は、前記複数の実行サーバそれぞれ毎に、再配置後のデータのデータ形式を、前記共通形式に変換させる、
付記5に記載の分散処理管理装置。
(付記7)
 前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える、学習モデル生成指示部を、更に備え、
 前記変換指示部は、前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える、
付記1~6のいずれかに記載の分散処理管理装置。
(付記8)
 前記複数の実行サーバそれぞれにおいて、利用される前記機械学習エンジンが異なっており、更に、前記機械学習エンジン毎に利用可能なデータ形式も異なっている、
付記1~7のいずれかに記載の分散処理管理装置。
(付記9)
 複数の実行サーバを用いて分散処理を行うための方法であって、
(a)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、ステップを有する、
ことを特徴とする分散処理方法。
(付記10)
 前記複数の実行サーバは、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、前記第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含み、
 前記第1の機械学習エンジンと前記第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する、
付記9に記載の分散処理方法。
(付記11)
(b)前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える、ステップを更に有し、
 前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、前記共通形式に変換されているデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、
付記9または10に記載の分散処理方法。
(付記12)
 前記共通形式が、前記複数の実行サーバそれぞれで利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式である、
付記9に記載の分散処理方法。
(付記13)
(c)前記複数の実行サーバによって実行される分散処理のタスク定義を受け付ける、ステップを更に有する、
付記11または12に記載の分散処理方法。
(付記14)
(d)前記複数の実行サーバそれぞれが、前記分散処理に用いるデータを予め保持している場合において、前記(c)のステップで受け付けられた前記タスク定義に基づいて、前記複数の実行サーバそれぞれが保持すべきデータを決定し、前記複数の実行サーバそれぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する、ステップを、更に有し、
 前記(b)のステップにおいて、前記複数の実行サーバそれぞれ毎に、再配置後のデータのデータ形式を、前記共通形式に変換させる、
付記13に記載の分散処理方法。
(付記15)
(e)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える、ステップを、更に有し、
 前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える、
付記9~14のいずれかに記載の分散処理方法。
(付記16)
 前記複数の実行サーバそれぞれにおいて、利用される前記機械学習エンジンが異なっており、更に、前記機械学習エンジン毎に利用可能なデータ形式も異なっている、
付記9~15のいずれかに記載の分散処理方法。
(付記17)
 コンピュータによって複数の実行サーバを用いた分散処理を行うためのプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記コンピュータに、
(a)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、ステップを実行させる、命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
(付記18)
 前記複数の実行サーバは、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、前記第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含み、
 前記第1の機械学習エンジンと前記第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する、
付記17に記載のコンピュータ読み取り可能な記録媒体。
(付記19)
(b)前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える、ステップを更に有し、
 前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、前記共通形式に変換されているデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、
付記17又は18に記載のコンピュータ読み取り可能な記録媒体。
(付記20)
 前記共通形式が、前記複数の実行サーバそれぞれで利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式である、
付記19に記載のコンピュータ読み取り可能な記録媒体。
(付記21)
前記プログラムが、前記コンピュータに、更に、
(c)前記複数の実行サーバによって実行される分散処理のタスク定義を受け付ける、ステップを実行させる命令を含む、
付記19または20に記載のコンピュータ読み取り可能な記録媒体。
(付記22)
前記プログラムが、前記コンピュータに、更に、
(d)前記複数の実行サーバそれぞれが、前記分散処理に用いるデータを予め保持している場合において、前記(c)のステップで受け付けられた前記タスク定義に基づいて、前記複数の実行サーバそれぞれが保持すべきデータを決定し、前記複数の実行サーバそれぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する、ステップを実行させる命令を含み、
 前記(b)のステップにおいて、前記複数の実行サーバそれぞれ毎に、再配置後のデータのデータ形式を、前記共通形式に変換させる、
付記21に記載のコンピュータ読み取り可能な記録媒体。
(付記23)
前記プログラムが、前記コンピュータに、更に、
(e)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える、ステップを実行させる命令を含み、
 前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える、
付記17~22のいずれかに記載のコンピュータ読み取り可能な記録媒体。
(付記24)
 前記複数の実行サーバそれぞれにおいて、利用される前記機械学習エンジンが異なっており、更に、前記機械学習エンジン毎に利用可能なデータ形式も異なっている、
付記17~23のいずれかに記載のコンピュータ読み取り可能な記録媒体。
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2017年10月26日に出願された米国出願62/577,408を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 以上のように、本発明によれば、分散処理基盤において、ユーザにおける負担を増大させることなく、複数の機械学習ライブラリを利用することができる。本発明は、分散システムによって大量のデータに対して機械学習を行なう場合に有用である。
 10 分散処理管理装置
 11 変換指示部
 12 プレ変換指示部
 13 タスク受付部
 14 データ再配置指示部
 15 学習モデル生成指示部
 20 実行サーバ
 30 分散処理基盤
 40 ネットワーク
 110 コンピュータ
 111 CPU
 112 メインメモリ
 113 記憶装置
 114 入力インターフェイス
 115 表示コントローラ
 116 データリーダ/ライタ
 117 通信インターフェイス
 118 入力機器
 119 ディスプレイ装置
 120 記録媒体
 121 バス

Claims (24)

  1.  分散処理を実行する複数の実行サーバに通信可能に接続された分散処理管理装置であって、
     前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、変換指示部を備えている、
    ことを特徴とする分散処理管理装置。
  2.  前記複数の実行サーバは、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、前記第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含み、
     前記第1の機械学習エンジンと前記第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する、
    請求項1に記載の分散処理管理装置。
  3.  前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える、プレ変換指示部を更に備え、
     前記変換指示部は、前記複数の実行サーバそれぞれ毎に、前記共通形式に変換されているデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、
    請求項1または2に記載の分散処理管理装置。
  4.  前記共通形式が、前記複数の実行サーバそれぞれで利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式である、
    請求項3に記載の分散処理管理装置。
  5.  前記複数の実行サーバによって実行される分散処理のタスク定義を受け付ける、タスク受付部を更に備えている、
    請求項3または4に記載の分散処理管理装置。
  6.  前記複数の実行サーバそれぞれが、前記分散処理に用いるデータを予め保持している場合において、前記タスク受付部によって受け付けられた前記タスク定義に基づいて、前記複数の実行サーバそれぞれが保持すべきデータを決定し、前記複数の実行サーバそれぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する、データ再配置指示部を、更に備え、
     前記プレ変換指示部は、前記複数の実行サーバそれぞれ毎に、再配置後のデータのデータ形式を、前記共通形式に変換させる、
    請求項5に記載の分散処理管理装置。
  7.  前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える、学習モデル生成指示部を、更に備え、
     前記変換指示部は、前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える、
    請求項1~6のいずれかに記載の分散処理管理装置。
  8.  前記複数の実行サーバそれぞれにおいて、利用される前記機械学習エンジンが異なっており、更に、前記機械学習エンジン毎に利用可能なデータ形式も異なっている、
    請求項1~7のいずれかに記載の分散処理管理装置。
  9.  複数の実行サーバを用いて分散処理を行うための方法であって、
    (a)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、ステップを有する、
    ことを特徴とする分散処理方法。
  10.  前記複数の実行サーバは、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、前記第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含み、
     前記第1の機械学習エンジンと前記第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する、
    請求項9に記載の分散処理方法。
  11. (b)前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える、ステップを更に有し、
     前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、前記共通形式に変換されているデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、
    請求項9または10に記載の分散処理方法。
  12.  前記共通形式が、前記複数の実行サーバそれぞれで利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式である、
    請求項9に記載の分散処理方法。
  13. (c)前記複数の実行サーバによって実行される分散処理のタスク定義を受け付ける、ステップを更に有する、
    請求項11または12に記載の分散処理方法。
  14. (d)前記複数の実行サーバそれぞれが、前記分散処理に用いるデータを予め保持している場合において、前記(c)のステップで受け付けられた前記タスク定義に基づいて、前記複数の実行サーバそれぞれが保持すべきデータを決定し、前記複数の実行サーバそれぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する、ステップを、更に有し、
     前記(b)のステップにおいて、前記複数の実行サーバそれぞれ毎に、再配置後のデータのデータ形式を、前記共通形式に変換させる、
    請求項13に記載の分散処理方法。
  15. (e)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える、ステップを、更に有し、
     前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える、
    請求項9~14のいずれかに記載の分散処理方法。
  16.  前記複数の実行サーバそれぞれにおいて、利用される前記機械学習エンジンが異なっており、更に、前記機械学習エンジン毎に利用可能なデータ形式も異なっている、
    請求項9~15のいずれかに記載の分散処理方法。
  17.  コンピュータによって複数の実行サーバを用いた分散処理を行うためのプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータに、
    (a)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンが利用可能なデータ形式を特定し、当該実行サーバが保持するデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、ステップを実行させる、命令を含む、プログラムを記録しているコンピュータ読み取り可能な記録媒体。
  18.  前記複数の実行サーバは、第1のデータ形式を利用可能な第1の機械学習エンジンを実行する実行サーバ群と、前記第1のデータ形式とは異なる第2のデータ形式を利用可能な第2の機械学習エンジンを実行する実行サーバ群とを含み、
     前記第1の機械学習エンジンと前記第2の機械学習エンジンとは、互いに異なる機械学習ライブラリに属する、
    請求項17に記載のコンピュータ読み取り可能な記録媒体。
  19. (b)前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、予め定められた共通形式に変換するよう指示を与える、ステップを更に有し、
     前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、前記共通形式に変換されているデータのデータ形式を、特定した前記データ形式に変換するよう指示を与える、
    請求項17又は18に記載のコンピュータ読み取り可能な記録媒体。
  20.  前記共通形式が、前記複数の実行サーバそれぞれで利用される機械学習エンジンにより用いられる、特徴量とラベルのみを含む、データ形式である、
    請求項19に記載のコンピュータ読み取り可能な記録媒体。
  21. 前記プログラムが、前記コンピュータに、更に、
    (c)前記複数の実行サーバによって実行される分散処理のタスク定義を受け付ける、ステップを実行させる命令を含む、
    請求項19または20に記載のコンピュータ読み取り可能な記録媒体。
  22. 前記プログラムが、前記コンピュータに、更に、
    (d)前記複数の実行サーバそれぞれが、前記分散処理に用いるデータを予め保持している場合において、前記(c)のステップで受け付けられた前記タスク定義に基づいて、前記複数の実行サーバそれぞれが保持すべきデータを決定し、前記複数の実行サーバそれぞれに対して、決定に応じたデータを保持するように、データの再配置を指示する、ステップを実行させる命令を含み、
     前記(b)のステップにおいて、前記複数の実行サーバそれぞれ毎に、再配置後のデータのデータ形式を、前記共通形式に変換させる、
    請求項21に記載のコンピュータ読み取り可能な記録媒体。
  23. 前記プログラムが、前記コンピュータに、更に、
    (e)前記複数の実行サーバそれぞれ毎に、当該実行サーバで実行される機械学習エンジンを指定し、指定した機械学習エンジンを用いて学習モデルを生成するように指示を与える、ステップを実行させる命令を含み、
     前記(a)のステップにおいて、前記複数の実行サーバそれぞれ毎に、当該実行サーバが保持するデータのデータ形式を、指定された機械学習エンジンで利用可能なデータ形式に変換するよう指示を与える、
    請求項17~22のいずれかに記載のコンピュータ読み取り可能な記録媒体。
  24.  前記複数の実行サーバそれぞれにおいて、利用される前記機械学習エンジンが異なっており、更に、前記機械学習エンジン毎に利用可能なデータ形式も異なっている、
    請求項17~23のいずれかに記載のコンピュータ読み取り可能な記録媒体。
PCT/JP2018/039734 2017-10-26 2018-10-25 分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体 WO2019082982A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019550290A JP6922995B2 (ja) 2017-10-26 2018-10-25 分散処理管理装置、分散処理方法、及びプログラム
US16/759,202 US11656917B2 (en) 2017-10-26 2018-10-25 Distributed processing management apparatus, distributed processing method, and computer-readable recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762577408P 2017-10-26 2017-10-26
US62/577,408 2017-10-26

Publications (1)

Publication Number Publication Date
WO2019082982A1 true WO2019082982A1 (ja) 2019-05-02

Family

ID=66246430

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/039734 WO2019082982A1 (ja) 2017-10-26 2018-10-25 分散処理管理装置、分散処理方法、及びコンピュータ読み取り可能な記録媒体

Country Status (3)

Country Link
US (1) US11656917B2 (ja)
JP (1) JP6922995B2 (ja)
WO (1) WO2019082982A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218858A (ja) * 1996-02-14 1997-08-19 Hitachi Ltd 分散型データベース管理システム
JP2002358293A (ja) * 2001-05-31 2002-12-13 Nec Corp 実行時負荷分散システム及び実行時負荷分散方法並びにプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3488500B2 (ja) * 1994-02-07 2004-01-19 富士通株式会社 分散ファイルシステム
GB2472620B (en) * 2009-08-12 2016-05-18 Cloudtran Inc Distributed transaction processing
JP5584914B2 (ja) 2010-07-15 2014-09-10 株式会社日立製作所 分散計算システム
US9686086B1 (en) * 2014-12-01 2017-06-20 Arimo, Inc. Distributed data framework for data analytics
US20160234342A1 (en) * 2015-02-11 2016-08-11 Stephen Oonk Enterprise Data Processing Architecture with Distributed Intelligence
US20160358099A1 (en) 2015-06-04 2016-12-08 The Boeing Company Advanced analytical infrastructure for machine learning
US11094029B2 (en) * 2017-04-10 2021-08-17 Intel Corporation Abstraction layers for scalable distributed machine learning
US10824474B1 (en) * 2017-11-14 2020-11-03 Amazon Technologies, Inc. Dynamically allocating resources for interdependent portions of distributed data processing programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218858A (ja) * 1996-02-14 1997-08-19 Hitachi Ltd 分散型データベース管理システム
JP2002358293A (ja) * 2001-05-31 2002-12-13 Nec Corp 実行時負荷分散システム及び実行時負荷分散方法並びにプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KUROMATSU, NOBUYUKI ET AL.: "wizz: Platform- Transparent Machine Learning Platform", IPSJ SIG TECHNICAL REPORT, vol. 2015 -HPC-150, no. 18, 5 August 2015 (2015-08-05), pages 1 - 7, XP055597849, ISSN: 2188-8841 *

Also Published As

Publication number Publication date
JPWO2019082982A1 (ja) 2020-11-12
US20200319936A1 (en) 2020-10-08
US11656917B2 (en) 2023-05-23
JP6922995B2 (ja) 2021-08-18

Similar Documents

Publication Publication Date Title
US10713589B1 (en) Consistent sort-based record-level shuffling of machine learning data
US20190272255A1 (en) Files having unallocated portions within content addressable storage
JP2011039841A (ja) データ移行方法、及びプログラム
US11461663B2 (en) Information processing apparatus, information processing method for image processing, and storage medium
US11029924B2 (en) Program optimization by converting code portions to directly reference internal data representations
KR20200031150A (ko) 데이터 처리장치의 데이터 항목들 내의 성분들의 계수
US10031747B2 (en) System and method for registration of a custom component in a distributed computing pipeline
US9262219B2 (en) Distributed processing system, distributed processing method, and distributed processing program
US11327808B2 (en) Decentralized data processing architecture
CN104731641A (zh) 用于复制计算系统的批量作业的方法与系统
JP2017215868A (ja) 匿名化処理装置、匿名化処理方法、及びプログラム
JP6922995B2 (ja) 分散処理管理装置、分散処理方法、及びプログラム
JP2022090187A (ja) バージョン検証装置、バージョン検証システム及びバージョン検証方法
JP6816824B2 (ja) 分散システム、データ管理装置、データ管理方法、及びプログラム
JP5001703B2 (ja) システム設計検証装置
US11645125B2 (en) Method and apparatus for executing workflow including functions written in heterogeneous programing language
JP7269244B2 (ja) サービス管理アプリケーションインターフェースにおいてグローバリゼーション機能を提供するためのシステムおよび方法
JP7073813B2 (ja) 制御プログラム、制御方法および情報処理装置
US8775873B2 (en) Data processing apparatus that performs test validation and computer-readable storage medium
KR20200015300A (ko) 신경망 피처 벡터 결정 장치 및 방법
US10019169B2 (en) Data storage apparatus, data control apparatus, and data control method
JP5696280B1 (ja) 用語統一システム及び用語統一プログラム、並びに用語統一方法
KR102289401B1 (ko) 라벨 정보가 포함된 특징 벡터 생성 장치 및 방법
US20240256550A1 (en) Dictionary Filtering and Evaluation in Columnar Databases
US20240256549A1 (en) Evaluating Expressions Over Dictionary Data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18870170

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019550290

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18870170

Country of ref document: EP

Kind code of ref document: A1