WO2023080275A1 - Deep learning framework application database server for classifying gender and age, and method therefor - Google Patents

Deep learning framework application database server for classifying gender and age, and method therefor Download PDF

Info

Publication number
WO2023080275A1
WO2023080275A1 PCT/KR2021/015950 KR2021015950W WO2023080275A1 WO 2023080275 A1 WO2023080275 A1 WO 2023080275A1 KR 2021015950 W KR2021015950 W KR 2021015950W WO 2023080275 A1 WO2023080275 A1 WO 2023080275A1
Authority
WO
WIPO (PCT)
Prior art keywords
learning
inference
learning model
age
deep learning
Prior art date
Application number
PCT/KR2021/015950
Other languages
French (fr)
Korean (ko)
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 (주)한국플랫폼서비스기술
Publication of WO2023080275A1 publication Critical patent/WO2023080275A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/55Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • G06N5/025Extracting rules from data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Definitions

  • the present invention relates to a deep learning framework application database server and method for classifying gender and age, and a server for classifying gender and age of a person from an image into a plurality of learning models by query analysis by deep learning inference and the same It's about how.
  • Patent Document 1 KR10-2058124 B1
  • An object of the present invention is to enable even a user without specialized knowledge in deep learning to infer data corresponding to a query by learning data stored in an information database by a user's requested query using a deep learning method without difficulty,
  • a deep learning framework application database server and method for classifying gender and age which can use a model that has been developed, takes less time for deep learning training and inference, and can be applied to classify gender and age of a person from an image.
  • a deep learning framework application database server for classifying gender and age includes an input/output unit that receives an inference query for a gender and age classification function of a dataset for inference from a user; a query analyzer for analyzing the query and extracting a plurality of detailed functions to achieve the function of the query;
  • a database comprising: a storage unit having a plurality of learning model tables and a data set table; and a framework unit that interworks with the database and performs deep learning of the plurality of detailed functions using the learning model table and the dataset table, wherein the query analysis unit converts the inference query to the plurality of detailed functions.
  • the face detection function of the upper group and the gender and age classification function of the lower group are extracted, and among the plurality of learning model tables, the previously learned face detection learning model table, gender classification learning model table, and age classification learning model table are selected.
  • the framework unit performs deep learning inference of the plurality of detailed functions in association with each of the face detection learning model table, the gender classification learning model table, and the age classification learning model table, respectively.
  • the face detection learning model according to the face detection learning model table, which is the upper group may be preferentially deep learning inferred.
  • a dataset management module for converting the dataset for inference into a dataset table for inference; and if the framework unit infers that there is a face of the original image included in the dataset table for inference using the face detection learning model, crops the face portion to generate a face image box, and
  • An auxiliary management module for associating an image ID, which is a unique number of the original image, with a box ID, which is a unique number, and generating mapping information for mapping location information of the face image box.
  • the auxiliary management module determines the gender and age of the person in the face image box by using a gender classification learning model and an age classification learning model according to the gender classification learning model table and the age classification learning model table in the framework unit.
  • the deep learning inference is made, the deep learning inferred gender and age may be mapped with the box ID.
  • the dataset management module adds the age and age of the person to the original image by using the location information of the face image box of the original image and the mapping information including the image ID of the original image to obtain a resultant image.
  • the query analysis unit further extracts a preprocessing detection function for detecting whether deep learning inference of the query function, which is a main function, is necessary for an inference dataset
  • the storage unit includes a preprocessing detection learning model table associated with the preprocessing detection function, , Deep learning inference of the preprocessing sensing function is performed on the inference dataset, and when the inference data is classified as requiring deep learning inference of the main function, the plurality of details of the inference dataset It may further include a control unit that enables deep learning inference of the function.
  • a first learning model has a plurality of tasks, and the plurality of tasks correspond to a plurality of rows of a network table provided in the first learning model table;
  • Each of the plurality of tasks has a unique number corresponding to a row number of the network table, and a series of first to second tasks among the plurality of tasks are performed by a first distribution server among the plurality of distribution servers, Further comprising a control unit for performing deep learning inference in a distributed manner, wherein each of the plurality of distributed servers includes a deep learning framework interworking with a database, and includes the first learning model table, and the control unit includes the first learning model table.
  • the second row number of the network table corresponding to the unique number of the learning model table, the third result value list of the third task immediately before the first task, and the unique number of the second task are stored in the first distribution server.
  • the control unit receives a unique number of the learning model table and a fourth result value list of a fourth task among the plurality of tasks from a second distribution server among the plurality of distribution servers
  • the fourth result value list It is determined by a list of result values performed from the first task to the fourth task among a plurality of tasks, and a fifth row number among the plurality of network tables is disposed immediately after the fourth row number, and the control unit 2 If a sixth row number, which is a task instruction end row, is further received from the distribution server, the framework unit receives the fourth result value list as an input and causes the fifth to sixth row numbers to be operated.
  • the learning model management module selects a second learning model table suitable for the first detailed function when there is no pre-learned first learning model table related to the first detailed function among the plurality of detailed functions,
  • the second learning model table is converted into the first learning model table through deep learning training of the first detailed function based on the associated training dataset table, and the deep learning training is distributed and processed with a plurality of distributed servers.
  • the plurality of distributed servers may each have a deep learning framework that works with the database.
  • a control unit for distributing the batch size of the training dataset, the second learning model table, and the training dataset table to a plurality of distributed servers wherein the deep learning framework application database server comprises the plurality of distributed servers.
  • the control unit randomly changes the data order of the training dataset table and converts it into a batch data set table by dividing it according to the batch size, and the framework unit
  • a model architecture is built using an architecture table belonging to the second learning model table, a learning parameter table belonging to the second learning model table is initialized and assigned to the model architecture to create a second learning model, and the second learning model is created.
  • deep learning training may be performed using a plurality of mini-batches of the batch dataset table.
  • the framework unit derives a new learning parameter when batch learning for one mini-batch among the plurality of mini-batches is completed, and the control unit spreads the new learning parameter to the remaining distributed servers of the plurality of distributed servers, , If the new learning parameter is generated, further comprising an integrating unit that integrates the new learning parameter and at least one learning parameter spread from the remaining distributed servers and updates the learning parameter to be applied to the next batch learning, wherein the integrating unit When all allocated epochs are completed, a final learning parameter is derived by integrating the last learning parameter derived from the framework unit and at least one learning parameter finally spread in the remaining distributed servers, and the control unit derives a trained model architecture and The final learning parameter may be converted into the learned first learning model table.
  • An inference method of a deep learning framework application database server for classifying gender and age includes receiving an inference query of a gender and age classification function of a dataset for inference from a user; extracting the inference query into a plurality of detailed functions, which are a face detection function of an upper group and a gender and age classification function of a lower group; selecting a pre-learned face detection learning model table, gender classification learning model table, and age classification learning model table; and performing deep learning in the order of deep learning inference of functions corresponding to the upper group and deep learning inference of functions corresponding to the lower group.
  • mapping information by associating an image ID, which is a unique number of the original image, with a box ID, which is a unique number of the face image box; and adding location information of the face image box to mapping information including the box ID.
  • deep learning inferring the gender and age of the person in the face image box using the gender classification learning model and the age classification learning model according to the gender classification learning model table and the age classification learning model table; adding the sex and age deduced by deep learning to the mapping information including the box ID; and generating a resultant image by adding the age and age of the person to the original image using location information of the facial image box of the original image and mapping information having an image ID of the original image.
  • a deep learning framework is connected to a database in the form of a plug-in, enabling deep learning training and inference using data stored in the database by a user's request query, Deep learning training and inference can be used by users without knowledge.
  • Deep learning training and inference can be used by users without knowledge.
  • the time required to perform deep learning can be reduced.
  • FIG. 1 is a configuration diagram schematically showing the overall configuration of a query-based deep learning inference system according to an embodiment of the present invention.
  • FIG. 2 is a control configuration diagram of a database server according to an embodiment of the present invention.
  • FIG. 3 is a data management configuration diagram according to an embodiment of the present invention.
  • FIG. 4 is a database structure diagram according to an embodiment of the present invention.
  • FIG. 5 is a control configuration diagram of a conversion unit according to an embodiment of the present invention.
  • 6 and 7 are conversion operation diagrams of a conversion unit according to an embodiment of the present invention.
  • FIG. 8 is a flowchart showing the execution flow of a query-based machine learning technique according to an embodiment of the present invention.
  • FIG. 9 is an operational flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
  • FIG. 10 is a schematic configuration diagram of a database-linked deep learning distribution system according to another embodiment of the present invention.
  • FIG. 11 is a block diagram of a main server and distributed servers according to FIG. 10 .
  • FIG. 12 shows a dataset of a main server and a dataset for training of a distributed server.
  • FIG. 13 is a flowchart of a training method of the system of FIG. 10;
  • FIG. 14 is a flowchart of an inference method of the system of FIG. 10 .
  • 15 to 17 are signal flow diagrams according to different embodiments of the asynchronous distributed server of FIG. 13 .
  • 18 and 19 are signal flow diagrams according to different embodiments of the synchronous distributed server of FIG. 13 .
  • FIG. 20 is a signal flow diagram according to the distributed inference of FIG. 14 .
  • Fig. 22 shows part of the intermediate result table according to Fig. 20;
  • 24 is a detailed block diagram of some components of a deep learning framework application database server for classifying gender and age according to another embodiment of the present invention.
  • 25 is a flowchart of a method of classifying gender and age according to another embodiment of the present invention.
  • Fig. 26 shows the intermediate data of Figs. 24 and 25;
  • first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention.
  • the terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.
  • first component and the second component on the network are connected or connected means that data can be exchanged between the first component and the second component in a wired or wireless manner.
  • module and “unit” for the components used in the following description are simply given in consideration of ease of preparation of this specification, and do not themselves give a particularly important meaning or role. Accordingly, the “module” and “unit” may be used interchangeably.
  • the present invention covers all possible combinations of the embodiments shown herein.
  • the various embodiments of the present invention are different but not mutually exclusive.
  • One embodiment of the particular shape, structure, function, and characteristic described herein may be implemented in another embodiment.
  • components mentioned in the first and second embodiments may perform all functions of the first and second embodiments.
  • 1 is a configuration diagram schematically showing the overall configuration of a query-based deep learning inference system according to an embodiment of the present invention.
  • 2 is a control configuration diagram of a database server according to an embodiment of the present invention.
  • 3 is a data management configuration diagram according to an embodiment of the present invention.
  • 4 is a database structure diagram according to an embodiment of the present invention.
  • 5 is a control configuration diagram of a conversion unit according to an embodiment of the present invention.
  • 6 and 7 are conversion operation diagrams of a conversion unit according to an embodiment of the present invention.
  • 8 is a flowchart showing the execution flow of a query-based machine learning technique according to an embodiment of the present invention.
  • 9 is an operational flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
  • a query-based deep learning inference system 1 may apply query-based machine learning technology.
  • the query-based deep learning inference system 1 may include a database server 10 and a terminal 20.
  • the database server 10 stores the data stored in the database server 10.
  • a deep learning framework connected to the database server 10 using data may refer to a technology in which machine learning, deep learning, inference, and the like are performed.
  • Deep learning can be a set of machine learning (machine learning) algorithms that attempt a high level of abstraction through a combination of several nonlinear transform methods.
  • Machine learning is a field of artificial intelligence, which can refer to the field of developing algorithms and techniques that allow computers to learn.
  • Artificial intelligence refers to a computer system having functions of human intelligence, and may refer to artificially implementing human intelligence in a machine or the like. In this specification, 'deep learning' is not limited to deep learning technology itself, but can be interpreted as extending to machine learning or artificial intelligence.
  • the terminal 20 includes a smart phone, a portable terminal, a mobile terminal, a personal digital assistant (PDA), a portable multimedia player (PMP) terminal, and a telematics terminal.
  • Navigation terminal personal computer, notebook computer, slate PC, tablet PC, ultrabook, wearable device (for example, watch type terminal) (Smartwatch), glass-type terminal (Smart Glass), HMD (Head Mounted Display), etc.), Wibro terminal, IPTV (Internet Protocol Television) terminal, smart TV, digital broadcasting terminal, AVN (Audio Video Navigation) terminal , A / V (Audio / Video) system, and a flexible terminal (Flexible Terminal) may be any one or a combination.
  • the terminal 20 may further include a server computer.
  • the terminal 20 can access the database server 10 (hereinafter referred to as DB server).
  • DB server database server 10
  • a user or manager may send a query to the DB server 10 through the terminal 20 or receive a result according to the query.
  • the DB server 10 may be a server that operates a database or is connected to and controls a database.
  • the DB server 10 may refer to a concept including a set of integratedly managed data (database) and middleware that manages them.
  • the database server 10 may mean a database management system (DBMS).
  • DBMS database management system
  • the database may also be used in the sense of a DB server 10 or a database management system (DBMS).
  • the DB server 10 may mean any device that works according to a query or generates a result according to a query.
  • the query may follow SQL (Structured Query Language) syntax.
  • the database of the DB server 10 is preferably a relational database.
  • the terminal 20 may input a deep learning inference query and receive an inference result corresponding to the query from the DB server 10 .
  • the terminal 20 may request various functions to the DB server 10 through a query and receive a response from the DB server 10 .
  • the terminal 20 may check or modify data stored in the DB server 10 or add new data through a query.
  • the terminal 20 may check or modify the learning model stored in the DB server 10 through a query and create a learning model for new learning.
  • the terminal 20 may select data and learning models through a query, set parameters, request machine learning, and check intermediate and final results of learning.
  • the terminal 20 may select data and a pre-learned learning model through a query, request machine inference, and check the inference result.
  • the DB server 10 may include a control unit 100, a storage unit 200, a framework unit 300, a conversion unit 360, and an input/output unit 370.
  • the input/output unit 370 may be its own interface device.
  • the input/output unit 370 may include an input device and an output device separately.
  • the output device may output a video signal and/or an audio signal.
  • the output device may be a display device such as a monitor, and/or a speaker.
  • the input device may generate input data that a user inputs to control the operation of the DB server 10 .
  • the input device may include a user manipulation device such as a keyboard, key pad, touch pad, and mouse.
  • the input and output device may be implemented as one such as a touch screen.
  • the input device may input an audio signal and/or a video signal to the DB server 10.
  • the input device may include a camera and a microphone.
  • the input device may include a sensor device.
  • Sensor devices include temperature sensor, humidity sensor, brightness sensor, dust sensor, pressure sensor, vibration sensor, voltage sensor, current sensor, parallel sensor, magnetic sensor, light sensor, proximity sensor, distance sensor, inclination sensor, gas sensor, thermal sensor A sensor, a flame detection sensor, a metal detection sensor, a hall sensor, and the like may be provided.
  • the sensor device generates temperature, humidity, brightness, dust (carbon), pressure, vibration, voltage, current, parallel, magnetic, illuminance, proximity, distance, tilt, gas, heat detection, flame detection, metal detection, and rotation amount data. can do.
  • the input/output unit 370 may serve as an interface with all external devices connected to the DB server 10 .
  • Examples of the external device may include a wired/wireless data port, a socket of a card such as a memory card, an audio I/O (Input/Output) terminal, and a video I/O (Input/Output) terminal.
  • the input/output unit 370 may receive data from such an external device or transmit data inside the DB server 10 to an external device.
  • the input/output unit 370 may perform a communication function.
  • at least one short-range communication protocol such as Bluetooth, Radio Frequency Identification (RFID), Ultra Wideband (UWB), and ZigBee may be used.
  • Communications may include Internet access.
  • the input/output unit 370 may exchange data with an external device, for example, the terminal 20 through communication.
  • the input/output unit 370 may perform the functions of the terminal 20 . That is, the terminal 20 may be replaced (omitted) by the input/output unit 370, and the present invention may be implemented.
  • the input/output unit 370 is in charge of communication with the user's communication means (terminal 2), and can control the communication protocol and data format on the network with communication equipment and computing equipment, which are various types of connection means of the user. .
  • Examples of the data format may include Open Neural Network Exchange Format (ONNX), Neural Network Exchange Format (NNEF), or Comma-separated values (CSV).
  • ONNX Open Neural Network Exchange Format
  • NEF Neural Network Exchange Format
  • CSV Comma-separated values
  • the input/output unit 370 may be a channel that receives a control command or query from a user and provides a result to the user.
  • the storage unit 200 may store data and programs necessary for the DB server 10 to operate.
  • the storage unit 200 may store programs for processing and control of the control unit 110 and may perform a function for temporarily storing input or output data.
  • the storage unit 200 may mean a device that stores data as a database or a database itself.
  • the storage unit 200 may store information about job performance, history of previous jobs, and users.
  • the storage unit 200 may store information and/or data through connection with a storage device provided separately from the outside or a storage device provided in an external computer network. Deep learning results with big data characteristics can be distributed and stored or stored separately externally, and can be called and applied upon request.
  • the control unit 100 may execute overall control functions of the DB server 10 by controlling the operation of each unit of the DB server 10 .
  • the control unit 100 may access data in the database, manage data, or create data in a table.
  • Data management may mean inquiring, modifying, and/or uploading data.
  • the control unit 100 may control all functions for interpreting and executing a user's query, performing a task according to a query, or providing a result.
  • control unit 100 may include a query analysis unit 110, a dataset management module 120, a learning model management module 130, and a result management module 160,
  • the storage unit 200 may store a query analysis value 210 , a dataset 220 , a learning model 230 , and a learning result 260 .
  • the query analysis unit 110 may interpret and/or analyze a query requested by a user and store it as a query analysis value 210 .
  • the query analysis value 210 may include a function and/or content of a query. Queries can be largely classified into training (learning) and inference.
  • the query analysis value 210 may store a value distinguishing whether a query is training or inference.
  • the function of the query may be a request for deriving a result value that the user wants to obtain through deep learning.
  • a query to recognize text may be a function to classify content of text by detecting text from image data.
  • the function of the query is not limited to the user's request.
  • a user's request may be one, but multiple detailed functions may be required to carry it out.
  • the query analyzer 110 may analyze a query to extract a plurality of detailed functions necessary for performing deep learning.
  • a plurality of detailed functions can be divided into upper categories and lower categories. For example, in the case of a query to distinguish the gender of a person, a detailed function for detecting a face in image data of an upper category and a detailed function for classifying the gender of a detected face in a lower category may be extracted. In this case, a detailed function of a higher category may be performed first, and then a detailed function of a lower category may be performed.
  • the contents of the query may be additional various things other than functions. For example, it may be selecting a specific learning model, or designating a dataset for training or inference.
  • the dataset 220 managed by the dataset management module 120 refers to a set of information or data having the same format to be used for learning and reasoning.
  • Information or data includes numbers, texts, images, videos, and voices, and may be any type of information or data used in machine learning.
  • the same format of data that can be clustered into the dataset 220 can be defined based on the extension. For example, in the case of image information, if the extension indicates an image, all of them are clustered in a dataset of the same category.
  • image information is described as an example, but the data used may be all types of data that can be used for machine learning, such as numbers, texts, images, images, and voices, as described above, as well as images.
  • the dataset management module 120 may cluster information or data (hereinafter referred to as 'data') received from the outside into the same dataset in its format (eg, extension) or classify it by the contents of the data.
  • 'data' data received from the outside into the same dataset in its format (eg, extension) or classify it by the contents of the data.
  • the dataset management module 120 may use a data classification learning model that classifies data into the same data format.
  • the data classification learning model can be stored in the DB server 10 and called and used when necessary.
  • the dataset management module 120 may preprocess data so that the dataset 220 is well applied to the learning model 230 .
  • Data preprocessing can transform the data to fit the tensors (vectors) of the learning model.
  • vectors vectors
  • the dataset management module 120 may convert data of the first format into data of the second format.
  • the dataset management module 120 may manage data of the second format as one group (group) of datasets. For example, the dataset management module 120 may extract image data for each frame and convert (decode) them into a group of datasets.
  • the dataset management module 120 may encode a series of images into images. The series of images may be worked images. That is, the dataset management module 120 may convert video data into a group of image datasets, and convert a group of image datasets processed (mosaic) into images.
  • the dataset management module 120 may provide a video streaming service.
  • the dataset management module 120 may encode from a series of images and provide a video streaming service or a stored video file to provide a streaming service.
  • the dataset management module 120 creates a new table (dataset table), and searches or modifies data or adds new data in the dataset table.
  • the dataset management module 120 may access a database table and retrieve data.
  • the dataset management module 120 may show the result of searching for data in the database through a query written by the user to the user.
  • the dataset management module 120 may limit the level at which data can be modified according to the authority granted to the user.
  • the dataset management module 120 may receive numerical data from a user or read one or more files to perform data upload.
  • the dataset management module 120 may provide a tagging function capable of labeling training data.
  • a dataset table and a dataset may be used as the same meaning.
  • a dataset refers to a data set in relational data format stored as a dataset table.
  • Relational data format refers to a model that defines and describes data using a tabular format. This can be equally applied to a learning model, a learning model table, a learning result, and a learning result table, which will be described later. However, the substance and/or format of both may be different.
  • the learning model (LM) management module 130 may manage the learning model table 230 used for machine learning (deep learning, etc.).
  • the learning model table 130 may include an architecture table and a learning parameter table.
  • the architecture table may include a network table and a hyperparameter table.
  • the learning model table 230 may correspond to a learning model used by the framework unit 300 .
  • the learning model (learning network model) 230 is a judgment model that can be learned based on a data set based on an artificial intelligence algorithm, and may be a model based on a neural network. This judgment model can be designed to simulate human brain structure on a computer.
  • the judgment model may include a plurality of network nodes having weights that simulate neurons of a human neural network.
  • a plurality of network nodes may each form a connection relationship to simulate synaptic activity of neurons that transmit and receive signals through synapses.
  • This judgment model may include a machine learning model, a neural network model, and/or a deep learning model.
  • the learning network model is at least one of models such as an Artificial Neural Network (ANN) model, a Deep Neural Network (DNN) model, a Convolution Neural Network (CNN) model, and a Recurrent Neural Network (RNN) model. model can be implemented.
  • the exemplified model is not limited thereto. For example, there may be a Long Short Term Memory Network (LSTM), Gated Recurrent Units (GRU), Generative Adversarial Networks (GAN), Super-resolution GAN (SRGAN) model, etc., but is not limited to these names.
  • LSTM Long Short Term Memory Network
  • GRU Gated Recurrent Units
  • GAN Generative Adversarial Networks
  • SRGAN Super-resolution GAN
  • the learning model 230 may include an architecture and parameters.
  • model architecture refers to the structure of a machine learning model.
  • the architecture may include the number of layers corresponding to the structure of the learning model, the number of units, types of layers, and how units are connected. This can be represented as an architectural structure.
  • the architecture may correspond to the architecture table of the learning model table.
  • the structure of an architecture may be referred to as a network model or network.
  • the architecture structure may correspond to the network table of the learning model table.
  • Architecture may mean that hyperparameters are assigned to an architecture structure. To build an architecture, you may need network tables and hyperparameter tables.
  • Parameters may include hyperparameters and learning parameters.
  • Hyperparameters define the input/output and the inside of the model, and may include a learning rate, an optimization method (learning method; optimizer), a type of layer, an input/output size, parameters required for calculation, and the like.
  • Hyperparameters allow architectures to be implemented. Hyperparameters can act as a component of an architecture. Hyperparameters are heuristic-based, that is, they can be set directly by humans. Also, hyperparameter optimization may be implemented as a separate optimizer module.
  • Learning parameters may include weights and/or biases.
  • a weight is a value used for interaction with input data, and a model weight corresponding to a model architecture may exist.
  • a value of the learning parameter may be changed by an optimizer. Learning parameters may simply be referred to as 'parameters'.
  • the optimizer may change the learning parameters so that the learning model has a desired function. Learning (deep learning) or training can mean changing these learning parameters.
  • the optimizer may be implemented by the framework unit 300 or a separate element.
  • the hyperparameter and learning parameter may correspond to the hyperparameter table and learning parameter table described above.
  • the learning model management module 130 may create a new network model by adding a supported layer and adjusting layer parameters (type of layer, input/output size, parameter required for calculation).
  • the learning model management module 130 may query a network model list previously created.
  • the learning model management module 130 may create a new network model by adding a new layer to an existing network model. This can be implemented through tuning of hyperparameters. These series of tasks may be initiated by a user's query.
  • the learning model management module 130 may provide a function of visualizing and displaying the network model. Through this, the user can easily look at the structure of the hidden layer.
  • the learning model 230 may further include a loss function defining a feedback signal to be used for learning and a separate optimizer module for determining a learning progress method.
  • the loss function and optimizer may be included in the framework unit 300 .
  • the learning model 230 may be stored in a database in a learning model table format, which is a relational data format.
  • a function of the learning model there may be a function of recognizing text input by a user, recognizing voice or text included in an image/audio/video, etc., or analyzing a user's intention with the recognized voice or text. .
  • the learning model management module 130 may select a specific learning model table suitable for a query from among a plurality of learning model tables.
  • the learning model management module 130 may select the learning model table 230 according to any one of the contents of a query or a model selection policy.
  • the learning model management module 130 selects the corresponding learning model table. For example, in the case of a query requesting inference with a learned learning model according to a training query, the learning model management module 130 preferably selects a corresponding learning model table.
  • a model selection policy may be a guideline for selecting a learning model table based on features of the query and/or dataset tables associated with the query. For example, according to a model selection policy, the learning model management module 130 may select a learning model table similar to the query function from among functions of a plurality of learning model tables. Also, according to the model selection policy, the learning model management module 130 may select a learning model table having a data structure similar to the query function and a data set table associated with the query.
  • the main techniques of learning models may include binary classification, multiclass classification, regression analysis, numerical prediction, time series prediction, sentiment analysis, clustering, anomaly detection, resource reduction, reinforcement learning, and the like.
  • the learning model management module 130 may select a learning model table having a technology suitable for the function of the query.
  • the learning model management module 130 may select a previously learned learning model table. In this case, the learning model management module 130 verifies and tests whether the existing learning model works properly, and if it works properly, it can calculate the existing learning model table as a result of deep learning training. As a result of verification and testing, if it does not work properly or if the format or number of input data is different, a new learning model table can be calculated by performing deep learning training on the selected learning model table.
  • the learning model table may include a network table (qml_network_t).
  • the architecture can be converted and stored in the network table (qml_network_t) format, which is a relational data format, in the database.
  • the network table (qml_network_t) may be converted into an architecture of the learning model 230 . This may be converted by the conversion unit 360.
  • the network table may include a plurality of sub-network tables (qml_s_network_t). For example, in the case of learning a network model with Multi GPU (N), N sub-network tables may be provided. In the case of inferring a network model, one sub-network table may be provided.
  • the network table or sub-network table may include a plurality of layer tables (qml_layer_t) related to layers constituting the network. Layers constituting the architecture of the learning model 230 may be converted into a layer table (qml_layer_t) and stored. The layer table (qml_layer_t) may be converted into a layer of the learning model 230 .
  • the layer table may include a plurality of tensor tables (qml_tensor_t).
  • the tensor table may be a 4-dimensional tensor in NCHW format.
  • a tensor table may include dtype, qml_shape_t, data, name, and the like.
  • the tensor table and the tensors of the learning model 230 may be converted to each other.
  • Parameters of the learning model 230 may be stored as a parameter table. Parameters and parameter tables of the learning model 230 may be converted to each other. This may be converted by the conversion unit 360.
  • the model architecture and model weight may be stored in the DB table.
  • the pre-designed DB schema can easily classify dataset tables and learning model tables that are similar to each other.
  • the DB server 10 receives a new data set, it can call a similar learning model among stored relational data format learning models and apply it to the new data set.
  • the similarity between the input dataset and the pre-stored learning model can be determined according to the similarity of the degree, which is the external form, and the attribute and domain, which are the content, of the elements of the table, such as 'key (primary)'.
  • the similarity determination may be performed by the learning model management module 130 .
  • the learning model table can serve as a guide so that users or administrators do not omit components when performing tasks, as components are linked in relational data format.
  • the framework unit 300 may use the elements stored as tables of the database structure as they are or may be used after being manipulated to be suitable for use in the framework unit 300 . This manipulation may be performed by the framework unit 300 or the conversion unit 360 .
  • the result management module 160 outputs each layer generated during machine learning, intermediate output values, parameter values, evaluation index values (learning loss values of deep learning functions) of models in which calculations are performed, and machine inference result values.
  • learning results 260 may be stored in a database or managed so that the user can check them by calling them.
  • the storage unit 200 stores a project table, a job table, and a common table in addition to the dataset 220 table, the learning model 230 table, and the learning result 260 table. more can be provided.
  • the task table may include user information, project status, logs, and the like.
  • the common table may include a lookup table such as layer type and error code.
  • the project table may store actual learning model copied from the learning model table or project information for inference. After the project is created, it has a separate structure from the learning model table, so even if the base network used in the project is modified, the established learning model is not affected.
  • the storage unit 200 may store a large number of variable data (input/output data and weight information) in a BLOB (Binary Large Object) or text type.
  • the storage unit 200 may divide and store records for a small number of variable data (e.g., parameters for each layer).
  • the controller 100 may store all input/output data used for machine learning (training) and machine reasoning, and store models used for machine learning and machine reasoning.
  • the control unit 100 may provide a procedure corresponding to a user's query request to perform machine learning according to the user's request.
  • Procedures include Insert Network, Insert Layer, Make Project, Input Data Loader, Init Network, Train, and Save Model. ) and Test.
  • the insert network may create a network table including network (architecture) name, network type, dataset name, optimizer type, optimizer parameters, learning rate, batch size, number of trainings, and output layer index.
  • the insert layer may register a layer table including network ID, layer name, layer type, layer index, layer parameter, and input layer index.
  • a make project can create a project that includes the project name, dataset name, network name, training or inference flags, and number of GPUs.
  • the input data loader may input data according to user input selection (layer index, query type (learning table, learning data, verification table, verification data)).
  • Network initialization may construct a network model.
  • a train can start training, including project ID, number of training generations, batch size, whether to train later, storage interval, verification interval, and GPU synchronization interval.
  • Save model can copy the network information of the project table to the network table (project name, network name).
  • Tests can initiate inferences that include the project ID and a flag whether to save results from all layers.
  • the framework unit 300 may perform machine learning using various machine learning frameworks or deep learning frameworks.
  • a framework may be a kind of package in which various libraries or modules for application program development are bundled into one for efficient use. Developers or administrators can quickly and easily use numerous libraries that have already been verified and various deep learning algorithms that have been pre-trained through the framework.
  • Deep learning frameworks may include TensoFlow, Torch/PyTorch, Deeplearing4j, CNTK (MICROSOFT COGNITIVE TOOLKIT), Keras, ONNX (Open Neural Network Exchange), MXNet, Caffe, QML (Quantum Machine Learning), and the like.
  • the framework unit 300 may be a deep learning framework installed as a plug-in in the DB server 10. This can be expressed as a database interworking framework (deep learning framework) and a database application framework (deep learning framework).
  • the framework unit 300 may be executed by calling the control unit 100 of the DB server 10. When called, the framework unit 300 may receive various data as arguments from the control unit 100 and return execution results. The framework unit 300 may construct a network within the framework by interpreting a network model defined in a relational data format. This analysis may be performed by the conversion unit 360 .
  • the framework unit 300 may receive learning parameters and learning data from the control unit 100 as factors, perform learning of the network configured inside the framework, and return a learning result.
  • the framework unit 300 may receive input data from the control unit 100 as a factor, perform machine inference using a network configured inside the framework, and return a result.
  • the framework unit 300 may check and modify the learning model stored in the DB server 10 and create a learning model for new learning.
  • the framework unit 300 may perform machine learning by selecting information or data and a learning model according to an input query and setting learning parameters.
  • the framework unit 300 may provide intermediate results and final results of learning.
  • the framework unit 300 may execute machine inference by selecting data and a pre-learned learning network model through an input query, and provide the inference result.
  • the framework unit 300 may include the QML module 310 as an internal framework.
  • the internal framework may include or include other frameworks in addition to the QML module 310 . This may provide the user with various options to use.
  • the QML module 310 may implement QML plug-in functions.
  • the QML module 310 may be equipped with QML, which is a framework capable of performing deep learning.
  • the QML module 310 is connected to the database through a User Defined Function (UDF) and can be executed by a call.
  • UDF User Defined Function
  • Each function defined in the framework is registered in the database through UDF, and the framework can be executed through the registered UDF call.
  • the types of argument variables that can be used in UDF are defined as integer, real number, and string. Each of these variables can be used in QML.
  • the integer type can be used as an integer value among essential parameters constituting a network model, an address value of a structure memory defined inside QML, and the like.
  • the real number type can be used for real values among essential parameters constituting the network model, and the string type can be used for parameters with a variable number and blob data that is binary data.
  • the QML framework may follow the NCHW (N:batch, C:channel, H:height, W:width) format, which is a channel-first data format.
  • NCHW N:batch, C:channel, H:height, W:width
  • the layer type supports layers used in ONNX, and parameters defined in each layer may also follow the ONNX format.
  • the QML framework can be equipped with a back-propagation algorithm to learn the network model.
  • the QML framework can be loaded with gradient calculation algorithms and optimization algorithms to update model parameters (weights, biases).
  • the QML module 310 among the methods of learning the network model (architecture), trains the network model from scratch and then determines it through an initialization algorithm according to the weight of each layer, using the train from scratch technique and the weight of the previously learned model (import function). It is possible to support a fine-tuning technique that sets the initial weight of the layer by reading the weight stored in the database or obtained through previous learning attempts through
  • the QML module 310 may perform learning and inference through information received from a database (DB server 10, the control unit 100 or the storage unit 200 of the server, and the same below). Information received from the database can be obtained through data combinations received through user queries.
  • DB server 10 the control unit 100 or the storage unit 200 of the server, and the same below.
  • Information received from the database can be obtained through data combinations received through user queries.
  • the conversion unit 360 may convert a specific learning model into another type of learning model. Specifically, the conversion unit 360 may convert a specific learning model into a relational data format of a database. The conversion unit 360 may convert a learning model in relational data format into a specific learning model or another learning model. For example, the conversion unit 360 converts a learning model table stored in a table type in a database into a QML framework, which is an internal framework, or vice versa. The conversion unit 360 may convert the architecture, layers, and parameters of the learning model 230 into relational data formats such as a network table, a layer table, and a parameter table, or vice versa.
  • the conversion unit 360 may convert the QML learning model table into a learning model suitable for the QML module 310 .
  • the conversion unit 360 may convert the dataset table to be suitable for use in the QML module 310, if necessary.
  • the QML module 310 (or the framework unit 300) may perform learning and/or inference using the dataset and the converted QML learning model, and output a learning result.
  • the conversion unit 360 may convert the learning result output from the QML module 310 into a relational data format and store it as a learning result (output) table. These functions may be performed by at least one of the QML module 310 and/or the dataset management module 120 instead, or may be performed separately from each other.
  • the conversion unit 360 may be used for compatibility with an external framework.
  • the conversion unit 360 may convert a pretrained model of an existing framework into another framework format such as an ONNX (Open Neural Network Exchange) model format when exporting information or data from a database to the outside.
  • ONNX Open Neural Network Exchange
  • the conversion unit 360 may convert (import) a network structure and model data defined in the ONNX model format into a network model format of a database. Conversely, the conversion unit 360 may convert (export) the network model of the database into a structured format or CSV file including the ONNX model.
  • the conversion unit 360 may convert Open Network Exchange (ONNX), Neural Network Exchange Format (NNEF), and hyperparameter and learning parameter files into structured formats in addition to the ONNX model format.
  • ONNX Open Network Exchange
  • NEF Neural Network Exchange Format
  • hyperparameter and learning parameter files into structured formats in addition to the ONNX model format.
  • the user can convert the converted ONNX model and structured format into the target framework desired by the user and use it.
  • the network model can be applied to other types of deep learning frameworks through a conversion operation through the conversion unit 360 .
  • the DB server 10 can call a relational data type model stored in the database and apply it to a data set of a similar type.
  • the conversion unit 360 can minimize the time required for the work through this conversion work.
  • FIG. 8 is a flowchart showing the execution flow of a query-based machine learning technique according to an embodiment of the present invention.
  • the query-based machine learning technology converts an ONNX format or a pre-learned model converted to the ONNX format into a QML format through a converter, and learns or infers from the terminal 20.
  • a query is received, information is transmitted from the database to the QML module 310, and training and inference can be performed in the QML module 310. And, if training (learning) or reasoning results are stored in the database, the terminal 20 can check the results stored in the database.
  • the terminal 20 may input (Import) a learning model or receive an output (Export) from a database (1).
  • the database can interpret the query and take appropriate action (3).
  • the control unit 100 may analyze the QML type of the query input from the terminal 20 and transmit a result thereof to the QML module 310 . In more detail, it is possible to perform operations such as analyzing the language type of the input query and determining compatibility or whether similar work details are stored in the storage unit 200 .
  • the control unit 100 selects a program capable of implementing optimal performance for each operating system or machine learning framework (S/W), and may request learning and inference to the QML module 310. For example, if a dataset requiring training is an image, the controller 100 may select a machine learning S/W capable of exhibiting optimal performance for image training and request training from the selected S/W.
  • S/W machine learning framework
  • control unit 100 may check the resources of the server in use for current training, apply a framework for training according to the scale of the resources, or selectively apply components when the framework is applied. .
  • the QML module 310 may perform a plug-in in the database and perform training and reasoning through information received from the database (4).
  • the terminal 20 may request training or inference to the database through a query (5).
  • the terminal 20 may search a table of the database to search learning-related information (6).
  • Learning model data can be stored as a QML schema in a database (7).
  • FIG. 9 is an operational flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
  • the query-based deep learning inference method can be executed in the framework unit 300 that works with the terminal 2 and the DB server 10. there is.
  • the control unit 100 may receive an input of a learning query (Call Train) or an inference query (Call Inference) from the user terminal (S410).
  • a learning query Call Train
  • an inference query Call Inference
  • the control unit 100 may analyze the query and transmit a dataset and a suitable learning model to the framework unit 300 .
  • the framework unit 300 may execute network initialization (Init Network), network configuration (Construct Network), and network update (Update Network) according to the learning query or inference query (S420).
  • the framework unit 300 may execute training or inference (Test) (S430).
  • the framework unit 300 may acquire batch data (Get Batch Data) and store results and models (Store Result & Model) by repeating (Iteration) until the end of learning.
  • the framework unit 300 may execute tests, obtain test data (Get Test Data), feed forward, and store inference results (Store Result).
  • the framework unit 300 may provide a learning result or reasoning result to the user terminal 130 when learning or reasoning is finished (S440).
  • the query-based deep learning inference system 1 may manage clients, members, datasets, networks, learning models, and learning execution as follows.
  • the query-based deep learning inference system 1 may provide the user terminal 130 with a function to manage a dataset and a machine learning process and check the result.
  • the query-based deep learning reasoning system 1 may grant authority to create and modify data in the database 110 and network models through member management, and may leave a history of changes.
  • the query-based deep learning inference system 1 can create a new table to manage datasets and provide functions for searching, modifying, and uploading data.
  • you create a new dataset you can automatically create a new table and upload the data.
  • Data can be modified according to authority.
  • Data upload may be performed by receiving numerical data from the user or by reading one or more files.
  • a function of labeling training data may be provided.
  • the query-based deep learning inference system 1 may provide functions for managing network models as follows. New network models can be created by adding supported layers and adjusting layer parameters. A list of previously created network models can be queried. A new network model can be created by adding a new layer to an existing network model. A function to visualize and show the network model can be provided.
  • the query-based deep learning inference system 1 may provide functions for managing learning as follows. You can create or modify a learning model by adjusting the network model, dataset, and learning parameters. The trained network model can be output through the converter function. You can check the resources of the server currently in use.
  • the query-based deep learning inference system 1 may provide functions for performing learning and inference and checking results as follows. You can check server resources. The user may be notified whether learning and inference performance is possible. You can search the list of currently running or waiting learning plans. You can create a learning plan by setting the registered network model, dataset, and learning parameters. You can check the learning parameters of the currently running or waiting learning plan. You can check the middle and results of the currently running learning plan. You can stop the currently running learning plan. You can start a pending study plan. An inference plan can be created by setting the registered network model and dataset. You can check the results of the executed reasoning plan.
  • the deep learning framework is connected to the information database in the form of a plug-in so that even a user without expert knowledge of deep learning can provide the user with necessary information without difficulty, It is possible to realize a query-based deep learning inference system that enables inference of data corresponding to a query by learning data stored in an information database using a deep learning method.
  • FIG. 10 is a schematic configuration diagram of a database-linked deep learning distribution system according to another embodiment of the present invention.
  • FIG. 11 is a block diagram of a main server and distributed servers according to FIG. 10 .
  • 12 shows a dataset of a main server and a dataset for training of a distributed server.
  • 13 is a flowchart of a training method of the system of FIG. 10;
  • 14 is a flowchart of an inference method of the system of FIG. 10 .
  • 15 to 17 are signal flow diagrams according to different embodiments of the asynchronous distributed server of FIG. 13 .
  • 18 and 19 are signal flow diagrams according to different embodiments of the synchronous distributed server of FIG. 13 .
  • 20 is a signal flow diagram according to the distributed inference of FIG. 14 .
  • 21 schematically illustrates the learning model.
  • Fig. 22 shows part of the intermediate result table according to Fig. 20;
  • 23 shows part of the network table. See Figures 1 to 9.
  • a learning model (learning network model) can be implemented by an architecture (model architecture) and learning parameters assigned to it.
  • An architecture can be built by an architectural structure and hyperparameters assigned to it.
  • the learning model and learning model table, architecture and architecture table, architecture structure and network table, hyperparameter and hyperparameter table, and learning parameter and learning parameter table may respectively correspond to each other.
  • the learning model table may include an architecture table and a learning parameter table.
  • the architecture table may include a network table and a hyperparameter table.
  • the architectural structure may mean the number of layers, the number of units, the type of layers, and how units are connected.
  • a unit may also be referred to as a node.
  • Values to be entered into the first nodes may be input dataset tables.
  • Values to be entered into the last nodes may be output values.
  • Input values and output values input to nodes of the middle layer may be managed and stored by the dataset management module 120 or a separate module.
  • the framework unit or internal framework (hereinafter referred to as 'framework unit') builds a model architecture based on the architecture table (network table and hyperparameter table) of the selected learning model table, and sets the learning parameters based on the learning parameter table.
  • a learning model corresponding to the selected learning model table may be created by assigning to the model architecture.
  • the framework unit may perform deep learning training or inference by using the generated learning model and inputting a dataset table for training or inference.
  • the learning model table and the learning model may be interlocked with each other, or may be described as a correspondence relationship, a conversion relationship, and the like, but are not limited to these terms.
  • a database-linked deep learning distribution system (hereinafter referred to as 'training distribution system') according to an embodiment of the present invention includes a query-based deep learning framework application database server (hereinafter referred to as 'main server') 40 , and a plurality of distributed servers 41 to 43 may be included.
  • 'main server' query-based deep learning framework application database server
  • the main server 40 and the plurality of distributed servers 41 to 43 may have at least some of the functions of the DB server 10 of FIGS. 1 to 9 .
  • the components of the main server 40 and the plurality of distributed servers 41 to 43 are described with reference to the above description.
  • the main server 40 and the plurality of distributed servers 41 to 43 are connected through a network and can communicate with each other.
  • the main server 40 manages a plurality of distributed servers 41 to 43, and can perform deep learning learning in a distributed manner.
  • the main server 40 may include a control unit 100, a storage unit 200, and an input/output unit 370.
  • the main server 40 may further include a conversion unit 360 .
  • the main server 40 may further include a framework unit 300 .
  • the distributed servers 41 to 43 include a control unit 100-N, a storage unit 200-N, a framework unit 300-N, and an input/output unit 370-N.
  • the distribution servers 41 to 43 may further include a conversion unit 360-N.
  • N is a natural number, and is used to distinguish a specific distribution server among a plurality of distribution servers 41 to 43 from other distribution servers.
  • the main server 40 implements the functions of the database server 10 of FIGS. 1 to 9 and may additionally implement a distributed function.
  • the main server 40 functions to manage the entire distributed system and may additionally perform a distributed function.
  • the distribution function of the main server 40 is treated as being performed by any one distribution server.
  • the main framework unit 50 of the main server shown in FIG. 10 and the first to third framework units 51 to 53 of each distribution server correspond to the above-described framework unit 300, respectively, and are distinguished. was used for the purpose of
  • Any one of the plurality of distributed servers may be implemented as a plurality of computer systems.
  • the main server 40 may set the plurality of distributed servers 41 to 43 so that each of the plurality of distributed servers 41 to 43 performs deep learning training in the same environment.
  • the main server 40 may make at least a part of a dataset, a learning model, and a framework identical to the plurality of distributed servers 41 to 43 .
  • the first to third distribution servers 41 to 43 may include first to third framework units 51 to 53, respectively.
  • the first to third framework units 51 to 53 have frameworks (QML modules) to be trained, and can perform machine learning with the same learning model.
  • the meaning that each learning model of the first to third distribution servers 41 to 43 is the same may mean that at least each architecture is the same.
  • the learning parameters p1, p2, and p3 of each distribution server 41 to 42 may be different.
  • Each of the distribution servers 41 to 42 may have different initial learning parameters by initializing the learning parameters, respectively.
  • the plurality of distributed servers 41 to 43 may have the same initial learning parameters. That is, the initial value of the learning parameter may be determined by the main server 40 or independently in each of the plurality of distributed servers 41 to 43 . Determination of the initial value may be optional or may be determined according to various factors such as the type and number of datasets, the purpose of deep learning, and the like.
  • the first to third distribution servers 41 to 43 may have the same data set as the data set provided in the main server 40 .
  • the same data set is transmitted from the main server 40 to the plurality of distributed servers 41 to 43, or specific data of the main server 40 and the plurality of distributed servers 41 to 43 is synchronized using a synchronization method such as mirroring. can be done by This data movement (spreading) method may apply to other data (learning parameters, etc.) as well as the dataset.
  • a dataset of each of the plurality of distributed servers 41 to 43 may be converted into a dataset DS for learning suitable for learning.
  • the transmission efficiency may be higher than when the main server 40 prepares the dataset as each learning dataset (DS) for each of the plurality of distributed servers 41 to 43 and transmits the dataset. Because it can be transmitted by broadcasting.
  • the batch size can be received from the main server 40 .
  • the framework unit 300 may further include an integration unit 320 in addition to the above-described QML module 310 .
  • the integration unit 320 may integrate the learning parameters derived during the distributed learning process into one learning parameter.
  • a function used by the integration unit 320 for integration may be various. For example, the integration function may multiply each of a plurality of derived learning parameters by a weight and then take an average of these as an output.
  • the integration unit 320 applies a learning parameter derived from the corresponding distributed server and a learning parameter shared from other distributed servers to the argument of the integration function F, various argument policies (or 'integration policies'). ) can be determined. If it is an option, it can be selected by the user's settings.
  • integration policies include:
  • the integration unit 320 may use the latest learning parameter as an argument of the integration function (F). That is, the learning parameter once used cannot be used as an argument of the integration function (F) unless it is newly shared.
  • the integration unit 320 may execute the integration function F without other learning parameters.
  • the integrator 320 may not execute the integrator function F when only its own learning parameter is an argument of the integrator function F. In this case, the learning parameters derived in the batch learning of the current step may be used as learning parameters in the batch learning of the next step.
  • the integration unit 320 executes the integration function (F) only when all learning parameters corresponding to the number of arguments are up to date, and even when at least one learning parameter among other learning parameters is up to date, the integration function (F ). Assuming that there are 3 arguments, in the former case, 3 learning parameters are used as arguments when all 3 learning parameters are up-to-date, and otherwise, only their own learning parameters are used as arguments. In the latter, if only two learning parameters are up-to-date, only those two learning parameters are used as arguments. The user can set one of the arguments to be executed only when all arguments of the integrated function (F) or even when some arguments are executed.
  • the first to third framework units 51 to 53 may create a learning model architecture with the same architectural structure and hyperparameters, and prepare for machine learning using each learning dataset DS.
  • the first to third framework units 51 to 53 may respectively set initial values of learning parameters p1, p2, and p3, such as weights and biases, among learning models.
  • each of the plurality of framework units 51 to 53 may perform deep learning training.
  • Each of the plurality of framework units 51 to 53 may repeat deep learning training using each training dataset DS.
  • Each of the plurality of framework units 51 to 53 may update (derive) a parameter, in particular, a learning parameter after training for each mini-batch (b1 to b10).
  • learning or training of each mini-batch will be referred to as batch learning or batch training.
  • the first framework unit 51 trains using the initial learning parameter p1-1 and the first mini-batch b1 to derive the updated (converted) learning parameter p1-1'.
  • the derived learning parameter p1-1' may be transmitted to the second to third distributed servers 42 and 43 or may be synchronized and spread.
  • Learning parameters derived from each framework unit may be spread (or 'shared') in various ways. This may vary by policy or user setting. For example, an immediate shared policy in which the latest learning parameter is spread to other framework parts when every batch learning is completed in a framework part, and a shared policy by time period in which the latest learning parameter is spread to other framework parts after a certain period of time has elapsed. There may be a sharing policy for each learning period in which the latest learning parameter is spread when a certain number of batch learning is completed, a rule set by the main server 40, or other rule policy in which the rule is spread by a random instruction.
  • the integration unit 320 of the first framework unit 51 includes the second and third framework units 52 and 53 in addition to the derived first learning parameter p1-1' of the first framework unit 51.
  • the second and third learning parameters derived from may be integrated into one learning parameter (p1-2).
  • the integration unit 320 of the first framework unit 51 applies a weight to the first learning parameter p1-1′ calculated in the first framework unit 51, and the calculated first learning parameter. It is desirable to allow the parameter p1-1' to have more influence on the output of the integrating function.
  • the first framework unit 51 updates the learning parameters of the learning model to the integrated learning parameters (p1-2), and then uses the second mini-batch (b2) and the integrated learning parameters (p1-2) to machine can learn
  • learning for one epoch that is, all mini-batches (training datasets (DS))
  • the first framework unit 51 continues learning until a predetermined number of epochs or conditions according to a preset policy are satisfied. can be repeated
  • learning parameter updates may be performed as many times as the total data size divided by the batch size. Referring to FIG. 12 (b-1 to 3), since the data size is 80 and the batch size is 8, 10 iterations occur during one epoch.
  • the first framework unit 51 may shuffle the training data set DS when one epoch ends.
  • the first framework unit 51 may tune the architecture structure or hyperparameters when the sub-process of deep learning training is finished.
  • a training dataset may be divided into a training dataset, a validation dataset, and a test dataset.
  • a sub-process of deep learning training there may be a learning process (training, verification, testing) of the above classified dataset.
  • Hyperparameters tuned in the first framework unit 51 may be spread to other distributed servers.
  • Other distributed servers can rebuild the learning model architecture with tuned hyperparameters. It is desirable to perform hyperparameter tuning only on one distributed server.
  • each learning parameter may be readjusted, such as initialization, or may maintain the previous value.
  • the main server 40 may receive a deep learning learning query of a specific function from a user (S610).
  • the main server 40 may receive a query directly through the input/output unit 370 or through the terminal 20 .
  • the main server 40 may select a learning model table suitable for the learning query (S620).
  • the main server 40 may analyze the query and select an appropriate learning model table (hereinafter referred to as 'learning model table (Tt)') from a plurality of learning model tables.
  • the learning model table may be selected by the learning model management module 130 of the main server 40 according to the above-described model selection policy.
  • the learning model table Tt may be a learning model generated by the conversion unit 360 in an external framework imported.
  • the main server 40 may have a dataset table for learning.
  • the main server 40 may receive data of the training dataset through a query or from another device.
  • the main server 40 may allow the plurality of distributed servers 41 to 43 to be initialized and operated (S630).
  • Initial operation may refer to a series of processes of setting a distributed environment suitable for distribution of deep learning training and preparing for distributed training in a plurality of distributed servers 41 to 43.
  • the initialization operation may include selecting an appropriate distributed server from among a plurality of available distributed servers 41 to 43 .
  • the initialization operation may connect the first to third distribution servers 41 to 43 and the network, and spread data to the first to third distribution servers 41 to 43 through synchronization, asynchronous, and/or mirroring. there is.
  • the distributed environment may have a batch size of the learning dataset DS.
  • the main server 40 may determine an appropriate batch size based on the number of distributed servers, the specifications of the distributed servers, the training dataset (DS), and/or the query.
  • the distributed environment may further have an appropriate number of epochs.
  • a distributed environment may further include a learning query.
  • the learning query provided in the distributed environment may be an analyzed content, for example, a query function.
  • the main server 40 may spread the distribution environment, the learning model table (Tt), and/or the training dataset (DS) table to the first to third distribution servers 41 to 43.
  • a distributed environment may be a relational data structure.
  • a distributed environment may belong to a model table for training.
  • the first to third distribution servers 41 to 43 may have the same distribution environment, a learning model table (Tt), and a learning dataset (DS) table.
  • Tt learning model table
  • DS learning dataset
  • Each of the first to third distribution servers 41 to 43 may change their respective training dataset (DS) tables according to learning.
  • the first distribution server 41 may randomly change the order of the data of the learning dataset DS and divide the data according to the batch size.
  • Shuffled and partitioned datasets can be stored as batch dataset tables.
  • a dataset divided into each batch size of the batch data set table may be referred to as 'batch data' or 'mini-batch'.
  • the first to third distributed servers 41 to 43 set the initial values of the respective learning parameter tables to be different from each other. This is because deep learning training can be performed with various learning parameters. To this end, the first to third distributed servers 41 to 43 may randomly set initial values of learning parameters. For initialization of the learning parameters, various initialization techniques may be used.
  • Each of the first to third distribution servers 41 to 43 initially operated builds a model architecture suitable for the first to third framework units 51 to 53 installed as a plug-in using the architecture table belonging to the appropriate learning model table. It can be done (S640).
  • the first to third framework units 51 to 53 may prepare to train a learning model by allocating initial learning parameters to each constructed model architecture (S650).
  • the first to third framework units 51 to 53 may be trained using a mini-batch for learning and a model architecture to which learning parameters are assigned (S660).
  • each learning parameter updated in each distributed server there may be an asynchronous learning method in which batch learning is performed independently in each distributed server and a synchronous learning method in which batch learning is periodically started.
  • the asynchronous learning method enables continuous batch learning without a break regardless of the timing of batch learning in other distributed servers, so that computing resources can be efficiently used.
  • the total learning time can be further reduced compared to the asynchronous method by using a policy that also terminates the other distributed servers.
  • the degree or efficiency of distributed learning may be better than that of the asynchronous learning method.
  • synchronous and asynchronous learning methods Users can select one of synchronous and asynchronous learning methods according to the type or target of machine learning.
  • synchronous and asynchronous learning methods will be described in detail.
  • 15 is an embodiment according to the immediate sharing policy in which the latest learning parameter is spread to other framework units when each batch learning is completed in each framework unit among the above-mentioned 'spreading policies'.
  • the unified policy is an embodiment in which at least one other learning parameter is used as an argument when it is up to date.
  • Each of the first to third framework units 51 to 53 may acquire each batch data (mini-batch b1 to b10) (Get Batch Data) and perform iteration learning until the learning ends. Each repeated learning is referred to as 'batch learning' (batch TR).
  • the first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′.
  • the first framework unit 51 may spread the learned parameter 1.1' (p1.1') to the second and third distributed servers 42 and 43 (S810). Spreading may be transmitted directly from the first distribution server 41 to the remaining distribution servers 42 and 43, or may be synchronized or mirrored through the main server 40. For the efficiency and consistency of data management, it is desirable to spread through synchronization or mirroring.
  • the learning parameters of the first distribution server 41 are shown to spread to the second and third distribution servers 42 and 43, but it is not limited thereto.
  • each derived learning parameter (p1.1', p2.1', p3.1') is It can spread to other distribution servers 41, 42, 43.
  • the integration unit 320 of the first framework unit 51 derives the latest learning parameters (other learning parameters) derived after batch learning in the other distributed servers 42 and 43 and the first framework unit 51.
  • the obtained learning parameters may be integrated into learning parameters to be used in the next batch learning after appropriate conversion (F).
  • those used in the integrator 320 prior to the recently completed batch learning may be excluded. That is, only the latest learning parameters can be used.
  • the first framework unit 51 may update the integrated learning parameters to learning parameters to be applied to the next batch learning and perform the next batch learning.
  • the unit 320 may designate the 1.1' parameter p1.1' as the 1.2 parameter p1.2 used for the next learning 1.2 batch learning.
  • the first framework unit 51 focuses on the 1.2' parameter (p1.2') derived after the 1.2 batch learning is completed, and the 2.1' and 2' parameters spread in the second and third distribution servers 42 and 43 By combining with the 3.1′ parameter, the 1.3 parameter p1.3 can be calculated.
  • the function F used in the integration process focuses on the learning parameter derived from the corresponding framework unit and integrates the other parameters as auxiliary.
  • the integration unit 320 of the first framework unit 51 multiplies the first parameter p1.2' with a high weight, and the other parameters p2.1' and p3.1' with low weights. By multiplying the weight, it can be derived as the 1.2 parameter (p1.2).
  • the sum of the weights is preferably 1.
  • the size of each of the weights multiplied by each factor may vary.
  • the first framework unit 51 may derive the 1.3' parameter (p1.3') after the 1.3 batch learning using the 1.3 parameter (p1.3). After 1.3 batch learning, the first framework unit 51 has the 1.3', 2.2', and 3.1' parameters (p1.3, p2.2, p3.1') as the latest parameters. At this time, the 3.1' parameter (p3.1') is a parameter used after completion of the 1.2 batch learning, and excludes it. Accordingly, the first framework unit 51 may calculate the 1.4th parameter p1.4 by integrating the 1.3′ and 2.2′ parameters p1.3′ and p2.2′.
  • the second framework unit 52 converts the 1.3' learning parameter (p1.3') and the 1.4' learning parameter (p1.4') to the first distributed server ( 41) can be diffused. Since the 1.4' learning parameter p1.4' is the latest, the integration unit 320 of the second framework unit 52 replaces the 1.3' learning parameter p1.3' with the 1.4' learning parameter p1. 4') can be used to integrate.
  • the first to third distributed servers 41 to 43 may asynchronously perform batch learning and integration of learning parameters. That is, the first distribution server 41 may proceed with the next batch learning regardless of the end of batch learning of the other distribution servers 42 and 43 . Accordingly, computing resources of the plurality of distributed servers 41 to 43 can be efficiently used. The time required for each batch learning is inevitably different due to different server specifications or operating environments. This is because, in the case of the present synchronous learning method, it is not necessary to wait for batch learning of other distributed servers to end.
  • the final trained learning parameter (p_last) may be calculated by the integration unit 320 of the first framework unit 51 .
  • the integrating unit 320 of the first framework unit 51 provides the learning parameters (p1.l', p2.m', p3.n', 1.l', 2.m', and 3.n'). ), it is possible to calculate the trained learning parameter (p_last) by integrating (F′) based on at least one of (l, m, n are natural numbers).
  • the function (F′) used in this final integration may be different from the integration function (F) used during training.
  • the final integration function (F') preferably does not give differential weight to each factor. It is preferable that the final integration function (F') discriminates less than the integration function (F) even if the weight is discriminated for each factor. In this case, it is preferable to assign high weights to low weights in the order in which learning is completed first.
  • the 'l' value has a larger value than other 'm' and 'n' values.
  • the batch learning of the first framework unit 51 ends (all epochs are finished)
  • the batch learning of the second and third framework units 52 and 53 may end regardless of the remaining iterations. In this case, the time can be shortened compared to the synchronous learning method in the same environment.
  • FIG. 16 is an embodiment according to a sharing policy for each time period in which a finally updated learning parameter is spread to other framework units after a certain time period among the above-mentioned 'diffusion policies'.
  • the integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figure 15.
  • Each of the first to third framework units 51 to 53 may obtain each batch data (mini-batch b1 to b10) and repeat batch learning (batch TR) until learning ends.
  • the first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′.
  • the derived parameter 1.1' (p1.1') may be used for learning the 1.2 arrangement as it is. That is, the integration unit 320 of the first framework unit 51 may not execute the integration function (F).
  • the 1.2 parameter p1.2 has the same value as the 1.1′ parameter p1.1′.
  • each of the distributed servers DS1 to 3 may perform batch learning independently until the learning parameters are spread.
  • All of the framework units 51 to 53 may spread the latest learning parameters at a specific period or at a specific time instructed by the main server 40 (S820).
  • the first framework unit 51 sets the 1.3' learning parameter p1.3'
  • the second framework unit 52 sets the 2.2' learning parameter p2.2'
  • the third framework unit 52 may spread the 3.1' learning parameter p3.1' to other distributed servers.
  • each framework part After spreading the learning parameters, each framework part can integrate the learning parameters before learning the next batch.
  • the first framework unit 51 focuses on the 1.3' parameter (p1.3') derived after the 1.3 batch learning is completed, and the second and third distribution servers 42 and 43 spread the By combining the parameters 2.2' and 3.1', the parameter 1.4 (p1.4) can be calculated.
  • the second framework unit 52 focuses on the 2.3′ parameter (p2.3′) derived after the 2.3 batch learning is completed, and the 3.1′ and 3.1′ parameters spread from the 3rd and 1st distributed servers 43 and 41 By combining with the 1.3' parameter, the 2.4 parameter (p2.4) can be calculated.
  • the third framework unit 53 focuses on the 3.2′ parameter (p3.2′) derived after the 3.2 batch learning is completed, and the first and second distribution servers 41 and 42 spread the 1.3′ and Integrating with the 2.2′ parameter, the 3.3 parameter (p3.3) can be calculated.
  • the final trained learning parameter (p_last) may be calculated by the integration unit 320 of the first framework unit 51 .
  • the integrating unit 320 of the first framework unit 51 provides the learning parameters (p1.l', p2.m', p3.n', 1.l', 2.m', and 3.n'). ), it is possible to calculate the trained learning parameter (p_last) by integrating (F') based on (l, m, n are natural numbers).
  • the function (F′) used in this final integration may be different from the integration function (F) used during training.
  • the final integration function (F') preferably does not give differential weight to each factor. It is preferable that the final integration function (F') discriminates less than the integration function (F) even if the weight is discriminated for each factor. In this case, it is preferable to assign high weights to low weights in the order in which learning is completed first.
  • the 'l' value has a larger value than other 'm' and 'n' values.
  • the batch learning of the first framework unit 51 ends (all epochs are finished)
  • the batch learning of the second and third framework units 52 and 53 may end regardless of the remaining iterations. In this case, the time can be shortened compared to the synchronous learning method in the same environment.
  • FIG. 17 is an embodiment according to a sharing policy for each learning period in which the latest learning parameter is spread when a certain number of batch learning is completed among the above-mentioned 'spreading policies'.
  • the integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figure 15.
  • Each of the first to third framework units 51 to 53 may obtain each batch data (mini-batch b1 to b10) and repeat batch learning (batch TR) until learning ends.
  • the first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′.
  • the derived parameter 1.1' (p1.1') may be used for learning the 1.2 arrangement as it is. That is, the integration unit 320 of the first framework unit 51 may not execute the integration function (F).
  • the 1.2 parameter p1.2 has the same value as the 1.1′ parameter p1.1′.
  • each of the distributed servers DS1 to 3 may perform batch learning independently until the learning parameters are spread.
  • Each of the framework units 51 to 53 may spread the latest learning parameter in a specific cycle of the number of times of batch learning (S830). When batch learning marked in bold in the drawing is completed, the latest learning parameter may be diffused.
  • the first framework unit 51 sets the 1.2' learning parameter p1.2'
  • the second framework unit 52 sets the 2.2' learning parameter p2.2'
  • the third framework unit (52) may spread the 3.2' learning parameter (p2.3') to other distributed servers, respectively.
  • each framework unit may integrate the learning parameters when all the latest learning parameters are received from other distributed servers.
  • the first framework unit 51 focuses on the 1.3' parameter (p1.3') derived after the 1.3 batch learning is completed, and the second and third distribution servers 42 and 43 spread the By combining the parameters 2.2' and 3.2', the parameter 1.4 (p1.4) can be calculated.
  • the first framework unit 51 executes the integration function (F) after each batch learning for the reason that no other learning parameters are received after the 1.2 batch learning and for having only one other latest learning parameter after the 1.3 batch learning. don't let
  • the second framework unit 52 focuses on the 2.3′ parameter (p2.3′) derived after the 2.3 batch learning is completed, and the 3.2′ and 3.2′ parameters spread from the 3rd and 1st distributed servers 43 and 41 Integrating with the 1.2' parameter, the 2.4 parameter (p2.4) can be calculated.
  • the third framework unit 53 focuses on the 3.2′ parameter (p3.2′) derived after the 3.2 batch learning is completed, and the first and second distribution servers 41 and 42 spread the 1.2′ and Integrating with the 2.2′ parameter, the 3.3 parameter (p3.3) can be calculated.
  • the final trained learning parameter (p_last) may be calculated by the integration unit 320 of the first framework unit 51 .
  • the integrating unit 320 of the first framework unit 51 provides the learning parameters (p1.l', p2.m', p3.n', 1.l', 2.m', and 3.n'). ), it is possible to calculate the trained learning parameter (p_last) by integrating (F') based on (l, m, n are natural numbers).
  • the function (F′) used in this final integration may be different from the integration function (F) used during training.
  • the final integration function (F') preferably does not give differential weight to each factor. It is preferable that the final integration function (F') discriminates less than the integration function (F) even if the weight is discriminated for each factor. In this case, it is preferable to assign high weights to low weights in the order in which learning is completed first.
  • the 'l' value has a larger value than other 'm' and 'n' values.
  • the batch learning of the first framework unit 51 ends (all epochs are finished)
  • the batch learning of the second and third framework units 52 and 53 may end regardless of the remaining iterations. In this case, the time can be shortened compared to the synchronous learning method in the same environment.
  • FIG. 18 is an embodiment according to the immediate sharing policy in which the latest learning parameter is spread to other framework units when every batch learning is completed in a framework unit among the above-mentioned 'diffusion policies'.
  • the integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figure 15.
  • Each of the first to third framework units 51 to 53 may perform batch learning (batch TR) for each mini-batch b1 to b10 until the training ends.
  • the first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′.
  • the first framework unit 51 may spread the learned parameter 1.1' (p1.1') to the second and third distribution servers 42 and 43 (S840).
  • the first framework unit 51 updates the learning parameters (other learning parameters) derived after batch learning (1.1 batch learning) of the same step in the other distributed servers 42 and 43 to the first distributed server 41. can determine if it has been
  • the integration unit 320 of the first framework unit 51 performs all learning parameters (p1.1', p2.1) derived after the 1.1 batch learning. ', p3.1') can be integrated into the learning parameter (p1.2) to be used in the next batch learning using an appropriate integration function (F).
  • the integration function (F) focuses on the learning parameter derived from the corresponding framework unit and integrates the other parameters as auxiliary.
  • the integration unit 320 of the first framework unit 51 multiplies the first parameter p1.1' with a high weight, and the other parameters p2.1' and p3.1' with low weights. By multiplying the weight, it can be derived as the 1.2 parameter (p1.2).
  • the sum of the weights is preferably 1.
  • the weight is the degree of learning progress or other factors, and each weight may have a different size.
  • the first framework unit 51 may update the integrated learning parameter p1.2 as a learning parameter to be applied to the next batch learning, and perform the next batch learning.
  • the integration unit 320 of the second and third framework units 52 and 53 of the second and third distribution servers 42 and 43 respectively all the learning parameters (p1.1' derived after the 1.1 batch learning). , p2.1', p3.1'), the 2.2 and 3.2 parameters (p2.1, p3.1) are integrated and updated as learning parameters to be applied to the next batch learning, and then the next batch can learn
  • the first to third framework units 51 to 53 may be tested until all epochs are completed.
  • any one of the plurality of distribution servers 41 to 43 or the integration unit 320 of the main server 40 determines each of the last learning parameters (p1.n', p2.n', p3.n ') to derive the final learning parameter (p_last) (n is a natural number).
  • the final integration function (F') may be different from the integration function (F) used during learning.
  • the final integration function (F') preferably does not give differential weight to each factor.
  • the synchronous learning method may take more time to learn than the asynchronous learning method, but each learning parameter can be used in a balanced manner.
  • FIG. 19 is an embodiment according to any one of a sharing policy for each time period, a sharing policy for each learning period, and other rule policies among the above-mentioned 'diffusion policies'.
  • the integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figures 15, 16, and 18.
  • Each of the first to third framework units 51 to 53 may repeat batch learning (batch TR) for each mini-batch b1 to b10 until the learning ends.
  • the first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′. The derived parameter 1.1' (p1.1') may be used for learning the 1.2 arrangement as it is. That is, the integration unit 320 of the first framework unit 51 may not execute the integration function (F). The 1.2 parameter p1.2 has the same value as the 1.1′ parameter p1.1′. In this way, each of the distributed servers DS1 to 3 may perform batch learning independently until the learning parameters are spread. At this time, the start of each batch learning is irrelevant even if it is not synchronized.
  • All of the framework units 51 to 53 may spread the latest learning parameters at a specific time period, learning period, or specific time (S820).
  • each of all the framework units 51 to 53 has the 1.3', 2.3', and 3.3' learning parameters (p1.3', p2.3', p3. 3') can be spread to other distributed servers.
  • each framework unit may integrate the learning parameters before the next batch learning and update them to the 1.4th, 2.4th, and 3.4th learning parameters (p1.4, p2.4, p3.4), respectively. . Thereafter, each of the framework units 51 to 53 may proceed with batch learning until the next learning parameter diffusion.
  • any one of the plurality of distributed servers 41 to 43 sets a trained model architecture and a trained learning parameter p_last to an architecture table and a learning parameter table. It can be converted to and stored as a trained learning model table (model table for inference (Ti)) (S670). Stored data may be transmitted to or synchronized with the main server 40 .
  • a trained learning model table model table for inference (Ti)
  • the environment of the main server 40 and the plurality of distributed servers 41 to 43 of the deep learning inference distribution system may be different from the environment of the main server 40 and the plurality of distributed servers 41 to 43 of the deep learning training distribution system.
  • the main server 40 and the plurality of distributed servers 41 to 43 may not include the integration units 320 and 320-N, respectively.
  • the main server 40 and the plurality of distributed servers 41 to 43 may be compatible with each other.
  • a deep learning inference query having the same function as the learning query may be input from the terminal 20 (S710).
  • the main server 40 is the same as the first distributed server 41 capable of deep learning, the main server 40 can receive the deep learning inference query.
  • deep learning inference is performed in the main server 40 .
  • the main server 40 may have a dataset table for reasoning in the storage unit 200 .
  • the main server 40 may receive data of a dataset for inference through a query or may receive input from another device.
  • the main server 40 may analyze a deep learning inference query having the same function as the input learning query and select a pre-learned model table Ti for inference (S715).
  • the model table (Ti) for inference may be described in the contents of a deep learning inference query.
  • the main framework unit 50 of the main server 40 builds the architecture table of the model table for inference (Ti) into a model architecture for inference suitable for the main framework unit 50, and assigns learning parameters to the model architecture for inference. It is possible to generate a learning model for inference by assigning (S720).
  • the main server 40 may determine whether reasoning distribution is necessary (S725).
  • Inference distribution may mean performing some of a plurality of tasks for performing deep learning on another device.
  • the plurality of tasks may be a series of processes for one learning model or a set of tasks of each of the plurality of learning models.
  • the former one learning model
  • multiple tasks must be performed in sequence, so that after performing some tasks on one device, the remaining tasks can be performed on another device.
  • the latter multiple learning model
  • tasks of a certain learning model may be performed in different devices for each task group. In this case, a task group of a learning model belonging to a higher group may be performed first, and then a task group of a learning model belonging to a lower group may be performed.
  • the latter may include the former concept of dispersion.
  • distributed processing tasks must be a series of tasks.
  • a series of tasks are each in a precedence relationship, meaning that they are directly connected to each other.
  • the output value of a task belonging to a series of tasks must be the input value of the next task belonging to a series of tasks.
  • Inference distribution requirements can vary.
  • the execution time of a series of tasks in the first distribution server 41 may be shorter than the execution time of a series of tasks in the main server 40 .
  • the time to transmit the reasoning distribution environment and the last result value of a series of tasks may be considered.
  • the main server 40 and the first distribution server 41 be connected through a high-speed mobile communication network such as high-speed Wi-Fi or 5G or 6G. If the main server 40 has a low computing specification, such as a mobile device or an embedded device, and/or the first distribution server 41 has a high computing specification, inference distribution may be required.
  • Such an environment may be particularly suitable for an edge computing (mobile edge computing) environment.
  • the main server 40 when the main server 40 is an edge device and the first distribution server 41 is an edge server, distributed inference may be preferable.
  • the communication speed between the edge device and the edge server since the communication speed between the edge device and the edge server is very fast, it may be suitable for this inference distribution.
  • computing specifications may vary depending on the main performance of each device separately. For example, if the processing speed of specific tasks is faster in the first distribution server 41 than in the main server 40, the corresponding specific tasks are preferably distributed and processed in the first distribution server 41.
  • a series of tasks that can be separated and processed among a plurality of tasks are processed in different distributed servers.
  • a learning model that classifies the gender and age of a person
  • it may be separated into a gender classification learning model and an age classification learning model. If the gender classification is processed in the first distributed server 41 and the age classification is processed in the second distributed server 42, the total time for performing deep learning can be reduced.
  • the input data may be divided and each divided input data may be distributed and processed.
  • This example can be used in combination with other examples. For example, if there is a process of pre-processing input data with uncomplicated tasks, the main server 40 may perform the pre-processing and transmit data requiring post-processing to other distributed servers after the pre-processing. This example can be especially useful when the communication environment is not fast. This is because only the data that requires post-processing deep learning needs to be transmitted to the distributed server.
  • the main server 40 may transmit the inference model table Ti to at least one of the plurality of distribution servers 41 to 43 (S730).
  • the main server 40 may instruct the plurality of distributed servers 41 to 43 to generate a learning model for inference based on the model table Ti for inference.
  • the main server 40 may determine a reasoning distribution environment including a reasoning distribution range, which is a task to be distributed inference, and a distribution server for reasoning distribution (S735). Based on the reasoning distribution environment, the main server 40 may instruct distributed processing to distribution servers to distribute inference (S740). A detailed description of the distributed processing instruction will be described later.
  • the main server 40 may perform all or part of the tasks according to deep learning inference. It can (S750).
  • the main server 40 may perform all or part of the deep learning of the query function on the data of the dataset table for inference using the generated learning model for inference.
  • the main server 40 may acquire inference results according to deep learning inference completed by itself or other distributed servers, and store them (S760) or notify the user.
  • the main server 40 may transmit the learning model table Ti for inference to the first and second distribution servers 41 and 42 (S730).
  • the first and second distributed servers 41 and 42 may generate a learning model for inference using the learning model table Ti for inference according to instructions from the main server 40 .
  • the network structure (neural network) of the schematic learning model may include an input layer (L_I), hidden layers (L1 to L_N), and an output layer (L_O).
  • the input layer may receive input from a dataset for inference.
  • the hidden layer is the layer where the computation takes place.
  • the hidden layers (L1 to L_N) may be composed of a single layer or a plurality of layers.
  • a circle shape represents each node, and each layer may be composed of a set of nodes. The beginning of an arrow may be an output of a node, and the end of an arrow may be an input of a node.
  • the output layer is a result value of deep learning, and may have as many output nodes as the number of values to be classified.
  • Performing deep learning may include multiple tasks. That is, deep learning can be performed in stages by a plurality of tasks. Each of the plurality of tasks may have a unique number distinguished from other tasks. Each of a plurality of layers described later may have a unique number distinguished from other layers.
  • a plurality of tasks may refer to all tasks for performing a query function without being dependent on any one learning model.
  • the function of the query is classified into a plurality of detailed functions, and deep learning inference can be performed with a plurality of learning models.
  • the plurality of tasks may include both a first task group of a first learning model and a second task group of a second learning model among the plurality of learning models.
  • operations performed at nodes of a specific layer among a plurality of layers of a learning model may correspond to one task.
  • first output values R1 of layer 1 (L1) may become second input values of layer 2 (L2).
  • the first output values R1 may be calculated and output as second output values R2.
  • a process of calculating second input values R1 to second output values R2 may be referred to as task 2 (T2).
  • the second output values may be referred to as result value list 2 (R2) of task 2 (T2).
  • the result value list corresponds to the task specific number and may have a unique number distinguished from other result value lists.
  • the controller 100 may store the plurality of result value lists R1 to R_N of the plurality of tasks T1 to T_N as an intermediate result value table T_R having a relational structure.
  • each layer L1 to L_N of the hidden layer may correspond to rows H1 to H_N of the network table T_NW. Accordingly, a plurality of layer-specific numbers, a plurality of task-specific numbers, and a plurality of row numbers may correspond to each other. For example, layer 2 (L2), task 2 (T2), and row number 2 (H2) may correspond to each other.
  • the inference learning model table (Ti) may have a unique number distinguished from other learning model tables.
  • the main server 40 performs some of the tasks T1 to T5 in the main server 40, and distributes the first to second tasks T6 to T10 in the first distribution server 41. can decide to deal with it.
  • the second task may be task N (T_N).
  • the main server 40 performs (S810) some of the tasks (T1 to T5), the unique number (M_ID) of the learning model table (Ti) for inference, and the third task immediately before the first task (T6).
  • the result value list R5 of the task T5 and the second row number H10 of the network table T_NW corresponding to the unique number T10 of the second task may be transmitted to the first distribution server 41. (S812).
  • the user's request query may be analyzed into an upper first detailed function and a lower second detailed function.
  • a request query is a gender classification of a person
  • it can be analyzed by a person detection function of upper input data and a gender classification function of a lower level recognized person.
  • the deep learning inference for the person detection function may be performed in the main server 40
  • the deep learning inference for the gender classification function of the detected person may be performed in the first distributed server 41.
  • the main server 40 performs deep learning of the pre-processing detection function on data for inference, and only when deep learning of the main function is required for the data for inference, the first distributed server 41 performs deep learning of the query function. running can be performed.
  • the pre-processing detection function may refer to a function of detecting whether a deep learning function of a query requested by a user, which is a main function, is required. For example, if the request query is a person's gender classification, the pre-processing detection function may be a function of detecting whether a person exists in an input image. Since deep learning of the request query is not performed for images without people, time is shortened and communication bandwidth can be reduced.
  • the third result value list (R5) may be determined as a list of result values (R5) in which the first task (T1) to the fourth task (T5) of a plurality of tasks are performed.
  • the sixth row number H6 is immediately after the third row number H5.
  • the first framework unit 51 of the first distribution server 41 obtains a third result.
  • operations related to the sixth row numbers H6 to second row numbers H10 of the network table T_NW may be performed (S814). That is, the first distribution server 41 may distribute and process the first to second tasks T6 to T10 of the pre-generated inference learning model (Ti).
  • the first distribution server 41 transfers the second result value list (R2) to the main server (40). It can be transmitted (S816-1).
  • this procedure may be performed when the second task T10 is the final task or when another task needs to be performed in the main server 40 .
  • the main server 40 is the first distribution server 41 to the second distribution server 42, the network table identification number (M_ID), the second result value list (R10) of the second task (T10) ) and the seventh row number (H_N), which is the end row of the task instruction, the first distribution server 41 performs operation of the sixth row number (H6) to the second row number (H10) (S814), and then the main Instructions of the server 40 may be executed (S816-2).
  • the query analyzer 110 of the main server 40 may analyze and/or extract a user-requested query in three stages of detailed functions.
  • the query analyzer 110 extracts the requested query into a higher level person presence detection function, a next level person detection function, and a lower level detected person gender classification function. can do.
  • the main server 40 performs deep learning inference on whether or not a person exists in the image file, which is the input data, and the person detection function in the image file in which the person exists is performed by deep learning inference in the first distributed server 41, and the detected The function of classifying the gender of the image may be inferred by deep learning in the second distributed server 42 . Through this, processing time can be reduced by reducing the amount of processing in each server, and processing time can be further shortened because only images with people are processed in distributed servers.
  • the second distribution server 42 When the second distribution server 42 receives the unique number (M_ID) of the learning model table (Ti) for inference, the second result value list (R10), and the seventh row number (H_N) of the network table (T_NW), 2
  • the resulting value list (R10) is used as an input and operations related to row numbers 11 (H11) to row numbers N (H-N) of the network table (T_NW) can be performed (S818). That is, the second distribution server 42 may distribute tasks 11 to N (T11 to T_N) of the pre-generated learning model table for inference (Ti).
  • the second distribution server 42 may determine a seventh result value list (R_N) as a result of the distribution processing (S818) and transmit it to the main server 40 (S820).
  • 24 is a detailed block diagram of some components of a deep learning framework application database server for classifying gender and age according to another embodiment of the present invention.
  • 25 is a flowchart of a method of classifying gender and age according to another embodiment of the present invention.
  • Fig. 26 shows the intermediate data of Figs. 24 and 25;
  • the deep learning framework application database server for classifying gender and age includes a control unit 100, a storage unit 200, a framework unit 300, a conversion unit 360, and an input/output unit 370.
  • a control unit 100 controls the storage unit 100, a storage unit 200, a framework unit 300, a conversion unit 360, and an input/output unit 370.
  • the control unit 100 includes a query analysis unit 110, a dataset management module 120, a learning model management module 130, a result management module 160, and an auxiliary management module 170. can do.
  • the storage unit 200 may include a query analysis value 210, a dataset table 220, a learning model table 230, a learning result 260, mapping information 520, and a face image box 510. there is.
  • the input/output unit 370 may receive an inference query for the gender and age classification function of the dataset for inference from the user (S830).
  • a dataset for inference may be stored as a dataset table for inference.
  • a dataset table for inference may be a set of images in which a person exists. Hereinafter, it is assumed that the original image 500 is input as input data.
  • the query analysis unit 110 may analyze the user requested reasoning query and extract a plurality of detailed functions to achieve the function of the query (S832).
  • the query analyzer 110 may extract an inference query as a plurality of detailed functions, such as a face detection function of an upper group and gender and age classification functions of a lower group.
  • the gender and age classification functions may be extracted as one function and a function for classifying gender and age respectively. Since the gender and age classifications are groups of the same rank, either one or two may be used. In this embodiment, it is assumed that two functions are extracted: a gender classification function and an age classification function.
  • the face detection function is indicated in this embodiment, it can be adjusted to detect the entire person rather than the face, if necessary.
  • the query analysis unit 110 may further extract a preprocessing detection function of the highest group for detecting whether deep learning inference of a user-requested query function, which is a main function, is required for an inference dataset.
  • the main function may mean all of a plurality of detailed functions.
  • the storage unit 200 includes a pre-learned face detection learning model table associated with the face detection function, a gender classification learning model table associated with the gender classification function, an age classification learning model table associated with the age classification function, and preprocessing associated with the preprocessing detection function.
  • a sensing learning model table may be provided. If there is no learned learning model table, you can add a learning model table learned through deep learning training.
  • the learning model management module 130 may select a previously learned pre-processing detection learning model table, a face detection learning model table, a gender classification learning model table, and an age classification learning model table from among a plurality of learning model tables.
  • the framework unit 300 interlocks the preprocessing detection learning model table, the face detection learning model table, the gender classification learning model table, and the age classification learning model table, respectively, with respect to the dataset table for inference, so as to obtain a preprocessing detection function and a plurality of details.
  • Each function can perform deep learning inference.
  • the framework unit 300 preferably performs deep learning inference of the learning model according to the group rank.
  • each group may have a rank in the order of the highest group, the highest group, and the lowest group. That is, each model may have a preprocessing detection function as a first priority, a face detection function as a second priority, and a gender and age classification function as a third priority.
  • the framework unit 300 may perform deep learning inference for detecting whether there is a face in the original image 500 by using a preprocessing detection learning model that is a first-order learning model (S834).
  • the framework unit 300 may perform deep learning inference for detecting a face in the original image 500 using a face detection learning model, which is a second rank learning model (S836).
  • Face detection may mean defining a region such as a rectangle including a face portion and extracting position coordinates of the rectangle region from the original image 500 .
  • the auxiliary management module 170 may generate a face image box 510 by cropping the detected face part (S840).
  • the face image box 510 may be an input value for deep learning inference of a detailed function of the next priority.
  • the auxiliary management module 170 may generate mapping information 520 mapping a relationship between the original image 500 and the face image box 510 (S842).
  • the mapping information 520 may include a box ID 523 , an image ID 521 , and location information 525 .
  • the mapping information 520 may be in the form of a relational database.
  • the box ID 523 is a unique number of the face image box 510 and may function as an identifier.
  • the image ID 521 is related to the box ID 523 and is a unique number of the original image 500.
  • the location information 525 is information about the location of the face image box 510 mapped to the original image 500 with respect to the box ID 523 . If the face image box 510 is a rectangular area including a face, the location information 525 may be x and y coordinates of two diagonal vertices of the rectangle.
  • the framework unit 300 may classify the gender of the face image box 510 using the gender classification learning model that is the third ranking learning model (S844).
  • the auxiliary management module 170 may update the mapping information 520 by mapping information about the gender of the face image box 510 to the mapping information 520 (S846). Mapping can mean associating the gender value 527 to the box ID 523 of the face image box 510 .
  • the framework unit 300 may classify the age of the face image box 510 using an age classification learning model that is a third ranking learning model (S848).
  • the auxiliary management module 170 may update the mapping information 520 by mapping information about the age of the face image box 510 to the mapping information 520 (S850). Mapping can mean associating the age value 529 to the box ID 523 of the face image box 510 .
  • the dataset management module 120 provides the location information 525 of the face image box 510 of the mapping information 520 having the original image 500 and the image ID 521 of the original image 500, the gender value ( 527), and the age value 529, the character's age and age may be added to the original image 500 to generate the resulting image 540 (S852).
  • the deep learning framework application database server for classifying gender and age performs a series of tasks, which are part of a plurality of tasks according to the above-described deep learning inference, on at least one of the plurality of distributed servers 41 to 43. By doing so, deep learning inference can be distributed.
  • the deep learning framework application database server that classifies gender and age can conduct deep learning training for an untrained learning model by distributing it with a plurality of distributed servers 41 to 43.
  • the present invention may be implemented in hardware or software.
  • the present invention can also be implemented as computer readable codes on a computer readable recording medium. That is, it may be implemented in the form of a recording medium including instructions executable by a computer.
  • Computer readable media includes all types of media in which data that can be read by a computer system is stored.
  • Computer readable media may include computer storage media and communication storage media.
  • Computer storage media includes all storable media implemented as any method or technology for storing information, such as computer readable instructions, data structures, program modules, and other data, and includes volatile/nonvolatile/hybrid memory. It is not limited to whether or not, separable/non-separable.
  • Communication storage media includes modulated data signals or transmission mechanisms such as carrier waves, any information delivery media, and the like.
  • functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers in the technical field to which the present invention belongs.
  • main server 41 first distributed server
  • first framework unit 52 second framework unit
  • auxiliary management module 200 storage unit
  • framework unit 310 QML module

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Library & Information Science (AREA)
  • Image Analysis (AREA)

Abstract

The present invention relates to a deep learning framework application database server for classifying a gender and an age, and a method therefor. The present invention relates to a server for classifying, by deep learning inference, a gender and an age of a person from an image into multiple learning models through query analysis, and a method therefor, in which gender and age analysis queries are extracted into multiple detailed functions so that deep learning inference can be performed according to priorities of the multiple detailed functions.

Description

성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버 및 그 방법Deep learning framework application database server and method for classifying gender and age
본 발명은 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버 및 그 방법에 관한 것으로서, 딥러닝 추론에 의해 이미지로부터 인물의 성별 및 나이를 쿼리 분석에 의해 복수의 학습 모델로 분류하는 서버 및 그 방법에 관한 것이다.The present invention relates to a deep learning framework application database server and method for classifying gender and age, and a server for classifying gender and age of a person from an image into a plurality of learning models by query analysis by deep learning inference and the same It's about how.
딥러닝 기술 기반의 지능을 제공하는 학습엔진을 생성하기 위해서는 딥 네트워크 설계, 학습 함수 설정, 파라미터 튜닝 등 여러 가지 어려운 난관이 있다. 이러한 문제들은 딥러닝 전문가가 아니면 쉽게 할 수 없어, 누구나 쉽게 딥러닝 기반 학습엔진을 갖기 어렵다. In order to create a learning engine that provides intelligence based on deep learning technology, there are various difficulties such as deep network design, learning function setting, and parameter tuning. These problems cannot be easily solved unless you are a deep learning expert, so it is difficult for anyone to easily have a deep learning-based learning engine.
또한, 학습엔진을 생성할 때마다, 딥러닝의 공통적인 요소를 중복 사용하게 되어, 동일한 과정을 반복 수행해야 하는 문제가 있다. 그리고, 딥러닝 훈련 시 하나의 서버나 장치를 이용하는 경우, 그 데이터의 양에 따라 훈련 및 추론 시간이 많이 소요된다.In addition, whenever a learning engine is created, common elements of deep learning are used redundantly, and the same process must be repeatedly performed. In addition, when using one server or device for deep learning training, training and inference time are required depending on the amount of data.
또한, 딥러닝 프레임워크 데이터베이스 서버를 통해 다양한 응용이 가능한데, 두 가지 이상의 기능에 대한 응용이 필요할 수 있다.In addition, various applications are possible through the deep learning framework database server, but applications for two or more functions may be required.
<선행기술문헌><Prior art literature>
(특허문헌 1) KR10-2058124 B1 (Patent Document 1) KR10-2058124 B1
본 발명의 목적은, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자의 요청 쿼리에 의해 정보 데이터베이스에 저장된 데이터를 딥러닝 방식으로 학습하여 쿼리에 대응하는 데이터를 추론할 수 있도록 하며, 기 학습된 모델을 사용가능하고, 딥러닝 훈련 및 추론 시간을 적게 소요되도록 하며, 이미지로부터 인물의 성별 및 나이를 분류하는 응용이 가능한, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버 및 방법을 제공함에 있다.An object of the present invention is to enable even a user without specialized knowledge in deep learning to infer data corresponding to a query by learning data stored in an information database by a user's requested query using a deep learning method without difficulty, Provides a deep learning framework application database server and method for classifying gender and age, which can use a model that has been developed, takes less time for deep learning training and inference, and can be applied to classify gender and age of a person from an image. is in
본 발명의 일 실시예에 따른 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버는 사용자로부터 추론용 데이터셋의 성별 및 나이 분류 기능의 추론 쿼리를 입력받는 입출력부; 상기 쿼리를 분석하여 상기 쿼리의 기능을 달성하기 위한 복수의 세부 기능으로 추출하는 쿼리 분석부; 데이터베이스로서, 복수의 학습 모델 테이블 및 데이터셋 테이블을 구비하는 저장부; 및 상기 데이터베이스와 연동하고, 상기 학습 모델 테이블 및 상기 데이터셋 테이블을 이용하여 상기 복수의 세부 기능의 딥러닝을 수행하는 프레임워크부;를 포함하고, 상기 쿼리 분석부은 상기 추론 쿼리를 상기 복수의 세부 기능으로서 상위 그룹의 안면 검출 기능 및 하위 그룹의 성별 및 나이 분류 기능으로 추출하고, 상기 복수의 학습 모델 테이블 중 기 학습된 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블을 선택하는 학습 모델 관리 모듈;를 더 포함하고, 상기 프레임워크부는 상기 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블 각각에 연동하여 상기 복수의 세부 기능의 딥러닝 추론을 각각 수행하되, 상기 상위 그룹인 안면 검출 학습 모델 테이블에 따른 안면 검출 학습 모델을 우선으로 딥러닝 추론할 수 있다.A deep learning framework application database server for classifying gender and age according to an embodiment of the present invention includes an input/output unit that receives an inference query for a gender and age classification function of a dataset for inference from a user; a query analyzer for analyzing the query and extracting a plurality of detailed functions to achieve the function of the query; A database comprising: a storage unit having a plurality of learning model tables and a data set table; and a framework unit that interworks with the database and performs deep learning of the plurality of detailed functions using the learning model table and the dataset table, wherein the query analysis unit converts the inference query to the plurality of detailed functions. As a function, the face detection function of the upper group and the gender and age classification function of the lower group are extracted, and among the plurality of learning model tables, the previously learned face detection learning model table, gender classification learning model table, and age classification learning model table are selected. The framework unit performs deep learning inference of the plurality of detailed functions in association with each of the face detection learning model table, the gender classification learning model table, and the age classification learning model table, respectively. However, the face detection learning model according to the face detection learning model table, which is the upper group, may be preferentially deep learning inferred.
또한, 상기 추론용 데이터셋을 추론용 데이터셋 테이블로 변환하는 데이터셋 관리 모듈; 및 상기 프레임워크부에서 상기 안면 검출 학습 모델을 이용하여 상기 추론용 데이터셋 테이블에 구비된 원본 이미지의 안면이 있다고 추론되면, 상기 안면 부분을 크롭하여 안면 이미지 박스를 생성하고, 상기 안면 이미지 박스의 고유 번호인 박스 ID에 상기 원본 이미지의 고유 번호인 이미지 ID를 연관시키고 상기 안면 이미지 박스의 위치 정보를 매핑하는 맵핑 정보를 생성하는 보조 관리 모듈을 더 포함할 수 있다.In addition, a dataset management module for converting the dataset for inference into a dataset table for inference; and if the framework unit infers that there is a face of the original image included in the dataset table for inference using the face detection learning model, crops the face portion to generate a face image box, and An auxiliary management module for associating an image ID, which is a unique number of the original image, with a box ID, which is a unique number, and generating mapping information for mapping location information of the face image box.
또한, 상기 보조 관리 모듈은 상기 프레임워크부에서 상기 성별 분류 학습 모델 테이블 및 상기 나이 분류 학습 모델 테이블에 따른 성별 분류 학습 모델 및 나이 분류 학습 모델을 이용하여 상기 안면 이미지 박스의 인물의 성별 및 나이에 대한 딥러닝 추론되면, 상기 딥러닝 추론된 성별 및 나이를 상기 박스 ID와 맵핑할 수 있다.In addition, the auxiliary management module determines the gender and age of the person in the face image box by using a gender classification learning model and an age classification learning model according to the gender classification learning model table and the age classification learning model table in the framework unit. When the deep learning inference is made, the deep learning inferred gender and age may be mapped with the box ID.
또한, 상기 데이터셋 관리 모듈은 상기 원본 이미지 및 상기 원본 이미지의 이미지 ID를 구비한 맵핑 정보의 상기 안면 이미지 박스의 위치 정보를 이용하여, 상기 원본 이미지에 인물의 성멸 및 나이를 부기하여 결과 이미지를 생성할 수 있다.In addition, the dataset management module adds the age and age of the person to the original image by using the location information of the face image box of the original image and the mapping information including the image ID of the original image to obtain a resultant image. can create
또한, 상기 쿼리 분석부는 추론용 데이터셋에 대해 메인 기능인 상기 쿼리 기능의 딥러닝 추론이 필요한지 감지하는 전처리 감지 기능을 더 추출하고, 상기 저장부는 상기 전처리 감지 기능과 연관된 전처리 감지 학습 모델 테이블을 구비하고, 상기 추론용 데이터셋에 대해 상기 전처리 감지 기능의 딥러닝 추론이 수행되도록 하여, 상기 추론용 데이터에 상기 메인 기능의 딥러닝 추론이 필요하다고 분류되면, 상기 추론용 데이터셋에 대한 상기 복수의 세부 기능의 딥러닝 추론되도록 하는 제어부를 더 포함할 수 있다.In addition, the query analysis unit further extracts a preprocessing detection function for detecting whether deep learning inference of the query function, which is a main function, is necessary for an inference dataset, and the storage unit includes a preprocessing detection learning model table associated with the preprocessing detection function, , Deep learning inference of the preprocessing sensing function is performed on the inference dataset, and when the inference data is classified as requiring deep learning inference of the main function, the plurality of details of the inference dataset It may further include a control unit that enables deep learning inference of the function.
또한, 상기 복수의 세부 기능에 따른 복수의 학습 모델 중 제1 학습 모델은 복수의 태스크를 구비하고, 상기 복수의 태스크는 상기 제1 학습 모델 테이블에 구비된 네트워크 테이블의 복수의 행과 대응하고, 상기 복수의 태스크의 각각은 상기 네트워크 테이블의 행번호에 대응하는 고유 번호를 각각 구비하고, 상기 복수의 태스크 중 일련의 제1 내지 제2 태스크를 복수의 분산 서버 중 제1 분산 서버에서 수행하도록 하여 딥러닝 추론을 분산 수행하도록 하는 제어부;를 더 포함하고, 상기 복수의 분산 서버는 데이터베이스와 연동되는 딥러닝 프레임워크를 각각 구비하고, 상기 제1 학습 모델 테이블을 구비하고, 상기 제어부는 상기 제1 학습 모델 테이블의 고유 번호, 상기 제1 태스크의 직전 태스크인 제3 태스크의 제3 결과값 리스트, 및 상기 제2 태스크의 고유 번호와 대응하는 상기 네트워크 테이블의 제2 행번호를 상기 제1 분산 서버로 전송할 수 있다.In addition, among the plurality of learning models according to the plurality of detailed functions, a first learning model has a plurality of tasks, and the plurality of tasks correspond to a plurality of rows of a network table provided in the first learning model table; Each of the plurality of tasks has a unique number corresponding to a row number of the network table, and a series of first to second tasks among the plurality of tasks are performed by a first distribution server among the plurality of distribution servers, Further comprising a control unit for performing deep learning inference in a distributed manner, wherein each of the plurality of distributed servers includes a deep learning framework interworking with a database, and includes the first learning model table, and the control unit includes the first learning model table. The second row number of the network table corresponding to the unique number of the learning model table, the third result value list of the third task immediately before the first task, and the unique number of the second task are stored in the first distribution server. can be sent to
또한, 상기 제어부는 상기 복수의 분산 서버 중 제2 분산 서버로부터 상기 학습 모델 테이블의 고유 번호, 상기 복수의 태스크 중 제4 태스크의 제4 결과값 리스트를 수신하면, 상기 제4 결과값 리스트를 상기 복수의 태스크 중 일련의 최초 태스크부터 제4 태스크까지 수행된 결과값 리스트로 결정하고, 상기 복수의 네트워크 테이블 중 제5 행번호는 상기 제4 행번호의 직후에 배치된 것이고, 상기 제어부는 상기 제2 분산 서버로부터 태스크 지시 종료행인 제6 행번호를 더 수신하면, 상기 프레임워크부에서 상기 제4 결과값 리스트를 입력으로 하고, 상기 제5 행번호 내지 상기 제6 행번호의 연산을 수행하도록 할 수 있다.In addition, when the control unit receives a unique number of the learning model table and a fourth result value list of a fourth task among the plurality of tasks from a second distribution server among the plurality of distribution servers, the fourth result value list It is determined by a list of result values performed from the first task to the fourth task among a plurality of tasks, and a fifth row number among the plurality of network tables is disposed immediately after the fourth row number, and the control unit 2 If a sixth row number, which is a task instruction end row, is further received from the distribution server, the framework unit receives the fourth result value list as an input and causes the fifth to sixth row numbers to be operated. can
또한, 상기 학습 모델 관리 모듈은, 상기 복수의 세부 기능 중 제1 세부 기능에 관련된 기 학습된 제1 학습 모델 테이블이 없는 경우, 상기 제1 세부 기능에 적합한 제2 학습 모델 테이블을 선택하고, 상기 제2 학습 모델 테이블은 이와 관련된 훈련용 데이터셋 테이블을 기초로 상기 제1 세부 기능의 딥러닝 훈련으로 상기 제1 학습 모델 테이블로 변환되고, 상기 딥러닝 훈련은 복수의 분산 서버와 분산 처리되어 수행되고, 상기 복수의 분산 서버는 데이터베이스와 연동되는 딥러닝 프레임워크를 각각 구비할 수 있다.In addition, the learning model management module selects a second learning model table suitable for the first detailed function when there is no pre-learned first learning model table related to the first detailed function among the plurality of detailed functions, The second learning model table is converted into the first learning model table through deep learning training of the first detailed function based on the associated training dataset table, and the deep learning training is distributed and processed with a plurality of distributed servers. And, the plurality of distributed servers may each have a deep learning framework that works with the database.
또한, 상기 훈련용 데이터셋의 배치 사이즈, 상기 제2 학습 모델 테이블, 및 상기 훈련용 데이터셋 테이블을 복수의 분산 서버로 확산하는 제어부를 더 포함하고, 상기 딥러닝 프레임워크 응용 데이터베이스 서버는 상기 복수의 분산 서버 중 제1 분산 서버로서 기능하고, 상기 제어부는 상기 훈련용 데이터셋 테이블의 데이터 순서를 랜덤하게 변경한 후 상기 배치 사이즈에 맞게 분할하여 배치 데이터셋 테이블로 변환하고, 상기 프레임워크부는 상기 제2 학습 모델 테이블에 속한 아키텍처 테이블을 이용하여 모델 아키텍처를 구축하고, 상기 제2 학습 모델 테이블에 속한 학습 파라미터 테이블을 초기화한 후 상기 모델 아키텍처에 할당하여 제2 학습 모델을 생성하고, 상기 제2 학습 모델에 대해 상기 배치 데이터셋 테이블의 복수의 미니 배치를 이용하여 딥러닝 훈련을 수행할 수 있다.In addition, a control unit for distributing the batch size of the training dataset, the second learning model table, and the training dataset table to a plurality of distributed servers, wherein the deep learning framework application database server comprises the plurality of distributed servers. functions as a first distribution server among the distribution servers of , and the control unit randomly changes the data order of the training dataset table and converts it into a batch data set table by dividing it according to the batch size, and the framework unit A model architecture is built using an architecture table belonging to the second learning model table, a learning parameter table belonging to the second learning model table is initialized and assigned to the model architecture to create a second learning model, and the second learning model is created. For the learning model, deep learning training may be performed using a plurality of mini-batches of the batch dataset table.
또한, 상기 프레임워크부는 상기 복수의 미니 배치 중 하나의 미니 배치에 대한 배치 학습이 종료되면 신 학습 파라미터를 도출하고, 상기 제어부는 상기 신 학습 파라미터를 상기 복수의 분산 서버의 나머지 분산 서버로 확산하고, 상기 신 학습 파라미터가 생성되면, 상기 신 학습 파라미터와 상기 나머지 분산 서버에서 확산된 적어도 하나의 학습 파라미터를 통합하여, 다음 배치 학습에 적용할 학습 파라미터로 업데이트하는 통합부를 더 포함하고, 상기 통합부는 할당된 모든 에포크가 종료되면, 상기 프레임워크부에서 도출한 마지막 학습 파라미터와 상기 나머지 분산 서버에서 마지막으로 확산된 적어도 하나의 학습 파라미터을 통합하여 최종 학습 파라미터를 도출하고, 상기 제어부는 훈련된 모델 아키텍처 및 상기 최종 학습 파라미터를 학습된 상기 제1 학습 모델 테이블로 변환할 수 있다.In addition, the framework unit derives a new learning parameter when batch learning for one mini-batch among the plurality of mini-batches is completed, and the control unit spreads the new learning parameter to the remaining distributed servers of the plurality of distributed servers, , If the new learning parameter is generated, further comprising an integrating unit that integrates the new learning parameter and at least one learning parameter spread from the remaining distributed servers and updates the learning parameter to be applied to the next batch learning, wherein the integrating unit When all allocated epochs are completed, a final learning parameter is derived by integrating the last learning parameter derived from the framework unit and at least one learning parameter finally spread in the remaining distributed servers, and the control unit derives a trained model architecture and The final learning parameter may be converted into the learned first learning model table.
본 발명의 일 실시예에 따른 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버의 추론 방법은 사용자로부터 추론용 데이터셋의 성별 및 나이 분류 기능의 추론 쿼리를 입력받는 단계; 상기 추론 쿼리를 상위 그룹의 안면 검출 기능 및 하위 그룹의 성별 및 나이 분류 기능인 복수의 세부 기능으로 추출하는 단계; 기 학습된 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블을 선택하는 단계; 상기 상위 그룹에 해당하는 기능의 딥러닝 추론 및 상기 하위 그룹에 해당하는 기능의 딥러닝 추론 순으로 딥러닝 수행하는 단계;를 포함할 수 있다.An inference method of a deep learning framework application database server for classifying gender and age according to an embodiment of the present invention includes receiving an inference query of a gender and age classification function of a dataset for inference from a user; extracting the inference query into a plurality of detailed functions, which are a face detection function of an upper group and a gender and age classification function of a lower group; selecting a pre-learned face detection learning model table, gender classification learning model table, and age classification learning model table; and performing deep learning in the order of deep learning inference of functions corresponding to the upper group and deep learning inference of functions corresponding to the lower group.
또한, 상기 추론용 데이터셋을 추론용 데이터셋 테이블로 변환하는 단계; 상기 안면 검출 학습 모델 테이블에 따른 안면 검출 학습 모델을 이용하여 상기 추론용 데이터셋 테이블에 구비된 원본 이미지에 대한 안면 검출 기능의 딥러닝 추론하는 단계; 상기 원본 이미지에 안면이 있다고 추론되면, 상기 안면 부분을 크롭하여 안면 이미지 박스를 생성하는 단계; 상기 안면 이미지 박스의 고유 번호인 박스 ID에 상기 원본 이미지의 고유 번호인 이미지 ID를 연관시켜 맵핑 정보을 생성하는 단계; 및 상기 박스 ID를 구비한 맵핑 정보에 상기 안면 이미지 박스의 위치 정보를 추가하는 단계;를 더 포함할 수 있다.Also, converting the dataset for inference into a dataset table for inference; deep learning inference of a face detection function for an original image provided in the dataset table for inference using a face detection learning model according to the face detection learning model table; generating a face image box by cropping the face portion if it is inferred that the original image has a face; generating mapping information by associating an image ID, which is a unique number of the original image, with a box ID, which is a unique number of the face image box; and adding location information of the face image box to mapping information including the box ID.
또한, 상기 성별 분류 학습 모델 테이블 및 상기 나이 분류 학습 모델 테이블에 따른 성별 분류 학습 모델 및 나이 분류 학습 모델을 이용하여 상기 안면 이미지 박스의 인물의 성별 및 나이에 대한 딥러닝 추론하는 단계; 상기 딥러닝 추론된 성별 및 나이를 상기 박스 ID를 구비한 맵핑 정보에 추가하는 단계; 및 상기 원본 이미지 및 상기 원본 이미지의 이미지 ID를 구비한 맵핑 정보의 상기 안면 이미지 박스의 위치 정보를 이용하여, 상기 원본 이미지에 인물의 성멸 및 나이를 부기하여 결과 이미지를 생성하는 단계를 더 포함할 수 있다.In addition, deep learning inferring the gender and age of the person in the face image box using the gender classification learning model and the age classification learning model according to the gender classification learning model table and the age classification learning model table; adding the sex and age deduced by deep learning to the mapping information including the box ID; and generating a resultant image by adding the age and age of the person to the original image using location information of the facial image box of the original image and mapping information having an image ID of the original image. can
본 발명에 의하면, 쿼리 기반의 딥러닝 기술을 이용함으로써 딥러닝 프레임워크가 데이터베이스에 플러그인 형태로 연결되어 사용자의 요청쿼리에 의해서 데이터베이스에 저장된 데이터를 사용하여 딥러닝 훈련 및 추론을 가능하여, 전문 지식이 없는 사용자가 딥러닝 훈련 및 추론을 이용할 수 있다. 딥러닝을 분산 처리하여, 딥러닝 수행에 소요되는 시간을 단축시킬 수 있다. 또한, 이미지로부터 인물의 성별과 나이를 딥러닝 추론을 통해 분류할 수 있다.According to the present invention, by using query-based deep learning technology, a deep learning framework is connected to a database in the form of a plug-in, enabling deep learning training and inference using data stored in the database by a user's request query, Deep learning training and inference can be used by users without knowledge. By distributing deep learning, the time required to perform deep learning can be reduced. In addition, it is possible to classify the gender and age of a person from an image through deep learning inference.
도 1은 본 발명의 일 실시예에 따른 쿼리 기반 딥러닝 추론 시스템의 전체적인 구성을 개략적으로 나타낸 구성도이다.1 is a configuration diagram schematically showing the overall configuration of a query-based deep learning inference system according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 데이터베이스 서버의 제어 구성도이다.2 is a control configuration diagram of a database server according to an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 따른 데이터 관리 구성도이다.3 is a data management configuration diagram according to an embodiment of the present invention.
도 4는 본 발명의 일 실시예에 따른 데이터베이스 구조도이다.4 is a database structure diagram according to an embodiment of the present invention.
도 5는 본 발명의 일 실시예에 따른 변환부의 제어 구성도이다.5 is a control configuration diagram of a conversion unit according to an embodiment of the present invention.
도 6 및 도 7은 본 발명의 일 실시예에 따른 변환부의 변환 동작도이다.6 and 7 are conversion operation diagrams of a conversion unit according to an embodiment of the present invention.
도 8은 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다.8 is a flowchart showing the execution flow of a query-based machine learning technique according to an embodiment of the present invention.
도 9는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 흐름도이다.9 is an operational flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
도 10은 본 발명의 다른 실시예에 따른 데이터베이스 연동 딥러닝 분산 시스템을 개략적으로 나타낸 구성도이다. 10 is a schematic configuration diagram of a database-linked deep learning distribution system according to another embodiment of the present invention.
도 11은 도 10에 따른 메인 서버 및 분산 서버의 블록 구성도이다. FIG. 11 is a block diagram of a main server and distributed servers according to FIG. 10 .
도 12는 메인서버의 데이터셋 및 분산서버의 훈련용 데이터셋을 도시한다.12 shows a dataset of a main server and a dataset for training of a distributed server.
도 13은 도 10의 시스템의 훈련 방법에 대한 순서도이다. 13 is a flowchart of a training method of the system of FIG. 10;
도 14는 도 10의 시스템의 추론 방법에 대한 순서도이다.14 is a flowchart of an inference method of the system of FIG. 10 .
도 15 내지 도 17은 도13의 비동기식 분산 서버의 각기 다른 실시예에 따른 신호 흐름도이다.15 to 17 are signal flow diagrams according to different embodiments of the asynchronous distributed server of FIG. 13 .
도 18 및 도 19는 도 13이 동기식 분산 서버의 서로 다른 실시예에 따른 신호 흐름도이다. 18 and 19 are signal flow diagrams according to different embodiments of the synchronous distributed server of FIG. 13 .
도 20은 도 14의 분산 추론에 따른 신호 흐름도이다.20 is a signal flow diagram according to the distributed inference of FIG. 14 .
도 21은 학습 모델을 개략적으로 도시한다.21 schematically illustrates the learning model.
도 22은 도 20에 따른 중간 결과값 테이블의 일부를 도시한다.Fig. 22 shows part of the intermediate result table according to Fig. 20;
도 23은 네트워크 테이블의 일부를 도시한다.23 shows part of the network table.
도 24는 본 발명의 다른 실시예에 따른 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버의 일부 구성의 세부 블록도이다.24 is a detailed block diagram of some components of a deep learning framework application database server for classifying gender and age according to another embodiment of the present invention.
도 25는 본 발명의 다른 실시예에 따른 성별 및 나이를 분류하는 방법의 순서도이다.25 is a flowchart of a method of classifying gender and age according to another embodiment of the present invention.
도 26은 도 24 및 도 25의 중간 데이터를 도시한다.Fig. 26 shows the intermediate data of Figs. 24 and 25;
이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.Hereinafter, the present invention will be described in more detail with reference to the drawings.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. These terms are only used for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 또한 네트워크 상의 제1 구성요소와 제2 구성요소가 연결되어 있거나 접속되어 있다는 것은, 유선 또는 무선으로 제1 구성요소와 제2 구성요소 사이에 데이터를 주고 받을 수 있음을 의미한다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when an element is referred to as “directly connected” or “directly connected” to another element, it should be understood that no other element exists in the middle. In addition, that the first component and the second component on the network are connected or connected means that data can be exchanged between the first component and the second component in a wired or wireless manner.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.In addition, the suffixes "module" and "unit" for the components used in the following description are simply given in consideration of ease of preparation of this specification, and do not themselves give a particularly important meaning or role. Accordingly, the “module” and “unit” may be used interchangeably.
이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 도면 전체를 통하여 동일하거나 유사한 구성요소에 대해서는 동일한 도면 부호를 부여하였고, 동일한 도면 부호를 가지는 구성요소에 대한 자세한 설명은 전술한 구성요소에 대한 설명으로 대체되어 생략될 수 있다.When these components are implemented in actual applications, two or more components may be combined into one component, or one component may be subdivided into two or more components as needed. The same reference numerals have been assigned to the same or similar components throughout the drawings, and detailed descriptions of components having the same reference numerals may be omitted as they are replaced with descriptions of the components described above.
또한, 본 발명은 본 명세서에 표시된 실시예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적이지 않다. 본 명세서에 기술된 특정 형상, 구조, 기능, 및 특성의 일 실시예는 다른 실시예로 구현될 수 있다. 예를 들어, 제1 및 제2 실시예에서 언급되는 구성요소는 제1 및 제2 실시예의 모든 기능을 수행할 수 있다.Furthermore, the present invention covers all possible combinations of the embodiments shown herein. The various embodiments of the present invention are different but not mutually exclusive. One embodiment of the particular shape, structure, function, and characteristic described herein may be implemented in another embodiment. For example, components mentioned in the first and second embodiments may perform all functions of the first and second embodiments.
도 1은 본 발명의 일 실시예에 따른 쿼리 기반 딥러닝 추론 시스템의 전체적인 구성을 개략적으로 나타낸 구성도이다. 도 2는 본 발명의 일 실시예에 따른 데이터베이스 서버의 제어 구성도이다. 도 3은 본 발명의 일 실시예에 따른 데이터 관리 구성도이다. 도 4는 본 발명의 일 실시예에 따른 데이터베이스 구조도이다. 도 5는 본 발명의 일 실시예에 따른 변환부의 제어 구성도이다. 도 6 및 도 7은 본 발명의 일 실시예에 따른 변환부의 변환 동작도이다. 도 8은 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다. 도 9는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 순서도이다.1 is a configuration diagram schematically showing the overall configuration of a query-based deep learning inference system according to an embodiment of the present invention. 2 is a control configuration diagram of a database server according to an embodiment of the present invention. 3 is a data management configuration diagram according to an embodiment of the present invention. 4 is a database structure diagram according to an embodiment of the present invention. 5 is a control configuration diagram of a conversion unit according to an embodiment of the present invention. 6 and 7 are conversion operation diagrams of a conversion unit according to an embodiment of the present invention. 8 is a flowchart showing the execution flow of a query-based machine learning technique according to an embodiment of the present invention. 9 is an operational flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(1)은 쿼리 기반의 기계학습 기술을 적용할 수 있다. 이를 위해, 쿼리 기반 딥러닝 추론 시스템(1)은 데이터베이스 서버(10) 및 단말기(20)를 포함할 수 있다.Referring to FIG. 1 , a query-based deep learning inference system 1 according to an embodiment of the present invention may apply query-based machine learning technology. To this end, the query-based deep learning inference system 1 may include a database server 10 and a terminal 20.
여기서, 쿼리 기반의 딥러닝 기술은 사용자가 단말기(20)를 통해 데이터베이스(DB) 서버(10)로 딥러닝 등의 요청을 쿼리로 전송하면, 데이터베이스 서버(10)가 데이터베이스 서버(10)에 저장된 데이터를 이용하여 데이터베이스 서버(10)에 연결된 딥러닝 프레임워크가 기계학습, 딥러닝, 추론 등이 수행되는 기술을 의미할 수 있다.Here, in the query-based deep learning technology, when a user transmits a request such as deep learning to the database (DB) server 10 through the terminal 20 as a query, the database server 10 stores the data stored in the database server 10. A deep learning framework connected to the database server 10 using data may refer to a technology in which machine learning, deep learning, inference, and the like are performed.
딥러닝은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화를 시도하는 머신러닝(기계학습) 알고리즘의 집합일 수 있다. 머신러닝은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 의미할 수 있다. 인공지능은 인간의 지능이 갖고 있는 기능을 갖춘 컴퓨터 시스템을 뜻하며, 인간의 지능을 기계 등에 인공적으로 구현한 것을 의미할 수 있다. 본 명세서에서 '딥러닝'은 딥러닝 기술 그 자체에 한정되지 않고, 기계학습이나 인공지능까지 확장되어 해석될 수 있다.Deep learning can be a set of machine learning (machine learning) algorithms that attempt a high level of abstraction through a combination of several nonlinear transform methods. Machine learning is a field of artificial intelligence, which can refer to the field of developing algorithms and techniques that allow computers to learn. Artificial intelligence refers to a computer system having functions of human intelligence, and may refer to artificially implementing human intelligence in a machine or the like. In this specification, 'deep learning' is not limited to deep learning technology itself, but can be interpreted as extending to machine learning or artificial intelligence.
단말기(20)는 스마트 폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 및 플렉시블 단말기(Flexible Terminal) 중 어느 하나이거나 조합된 것일 수 있다. 단말기(20)는 서버 컴퓨터를 더 구비할 수 있다.The terminal 20 includes a smart phone, a portable terminal, a mobile terminal, a personal digital assistant (PDA), a portable multimedia player (PMP) terminal, and a telematics terminal. , Navigation terminal, personal computer, notebook computer, slate PC, tablet PC, ultrabook, wearable device (for example, watch type terminal) (Smartwatch), glass-type terminal (Smart Glass), HMD (Head Mounted Display), etc.), Wibro terminal, IPTV (Internet Protocol Television) terminal, smart TV, digital broadcasting terminal, AVN (Audio Video Navigation) terminal , A / V (Audio / Video) system, and a flexible terminal (Flexible Terminal) may be any one or a combination. The terminal 20 may further include a server computer.
단말기(20)는 데이터베이스 서버(10)(이하, DB 서버)에 접속할 수 있다. 사용자나 관리자는 단말기(20)를 통해 DB 서버(10)에 쿼리를 보내거나 쿼리에 따른 결과를 받아볼 수 있다.The terminal 20 can access the database server 10 (hereinafter referred to as DB server). A user or manager may send a query to the DB server 10 through the terminal 20 or receive a result according to the query.
DB 서버(10)는 데이터베이스를 운용하거나, 데이터베이스와 연결되어 이를 제어하는 서버일 수 있다. DB 서버(10)는 통합 관리되는 데이터의 집합(데이터베이스) 및, 이를 관리하는 미들웨어가 포함된 개념을 의미할 수 있다. 데이터베이스 서버(10)는 데이터베이스 관리 시스템(DBMS)을 의미할 수 있다. 데이터베이스는 DB 서버(10) 또는 데이터베이스 관리 시스템(DBMS)의 의미로 사용될 수도 있다.The DB server 10 may be a server that operates a database or is connected to and controls a database. The DB server 10 may refer to a concept including a set of integratedly managed data (database) and middleware that manages them. The database server 10 may mean a database management system (DBMS). The database may also be used in the sense of a DB server 10 or a database management system (DBMS).
DB 서버(10)는 쿼리에 따라 작업하거나 쿼리에 따른 결과를 생성하는 모든 장치를 의미할 수 있다. 쿼리는 SQL(Structured Query Language) 문법을 따를 수 있다. DB 서버(10)의 데이터베이스는 관계형 데이터베이스인 것이 바람직하다.The DB server 10 may mean any device that works according to a query or generates a result according to a query. The query may follow SQL (Structured Query Language) syntax. The database of the DB server 10 is preferably a relational database.
단말기(20)는 딥러닝 추론 쿼리를 입력하고, DB 서버(10)로부터 쿼리에 대응된 추론 결과를 수신할 수 있다.The terminal 20 may input a deep learning inference query and receive an inference result corresponding to the query from the DB server 10 .
단말기(20)는 쿼리를 통해서 DB 서버(10)에 여러 기능들을 요청하고, DB 서버(10)로부터 결과를 응답 받을 수 있다. 단말기(20)는 쿼리를 통해서 DB 서버(10)에 저장된 데이터를 확인 또는 수정하거나, 새로운 데이터를 추가할 수 있다. 단말기(20)는 쿼리를 통해서 DB 서버(10)에 저장된 학습 모델을 확인 또는 수정하고 새로운 학습을 위한 학습 모델을 생성할 수 있다. 단말기(20)는 쿼리를 통해서 데이터와 학습 모델을 선택하고 파라미터를 설정하여 기계학습을 요청하고, 학습 중간 결과 및 최종 결과를 확인할 수 있다. 단말기(20)는 쿼리를 통해서 데이터와 기학습된 학습 모델을 선택하여 기계추론을 요청하고, 추론 결과를 확인할 수 있다.The terminal 20 may request various functions to the DB server 10 through a query and receive a response from the DB server 10 . The terminal 20 may check or modify data stored in the DB server 10 or add new data through a query. The terminal 20 may check or modify the learning model stored in the DB server 10 through a query and create a learning model for new learning. The terminal 20 may select data and learning models through a query, set parameters, request machine learning, and check intermediate and final results of learning. The terminal 20 may select data and a pre-learned learning model through a query, request machine inference, and check the inference result.
도 2를 참조하면, DB 서버(10)는 제어부(100), 저장부(200), 프레임워크부(300), 변환부(360), 및 입출력부(370)를 포함할 수 있다.Referring to FIG. 2 , the DB server 10 may include a control unit 100, a storage unit 200, a framework unit 300, a conversion unit 360, and an input/output unit 370.
입출력부(370)은 자체적인 인터페이스 장치일 수 있다. 입출력부(370)는 입력 장치와 출력 장치를 각각 별개로 구비할 수 있다.The input/output unit 370 may be its own interface device. The input/output unit 370 may include an input device and an output device separately.
출력 장치는 비디오 신호 및/또는 오디오 신호를 출력할 수 있다. 출력 장치는 모니터 등의 디스플레이 장치, 및/또는 스피커 등일 수 있다.The output device may output a video signal and/or an audio signal. The output device may be a display device such as a monitor, and/or a speaker.
입력 장치는 유저가 DB 서버(10)의 동작 제어를 위해 입력하는 입력 데이터를 발생시킬 수 있다. 입력 장치는 키보드, 키 패드, 터치 패드, 마우스 등의 사용자 조작 장치를 구비할 수 있다.The input device may generate input data that a user inputs to control the operation of the DB server 10 . The input device may include a user manipulation device such as a keyboard, key pad, touch pad, and mouse.
입력 및 출력 장치는 터치 스크린과 같이 하나로 구현될 수 있다.The input and output device may be implemented as one such as a touch screen.
입력 장치는 오디오 신호 및/또는 비디오 신호를 DB 서버(10)에 입력할 수 있다. 입력 장치는 카메라와 마이크 등을 구비할 수 있다.The input device may input an audio signal and/or a video signal to the DB server 10. The input device may include a camera and a microphone.
입력 장치는 센서 장치를 포함할 수 있다. 센서 장치는 온도 센서, 습도 센서, 밝기 센서, 먼지 센서, 압력 센서, 진동 센서, 전압 센서, 전류 센서, 평행 센서, 자기 센서, 조도 센서, 근접 센서, 거리 센서, 기울기 센서, 가스 센서, 열감지 센서, 불꽃 감지 센서, 금속 감지 센서, 홀 센서 등을 구비할 수 있다. 센서 장치는 온도, 습도, 밝기, 먼지(탄소), 압력, 진동, 전압, 전류, 평행, 자기, 조도, 근접, 거리, 기울기, 가스, 열감지, 불꽃 감지, 금속 감지, 회전량 데이터를 생성할 수 있다.The input device may include a sensor device. Sensor devices include temperature sensor, humidity sensor, brightness sensor, dust sensor, pressure sensor, vibration sensor, voltage sensor, current sensor, parallel sensor, magnetic sensor, light sensor, proximity sensor, distance sensor, inclination sensor, gas sensor, thermal sensor A sensor, a flame detection sensor, a metal detection sensor, a hall sensor, and the like may be provided. The sensor device generates temperature, humidity, brightness, dust (carbon), pressure, vibration, voltage, current, parallel, magnetic, illuminance, proximity, distance, tilt, gas, heat detection, flame detection, metal detection, and rotation amount data. can do.
입출력부(370)는 DB 서버(10)에 연결되는 모든 외부기기와의 인터페이스 역할을 수행할 수 있다. 외부기기의 예로는, 유/무선 데이터 포트, 메모리 카드(Memory card) 등과 같은 카드의 소켓, 오디오 I/O(Input/Output) 단자, 비디오 I/O(Input/Output) 단자 등이 있을 수 있다. 입출력부(370)는 이러한 외부 기기로부터 데이터를 전송받거나 DB 서버(10) 내부의 데이터가 외부 기기로 전송되도록 할 수 있다.The input/output unit 370 may serve as an interface with all external devices connected to the DB server 10 . Examples of the external device may include a wired/wireless data port, a socket of a card such as a memory card, an audio I/O (Input/Output) terminal, and a video I/O (Input/Output) terminal. . The input/output unit 370 may receive data from such an external device or transmit data inside the DB server 10 to an external device.
입출력부(370)는 통신 기능을 수행할 수 있다. 통신은 블루투스(Bluetooth), RFID(Radio Frequency Identification), UWB(Ultra Wideband), 지그비(ZigBee) 등 중 적어도 하나의 근거리 통신 프로토콜이 이용될 수 있다. 통신은 인터넷 접속을 포함할 수 있다. 입출력부(370)는 통신을 통해 외부 장치 예를 들어, 단말기(20)와 데이터를 주고 받을 수 있다.The input/output unit 370 may perform a communication function. For communication, at least one short-range communication protocol such as Bluetooth, Radio Frequency Identification (RFID), Ultra Wideband (UWB), and ZigBee may be used. Communications may include Internet access. The input/output unit 370 may exchange data with an external device, for example, the terminal 20 through communication.
본 명세서에서 단말기(20)를 별도의 장치로 도시하였지만, 입출력부(370)는 단말기(20)의 기능을 수행할 수 있다. 즉, 단말기(20)는 입출력부(370)로 대체(생략)되어, 본 발명이 실시될 수 있다.Although the terminal 20 is shown as a separate device in this specification, the input/output unit 370 may perform the functions of the terminal 20 . That is, the terminal 20 may be replaced (omitted) by the input/output unit 370, and the present invention may be implemented.
입출력부(370)는 사용자의 통신수단(단말기(2))과의 통신을 담당하며, 사용자의 다양한 형태의 접속수단인 통신장비 및 전산장비와의 통신프로토콜 및 네트워크상의 데이터 포멧을 제어할 수 있다.The input/output unit 370 is in charge of communication with the user's communication means (terminal 2), and can control the communication protocol and data format on the network with communication equipment and computing equipment, which are various types of connection means of the user. .
데이터 포맷의 예로 ONNX(Open Neural Network exchange format), NNEF(Neural Network Exchange Format) 또는 CSV(Comma-separated values) 등이 있을 수 있다.Examples of the data format may include Open Neural Network Exchange Format (ONNX), Neural Network Exchange Format (NNEF), or Comma-separated values (CSV).
입출력부(370)는 사용자로부터 제어 명령이나 쿼리를 입력 받고, 사용자에게 결과를 제공하는 채널일 수 있다.The input/output unit 370 may be a channel that receives a control command or query from a user and provides a result to the user.
저장부(200)는 DB 서버(10)가 동작하는데 필요한 데이터와 프로그램 등을 저장할 수 있다. 저장부(200)는 제어부(110)의 처리 및 제어를 위한 프로그램이 저장될 수 있고, 입력되거나 출력되는 데이터들의 임시 저장을 위한 기능을 수행할 수 있다.The storage unit 200 may store data and programs necessary for the DB server 10 to operate. The storage unit 200 may store programs for processing and control of the control unit 110 and may perform a function for temporarily storing input or output data.
저장부(200)는 데이터를 데이터베이스로 저장하는 장치, 또는 데이터베이스를 그 자체를 의미할 수 있다.The storage unit 200 may mean a device that stores data as a database or a database itself.
저장부(200)는 작업수행 및 기 작업이 수행되었던 내역 및 사용자 등에 대한 정보를 저장할 수 있다. 저장부(200)는 외부에 별도로 구비되는 저장 장치 또는 외부 전산망에 구비되는 저장장치 등과의 접속을 통하여 정보 및/또는 데이터를 저장할 수 있다. 빅데이터의 특징을 갖는 딥러닝 결과를 분산저장하거나, 외부에 별도로 저장하여, 요청 시 호출하여 적용할 수 있다.The storage unit 200 may store information about job performance, history of previous jobs, and users. The storage unit 200 may store information and/or data through connection with a storage device provided separately from the outside or a storage device provided in an external computer network. Deep learning results with big data characteristics can be distributed and stored or stored separately externally, and can be called and applied upon request.
제어부(100)는 DB 서버(10)의 각 부의 동작을 제어하여 DB 서버(10)의 전반적인 제어 기능을 실행할 수 있다.The control unit 100 may execute overall control functions of the DB server 10 by controlling the operation of each unit of the DB server 10 .
제어부(100)는 데이터베이스 내의 데이터를 접근하거나, 데이터를 관리하거나, 데이터를 테이블로 생성할 수 있다. 데이터 관리는 데이터를 조회, 수정, 및/또는 업로드 등을 의미할 수 있다.The control unit 100 may access data in the database, manage data, or create data in a table. Data management may mean inquiring, modifying, and/or uploading data.
제어부(100)는 사용자의 쿼리를 해석하고 실행하거나, 쿼리에 따른 작업이 수행되거나 결과를 제공하기 위한 모든 기능을 제어할 수 있다.The control unit 100 may control all functions for interpreting and executing a user's query, performing a task according to a query, or providing a result.
도 3 및 도 4를 참조하면, 제어부(100)는 쿼리 분석부(110), 데이터셋 관리 모듈(120), 학습 모델 관리 모듈(130), 및 결과 관리 모듈(160)을 구비할 수 있으며, 저장부(200)는 쿼리 분석값(210), 데이터셋(220), 학습 모델(230), 및 학습 결과(260)를 저장할 수 있다.3 and 4, the control unit 100 may include a query analysis unit 110, a dataset management module 120, a learning model management module 130, and a result management module 160, The storage unit 200 may store a query analysis value 210 , a dataset 220 , a learning model 230 , and a learning result 260 .
쿼리 분석부(110)는 사용자가 요청한 쿼리를 해석 및/또는 분석하여 이를 쿼리 분석값(210)으로 저장할 수 있다. 쿼리 분석값(210)은 쿼리의 기능 및/또는 내용을 구비할 수 있다. 쿼리은 크게 훈련(학습)과 추론으로 분류될 수 있다. 쿼리 분석값(210)은 쿼리가 훈련인지 추론인지 구별되는 값을 저장할 수 있다.The query analysis unit 110 may interpret and/or analyze a query requested by a user and store it as a query analysis value 210 . The query analysis value 210 may include a function and/or content of a query. Queries can be largely classified into training (learning) and inference. The query analysis value 210 may store a value distinguishing whether a query is training or inference.
쿼리의 기능은 사용자가 딥러닝 수행을 통해 얻으려는 결과값을 도출하기 위한 요청일 수 있다. 예를 들어, 문자 인식하라는 쿼리는 이미지 데이터로부터 문자를 검출하여 문자의 내용을 분류하라는 기능일 수 있다.The function of the query may be a request for deriving a result value that the user wants to obtain through deep learning. For example, a query to recognize text may be a function to classify content of text by detecting text from image data.
쿼리의 기능은 사용자의 요청에 한정되지 않는다. 예를 들어, 사용자의 요청은 하나이지만, 이를 수행하기 위해 복수의 세부 기능이 필요할 수 있다. 쿼리 분석부(110)는 쿼리를 분석하여 딥러닝 수행에 필요한 복수의 세부 기능을 추출할 수 있다.The function of the query is not limited to the user's request. For example, a user's request may be one, but multiple detailed functions may be required to carry it out. The query analyzer 110 may analyze a query to extract a plurality of detailed functions necessary for performing deep learning.
복수의 세부 기능은 상위 범주와 하위 범주로 나뉠 수 있다. 예를 들어, 인물의 성별을 구별하라는 쿼리의 경우, 상위 범주의 이미지 데이터에서 안면을 검출하는 세부 기능과 하위 범주의 검출된 안면의 성별을 분류하는 세부 기능으로 추출될 수 있다. 이 경우, 상위 범주의 세부 기능을 먼저 수행한 후에, 하위 범주의 세부 기능을 수행할 수 있다.A plurality of detailed functions can be divided into upper categories and lower categories. For example, in the case of a query to distinguish the gender of a person, a detailed function for detecting a face in image data of an upper category and a detailed function for classifying the gender of a detected face in a lower category may be extracted. In this case, a detailed function of a higher category may be performed first, and then a detailed function of a lower category may be performed.
쿼리의 내용은 기능 외에 부가적인 다양한 것일 수 있다. 예를 들어, 특정 학습 모델을 선택하거나, 훈련용 데이터셋 또는 추론용 데이터셋을 지정 하는 것 등이 있을 수 있다.The contents of the query may be additional various things other than functions. For example, it may be selecting a specific learning model, or designating a dataset for training or inference.
데이터셋 관리 모듈(120)에서 관리되는 데이터셋(220)은 학습 및 추론에 사용될 동일한 형식을 가진 정보 또는 데이터의 집합을 의미한다. 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 및 음성 등을 포함하며, 기계학습에 사용되는 모든 종류의 정보 또는 데이터일 수 있다.The dataset 220 managed by the dataset management module 120 refers to a set of information or data having the same format to be used for learning and reasoning. Information or data includes numbers, texts, images, videos, and voices, and may be any type of information or data used in machine learning.
데이터셋(220)으로 군집시킬 수 있는 데이터의 동일한 형식이라 함은 확장자를 기준으로 정의할 수 있다. 예로, 이미지 정보의 경우, 그 확장자가 이미지를 나타내는 확장자일 경우 모두 동일한 카테고리의 데이터셋으로 군집하게 되는 것이다.The same format of data that can be clustered into the dataset 220 can be defined based on the extension. For example, in the case of image information, if the extension indicates an image, all of them are clustered in a dataset of the same category.
여기서, 예를 위해 이미지 정보를 예를 들어 설명하고 있으나, 사용되는 데이터는 이미지뿐만 아니라 앞서 서술한 숫자, 문자, 이미지, 영상, 음성 등 기계 학습에 사용될 수 있는 모든 종류의 데이터가 될 수 있다.Here, image information is described as an example, but the data used may be all types of data that can be used for machine learning, such as numbers, texts, images, images, and voices, as described above, as well as images.
데이터셋 관리 모듈(120)은 외부로부터 입력 받은 정보 또는 데이터(이하, '데이터')를 그 형식(예를 들어, 확장자)으로 동일한 데이터셋으로 군집시키거나, 데이터의 내용으로 분류할 수 있다. 데이터의 내용으로 분류되는 경우, 데이터셋 관리 모듈(120)은 동일한 데이터 형식으로 구분하는 데이터 분류 학습 모델을 이용할 수 있다. 데이터 분류 학습 모델은 DB 서버(10)에 저장되어 필요시 호출되어 이용될 수 있다.The dataset management module 120 may cluster information or data (hereinafter referred to as 'data') received from the outside into the same dataset in its format (eg, extension) or classify it by the contents of the data. When the data is classified according to the contents, the dataset management module 120 may use a data classification learning model that classifies data into the same data format. The data classification learning model can be stored in the DB server 10 and called and used when necessary.
데이터셋 관리 모듈(120)은 데이터셋(220)이 학습 모델(230)에 잘 적용되도록 데이터를 전처리할 수 있다. 데이터 전처리는 데이터를 학습 모델의 텐서(벡터)에 맞도록 변환할 수 있다. 데이터 전처리의 예로 단어를 딥러닝에 이용되는 사전의 인덱스 숫자로 변환하는 예가 있을 수 있다.The dataset management module 120 may preprocess data so that the dataset 220 is well applied to the learning model 230 . Data preprocessing can transform the data to fit the tensors (vectors) of the learning model. As an example of data preprocessing, there may be an example of converting words into index numbers of a dictionary used for deep learning.
데이터셋 관리 모듈(120)은 제1 형식의 데이터로부터 제2 형식의 데이터로 변환할 수 있다. 데이터셋 관리 모듈(120)은 제2 형식의 데이터를 1 군(군집)의 데이터셋으로 관리할 수 있다. 예를 들어, 데이터셋 관리 모듈(120)은 영상 데이터를 프레임 별로 이미지를 추출하여 일군의 데이터셋으로 변환(decoding)할 수 있다. 데이터셋 관리 모듈(120)은 일련의 이미지를 영상으로 변환(encoding)할 수 있다. 일련의 이미지는 작업된 이미지일 수 있다. 즉, 데이터셋 관리 모듈(120)은 동영상 데이터를 일군의 이미지 데이터셋으로 변환하고, 작업 처리(모자이크)된 일군의 이미지 데이터셋을 영상으로 변환할 수 있다.The dataset management module 120 may convert data of the first format into data of the second format. The dataset management module 120 may manage data of the second format as one group (group) of datasets. For example, the dataset management module 120 may extract image data for each frame and convert (decode) them into a group of datasets. The dataset management module 120 may encode a series of images into images. The series of images may be worked images. That is, the dataset management module 120 may convert video data into a group of image datasets, and convert a group of image datasets processed (mosaic) into images.
데이터셋 관리 모듈(120)은 동영상 스트리밍 서비스를 할 수 있다. 예를 들어, 데이터셋 관리 모듈(120)은 일련의 이미지로부터 인코딩하여 동영상 스트리밍 서비스하거나, 저장된 동영상 파일로부터 스트리밍 서비스할 수 있다.The dataset management module 120 may provide a video streaming service. For example, the dataset management module 120 may encode from a series of images and provide a video streaming service or a stored video file to provide a streaming service.
데이터셋 관리 모듈(120)은 새로운 데이터셋을 생성할 때 새로운 테이블(데이터셋 테이블)을 생성하고, 데이터셋 테이블에서 데이터를 조회 또는 수정하거나 새로운 데이터를 추가할 수 있다.When a new dataset is created, the dataset management module 120 creates a new table (dataset table), and searches or modifies data or adds new data in the dataset table.
데이터셋 관리 모듈(120)은 데이터베이스의 테이블에 접근하여 데이터를 조회할 수 있다. 데이터셋 관리 모듈(120)은 사용자가 작성한 쿼리를 통해서 데이터베이스의 데이터를 조회한 결과를 사용자에게 보여줄 수 있다. 데이터셋 관리 모듈(120)은 사용자에게 부여된 권한에 따라 데이터를 수정할 수 있는 수준을 제한할 수 있다. 데이터셋 관리 모듈(120)은 사용자로부터 수치데이터를 입력받거나, 하나 이상의 파일을 읽어서 데이터 업로드를 진행할 수 있다. 데이터셋 관리 모듈(120)은 학습 데이터의 레이블을 작성할 수 있는 태깅기능을 제공할 수 있다.The dataset management module 120 may access a database table and retrieve data. The dataset management module 120 may show the result of searching for data in the database through a query written by the user to the user. The dataset management module 120 may limit the level at which data can be modified according to the authority granted to the user. The dataset management module 120 may receive numerical data from a user or read one or more files to perform data upload. The dataset management module 120 may provide a tagging function capable of labeling training data.
본 명세서에서 데이터셋 테이블과 데이터셋은 서로 동일한 의미로 사용될 수 있다. 특히 관계형 데이터베이스에서 데이터셋은 데이터셋 테이블로 저장된 관계형 데이터 형식의 데이터 집합을 의미한다. 관계형 데이터 형식은 테이블 형식을 이용하여 데이터를 정의하고 설명하는 모델을 의미한다. 이는 후술하는 학습 모델과 학습 모델 테이블, 학습 결과와 학습 결과 테이블 등에서도 동일하게 적용될 수 있다. 다만 양자의 실체 및/또는 포맷은 달라질 수 있다.In this specification, a dataset table and a dataset may be used as the same meaning. In particular, in a relational database, a dataset refers to a data set in relational data format stored as a dataset table. Relational data format refers to a model that defines and describes data using a tabular format. This can be equally applied to a learning model, a learning model table, a learning result, and a learning result table, which will be described later. However, the substance and/or format of both may be different.
학습 모델(Learning Model; LM) 관리 모듈(130)은 기계학습(딥러닝 등)에 사용되는 학습 모델 테이블(230)을 관리할 수 있다. The learning model (LM) management module 130 may manage the learning model table 230 used for machine learning (deep learning, etc.).
본 실시예에서 학습 모델 테이블(130)은 아키텍처 테이블 및 학습 파라미터 테이블을 구비할 수 있다. 아키텍처 테이블은 네트워크 테이블 및 하이퍼 파라미터 테이블을 구비할 수 있다.In this embodiment, the learning model table 130 may include an architecture table and a learning parameter table. The architecture table may include a network table and a hyperparameter table.
학습 모델 테이블(230)은 프레임워크부(300)에서 이용하는 학습 모델에 대응될 수 있다.The learning model table 230 may correspond to a learning model used by the framework unit 300 .
본 실시예에서 학습 모델(학습 네트워크 모델)(230)은 인공지능 알고리즘 기반으로 데이터 셋에 기초하는 학습될 수 있는 판단 모델로서, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 본 판단 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. In this embodiment, the learning model (learning network model) 230 is a judgment model that can be learned based on a data set based on an artificial intelligence algorithm, and may be a model based on a neural network. This judgment model can be designed to simulate human brain structure on a computer.
판단 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 뉴런의 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 본 판단 모델은 기계 학습(Machine Learning) 모델, 신경망 모델, 및/또는 딥러닝(Deep Learning) 모델을 구비할 수 있다.The judgment model may include a plurality of network nodes having weights that simulate neurons of a human neural network. A plurality of network nodes may each form a connection relationship to simulate synaptic activity of neurons that transmit and receive signals through synapses. This judgment model may include a machine learning model, a neural network model, and/or a deep learning model.
학습 네트워크 모델은 ANN(Artificial Neural Network, 인공신경망) 모델, DNN(Deep Neural Network) 모델, CNN(Convolution Neural Network, 컨벌루션 신경망) 모델, 및 RNN(Recurrent Neural Network) 모델 등의 모델들 중 적어도 하나의 모델을 구현할 수 있다. 예시된 모델은 이에 한정되지 않는다. 예를 들어, LSTM(Long Short Term Memory Network), GRU(Gated Recurrent Units), GAN(Generative Adversarial Networks), SRGAN(Super-resolution GAN) 모델 등이 있을 수 있으며, 이러한 명칭에 한정되지 않는다.The learning network model is at least one of models such as an Artificial Neural Network (ANN) model, a Deep Neural Network (DNN) model, a Convolution Neural Network (CNN) model, and a Recurrent Neural Network (RNN) model. model can be implemented. The exemplified model is not limited thereto. For example, there may be a Long Short Term Memory Network (LSTM), Gated Recurrent Units (GRU), Generative Adversarial Networks (GAN), Super-resolution GAN (SRGAN) model, etc., but is not limited to these names.
일반적으로 학습 모델(230)은 아키텍처(architecture) 및 파라미터를 포함할 수 있다.In general, the learning model 230 may include an architecture and parameters.
아키텍처(모델 아키텍처)는 기계학습 모델의 구조를 의미한다. 아키텍처는 학습 모델의 구조에 해당하는 층(layer)의 수, 유닛의 수, 레이어의 종류, 유닛이 연결되는 방법 등을 포함할 수 있다. 이를 아키텍처 구조로 표시할 수 있다.Architecture (model architecture) refers to the structure of a machine learning model. The architecture may include the number of layers corresponding to the structure of the learning model, the number of units, types of layers, and how units are connected. This can be represented as an architectural structure.
아키텍처는 학습 모델 테이블의 아키텍처 테이블에 대응될 수 있다. 아키텍처의 구조는 네트워크 모델 또는 네트워크로 지칭될 수 있다. 아키텍처 구조는 학습 모델 테이블의 네트워크 테이블에 대응될 수 있다. 아키텍처는 아키텍처 구조에 하이퍼 파라미터가 할당된 것을 의미할 수 있다. 아키텍처를 구축하려면, 네트워크 테이블과 하이퍼 파라미터 테이블이 필요할 수 있다.The architecture may correspond to the architecture table of the learning model table. The structure of an architecture may be referred to as a network model or network. The architecture structure may correspond to the network table of the learning model table. Architecture may mean that hyperparameters are assigned to an architecture structure. To build an architecture, you may need network tables and hyperparameter tables.
파라미터는 하이퍼 파라미터와 학습 파라미터를 구비할 수 있다.Parameters may include hyperparameters and learning parameters.
하이퍼 파라미터는 입출력과 모델 내부를 정의하고, 학습률, 최적화 방법(학습 방법; 옵티마이저(optimzer)), 레이어의 종류, 입출력 크기, 계산에 필요한 파라미터 등을 구비할 수 있다. 하이퍼 파라미터는 아키텍처가 구현되도록 할 수 있다. 하이퍼 파라미터는 아키텍처의 일 구성요소로 작동될 수 있다. 하이퍼 파라미터는 휴리스틱 기반, 즉 사람이 직접 설정할 수 있다. 또한, 하이퍼 파라미터의 최적화는 별도의 옵티마이저 모듈로 구현될 수도 있다.Hyperparameters define the input/output and the inside of the model, and may include a learning rate, an optimization method (learning method; optimizer), a type of layer, an input/output size, parameters required for calculation, and the like. Hyperparameters allow architectures to be implemented. Hyperparameters can act as a component of an architecture. Hyperparameters are heuristic-based, that is, they can be set directly by humans. Also, hyperparameter optimization may be implemented as a separate optimizer module.
학습 파라미터는 웨이트(weight) 및/또는 바이어스(bias)를 구비할 수 있다. 웨이트는 입력된 데이터와 상호 작용에 사용되는 값으로, 모델 아키텍처에 상응하는 모델 웨이트가 존재할 수 있다. 학습 파라미터는 옵티마이저에 의해 값이 변화될 수 있다. 학습 파라미터는 단순히 '파라미터'라고 지칭될 수 있다.Learning parameters may include weights and/or biases. A weight is a value used for interaction with input data, and a model weight corresponding to a model architecture may exist. A value of the learning parameter may be changed by an optimizer. Learning parameters may simply be referred to as 'parameters'.
옵티마이저는 학습 모델이 원하는 기능을 가지도록 학습 파라미터를 변화시킬 수 있다. 학습(딥러닝) 또는 훈련은 이러한 학습 파라미터의 변화를 의미할 수 있다. 옵티마이저는 프레임워크부(300)나 별도의 요소에 의해 구현될 수 있다.The optimizer may change the learning parameters so that the learning model has a desired function. Learning (deep learning) or training can mean changing these learning parameters. The optimizer may be implemented by the framework unit 300 or a separate element.
하이퍼 파라미터 및 학습 파라미터는 상술한 하이퍼 파라미터 테이블 및 학습 파라미터 테이블과 대응될 수 있다.The hyperparameter and learning parameter may correspond to the hyperparameter table and learning parameter table described above.
학습 모델 관리 모듈(130)은 지원되는 레이어를 추가하고 레이어 파라미터(레이어의 종류, 입출력 크기, 계산에 필요한 파라미터)를 조정하여 새로운 네트워크 모델을 생성할 수 있다. The learning model management module 130 may create a new network model by adding a supported layer and adjusting layer parameters (type of layer, input/output size, parameter required for calculation).
학습 모델 관리 모듈(130)은 기존에 작성된 네트워크 모델 리스트를 조회할 수 있다. 학습 모델 관리 모듈(130)은 기존에 작성된 네트워크 모델에 새로운 레이어를 추가하여 새로운 네트워크 모델을 생성할 수 있다. 이는 하이퍼 파라미터의 조정을 통해 구현될 수 있다. 이러한 일련이 작업들은 사용자의 쿼리에 의해 착수될 수 있다.The learning model management module 130 may query a network model list previously created. The learning model management module 130 may create a new network model by adding a new layer to an existing network model. This can be implemented through tuning of hyperparameters. These series of tasks may be initiated by a user's query.
학습 모델 관리 모듈(130)은 네트워크 모델을 시각화하여 보여주는 기능을 제공할 수 있다. 이를 통해, 사용자는 히든 레이어의 구조를 쉽게 살펴볼 수 있다.The learning model management module 130 may provide a function of visualizing and displaying the network model. Through this, the user can easily look at the structure of the hidden layer.
학습 모델(230)은 이외에 학습에 사용할 피드백 신호를 정의하는 손실 함수 및 학습 진행 방식을 결정하는 별도의 옵티마이저 모듈을 더 구비할 수 있다. 손실 함수 및 옵티마이저는 프레임워크부(300)에 구비될 수 있다.In addition, the learning model 230 may further include a loss function defining a feedback signal to be used for learning and a separate optimizer module for determining a learning progress method. The loss function and optimizer may be included in the framework unit 300 .
학습 모델(230)은 데이터베이스에서 관계형 데이터 형식인 학습 모델 테이블 포맷으로 저장될 수 있다. The learning model 230 may be stored in a database in a learning model table format, which is a relational data format.
학습 모델의 기능의 예로, 사용자에 의해 입력된 텍스트를 인식하거나, 이미지/오디오/동영상 등에 포함된 음성이나 텍스트를 인식하거나, 인식된 음성이나 텍스트로 사용자의 의향을 분석하는 기능 등이 있을 수 있다. As an example of a function of the learning model, there may be a function of recognizing text input by a user, recognizing voice or text included in an image/audio/video, etc., or analyzing a user's intention with the recognized voice or text. .
학습 모델 관리 모듈(130)은 복수의 학습 모델 테이블 중 쿼리에 적합한 특정 학습 모델 테이블을 선택할 수 있다. 학습 모델 관리 모듈(130)은 쿼리의 내용 또는 모델 선택 정책 중 어느 하나에 의해 학습 모델 테이블(230)을 선택할 수 있다.The learning model management module 130 may select a specific learning model table suitable for a query from among a plurality of learning model tables. The learning model management module 130 may select the learning model table 230 according to any one of the contents of a query or a model selection policy.
쿼리의 내용에 사용자가 지정한 특정 학습 모델이 있는 경우, 학습 모델 관리 모듈(130)은 해당 학습 모델 테이블을 선택한다. 예를 들어, 훈련 쿼리에 따라 학습된 학습 모델로 추론하라는 쿼리의 내용일 경우, 학습 모델 관리 모듈(130)은 해당 학습 모델 테이블을 선택하는 것이 바람직하다.If there is a specific learning model designated by the user in the content of the query, the learning model management module 130 selects the corresponding learning model table. For example, in the case of a query requesting inference with a learned learning model according to a training query, the learning model management module 130 preferably selects a corresponding learning model table.
모델 선택 정책은 쿼리의 기능 및/또는 쿼리에 연관된 데이터셋 테이블을 기초로 학습 모델 테이블을 선택하는 지침일 수 있다. 예를 들어, 모델 선택 정책에 따라, 학습 모델 관리 모듈(130)이 복수의 학습 모델 테이블의 기능들 중 상기 쿼리 기능과 유사한 학습 모델 테이블을 선택하도록 할 수 있다. 또한, 모델 선택 정책에 따라, 학습 모델 관리 모듈(130)이 상기 쿼리 기능과 유사하고, 상기 쿼리와 연관된 데이터셋 테이블과 유사한 테이터 구조를 가지는 학습 모델 테이블을 선택하도록 할 수 있다.A model selection policy may be a guideline for selecting a learning model table based on features of the query and/or dataset tables associated with the query. For example, according to a model selection policy, the learning model management module 130 may select a learning model table similar to the query function from among functions of a plurality of learning model tables. Also, according to the model selection policy, the learning model management module 130 may select a learning model table having a data structure similar to the query function and a data set table associated with the query.
학습 모델의 주요 기술은 바이너리 분류, 다중 분류, 회귀 분석, 수치 예측, 시계열 예측, 감정 분석, 클러스터링, 비정상 탐지, 자원 축소, 강화 학습 등이 있을 수 있다. 모델 선택 정책에 따라, 학습 모델 관리 모듈(130)은 쿼리의 기능에 맞는 기술을 가지는 학습 모델 테이블을 선택할 수 있다.The main techniques of learning models may include binary classification, multiclass classification, regression analysis, numerical prediction, time series prediction, sentiment analysis, clustering, anomaly detection, resource reduction, reinforcement learning, and the like. According to the model selection policy, the learning model management module 130 may select a learning model table having a technology suitable for the function of the query.
학습 모델 관리 모듈(130)은 기존에 학습 했던 학습 모델 테이블을 선택할 수 있다. 이 경우, 학습 모델 관리 모듈(130)은 기존 학습 모델이 제대로 작동하는지 검증 및 테스트를 하여, 제대로 작동하면 딥러닝 훈련 결과로 기존의 학습 모델 테이블을 산출할 수 있다. 검증 및 테스트 결과 제대로 작동하지 않거나 입력 데이터의 포맷이나 개수가 다를 경우, 선택한 학습 모델 테이블을 새롭게 딥러닝 훈련하여 학습된 학습 모델 테이블을 산출할 수 있다.The learning model management module 130 may select a previously learned learning model table. In this case, the learning model management module 130 verifies and tests whether the existing learning model works properly, and if it works properly, it can calculate the existing learning model table as a result of deep learning training. As a result of verification and testing, if it does not work properly or if the format or number of input data is different, a new learning model table can be calculated by performing deep learning training on the selected learning model table.
도 4를 참조하면, 학습 모델 테이블은 네트워크 테이블(qml_network_t)을 구비할 수 있다. 아키텍처는 데이터베이스에서 관계형 데이터 형식인 네트워크 테이블(qml_network_t) 포맷으로 변환되어 저장될 수 있다. 네트워크 테이블(qml_network_t)은 학습 모델(230)의 아키텍처로 변환될 수 있다. 이는 변환부(360)에 의해 변환될 수 있다.Referring to FIG. 4 , the learning model table may include a network table (qml_network_t). The architecture can be converted and stored in the network table (qml_network_t) format, which is a relational data format, in the database. The network table (qml_network_t) may be converted into an architecture of the learning model 230 . This may be converted by the conversion unit 360.
네트워크 테이블은 복수의 서브-네트워크 테이블(qml_s_network_t)을 구비할 수 있다. 예를 들어, Multi GPU(N 개)로 네트워크 모델을 학습하는 경우에 N 개의 서브-네트워크 테이블이 구비될 수 있다. 네트워크 모델을 추론하는 경우에 1개의 서브-네트워크 테이블이 구비될 수 있다.The network table may include a plurality of sub-network tables (qml_s_network_t). For example, in the case of learning a network model with Multi GPU (N), N sub-network tables may be provided. In the case of inferring a network model, one sub-network table may be provided.
네트워크 테이블 또는 서브-네트워크 테이블은 네트워크를 구성하는 레이어에 관한 복수의 레이어 테이블(qml_layer_t)을 구비할 수 있다. 학습 모델(230)의 아키텍처의 구조를 구성하는 레이어는 레이어 테이블(qml_layer_t)로 변환되어 저장될 수 있다. 레이어 테이블(qml_layer_t)은 학습 모델(230)의 레이어로 변환될 수 있다. The network table or sub-network table may include a plurality of layer tables (qml_layer_t) related to layers constituting the network. Layers constituting the architecture of the learning model 230 may be converted into a layer table (qml_layer_t) and stored. The layer table (qml_layer_t) may be converted into a layer of the learning model 230 .
레이어 테이블(qml_layer_t)은 복수의 텐서(tensor) 테이블(qml_tensor_t)을 구비할 수 있다. 텐서 테이블은 NCHW 포맷으로 구성된 4차원 텐서일 수 있다. 텐서 테이블은 dtype, qml_shape_t, data, name 등이 구비될 수 있다. 텐서 테이블 및 학습 모델(230)의 텐서는 서로 변환될 수 있다. The layer table (qml_layer_t) may include a plurality of tensor tables (qml_tensor_t). The tensor table may be a 4-dimensional tensor in NCHW format. A tensor table may include dtype, qml_shape_t, data, name, and the like. The tensor table and the tensors of the learning model 230 may be converted to each other.
학습 모델(230)의 파라미터는 파라미터 테이블로 저장될 수 있다. 학습 모델(230)의 파라미터와 파라미터 테이블은 서로 변환될 수 있다. 이는 변환부(360)에 의해 변환될 수 있다.Parameters of the learning model 230 may be stored as a parameter table. Parameters and parameter tables of the learning model 230 may be converted to each other. This may be converted by the conversion unit 360.
본 발명에서 미리 설계된 DB 스키마에 따라 모델 아키텍처와 모델 웨이트 등이 DB 테이블에 저장될 수 있다. 기설계된 DB 스키마는 서로 유사한 데이터셋 테이블과 학습 모델 테이블을 쉽게 분류할 수 있다. 이는 DB 서버(10)가 새로운 데이터셋을 입력 받으면, 저장되어 있는 관계형 데이터 형식의 학습 모델 중 유사한 학습 모델을 호출하여 새로운 데이터셋에 적용하게 할 수 있다.According to the DB schema designed in advance in the present invention, the model architecture and model weight may be stored in the DB table. The pre-designed DB schema can easily classify dataset tables and learning model tables that are similar to each other. When the DB server 10 receives a new data set, it can call a similar learning model among stored relational data format learning models and apply it to the new data set.
예를 들어, '속성(attribute), 도메인(domain), 차수(degree), 튜플(tuple), 카리널리티(cardinality), 릴레이션(realtion), 키(key), 후보키(candidate key), 기본키(primary)' 등의 테이블의 구성요소의 외형인 차수, 내용인 속성 및 도메인 등의 유사도에 따라 입력된 데이터셋과 기저장된 학습 모델의 유사도를 정할 수 있다. 이러한 유사도 판단은 학습 모델 관리 모듈(130)이 할 수 있다.For example, 'attribute, domain, degree, tuple, cardinality, relation, key, candidate key, primary The similarity between the input dataset and the pre-stored learning model can be determined according to the similarity of the degree, which is the external form, and the attribute and domain, which are the content, of the elements of the table, such as 'key (primary)'. The similarity determination may be performed by the learning model management module 130 .
이는 최초의 관계형 데이터 형식의 학습 모델이 생성되고 사용되어 데이터베이스에 저장된 후, 유사한 형식의 데이터셋이 입력되어 관계형 데이터 형식의 학습 모델을 생성해야 할 경우, 데이터베이스에 저장되어 있는 기존의 관계형 데이터 형식의 모델 중 유사도가 높은 모델을 검색하여 이를 호출한 후 적용할 수 있다. 이로 인해, 적합한 학습 모델의 생성 시간을 단축하고, 컴퓨팅 자원을 효율적으로 사용할 수 있다.This means that after the first relational data format learning model is created, used, and stored in the database, when a similar format dataset is input to create a relational data format learning model, the existing relational data format stored in the database Among the models, a model with high similarity can be searched for, called, and applied. As a result, the generation time of a suitable learning model can be shortened and computing resources can be efficiently used.
학습 모델 테이블은 구성요소가 관계형 데이터 형식으로 연결되어, 학습 모델 테이블은 사용자 또는 관리자가 작업 수행시 구성요소가 누락되지 않도록 가이드 역할을 할 수 있다The learning model table can serve as a guide so that users or administrators do not omit components when performing tasks, as components are linked in relational data format.
프레임워크부(300)는 데이터베이스 구조의 테이블로 저장된 요소들은 그대로 이용하거나, 프레임워크부(300)에서 사용하기 적합하도록 조작한 후 사용할 수 있다. 이러한 조작은 프레임워크부(300) 또는 변환부(360)에서 수행될 수 있다.The framework unit 300 may use the elements stored as tables of the database structure as they are or may be used after being manipulated to be suitable for use in the framework unit 300 . This manipulation may be performed by the framework unit 300 or the conversion unit 360 .
결과 관리 모듈(160)은 기계학습이 진행되는 동안 발생되는 각 레이어의 아웃풋, 중간 출력값, 파라미터 값, 계산이 진행되는 모델의 평가지표 값(딥러닝 함수의 학습 손실값), 및 기계추론 결과값 등의 학습 결과(260)를 데이터베이스에 저장하거나 호출하여 사용자가 확인할 수 있도록 관리할 수 있다.The result management module 160 outputs each layer generated during machine learning, intermediate output values, parameter values, evaluation index values (learning loss values of deep learning functions) of models in which calculations are performed, and machine inference result values. Such learning results 260 may be stored in a database or managed so that the user can check them by calling them.
저장부(200)는 데이터셋(220) 테이블, 학습 모델(230) 테이블, 및 학습 결과(260) 테이블 이외에 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 및 공통 테이블(Common Table)을 더 구비할 수 있다.The storage unit 200 stores a project table, a job table, and a common table in addition to the dataset 220 table, the learning model 230 table, and the learning result 260 table. more can be provided.
작업 테이블은 사용자 정보, 프로젝트의 상태, 로그 등을 포함할 수 있다. 공통 테이블은 레이어 타입, 오류 코드 등 룩업 테이블을 포함할 수 있다.The task table may include user information, project status, logs, and the like. The common table may include a lookup table such as layer type and error code.
프로젝트 테이블은 학습 모델 테이블로부터 복사된 실제 학습 모델이나 추론을 진행할 프로젝트 정보가 저장될 수 있다. 프로젝트가 생성된 후 학습 모델 테이블과 별개의 구성을 가지게 되므로, 프로젝트에 사용된 기반 네트워크가 수정되더라도 기구축된 학습 모델에 영향이 없다.The project table may store actual learning model copied from the learning model table or project information for inference. After the project is created, it has a separate structure from the learning model table, so even if the base network used in the project is modified, the established learning model is not affected.
저장부(200)는 개수가 많고 가변적인 데이터(입출력 데이터 및 가중치 정보)는 BLOB(Binary Large Object) 또는 text 타입으로 저장할 수 있다. 저장부(200)는 개수가 적고 가변적인 데이터(각 레이어 파라미터 등)는 레코드를 분할하여 저장할 수 있다.The storage unit 200 may store a large number of variable data (input/output data and weight information) in a BLOB (Binary Large Object) or text type. The storage unit 200 may divide and store records for a small number of variable data (e.g., parameters for each layer).
제어부(100)는 기계학습(훈련) 및 기계추론에 사용된 모든 입출력 데이터가 저장되도록 하고, 기계학습 및 기계추론에 사용된 모델이 저장되도록 할 수 있다. 제어부(100)는 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공하여, 사용자 요청에 의한 기계학습을 수행할 수 있다.The controller 100 may store all input/output data used for machine learning (training) and machine reasoning, and store models used for machine learning and machine reasoning. The control unit 100 may provide a procedure corresponding to a user's query request to perform machine learning according to the user's request.
프로시저는 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 네트워크 초기화(Init Network), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.Procedures include Insert Network, Insert Layer, Make Project, Input Data Loader, Init Network, Train, and Save Model. ) and Test.
인서트 네트워크는 네트워크(아키텍처) 이름, 네트워크 타입, 데이터셋 이름, 옵티마이저 타입, 옵티마이저 파라미터, 학습률, 배치 크기, 학습 횟수, 출력 레이어 인덱스를 포함하는 네트워크 테이블을 생성할 수 있다. The insert network may create a network table including network (architecture) name, network type, dataset name, optimizer type, optimizer parameters, learning rate, batch size, number of trainings, and output layer index.
인서트 레이어는 네트워크 아이디, 레이어 이름, 레이어 타입, 레이어 인덱스, 레이어 파라미터, 입력 레이어 인덱스를 포함하는 레이어 테이블을 등록할 수 있다.The insert layer may register a layer table including network ID, layer name, layer type, layer index, layer parameter, and input layer index.
메이크 프로젝트는 프로젝트 이름, 데이터셋 이름, 네트워크 이름, 학습 또는 추론 플래그, GPU 개수를 포함하는 프로젝트를 생성할 수 있다.A make project can create a project that includes the project name, dataset name, network name, training or inference flags, and number of GPUs.
입력 데이터 로더는 사용자 입력의 선택(레이어 인덱스, 쿼리 타입(학습 테이블, 학습 데이터, 검증 테이블, 검증 데이터)에 따라 데이터를 입력할 수 있다.The input data loader may input data according to user input selection (layer index, query type (learning table, learning data, verification table, verification data)).
네트워크 초기화는 네트워크 모델을 구성할 수 있다.Network initialization may construct a network model.
트레인은 프로젝트 아이디, 학습 세대 수, 배치 사이즈, 이어서 학습 여부, 저장 간격, 검증 간격, GPU 동기화 간격을 포함하는 학습을 시작할 수 있다.A train can start training, including project ID, number of training generations, batch size, whether to train later, storage interval, verification interval, and GPU synchronization interval.
모델 저장은 프로젝트 테이블의 네트워크 정보를 네트워크 테이블로 복사(프로젝트 이름, 네트워크 이름)할 수 있다.Save model can copy the network information of the project table to the network table (project name, network name).
테스트는 프로젝트 아이디, 모든 레이어의 결과 저장 여부 플래그를 포함하는 추론을 시작할 수 있다.Tests can initiate inferences that include the project ID and a flag whether to save results from all layers.
프레임워크부(300)는 다양한 기계학습 프레임워크 또는 딥러닝 프레임워크을 이용하여 기계학습을 수행할 수 있다.The framework unit 300 may perform machine learning using various machine learning frameworks or deep learning frameworks.
프레임워크는 응용 프로그램을 개발하기 위한 여러 라이브러리나 모듈 등을 효율적으로 사용할 수 있도록 하나로 묶어 놓은 일종의 패키지일 수 있다. 개발자 또는 관리자는 이미 검증된 수많은 라이브러리와 사전 학습이 완료된 다양한 딥러닝 알고리즘을 프레임워크를 통해 빠르고 손쉽게 사용할 수 있다.A framework may be a kind of package in which various libraries or modules for application program development are bundled into one for efficient use. Developers or administrators can quickly and easily use numerous libraries that have already been verified and various deep learning algorithms that have been pre-trained through the framework.
딥러닝 프레임워크는 TensoFlow, Torch/PyTorch, Deeplearing4j, CNTK(MICROSOFT COGNITIVE TOOLKIT), Keras, ONNX(Open Neural Network Exchange), MXNet, Caffe, QML(Quantum Machine Learning) 등이 있을 수 있다.Deep learning frameworks may include TensoFlow, Torch/PyTorch, Deeplearing4j, CNTK (MICROSOFT COGNITIVE TOOLKIT), Keras, ONNX (Open Neural Network Exchange), MXNet, Caffe, QML (Quantum Machine Learning), and the like.
프레임워크부(300)는 DB 서버(10)에 플러그 인으로 설치된 딥러닝 프레임워크일 수 있다. 이는 데이터베이스 연동 프레임워크(딥러닝 프레임워크), 데이터베이스 응용 프레임워크(딥러닝 프레임워크)와 같이 표현될 수 있다.The framework unit 300 may be a deep learning framework installed as a plug-in in the DB server 10. This can be expressed as a database interworking framework (deep learning framework) and a database application framework (deep learning framework).
프레임워크부(300)는 DB 서버(10)의 제어부(100)의 호출로 실행될 수 있다. 프레임워크부(300)는 호출될 때 제어부(100)로부터 각종 데이터를 인자로 받아 수행결과를 반환할 수 있다. 프레임워크부(300)는 관계형 데이터 포맷으로 정의된 네트워크 모델을 해석하여 프레임워크 내부에 네트워크를 구성할 수 있다. 이러한 해석은 변환부(360)에서 실행될 수도 있다.The framework unit 300 may be executed by calling the control unit 100 of the DB server 10. When called, the framework unit 300 may receive various data as arguments from the control unit 100 and return execution results. The framework unit 300 may construct a network within the framework by interpreting a network model defined in a relational data format. This analysis may be performed by the conversion unit 360 .
프레임워크부(300)는 제어부(100)로부터 학습 파라미터와 학습 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크의 학습을 수행하고 학습결과를 반환할 수 있다. 프레임워크부(300)는 제어부(100)로부터 입력 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크를 이용하여 기계추론을 수행하고 결과를 반환할 수 있다.The framework unit 300 may receive learning parameters and learning data from the control unit 100 as factors, perform learning of the network configured inside the framework, and return a learning result. The framework unit 300 may receive input data from the control unit 100 as a factor, perform machine inference using a network configured inside the framework, and return a result.
프레임워크부(300)는, 쿼리를 입력받으면, DB 서버(10)에 저장된 학습 모델에 대한 확인, 수정, 및 새로운 학습을 위한 학습 모델을 생성할 수 있다. 프레임워크부(300)는 입력된 쿼리에 따라 정보 또는 데이터와 학습 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 할 수 있다. 프레임워크부(300)는 학습 중간 결과 및 최종 결과를 제공할 수 있다. 프레임워크부(300)는 입력된 쿼리를 통하여 데이터와 기 학습된 학습 네트워크 모델을 선택하여 기계추론을 실행하고, 그 추론 결과를 제공할 수 있다.When a query is input, the framework unit 300 may check and modify the learning model stored in the DB server 10 and create a learning model for new learning. The framework unit 300 may perform machine learning by selecting information or data and a learning model according to an input query and setting learning parameters. The framework unit 300 may provide intermediate results and final results of learning. The framework unit 300 may execute machine inference by selecting data and a pre-learned learning network model through an input query, and provide the inference result.
본 실시예에서 프레임워크부(300)는 내부 프레임워크로 QML 모듈(310)을 구비할 수 있다. 내부 프레임워크는 QML 모듈(310) 이외에 다른 프레임워크를 구비하거나 더 구비할 수 있다. 이는 사용자에게 사용하고자 하는 다양한 선택지를 제공할 수 있다. In this embodiment, the framework unit 300 may include the QML module 310 as an internal framework. The internal framework may include or include other frameworks in addition to the QML module 310 . This may provide the user with various options to use.
QML 모듈(310)은 QML 플러그인 기능을 구현할 수 있다. QML 모듈(310)은 딥러닝을 수행할 수 있는 프레임워크인 QML을 탑재할 수 있다. QML 모듈(310)은 데이터베이스와 UDF(User Defined Function)를 통해 연결되며 호출에 의해 실행될 수 있다.The QML module 310 may implement QML plug-in functions. The QML module 310 may be equipped with QML, which is a framework capable of performing deep learning. The QML module 310 is connected to the database through a User Defined Function (UDF) and can be executed by a call.
프레임워크에 정의된 함수들은 각각 UDF를 통해 데이터베이스에 등록되고, 등록된 UDF 호출을 통해서 프레임워크가 실행될 수 있다.Each function defined in the framework is registered in the database through UDF, and the framework can be executed through the registered UDF call.
UDF에서 사용할 수 있는 인자 변수의 타입은 integer, real number, string으로 정해져 있다. 이러한 변수들은 QML에서 각각 사용될 수 있다. 예를 들어, 정수(integer) 타입은 네트워크 모델을 구성하는 필수 파라미터 중 정수값, QML 내부에 정의된 구조체 메모리의 주소값 등에 이용될 수 있다. Real number 타입은 네트워크 모델을 구성하는 필수 파라미터 중 실수값 등에 이용될 수 있으며, string 타입은 개수가 가변적인 파라미터들과 binary데이터인 blob 데이터에 이용될 수 있다.The types of argument variables that can be used in UDF are defined as integer, real number, and string. Each of these variables can be used in QML. For example, the integer type can be used as an integer value among essential parameters constituting a network model, an address value of a structure memory defined inside QML, and the like. The real number type can be used for real values among essential parameters constituting the network model, and the string type can be used for parameters with a variable number and blob data that is binary data.
QML 프레임워크는 채널 우선 데이터 포맷인 NCHW(N:batch, C:channel, H:height, W:width) 포맷을 따를 수 있다. 레이어 종류는 ONNX에서 사용되는 레이어를 지원하며, 각 레이어에 정의된 파라미터들도 ONNX 포맷을 따를 수 있다.The QML framework may follow the NCHW (N:batch, C:channel, H:height, W:width) format, which is a channel-first data format. The layer type supports layers used in ONNX, and parameters defined in each layer may also follow the ONNX format.
QML 프레임워크는 네트워크 모델을 학습가능하도록 백프로퍼케이션(Back-Propagation)알고리즘을 탑재할 수 있다. QML 프레임워크는 그라디언트 계산 알고리즘과 모델파라미터(weight, bias)를 업데이트 시키기 위한 옵티마제이션 알고리즘을 탑재할 수 있다.The QML framework can be equipped with a back-propagation algorithm to learn the network model. The QML framework can be loaded with gradient calculation algorithms and optimization algorithms to update model parameters (weights, biases).
QML 모듈(310)은 네트워크 모델(아키텍처)을 학습하는 방식중 네트워크 모델를 처음부터 학습시킨 후 각 레이어의 가중치에 따라 초기화 알고리즘을 통하여 결정하는 Train from scratch 기법과 기 학습된 모델의 가중치(import 기능을 통해 데이터베이스에 저장되거나, 이전 학습시도를 통해서 구한 가중치)를 읽어와서 레이어의 초기 가중치를 설정하고 학습을 진행하는 Fine tuning 기법을 지원할 수 있다.The QML module 310, among the methods of learning the network model (architecture), trains the network model from scratch and then determines it through an initialization algorithm according to the weight of each layer, using the train from scratch technique and the weight of the previously learned model (import function). It is possible to support a fine-tuning technique that sets the initial weight of the layer by reading the weight stored in the database or obtained through previous learning attempts through
QML 모듈(310)은 데이터베이스(DB 서버(10), 서버의 제어부(100) 또는 저장부(200)를 의미하며, 이하 동일)로부터 받은 정보를 통하여 학습 및 추론을 수행할 수 있다. 데이터베이스로부터 받은 정보는 사용자 Query 질의를 통하여 받은 데이터 조합을 통하여 획득할 수 있다.The QML module 310 may perform learning and inference through information received from a database (DB server 10, the control unit 100 or the storage unit 200 of the server, and the same below). Information received from the database can be obtained through data combinations received through user queries.
변환부(360)는 특정 학습 모델을 다른 형식의 학습 모델로 변환할 수 있다. 구체적으로, 변환부(360)는 특정 학습 모델을 데이터베이스의 관계형 데이터 형식으로 변환할 수 있다. 변환부(360)는 관계형 데이터 형식의 학습 모델을 특정 학습 모델이나 다른 학습 모델로 변환할 수 있다. 예를 들어, 변환부(360)는 데이터베이스에 테이블 타입으로 저장된 학습 모델 테이블을 내부 프레임워크인 QML 프레임워크로 변환하거나, 그 역으로도 가능하다. 변환부(360)는 학습 모델(230)의 아키텍처, 레이어, 및 파라미터를 관계형 데이터 형식인 네트워크 테이블, 레이어 테이블, 및 파라미터 테이블로 변환하거나, 역변환할 수 있다.The conversion unit 360 may convert a specific learning model into another type of learning model. Specifically, the conversion unit 360 may convert a specific learning model into a relational data format of a database. The conversion unit 360 may convert a learning model in relational data format into a specific learning model or another learning model. For example, the conversion unit 360 converts a learning model table stored in a table type in a database into a QML framework, which is an internal framework, or vice versa. The conversion unit 360 may convert the architecture, layers, and parameters of the learning model 230 into relational data formats such as a network table, a layer table, and a parameter table, or vice versa.
도 6을 참조하면, 변환부(360)는 QML 학습 모델 테이블을 QML 모듈(310)에 적합한 학습 모델로 변환할 수 있다. 변환부(360)은 필요시 데이터셋 테이블을 QML 모듈(310)에서 사용하기 적합하게 변환할 수 있다. QML 모듈(310)(또는 프레임워크부(300))은 데이터셋과 변환된 QML 학습 모델을 이용하여 학습 및/또는 추론을 하여, 학습 결과를 출력할 수 있다. 변환부(360)는 QML 모듈(310)에서 출력한 학습 결과를 관계형 데이터 형식으로 변환하여 학습 결과(output) 테이블로 저장할 수 있다. 이러한 기능은 QML 모듈(310) 및/또는 데이터셋 관리 모듈(120) 중 적어도 어느 하나가 대신 수행하거나, 서로 분담하여 수행할 수 있다.Referring to FIG. 6 , the conversion unit 360 may convert the QML learning model table into a learning model suitable for the QML module 310 . The conversion unit 360 may convert the dataset table to be suitable for use in the QML module 310, if necessary. The QML module 310 (or the framework unit 300) may perform learning and/or inference using the dataset and the converted QML learning model, and output a learning result. The conversion unit 360 may convert the learning result output from the QML module 310 into a relational data format and store it as a learning result (output) table. These functions may be performed by at least one of the QML module 310 and/or the dataset management module 120 instead, or may be performed separately from each other.
변환부(360)는 외부 프레임워크와의 호환성을 위해 사용될 수 있다. 변환부(360)는 기존 프레임워크의 기학습된 모델을 가져오거나 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 ONNX(Open Neural Network Exchange) 모델 포맷 등의 다른 프레임워크 포맷으로 변환할 수 있다.The conversion unit 360 may be used for compatibility with an external framework. The conversion unit 360 may convert a pretrained model of an existing framework into another framework format such as an ONNX (Open Neural Network Exchange) model format when exporting information or data from a database to the outside.
도 7을 참조하면, 변환부(360)는 ONNX 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 데이터베이스의 네트워크 모델 포맷으로 변환(임포트; import)할 수 있다. 변환부(360)는 반대로 데이터베이스의 네트워크 모델을 ONNX 모델을 포함하는 구조화딘 포맷이나 CSV 파일로 변환(엑스포트; export)할 수 있다. Referring to FIG. 7 , the conversion unit 360 may convert (import) a network structure and model data defined in the ONNX model format into a network model format of a database. Conversely, the conversion unit 360 may convert (export) the network model of the database into a structured format or CSV file including the ONNX model.
변환부(360)는 ONNX 모델 포맷 이외에 Open Network Exchange(ONNX), Neural Network Exchange Format(NNEF) 및 하이퍼 파라미터와 학습 파라미터 파일을 구조화된 포맷으로 변환할 수 있다.The conversion unit 360 may convert Open Network Exchange (ONNX), Neural Network Exchange Format (NNEF), and hyperparameter and learning parameter files into structured formats in addition to the ONNX model format.
사용자는 변환된 ONNX 모델 및 구조화된 포맷을 사용자가 원하는 target 프레임 워크로 변환하여 사용할 수 있다.The user can convert the converted ONNX model and structured format into the target framework desired by the user and use it.
변환부(360)를 통한 컨버팅 작업을 통하여 다른 형태의 딥러닝 프레임 워크에 네트워크 모델을 적용할 수 있다. 이를 통해, DB 서버(10)는 데이터베이스에 저장되어 있는 관계형 데이터 형식의 모델을 호출하여 이와 유사한 형태의 데이터셋에 적용할 수 있다.The network model can be applied to other types of deep learning frameworks through a conversion operation through the conversion unit 360 . Through this, the DB server 10 can call a relational data type model stored in the database and apply it to a data set of a similar type.
변환부(360)는 이러한 변환 작업을 통해, 작업에 소요되는 시간을 최소화 할 수 있다.The conversion unit 360 can minimize the time required for the work through this conversion work.
도 8은 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다.8 is a flowchart showing the execution flow of a query-based machine learning technique according to an embodiment of the present invention.
도 8을 참조하면, 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술은 ONNX 포맷 또는 ONNX 포맷으로 변환된 기학습된 모델을 컨버터를 통해서 QML 포맷으로 변환하고, 단말기(20)로부터 학습 또는 추론 쿼리를 입력받으며, 데이터베이스에서 정보를 QML 모듈(310)로 전송하여, QML 모듈(310)에서 훈련 및 추론을 수행할 수 있다. 그리고, 훈련(학습) 또는 추론 결과를 데이터베이스에 저장하면, 단말기(20)는 데이터베이스에 저장된 결과를 확인할 수 있다. 이하, 구체적으로 설명한다.Referring to FIG. 8 , the query-based machine learning technology according to an embodiment of the present invention converts an ONNX format or a pre-learned model converted to the ONNX format into a QML format through a converter, and learns or infers from the terminal 20. A query is received, information is transmitted from the database to the QML module 310, and training and inference can be performed in the QML module 310. And, if training (learning) or reasoning results are stored in the database, the terminal 20 can check the results stored in the database. Hereinafter, it demonstrates concretely.
단말기(20)는 학습 모델을 입력(Import)하거나, 데이터베이스로부터 출력(Export)받을 수 있다(①).The terminal 20 may input (Import) a learning model or receive an output (Export) from a database (①).
학습 모델을 입력 또는 출력할 때, 변환부(360)를 통하여 데이터베이스의 스키마 구조에 맞게 변환할 수 있다(②).When inputting or outputting a learning model, it can be converted to suit the schema structure of the database through the conversion unit 360 (②).
데이터베이스는 쿼리를 해석하여 적절한 작업을 수행할 수 있다(③).The database can interpret the query and take appropriate action (③).
제어부(100)는 단말기(20)로부터 입력되는 쿼리의 QML의 유형을 분석하고, 이에 따른 결과를 QML 모듈(310)로 전송할 수 있다. 보다 상세하게 설명하면, 입력된 쿼리의 언어 종류를 분석하고, 호환여부 또는 유사한 작업내역이 저장부(200)에 있는지 파악하는 등의 작업을 수행할 수 있다.The control unit 100 may analyze the QML type of the query input from the terminal 20 and transmit a result thereof to the QML module 310 . In more detail, it is possible to perform operations such as analyzing the language type of the input query and determining compatibility or whether similar work details are stored in the storage unit 200 .
제어부(100)는 각각의 운영체제 또는 기계학습 프레임워크(S/W) 별로 최적의 성능을 구현할 수 있는 프로그램을 선별하고, QML 모듈(310)에 학습 및 추론을 요청할 수도 있다. 예를 들어, 제어부(100)는 훈련이 요구되는 데이터셋이 이미지일 경우 이미지 훈련에 최적의 성능을 발휘할 수 있는 기계학습 S/W를 선별하고, 선별된 S/W에 훈련을 요청할 수 있다.The control unit 100 selects a program capable of implementing optimal performance for each operating system or machine learning framework (S/W), and may request learning and inference to the QML module 310. For example, if a dataset requiring training is an image, the controller 100 may select a machine learning S/W capable of exhibiting optimal performance for image training and request training from the selected S/W.
이와 함께, 제어부(100)는 현재 훈련을 위해, 사용중인 서버의 자원을 확인하여, 자원의 규모에 맞게 훈련을 위한 프레임워크를 적용하거나, 프레임워크 적용 시 구성요소의 선택적 적용을 시행할 수 있다.In addition, the control unit 100 may check the resources of the server in use for current training, apply a framework for training according to the scale of the resources, or selectively apply components when the framework is applied. .
QML 모듈(310)은 데이터베이스에서 플러그인을 수행하고, 데이터베이스로부터 받은 정보를 통해 훈련 및 추론을 수행할 수 있다(④).The QML module 310 may perform a plug-in in the database and perform training and reasoning through information received from the database (④).
단말기(20)는 쿼리를 통해 데이터베이스로 훈련 또는 추론을 요청할 수 있다(⑤).The terminal 20 may request training or inference to the database through a query (⑤).
단말기(20)는 데이터베이스의 테이블을 조회하여 학습 관련 정보를 조회할 수 있다(⑥).The terminal 20 may search a table of the database to search learning-related information (⑥).
학습 모델 데이터는 데이터베이스에 QML 스키마로 저장될 수 있다(⑦).Learning model data can be stored as a QML schema in a database (⑦).
도 9는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 흐름도이다.9 is an operational flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
도 9를 참조하면, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템은, 단말기(2) 및 DB 서버(10)와 연동하는 프레임워크부(300)에서 쿼리 기반 딥러닝 추론 방법을 실행할 수 있다.Referring to FIG. 9 , in the query-based deep learning inference system according to an embodiment of the present invention, the query-based deep learning inference method can be executed in the framework unit 300 that works with the terminal 2 and the DB server 10. there is.
제어부(100)는 사용자 단말기로부터 학습 쿼리(Call Train) 또는 추론 쿼리(Call Inference)를 입력 받을 수 있다(S410).The control unit 100 may receive an input of a learning query (Call Train) or an inference query (Call Inference) from the user terminal (S410).
제어부(100)는 쿼리를 분석하여, 데이터셋과 적합한 학습 모델을 프레임워크부(300)로 전송할 수 있다.The control unit 100 may analyze the query and transmit a dataset and a suitable learning model to the framework unit 300 .
프레임워크부(300)는 학습 쿼리 또는 추론 쿼리에 따라 네트워크 초기화(Init Network), 네트워크 구성(Construct Network) 및 네트워크 갱신(Update Network)을 실행할 수 있다(S420).The framework unit 300 may execute network initialization (Init Network), network configuration (Construct Network), and network update (Update Network) according to the learning query or inference query (S420).
프레임워크부(300)는 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train) 또는 추론(Test)을 실행할 수 있다(S430).When all layers are initialized, the framework unit 300 may execute training or inference (Test) (S430).
프레임워크부(300)는 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장 (Store Result & Model)할 수 있다.The framework unit 300 may acquire batch data (Get Batch Data) and store results and models (Store Result & Model) by repeating (Iteration) until the end of learning.
프레임워크부(300)는 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 추론 결과를 저장(Store Result)할 수 있다.The framework unit 300 may execute tests, obtain test data (Get Test Data), feed forward, and store inference results (Store Result).
프레임워크부(300)는 학습 또는 추론의 종료 시 학습 결과 또는 추론 결과를 사용자 단말기(130)로 제공할 수 있다(S440).The framework unit 300 may provide a learning result or reasoning result to the user terminal 130 when learning or reasoning is finished (S440).
한편, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 클라이언트, 회원, 데이터셋, 네트워크, 학습 모델, 학습 실행 등을 관리할 수 있다.Meanwhile, the query-based deep learning inference system 1 according to an embodiment of the present invention may manage clients, members, datasets, networks, learning models, and learning execution as follows.
[클라이언트 관리][Client Management]
본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(1)은 사용자 단말기(130)로 데이터셋과 기계학습 과정을 관리하고 결과를 확인하기 위하여 기능을 제공할 수 있다.The query-based deep learning inference system 1 according to an embodiment of the present invention may provide the user terminal 130 with a function to manage a dataset and a machine learning process and check the result.
[회원 관리][Member Management]
쿼리 기반 딥러닝 추론 시스템(1)은 회원관리를 통해서 데이터베이스(110)의 데이터, 네트워크 모델의 생성, 수정 권한을 부여하고 변경 이력을 남길 수 있다.The query-based deep learning reasoning system 1 may grant authority to create and modify data in the database 110 and network models through member management, and may leave a history of changes.
[데이터셋 관리][Dataset Management]
쿼리 기반 딥러닝 추론 시스템(1)은 데이터셋을 관리하기 위하여 새로운 테이블을 생성하고, 데이터를 조회, 수정, 업로드하기 위한 기능을 제공할 수 있다. 새로운 데이터셋을 생성할 때 자동으로 새로운 테이블을 생성하고, 데이터를 업로드할 수 있다. 데이터베이스의 테이블에 접근하여 데이터를 조회거나 사용자가 작성한 쿼리를 통해서 데이터베이스의 데이터를 조회한 결과를 보여줄 수 있다. 권한에 따라 데이터를 수정할 수 있다. 사용자로부터 수치데이터를 입력 받거나, 하나 이상의 파일을 읽어서 데이터 업로드를 진행할 수 있다. 학습 데이터의 레이블을 작성(tagging)하는 기능을 제공할 수 있다.The query-based deep learning inference system 1 can create a new table to manage datasets and provide functions for searching, modifying, and uploading data. When you create a new dataset, you can automatically create a new table and upload the data. You can view data by accessing a table in the database or display the result of searching the database data through a query written by the user. Data can be modified according to authority. Data upload may be performed by receiving numerical data from the user or by reading one or more files. A function of labeling training data may be provided.
[네트워크 관리][Network Management]
쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 네트워크 모델을 관리하기 위한 기능을 제공할 수 있다. 지원되는 레이어를 추가하고 레이어 파라미터를 조정하여 새로운 네트워크 모델을 생성할 수 있다. 기존에 작성된 네트워크 모델 리스트를 조회할 수 있다. 기존에 작성된 네트워크 모델에 새로운 레이어를 추가하여 새로운 네트워크 모델을 생성할 수 있다. 네트워크 모델을 시각화하여 보여주는 기능을 제공할 수 있다.The query-based deep learning inference system 1 may provide functions for managing network models as follows. New network models can be created by adding supported layers and adjusting layer parameters. A list of previously created network models can be queried. A new network model can be created by adding a new layer to an existing network model. A function to visualize and show the network model can be provided.
[학습 모델 관리][Manage Learning Model]
쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 학습을 관리하기 위한 기능을 제공할 수 있다. 네트워크 모델과 데이터셋, 학습 파라미터를 조절하여 학습 모델을 생성 또는 수정할 수 있다. 학습이 끝난 네트워크 모델을 컨버터 기능을 통해 출력할 수 있다. 현재 사용중인 서버의 자원을 확인할 수 있다.The query-based deep learning inference system 1 may provide functions for managing learning as follows. You can create or modify a learning model by adjusting the network model, dataset, and learning parameters. The trained network model can be output through the converter function. You can check the resources of the server currently in use.
[학습 실행 관리][Manage Learning Run]
쿼리 기반 딥러닝 추론 시스템(1)은 다음과 같이 학습 및 추론을 수행하고 결과를 확인하기 위한 기능을 제공할 수 있다. 서버의 자원을 확인할 수 있다. 학습 및 추론 수행이 가능한지 여부를 사용자에게 알려줄 수 있다. 현재 실행 또는 대기 중인 학습계획 리스트를 조회할 수 있다. 등록된 네트워크 모델과 데이터셋, 학습 파라미터를 설정하여 학습계획을 생성할 수 있다. 현재 실행 또는 대기 중인 학습계획의 학습 파라미터를 확인할 수 있다. 현재 실행 중인 학습계획의 중간 및 결과를 확인할 수 있다. 현재 실행 중인 학습계획을 멈출 수 있다. 대기 중인 학습계획을 시작할 수 있다. 등록된 네트워크 모델과 데이터셋을 설정하여 추론계획을 생성할 수 있다. 실행된 추론 계획의 결과를 확인할 수 있다.The query-based deep learning inference system 1 may provide functions for performing learning and inference and checking results as follows. You can check server resources. The user may be notified whether learning and inference performance is possible. You can search the list of currently running or waiting learning plans. You can create a learning plan by setting the registered network model, dataset, and learning parameters. You can check the learning parameters of the currently running or waiting learning plan. You can check the middle and results of the currently running learning plan. You can stop the currently running learning plan. You can start a pending study plan. An inference plan can be created by setting the registered network model and dataset. You can check the results of the executed reasoning plan.
전술한 바와 같이 본 발명에 의하면, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자에게 필요한 정보를 제공할 수 있도록 딥러닝 프레임워크가 정보 데이터베이스에 플러그인 형태로 연결되어, 사용자의 요청 쿼리에 의해 정보 데이터베이스에 저장된 데이터를 딥러닝 방식으로 학습하여 쿼리에 대응하는 데이터를 추론할 수 있도록 하는, 쿼리 기반 딥러닝 추론 시스템을 실현할 수 있다.As described above, according to the present invention, the deep learning framework is connected to the information database in the form of a plug-in so that even a user without expert knowledge of deep learning can provide the user with necessary information without difficulty, It is possible to realize a query-based deep learning inference system that enables inference of data corresponding to a query by learning data stored in an information database using a deep learning method.
도 10은 본 발명의 다른 실시예에 따른 데이터베이스 연동 딥러닝 분산 시스템을 개략적으로 나타낸 구성도이다. 도 11은 도 10에 따른 메인 서버 및 분산 서버의 블록 구성도이다. 도 12는 메인서버의 데이터셋 및 분산서버의 훈련용 데이터셋을 도시한다. 도 13은 도 10의 시스템의 훈련 방법에 대한 순서도이다. 도 14는 도 10의 시스템의 추론 방법에 대한 순서도이다. 도 15 내지 도 17은 도13의 비동기식 분산 서버의 각기 다른 실시예에 따른 신호 흐름도이다. 도 18 및 도 19는 도 13이 동기식 분산 서버의 서로 다른 실시예에 따른 신호 흐름도이다. 도 20은 도 14의 분산 추론에 따른 신호 흐름도이다. 도 21은 학습 모델을 개략적으로 도시한다. 도 22은 도 20에 따른 중간 결과값 테이블의 일부를 도시한다. 도 23은 네트워크 테이블의 일부를 도시한다. 도 1 내지 도 9를 참고한다.10 is a schematic configuration diagram of a database-linked deep learning distribution system according to another embodiment of the present invention. FIG. 11 is a block diagram of a main server and distributed servers according to FIG. 10 . 12 shows a dataset of a main server and a dataset for training of a distributed server. 13 is a flowchart of a training method of the system of FIG. 10; 14 is a flowchart of an inference method of the system of FIG. 10 . 15 to 17 are signal flow diagrams according to different embodiments of the asynchronous distributed server of FIG. 13 . 18 and 19 are signal flow diagrams according to different embodiments of the synchronous distributed server of FIG. 13 . 20 is a signal flow diagram according to the distributed inference of FIG. 14 . 21 schematically illustrates the learning model. Fig. 22 shows part of the intermediate result table according to Fig. 20; 23 shows part of the network table. See Figures 1 to 9.
이하, 설명의 편의를 위해 다음과 같이 학습 모델을 정의하기로 한다. 학습 모델(학습 네트워크 모델)은 아키텍처(모델 아키텍처)와 이에 할당된 학습 파라미터에 의해 구현될 수 있다. 아키텍처는 아키텍처 구조 및 이에 할당된 하이퍼 파라미터에 의해 구축될 수 있다. 학습 모델과 학습 모델 테이블, 아키텍처와 아키텍처 테이블, 아키텍처 구조와 네트워크 테이블, 하이퍼 파라미터와 하이퍼 파라미터 테이블, 및 학습 파라미터와 학습 파라미터 테이블은 각기 서로 대응될 수 있다. 그리고, 학습 모델 테이블은 아키텍처 테이블 및 학습 파라미터 테이블을 구비할 수 있다. 아키텍처 테이블은 네트워크 테이블 및 하이퍼 파라미터 테이블을 구비할 수 있다. 아키텍처 구조는 레이어 수, 유닛 수, 레이어 종류, 유닛 연결되는 방법을 의미할 수 있다. Hereinafter, for convenience of description, the learning model will be defined as follows. A learning model (learning network model) can be implemented by an architecture (model architecture) and learning parameters assigned to it. An architecture can be built by an architectural structure and hyperparameters assigned to it. The learning model and learning model table, architecture and architecture table, architecture structure and network table, hyperparameter and hyperparameter table, and learning parameter and learning parameter table may respectively correspond to each other. And, the learning model table may include an architecture table and a learning parameter table. The architecture table may include a network table and a hyperparameter table. The architectural structure may mean the number of layers, the number of units, the type of layers, and how units are connected.
유닛은 노드로도 칭할 수 있다. 최초의 노드들에 들어갈 값들은 입력 데이터셋 테이블일 수 있다. 마지막 노드들에 들어갈 값들은 출력값일 수 있다. 중간 레이어(히든 레이어)의 노드들에 입력되는 입력 값 및 출력 값은 데이터셋 관리 모듈(120) 또는 별도의 모듈에 의해 관리 및 저장될 수 있다.A unit may also be referred to as a node. Values to be entered into the first nodes may be input dataset tables. Values to be entered into the last nodes may be output values. Input values and output values input to nodes of the middle layer (hidden layer) may be managed and stored by the dataset management module 120 or a separate module.
프레임워크부 또는 내부 프레임워크(이하, '프레임워크부')는 선택된 학습 모델 테이블의 아키텍처 테이블(네트워크 테이블 및 하이퍼 파라미터 테이블)을 기초로 모델 아키텍처를 구축하고, 학습 파라미터 테이블을 기초로 학습 파라미터를 상기 모델 아키텍처에 할당하여 상기 선택된 학습 모델 테이블과 대응하는 학습 모델을 생성할 수 있다. 프레임워크부는 생성된 학습 모델을 이용하여 훈련용 또는 추론용 데이터셋 테이블을 입력으로 딥러닝 훈련 또는 추론을 수행할 수 있다. 학습 모델 테이블과 학습 모델은 서로 연동되거나, 대응 관계, 변환 관계 등으로 기술될 수 있으며, 이러한 용어에 한정되지 않는다.The framework unit or internal framework (hereinafter referred to as 'framework unit') builds a model architecture based on the architecture table (network table and hyperparameter table) of the selected learning model table, and sets the learning parameters based on the learning parameter table. A learning model corresponding to the selected learning model table may be created by assigning to the model architecture. The framework unit may perform deep learning training or inference by using the generated learning model and inputting a dataset table for training or inference. The learning model table and the learning model may be interlocked with each other, or may be described as a correspondence relationship, a conversion relationship, and the like, but are not limited to these terms.
도 10을 참조하면, 본 발명의 일 실시예에 따른 데이터베이스 연동 딥러닝 분산 시스템(이하, '훈련 분산 시스템')은 쿼리 기반 딥러닝 프레임워크 응용 데이터베이스 서버(이하, '메인 서버')(40), 및 복수의 분산 서버(41~43)를 포함할 수 있다.Referring to FIG. 10, a database-linked deep learning distribution system (hereinafter referred to as 'training distribution system') according to an embodiment of the present invention includes a query-based deep learning framework application database server (hereinafter referred to as 'main server') 40 , and a plurality of distributed servers 41 to 43 may be included.
메인 서버(40)와 복수의 분산 서버(41~43)는 도 1 내지 도 9의 DB 서버(10)의 기능을 적어도 일부를 구비할 수 있다. 메인 서버(40)와 복수의 분산 서버(41~43)의 구성요소 중 DB 서버(10)의 구성요소와 대응하는 구성요소에 대한 설명은 상술한 내용을 참고한다.The main server 40 and the plurality of distributed servers 41 to 43 may have at least some of the functions of the DB server 10 of FIGS. 1 to 9 . Among the components of the main server 40 and the plurality of distributed servers 41 to 43, the components of the DB server 10 and corresponding components are described with reference to the above description.
메인 서버(40)와 복수의 분산 서버(41~43)는 네트워크로 연결되어 서로 통신을 서로 할 수 있다.The main server 40 and the plurality of distributed servers 41 to 43 are connected through a network and can communicate with each other.
메인 서버(40)는 복수의 분산 서버(41~43)를 관리하여, 딥러닝 학습을 분산하여 훈련할 수 있다.The main server 40 manages a plurality of distributed servers 41 to 43, and can perform deep learning learning in a distributed manner.
도 11(a)를 참조하면, 메인 서버(40)는 제어부(100), 저장부(200), 및 입출력부(370)를 포함할 수 있다. 메인 서버(40)는 변환부(360)를 더 포함할 수 있다. 메인 서버(40)는 프레임워크부(300)을 더 포함할 수 있다.Referring to FIG. 11 (a), the main server 40 may include a control unit 100, a storage unit 200, and an input/output unit 370. The main server 40 may further include a conversion unit 360 . The main server 40 may further include a framework unit 300 .
도 11(b)를 참조하면, 분산 서버(41~43)는 제어부(100-N), 저장부(200-N), 프레임워크부(300-N), 및 입출력부(370-N)를 포함할 수 있다. 분산 서버(41~43)는 변환부(360-N)를 더 포함할 수 있다. N은 자연수로, 복수의 분산 서버(41~43) 중 특정 분산 서버를 다른 분산 서버와 구별하기 위해 사용되었다.Referring to FIG. 11(b), the distributed servers 41 to 43 include a control unit 100-N, a storage unit 200-N, a framework unit 300-N, and an input/output unit 370-N. can include The distribution servers 41 to 43 may further include a conversion unit 360-N. N is a natural number, and is used to distinguish a specific distribution server among a plurality of distribution servers 41 to 43 from other distribution servers.
메인 서버(40) 및 분산 서버(41~43)의 각 구성요소는 도 1 내지 도 9에서 기술한 내용을 참고한다.For each component of the main server 40 and distributed servers 41 to 43, the descriptions in FIGS. 1 to 9 are referred to.
메인 서버(40)는 도 1 내지 도 9의 데이터베이스 서버(10)의 기능을 구현하며, 분산 기능을 추가로 구현할 수 있다. 예를 들어, 메인 서버(40)는 전체 분산 시스템의 관리 기능을 하며, 추가로 분산 기능을 수행할 수 있다. 다만, 설명의 편의를 위해 메인 서버(40)의 분산 기능은 어느 한 분산 서버에서 수행하는 것으로 취급한다.The main server 40 implements the functions of the database server 10 of FIGS. 1 to 9 and may additionally implement a distributed function. For example, the main server 40 functions to manage the entire distributed system and may additionally perform a distributed function. However, for convenience of description, the distribution function of the main server 40 is treated as being performed by any one distribution server.
도 10에 도시된 메인 서버의 메인 프레임워크부(50), 및 각 분산 서버의 제1 내지 제3 프레임워크부(51~53)는 상술한 프레임워크부(300)에 각각 대응되는 것으로, 구별의 목적으로 사용되었다.The main framework unit 50 of the main server shown in FIG. 10 and the first to third framework units 51 to 53 of each distribution server correspond to the above-described framework unit 300, respectively, and are distinguished. was used for the purpose of
복수의 분산 서버 중 어느 하나는 복수의 컴퓨터 시스템으로 구현될 수 있다.Any one of the plurality of distributed servers may be implemented as a plurality of computer systems.
메인 서버(40)는 복수의 분산 서버(41~43) 각각이 동일한 환경에서 딥러닝 훈련을 하도록 복수의 분산 서버(41~43)를 설정할 수 있다. 메인 서버(40)는 복수의 분산 서버(41~43)가 데이터셋, 학습 모델, 프레임워크 중 적어도 일부를 동일하게 할 수 있다.The main server 40 may set the plurality of distributed servers 41 to 43 so that each of the plurality of distributed servers 41 to 43 performs deep learning training in the same environment. The main server 40 may make at least a part of a dataset, a learning model, and a framework identical to the plurality of distributed servers 41 to 43 .
제1 내지 제3 분산 서버(41~43)는 각각 제1 내지 제3 프레임워크부(51~53)를 구비할 수 있다. 제1 내지 제3 프레임워크부(51~53)는 훈련할 프레임워크(QML 모듈)를 구비하며, 동일한 학습 모델로 기계학습을 할 수 있다. 제1 내지 제3 분산 서버(41~43)가 구비하는 각각의 학습 모델이 동일하다는 의미는 적어도 각각의 아키텍처가 동일하다는 것을 의미할 수 있다. 각 분산서버(41~42)의 학습 파라미터(p1, p2, p3)는 상이할 수 있다.The first to third distribution servers 41 to 43 may include first to third framework units 51 to 53, respectively. The first to third framework units 51 to 53 have frameworks (QML modules) to be trained, and can perform machine learning with the same learning model. The meaning that each learning model of the first to third distribution servers 41 to 43 is the same may mean that at least each architecture is the same. The learning parameters p1, p2, and p3 of each distribution server 41 to 42 may be different.
각 분산서버(41~42)는 각각 학습 파라미터를 초기화하여 서로 다른 초기 학습 파라미터를 구비할 수 있다. 또는 메인 서버(40)에 의해, 복수의 분산 서버(41~43)는 동일한 초기 학습 파라미터를 구비할 수 있다. 즉, 학습 파라미터의 초기값은 메인 서버(40)에 의해 결정되거나, 복수의 분산 서버(41~43) 각각에서 독립하여 결정될 수 있다. 초기값의 결정은 선택적이거나 데이터셋의 종류, 개수 등의 성격이나, 딥러닝할 목적 등 다양한 요소에 따라 결정될 수 있다.Each of the distribution servers 41 to 42 may have different initial learning parameters by initializing the learning parameters, respectively. Alternatively, by the main server 40, the plurality of distributed servers 41 to 43 may have the same initial learning parameters. That is, the initial value of the learning parameter may be determined by the main server 40 or independently in each of the plurality of distributed servers 41 to 43 . Determination of the initial value may be optional or may be determined according to various factors such as the type and number of datasets, the purpose of deep learning, and the like.
제1 내지 제3 분산 서버(41~43)는 메인 서버(40)에 구비된 데이터셋과 동일한 데이터셋을 구비할 수 있다. 동일한 데이터셋은 메인 서버(40)에서 복수의 분산 서버(41~43)로 데이터를 전송하거나, 메인 서버(40)과 복수의 분산 서버(41~43)의 특정 데이터가 미러링과 같이 동기화 방법에 의해 이루어질 수 있다. 이러한 데이터 이동(확산) 방식은 데이터셋 뿐만 아니라 다른 자료(학습 파라미터 등)도 해당될 수 있다.The first to third distribution servers 41 to 43 may have the same data set as the data set provided in the main server 40 . The same data set is transmitted from the main server 40 to the plurality of distributed servers 41 to 43, or specific data of the main server 40 and the plurality of distributed servers 41 to 43 is synchronized using a synchronization method such as mirroring. can be done by This data movement (spreading) method may apply to other data (learning parameters, etc.) as well as the dataset.
복수의 분산 서버(41~43) 각각의 데이터셋은 학습에 적합하게 학습용 데이터셋(DS)으로 변환될 수 있다. 메인 서버(40)에서 데이터셋을 각각의 복수의 분산 서버(41~43)에 맞게 각각의 학습용 데이터셋(DS)으로 마련하여 전송하는 것 보다 전송 효율이 더 좋을 수 있다. 브로드캐스팅으로 전송할 수 있기 때문이다.A dataset of each of the plurality of distributed servers 41 to 43 may be converted into a dataset DS for learning suitable for learning. The transmission efficiency may be higher than when the main server 40 prepares the dataset as each learning dataset (DS) for each of the plurality of distributed servers 41 to 43 and transmits the dataset. Because it can be transmitted by broadcasting.
복수의 분산 서버(41~43)는 도 12(a)의 데이터셋과 동일한 데이터셋을 수신한 후, 각 데이터를 이를 랜덤하게 순서를 변경하는 셔플한 후 배치 사이즈에 맞게 데이터를 미니 배치(b1~b10)로 분할하여 도 12의 (b-1)~(b-3)와 같이 학습용 데이터셋(DS)으로 변환할 수 있다. 배치 사이즈는 메인 서버(40)로부터 수신할 수 있다.After receiving the same data set as the data set in FIG. ~ b10) and converted into a learning dataset (DS) as shown in (b-1) to (b-3) of FIG. 12. The batch size can be received from the main server 40 .
프레임워크부(300)는 상술한 QML 모듈(310) 외에 통합부(320)을 더 구비할 수 있다.The framework unit 300 may further include an integration unit 320 in addition to the above-described QML module 310 .
통합부(320)는 분산처리되는 학습 과정 중 도출된 학습 파라미터들을 하나의 학습 파라미터로 통합할 수 있다. 통합부(320)가 통합에 사용하는 함수는 다양할 수 있다. 예를 들어, 통합 함수는 도출된 복수의 학습 파라미터 각각에 가중치를 곱한 후 이들의 평균을 출력으로 할 수 있다.The integration unit 320 may integrate the learning parameters derived during the distributed learning process into one learning parameter. A function used by the integration unit 320 for integration may be various. For example, the integration function may multiply each of a plurality of derived learning parameters by a weight and then take an average of these as an output.
통합부(320)는 해당 분산 서버에서 도출된 학습 파라미터와 다른 분산 서버로부터 공유된 학습 파라미터 중 어떤 학습 파라미터를 통합 함수(F)의 인수에 적용함에 있어서, 다양한 인수 정책(또는, '통합 정책')을 정할 수 있다. 옵션인 경우 사용자의 설정에 의해 선택될 수 있다.The integration unit 320 applies a learning parameter derived from the corresponding distributed server and a learning parameter shared from other distributed servers to the argument of the integration function F, various argument policies (or 'integration policies'). ) can be determined. If it is an option, it can be selected by the user's settings.
통합 정책의 예는 다음과 같다. Examples of integration policies include:
통합부(320)는 최신의 학습 파라미터를 통합 함수(F)의 인수로 이용할 수 있다. 즉, 한번 이용된 학습 파라미터는 새로 공유 받지 않으면, 통합 함수(F)의 인수로 사용될 수 없다. The integration unit 320 may use the latest learning parameter as an argument of the integration function (F). That is, the learning parameter once used cannot be used as an argument of the integration function (F) unless it is newly shared.
통합부(320)는 타 분산 서버로부터 학습 파라미터를 받지 못한 경우, 타 학습 파라미터 없이 통합 함수(F)를 실행할 수 있다. When the integration unit 320 does not receive learning parameters from other distributed servers, it may execute the integration function F without other learning parameters.
통합부(320)는 자신의 학습 파라미터만 통합 함수(F)의 인수인 경우, 통합 함수(F)를 실행하지 않을 수 있다. 이 경우, 현 단계의 배치 학습에서 도출된 학습 파라미터는 그대로 다음 단계의 배치 학습에서 학습 파라미터로 이용될 수 있다. The integrator 320 may not execute the integrator function F when only its own learning parameter is an argument of the integrator function F. In this case, the learning parameters derived in the batch learning of the current step may be used as learning parameters in the batch learning of the next step.
통합부(320)는 인수의 개수에 해당하는 모든 학습 파라미터들이 최신인 경우에만 통합 함수(F)를 실행하는 것, 및 타 학습 파라미터들 중 적어도 하나의 학습 파라미터가 최신인 경우에도 통합 함수(F)를 실행하는 것 중 어느 하나일 수 있다. 인수가 3개인 것으로 가정하면, 전자에서 3개의 학습 파라미터가 모두 최신인 경우에 3개의 학습 파라미터가 인수로 이용되며 그렇지 않은 경우 자신의 학습 파라미터만을 인수로 이용된다. 후자에서 2개의 학습 파라미터만 최신이라면 해당 2개의 학습 파라미터만 인수로 이용된다. 사용자는 통합 함수(F)의 인수를 전부인 경우에만 실행되거나, 일부인 경우에도 실행되는 것 중 어느 하나를 설정할 수 있다. The integration unit 320 executes the integration function (F) only when all learning parameters corresponding to the number of arguments are up to date, and even when at least one learning parameter among other learning parameters is up to date, the integration function (F ). Assuming that there are 3 arguments, in the former case, 3 learning parameters are used as arguments when all 3 learning parameters are up-to-date, and otherwise, only their own learning parameters are used as arguments. In the latter, if only two learning parameters are up-to-date, only those two learning parameters are used as arguments. The user can set one of the arguments to be executed only when all arguments of the integrated function (F) or even when some arguments are executed.
이하, 분산 환경에서의 딥러닝을 구체적로 설명한다.Hereinafter, deep learning in a distributed environment will be described in detail.
제1 내지 제3 프레임워크부(51~53)는 동일한 아키텍처 구조와 하이퍼 파라미터로 학습 모델 아키텍처를 생성하여 각각의 학습용 데이터셋(DS)을 이용하여 기계학습을 할 준비를 할 수 있다. 제1 내지 제3 프레임워크부(51~53)는 학습 모델 중 웨이트나 바이어스와 같은 학습 파라미터(p1, p2, p3)의 초기값을 각각 설정할 수 있다.The first to third framework units 51 to 53 may create a learning model architecture with the same architectural structure and hyperparameters, and prepare for machine learning using each learning dataset DS. The first to third framework units 51 to 53 may respectively set initial values of learning parameters p1, p2, and p3, such as weights and biases, among learning models.
딥러닝 훈련 준비가 완료되면, 복수의 프레임워크부(51~53) 각각은 딥러닝 훈련을 수행할 수 있다. 복수의 프레임워크부(51~53) 각각은 각각의 학습용 데이터셋(DS)을 이용하여 딥러닝 훈련을 반복할 수 있다. 복수의 프레임워크부(51~53) 각각은 미니 배치(b1~b10) 별로 훈련한 후 파라미터, 특히, 학습 파라미터를 업데이트(도출)할 수 있다. 본 명세서 전반에서, 각 미니 배치의 학습 또는 훈련을 배치 학습 또는 배치 훈련이라고 칭하기로 한다.When preparation for deep learning training is completed, each of the plurality of framework units 51 to 53 may perform deep learning training. Each of the plurality of framework units 51 to 53 may repeat deep learning training using each training dataset DS. Each of the plurality of framework units 51 to 53 may update (derive) a parameter, in particular, a learning parameter after training for each mini-batch (b1 to b10). Throughout this specification, learning or training of each mini-batch will be referred to as batch learning or batch training.
예를 들어, 제1 프레임워크부(51)은 초기 학습 파라미터(p1-1)와 제1 미니 배치(b1)를 이용하여 훈련하여 업데이트(변환)된 학습 파라미터(p1-1')를 도출할 수 있다. 도출된 학습 파라미터(p1-1')는 제2 내지 제3 분산 서버(42, 43)로 전송되거나 동기화되는 등 확산될 수 있다. For example, the first framework unit 51 trains using the initial learning parameter p1-1 and the first mini-batch b1 to derive the updated (converted) learning parameter p1-1'. can The derived learning parameter p1-1' may be transmitted to the second to third distributed servers 42 and 43 or may be synchronized and spread.
각 프레임워크부에서 도출된 학습 파라미터는 다양한 방식으로 확산(또는, '공유')될 수 있다. 이는 정책 또는 사용자 설정에 의해 달라질 수 있다. 예를 들어, 어떤 프레임워크부에서 매 배치 학습이 종료되면 해당 최신 학습 파라미터가 다른 프레임워크부로 확산되는 즉시 공유 정책, 일정 시간이 경과되면 최신 학습 파라미터가 다른 프레임워크부로 확산되는 시간 주기별 공유 정책, 일정 개수의 배치 학습이 종료되면 최신 학습 파라미터가 확산되는 학습 주기별 공유 정책, 메인 서버(40)에서 정한 규칙 또는 랜덤한 내리는 지시에 의해 확산되는 기타 규칙 정책 등이 있을 수 있다.Learning parameters derived from each framework unit may be spread (or 'shared') in various ways. This may vary by policy or user setting. For example, an immediate shared policy in which the latest learning parameter is spread to other framework parts when every batch learning is completed in a framework part, and a shared policy by time period in which the latest learning parameter is spread to other framework parts after a certain period of time has elapsed. There may be a sharing policy for each learning period in which the latest learning parameter is spread when a certain number of batch learning is completed, a rule set by the main server 40, or other rule policy in which the rule is spread by a random instruction.
제1 프레임워크부(51)의 통합부(320)는 제1 프레임워크부(51)의 도출된 제1 학습 파라미터(p1-1') 외에 제2 및 제3 프레임워크부(52, 53)에서 도출된 제2 및 제3 학습 파라미터를 하나의 학습 파라미터(p1-2)로 통합할 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1 프레임워크부(51)에서 산출된 제1 학습 파라미터(p1-1')에 가중치를 주는 등의 방법으로, 산출된 제1 학습 파라미터(p1-1')가 통합 함수의 출력에 더 많은 영향을 끼치도록 하는 것이 바람직하다.The integration unit 320 of the first framework unit 51 includes the second and third framework units 52 and 53 in addition to the derived first learning parameter p1-1' of the first framework unit 51. The second and third learning parameters derived from may be integrated into one learning parameter (p1-2). The integration unit 320 of the first framework unit 51 applies a weight to the first learning parameter p1-1′ calculated in the first framework unit 51, and the calculated first learning parameter. It is desirable to allow the parameter p1-1' to have more influence on the output of the integrating function.
제1 프레임워크부(51)는 학습 모델의 학습 파라미터를 통합된 학습 파라미터(p1-2)로 업데이트 한 후, 제2 미니 배치(b2)와 통합된 학습 파라미터(p1-2)를 이용하여 기계학습을 할 수 있다. 1회의 에포크(epoch) 즉, 모든 미니 배치(학습용 데이터셋(DS))에 대한 학습이 완료되면 정해진 에포크 회수 또는 기설정된 정책에 따른 조건을 만족할 때까지 제1 프레임워크부(51)는 학습을 반복할 수 있다. 1회의 에포크 동안 전체 데이터 크기를 배치 사이즈로 나눈 개수 만큼의 학습 파라미터의 업데이트(이터레이션(iteration))가 이루어질 수 있다. 도 12(b-1~3)을 참조하면, 데이터 크기는 80이고 배치 사이즈는 8이므로, 1회의 에포크 동안 10회의 이터레이션이 발생된다.The first framework unit 51 updates the learning parameters of the learning model to the integrated learning parameters (p1-2), and then uses the second mini-batch (b2) and the integrated learning parameters (p1-2) to machine can learn When learning for one epoch, that is, all mini-batches (training datasets (DS)) is completed, the first framework unit 51 continues learning until a predetermined number of epochs or conditions according to a preset policy are satisfied. can be repeated During one epoch, learning parameter updates (iteration) may be performed as many times as the total data size divided by the batch size. Referring to FIG. 12 (b-1 to 3), since the data size is 80 and the batch size is 8, 10 iterations occur during one epoch.
제1 프레임워크부(51)는 한 회의 에포크가 종료되면 학습용 데이터셋(DS)가 셔플되도록 할 수 있다.The first framework unit 51 may shuffle the training data set DS when one epoch ends.
제1 프레임워크부(51)는 딥러닝 훈련의 하위 과정이 종료되면 아키텍처의 구조나 하이퍼 파라미터를 튜닝할 수 있다. 학습용 데이터셋은 훈련(train) 데이터셋, 검증(validation) 데이터셋, 및 테스트(test) 데이터셋으로 구분될 수 있다. 딥러닝 훈련의 하위 과정의 예로, 위 구분된 데이터셋의 학습 과정(훈련, 검증, 테스트) 등을 있을 수 있다.The first framework unit 51 may tune the architecture structure or hyperparameters when the sub-process of deep learning training is finished. A training dataset may be divided into a training dataset, a validation dataset, and a test dataset. As an example of a sub-process of deep learning training, there may be a learning process (training, verification, testing) of the above classified dataset.
제1 프레임워크부(51)에서 튜닝된 하이퍼 파라미터는 다른 분산 서버로 확산될 수 있다. 다른 분산 서버는 튜닝된 하이퍼 파라미터로 학습 모델 아키텍처를 재 구축할 수 있다. 하이퍼 파라미터의 튜닝은 한 분산 서버에서만 수행하는 것이 바람직하다.Hyperparameters tuned in the first framework unit 51 may be spread to other distributed servers. Other distributed servers can rebuild the learning model architecture with tuned hyperparameters. It is desirable to perform hyperparameter tuning only on one distributed server.
새롭게 딥러닝 훈련의 다음 하위 과정이 시작되기 전에, 각각의 학습 파라미터들은 초기화 등 재조정되거나, 직전 값을 유지될 수 있다.Before the next sub-process of deep learning training is newly started, each learning parameter may be readjusted, such as initialization, or may maintain the previous value.
도 13을 참조하면, 메인 서버(40)는 사용자로부터 특정 기능의 딥러닝 학습 쿼리를 입력 받을 수 있다(S610). 메인 서버(40)는 쿼리를 입출력부(370)을 통해 직접 입력 받거나, 단말기(20)를 통해 입력 받을 수 있다.Referring to FIG. 13 , the main server 40 may receive a deep learning learning query of a specific function from a user (S610). The main server 40 may receive a query directly through the input/output unit 370 or through the terminal 20 .
메인 서버(40)는 학습 쿼리에 적합한 학습 모델 테이블을 선택할 수 있다(S620). 메인 서버(40)는 쿼리를 분석하여 적합한 학습 모델 테이블(이하, '학습용 모델 테이블(Tt)')을 복수의 학습 모델 테이블에서 선택할 수 있다. 학습용 모델 테이블은 상술한 모델 선택 정책에 따라 메인 서버(40)의 학습 모델 관리 모듈(130)에 의해 선택될 수 있다.The main server 40 may select a learning model table suitable for the learning query (S620). The main server 40 may analyze the query and select an appropriate learning model table (hereinafter referred to as 'learning model table (Tt)') from a plurality of learning model tables. The learning model table may be selected by the learning model management module 130 of the main server 40 according to the above-described model selection policy.
학습용 모델 테이블(Tt)은 변환부(360)에 의해, 외부 프레임워크에서 생성된 학습 모델이 임포트(import)된 것일 수 있다.The learning model table Tt may be a learning model generated by the conversion unit 360 in an external framework imported.
메인 서버(40)는 학습용 데이터셋 테이블을 구비할 수 있다. 메인 서버(40)는 학습용 데이터셋의 데이터를 쿼리를 통해 입력 받거나, 다른 장치로부터 입력 받을 수 있다.The main server 40 may have a dataset table for learning. The main server 40 may receive data of the training dataset through a query or from another device.
메인 서버(40)는 복수의 분산 서버(41~43)가 초기화 가동되도록 할 수 있다(S630).The main server 40 may allow the plurality of distributed servers 41 to 43 to be initialized and operated (S630).
초기화 가동은 딥러닝 훈련의 분산이 적합하도록 분산 환경을 설정하고 복수의 분산 서버(41~43)에서 분산 훈련이 가능하도록 준비하는 일련의 과정을 의미할 수 있다.Initial operation may refer to a series of processes of setting a distributed environment suitable for distribution of deep learning training and preparing for distributed training in a plurality of distributed servers 41 to 43.
초기화 가동은 사용 가능한 복수의 분산 서버(41~43) 중 적절한 분산 서버를 선택하는 것을 포함할 수 있다. 초기화 가동은 제1 내지 제3 분산 서버(41~43)와 네트워크 연결하고, 동기화, 비동기화, 및/또는 미러링 등으로 데이터가 제1 내지 제3 분산 서버(41~43)으로 확산되도록 할 수 있다.The initialization operation may include selecting an appropriate distributed server from among a plurality of available distributed servers 41 to 43 . The initialization operation may connect the first to third distribution servers 41 to 43 and the network, and spread data to the first to third distribution servers 41 to 43 through synchronization, asynchronous, and/or mirroring. there is.
분산 환경은 학습용 데이터셋(DS)의 배치 사이즈를 구비할 수 있다. 메인 서버(40)는 분산 서버의 개수, 분산 서버의 사양, 학습용 데이터셋(DS), 및/또는 쿼리에 기초하여, 적절한 배치 사이즈를 결정할 수 있다. The distributed environment may have a batch size of the learning dataset DS. The main server 40 may determine an appropriate batch size based on the number of distributed servers, the specifications of the distributed servers, the training dataset (DS), and/or the query.
분산 환경은 적절한 에포크(epoch) 횟수를 더 구비할 수 있다. 분산 환경은 학습 쿼리를 더 구비할 수 있다. 분산 환경에 구비된 학습 쿼리는 분석된 내용, 예를 들어, 쿼리 기능일 수 있다.The distributed environment may further have an appropriate number of epochs. A distributed environment may further include a learning query. The learning query provided in the distributed environment may be an analyzed content, for example, a query function.
메인 서버(40)는 분산 환경, 학습용 모델 테이블(Tt), 및/또는 학습용 데이터셋(DS) 테이블을 제1 내지 제3 분산 서버(41~43)로 확산할 수 있다. 분산 환경은 관계형 데이터 구조일 수 있다. 분산 환경은 학습용 모델 테이블에 속할 수 있다.The main server 40 may spread the distribution environment, the learning model table (Tt), and/or the training dataset (DS) table to the first to third distribution servers 41 to 43. A distributed environment may be a relational data structure. A distributed environment may belong to a model table for training.
데이터 확산 후, 제1 내지 제3 분산 서버(41~43)는 동일한 분산 환경, 학습용 모델 테이블(Tt), 및 학습용 데이터셋(DS) 테이블을 구비할 수 있다.After data diffusion, the first to third distribution servers 41 to 43 may have the same distribution environment, a learning model table (Tt), and a learning dataset (DS) table.
제1 내지 제3 분산 서버(41~43) 각각은 각각의 학습용 데이터셋(DS) 테이블을 학습에 맞게 변경할 수 있다. 예를 들어, 제1 분산 서버(41)은 학습용 데이터셋(DS)의 데이터를 랜덤하게 순서를 변경한 후 배치 사이즈에 맞게 분할할 수 있다. 셔플 및 분할된 데이터셋은 배치 테이터셋 테이블로 저장될 수 있다. 배치 데이터셋 테이블의 각각의 배치 사이즈로 분할된 데이터셋을 '배치 데이터' 또는 '미니 배치'로 칭할 수 있다.Each of the first to third distribution servers 41 to 43 may change their respective training dataset (DS) tables according to learning. For example, the first distribution server 41 may randomly change the order of the data of the learning dataset DS and divide the data according to the batch size. Shuffled and partitioned datasets can be stored as batch dataset tables. A dataset divided into each batch size of the batch data set table may be referred to as 'batch data' or 'mini-batch'.
제1 내지 제3 분산 서버(41~43)는 각각의 학습 파라미터 테이블의 초기값을 서로 상이하게 하는 것이 바람직하다. 다양한 학습 파라미터로 딥러닝 훈련을 수행할 수 있기 때문이다. 이를 위해, 제1 내지 제3 분산 서버(41~43)는 학습 파라미터의 초기값을 무작위하게 정할 수 있다. 학습 파라미터의 초기화는 다양한 초기화 기술이 이용될 수 있다.It is preferable that the first to third distributed servers 41 to 43 set the initial values of the respective learning parameter tables to be different from each other. This is because deep learning training can be performed with various learning parameters. To this end, the first to third distributed servers 41 to 43 may randomly set initial values of learning parameters. For initialization of the learning parameters, various initialization techniques may be used.
초기화 가동된 제1 내지 제3 분산 서버(41~43) 각각은 상기 적합한 학습 모델 테이블에 속한 아키텍처 테이블을 플러그인으로 설치된 제1 내지 제3 프레임워크부(51~53)에 적합하게 모델 아키텍처를 구축할 수 있다(S640). Each of the first to third distribution servers 41 to 43 initially operated builds a model architecture suitable for the first to third framework units 51 to 53 installed as a plug-in using the architecture table belonging to the appropriate learning model table. It can be done (S640).
제1 내지 제3 프레임워크부(51~53)는 각각 구축된 모델 아키텍처에 초기 학습 파라미터를 할당(S650)하여, 학습 모델을 훈련할 준비를 할 수 있다.The first to third framework units 51 to 53 may prepare to train a learning model by allocating initial learning parameters to each constructed model architecture (S650).
제1 내지 제3 프레임워크부(51~53)(예를 들어, 각각의 QML 모듈(310))은 학습용 미니 배치와 학습 파라미터가 할당된 모델 아키텍처를 이용하여 훈련할 수 있다(S660).The first to third framework units 51 to 53 (eg, each QML module 310) may be trained using a mini-batch for learning and a model architecture to which learning parameters are assigned (S660).
각 분산 서버에서 업데이트된 각각의 학습 파라미터들의 통합을 위해, 각 분산 서버에서 독립하여 배치 학습하는 비동기식 학습 방법과 주기적으로 배치 학습의 시작을 같이 하는 동기식 학습 방법이 있을 수 있다.For integration of each learning parameter updated in each distributed server, there may be an asynchronous learning method in which batch learning is performed independently in each distributed server and a synchronous learning method in which batch learning is periodically started.
컴퓨팅 자원이나 사양 등에 의해 분산 서버들의 각 배치 학습들에 소요되는 시간이 다를 수 밖에 없다.Depending on computing resources or specifications, the time required for each batch learning of distributed servers is inevitably different.
비동기식 학습 방법은 다른 분산 서버에서의 배치 학습 시관과 무관하게 쉬는 시간 없이 계속적인 배치 학습이 가능하여, 컴퓨팅 자원을 효율적으로 사용할 수 있다. 또한, 분산 서버들 중 어느 하나가 기계 학습을 최종적으로 종료하면 나머지 분산 서버들도 종료하게 하는 정책을 이용하면, 총 학습 시간을 비동기식 방법에 비해 더 줄일 수 있다.The asynchronous learning method enables continuous batch learning without a break regardless of the timing of batch learning in other distributed servers, so that computing resources can be efficiently used. In addition, if one of the distributed servers finally ends the machine learning, the total learning time can be further reduced compared to the asynchronous method by using a policy that also terminates the other distributed servers.
동기식 학습 방법은 각 분산 서버에서 같은 횟수의 배치 학습 후 업데이트된 최종 학습 파라미터를 서로 공유하므로, 분산 학습의 정도나 효율이 비동기식에 비해 더 좋을 수 있다.Since the synchronous learning method shares updated final learning parameters after the same number of batch learning in each distributed server, the degree or efficiency of distributed learning may be better than that of the asynchronous learning method.
사용자는 기계 학습의 종류나 대상 등에 따라 동기식 및 비동기식 학습 방법 중 어느 하나를 선택할 수 있다. 이하, 동기식 및 비동기식 학습 방법에 대해 구체적으로 살펴본다.Users can select one of synchronous and asynchronous learning methods according to the type or target of machine learning. Hereinafter, synchronous and asynchronous learning methods will be described in detail.
도 15를 참조하여 비동기식 학습 방법의 일 실시예를 서술한다. 도 15는 앞서 언급한 '확산 정책' 중 각 프레임워크부에서 매 배치 학습이 종료되면 해당 최신 학습 파라미터가 다른 프레임워크부로 확산되는 즉시 공유 정책에 따른 실시예이다. 통합 정책은 적어도 하나의 타 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다.Referring to FIG. 15, an embodiment of an asynchronous learning method will be described. 15 is an embodiment according to the immediate sharing policy in which the latest learning parameter is spread to other framework units when each batch learning is completed in each framework unit among the above-mentioned 'spreading policies'. The unified policy is an embodiment in which at least one other learning parameter is used as an argument when it is up to date.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 배치 데이터(미니 배치(b1~b10))를 획득하고(Get Batch Data) 반복(Iteration) 학습을 할 수 있다. 각 반복되는 각각의 학습을 '배치 학습'(배치 TR)으로 칭하기로 한다.Each of the first to third framework units 51 to 53 may acquire each batch data (mini-batch b1 to b10) (Get Batch Data) and perform iteration learning until the learning ends. Each repeated learning is referred to as 'batch learning' (batch TR).
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다.The first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′.
제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 제2 및 제3 분산 서버(42, 43)로 확산시킬 수 있다(S810). 확산은 제1 분산 서버(41)에서 나머지 분산 서버(42, 43)로 직접 전송하거나, 메인 서버(40)를 통해 동기화하거나 미러링할 수 있다. 데이터 관리의 효율 및 일관성 등을 위해 확산은 동기화나 미러링을 통해 이루어지는 것이 바람직하다. 본 실시예에서 학습이 종료된 후, 제1 분산 서버(41)의 학습 파라미터가 제2 및 제3 분산 서버(42, 43)로 확산된 것으로 도시하였지만 이에 한정되지 않는다. 예를 들어, 학습에 제일 많은 시간이 소요된 제3 프레임워크부(53)에서 학습이 종료된 후, 각자의 도출된 학습 파라미터(p1.1', p2.1', p3.1')가 다른 분산 서버(41, 42, 43)로 확산될 수 있다.The first framework unit 51 may spread the learned parameter 1.1' (p1.1') to the second and third distributed servers 42 and 43 (S810). Spreading may be transmitted directly from the first distribution server 41 to the remaining distribution servers 42 and 43, or may be synchronized or mirrored through the main server 40. For the efficiency and consistency of data management, it is desirable to spread through synchronization or mirroring. In this embodiment, after the learning is finished, the learning parameters of the first distribution server 41 are shown to spread to the second and third distribution servers 42 and 43, but it is not limited thereto. For example, after learning is finished in the third framework unit 53, which takes the most time for learning, each derived learning parameter (p1.1', p2.1', p3.1') is It can spread to other distribution servers 41, 42, 43.
제1 프레임워크부(51)의 통합부(320)는 다른 분산 서버(42, 43)에서 배치 학습 후 도출된 최신의 학습 파라미터(타 학습 파라미터들)와 제1 프레임워크부(51)에서 도출된 학습 파라미터들을 적절한 변환(F)을 거쳐, 다음 배치 학습에서 사용할 학습 파라미터로 통합할 수 있다. The integration unit 320 of the first framework unit 51 derives the latest learning parameters (other learning parameters) derived after batch learning in the other distributed servers 42 and 43 and the first framework unit 51. The obtained learning parameters may be integrated into learning parameters to be used in the next batch learning after appropriate conversion (F).
타 학습 파라미터들 중 최근 종료된 배치 학습 이전에 통합부(320)에서 사용된 것은 제외할 수 있다. 즉, 최신의 학습 파라미터만 이용될 수 있다.Among other learning parameters, those used in the integrator 320 prior to the recently completed batch learning may be excluded. That is, only the latest learning parameters can be used.
제1 프레임워크부(51)는 통합된 학습 파라미터를 다음 배치 학습에 적용할 학습 파라미터로 업데이트하고, 다음 배치 학습을 할 수 있다.The first framework unit 51 may update the integrated learning parameters to learning parameters to be applied to the next batch learning and perform the next batch learning.
예를 들어, 제1 프레임워크부(51)에서 제1.1 배치 학습(TR)이 완료된 경우 다른 분산 서버(42, 43)에서 확산된 학습 파라미터가 없기 때문에, 제1 프레임워크부(51)의 통합부(320)는 제1.1' 파라미터(p1.1')를 다음 학습인 제1.2 배치 학습에 사용되는 제1.2 파라미터(p1.2)로 지정할 수 있다.For example, when the 1.1 batch learning (TR) is completed in the first framework unit 51, integration of the first framework unit 51 is not performed because there is no learning parameter spread in the other distributed servers 42 and 43. The unit 320 may designate the 1.1' parameter p1.1' as the 1.2 parameter p1.2 used for the next learning 1.2 batch learning.
제1 프레임워크부(51)는 제1.2 배치 학습이 완료된 후 도출된 제1.2' 파라미터(p1.2')를 중점으로 제2 및 제3 분산 서버(42, 43)에서 확산된 제2.1' 및 제3.1' 파라미터와 통합하여, 제1.3 파라미터(p1.3)를 산출할 수 있다.The first framework unit 51 focuses on the 1.2' parameter (p1.2') derived after the 1.2 batch learning is completed, and the 2.1' and 2' parameters spread in the second and third distribution servers 42 and 43 By combining with the 3.1′ parameter, the 1.3 parameter p1.3 can be calculated.
통합 과정에서 사용되는 함수(F)는 해당 프레임워크부에서 도출된 학습 파라미터를 중점으로하고, 나머지 타 파라미터들을 보조로하여 통합하는 것이 바람직하다. 예를 들어, 제1 프레임워크부(51)의 통합부(320)는 제1.2' 파라미터(p1.2')에 높은 가중치를 곱하고, 나머지 파라미터(p2.1', p3.1')에 낮은 가중치를 곱하여, 제1.2 파라미터(p1.2)로 도출할 수 있다. 이때, 가중치들의 합은 1인 것이 바람직하다. 통합 함술(F)의 인수(학습 파라미터들)의 개수나 학습 진행 정도에 따라, 각 인수에 곱해지는 가중치들 각각의 크기는 달라질 수 있다.It is preferable that the function F used in the integration process focuses on the learning parameter derived from the corresponding framework unit and integrates the other parameters as auxiliary. For example, the integration unit 320 of the first framework unit 51 multiplies the first parameter p1.2' with a high weight, and the other parameters p2.1' and p3.1' with low weights. By multiplying the weight, it can be derived as the 1.2 parameter (p1.2). At this time, the sum of the weights is preferably 1. Depending on the number of factors (learning parameters) of the integrated function (F) or the progress of learning, the size of each of the weights multiplied by each factor may vary.
제1 프레임워크부(51)는 제1.3 파라미터(p1.3)를 이용한 제1.3 배치 학습 후 제1.3' 파라미터(p1.3')를 도출할 수 있다. 제1.3 배치 학습 후 제1 프레임워크부(51)는 제1.3', 제2.2', 및 제3.1' 파라미터(p1.3, p2.2, p3.1')를 최신의 파라미터로 구비한다. 이 때, 제3.1' 파라미터(p3.1')는 제1.2 배치 학습 완료 후 사용된 파라미터로 이를 제외한다. 따라서, 제1 프레임워크부(51)는 제1.3' 및 제2.2' 파라미터(p1.3', p2.2')를 통합하여 제1.4 파라미터(p1.4)로 산출할 수 있다.The first framework unit 51 may derive the 1.3' parameter (p1.3') after the 1.3 batch learning using the 1.3 parameter (p1.3). After 1.3 batch learning, the first framework unit 51 has the 1.3', 2.2', and 3.1' parameters (p1.3, p2.2, p3.1') as the latest parameters. At this time, the 3.1' parameter (p3.1') is a parameter used after completion of the 1.2 batch learning, and excludes it. Accordingly, the first framework unit 51 may calculate the 1.4th parameter p1.4 by integrating the 1.3′ and 2.2′ parameters p1.3′ and p2.2′.
확산된 학습 파라미터 중 최신의 것이어야 하는 것은, 제2 분산 서버(42)의 제2.4 배치 학습 이후의 통합 단계에서 그 예를 볼 수 있다. 제2.3 배치 학습 후 제2.4 배치 학습 종료 전까지, 제2 프레임워크부(52)는 제1.3' 학습 파라미터(p1.3') 및 제1.4' 학습 파라미터(p1.4')를 제1 분산 서버(41)로부터 확산 받을 수 있다. 제1.4' 학습 파라미터(p1.4')가 최신이므로, 제2 프레임워크부(52)의 통합부(320)는 제1.3' 학습 파라미터(p1.3') 대신 제1.4' 학습 파라미터(p1.4')를 사용하여 통합할 수 있다.Among the spread learning parameters, which should be the latest, an example can be seen in the integration stage after the 2.4 batch learning of the second distribution server 42 . After the 2.3 batch learning and before the end of the 2.4 batch learning, the second framework unit 52 converts the 1.3' learning parameter (p1.3') and the 1.4' learning parameter (p1.4') to the first distributed server ( 41) can be diffused. Since the 1.4' learning parameter p1.4' is the latest, the integration unit 320 of the second framework unit 52 replaces the 1.3' learning parameter p1.3' with the 1.4' learning parameter p1. 4') can be used to integrate.
본 실시예에 따르면, 제1 내지 제3 분산 서버(41~43)는 각각의 배치 학습 및 학습 파라미터의 통합을 비동기적으로 진행할 수 있다. 즉, 제1 분산 서버(41)는 나머지 분산 서버들(42, 43)의 배치 학습의 종료와 무관하게 다음 배치 학습을 진행할 수 있다. 이에 따라 복수의 분산 서버(41~43)의 컴퓨팅 자원을 효율적으로 사용할 수 있다. 서버의 사양이나 작동 환경이 상이하여 각각의 배치 학습에 걸리는 시간은 상이할 수 밖에 없다. 본 동기식 학습 방법의 경우, 다른 분산 서버의 배치 학습이 종료되는 것을 기다리지 않아도 되기 때문이다.According to this embodiment, the first to third distributed servers 41 to 43 may asynchronously perform batch learning and integration of learning parameters. That is, the first distribution server 41 may proceed with the next batch learning regardless of the end of batch learning of the other distribution servers 42 and 43 . Accordingly, computing resources of the plurality of distributed servers 41 to 43 can be efficiently used. The time required for each batch learning is inevitably different due to different server specifications or operating environments. This is because, in the case of the present synchronous learning method, it is not necessary to wait for batch learning of other distributed servers to end.
최종 훈련된 학습 파라미터(p_last)는 제1 프레임워크부(51)의 통합부(320)에서 산출될 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1.l', 제2.m', 및 제3.n' 학습 파라미터(p1.l', p2.m', p3.n') 중 적어도 하나를 기초로 통합(F')하여 훈련된 학습 파라미터(p_last)를 산출할 수 있다(l, m, n은 자연수). 본 최종 통합에 사용되는 함수(F')는 훈련 중 사용되는 통합 함수(F)와 상이할 수 있다.The final trained learning parameter (p_last) may be calculated by the integration unit 320 of the first framework unit 51 . The integrating unit 320 of the first framework unit 51 provides the learning parameters (p1.l', p2.m', p3.n', 1.l', 2.m', and 3.n'). ), it is possible to calculate the trained learning parameter (p_last) by integrating (F′) based on at least one of (l, m, n are natural numbers). The function (F′) used in this final integration may be different from the integration function (F) used during training.
최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다. 최종 통합 함수(F')는 각 인수에 가중치를 차별하더라도 상기 통합 함수(F) 보다 덜 차별하는 것이 바람직하다. 이 경우, 학습이 먼저 종료된 순으로 높은 가중치를 낮은 가중치로 주는 것이 바람직하다.The final integration function (F') preferably does not give differential weight to each factor. It is preferable that the final integration function (F') discriminates less than the integration function (F) even if the weight is discriminated for each factor. In this case, it is preferable to assign high weights to low weights in the order in which learning is completed first.
본 실시예에서 보듯이, 배치 학습이 가장 빨리 끝나는 제1 분산 서버(41)에서 최종 학습 파라미터(p_last)를 도출(통합)하는 것이 바람직하다. 즉, 'l' 값이 다른 'm', 및 'n' 보다 큰 값을 가진다. 제1 프레임워크부(51)의 배치 학습이 종료(모든 에포크 종료)되면, 제2 및 제3 프레임워크부(52, 53)의 배치 학습은 남은 이터레이션과 무관하게 종료될 수 있다. 이 경우, 같은 환경에서의 동기식 학습 방법 보다 시간이 단축될 수 있다.As shown in this embodiment, it is preferable to derive (integrate) the final learning parameter (p_last) from the first distribution server 41 where batch learning ends most quickly. That is, the 'l' value has a larger value than other 'm' and 'n' values. When the batch learning of the first framework unit 51 ends (all epochs are finished), the batch learning of the second and third framework units 52 and 53 may end regardless of the remaining iterations. In this case, the time can be shortened compared to the synchronous learning method in the same environment.
도 16을 참조하여 비동기식 학습 방법의 다른 실시예를 서술한다. 도 16은 앞서 언급한 '확산 정책' 중 일정 시간이 경과되면 최종 업데이트된 학습 파라미터가 다른 프레임워크부로 확산되는 시간 주기별 공유 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 15를 참조한다.Another embodiment of the asynchronous learning method will be described with reference to FIG. 16 . 16 is an embodiment according to a sharing policy for each time period in which a finally updated learning parameter is spread to other framework units after a certain time period among the above-mentioned 'diffusion policies'. The integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figure 15.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 배치 데이터(미니 배치(b1~b10))를 획득하고, 배치 학습(배치 TR)을 반복할 수 있다.Each of the first to third framework units 51 to 53 may obtain each batch data (mini-batch b1 to b10) and repeat batch learning (batch TR) until learning ends.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다. 도출된 제1.1' 파라미터(p1.1')는 그대로 제1.2 배치 학습에 사용될 수 있다. 즉 제1 프레임워크부(51)의 통합부(320)는 통합 함수(F)를 실행하지 않을 수 있다. 제1.2 파라미터(p1.2)는 제1.1' 파라미터(p1.1')와 동일한 값을 가진다.The first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′. The derived parameter 1.1' (p1.1') may be used for learning the 1.2 arrangement as it is. That is, the integration unit 320 of the first framework unit 51 may not execute the integration function (F). The 1.2 parameter p1.2 has the same value as the 1.1′ parameter p1.1′.
이와 같이 각 분산 서버(DS1~3)은 학습 파라미터가 확산되기 전까지 독립하여 배치 학습을 진행할 수 있다.In this way, each of the distributed servers DS1 to 3 may perform batch learning independently until the learning parameters are spread.
모든 프레임워크부(51~53)는 특정 주기 또는 메인 서버(40)에서 지시하는 특정 시각에 최신의 학습 파라미터를 확산시킬 수 있다(S820). 본 실시예에서, 제1 프레임워크부(51)는 제1.3' 학습 파라미터(p1.3')를, 제2 프레임워크부(52)는 제2.2' 학습 파라미터(p2.2')를, 및 제3 프레임워크부(52)는 제3.1' 학습 파라미터(p3.1')를 다른 분산 서버로 확산시킬 수 있다.All of the framework units 51 to 53 may spread the latest learning parameters at a specific period or at a specific time instructed by the main server 40 (S820). In this embodiment, the first framework unit 51 sets the 1.3' learning parameter p1.3', the second framework unit 52 sets the 2.2' learning parameter p2.2', and The third framework unit 52 may spread the 3.1' learning parameter p3.1' to other distributed servers.
학습 파라미터의 확산 이후, 각 프레임워크부는 다음 배치 학습 전에 학습 파라미터들을 통합할 수 있다.After spreading the learning parameters, each framework part can integrate the learning parameters before learning the next batch.
예를 들어, 제1 프레임워크부(51)는 제1.3 배치 학습이 완료된 후 도출된 제1.3' 파라미터(p1.3')를 중점으로 제2 및 제3 분산 서버(42, 43)에서 확산된 제2.2' 및 제3.1' 파라미터와 통합하여, 제1.4 파라미터(p1.4)를 산출할 수 있다. 제2 프레임워크부(52)는 제2.3 배치 학습이 완료된 후 도출된 제2.3' 파라미터(p2.3')를 중점으로 제3 및 제1 분산 서버(43, 41)에서 확산된 제3.1' 및 제1.3' 파라미터와 통합하여, 제2.4 파라미터(p2.4)를 산출할 수 있다. 제3 프레임워크부(53)는 제3.2 배치 학습이 완료된 후 도출된 제3.2' 파라미터(p3.2')를 중점으로 제1 및 제2 분산 서버(41, 42)에서 확산된 제1.3' 및 제2.2' 파라미터와 통합하여, 제3.3 파라미터(p3.3)를 산출할 수 있다. For example, the first framework unit 51 focuses on the 1.3' parameter (p1.3') derived after the 1.3 batch learning is completed, and the second and third distribution servers 42 and 43 spread the By combining the parameters 2.2' and 3.1', the parameter 1.4 (p1.4) can be calculated. The second framework unit 52 focuses on the 2.3′ parameter (p2.3′) derived after the 2.3 batch learning is completed, and the 3.1′ and 3.1′ parameters spread from the 3rd and 1st distributed servers 43 and 41 By combining with the 1.3' parameter, the 2.4 parameter (p2.4) can be calculated. The third framework unit 53 focuses on the 3.2′ parameter (p3.2′) derived after the 3.2 batch learning is completed, and the first and second distribution servers 41 and 42 spread the 1.3′ and Integrating with the 2.2′ parameter, the 3.3 parameter (p3.3) can be calculated.
최종 훈련된 학습 파라미터(p_last)는 제1 프레임워크부(51)의 통합부(320)에서 산출될 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1.l', 제2.m', 및 제3.n' 학습 파라미터(p1.l', p2.m', p3.n')를 기초로 통합(F')하여 훈련된 학습 파라미터(p_last)를 산출할 수 있다(l, m, n은 자연수). 본 최종 통합에 사용되는 함수(F')는 훈련 중 사용되는 통합 함수(F)와 상이할 수 있다.The final trained learning parameter (p_last) may be calculated by the integration unit 320 of the first framework unit 51 . The integrating unit 320 of the first framework unit 51 provides the learning parameters (p1.l', p2.m', p3.n', 1.l', 2.m', and 3.n'). ), it is possible to calculate the trained learning parameter (p_last) by integrating (F') based on (l, m, n are natural numbers). The function (F′) used in this final integration may be different from the integration function (F) used during training.
최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다. 최종 통합 함수(F')는 각 인수에 가중치를 차별하더라도 상기 통합 함수(F) 보다 덜 차별하는 것이 바람직하다. 이 경우, 학습이 먼저 종료된 순으로 높은 가중치를 낮은 가중치로 주는 것이 바람직하다.The final integration function (F') preferably does not give differential weight to each factor. It is preferable that the final integration function (F') discriminates less than the integration function (F) even if the weight is discriminated for each factor. In this case, it is preferable to assign high weights to low weights in the order in which learning is completed first.
본 실시예에서 보듯이, 배치 학습이 가장 빨리 끝나는 제1 분산 서버(41)에서 최종 학습 파라미터(p_last)를 도출(통합)하는 것이 바람직하다. 즉, 'l' 값이 다른 'm', 및 'n' 보다 큰 값을 가진다. 제1 프레임워크부(51)의 배치 학습이 종료(모든 에포크 종료)되면, 제2 및 제3 프레임워크부(52, 53)의 배치 학습은 남은 이터레이션과 무관하게 종료될 수 있다. 이 경우, 같은 환경에서의 동기식 학습 방법 보다 시간이 단축될 수 있다.As shown in this embodiment, it is preferable to derive (integrate) the final learning parameter (p_last) from the first distribution server 41 where batch learning ends most quickly. That is, the 'l' value has a larger value than other 'm' and 'n' values. When the batch learning of the first framework unit 51 ends (all epochs are finished), the batch learning of the second and third framework units 52 and 53 may end regardless of the remaining iterations. In this case, the time can be shortened compared to the synchronous learning method in the same environment.
도 17을 참조하여 비동기식 학습 방법의 또 다른 실시예를 서술한다. 도 17은 앞서 언급한 '확산 정책' 중 일정 개수의 배치 학습이 종료되면 최신 학습 파라미터가 확산되는 학습 주기별 공유 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 15를 참조한다.Another embodiment of the asynchronous learning method will be described with reference to FIG. 17 . 17 is an embodiment according to a sharing policy for each learning period in which the latest learning parameter is spread when a certain number of batch learning is completed among the above-mentioned 'spreading policies'. The integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figure 15.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 배치 데이터(미니 배치(b1~b10))를 획득하고, 배치 학습(배치 TR)을 반복할 수 있다.Each of the first to third framework units 51 to 53 may obtain each batch data (mini-batch b1 to b10) and repeat batch learning (batch TR) until learning ends.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다. 도출된 제1.1' 파라미터(p1.1')는 그대로 제1.2 배치 학습에 사용될 수 있다. 즉 제1 프레임워크부(51)의 통합부(320)는 통합 함수(F)를 실행하지 않을 수 있다. 제1.2 파라미터(p1.2)는 제1.1' 파라미터(p1.1')와 동일한 값을 가진다.The first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′. The derived parameter 1.1' (p1.1') may be used for learning the 1.2 arrangement as it is. That is, the integration unit 320 of the first framework unit 51 may not execute the integration function (F). The 1.2 parameter p1.2 has the same value as the 1.1′ parameter p1.1′.
이와 같이 각 분산 서버(DS1~3)은 학습 파라미터가 확산되기 전까지 독립하여 배치 학습을 진행할 수 있다.In this way, each of the distributed servers DS1 to 3 may perform batch learning independently until the learning parameters are spread.
프레임워크부(51~53) 각각은 배치 학습 회수의 특정 주기에 최신의 학습 파라미터를 확산시킬 수 있다(S830). 도면의 굵게 표시된 배치 학습이 종료되면, 최신 학습 파라미터가 확산될 수 있다.Each of the framework units 51 to 53 may spread the latest learning parameter in a specific cycle of the number of times of batch learning (S830). When batch learning marked in bold in the drawing is completed, the latest learning parameter may be diffused.
본 실시예에서 2 주기의 배치 학습 종료 이 후에 학습 파라미터가 확산된다고 가정한다. 제1 프레임워크부(51)는 제1.2' 학습 파라미터(p1.2')를, 제2 프레임워크부(52)는 제2.2' 학습 파라미터(p2.2')를, 및 제3 프레임워크부(52)는 제3.2' 학습 파라미터(p2.3')를 다른 분산 서버로 각각 확산시킬 수 있다.In this embodiment, it is assumed that the learning parameters are spread after the end of two cycles of batch learning. The first framework unit 51 sets the 1.2' learning parameter p1.2', the second framework unit 52 sets the 2.2' learning parameter p2.2', and the third framework unit (52) may spread the 3.2' learning parameter (p2.3') to other distributed servers, respectively.
학습 파라미터의 확산 이후, 각 프레임워크부는 타 분산 서버에서 최신의 학습 파라미터를 모두 수신한 경우에 학습 파라미터들을 통합할 수 있다.After spreading the learning parameters, each framework unit may integrate the learning parameters when all the latest learning parameters are received from other distributed servers.
예를 들어, 제1 프레임워크부(51)는 제1.3 배치 학습이 완료된 후 도출된 제1.3' 파라미터(p1.3')를 중점으로 제2 및 제3 분산 서버(42, 43)에서 확산된 제2.2' 및 제3.2' 파라미터와 통합하여, 제1.4 파라미터(p1.4)를 산출할 수 있다. 제1 프레임워크부(51)는 제1.2 배치 학습 후에 다른 학습 파라미터를 받지 못한 이유로, 및 제1.3 배치 학습 후에 하나의 타 최신 학습 파라미터만을 보유한 이유로, 각 배치 학습 이후에 통합 함수(F)를 실행시키지 않는다.For example, the first framework unit 51 focuses on the 1.3' parameter (p1.3') derived after the 1.3 batch learning is completed, and the second and third distribution servers 42 and 43 spread the By combining the parameters 2.2' and 3.2', the parameter 1.4 (p1.4) can be calculated. The first framework unit 51 executes the integration function (F) after each batch learning for the reason that no other learning parameters are received after the 1.2 batch learning and for having only one other latest learning parameter after the 1.3 batch learning. don't let
제2 프레임워크부(52)는 제2.3 배치 학습이 완료된 후 도출된 제2.3' 파라미터(p2.3')를 중점으로 제3 및 제1 분산 서버(43, 41)에서 확산된 제3.2' 및 제1.2' 파라미터와 통합하여, 제2.4 파라미터(p2.4)를 산출할 수 있다. 제3 프레임워크부(53)는 제3.2 배치 학습이 완료된 후 도출된 제3.2' 파라미터(p3.2')를 중점으로 제1 및 제2 분산 서버(41, 42)에서 확산된 제1.2' 및 제2.2' 파라미터와 통합하여, 제3.3 파라미터(p3.3)를 산출할 수 있다. The second framework unit 52 focuses on the 2.3′ parameter (p2.3′) derived after the 2.3 batch learning is completed, and the 3.2′ and 3.2′ parameters spread from the 3rd and 1st distributed servers 43 and 41 Integrating with the 1.2' parameter, the 2.4 parameter (p2.4) can be calculated. The third framework unit 53 focuses on the 3.2′ parameter (p3.2′) derived after the 3.2 batch learning is completed, and the first and second distribution servers 41 and 42 spread the 1.2′ and Integrating with the 2.2′ parameter, the 3.3 parameter (p3.3) can be calculated.
최종 훈련된 학습 파라미터(p_last)는 제1 프레임워크부(51)의 통합부(320)에서 산출될 수 있다. 제1 프레임워크부(51)의 통합부(320)는 제1.l', 제2.m', 및 제3.n' 학습 파라미터(p1.l', p2.m', p3.n')를 기초로 통합(F')하여 훈련된 학습 파라미터(p_last)를 산출할 수 있다(l, m, n은 자연수). 본 최종 통합에 사용되는 함수(F')는 훈련 중 사용되는 통합 함수(F)와 상이할 수 있다.The final trained learning parameter (p_last) may be calculated by the integration unit 320 of the first framework unit 51 . The integrating unit 320 of the first framework unit 51 provides the learning parameters (p1.l', p2.m', p3.n', 1.l', 2.m', and 3.n'). ), it is possible to calculate the trained learning parameter (p_last) by integrating (F') based on (l, m, n are natural numbers). The function (F′) used in this final integration may be different from the integration function (F) used during training.
최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다. 최종 통합 함수(F')는 각 인수에 가중치를 차별하더라도 상기 통합 함수(F) 보다 덜 차별하는 것이 바람직하다. 이 경우, 학습이 먼저 종료된 순으로 높은 가중치를 낮은 가중치로 주는 것이 바람직하다.The final integration function (F') preferably does not give differential weight to each factor. It is preferable that the final integration function (F') discriminates less than the integration function (F) even if the weight is discriminated for each factor. In this case, it is preferable to assign high weights to low weights in the order in which learning is completed first.
본 실시예에서 보듯이, 배치 학습이 가장 빨리 끝나는 제1 분산 서버(41)에서 최종 학습 파라미터(p_last)를 도출(통합)하는 것이 바람직하다. 즉, 'l' 값이 다른 'm', 및 'n' 보다 큰 값을 가진다. 제1 프레임워크부(51)의 배치 학습이 종료(모든 에포크 종료)되면, 제2 및 제3 프레임워크부(52, 53)의 배치 학습은 남은 이터레이션과 무관하게 종료될 수 있다. 이 경우, 같은 환경에서의 동기식 학습 방법 보다 시간이 단축될 수 있다.As shown in this embodiment, it is preferable to derive (integrate) the final learning parameter (p_last) from the first distribution server 41 where batch learning ends most quickly. That is, the 'l' value has a larger value than other 'm' and 'n' values. When the batch learning of the first framework unit 51 ends (all epochs are finished), the batch learning of the second and third framework units 52 and 53 may end regardless of the remaining iterations. In this case, the time can be shortened compared to the synchronous learning method in the same environment.
도 18을 참조하여 동기식 학습 방법의 일 실시예를 서술한다. 도 18은 앞서 언급한 '확산 정책' 중 어떤 프레임워크부에서 매 배치 학습이 종료되면 해당 최신 학습 파라미터가 다른 프레임워크부로 확산되는 즉시 공유 정책 즉시 공유 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 15를 참조한다.An embodiment of a synchronous learning method will be described with reference to FIG. 18 . 18 is an embodiment according to the immediate sharing policy in which the latest learning parameter is spread to other framework units when every batch learning is completed in a framework unit among the above-mentioned 'diffusion policies'. The integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figure 15.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 미니 배치(b1~b10)에 대해 배치 학습(배치 TR)을 할 수 있다.Each of the first to third framework units 51 to 53 may perform batch learning (batch TR) for each mini-batch b1 to b10 until the training ends.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다.The first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′.
제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 제2 및 제3 분산 서버(42, 43)로 확산시킬 수 있다(S840). The first framework unit 51 may spread the learned parameter 1.1' (p1.1') to the second and third distribution servers 42 and 43 (S840).
제1 프레임워크부(51)는 다른 분산 서버(42, 43)에서 동일 단계의 배치 학습(제1.1 배치 학습) 후 도출된 학습 파라미터(타 학습 파라미터들)가 제1 분산 서버(41)에 업데이트되었는지 판단할 수 있다.The first framework unit 51 updates the learning parameters (other learning parameters) derived after batch learning (1.1 batch learning) of the same step in the other distributed servers 42 and 43 to the first distributed server 41. can determine if it has been
제1 분산 서버(41)에 타 학습 파라미터가 모두 업데이트되면, 제1 프레임워크부(51)의 통합부(320)는 제1.1 배치 학습 후 도출된 모든 학습 파라미터(p1.1', p2.1', p3.1')들을 적절한 통합 함수(F)를 이용하여, 다음 배치 학습에서 사용할 학습 파라미터(p1.2)로 통합할 수 있다.When all other learning parameters are updated in the first distribution server 41, the integration unit 320 of the first framework unit 51 performs all learning parameters (p1.1', p2.1) derived after the 1.1 batch learning. ', p3.1') can be integrated into the learning parameter (p1.2) to be used in the next batch learning using an appropriate integration function (F).
통합 함수(F)는 해당 프레임워크부에서 도출된 학습 파라미터를 중점으로하고, 나머지 타 파라미터들을 보조로하여 통합하는 것이 바람직하다. 예를 들어, 제1 프레임워크부(51)의 통합부(320)는 제1.1' 파라미터(p1.1')에 높은 가중치를 곱하고, 나머지 파라미터(p2.1', p3.1')에 낮은 가중치를 곱하여, 제1.2 파라미터(p1.2)로 도출할 수 있다. 이때, 가중치들의 합은 1인 것이 바람직하다. 가중치는 학습 진행 정도나 다른 여러 요소로, 가중치들 각각의 크기는 달라 수 있다.It is preferable that the integration function (F) focuses on the learning parameter derived from the corresponding framework unit and integrates the other parameters as auxiliary. For example, the integration unit 320 of the first framework unit 51 multiplies the first parameter p1.1' with a high weight, and the other parameters p2.1' and p3.1' with low weights. By multiplying the weight, it can be derived as the 1.2 parameter (p1.2). At this time, the sum of the weights is preferably 1. The weight is the degree of learning progress or other factors, and each weight may have a different size.
제1 프레임워크부(51)는 통합된 학습 파라미터(p1.2)를 다음 배치 학습에 적용할 학습 파라미터로 업데이트하고, 다음 배치 학습을 할 수 있다.The first framework unit 51 may update the integrated learning parameter p1.2 as a learning parameter to be applied to the next batch learning, and perform the next batch learning.
제2 및 제3 분산 서버(42, 43)의 제2 및 제3 프레임워크부(52, 53) 각각의 통합부(320)는 각각 제1.1 배치 학습 후 도출된 모든 학습 파라미터(p1.1', p2.1', p3.1')들을 이용하여, 제2.2 및 제3.2 파라미터(p2.1, p3.1)을 각각 통합하여 다음 배치 학습에 적용할 학습 파라미터로 각각 업데이트한 후, 다음 배치 학습을 할 수 있다.The integration unit 320 of the second and third framework units 52 and 53 of the second and third distribution servers 42 and 43 respectively all the learning parameters (p1.1' derived after the 1.1 batch learning). , p2.1', p3.1'), the 2.2 and 3.2 parameters (p2.1, p3.1) are integrated and updated as learning parameters to be applied to the next batch learning, and then the next batch can learn
이러한 과정은 통해, 제1 내지 제3 프레임워크부(51~53)는 모든 에포크가 종료될 때까지 테스트를 할 수 있다.Through this process, the first to third framework units 51 to 53 may be tested until all epochs are completed.
모든 에포크가 종료되면, 복수의 분산 서버(41~43) 중 어느 하나 또는 메인 서버(40)의 통합부(320)는 각각의 마지막 학습 파라미터(p1.n', p2.n', p3.n')를 통합하여, 최종 학습 파라미터(p_last)를 도출할 수 있다(n는 자연수). 최종 통합 함수(F')는 학습 중 사용된 통합 함수(F)와 상이할 수 있다. 최종 통합 함수(F')는 각 인수에 차별적인 가중치를 주지 않는 것이 바람직하다.When all epochs are finished, any one of the plurality of distribution servers 41 to 43 or the integration unit 320 of the main server 40 determines each of the last learning parameters (p1.n', p2.n', p3.n ') to derive the final learning parameter (p_last) (n is a natural number). The final integration function (F') may be different from the integration function (F) used during learning. The final integration function (F') preferably does not give differential weight to each factor.
본 동기식 학습 방법은 비동기식 학습 방법에 비해 학습에 시간이 더 소요될 수 있으나, 각 학습 파라미터들을 균형있게 사용할 수 있다.The synchronous learning method may take more time to learn than the asynchronous learning method, but each learning parameter can be used in a balanced manner.
도 19를 참조하여 동기식 학습 방법의 다른 실시예를 서술한다. 도 19는 앞서 언급한 '확산 정책' 중 시간 주기별 공유 정책, 학습 주기별 공유 정책, 및 기타 규칙 정책 중 어느 한 정책에 따른 실시예이다. 통합 정책은 모든 학습 파라미터가 최신인 경우 인수로 사용되는 실시예이다. 도 15, 도 16, 및 도 18를 참조한다.Another embodiment of the synchronous learning method will be described with reference to FIG. 19 . 19 is an embodiment according to any one of a sharing policy for each time period, a sharing policy for each learning period, and other rule policies among the above-mentioned 'diffusion policies'. The integration policy is an embodiment that is used as an argument if all learning parameters are up to date. See Figures 15, 16, and 18.
제1 내지 제3 프레임워크부(51~53) 각각은 학습 종료시까지 각각의 미니 배치(b1~b10)에 대해 배치 학습(배치 TR)을 반복할 수 있다.Each of the first to third framework units 51 to 53 may repeat batch learning (batch TR) for each mini-batch b1 to b10 until the learning ends.
제1 프레임워크부(51)는 제1.1 파라미터(p1.1)가 할당된 모델 아키텍처에서 제1.1 배치 학습을 진행할 수 있다. 제1.1 배치 학습이 완료되면, 제1 프레임워크부(51)는 학습된 제1.1' 파라미터(p1.1')를 도출할 수 있다. 도출된 제1.1' 파라미터(p1.1')는 그대로 제1.2 배치 학습에 사용될 수 있다. 즉 제1 프레임워크부(51)의 통합부(320)는 통합 함수(F)를 실행하지 않을 수 있다. 제1.2 파라미터(p1.2)는 제1.1' 파라미터(p1.1')와 동일한 값을 가진다. 이와 같이 각 분산 서버(DS1~3)은 학습 파라미터가 확산되기 전까지 독립하여 배치 학습을 진행할 수 있다. 이 때 각 배치 학습의 시작은 동기되지 않아도 무관하다.The first framework unit 51 may perform 1.1 batch learning in the model architecture to which the 1.1 parameter p1.1 is assigned. When the 1.1 batch learning is completed, the first framework unit 51 may derive the learned 1.1′ parameter p1.1′. The derived parameter 1.1' (p1.1') may be used for learning the 1.2 arrangement as it is. That is, the integration unit 320 of the first framework unit 51 may not execute the integration function (F). The 1.2 parameter p1.2 has the same value as the 1.1′ parameter p1.1′. In this way, each of the distributed servers DS1 to 3 may perform batch learning independently until the learning parameters are spread. At this time, the start of each batch learning is irrelevant even if it is not synchronized.
모든 프레임워크부(51~53)는 특정 시간 주기, 학습 주기, 또는 특정 시각에 최신의 학습 파라미터를 확산시킬 수 있다(S820). 본 실시예에서, 모든 프레임워크부(51~53) 각각은 세번째 배치 학습 종료 후에 도출된 제1.3', 제2.3', 및 제3.3' 학습 파라미터(p1.3', p2.3', p3.3')을 다른 분산 서버로 확산시킬 수 있다.All of the framework units 51 to 53 may spread the latest learning parameters at a specific time period, learning period, or specific time (S820). In this embodiment, each of all the framework units 51 to 53 has the 1.3', 2.3', and 3.3' learning parameters (p1.3', p2.3', p3. 3') can be spread to other distributed servers.
학습 파라미터의 확산 이후, 각 프레임워크부는 다음 배치 학습 전에 학습 파라미터들을 통합하여, 각각 제1.4, 제2.4, 및 제3.4 학습 파라미터(p1.4, p2.4, p3.4)로 업데이트할 수 있다. 이 후 각 프레임워크부(51~53)는 다음 학습 파라미터 확산 까지 배치 학습을 진행 수 있다.After spreading the learning parameters, each framework unit may integrate the learning parameters before the next batch learning and update them to the 1.4th, 2.4th, and 3.4th learning parameters (p1.4, p2.4, p3.4), respectively. . Thereafter, each of the framework units 51 to 53 may proceed with batch learning until the next learning parameter diffusion.
도 13을 참조하면, 복수의 분산 서버(41~43) 중 어느 하나, 예를 들어, 제1 분산 서버(41)는 훈련된 모델 아키텍처 및 훈련된 학습 파라미터(p_last)를 아키텍처 테이블 및 학습 파라미터 테이블로 변환하여 이를 훈련된 학습 모델 테이블(추론용 모델 테이블(Ti))로 저장할 수 있다(S670). 저장된 자료는 메인 서버(40)로 전송되거나 동기화될 수 있다.Referring to FIG. 13, any one of the plurality of distributed servers 41 to 43, for example, the first distributed server 41, sets a trained model architecture and a trained learning parameter p_last to an architecture table and a learning parameter table. It can be converted to and stored as a trained learning model table (model table for inference (Ti)) (S670). Stored data may be transmitted to or synchronized with the main server 40 .
도 14를 참조하여, 딥러닝 추론 분산에 대해 설명한다. 이하, 도 10 및 도 11을 참고한다. 단, 딥러닝 추론 분산 시스템의 메인 서버(40)와 복수의 분산 서버(41~43) 환경은 딥러닝 훈련 분산 시스템의 메인 서버(40) 및 복수의 분산 서버(41~43) 환경은 상이할 수 있다. 메인 서버(40)와 복수의 분산 서버(41~43)는 각각 통합부(320, 320-N)를 구비하지 않을 수 있다. 메인 서버(40)와 복수의 분산 서버(41~43)는 상호 호환될 수 있다.Referring to FIG. 14, deep learning inference variance will be described. Hereinafter, reference is made to FIGS. 10 and 11 . However, the environment of the main server 40 and the plurality of distributed servers 41 to 43 of the deep learning inference distribution system may be different from the environment of the main server 40 and the plurality of distributed servers 41 to 43 of the deep learning training distribution system. can The main server 40 and the plurality of distributed servers 41 to 43 may not include the integration units 320 and 320-N, respectively. The main server 40 and the plurality of distributed servers 41 to 43 may be compatible with each other.
도 14를 참조하면, 단말기(20)로부터 학습 쿼리와 동일한 기능의 딥러닝 추론 쿼리를 입력 받을 수 있다(S710). 본 실시예에서 메인 서버(40)는 딥러닝을 할 수 있는 제1 분산 서버(41)과 동일하다고 가정하면, 본 딥러닝 추론 쿼리는 메인 서버(40)이 수신할 수 있다. 이하, 메인 서버(40)에서 딥러닝 추론이 수행된다고 본다.Referring to FIG. 14 , a deep learning inference query having the same function as the learning query may be input from the terminal 20 (S710). In this embodiment, assuming that the main server 40 is the same as the first distributed server 41 capable of deep learning, the main server 40 can receive the deep learning inference query. Hereinafter, it is assumed that deep learning inference is performed in the main server 40 .
메인 서버(40)는 저장부(200)에 추론용 데이터셋 테이블을 구비할 수 있다. 메인 서버(40)는 추론용 데이터셋의 데이터를 쿼리를 통해 입력 받거나, 다른 장치로부터 입력 받을 수 있다.The main server 40 may have a dataset table for reasoning in the storage unit 200 . The main server 40 may receive data of a dataset for inference through a query or may receive input from another device.
메인 서버(40)는 입력 받은 학습 쿼리와 동일한 기능의 딥러닝 추론 쿼리를 분석하여, 기 학습된 추론용 모델 테이블(Ti)을 선택할 수 있다(S715). 추론용 모델 테이블(Ti)은 딥러닝 추론 쿼리의 내용에 기술되어 있을 수 있다.The main server 40 may analyze a deep learning inference query having the same function as the input learning query and select a pre-learned model table Ti for inference (S715). The model table (Ti) for inference may be described in the contents of a deep learning inference query.
메인 서버(40)의 메인 프레임워크부(50)는 추론용 모델 테이블(Ti)의 아키텍처 테이블을 메인 프레임워크부(50)에 적합한 추론용 모델 아키텍처로 구축하고, 추론용 모델 아키텍처에 학습 파라미터를 할당하여 추론용 학습 모델을 생성할 수 있다(S720).The main framework unit 50 of the main server 40 builds the architecture table of the model table for inference (Ti) into a model architecture for inference suitable for the main framework unit 50, and assigns learning parameters to the model architecture for inference. It is possible to generate a learning model for inference by assigning (S720).
메인 서버(40)는 추론 분산이 필요한지 판단할 수 있다(S725). The main server 40 may determine whether reasoning distribution is necessary (S725).
추론 분산은 딥러닝을 수행하기 위한 복수의 태스크 중 일부를 다른 장치에서 수행하는 것을 의미할 수 있다. 복수의 태스크는 하나의 학습 모델을 위한 일련의 과정이거나, 복수의 학습 모델 각각의 태스크들의 집합일 수 있다. 전자(1개 학습 모델)의 경우 복수의 태스크는 순서대로 진행되어야 하므로, 하나의 장치에서 일부 태스크를 수행한 후에 다른 장치에서 나머지 태스크들을 수행할 수 있다. 후자(복수 학습 모델)의 경우, 어느 학습 모델의 태스크들인 태스크 그룹 별로 다른 장치에 수행되도록 할 수 있다. 이 때, 상위 그룹에 속하는 학습 모델의 태스크 그룹을 먼저 수행한 후, 하위 그룹에 속하는 학습 모델의 태스크 그룹을 수행할 수 있다. 후자는 전자의 분산 개념을 포함할 수 있다. 본 실시예에서는 전자를 기초로 설명하나, 후자의 개념이 포함됨은 당연하다. 그리고, 기본적으로 분산 처리되는 태스크들은 일련의 태스크들이어야 한다. 일련의 태스크들은 각각 선후 관계이며, 서로 직접 연결되어 있는 것을 의미한다. 예를 들어, 일련의 태스크들에 속하는 어느 태스크의 결과값은 일련의 태스크에 속하는 다음 태스크의 입력값이어야 한다.Inference distribution may mean performing some of a plurality of tasks for performing deep learning on another device. The plurality of tasks may be a series of processes for one learning model or a set of tasks of each of the plurality of learning models. In the case of the former (one learning model), multiple tasks must be performed in sequence, so that after performing some tasks on one device, the remaining tasks can be performed on another device. In the case of the latter (multiple learning model), tasks of a certain learning model may be performed in different devices for each task group. In this case, a task group of a learning model belonging to a higher group may be performed first, and then a task group of a learning model belonging to a lower group may be performed. The latter may include the former concept of dispersion. In this embodiment, the description is based on the former, but it is natural that the latter concept is included. And, basically, distributed processing tasks must be a series of tasks. A series of tasks are each in a precedence relationship, meaning that they are directly connected to each other. For example, the output value of a task belonging to a series of tasks must be the input value of the next task belonging to a series of tasks.
추론 분산 필요 환경은 다양할 수 있다.Inference distribution requirements can vary.
추론 분산 필요 환경의 제1례로, 메인 서버(40)에서의 일련의 태스크 수행 시간 보다 제1 분산 서버(41)에서의 일련의 태스크 수행 시간이 더 짧은 경우일 수 있다. 이 때, 추론 분산 환경 전송 및 일련의 태스크의 마지막 결과값을 전송하는 시간이 고려될 수 있다. 이를 위해, 메인 서버(40)과 제1 분산 서버(41)는 고속 와이파이나 5G, 6G 등의 고속 이동 통신망으로 연결되는 것이 바람직하다. 메인 서버(40)가 모바일 장치나 임베디드 장치와 같이 컴퓨팅 사양이 낮을 경우, 및/또는 제1 분산 서버(41)의 컴퓨팅 사양이 높을 경우, 추론 분산이 필요할 수 있다. 이러한 환경은 특히, 엣지 컴퓨팅(모바일 엣지 컴퓨팅) 환경에 적합할 수 있다. 엣지 컴퓨닝 환경에서 메인 서버(40)가 엣지 디바이스이고, 제1 분산 서버(41)이 엣지 서버인 경우, 분산 추론이 바람직할 수 있다. 특히, 엣지 컴퓨팅 환경의 경우 엣지 디바이스와 엣지 서버와의 통신 속도가 매우 빠르므로, 본 추론 분산에 적합할 수 있다.As a first example of an environment that requires reasoning distribution, the execution time of a series of tasks in the first distribution server 41 may be shorter than the execution time of a series of tasks in the main server 40 . At this time, the time to transmit the reasoning distribution environment and the last result value of a series of tasks may be considered. To this end, it is preferable that the main server 40 and the first distribution server 41 be connected through a high-speed mobile communication network such as high-speed Wi-Fi or 5G or 6G. If the main server 40 has a low computing specification, such as a mobile device or an embedded device, and/or the first distribution server 41 has a high computing specification, inference distribution may be required. Such an environment may be particularly suitable for an edge computing (mobile edge computing) environment. In an edge computing environment, when the main server 40 is an edge device and the first distribution server 41 is an edge server, distributed inference may be preferable. In particular, in the case of an edge computing environment, since the communication speed between the edge device and the edge server is very fast, it may be suitable for this inference distribution.
추론 분산 필요 환경의 제2례로, 컴퓨팅 사양은 별도로, 각 장치에서의 주된 성능에 따라 달라질 수 있다. 예를 들어, 특정 태스크들이 메인 서버(40)에서 보다 제1 분산 서버(41)에서 처리 속도가 빠를 경우, 해당 특정 태스크들은 제1 분산 서버(41)에서 분산 처리되는 것이 바람직하다.As a second example of an environment requiring distributed reasoning, computing specifications may vary depending on the main performance of each device separately. For example, if the processing speed of specific tasks is faster in the first distribution server 41 than in the main server 40, the corresponding specific tasks are preferably distributed and processed in the first distribution server 41.
추론 분산 필요 환경의 제3례로, 전체 복수의 태스크 중 분리되어 처리될 수 있는 일련의 태스크들을 다른 분산 서버에서 처리되도록 하는 것이다. 예를 들어, 인물의 성별과 나이를 분류하는 학습 모델의 경우, 이는 성별 분류 학습 모델과 나이 분류 학습 모델로 분리될 수 있다. 성별 분류는 제1 분산 서버(41)에서 처리하고, 나이 분류는 제2 분산 서버(42)에서 처리되도록 하면, 딥러닝 수행에 따른 전체 시간을 줄일 수 있다.As a third example of a distributed inference environment, a series of tasks that can be separated and processed among a plurality of tasks are processed in different distributed servers. For example, in the case of a learning model that classifies the gender and age of a person, it may be separated into a gender classification learning model and an age classification learning model. If the gender classification is processed in the first distributed server 41 and the age classification is processed in the second distributed server 42, the total time for performing deep learning can be reduced.
추론 분산 필요 환경의 제4례로, 입력 데이터가 많을 경우, 입력 데이터를 분할하여 각 분할된 입력 데이터를 분산하여 처리되도록 할 수 있다. 본 례는 다른 례와 조합하여 이용될 수 있다. 예를 들어, 입력 데이터를 복잡하지 않은 태스크들로 전처리하는 과정이 있을 경우, 메인 서버(40)에서 전처리 과정을 수행하고 전처리 과정 후 후처리 과정이 필요한 데이터를 다른 분산 서버로 전송할 수 있다. 본 례는 특히, 통신 환경이 빠르지 않을 경우, 유용할 수 있다. 후처리 딥러닝이 필요한 데이터만 분산 서버로 전송하면 되기 때문이다.As a fourth example of an environment requiring distributed reasoning, when there is a lot of input data, the input data may be divided and each divided input data may be distributed and processed. This example can be used in combination with other examples. For example, if there is a process of pre-processing input data with uncomplicated tasks, the main server 40 may perform the pre-processing and transmit data requiring post-processing to other distributed servers after the pre-processing. This example can be especially useful when the communication environment is not fast. This is because only the data that requires post-processing deep learning needs to be transmitted to the distributed server.
추론 분산이 필요하다고 판단되는 경우, 메인 서버(40)는 추론용 모델 테이블(Ti)을 복수의 분산 서버(41~43) 중 적어도 하나로 전송할 수 있다(S730).If it is determined that inference distribution is necessary, the main server 40 may transmit the inference model table Ti to at least one of the plurality of distribution servers 41 to 43 (S730).
메인 서버(40)는 복수의 분산 서버(41~43)에 추론용 모델 테이블(Ti)을 기초로 추론용 학습 모델을 생성하도록 지시할 수 있다.The main server 40 may instruct the plurality of distributed servers 41 to 43 to generate a learning model for inference based on the model table Ti for inference.
메인 서버(40)는 추론 분산할 태스크들인 추론 분산 범위 및 추론 분산할 분산 서버를 구비하는 추론 분산 환경을 결정할 수 있다(S735). 메인 서버(40)는 추론 분산 환경에 기초하여, 추론 분산할 분산 서버에 분산 처리를 지시할 수 있다(S740). 분산 처리 지시에 대한 자세한 설명은 후술한다.The main server 40 may determine a reasoning distribution environment including a reasoning distribution range, which is a task to be distributed inference, and a distribution server for reasoning distribution (S735). Based on the reasoning distribution environment, the main server 40 may instruct distributed processing to distribution servers to distribute inference (S740). A detailed description of the distributed processing instruction will be described later.
추론 분산이 필요 없거나, 추론 분산을 지시하더라도 메인 서버(40)에서 딥러닝 추론의 일부 태스크를 수행할 필요가 있는 경우, 메인 서버(40)는 딥러닝 추론에 따른 태스크 전체 또는 그 일부를 수행할 수 있다(S750). 메인 서버(40)는 생성된 추론용 학습 모델을 이용하여, 추론용 데이터셋 테이블의 데이터에 대해 쿼리 기능의 딥러닝의 전체 또는 일부를 수행할 수 있다.If inference distribution is not required, or if some tasks of deep learning inference need to be performed by the main server 40 even if inference distribution is instructed, the main server 40 may perform all or part of the tasks according to deep learning inference. It can (S750). The main server 40 may perform all or part of the deep learning of the query function on the data of the dataset table for inference using the generated learning model for inference.
메인 서버(40)는 자체 또는 다른 분산 서버에서 완료된 딥러닝 추론에 따른 추론 결과를 취득하여, 이를 저장(S760)하거나 사용자에게 알릴 수 있다.The main server 40 may acquire inference results according to deep learning inference completed by itself or other distributed servers, and store them (S760) or notify the user.
도 20을 참조하면, 메인 서버(40)는 추론 분산이 필요하다고 판단하면, 제1 및 제2 분산 서버(41, 42)에 추론용 학습 모델 테이블(Ti)을 전송할 수 있다(S730).Referring to FIG. 20 , if it is determined that inference distribution is necessary, the main server 40 may transmit the learning model table Ti for inference to the first and second distribution servers 41 and 42 (S730).
제1 및 제2 분산 서버(41, 42)는 메인 서버(40)의 지시에 따라, 추론용 학습 모델 테이블(Ti)을 이용하여 추론용 학습 모델을 생성할 수 있다.The first and second distributed servers 41 and 42 may generate a learning model for inference using the learning model table Ti for inference according to instructions from the main server 40 .
도 21을 참조하면, 개략적인 학습 모델의 네트워크 구조(신경망)는 입력층(L_I), 은닉층(L1 ~ L_N), 및 출력층(L_O)을 구비할 수 있다. Referring to FIG. 21 , the network structure (neural network) of the schematic learning model may include an input layer (L_I), hidden layers (L1 to L_N), and an output layer (L_O).
입력층은 추론용 데이터셋으로부터 입력 받을 수 있다.The input layer may receive input from a dataset for inference.
은닉층은 계산이 일어나는 층이다. 은닉층(L1 ~ L_N)은 단일 또는 복수의 레이어로 구성될 수 있다. 원모양은 각 노드를 나타내며, 각 레이어는 노드들의 집합으로 구성될 수 있다. 화살표의 시작은 한 노드의 출력이고, 끝은 한 노드의 입력일 수 있다. The hidden layer is the layer where the computation takes place. The hidden layers (L1 to L_N) may be composed of a single layer or a plurality of layers. A circle shape represents each node, and each layer may be composed of a set of nodes. The beginning of an arrow may be an output of a node, and the end of an arrow may be an input of a node.
출력층은 딥러닝의 결과값으로, 분류해야 하는 값의 개수만큼 출력 노드의 개수를 가질 수 있다.The output layer is a result value of deep learning, and may have as many output nodes as the number of values to be classified.
딥러닝 수행은 복수의 태스크를 구비할 수 있다. 즉, 딥러닝 수행은 복수의 태스크에 의해 단계별로 수행될 수 있다. 복수의 태스크 각각은 다른 태스크와 구별되는 고유 번호를 가질 수 있다. 후술하는 복수의 레이어 각각은 다른 레이어와 구별되는 고유 번호를 가질 수 있다.Performing deep learning may include multiple tasks. That is, deep learning can be performed in stages by a plurality of tasks. Each of the plurality of tasks may have a unique number distinguished from other tasks. Each of a plurality of layers described later may have a unique number distinguished from other layers.
복수의 태스크는 어느 한 학습 모델에 종속되지 않고, 쿼리 기능을 수행하기 위한 모든 태스크를 의미할 수 있다. 쿼리의 기능이 복수의 세부 기능으로 분류되어, 복수의 학습 모델로 딥러닝 추론이 이루어질 수 있다. 이 경우, 복수의 태스크는 복수의 학습 모델 중 제1 학습 모델의 제1 태스크 그룹, 및 제2 학습 모델의 제2 태스크 그룹을 모두 포함할 수 있다.A plurality of tasks may refer to all tasks for performing a query function without being dependent on any one learning model. The function of the query is classified into a plurality of detailed functions, and deep learning inference can be performed with a plurality of learning models. In this case, the plurality of tasks may include both a first task group of a first learning model and a second task group of a second learning model among the plurality of learning models.
도 21 내지 도 22를 참조하면, 학습 모델의 복수의 레이어 중 특정 레이어의 노드들에서 연산되는 것은 하나의 태스크와 대응될 수 있다.Referring to FIGS. 21 and 22 , operations performed at nodes of a specific layer among a plurality of layers of a learning model may correspond to one task.
예를 들어, 레이어 1(L1)의 제1 출력 값들(R1)은 레이어 2(L2)의 제2 입력 값들이 될 수 있다. 레이어 2(L2)에서 제1 출력 값들(R1)이 연산되어 제2 출력 값들(R2)로 출력될 수 있다. 제2 입력 값들(R1)에서 제2 출력 값들(R2)로 연산되는 과정은 태스크 2(T2)로 칭할 수 있다. 제2 출력 값들은 태스크 2(T2)의 결과값 리스트 2(R2)로 칭할 수 있다. 결과값 리스트는 태스크 고유 번호와 대응하며, 다른 결과값 리스트와 구별되는 고유 번호를 구비할 수 있다.For example, first output values R1 of layer 1 (L1) may become second input values of layer 2 (L2). In the layer 2 (L2), the first output values R1 may be calculated and output as second output values R2. A process of calculating second input values R1 to second output values R2 may be referred to as task 2 (T2). The second output values may be referred to as result value list 2 (R2) of task 2 (T2). The result value list corresponds to the task specific number and may have a unique number distinguished from other result value lists.
N 개의 레이어가 있다면, N 개의 태스크가 있을 수 있다. 제어부(100)는, 도 22의 우측과 같이, 복수의 태스크(T1 ~ T_N)의 복수의 결과값 리스트(R1 ~ R_N)를 관계형 구조의 중간 결과값 테이블(T_R)로 저장할 수 있다.If there are N layers, there can be N tasks. As shown on the right side of FIG. 22 , the controller 100 may store the plurality of result value lists R1 to R_N of the plurality of tasks T1 to T_N as an intermediate result value table T_R having a relational structure.
도 23을 참조하면, 은닉층의 각각의 레이어(L1 ~ L_N)는 네트워크 테이블(T_NW)의 행들(H1 ~ H_N)에 대응될 수 있다. 따라서, 복수의 레이어의 고유 번호, 복수의 태스크 고유 번호, 및 복수의 행번호는 서로 대응될 수 있다. 예를 들어, 레이어 2(L2), 태스크 2(T2), 및 행번호 2(H2)는 서로 대응될 수 있다. Referring to FIG. 23 , each layer L1 to L_N of the hidden layer may correspond to rows H1 to H_N of the network table T_NW. Accordingly, a plurality of layer-specific numbers, a plurality of task-specific numbers, and a plurality of row numbers may correspond to each other. For example, layer 2 (L2), task 2 (T2), and row number 2 (H2) may correspond to each other.
추론용 학습 모델 테이블(Ti)은 다른 학습 모델 테이블과 구별되는 고유 번호를 가질 수 있다.The inference learning model table (Ti) may have a unique number distinguished from other learning model tables.
도 20을 참조하면, 메인 서버(40)는 메인 서버(40)에서 태스크 일부(T1 ~ T5)를 수행하고, 제1 분산 서버(41)에서 제1 내지 제2 태스크(T6 ~ T10)을 분산 처리하게 결정할 수 있다. 제2 태스크는 태스크 N(T_N)일 수 있다.Referring to FIG. 20 , the main server 40 performs some of the tasks T1 to T5 in the main server 40, and distributes the first to second tasks T6 to T10 in the first distribution server 41. can decide to deal with it. The second task may be task N (T_N).
이를 위해, 메인 서버(40)는 태스크 일부(T1 ~ T5)를 수행(S810)하고, 추론용 학습 모델 테이블(Ti)의 고유 번호(M_ID), 제1 태스크(T6)의 직전 태스크인 제3 태스크(T5)의 결과값 리스트(R5), 및 제2 태스크의 고유 번호(T10)와 대응하는 네트워크 테이블(T_NW)의 제2 행번호(H10)를 제1 분산 서버(41)로 전송할 수 있다(S812).To this end, the main server 40 performs (S810) some of the tasks (T1 to T5), the unique number (M_ID) of the learning model table (Ti) for inference, and the third task immediately before the first task (T6). The result value list R5 of the task T5 and the second row number H10 of the network table T_NW corresponding to the unique number T10 of the second task may be transmitted to the first distribution server 41. (S812).
사용자의 요청 쿼리는 상위의 제1 세부 기능 및 하위의 제2 세부 기능으로 분석될 수 있다. 예를 들어, 요청 쿼리가 인물의 성별 분류일 경우, 상위의 입력 데이터의 인물 검출 기능 및 하위의 인식된 인물의 성별 분류 기능으로 분석될 수 있다. 이 경우, 인물 검출 기능에 대한 딥러닝 추론은 메인 서버(40)에서 수행되고, 검출된 인물의 성별 분류 기능에 대한 딥러닝 추론은 제1 분산 서버(41)에서 수행될 수 있다. The user's request query may be analyzed into an upper first detailed function and a lower second detailed function. For example, when a request query is a gender classification of a person, it can be analyzed by a person detection function of upper input data and a gender classification function of a lower level recognized person. In this case, the deep learning inference for the person detection function may be performed in the main server 40, and the deep learning inference for the gender classification function of the detected person may be performed in the first distributed server 41.
또 다른 예로, 메인 서버(40)는 추론용 데이터에 대해 전처리 감지 기능의 딥러닝을 수행하여 추론용 데이터에 메인 기능의 딥러닝이 필요한 경우에만, 제1 분산 서버(41)로 쿼리 기능의 딥러닝이 수행되도록 할 수 있다. 전처리 감지 기능은 메인 기능인 사용자가 요청한 쿼리의 기능의 딥러닝이 필요한지 감지하는 기능을 의미할 수 있다. 예를 들어, 요청 쿼리가 인물 성별 분류일 경우, 전처리 감지 기능은 입력 이미지에 인물이 존재하는 지 감지하는 기능일 수 있다. 인물이 존재하지 않는 이미지는 요청 쿼리의 딥러닝을 수행하지 않으므로, 시간이 단축되며 통신 대역을 적게 사용할 수 있다.As another example, the main server 40 performs deep learning of the pre-processing detection function on data for inference, and only when deep learning of the main function is required for the data for inference, the first distributed server 41 performs deep learning of the query function. running can be performed. The pre-processing detection function may refer to a function of detecting whether a deep learning function of a query requested by a user, which is a main function, is required. For example, if the request query is a person's gender classification, the pre-processing detection function may be a function of detecting whether a person exists in an input image. Since deep learning of the request query is not performed for images without people, time is shortened and communication bandwidth can be reduced.
제1 분산 서버(41)는 메인 서버(40)로부터 추론용 학습 모델 테이블(Ti)의 고유 번호(M_ID), 및 제3 결과값 리스트(R5)를 수신하면, 제3 결과값 리스트(R5)를 복수의 태스크 중 일련의 최초 태스크(T1) 내지 제4 태스크(T5)가 수행된 결과값 리스트(R5)로 결정할 수 있다.When the first distribution server 41 receives the unique number (M_ID) of the learning model table (Ti) for inference and the third result value list (R5) from the main server 40, the third result value list (R5) may be determined as a list of result values (R5) in which the first task (T1) to the fourth task (T5) of a plurality of tasks are performed.
복수의 네트워크 테이블 중 제6 행번호(H6)는 제3 행번호(H5)의 직후에 배치된 것이다.Among the plurality of network tables, the sixth row number H6 is immediately after the third row number H5.
제1 분산 서버(41)는 태스크 지시 종료행인 네트워크 테이블(T_NW)의 제2 행번호(H10)를 더 수신하면, 제1 분산 서버(41)의 제1 프레임워크부(51)에서 제3 결과값 리스트(R5)를 입력으로 하고, 네트워크 테이블(T_NW)의 제6 행번호(H6) 내지 제2 행번호(H10)와 관련된 연산을 수행할 수 있다(S814). 즉 제1 분산 서버(41)는 기 생성된 추론용 학습 모델 중(Ti) 제1 내지 제2 태스크(T6 ~ T10)을 분산 처리할 수 있다.When the first distribution server 41 further receives the second row number H10 of the network table T_NW, which is the task instruction end row, the first framework unit 51 of the first distribution server 41 obtains a third result. Using the value list R5 as an input, operations related to the sixth row numbers H6 to second row numbers H10 of the network table T_NW may be performed (S814). That is, the first distribution server 41 may distribute and process the first to second tasks T6 to T10 of the pre-generated inference learning model (Ti).
네트워크 테이블(T_NW)의 제6 행번호(H6) 내지 제2 행번호(H10)의 연산이 종료되면, 제1 분산 서버(41)는 제2 결과값 리스트(R2)를 메인 서버(40)으로 전송할 수 있다(S816-1). 본 실시예는 제2 태스크(T10)가 최종 태스크인 경우, 또는 메인 서버(40)에서 다른 태스크를 수행할 필요가 있을 때 본 절차가 수행될 수 있다.When the operation of the sixth row number (H6) to the second row number (H10) of the network table (T_NW) is completed, the first distribution server 41 transfers the second result value list (R2) to the main server (40). It can be transmitted (S816-1). In this embodiment, this procedure may be performed when the second task T10 is the final task or when another task needs to be performed in the main server 40 .
다른 실시예로, 메인 서버(40)는 제1 분산 서버(41)가 제2 분산 서버(42)로, 네트워크 테이블 고유 번호(M_ID), 제2 태스크(T10)의 제2 결과값 리스트(R10) 및 태스크 지시 종료행인 제7 행번호(H_N)를 전송하도록 하면, 제1 분산 서버(41)는 제6 행번호(H6) 내지 제2 행번호(H10)의 연산을 수행(S814) 후 메인 서버(40)의 지시를 수행할 수 있다(S816-2). 메인 서버(40)의 쿼리 분석부(110)는 사용자 요청 쿼리를 3단계의 세부 기능으로 분석 및/또는 추출할 수 있다.In another embodiment, the main server 40 is the first distribution server 41 to the second distribution server 42, the network table identification number (M_ID), the second result value list (R10) of the second task (T10) ) and the seventh row number (H_N), which is the end row of the task instruction, the first distribution server 41 performs operation of the sixth row number (H6) to the second row number (H10) (S814), and then the main Instructions of the server 40 may be executed (S816-2). The query analyzer 110 of the main server 40 may analyze and/or extract a user-requested query in three stages of detailed functions.
예를 들어, 쿼리가 인물의 성별 분류 기능일 경우, 쿼리 분석부(110)는 요청 쿼리를 상위의 인물 존재 감지 기능, 다음 단계의 인물 검출 기능, 및 하위의 검출된 인물의 성별 분류 기능으로 추출할 수 있다. 입력 데이터인 이미지 파일에 인물이 존재하는 지 여부는 메인 서버(40)에서 딥러닝 추론하고, 인물이 존재하는 이미지 파일에서 인물 검출 기능은 제1 분산 서버(41)에서 딥러닝 추론하고, 검출된 이미지의 성별을 분류 기능은 제2 분산 서버(42)에서 딥러닝 추론할 수 있다. 이를 통해, 각 서버에서의 처리양이 줄어 시간이 단축될 수 있으며, 분산 서버에서 인물이 있는 이미지만 처리하므로 처리 시간이 더 단축될 수 있다.For example, when the query is a gender classification function of a person, the query analyzer 110 extracts the requested query into a higher level person presence detection function, a next level person detection function, and a lower level detected person gender classification function. can do. The main server 40 performs deep learning inference on whether or not a person exists in the image file, which is the input data, and the person detection function in the image file in which the person exists is performed by deep learning inference in the first distributed server 41, and the detected The function of classifying the gender of the image may be inferred by deep learning in the second distributed server 42 . Through this, processing time can be reduced by reducing the amount of processing in each server, and processing time can be further shortened because only images with people are processed in distributed servers.
제2 분산 서버(42)는 추론용 학습 모델 테이블(Ti)의 고유 번호(M_ID), 제2 결과값 리스트(R10), 네트워크 테이블(T_NW)의 제7 행번호(H_N)를 수신하면, 제2 결과값 리스트(R10)를 입력으로 하고 네트워크 테이블(T_NW)의 행번호 11(H11) 부터 행번호 N(H-N) 까지와 관련된 연산을 수행할 수 있다(S818). 즉, 제2 분산 서버(42)는 기 생성된 추론용 학습 모델 테이블(Ti)의 태스크 11 내지 N(T11 ~T_N)을 분산 처리할 수 있다.When the second distribution server 42 receives the unique number (M_ID) of the learning model table (Ti) for inference, the second result value list (R10), and the seventh row number (H_N) of the network table (T_NW), 2 The resulting value list (R10) is used as an input and operations related to row numbers 11 (H11) to row numbers N (H-N) of the network table (T_NW) can be performed (S818). That is, the second distribution server 42 may distribute tasks 11 to N (T11 to T_N) of the pre-generated learning model table for inference (Ti).
제2 분산 서버(42)는 분산 처리(S818) 결과인 제7 결과값 리스트(R_N)을 결정하고, 이를 메인 서버(40)으로 전송할 수 있다(S820).The second distribution server 42 may determine a seventh result value list (R_N) as a result of the distribution processing (S818) and transmit it to the main server 40 (S820).
도 24는 본 발명의 다른 실시예에 따른 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버의 일부 구성의 세부 블록도이다.24 is a detailed block diagram of some components of a deep learning framework application database server for classifying gender and age according to another embodiment of the present invention.
도 25는 본 발명의 다른 실시예에 따른 성별 및 나이를 분류하는 방법의 순서도이다.25 is a flowchart of a method of classifying gender and age according to another embodiment of the present invention.
도 26은 도 24 및 도 25의 중간 데이터를 도시한다.Fig. 26 shows the intermediate data of Figs. 24 and 25;
도 1 내지 도 23을 참고한다. 상술한 구성요소와 동일한 명칭의 내용은 상술한 내용을 참고한다.See Figures 1 to 23. For the contents of the same name as the above-mentioned components, refer to the above-mentioned contents.
본 실시예에 따른 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버는 제어부(100), 저장부(200), 프레임워크부(300), 변환부(360), 및 입출력부(370)를 포함할 수 있다. The deep learning framework application database server for classifying gender and age according to the present embodiment includes a control unit 100, a storage unit 200, a framework unit 300, a conversion unit 360, and an input/output unit 370. can include
도 24를 참조하면, 제어부(100)는 쿼리 분석부(110), 데이터셋 관리 모듈(120), 학습 모델 관리 모듈(130), 결과 관리 모듈(160), 및 보조 관리 모듈(170)을 포함할 수 있다. 저장부(200)는 쿼리 분석값(210), 데이터셋 테이블(220), 학습 모델 테이블(230), 학습 결과(260), 맵핑 정보(520), 및 안면 이미지 박스(510)을 포함할 수 있다.Referring to FIG. 24 , the control unit 100 includes a query analysis unit 110, a dataset management module 120, a learning model management module 130, a result management module 160, and an auxiliary management module 170. can do. The storage unit 200 may include a query analysis value 210, a dataset table 220, a learning model table 230, a learning result 260, mapping information 520, and a face image box 510. there is.
도 25 및 도 26을 참조하여, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버의 성별 및 나이를 분류하는 딥러닝 추론을 설명한다.Referring to FIGS. 25 and 26 , deep learning inference for classifying gender and age of the deep learning framework application database server for classifying gender and age will be described.
입출력부(370)는 사용자로부터 추론용 데이터셋의 성별 및 나이 분류 기능의 추론 쿼리를 입력받을 수 있다(S830). 추론용 데이터셋은 추론용 데이터셋 테이블로 저장될 수 있다. 추론용 데이터셋 테이블은 인물이 존부하는 이미지들의 집합일 수 있다. 이하, 입력 데이터로 원본 이미지(500)가 입력된다고 가정한다.The input/output unit 370 may receive an inference query for the gender and age classification function of the dataset for inference from the user (S830). A dataset for inference may be stored as a dataset table for inference. A dataset table for inference may be a set of images in which a person exists. Hereinafter, it is assumed that the original image 500 is input as input data.
쿼리 분석부(110)는 사용자 요청 추론 쿼리를 분석하여 쿼리의 기능을 달성하기 위한 복수의 세부 기능으로 추출할 수 있다(S832). 쿼리 분석부(110)은 추론 쿼리를 복수의 세부 기능으로서 상위 그룹의 안면 검출 기능 및 하위 그룹의 성별 및 나이 분류 기능으로 추출할 수 있다. 성별 및 나이 분류 기능는 하나의 기능, 및 성별과 나이를 각각 분류하는 기능으로 추출될 수 있다. 성별 및 나이 분류는 동일한 순위의 그룹이므로, 하나 또는 두 개 중 어느 것이라도 무방하다. 본 실시예에서는 성별 분류 기능 및 나이 분류 기능의 2 개로 추출된 것으로 가정한다. 본 실시예에서 안면 검출 기능이라고 표시하였지만, 필요에 따라 얼굴이 아닌 인물 전체를 검출하도록 조정할 수 있다.The query analysis unit 110 may analyze the user requested reasoning query and extract a plurality of detailed functions to achieve the function of the query (S832). The query analyzer 110 may extract an inference query as a plurality of detailed functions, such as a face detection function of an upper group and gender and age classification functions of a lower group. The gender and age classification functions may be extracted as one function and a function for classifying gender and age respectively. Since the gender and age classifications are groups of the same rank, either one or two may be used. In this embodiment, it is assumed that two functions are extracted: a gender classification function and an age classification function. Although the face detection function is indicated in this embodiment, it can be adjusted to detect the entire person rather than the face, if necessary.
쿼리 분석부(110)는 추론용 데이터셋에 대해 메인 기능인 사용자 요청 쿼리 기능의 딥러닝 추론이 필요한지 감지하는 최상위 그룹의 전처리 감지 기능을 더 추출할 수 있다. 메인 기능은 복수의 세부 기능 전부를 의미할 수 있다.The query analysis unit 110 may further extract a preprocessing detection function of the highest group for detecting whether deep learning inference of a user-requested query function, which is a main function, is required for an inference dataset. The main function may mean all of a plurality of detailed functions.
저장부(200)는 기 학습된, 안면 검출 기능과 연관된 안면 검출 학습 모델 테이블, 성별 분류 기능과 연관된 성별 분류 학습 모델 테이블, 나이 분류 기능과 연관된 나이 분류 학습 모델 테이블, 및 전처리 감지 기능과 연관된 전처리 감지 학습 모델 테이블을 구비할 수 있다. 학습된 학습 모델 테이블이 없을 경우, 딥러닝 훈련을 통해 학습된 학습 모델 테이블을 추가할 수 있다.The storage unit 200 includes a pre-learned face detection learning model table associated with the face detection function, a gender classification learning model table associated with the gender classification function, an age classification learning model table associated with the age classification function, and preprocessing associated with the preprocessing detection function. A sensing learning model table may be provided. If there is no learned learning model table, you can add a learning model table learned through deep learning training.
학습 모델 관리 모듈(130)은 복수의 학습 모델 테이블 중 기 학습된 전처리 감지 학습 모델, 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블을 선택할 수 있다.The learning model management module 130 may select a previously learned pre-processing detection learning model table, a face detection learning model table, a gender classification learning model table, and an age classification learning model table from among a plurality of learning model tables.
프레임워크부(300)는 추론용 데이터셋 테이블에 대해, 전처리 감지 학습 모델, 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블 각각에 연동하여, 전처리 감지 기능 및 복수의 세부 기능의 딥러닝 추론을 각각 수행할 수 있다. 프레임워크부(300)는 그룹 순위에 따라 학습 모델의 딥러닝 추론을 하는 것이 바람직하다. 본 실시예에서 각 그룹은 최상위, 상위, 및 하위 그룹 순서로 순위를 가질 수 있다. 즉, 각 모델은 제1 순위인 전처리 감지 기능, 제2 순위인 안면 검출 기능, 및 제3 순위인 성별 및 나이 분류 기능의 순서를 가질 수 있다.The framework unit 300 interlocks the preprocessing detection learning model table, the face detection learning model table, the gender classification learning model table, and the age classification learning model table, respectively, with respect to the dataset table for inference, so as to obtain a preprocessing detection function and a plurality of details. Each function can perform deep learning inference. The framework unit 300 preferably performs deep learning inference of the learning model according to the group rank. In this embodiment, each group may have a rank in the order of the highest group, the highest group, and the lowest group. That is, each model may have a preprocessing detection function as a first priority, a face detection function as a second priority, and a gender and age classification function as a third priority.
프레임워크부(300)는 제1 순위 학습 모델인 전처리 감지 학습 모델을 이용하여, 원본 이미지(500)에 안면이 있는지 감지하는 딥러닝 추론을 할 수 있다(S834).The framework unit 300 may perform deep learning inference for detecting whether there is a face in the original image 500 by using a preprocessing detection learning model that is a first-order learning model (S834).
원본 이미지(500)에 안면이 없을 경우(S836), 원본 이미지(500)에 대한 딥러닝을 중지하고, 다음 입력 데이터에 대해 전처리 감지 기능의 딥러닝 추론을 진행할 수 있다.If there is no face in the original image 500 (S836), deep learning on the original image 500 may be stopped, and deep learning inference of a preprocessing detection function may be performed on the next input data.
원본 이미지(500)에 안면이 있을 경우(S836), 나머지 복수의 세부 기능의 딥러닝 추론을 진행할 수 있다.If there is a face in the original image 500 (S836), deep learning inference of the remaining plurality of detailed functions may be performed.
프레임워크부(300)는 제2 순위 학습 모델인 안면 검출 학습 모델을 이용하여 원본 이미지(500)에 안면을 검출하는 딥러닝 추론할 수 있다(S836). 안면 검출은 안면이 있는 부분을 포함하는 사각형과 같이 영역을 정의하고, 원본 이미지(500)에서 사각형 영역의 위치 좌표를 추출하는 것을 의미할 수 있다.The framework unit 300 may perform deep learning inference for detecting a face in the original image 500 using a face detection learning model, which is a second rank learning model (S836). Face detection may mean defining a region such as a rectangle including a face portion and extracting position coordinates of the rectangle region from the original image 500 .
보조 관리 모듈(170)은 검출된 안면 부분을 크롭하여 안면 이미지 박스(510)를 생성할 수 있다(S840). 안면 이미지 박스(510)은 다음 순위의 세부 기능의 딥러닝 추론의 입력값이 될 수 있다.The auxiliary management module 170 may generate a face image box 510 by cropping the detected face part (S840). The face image box 510 may be an input value for deep learning inference of a detailed function of the next priority.
보조 관리 모듈(170)은 원본 이미지(500)와 안면 이미지 박스(510)의 관계를 맵핑하는 맵핑 정보(520)을 생성할 수 있다(S842).The auxiliary management module 170 may generate mapping information 520 mapping a relationship between the original image 500 and the face image box 510 (S842).
맵핑 정보(520)는 박스 ID(523), 이미지 ID(521), 및 위치 정보(525)를 구비할 수 있다. 맵핑 정보(520)는 관계형 데이터베이스 형식일 수 있다.The mapping information 520 may include a box ID 523 , an image ID 521 , and location information 525 . The mapping information 520 may be in the form of a relational database.
박스 ID(523)는 안면 이미지 박스(510)의 고유 번호로, 식별자로 기능할 수 있다. 이미지 ID(521)는 박스 ID(523)에 연관되며, 원본 이미지(500)의 고유 번호이다. 위치 정보(525)는 박스 ID(523)에 대해, 원본 이미지(500)에 맵핑되는 안면 이미지 박스(510)의 위치에 대한 정보이다. 안면 이미지 박스(510)가 안면을 구비한 사각형 영역이라면, 위치 정보(525)는 사각형의 대각하는 두 개의 꼭지점의 x, y 좌표일 수 있다.The box ID 523 is a unique number of the face image box 510 and may function as an identifier. The image ID 521 is related to the box ID 523 and is a unique number of the original image 500. The location information 525 is information about the location of the face image box 510 mapped to the original image 500 with respect to the box ID 523 . If the face image box 510 is a rectangular area including a face, the location information 525 may be x and y coordinates of two diagonal vertices of the rectangle.
프레임워크부(300)는 제3 순위 학습 모델인 성별 분류 학습 모델을 이용하여, 안면 이미지 박스(510)에 대한 성별을 분류할 수 있다(S844).The framework unit 300 may classify the gender of the face image box 510 using the gender classification learning model that is the third ranking learning model (S844).
보조 관리 모듈(170)은 안면 이미지 박스(510)의 성별에 대한 정보를 맵핑 정보(520)에 맵핑하여, 맵핑 정보(520)을 갱신할 수 있다(S846). 맵핑은 안면 이미지 박스(510)의 박스 ID(523)에 성별 값(527)을 연관시키는 것을 의미할 수 있다.The auxiliary management module 170 may update the mapping information 520 by mapping information about the gender of the face image box 510 to the mapping information 520 (S846). Mapping can mean associating the gender value 527 to the box ID 523 of the face image box 510 .
프레임워크부(300)는 제3 순위 학습 모델인 나이 분류 학습 모델을 이용하여, 안면 이미지 박스(510)에 대한 나이를 분류할 수 있다(S848).The framework unit 300 may classify the age of the face image box 510 using an age classification learning model that is a third ranking learning model (S848).
보조 관리 모듈(170)은 안면 이미지 박스(510)의 나이에 대한 정보를 맵핑 정보(520)에 맵핑하여, 맵핑 정보(520)을 갱신할 수 있다(S850). 맵핑은 안면 이미지 박스(510)의 박스 ID(523)에 나이 값(529)을 연관시키는 것을 의미할 수 있다.The auxiliary management module 170 may update the mapping information 520 by mapping information about the age of the face image box 510 to the mapping information 520 (S850). Mapping can mean associating the age value 529 to the box ID 523 of the face image box 510 .
데이터셋 관리 모듈(120)은 원본 이미지(500) 및 원본 이미지(500)의 이미지 ID(521)를 구비한 맵핑 정보(520)의 안면 이미지 박스(510)의 위치 정보(525), 성별 값(527), 및 나이 값(529)를 이용하여, 상기 원본 이미지(500)에 인물의 성멸 및 나이를 부기하여 결과 이미지(540)를 생성할 수 있다(S852).The dataset management module 120 provides the location information 525 of the face image box 510 of the mapping information 520 having the original image 500 and the image ID 521 of the original image 500, the gender value ( 527), and the age value 529, the character's age and age may be added to the original image 500 to generate the resulting image 540 (S852).
본 실시예에 따른 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버는 상술한 딥러닝 추론에 따른 복수의 태스크 중 일부인 일련의 태스크들을 복수의 분산 서버(41~43) 중 적어도 어느 하나에 수행하도록 하여, 딥러닝 추론을 분산 처리할 수 있다. 또한, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버는 미 학습된 학습 모델에 대해 딥러닝 훈련을 복수의 분산 서버(41~43)와 분산하여 진행 할 수 있다.The deep learning framework application database server for classifying gender and age according to the present embodiment performs a series of tasks, which are part of a plurality of tasks according to the above-described deep learning inference, on at least one of the plurality of distributed servers 41 to 43. By doing so, deep learning inference can be distributed. In addition, the deep learning framework application database server that classifies gender and age can conduct deep learning training for an untrained learning model by distributing it with a plurality of distributed servers 41 to 43.
상기 본 발명은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 구현은 상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 즉, 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터가 읽을 수 있는 명령어, 데이터 구조, 프로그램 모듈, 및 기타 데이터 등 정보 저장을 위한 임의의 방법 또는 기술로서 구현된 모든 저장 가능한 매체를 포함하는 것으로, 휘발성/비휘발성/하이브리드형 메모리 여부, 분리형/비분리형 여부 등에 한정되지 않는다. 통신 저장 매체 는 반송파와 같은 변조된 데이터 신호 또는 전송 메커니즘, 임의의 정보 전달 매체 등을 포함한다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The present invention may be implemented in hardware or software. In implementation, the present invention can also be implemented as computer readable codes on a computer readable recording medium. That is, it may be implemented in the form of a recording medium including instructions executable by a computer. Computer readable media includes all types of media in which data that can be read by a computer system is stored. Computer readable media may include computer storage media and communication storage media. Computer storage media includes all storable media implemented as any method or technology for storing information, such as computer readable instructions, data structures, program modules, and other data, and includes volatile/nonvolatile/hybrid memory. It is not limited to whether or not, separable/non-separable. Communication storage media includes modulated data signals or transmission mechanisms such as carrier waves, any information delivery media, and the like. In addition, functional programs, codes, and code segments for implementing the present invention can be easily inferred by programmers in the technical field to which the present invention belongs.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.In addition, although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims. Of course, various modifications are possible by those skilled in the art, and these modifications should not be individually understood from the technical spirit or perspective of the present invention.
<부호의 설명><Description of codes>
10: DB 서버 20: 단말기10: DB server 20: terminal
40: 메인 서버 41: 제1 분산 서버40: main server 41: first distributed server
42: 제2 분산 서버 43: 제3 분산 서버42: second distributed server 43: third distributed server
51: 제1 프레임워크부 52: 제2 프레임워크부51: first framework unit 52: second framework unit
53: 제3 프레임워크부 100: 제어부53: third framework unit 100: control unit
110: 쿼리 분석부 120: 데이터셋 관리 모듈110: query analysis unit 120: dataset management module
130: 학습 모델 관리 모듈 160: 결과 관리 모듈130: learning model management module 160: result management module
170: 보조 관리 모듈 200: 저장부170: auxiliary management module 200: storage unit
300: 프레임워크부 310: QML 모듈300: framework unit 310: QML module
320: 통합부 360: 변환부320: integration unit 360: conversion unit

Claims (13)

  1. 사용자로부터 추론용 데이터셋의 성별 및 나이 분류 기능의 추론 쿼리를 입력받는 입출력부;an input/output unit that receives an inference query for a gender and age classification function of an inference dataset from a user;
    상기 쿼리를 분석하여 상기 쿼리의 기능을 달성하기 위한 복수의 세부 기능으로 추출하는 쿼리 분석부;a query analyzer for analyzing the query and extracting a plurality of detailed functions to achieve the function of the query;
    데이터베이스로서, 복수의 학습 모델 테이블 및 데이터셋 테이블을 구비하는 저장부; 및A database comprising: a storage unit having a plurality of learning model tables and a data set table; and
    상기 데이터베이스와 연동하고, 상기 학습 모델 테이블 및 상기 데이터셋 테이블을 이용하여 상기 복수의 세부 기능의 딥러닝을 수행하는 프레임워크부;를 포함하고,A framework unit that interworks with the database and performs deep learning of the plurality of detailed functions using the learning model table and the dataset table;
    상기 쿼리 분석부은 상기 추론 쿼리를 상기 복수의 세부 기능으로서 상위 그룹의 안면 검출 기능 및 하위 그룹의 성별 및 나이 분류 기능으로 추출하고,The query analysis unit extracts the inference query into a face detection function of an upper group and a gender and age classification function of a lower group as the plurality of detailed functions;
    상기 복수의 학습 모델 테이블 중 기 학습된 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블을 선택하는 학습 모델 관리 모듈;를 더 포함하고,A learning model management module for selecting a previously learned face detection learning model table, a gender classification learning model table, and an age classification learning model table from among the plurality of learning model tables;
    상기 프레임워크부는 상기 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블 각각에 연동하여 상기 복수의 세부 기능의 딥러닝 추론을 각각 수행하되, 상기 상위 그룹인 안면 검출 학습 모델 테이블에 따른 안면 검출 학습 모델을 우선으로 딥러닝 추론하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The framework unit performs deep learning inference of the plurality of detailed functions in conjunction with the face detection learning model table, the gender classification learning model table, and the age classification learning model table, respectively, and the face detection learning model table, which is the upper group. A deep learning framework application database server that classifies gender and age, deep learning inference with a face detection learning model based on priority.
  2. 제 1 항에 있어서,According to claim 1,
    상기 추론용 데이터셋을 추론용 데이터셋 테이블로 변환하는 데이터셋 관리 모듈; 및a dataset management module that converts the dataset for inference into a dataset table for inference; and
    상기 프레임워크부에서 상기 안면 검출 학습 모델을 이용하여 상기 추론용 데이터셋 테이블에 구비된 원본 이미지의 안면이 있다고 추론되면, 상기 안면 부분을 크롭하여 안면 이미지 박스를 생성하고, 상기 안면 이미지 박스의 고유 번호인 박스 ID에 상기 원본 이미지의 고유 번호인 이미지 ID를 연관시키고 상기 안면 이미지 박스의 위치 정보를 매핑하는 맵핑 정보를 생성하는 보조 관리 모듈을 더 포함하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.If the framework unit infers that there is a face of the original image included in the dataset table for inference using the face detection learning model, the face part is cropped to create a face image box, and the face image box is unique. A deep learning framework for classifying gender and age, further comprising an auxiliary management module for associating a box ID, which is a number, with an image ID, which is a unique number of the original image, and generating mapping information mapping location information of the face image box. Application database server.
  3. 제 2 항에 있어서,According to claim 2,
    상기 보조 관리 모듈은 상기 프레임워크부에서 상기 성별 분류 학습 모델 테이블 및 상기 나이 분류 학습 모델 테이블에 따른 성별 분류 학습 모델 및 나이 분류 학습 모델을 이용하여 상기 안면 이미지 박스의 인물의 성별 및 나이에 대한 딥러닝 추론되면, 상기 딥러닝 추론된 성별 및 나이를 상기 박스 ID와 맵핑하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The auxiliary management module deepens the gender and age of the person in the face image box by using a gender classification learning model and an age classification learning model according to the gender classification learning model table and the age classification learning model table in the framework unit. A deep learning framework application database server for classifying gender and age, mapping the deep learning inferred gender and age with the box ID when the learning is inferred.
  4. 제 3 항에 있어서,According to claim 3,
    상기 데이터셋 관리 모듈은 상기 원본 이미지 및 상기 원본 이미지의 이미지 ID를 구비한 맵핑 정보의 상기 안면 이미지 박스의 위치 정보를 이용하여, 상기 원본 이미지에 인물의 성멸 및 나이를 부기하여 결과 이미지를 생성하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The dataset management module creates a result image by adding the age and age of the person to the original image using the original image and the location information of the face image box of the mapping information having the image ID of the original image , deep learning framework application database server that classifies gender and age.
  5. 제 1 항에 있어서,According to claim 1,
    상기 쿼리 분석부는 추론용 데이터셋에 대해 메인 기능인 상기 쿼리 기능의 딥러닝 추론이 필요한지 감지하는 전처리 감지 기능을 더 추출하고,The query analysis unit further extracts a preprocessing detection function for detecting whether deep learning inference of the query function, which is a main function, is necessary for the inference dataset,
    상기 저장부는 상기 전처리 감지 기능과 연관된 전처리 감지 학습 모델 테이블을 구비하고,The storage unit includes a preprocessing sensing learning model table associated with the preprocessing sensing function,
    상기 추론용 데이터셋에 대해 상기 전처리 감지 기능의 딥러닝 추론이 수행되도록 하여, 상기 추론용 데이터에 상기 메인 기능의 딥러닝 추론이 필요하다고 분류되면, 상기 추론용 데이터셋에 대한 상기 복수의 세부 기능의 딥러닝 추론되도록 하는 제어부를 더 포함하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.Deep learning inference of the preprocessing detection function is performed on the inference dataset, and when the inference data is classified as requiring deep learning inference of the main function, the plurality of detailed functions of the inference dataset Deep learning framework application database server for classifying gender and age, further comprising a control unit that enables deep learning inference of the.
  6. 제 1 항에 있어서,According to claim 1,
    상기 복수의 세부 기능에 따른 복수의 학습 모델 중 제1 학습 모델은 복수의 태스크를 구비하고,Among the plurality of learning models according to the plurality of detailed functions, a first learning model includes a plurality of tasks,
    상기 복수의 태스크는 상기 제1 학습 모델 테이블에 구비된 네트워크 테이블의 복수의 행과 대응하고,The plurality of tasks correspond to a plurality of rows of a network table provided in the first learning model table,
    상기 복수의 태스크의 각각은 상기 네트워크 테이블의 행번호에 대응하는 고유 번호를 각각 구비하고,Each of the plurality of tasks has a unique number corresponding to a row number of the network table,
    상기 복수의 태스크 중 일련의 제1 내지 제2 태스크를 복수의 분산 서버 중 제1 분산 서버에서 수행하도록 하여 딥러닝 추론을 분산 수행하도록 하는 제어부;를 더 포함하고,A controller configured to perform deep learning inference in a distributed manner by allowing a first to second series of tasks among the plurality of tasks to be performed by a first distributed server among a plurality of distributed servers;
    상기 복수의 분산 서버는 데이터베이스와 연동되는 딥러닝 프레임워크를 각각 구비하고, 상기 제1 학습 모델 테이블을 구비하고,The plurality of distributed servers each have a deep learning framework linked with a database, have the first learning model table,
    상기 제어부는 상기 제1 학습 모델 테이블의 고유 번호, 상기 제1 태스크의 직전 태스크인 제3 태스크의 제3 결과값 리스트, 및 상기 제2 태스크의 고유 번호와 대응하는 상기 네트워크 테이블의 제2 행번호를 상기 제1 분산 서버로 전송하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The control unit may include a unique number of the first learning model table, a third result value list of a third task immediately preceding the first task, and a second row number of the network table corresponding to the unique number of the second task. Deep learning framework application database server for classifying gender and age, which transmits to the first distributed server.
  7. 제 6 항에 있어서,According to claim 6,
    상기 제어부는 상기 복수의 분산 서버 중 제2 분산 서버로부터 상기 학습 모델 테이블의 고유 번호, 상기 복수의 태스크 중 제4 태스크의 제4 결과값 리스트를 수신하면, 상기 제4 결과값 리스트를 상기 복수의 태스크 중 일련의 최초 태스크부터 제4 태스크까지 수행된 결과값 리스트로 결정하고,When the control unit receives a unique number of the learning model table and a fourth result value list of a fourth task among the plurality of tasks from a second distribution server among the plurality of distribution servers, the fourth result value list is converted into the plurality of It is determined as a list of result values performed from the first task to the fourth task in a series of tasks,
    상기 복수의 네트워크 테이블 중 제5 행번호는 상기 제4 행번호의 직후에 배치된 것이고,A fifth row number among the plurality of network tables is immediately after the fourth row number,
    상기 제어부는 상기 제2 분산 서버로부터 태스크 지시 종료행인 제6 행번호를 더 수신하면, 상기 프레임워크부에서 상기 제4 결과값 리스트를 입력으로 하고, 상기 제5 행번호 내지 상기 제6 행번호의 연산을 수행하도록 하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.When the control unit further receives a sixth row number, which is a task instruction end row, from the second distribution server, the framework unit receives the fourth result value list as an input, and the fifth row number to the sixth row number A deep learning framework application database server that classifies gender and age, allowing it to perform computations.
  8. 제 1 항에 있어서,According to claim 1,
    상기 학습 모델 관리 모듈은, 상기 복수의 세부 기능 중 제1 세부 기능에 관련된 기 학습된 제1 학습 모델 테이블이 없는 경우, 상기 제1 세부 기능에 적합한 제2 학습 모델 테이블을 선택하고,The learning model management module selects a second learning model table suitable for the first detailed function when there is no pre-learned first learning model table related to the first detailed function among the plurality of detailed functions;
    상기 제2 학습 모델 테이블은 이와 관련된 훈련용 데이터셋 테이블을 기초로 상기 제1 세부 기능의 딥러닝 훈련으로 상기 제1 학습 모델 테이블로 변환되고,The second learning model table is converted into the first learning model table by deep learning training of the first detailed function based on the related training dataset table,
    상기 딥러닝 훈련은 복수의 분산 서버와 분산 처리되어 수행되고,The deep learning training is performed by being distributed and processed with a plurality of distributed servers,
    상기 복수의 분산 서버는 데이터베이스와 연동되는 딥러닝 프레임워크를 각각 구비하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The plurality of distributed servers each having a deep learning framework interworking with the database, a deep learning framework application database server for classifying gender and age.
  9. 제 8 항에 있어서,According to claim 8,
    상기 훈련용 데이터셋의 배치 사이즈, 상기 제2 학습 모델 테이블, 및 상기 훈련용 데이터셋 테이블을 복수의 분산 서버로 확산하는 제어부를 더 포함하고,Further comprising a controller that spreads the batch size of the training dataset, the second learning model table, and the training dataset table to a plurality of distributed servers,
    상기 딥러닝 프레임워크 응용 데이터베이스 서버는 상기 복수의 분산 서버 중 제1 분산 서버로서 기능하고,The deep learning framework application database server functions as a first distributed server among the plurality of distributed servers,
    상기 제어부는 상기 훈련용 데이터셋 테이블의 데이터 순서를 랜덤하게 변경한 후 상기 배치 사이즈에 맞게 분할하여 배치 데이터셋 테이블로 변환하고,The control unit randomly changes the data order of the training dataset table and converts it into a batch dataset table by dividing it according to the batch size,
    상기 프레임워크부는 상기 제2 학습 모델 테이블에 속한 아키텍처 테이블을 이용하여 모델 아키텍처를 구축하고, 상기 제2 학습 모델 테이블에 속한 학습 파라미터 테이블을 초기화한 후 상기 모델 아키텍처에 할당하여 제2 학습 모델을 생성하고, 상기 제2 학습 모델에 대해 상기 배치 데이터셋 테이블의 복수의 미니 배치를 이용하여 딥러닝 훈련을 수행하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The framework unit builds a model architecture using an architecture table belonging to the second learning model table, initializes a learning parameter table belonging to the second learning model table, and then allocates it to the model architecture to generate a second learning model. And a deep learning framework application database server for classifying gender and age, performing deep learning training using a plurality of mini-batches of the batch dataset table for the second learning model.
  10. 제 9 항에 있어서,According to claim 9,
    상기 프레임워크부는 상기 복수의 미니 배치 중 하나의 미니 배치에 대한 배치 학습이 종료되면 신 학습 파라미터를 도출하고,The framework unit derives a new learning parameter when batch learning for one mini-batch of the plurality of mini-batches ends,
    상기 제어부는 상기 신 학습 파라미터를 상기 복수의 분산 서버의 나머지 분산 서버로 확산하고,The control unit spreads the new learning parameter to the remaining distributed servers of the plurality of distributed servers;
    상기 신 학습 파라미터가 생성되면, 상기 신 학습 파라미터와 상기 나머지 분산 서버에서 확산된 적어도 하나의 학습 파라미터를 통합하여, 다음 배치 학습에 적용할 학습 파라미터로 업데이트하는 통합부를 더 포함하고,When the new learning parameter is generated, further comprising an integration unit for integrating the new learning parameter and at least one learning parameter spread from the remaining distributed servers and updating the learning parameter to be applied to the next batch learning;
    상기 통합부는 할당된 모든 에포크가 종료되면, 상기 프레임워크부에서 도출한 마지막 학습 파라미터와 상기 나머지 분산 서버에서 마지막으로 확산된 적어도 하나의 학습 파라미터을 통합하여 최종 학습 파라미터를 도출하고,When all assigned epochs are completed, the integration unit derives a final learning parameter by integrating the last learning parameter derived from the framework unit and at least one learning parameter finally spread in the remaining distributed servers;
    상기 제어부는 훈련된 모델 아키텍처 및 상기 최종 학습 파라미터를 학습된 상기 제1 학습 모델 테이블로 변환하는, 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버.The control unit converts the trained model architecture and the final learning parameter into the learned first learning model table, deep learning framework application database server for classifying gender and age.
  11. 성별 및 나이를 분류하는 딥러닝 프레임워크 응용 데이터베이스 서버의 추론 방법으로서,As an inference method of a deep learning framework application database server that classifies gender and age,
    사용자로부터 추론용 데이터셋의 성별 및 나이 분류 기능의 추론 쿼리를 입력받는 단계;Receiving an inference query of a gender and age classification function of an inference dataset from a user;
    상기 추론 쿼리를 상위 그룹의 안면 검출 기능 및 하위 그룹의 성별 및 나이 분류 기능인 복수의 세부 기능으로 추출하는 단계;extracting the inference query into a plurality of detailed functions, which are a face detection function of an upper group and a gender and age classification function of a lower group;
    기 학습된 안면 검출 학습 모델 테이블, 성별 분류 학습 모델 테이블, 및 나이 분류 학습 모델 테이블을 선택하는 단계;selecting a pre-learned face detection learning model table, gender classification learning model table, and age classification learning model table;
    상기 상위 그룹에 해당하는 기능의 딥러닝 추론 및 상기 하위 그룹에 해당하는 기능의 딥러닝 추론 순으로 딥러닝 수행하는 단계;를 포함하는, 방법.And performing deep learning in the order of deep learning inference of the function corresponding to the upper group and deep learning inference of the function corresponding to the lower group.
  12. 제 11 항에 있어서,According to claim 11,
    상기 추론용 데이터셋을 추론용 데이터셋 테이블로 변환하는 단계;converting the dataset for inference into a dataset table for inference;
    상기 안면 검출 학습 모델 테이블에 따른 안면 검출 학습 모델을 이용하여 상기 추론용 데이터셋 테이블에 구비된 원본 이미지에 대한 안면 검출 기능의 딥러닝 추론하는 단계;deep learning inference of a face detection function for an original image provided in the dataset table for inference using a face detection learning model according to the face detection learning model table;
    상기 원본 이미지에 안면이 있다고 추론되면, 상기 안면 부분을 크롭하여 안면 이미지 박스를 생성하는 단계;generating a face image box by cropping the face portion if it is inferred that the original image has a face;
    상기 안면 이미지 박스의 고유 번호인 박스 ID에 상기 원본 이미지의 고유 번호인 이미지 ID를 연관시켜 맵핑 정보을 생성하는 단계; 및generating mapping information by associating an image ID, which is a unique number of the original image, with a box ID, which is a unique number of the face image box; and
    상기 박스 ID를 구비한 맵핑 정보에 상기 안면 이미지 박스의 위치 정보를 추가하는 단계;를 더 포함하는, 방법.Adding location information of the face image box to mapping information having the box ID;
  13. 제 12 항에 있어서,According to claim 12,
    상기 성별 분류 학습 모델 테이블 및 상기 나이 분류 학습 모델 테이블에 따른 성별 분류 학습 모델 및 나이 분류 학습 모델을 이용하여 상기 안면 이미지 박스의 인물의 성별 및 나이에 대한 딥러닝 추론하는 단계; performing deep learning inference on the gender and age of the person in the face image box using a gender classification learning model and an age classification learning model according to the gender classification learning model table and the age classification learning model table;
    상기 딥러닝 추론된 성별 및 나이를 상기 박스 ID를 구비한 맵핑 정보에 추가하는 단계; 및adding the sex and age deduced by deep learning to the mapping information including the box ID; and
    상기 원본 이미지 및 상기 원본 이미지의 이미지 ID를 구비한 맵핑 정보의 상기 안면 이미지 박스의 위치 정보를 이용하여, 상기 원본 이미지에 인물의 성멸 및 나이를 부기하여 결과 이미지를 생성하는 단계를 더 포함하는, 방법.Generating a resultant image by adding the age and age of the person to the original image using the original image and positional information of the face image box of mapping information having an image ID of the original image, method.
PCT/KR2021/015950 2021-11-04 2021-11-04 Deep learning framework application database server for classifying gender and age, and method therefor WO2023080275A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210150813A KR20230065037A (en) 2021-11-04 2021-11-04 Database server applicated deep learning framework for classifying gender and age, and method thereof
KR10-2021-0150813 2021-11-04

Publications (1)

Publication Number Publication Date
WO2023080275A1 true WO2023080275A1 (en) 2023-05-11

Family

ID=86241691

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/015950 WO2023080275A1 (en) 2021-11-04 2021-11-04 Deep learning framework application database server for classifying gender and age, and method therefor

Country Status (2)

Country Link
KR (1) KR20230065037A (en)
WO (1) WO2023080275A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190081373A (en) * 2017-12-29 2019-07-09 (주)제이엘케이인스펙션 Terminal device and data processing method based on artificial neural network
US20200012892A1 (en) * 2018-07-06 2020-01-09 Capital One Services, LLC. Systems and methods for synthetic database query generation
KR20200010624A (en) * 2018-06-22 2020-01-31 주식회사 링크트리 Big Data Integrated Diagnosis Prediction System Using Machine Learning
KR20200010993A (en) * 2018-07-11 2020-01-31 삼성전자주식회사 Electronic apparatus for recognizing facial identity and facial attributes in image through complemented convolutional neural network
KR20210004036A (en) * 2019-07-03 2021-01-13 아주대학교산학협력단 Method and apparatus for operating independent classification model using metadata

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102058124B1 (en) 2019-01-25 2019-12-23 (주)비아이매트릭스 A system for adding deep-learning forecaset data by using an OLAP data with pivot table

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190081373A (en) * 2017-12-29 2019-07-09 (주)제이엘케이인스펙션 Terminal device and data processing method based on artificial neural network
KR20200010624A (en) * 2018-06-22 2020-01-31 주식회사 링크트리 Big Data Integrated Diagnosis Prediction System Using Machine Learning
US20200012892A1 (en) * 2018-07-06 2020-01-09 Capital One Services, LLC. Systems and methods for synthetic database query generation
KR20200010993A (en) * 2018-07-11 2020-01-31 삼성전자주식회사 Electronic apparatus for recognizing facial identity and facial attributes in image through complemented convolutional neural network
KR20210004036A (en) * 2019-07-03 2021-01-13 아주대학교산학협력단 Method and apparatus for operating independent classification model using metadata

Also Published As

Publication number Publication date
KR20230065037A (en) 2023-05-11

Similar Documents

Publication Publication Date Title
WO2020190112A1 (en) Method, apparatus, device and medium for generating captioning information of multimedia data
WO2020235696A1 (en) Artificial intelligence apparatus for interconverting text and speech by considering style, and method for same
WO2023080276A1 (en) Query-based database linkage distributed deep learning system, and method therefor
WO2020246844A1 (en) Device control method, conflict processing method, corresponding apparatus and electronic device
WO2017171356A1 (en) Method for positioning video, terminal apparatus and cloud server
WO2020091210A1 (en) System and method of integrating databases based on knowledge graph
WO2020235712A1 (en) Artificial intelligence device for generating text or speech having content-based style and method therefor
WO2019182265A1 (en) Artificial intelligence device and method for operating same
WO2020213758A1 (en) Speech-interactive artificial intelligence device and method therefor
WO2010021527A2 (en) System and method for indexing object in image
WO2018199483A1 (en) Method and apparatus for managing intelligent agent
WO2022039334A1 (en) Neural network processing unit
WO2019135621A1 (en) Video playback device and control method thereof
WO2019225961A1 (en) Electronic device for outputting response to speech input by using application and operation method thereof
WO2020036297A1 (en) Electronic apparatus and controlling method thereof
WO2020138564A1 (en) Electronic device
WO2020209693A1 (en) Electronic device for updating artificial intelligence model, server, and operation method therefor
WO2021006404A1 (en) Artificial intelligence server
WO2020184753A1 (en) Artificial intelligence apparatus for performing voice control by using voice extraction filter, and method therefor
WO2020032564A1 (en) Electronic device and method for providing one or more items in response to user speech
WO2022010255A1 (en) Method, system, and computer-readable medium for deriving in-depth questions for automated evaluation of interview video by using machine learning model
WO2020263016A1 (en) Electronic device for processing user utterance and operation method therefor
WO2020218635A1 (en) Voice synthesis apparatus using artificial intelligence, method for operating voice synthesis apparatus, and computer-readable recording medium
WO2021162481A1 (en) Electronic device and control method thereof
WO2020017827A1 (en) Electronic device and control method for electronic device

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: 21963375

Country of ref document: EP

Kind code of ref document: A1