WO2022030669A1 - Query-based deep learning inference system and method therefor - Google Patents

Query-based deep learning inference system and method therefor Download PDF

Info

Publication number
WO2022030669A1
WO2022030669A1 PCT/KR2020/010600 KR2020010600W WO2022030669A1 WO 2022030669 A1 WO2022030669 A1 WO 2022030669A1 KR 2020010600 W KR2020010600 W KR 2020010600W WO 2022030669 A1 WO2022030669 A1 WO 2022030669A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
query
deep learning
model
learning
Prior art date
Application number
PCT/KR2020/010600
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 WO2022030669A1 publication Critical patent/WO2022030669A1/en

Links

Images

Classifications

    • 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
    • G06N20/00Machine learning
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Definitions

  • the present invention relates to a query-based deep learning inference system and a method therefor, and more particularly, a deep learning framework in the form of a plug-in to an information database so that even users without professional knowledge on deep learning can provide necessary information to users without difficulty It relates to a query-based deep learning inference system and a method for inferring data corresponding to the query by learning the data stored in the information database by a user's request query in a deep learning manner.
  • a learning engine based on deep learning technology is being used to provide intelligent functions in various fields such as security, control, autonomous driving, and crime prevention.
  • the learning engine using deep learning shows significantly superior intelligence performance than the learning engine based on other existing AI technologies.
  • An object of the present invention is to solve the above-mentioned problems, that the deep learning framework is connected to the information database in the form of a plug-in so that even users without professional knowledge on deep learning can provide necessary information to the user without difficulty.
  • An object of the present invention is to provide a query-based deep learning inference system and a method for inferring data corresponding to a query by learning data stored in an information database by a request query in a deep learning method.
  • a database for storing a data set, a learning network model, learning parameters and learning results; a deep learning framework connected to the database in a plug-in manner, checking, correcting, and adding new data to information or data stored in the database; and a user terminal that inputs a query through the deep learning framework and receives an inference result corresponding to the query through the deep learning framework from the database.
  • the deep learning framework upon receiving the query, generates a learning network model for checking, modifying, and new learning of the learning network model stored in the database, and according to the input query, information or data and a learning network Execute machine learning by selecting a model and setting learning parameters, providing an intermediate learning result and a final result, select data and a pre-trained learning network model through the input query to execute machine inference, and the inference can provide results.
  • the data set is a set of information or data having the same format, and the information or data may be any type of information or data used in machine learning, including numbers, text, images, images, and audio.
  • the learning network model is a model used for machine learning, and is composed of input/output and parameters defining the inside of the model, and parameters necessary for machine learning and inference, and is stored in the database in a relational data format, and other deep learning through a converter It may be convertible into a framework.
  • the database may store all input/output data used for machine learning and machine inference, store models used for machine learning and machine inference, and provide a procedure corresponding to a user's query request.
  • the procedure is, Insert Network, Insert Layer, Make Project, Input Data Loader, Train, Save Model, and Test ) may be included.
  • the deep learning framework is used for compatibility with external frameworks and includes ONNX, NNEF and learning parameter bias when importing a pre-trained model of an existing framework or exporting information or data from the database to the outside. It can include a model converter that uses the file in a structured format.
  • the model converter may convert a network structure and model data defined in the model format into a network model table format of the database, or vice versa, convert a network model of the database into the model format have.
  • the database may include a dataset table, a network table, a project table, a job table, and a common table.
  • the deep learning framework executes, when a learning query is input from the user terminal (Call Train), network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), initialization for all layers
  • a learning query is input from the user terminal
  • Network network initialization
  • Construct Network Construct Network
  • Update Network network update
  • initialization for all layers When (Initialize all layers) is done, training is executed, and batch data is obtained until the end of training (Get Batch Data), and the result and model are stored by iteration (Store Result & Model), and training is completed when training is finished.
  • a result may be provided to the user terminal.
  • the deep learning framework executes network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), and initialization for all layers
  • the test is executed, the test data is obtained (Get Test Data), the feedforward (feedforward), and the result is stored (Store Result), and the inference result is provided to the user terminal.
  • the query-based deep learning inference method for achieving the above object is a query-based deep learning inference method of a deep learning framework interworking with a user terminal and a database, (a) the deep learning receiving, by the framework, a learning query (Call Train) or an inference query (Call Test) from the user terminal; (b) executing, by the deep learning framework, a network initialization (Init Network), a network configuration (Construct Network) and a network update (Update Network) according to the learning query or the inference query; (c) executing training or inference (Test) when the deep learning framework is initialized for all layers; and (d) providing, by the deep learning framework, a learning result or an inference result to the user terminal at the end of the learning or the inference.
  • a learning query Call Train
  • an inference query Call Test
  • the deep learning framework may obtain batch data (Get Batch Data) and iterate until the end of the learning and store the results and model (Store Result & Model).
  • the deep learning framework may execute the test, obtain test data (Get Test Data), feedforward, and store the inference result (Store Result).
  • step (a) uses a model converter for compatibility with external frameworks, imports a pre-trained model of an existing framework, or exports information or data from the database to the outside It can be converted into a model format through the model converter.
  • the model converter may convert a network structure and model data defined in the model format into a network model table format of the database, or vice versa, convert a network model of the database into the model format have.
  • the deep learning framework is connected to the database in the form of a plug-in, and machine learning, inference, etc. can be performed using data stored in the database according to a user's request query.
  • an inference plan can be created, and the result of the executed inference plan can be checked.
  • 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 flowchart illustrating an execution flow of a query-based machine learning technique according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an internal data flow of a database according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an operation flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating an execution flow of a learning procedure according to an embodiment of the present invention.
  • FIG. 6 is a diagram illustrating an execution flow of an inference procedure according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating a conversion operation of a model converter according to an embodiment of the present invention.
  • FIG. 8 is a diagram schematically illustrating an internal structure of a QML framework according to an embodiment of the present invention.
  • first, second and third etc. are used to describe, but are not limited to, various parts, components, regions, layers and/or sections. These terms are used only to distinguish one part, component, region, layer or section from another part, component, region, layer or section. Accordingly, a first part, component, region, layer or section described below may be referred to as a second part, component, region, layer or section without departing from the scope of the present invention.
  • 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.
  • the query-based deep learning inference system 100 includes a database (DB, 110) and a deep learning framework (QML, 120) to apply a query-based machine learning technology. ) and a user terminal 130 .
  • DB database
  • QML deep learning framework
  • the deep learning framework 120 is connected to the database 110 in the form of a plug-in, and machine learning, inference, etc. are performed using data stored in the database 110 by a user's request query. It is a technique that is performed
  • the database 110 may store a data set, a learning network model, a learning parameter, and a learning result.
  • a data set is a set of information or data having the same format.
  • Information or data may be any kind of information or data used in machine learning, including numbers, text, images, images, and voices.
  • a learning network model is a model used for machine learning, and it consists of input/output and parameters defining the inside of the model, and parameters necessary for machine learning and inference, and is stored in a database in a relational data format, and other deep learning frameworks through a converter may be converted into
  • the learning network model may recognize text input by a user, and may recognize voice and text included in images, audio and video. In addition, user intention can be analyzed from the recognized voice and text.
  • the intermediate output value is stored in the database 110 while the machine learning is in progress so that the user can check it.
  • the model parameter values are stored in the database 110 so that the user can check them.
  • the evaluation index value of the model calculated while the machine learning is in progress is stored in the database 110 so that the user can check it.
  • the machine reasoning result value is stored in the database 110 so that the user can check it.
  • the database 110 may store all input/output data used for machine learning and machine inference, store models used for machine learning and machine inference, and provide a procedure corresponding to a user's query request.
  • Procedures are: Insert Network, Insert Layer, Make Project, Input Data Loader, Train, Save Model and Test may include
  • the deep learning framework 120 is used for compatibility with external frameworks and when importing a pre-trained model of an existing framework or exporting information or data from the database to the outside, ONNX (Open Neural Network Exchange) model format It may include a model converter that is used.
  • ONNX Open Neural Network Exchange
  • the model converter may convert the network structure and model data defined in the ONNX model format into the network model table format of the database, or convert the network model of the database into the ONNX model format on the contrary.
  • ONNX Open Network Exchange
  • NEF Neural Network Exchange Format
  • model weight file including training parameters and bias
  • the learning model can be imported or outputted from the database.
  • the deep learning framework 120 is connected to the database 110 in a plug-in manner, and can check, correct, and add new data to information or data stored in the database 110 .
  • the deep learning framework 120 may be, for example, QML.
  • QML is a deep learning framework installed as a plug-in in the database 110 and is executed by calling the database. When QML is called, it receives various data from the database 110 as an argument and returns an execution result.
  • QML interprets the network model defined in the relational data format to construct the network inside the framework.
  • QML receives learning parameters and learning data from the database 110 as factors, performs learning of the network configured in the framework, and returns a learning result.
  • QML receives input data from the database 110 as an argument, performs machine inference using the network configured inside the framework, and returns a result.
  • the deep learning framework 120 when receiving a query from the user terminal 130, the deep learning framework 120 generates a learning network model for checking, modifying, and new learning for the learning network model stored in the database 110, and input Select information or data and a learning network model according to the query, set learning parameters, execute machine learning, provide intermediate and final results of learning, and select data and pre-trained learning network model through the input query
  • machine reasoning can be performed and the inference result can be provided.
  • the user terminal 130 may input a query through the deep learning framework 120 and receive an inference result corresponding to the query from the database 110 through the deep learning framework 120 .
  • the user terminal 130 requests various functions from the database 110 through a query, and receives a response from the database 110 .
  • the user terminal 130 checks and corrects data stored in the database 110 through a query, and adds new data.
  • the user terminal 130 checks and corrects the network model stored in the database 110 through a query, and creates a network model for new learning.
  • the user terminal 130 selects data and a learning network model through a query, sets learning parameters, requests machine learning, and checks the intermediate and final results of learning.
  • the user terminal 130 selects data and a pre-learned network model through a query, requests machine inference, and confirms the inference result.
  • FIG. 2 is a flowchart illustrating an execution flow of a query-based machine learning technique according to an embodiment of the present invention.
  • the query-based machine learning technology stores a pre-learned model converted into ONNX format in QML format through a converter, and queries learning or inference from the user terminal 130 .
  • the database 110 provides information as QML to perform learning and inference.
  • the user terminal 130 checks the result stored in the database 110 .
  • the user terminal 130 may input (Import) the learning model or receive an output (Export) from the database 110 (1).
  • the database 110 interprets the query and performs an appropriate operation (3).
  • the deep learning framework 120 performs a plug-in to the database 110, and performs learning and inference through the information received from the database 110 (4).
  • the user terminal 130 may request learning or inference from the database 110 through a query (5).
  • the user terminal 130 may inquire the table of the database 110 to inquire the learning-related information (6).
  • model data is stored in the database 110 as a QML schema (7).
  • FIG. 3 is a diagram illustrating an internal data flow of a database according to an embodiment of the present invention.
  • the database 110 stores data related to machine learning, provides functions necessary for machine learning as a procedure, and performs machine learning according to a user's request. do.
  • the table may largely include a dataset table, a network table, a project table, a job table, and a common table.
  • a data set includes a data type, a network includes a network type, and a lenet, and the project performs learning or inference work by copying information from the network.
  • the work table includes user information, project status, log, and the like, and the common table includes lookup tables such as layer types and error codes.
  • Network model information is stored in the network table, and project information for actual learning or inference copied from the network table is stored in the project table. After the project is created, it has a configuration separate from the network table, so even if the underlying network used in the project is modified, it has no effect.
  • a large number of variable data is a blob or text type, and a small number of variable data (each layer parameter, etc.) is divided and stored in records.
  • the procedures required for machine learning are Insert Network, Insert Layer, Make Project, Input Data Loader, Init Network, Train, It can include Save Model and Test.
  • the insert network creates a network including the network name, network type, dataset name, optimizer type, optimizer parameter, learning rate, batch size, number of trainings, and output layer index.
  • the insert layer registers a layer including a network ID, a layer name, a layer type, a layer index, a layer parameter, and an input layer index.
  • the make project creates a project containing the project name, dataset name, network name, training or inference flags, and number of GPUs.
  • the input data loader inputs a query according to the selection of the network input (layer index, query type (2: training table, 0: training data, 4: validation table, 3: validation data)).
  • Network initialization constitutes a network model.
  • the train starts learning, including project ID, number of learning generations, batch size, followed by whether or not to learn, save interval, verification interval, and GPU synchronization interval.
  • the network information of the project table is copied to the network table (project name, network name).
  • the test starts an inference that includes the project ID and a flag whether to save the results of all layers.
  • FIG. 4 is a diagram illustrating an operation flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
  • the query-based deep learning inference system 100 is a query-based deep learning inference in the deep learning framework 120 interworking with the user terminal 130 and the database 110 . run the method
  • the deep learning framework 120 receives a learning query (Call Train) or an inference query (Call Test) from the user terminal (S410).
  • the deep learning framework 120 uses a model converter for compatibility with an external framework, imports a pre-trained model of an existing framework, or uses a model converter when exporting information or data from a database to the outside. It can be converted to ONNX model format through
  • the model converter may convert the network structure and model data defined in the ONNX model format into the network model table format of the database, or convert the network model of the database into the ONNX model format on the contrary.
  • the deep learning framework 120 executes a network initialization (Init Network), a network configuration (Construct Network), and a network update (Update Network) according to a learning query or an inference query ( S420 ).
  • the deep learning framework 120 executes training or inference when initialization of all layers is performed (S430).
  • the deep learning framework 120 may obtain batch data (Get Batch Data) and iterate until the end of learning and store the results and model (Store Result & Model).
  • the deep learning framework 120 may execute a test, obtain test data (Get Test Data), feedforward, and store an inference result (Store Result).
  • the deep learning framework 120 provides a learning result or an inference result to the user terminal 130 when learning or inference is terminated ( S440 ).
  • FIG. 5 is a diagram illustrating an execution flow of a learning procedure according to an embodiment of the present invention.
  • the following steps are executed for a user's learning request, and the database 110 calls QML 120 to print data. to return the result.
  • the deep learning framework 120 when a learning query is input from the user terminal 130 and learning is called (Call Train) (S50), network initialization (Init Network) (S51), network configuration (Construct Network) (S52), a network update (Update Network) (S53) is executed.
  • the deep learning framework 120 executes the initialization of the layer (Init Layer) (S55) until the initialization (Initialize all layers) for all layers is made (S54-No), and the initialized layer information (Initialized) Layer Info) is acquired, and a layer update (Update Layer) ( S56 ) is executed.
  • the deep learning framework 120 when initialization for all layers is made (S54-Yes), executes training (S57), and until the end of learning (S58-No) acquires batch data ( Get Batch Data) (S59), iteration is performed (S60), the result and model are stored (Store Result & Model) (S610), and the learning result is sent to the user terminal 130 at the end of learning (S58-Yes) provided (S62).
  • FIG. 6 is a diagram illustrating an execution flow of an inference procedure according to an embodiment of the present invention.
  • the following steps are executed for a user's inference request, and the database 110 calls QML 120 to print data. to return the result.
  • the deep learning framework 120 when an inference query is input from the user terminal 130 and inference is called (Call Test) (S63), network initialization (Init Network) (S64), network configuration (Construct Network) (S65), a network update (Update Network) (S66) is executed.
  • the deep learning framework 120 until initialization (Initialize all layers) for all layers is made (S67-No), layer initialization (Init Layer) (S68) and layer update (Update Layer) (S69) run
  • the deep learning framework 120 when initialization for all layers is made (S67-Yes), executes an inference test (Test) (S70), and obtains inference data (Get Test Data) (S71) Feed forward (S72), store the result (Store Result) (S73), and provide the inference result to the user terminal 130 (S74).
  • Test inference test
  • Get Test Data inference data
  • Feed forward S72
  • Store Result Store Result
  • FIG. 7 is a diagram illustrating a conversion operation of a model converter according to an embodiment of the present invention.
  • the network model stored in the database 110 requires a model converter for compatibility with external frameworks (tensorflow, pytorch, caffe, etc.).
  • the ONNX (Open Neural Network Exchange) format is used when importing pre-trained models of existing frameworks or exporting them to the outside of the database.
  • ONNX Open Network Exchange
  • NEF Neural Network Exchange Format
  • a model weight file including training parameters and biases may be converted into a structured format.
  • the model converter converts the network structure and model data (weight, bias) defined in the structured format including the ONNX model into the network model table format of the database 110 (a). Conversely, the network model of the database 110 is converted into a structured format including the ONNX model (b).
  • the machine-learning model in the existing framework can be uploaded to the database 110 through the Converter (Import) function after the user converts it to a saved format including the ONNX model.
  • the model learned in the QML 120 is stored in a structured format including the ONNX model in the database 110 or a CVS file through the Converter (Export) function.
  • the ONNX model and structured format stored in the database 110 can be converted into a target framework desired by the user and used.
  • QML is a deep learning framework 120 being developed in C language. It is connected to the database 110 through a User Defined Function (UDF) and is executed by a call.
  • UDF User Defined Function
  • the functions defined in the deep learning framework 120 are registered in the database 110 through the UDF, and the deep learning framework 120 is 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.
  • Integer is an integer value among the essential parameters constituting the network model, and the address value of the structure memory defined inside QML.
  • Real number is a real value among essential parameters constituting the network model.
  • String is a variable number of parameters and blob data (binary data).
  • the QML framework follows the channel-first data format, NCHW (N:batch, C: channel, H:height, W:width) format.
  • NCHW N:batch, C: channel, H:height, W:width
  • the layer type supports the layers used in ONNX, and the parameters defined in each layer also follow the structured format including the ONNX format.
  • a backpropagation algorithm is implemented so that the network model can be learned.
  • a gradient calculation algorithm which is an essential element of backpropagation, and an optimization algorithm for updating model parameters (weight, bias) are implemented.
  • FIG. 8 is a diagram schematically illustrating an internal structure of a QML framework according to an embodiment of the present invention.
  • QML_network_t(qml_network_t) is composed of a plurality of QML_layers_t(qml_network_t), and one QML_layer _t(qmll_network_t) is composed of a plurality of QML_tensor_t(qml_tensor_t).
  • Object qml_networks_t holds qml_network_t, N qml_network_t is included in qml_networks_t when learning a network model with multi GPU, and holds 1 qml_network_t when inferring a network model.
  • Object qml_network_t holds several qml_layer_t and network parameters.
  • Object qml_layer_t has input/output tensors (qml_tensor_t), Object qml_tensor_t is a 4D tensor composed of NCHW format, and contains dtype, qml_shape_t, data, name, etc.
  • the query-based deep learning inference system 100 may manage clients, members, datasets, networks, learning, learning execution, and the like as follows.
  • the query-based deep learning inference system 100 provides a function to manage the dataset and the machine learning process with the user terminal 130 and to check the results.
  • the query-based deep learning inference system 100 grants the right to create and modify the data of the database 110 and the network model through member management and leave a change history.
  • the query-based deep learning inference system 100 creates a new table to manage the dataset, and provides functions for querying, modifying, and uploading data.
  • a new table is automatically created and data is uploaded. Shows the results of querying data by accessing a table in the database or searching for data in the database through a user-written query.
  • the query-based deep learning inference system 100 provides a function for managing the network model as follows. Add supported layers and adjust layer parameters to create new network models. retrieves the list of previously created network models. A new network model is created by adding a new layer to the previously created network model. It provides a function to visualize and show the network model.
  • the query-based deep learning inference system 100 provides a function for managing learning as follows. Create or modify training by adjusting network models, datasets, and training parameters.
  • the trained network model is output through the converter function.
  • the query-based deep learning inference system 100 provides a function for performing learning and inference and confirming the result as follows. Check the server's resources. It informs the user whether learning and inference can be performed. Inquires the list of currently executed or pending learning plans. 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. Create an inference plan by setting the registered network model and dataset. You can check the result 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 users without professional knowledge on deep learning can provide necessary information to the user without difficulty, It is possible to realize a query-based deep learning inference system and a method for inferring data corresponding to a query by learning the data stored in the information database in a deep learning method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention discloses a query-based deep learning inference system and method therefor, wherein a deep learning framework is connected to an information database, in a plugin form, such that data stored in the information database is learned via a deep learning method according to a request query of a user, thereby inferring data corresponding to a query. The disclosed query-based deep learning inference system may include: a database for storing a data set, a learning network model, a learning parameter, and a learning result; the deep learning framework connected to the database, in a plugin form, identifying and modifying information or data stored in the database, and adding new data; and a user terminal for inputting a query through the deep learning framework and receiving an inference result corresponding to the query from the database through the deep learning framework.

Description

쿼리 기반 딥러닝 추론 시스템 및 그 방법Query-based deep learning inference system and method therefor
본 발명은 쿼리 기반 딥러닝 추론 시스템 및 그 방법에 관한 것으로서, 더욱 자세하게는 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자에게 필요한 정보를 제공할 수 있도록 딥러닝 프레임워크가 정보 데이터베이스에 플러그인 형태로 연결되어, 사용자의 요청 쿼리에 의해 정보 데이터베이스에 저장된 데이터를 딥러닝 방식으로 학습하여 쿼리에 대응하는 데이터를 추론할 수 있도록 하는, 쿼리 기반 딥러닝 추론 시스템 및 그 방법에 관한 것이다.The present invention relates to a query-based deep learning inference system and a method therefor, and more particularly, a deep learning framework in the form of a plug-in to an information database so that even users without professional knowledge on deep learning can provide necessary information to users without difficulty It relates to a query-based deep learning inference system and a method for inferring data corresponding to the query by learning the data stored in the information database by a user's request query in a deep learning manner.
최근에 딥러닝 기술이 각광을 받으면서 보안, 관제, 자율주행, 방범 등 다양한 분야에서 지능화된 기능 제공을 위해 딥러닝 기술 기반 학습엔진을 활용하고 있다. Recently, as deep learning technology has been in the spotlight, a learning engine based on deep learning technology is being used to provide intelligent functions in various fields such as security, control, autonomous driving, and crime prevention.
딥러닝을 이용한 학습엔진은 기존의 다른 AI 기술에 기반을 둔 학습엔진보다 월등히 뛰어난 지능 성능을 보이고 있다. The learning engine using deep learning shows significantly superior intelligence performance than the learning engine based on other existing AI technologies.
그러나, 딥러닝 기술 기반의 지능을 제공하는 학습엔진을 생성하기 위해서는 딥 네트워크 설계, 학습 함수 설정, 파라미터 튜닝 등 여러 가지 어려운 난관이 있다. 이러한 문제들은 딥러닝 전문가가 아니면 쉽게 할 수 없어, 누구나 쉽게 딥러닝 기반 학습엔진을 갖기 어렵다. However, 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 done without a deep learning expert, so it is difficult for anyone to easily have a deep learning-based learning engine.
또한 학습엔진을 생성할 때마다, 딥러닝의 공통적인 요소를 중복 사용하게 되어, 동일한 과정을 반복 수행해야 하는 문제가 있다.Also, whenever a learning engine is created, common elements of deep learning are used repeatedly, so there is a problem that the same process must be repeated.
전술한 문제점을 해결하기 위한 본 발명의 목적은, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자에게 필요한 정보를 제공할 수 있도록 딥러닝 프레임워크가 정보 데이터베이스에 플러그인 형태로 연결되어, 사용자의 요청 쿼리에 의해 정보 데이터베이스에 저장된 데이터를 딥러닝 방식으로 학습하여 쿼리에 대응하는 데이터를 추론할 수 있도록 하는, 쿼리 기반 딥러닝 추론 시스템 및 그 방법을 제공함에 있다.It is an object of the present invention to solve the above-mentioned problems, that the deep learning framework is connected to the information database in the form of a plug-in so that even users without professional knowledge on deep learning can provide necessary information to the user without difficulty. An object of the present invention is to provide a query-based deep learning inference system and a method for inferring data corresponding to a query by learning data stored in an information database by a request query in a deep learning method.
전술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템은, 데이터 셋, 학습 네트워크 모델, 학습 파라미터 및 학습 결과를 저장하는 데이터베이스; 상기 데이터베이스에 플러그인 방식으로 연결되고, 상기 데이터베이스에 저장된 정보 또는 데이터에 대한 확인, 수정 및 새로운 데이터를 추가하는 딥러닝 프레임워크; 및 상기 딥러닝 프레임워크를 통하여 쿼리를 입력하고, 상기 데이터베이스로부터 상기 딥러닝 프레임워크를 통하여 상기 쿼리에 대응된 추론 결과를 수신하는 사용자 단말기를 포함할 수 있다.Query-based deep learning inference system according to an embodiment of the present invention for achieving the above object, a database for storing a data set, a learning network model, learning parameters and learning results; a deep learning framework connected to the database in a plug-in manner, checking, correcting, and adding new data to information or data stored in the database; and a user terminal that inputs a query through the deep learning framework and receives an inference result corresponding to the query through the deep learning framework from the database.
상기 딥러닝 프레임워크는, 상기 쿼리를 입력받으면, 상기 데이터베이스에 저장된 학습 네트워크 모델에 대한 확인, 수정, 및 새로운 학습을 위한 학습 네트워크 모델을 생성하며, 상기 입력된 쿼리에 따라 정보 또는 데이터와 학습 네트워크 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 실행하고, 학습 중간 결과 및 최종 결과를 제공하며, 상기 입력된 쿼리를 통하여 데이터와 기 학습된 학습 네트워크 모델을 선택하여 기계추론을 실행하고, 그 추론 결과를 제공할 수 있다.The deep learning framework, upon receiving the query, generates a learning network model for checking, modifying, and new learning of the learning network model stored in the database, and according to the input query, information or data and a learning network Execute machine learning by selecting a model and setting learning parameters, providing an intermediate learning result and a final result, select data and a pre-trained learning network model through the input query to execute machine inference, and the inference can provide results.
상기 데이터 셋은, 동일한 형식을 가진 정보 또는 데이터의 집합이고, 상기 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 음성을 포함하여 기계학습에 사용되는 모든 종류의 정보 또는 데이터일 수 있다.The data set is a set of information or data having the same format, and the information or data may be any type of information or data used in machine learning, including numbers, text, images, images, and audio.
상기 학습 네트워크 모델은, 기계학습에 사용되는 모델로 입출력과 모델 내부를 정의하는 파라미터 그리고 기계학습, 추론에 필요한 파라미터들로 구성되고, 상기 데이터베이스에 관계형 데이터 형식으로 저장되며, 컨버터를 통하여 다른 딥러닝 프레임워크로 변환 가능할 수 있다.The learning network model is a model used for machine learning, and is composed of input/output and parameters defining the inside of the model, and parameters necessary for machine learning and inference, and is stored in the database in a relational data format, and other deep learning through a converter It may be convertible into a framework.
상기 데이터베이스는 기계학습, 기계추론에 사용된 모든 입출력 데이터를 저장하고, 기계학습, 기계추론에 사용된 모델을 저장하며, 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공할 수 있다.The database may store all input/output data used for machine learning and machine inference, store models used for machine learning and machine inference, and provide a procedure corresponding to a user's query request.
상기 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.The procedure is, Insert Network, Insert Layer, Make Project, Input Data Loader, Train, Save Model, and Test ) may be included.
상기 딥러닝 프레임워크는, 외부 프레임워크와의 호환성을 위해 사용되고 기존 프레임워크의 기학습된 모델을 가져오거나 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 ONNX, NNEF 및 학습파라미터 바이어스를 포함하는 모델 Weight 파일을 구조화된 포멧으로 이용하는 모델 컨버터를 포함할 수 있다.The deep learning framework is used for compatibility with external frameworks and includes ONNX, NNEF and learning parameter bias when importing a pre-trained model of an existing framework or exporting information or data from the database to the outside. It can include a model converter that uses the file in a structured format.
상기 모델 컨버터는, 상기 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 모델 포맷으로 변환할 수 있다.The model converter may convert a network structure and model data defined in the model format into a network model table format of the database, or vice versa, convert a network model of the database into the model format have.
상기 데이터베이스는, 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함할 수 있다.The database may include a dataset table, a network table, a project table, a job table, and a common table.
상기 딥러닝 프레임워크는, 상기 사용자 단말기로부터 학습 쿼리가 입력되면(Call Train), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train)을 실행하고, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장하며(Store Result & Model), 학습 종료시 학습 결과를 상기 사용자 단말기로 제공할 수 있다.The deep learning framework executes, when a learning query is input from the user terminal (Call Train), network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), initialization for all layers When (Initialize all layers) is done, training is executed, and batch data is obtained until the end of training (Get Batch Data), and the result and model are stored by iteration (Store Result & Model), and training is completed when training is finished. A result may be provided to the user terminal.
상기 딥러닝 프레임워크는, 상기 사용자 단말기로부터 추론 쿼리가 입력되면(Call Test), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 결과를 저장하며(Store Result), 추론 결과를 상기 사용자 단말기로 제공할 수 있다.When an inference query is input from the user terminal (Call Test), the deep learning framework executes network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), and initialization for all layers When (Initialize all layers) is made, the test is executed, the test data is obtained (Get Test Data), the feedforward (feedforward), and the result is stored (Store Result), and the inference result is provided to the user terminal. can
한편, 전술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법은, 사용자 단말기 및 데이터베이스와 연동하는 딥러닝 프레임워크의 쿼리 기반 딥러닝 추론 방법으로서, (a) 상기 딥러닝 프레임워크가 상기 사용자 단말기로부터 학습 쿼리(Call Train) 또는 추론 쿼리(Call Test)를 입력받는 단계; (b) 상기 딥러닝 프레임워크가 상기 학습 쿼리 또는 상기 추론 쿼리에 따라 네트워크 초기화(Init Network), 네트워크 구성(Construct Network) 및 네트워크 갱신(Update Network)을 실행하는 단계; (c) 상기 딥러닝 프레임워크가 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train) 또는 추론(Test)을 실행하는 단계; 및 (d) 상기 딥러닝 프레임워크가 상기 학습 또는 상기 추론의 종료시 학습 결과 또는 추론 결과를 상기 사용자 단말기로 제공하는 단계를 포함할 수 있다.On the other hand, the query-based deep learning inference method according to an embodiment of the present invention for achieving the above object is a query-based deep learning inference method of a deep learning framework interworking with a user terminal and a database, (a) the deep learning receiving, by the framework, a learning query (Call Train) or an inference query (Call Test) from the user terminal; (b) executing, by the deep learning framework, a network initialization (Init Network), a network configuration (Construct Network) and a network update (Update Network) according to the learning query or the inference query; (c) executing training or inference (Test) when the deep learning framework is initialized for all layers; and (d) providing, by the deep learning framework, a learning result or an inference result to the user terminal at the end of the learning or the inference.
상기 (c) 단계에서 상기 딥러닝 프레임워크는, 상기 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장 (Store Result & Model)할 수 있다.In step (c), the deep learning framework may obtain batch data (Get Batch Data) and iterate until the end of the learning and store the results and model (Store Result & Model).
상기 (c) 단계에서 상기 딥러닝 프레임워크는, 상기 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 추론 결과를 저장(Store Result)할 수 있다.In step (c), the deep learning framework may execute the test, obtain test data (Get Test Data), feedforward, and store the inference result (Store Result).
상기 (a) 단계에서 상기 딥러닝 프레임워크는, 외부 프레임워크와의 호환성을 위해 모델 컨버터를 사용하고, 기존 프레임워크의 기학습된 모델을 가져오거나, 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 상기 모델 컨버터를 통하여 모델 포맷으로 변환할 수 있다.When the deep learning framework in step (a) uses a model converter for compatibility with external frameworks, imports a pre-trained model of an existing framework, or exports information or data from the database to the outside It can be converted into a model format through the model converter.
상기 모델 컨버터는, 상기 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 모델 포맷으로 변환할 수 있다.The model converter may convert a network structure and model data defined in the model format into a network model table format of the database, or vice versa, convert a network model of the database into the model format have.
본 발명에 의하면, 쿼리 기반의 기계학습 기술을 이용함으로써 딥러닝 프레임워크가 데이터베이스에 플러그인 형태로 연결되어 사용자의 요청쿼리에 의해서 데이터베이스에 저장된 데이터를 사용하여 기계학습, 추론 등을 수행할 수 있다. According to the present invention, by using the query-based machine learning technology, the deep learning framework is connected to the database in the form of a plug-in, and machine learning, inference, etc. can be performed using data stored in the database according to a user's request query.
따라서, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 필요한 정보를 용이하게 제공할 수 있다.Therefore, even a user without professional knowledge on deep learning can easily provide necessary information without difficulty.
또한, 현재 실행 또는 대기 중인 학습계획의 학습 파라미터를 확인할 수 있으며, 현재 실행 중인 학습 계획의 중간 및 결과를 확인할 수 있다.In addition, it is possible to check the learning parameters of the currently executing or waiting learning plan, and check the middle and results of the currently executing learning plan.
또한, 현재 실행 중인 학습계획을 멈출 수 있으며, 대기 중인 학습계획을 시작할 수 있다.Also, you can stop the currently running learning plan and start a waiting learning plan.
또한, 등록된 네트워크 모델과 데이터셋을 설정하여 추론 계획을 생성하고, 실행된 추론 계획의 결과를 확인할 수 있다.In addition, by setting the registered network model and dataset, an inference plan can be created, and the result of the executed inference plan can be checked.
도 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 flowchart illustrating an execution flow of a query-based machine learning technique according to an embodiment of the present invention.
도 3은 본 발명의 실시 예에 따른 데이터베이스의 내부 데이터 흐름을 나타낸 도면이다.3 is a diagram illustrating an internal data flow of a database according to an embodiment of the present invention.
도 4는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 흐름도를 나타낸 도면이다.4 is a diagram illustrating an operation flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
도 5는 본 발명의 실시 예에 따른 학습 프로시저의 실행 흐름을 나타낸 도면이다.5 is a diagram illustrating an execution flow of a learning procedure according to an embodiment of the present invention.
도 6은 본 발명의 실시 예에 따른 추론 프로시저의 실행 흐름을 나타낸 도면이다.6 is a diagram illustrating an execution flow of an inference procedure according to an embodiment of the present invention.
도 7은 본 발명의 실시 예에 따른 모델 컨버터의 변환 동작을 나타낸 도면이다.7 is a diagram illustrating a conversion operation of a model converter according to an embodiment of the present invention.
도 8은 본 발명의 실시 예에 따른 QML 프레임워크의 내부 구조를 개략적으로 나타낸 도면이다.8 is a diagram schematically illustrating an internal structure of a QML framework according to an embodiment of the present invention.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Hereinafter, with reference to the accompanying drawings, the embodiments of the present invention will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily implement them. The present invention may be implemented in several different forms and is not limited to the embodiments described herein.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.In order to clearly explain the present invention, parts irrelevant to the description are omitted, and the same reference numerals are assigned to the same or similar components throughout the specification.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우 뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is "connected" with another part, this includes not only the case of being "directly connected" but also the case of being "electrically connected" with another element interposed therebetween. . Also, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated.
어느 부분이 다른 부분의 "위에" 있다고 언급하는 경우, 이는 바로 다른 부분의 위에 있을 수 있거나 그 사이에 다른 부분이 수반될 수 있다. 대조적으로 어느 부분이 다른 부분의 "바로 위에" 있다고 언급하는 경우, 그 사이에 다른 부분이 수반되지 않는다.When a part is referred to as being “above” another part, it may be directly on the other part, or the other part may be involved in between. In contrast, when a part refers to being "directly above" another part, no other part is involved in between.
제1, 제2 및 제3 등의 용어들은 다양한 부분, 성분, 영역, 층 및/또는 섹션들을 설명하기 위해 사용되나 이들에 한정되지 않는다. 이들 용어들은 어느 부분, 성분, 영역, 층 또는 섹션을 다른 부분, 성분, 영역, 층 또는 섹션과 구별하기 위해서만 사용된다. 따라서, 이하에서 서술하는 제1 부분, 성분, 영역, 층 또는 섹션은 본 발명의 범위를 벗어나지 않는 범위 내에서 제2 부분, 성분, 영역, 층 또는 섹션으로 언급될 수 있다.The terms first, second and third etc. are used to describe, but are not limited to, various parts, components, regions, layers and/or sections. These terms are used only to distinguish one part, component, region, layer or section from another part, component, region, layer or section. Accordingly, a first part, component, region, layer or section described below may be referred to as a second part, component, region, layer or section without departing from the scope of the present invention.
여기서 사용되는 전문 용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분의 존재나 부가를 제외시키는 것은 아니다.The terminology used herein is for the purpose of referring to specific embodiments only, and is not intended to limit the present invention. As used herein, the singular forms also include the plural forms unless the phrases clearly indicate the opposite. The meaning of "comprising," as used herein, specifies a particular characteristic, region, integer, step, operation, element and/or component, and includes the presence or absence of another characteristic, region, integer, step, operation, element and/or component. It does not exclude additions.
"아래", "위" 등의 상대적인 공간을 나타내는 용어는 도면에서 도시된 한 부분의 다른 부분에 대한 관계를 보다 쉽게 설명하기 위해 사용될 수 있다. 이러한 용어들은 도면에서 의도한 의미와 함께 사용 중인 장치의 다른 의미나 동작을 포함하도록 의도된다. 예를 들면, 도면 중의 장치를 뒤집으면, 다른 부분들의 "아래"에 있는 것으로 설명된 어느 부분들은 다른 부분들의 "위"에 있는 것으로 설명된다. 따라서 "아래"라는 예시적인 용어는 위와 아래 방향을 전부 포함한다. 장치는 90˚ 회전 또는 다른 각도로 회전할 수 있고, 상대적인 공간을 나타내는 용어도 이에 따라서 해석된다.Terms indicating a relative space such as “below” and “above” may be used to more easily describe the relationship of one part shown in the drawing to another part. These terms, along with their intended meanings in the drawings, are intended to include other meanings or operations of the device in use. For example, if the device in the drawings is turned over, some parts described as being "below" other parts are described as being "above" other parts. Thus, the exemplary term “down” includes both the up and down directions. The device may be rotated 90 degrees or at other angles, and terms denoting relative space are to be interpreted accordingly.
다르게 정의하지는 않았지만, 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 보통 사용되는 사전에 정의된 용어들은 관련 기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.Although not defined otherwise, all terms including technical and scientific terms used herein have the same meaning as commonly understood by those of ordinary skill in the art to which the present invention belongs. Commonly used terms defined in the dictionary are additionally interpreted as having a meaning consistent with the related technical literature and the presently disclosed content, and unless defined, are not interpreted in an ideal or very formal meaning.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those of ordinary skill in the art can easily implement them. However, the present invention may be implemented in several different forms and is not limited to the embodiments described herein.
도 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.
도 1을 참조하면, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(100)은, 쿼리 기반의 기계학습 기술을 적용하기 위해, 데이터베이스(DB, 110), 딥러닝 프레임워크(QML, 120) 및 사용자 단말기(130)를 포함한다.Referring to FIG. 1 , the query-based deep learning inference system 100 according to an embodiment of the present invention includes a database (DB, 110) and a deep learning framework (QML, 120) to apply a query-based machine learning technology. ) and a user terminal 130 .
여기서, 쿼리 기반의 기계학습 기술은, 딥러닝 프레임워크(120)가 데이터베이스(110)에 플러그인 형태로 연결되어 사용자의 요청 쿼리에 의해서 데이터베이스(110)에 저장된 데이터를 사용하여 기계학습, 추론 등이 수행되는 기술이다.Here, in the query-based machine learning technology, the deep learning framework 120 is connected to the database 110 in the form of a plug-in, and machine learning, inference, etc. are performed using data stored in the database 110 by a user's request query. It is a technique that is performed
데이터베이스(110)는 데이터 셋(Data Set), 학습 네트워크 모델, 학습 파라미터 및 학습 결과를 저장할 수 있다. The database 110 may store a data set, a learning network model, a learning parameter, and a learning result.
데이터 셋은, 동일한 형식을 가진 정보 또는 데이터의 집합이다. 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 음성을 포함하여 기계학습에 사용되는 모든 종류의 정보 또는 데이터일 수 있다.A data set is a set of information or data having the same format. Information or data may be any kind of information or data used in machine learning, including numbers, text, images, images, and voices.
학습 네트워크 모델은, 기계학습에 사용되는 모델로 입출력과 모델 내부를 정의하는 파라미터 그리고 기계학습, 추론에 필요한 파라미터들로 구성되고, 관계형 데이터 형식으로 데이터베이스에 저장되며, 컨버터를 통하여 다른 딥러닝 프레임워크로 변환 가능할 수 있다.A learning network model is a model used for machine learning, and it consists of input/output and parameters defining the inside of the model, and parameters necessary for machine learning and inference, and is stored in a database in a relational data format, and other deep learning frameworks through a converter may be converted into
학습 네트워크 모델은, 사용자에 의해 입력된 텍스트를 인식할 수 있고, 이미지, 오디오 및 동영상에 포함된 음성 및 텍스트를 인식할 수 있다. 또한, 인식한 음성 및 텍스트로부터 사용자 의향을 분석할 수 있다.The learning network model may recognize text input by a user, and may recognize voice and text included in images, audio and video. In addition, user intention can be analyzed from the recognized voice and text.
학습 결과는 기계학습이 진행되는 동안 중간 출력값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다. 기계학습이 진행되는 동안 모델 파라미터 값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다. 기계학습이 진행되는 동안 계산되는 모델의 평가지표 값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다. 기계추론 결과값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다.As for the learning result, the intermediate output value is stored in the database 110 while the machine learning is in progress so that the user can check it. During machine learning, the model parameter values are stored in the database 110 so that the user can check them. The evaluation index value of the model calculated while the machine learning is in progress is stored in the database 110 so that the user can check it. The machine reasoning result value is stored in the database 110 so that the user can check it.
데이터베이스(110)는 기계학습, 기계추론에 사용된 모든 입출력 데이터를 저장하고, 기계학습, 기계추론에 사용된 모델을 저장하며, 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공할 수 있다. 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.The database 110 may store all input/output data used for machine learning and machine inference, store models used for machine learning and machine inference, and provide a procedure corresponding to a user's query request. . Procedures are: Insert Network, Insert Layer, Make Project, Input Data Loader, Train, Save Model and Test may include
딥러닝 프레임워크(120)는, 외부 프레임워크와의 호환성을 위해 사용되고 기존 프레임워크의 기학습된 모델을 가져오거나 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 ONNX(Open Neural Network Exchange) 모델 포맷을 이용하는 모델 컨버터를 포함할 수 있다.The deep learning framework 120 is used for compatibility with external frameworks and when importing a pre-trained model of an existing framework or exporting information or data from the database to the outside, ONNX (Open Neural Network Exchange) model format It may include a model converter that is used.
모델 컨버터는, ONNX 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 데이터베이스의 네트워크 모델을 ONNX 모델 포맷으로 변환할 수 있다.The model converter may convert the network structure and model data defined in the ONNX model format into the network model table format of the database, or convert the network model of the database into the ONNX model format on the contrary.
또한, 상기 ONNX 모델 포멧 이외에 Open Network Exchange(ONNX), Neural Network Exchange Format(NNEF) 및 학습 파라미터와 바이어스를 포함하는 모델 Weight 파일을 구조화된 포멧으로 변환할 수도 있다.In addition to the ONNX model format, it is also possible to convert Open Network Exchange (ONNX), Neural Network Exchange Format (NNEF), and a model weight file including training parameters and bias into a structured format.
상기와 모델 Weigh 파일을 구조화된 포멧으로 변환하여 학습 모델을 입력(Import)하거나, 데이터베이스로부터 출력(Export) 받을 수 있도록 한다.By converting the above and the model Weigh file into a structured format, the learning model can be imported or outputted from the database.
딥러닝 프레임워크(120)는 데이터베이스(110)에 플러그인 방식으로 연결되고, 데이터베이스(110)에 저장된 정보 또는 데이터에 대한 확인, 수정 및 새로운 데이터를 추가할 수 있다. 딥러닝 프레임워크(120)는 예를 들면, QML을 예로 들 수 있다.The deep learning framework 120 is connected to the database 110 in a plug-in manner, and can check, correct, and add new data to information or data stored in the database 110 . The deep learning framework 120 may be, for example, QML.
QML은 데이터베이스(110)에 플러그 인으로 설치된 딥러닝 프레임워크로서 데이터베이스의 호출로 실행된다. QML은 호출될 때 데이터베이스(110)로부터 각종 데이터를 인자로 받아 수행결과를 반환한다. QML은 관계형 데이터 포맷으로 정의된 네트워크 모델을 해석하여 프레임워크 내부에 네트워크를 구성한다. QML은 데이터베이스(110)로부터 학습 파라미터와 학습 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크의 학습을 수행하고 학습결과를 반환한다. QML은 데이터베이스(110)로부터 입력 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크를 이용하여 기계추론을 수행하고 결과를 반환한다.QML is a deep learning framework installed as a plug-in in the database 110 and is executed by calling the database. When QML is called, it receives various data from the database 110 as an argument and returns an execution result. QML interprets the network model defined in the relational data format to construct the network inside the framework. QML receives learning parameters and learning data from the database 110 as factors, performs learning of the network configured in the framework, and returns a learning result. QML receives input data from the database 110 as an argument, performs machine inference using the network configured inside the framework, and returns a result.
또한, 딥러닝 프레임워크(120)는, 사용자 단말기(130)로부터 쿼리를 입력받으면, 데이터베이스(110)에 저장된 학습 네트워크 모델에 대한 확인, 수정, 및 새로운 학습을 위한 학습 네트워크 모델을 생성하며, 입력된 쿼리에 따라 정보 또는 데이터와 학습 네트워크 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 실행하고, 학습 중간 결과 및 최종 결과를 제공하며, 입력된 쿼리를 통하여 데이터와 기 학습된 학습 네트워크 모델을 선택하여 기계추론을 실행하고, 그 추론 결과를 제공할 수 있다.In addition, when receiving a query from the user terminal 130, the deep learning framework 120 generates a learning network model for checking, modifying, and new learning for the learning network model stored in the database 110, and input Select information or data and a learning network model according to the query, set learning parameters, execute machine learning, provide intermediate and final results of learning, and select data and pre-trained learning network model through the input query Thus, machine reasoning can be performed and the inference result can be provided.
사용자 단말기(130)는 딥러닝 프레임워크(120)를 통하여 쿼리를 입력하고, 데이터베이스(110)로부터 딥러닝 프레임워크(120)를 통하여 쿼리에 대응된 추론 결과를 수신할 수 있다.The user terminal 130 may input a query through the deep learning framework 120 and receive an inference result corresponding to the query from the database 110 through the deep learning framework 120 .
또한, 사용자 단말기(130)는 쿼리를 통해서 데이터베이스(110)에 여러 기능들을 요청하고, 데이터베이스(110)로부터 결과를 응답 받는다. 사용자 단말기(130)는 쿼리를 통해서 데이터베이스(110)에 저장된 데이터를 확인, 수정하고, 새로운 데이터를 추가한다. 사용자 단말기(130)는 쿼리를 통해서 데이터베이스(110)에 저장된 네트워크 모델을 확인, 수정하고 새로운 학습을 위한 네트워크 모델을 생성한다. 사용자 단말기(130)는 쿼리를 통해서 데이터와 학습 네트워크 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 요청하고, 학습 중간 결과 및 최종 결과를 확인한다. 사용자 단말기(130)는 쿼리를 통해서 데이터와 기학습 된 네트워크 모델을 선택하여 기계추론을 요청하고, 추론 결과를 확인한다.Also, the user terminal 130 requests various functions from the database 110 through a query, and receives a response from the database 110 . The user terminal 130 checks and corrects data stored in the database 110 through a query, and adds new data. The user terminal 130 checks and corrects the network model stored in the database 110 through a query, and creates a network model for new learning. The user terminal 130 selects data and a learning network model through a query, sets learning parameters, requests machine learning, and checks the intermediate and final results of learning. The user terminal 130 selects data and a pre-learned network model through a query, requests machine inference, and confirms the inference result.
도 2는 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술의 수행 흐름을 나타낸 흐름도이다.2 is a flowchart illustrating an execution flow of a query-based machine learning technique according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 실시 예에 따른 쿼리 기반의 기계학습 기술은, ONNX 포맷으로 변환된 기학습된 모델을 컨버터를 통해서 QML 포맷으로 저장하고, 사용자 단말기(130)로부터 학습 또는 추론 쿼리를 입력받으며, 데이터베이스(110)에서 정보를 QML로 주어 학습 및 추론을 수행한다. 그리고, 학습 또는 추론 결과를 데이터베이스(110)에 저장하면, 사용자 단말기(130)가 데이터베이스(110)에 저장된 결과를 확인한다.Referring to FIG. 2 , the query-based machine learning technology according to an embodiment of the present invention stores a pre-learned model converted into ONNX format in QML format through a converter, and queries learning or inference from the user terminal 130 . is input, and the database 110 provides information as QML to perform learning and inference. And, when the learning or inference result is stored in the database 110 , the user terminal 130 checks the result stored in the database 110 .
먼저 사용자 단말기(130)는 학습 모델을 입력(Import)하거나, 데이터베이스(110)로부터 출력(Export)받을 수 있다(①).First, the user terminal 130 may input (Import) the learning model or receive an output (Export) from the database 110 (①).
또한, 학습 모델을 입력 또는 출력할 때, 모델 컨버터를 통하여 데이터베이스(110)의 스키마 구조에 맞게 변환한다(②).In addition, when inputting or outputting the learning model, it is converted according to the schema structure of the database 110 through the model converter (②).
또한, 데이터베이스(110)는 쿼리를 해석하여 적절한 작업을 수행한다(③).In addition, the database 110 interprets the query and performs an appropriate operation (③).
또한, 딥러닝 프레임워크(120)는 데이터베이스(110)에 플러그인을 수행하고, 데이터베이스(110)로부터 받은 정보를 통해 학습 및 추론을 수행한다(④).In addition, the deep learning framework 120 performs a plug-in to the database 110, and performs learning and inference through the information received from the database 110 (④).
또한, 사용자 단말기(130)는 쿼리를 통해 데이터베이스(110)로 학습 또는 추론을 요청할 수 있다(⑤).Also, the user terminal 130 may request learning or inference from the database 110 through a query (⑤).
또한, 사용자 단말기(130)는 데이터베이스(110)의 테이블을 조회하여 학습 관련 정보를 조회할 수 있다(⑥).In addition, the user terminal 130 may inquire the table of the database 110 to inquire the learning-related information (⑥).
그리고, 모델 데이터는 데이터베이스(110)에 QML 스키마로 저장된다(⑦).Then, the model data is stored in the database 110 as a QML schema (⑦).
도 3은 본 발명의 실시 예에 따른 데이터베이스의 내부 데이터 흐름을 나타낸 도면이다. 3 is a diagram illustrating an internal data flow of a database according to an embodiment of the present invention.
도 3을 참조하면, 본 발명의 실시 예에 따른 데이터베이스(110)는, 기계학습과 관련된 데이터들을 저장하고, 기계학습에 필요한 기능들을 프로시저(Procedure)로 제공하여 사용자 요청에 의해 기계학습을 수행한다.Referring to FIG. 3 , the database 110 according to an embodiment of the present invention stores data related to machine learning, provides functions necessary for machine learning as a procedure, and performs machine learning according to a user's request. do.
데이터베이스(110)에서, 테이블(Table)은 크게 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함할 수 있다.In the database 110 , the table may largely include a dataset table, a network table, a project table, a job table, and a common table. can
데이터 셋은 데이터 종류를 포함하고, 네트워크는 네트워크 종류, lenet을 포함하며, 프로젝트는 네트워크의 정보를 복사해 학습 또는 추론 작업을 진행한다. 작업 테이블은 사용자 정보, 프로젝트의 상태, 로그 등을 포함하고, 공통 테이블은 레이어 타입, 오류 코드 등 룩업 테이블을 포함한다.A data set includes a data type, a network includes a network type, and a lenet, and the project performs learning or inference work by copying information from the network. The work table includes user information, project status, log, and the like, and the common table includes lookup tables such as layer types and error codes.
네트워크 테이블에 네트워크 모델 정보가 저장되어 있고, 프로젝트 테이블에는 네트워크 테이블로부터 복사된 실제 학습이나 추론을 진행할 프로젝트 정보가 저장된다. 프로젝트가 생성된 후 네트워크 테이블과 별개의 구성을 가지게 되므로, 프로젝트에 사용된 기반 네트워크가 수정되더라도 영향이 없다. 개수가 많고 가변적인 데이터(입출력 데이터 및 가중치 정보)는 blob 또는 text 타입으로, 개수가 적고 가변적인 데이터(각 레이어 파라미터 등)는 레코드를 분할하여 저장하도록 되어 있다.Network model information is stored in the network table, and project information for actual learning or inference copied from the network table is stored in the project table. After the project is created, it has a configuration separate from the network table, so even if the underlying network used in the project is modified, it has no effect. A large number of variable data (input/output data and weight information) is a blob or text type, and a small number of variable data (each layer parameter, etc.) is divided and stored in records.
기계학습에 필요한 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 네트워크 초기화(Init Network), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.The procedures required for machine learning are Insert Network, Insert Layer, Make Project, Input Data Loader, Init Network, Train, It can include Save Model and Test.
인서트 네트워크는 네트워크 이름, 네트워크 타입, 데이터셋 이름, 옵티마이저 타입, 옵티마이저 파라미터, 학습률, 배치 크기, 학습 횟수, 출력 레이어 인덱스를 포함하는 네트워크를 생성한다. The insert network creates a network including the network name, network type, dataset name, optimizer type, optimizer parameter, learning rate, batch size, number of trainings, and output layer index.
인서트 레이어는, 네트워크 아이디, 레이어 이름, 레이어 타입, 레이어 인덱스, 레이어 파라미터, 입력 레이어 인덱스를 포함하는 레이어를 등록한다.The insert layer registers a layer including a network ID, a layer name, a layer type, a layer index, a layer parameter, and an input layer index.
메이크 프로젝트는, 프로젝트 이름, 데이터셋 이름, 네트워크 이름, 학습 또는 추론 플래그, GPU 개수를 포함하는 프로젝트를 생성한다.The make project creates a project containing the project name, dataset name, network name, training or inference flags, and number of GPUs.
입력 데이터 로더는, 네트워크 입력의 선택(레이어 인덱스, 쿼리 타입(2:학습 테이블, 0:학습 데이터, 4:검증 테이블, 3:검증 데이터)에 따라 쿼리를 입력한다.The input data loader inputs a query according to the selection of the network input (layer index, query type (2: training table, 0: training data, 4: validation table, 3: validation data)).
네트워크 초기화는, 네트워크 모델을 구성한다.Network initialization constitutes a network model.
트레인은, 프로젝트 아이디, 학습 세대 수, 배치 사이즈, 이어서 학습 여부, 저장 간격, 검증 간격, GPU 동기화 간격을 포함하는 학습을 시작한다.The train starts learning, including project ID, number of learning generations, batch size, followed by whether or not to learn, save interval, verification interval, and GPU synchronization interval.
모델 저장은, 프로젝트 테이블의 네트워크 정보를 네트워크 테이블로 복사(프로젝트 이름, 네트워크 이름)한다.To save the model, the network information of the project table is copied to the network table (project name, network name).
테스트는, 프로젝트 아이디, 모든 레이어의 결과 저장 여부 플래그를 포함하는 추론을 시작한다.The test starts an inference that includes the project ID and a flag whether to save the results of all layers.
도 4는 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 방법을 설명하기 위한 동작 흐름도를 나타낸 도면이다.4 is a diagram illustrating an operation flowchart for explaining a query-based deep learning inference method according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(100)은, 사용자 단말기(130) 및 데이터베이스(110)와 연동하는 딥러닝 프레임워크(120)에서 쿼리 기반 딥러닝 추론 방법을 실행한다.Referring to FIG. 4 , the query-based deep learning inference system 100 according to an embodiment of the present invention is a query-based deep learning inference in the deep learning framework 120 interworking with the user terminal 130 and the database 110 . run the method
딥러닝 프레임워크(120)는 사용자 단말기로부터 학습 쿼리(Call Train) 또는 추론 쿼리(Call Test)를 입력받는다(S410).The deep learning framework 120 receives a learning query (Call Train) or an inference query (Call Test) from the user terminal (S410).
이때, 딥러닝 프레임워크(120)는, 외부 프레임워크와의 호환성을 위해 모델 컨버터를 사용하고, 기존 프레임워크의 기학습된 모델을 가져오거나, 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 모델 컨버터를 통하여 ONNX 모델 포맷으로 변환할 수 있다.At this time, the deep learning framework 120 uses a model converter for compatibility with an external framework, imports a pre-trained model of an existing framework, or uses a model converter when exporting information or data from a database to the outside. It can be converted to ONNX model format through
모델 컨버터는, ONNX 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 데이터베이스의 네트워크 모델을 ONNX 모델 포맷으로 변환할 수 있다.The model converter may convert the network structure and model data defined in the ONNX model format into the network model table format of the database, or convert the network model of the database into the ONNX model format on the contrary.
이어, 딥러닝 프레임워크(120)는 학습 쿼리 또는 추론 쿼리에 따라 네트워크 초기화(Init Network), 네트워크 구성(Construct Network) 및 네트워크 갱신(Update Network)을 실행한다(S420).Next, the deep learning framework 120 executes a network initialization (Init Network), a network configuration (Construct Network), and a network update (Update Network) according to a learning query or an inference query ( S420 ).
이어, 딥러닝 프레임워크(120)는 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train) 또는 추론(Test)을 실행한다(S430).Next, the deep learning framework 120 executes training or inference when initialization of all layers is performed (S430).
이때, 딥러닝 프레임워크(120)는, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장 (Store Result & Model)할 수 있다.In this case, the deep learning framework 120 may obtain batch data (Get Batch Data) and iterate until the end of learning and store the results and model (Store Result & Model).
또한, 딥러닝 프레임워크(120)는, 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 추론 결과를 저장(Store Result)할 수 있다.Also, the deep learning framework 120 may execute a test, obtain test data (Get Test Data), feedforward, and store an inference result (Store Result).
이어, 딥러닝 프레임워크(120)는 학습 또는 추론의 종료시 학습 결과 또는 추론 결과를 사용자 단말기(130)로 제공한다(S440).Next, the deep learning framework 120 provides a learning result or an inference result to the user terminal 130 when learning or inference is terminated ( S440 ).
전술한 학습 또는 추론 과정에 대하여 아래에서 각각 구분하여 설명한다.The above-described learning or reasoning process will be separately described below.
도 5는 본 발명의 실시 예에 따른 학습 프로시저의 실행 흐름을 나타낸 도면이다.5 is a diagram illustrating an execution flow of a learning procedure according to an embodiment of the present invention.
도 5를 참조하면, 본 발명의 실시 예에 따른 딥러닝 프레임워크(120)에서는 사용자의 학습 요청에 대해 다음과 같은 단계가 실행되고, 데이터베이스(110)에서는 QML(120)을 호출하여 데이터를 인자로 넘겨주어 결과를 반환받는다.Referring to FIG. 5 , in the deep learning framework 120 according to an embodiment of the present invention, the following steps are executed for a user's learning request, and the database 110 calls QML 120 to print data. to return the result.
먼저, 딥러닝 프레임워크(120)는, 사용자 단말기(130)로부터 학습 쿼리가 입력되어 학습이 호출되면(Call Train)(S50), 네트워크 초기화(Init Network)(S51), 네트워크 구성(Construct Network)(S52), 네트워크 갱신(Update Network)(S53)을 실행한다.First, the deep learning framework 120, when a learning query is input from the user terminal 130 and learning is called (Call Train) (S50), network initialization (Init Network) (S51), network configuration (Construct Network) (S52), a network update (Update Network) (S53) is executed.
또한, 딥러닝 프레임워크(120)는, 모든 층에 대한 초기화(Initialize all layers)가 이루어지기까지(S54-No), 레이어 초기화(Init Layer)(S55)를 실행하고, 초기화된 레이어 정보(Initialized Layer Info)를 획득하며, 레이어 갱신(Update Layer)(S56)을 실행한다.In addition, the deep learning framework 120 executes the initialization of the layer (Init Layer) (S55) until the initialization (Initialize all layers) for all layers is made (S54-No), and the initialized layer information (Initialized) Layer Info) is acquired, and a layer update (Update Layer) ( S56 ) is executed.
또한, 딥러닝 프레임워크(120)는, 모든 층에 대한 초기화가 이루어지면(S54-Yes), 학습(Train)을 실행하고(S57), 학습 종료시까지(S58-No) 배치 데이터를 획득하고(Get Batch Data)(S59), 반복 되풀이(Iteration)하여(S60), 결과 및 모델을 저장하며(Store Result & Model)(S610), 학습 종료시(S58-Yes) 학습 결과를 사용자 단말기(130)로 제공한다(S62).In addition, the deep learning framework 120, when initialization for all layers is made (S54-Yes), executes training (S57), and until the end of learning (S58-No) acquires batch data ( Get Batch Data) (S59), iteration is performed (S60), the result and model are stored (Store Result & Model) (S610), and the learning result is sent to the user terminal 130 at the end of learning (S58-Yes) provided (S62).
도 6은 본 발명의 실시 예에 따른 추론 프로시저의 실행 흐름을 나타낸 도면이다.6 is a diagram illustrating an execution flow of an inference procedure according to an embodiment of the present invention.
도 6을 참조하면, 본 발명의 실시 예에 따른 딥러닝 프레임워크(120)에서는 사용자의 추론 요청에 대해 다음과 같은 단계가 실행되고, 데이터베이스(110)에서는 QML(120)을 호출하여 데이터를 인자로 넘겨주어 결과를 반환받는다.Referring to FIG. 6 , in the deep learning framework 120 according to an embodiment of the present invention, the following steps are executed for a user's inference request, and the database 110 calls QML 120 to print data. to return the result.
먼저, 딥러닝 프레임워크(120)는, 사용자 단말기(130)로부터 추론 쿼리가 입력되어 추론이 호출되면(Call Test)(S63), 네트워크 초기화(Init Network)(S64), 네트워크 구성(Construct Network)(S65), 네트워크 갱신(Update Network)(S66)을 실행한다.First, the deep learning framework 120, when an inference query is input from the user terminal 130 and inference is called (Call Test) (S63), network initialization (Init Network) (S64), network configuration (Construct Network) (S65), a network update (Update Network) (S66) is executed.
또한, 딥러닝 프레임워크(120)는, 모든 층에 대한 초기화(Initialize all layers)가 이루어지기까지(S67-No), 레이어 초기화(Init Layer)(S68) 및 레이어 갱신(Update Layer)(S69)을 실행한다.In addition, the deep learning framework 120, until initialization (Initialize all layers) for all layers is made (S67-No), layer initialization (Init Layer) (S68) and layer update (Update Layer) (S69) run
또한, 딥러닝 프레임워크(120)는, 모든 층에 대한 초기화가 이루어지면(S67-Yes), 추론 테스트(Test)를 실행하고(S70), 추론 데이터를 획득하여(Get Test Data)(S71) 피드 포워드(feed forward)하고(S72), 결과를 저장하며(Store Result)(S73), 추론 결과를 사용자 단말기(130)로 제공한다(S74).In addition, the deep learning framework 120, when initialization for all layers is made (S67-Yes), executes an inference test (Test) (S70), and obtains inference data (Get Test Data) (S71) Feed forward (S72), store the result (Store Result) (S73), and provide the inference result to the user terminal 130 (S74).
도 7은 본 발명의 실시 예에 따른 모델 컨버터의 변환 동작을 나타낸 도면이다.7 is a diagram illustrating a conversion operation of a model converter according to an embodiment of the present invention.
도 7을 참조하면, 본 발명의 실시 예에 따른 데이터베이스(110)에 저장된 네트워크 모델은 외부 프레임워크(tensorflow, pytorch, caffe, etc.)와의 호환성을 위해 모델 컨버터를 필요로 한다. 기존 프레임워크의 기학습된 모델을 가져오거나 데이터베이스 외부로 내보낼 때 ONNX(Open Neural Network Exchange)포맷을 사용한다.Referring to FIG. 7 , the network model stored in the database 110 according to an embodiment of the present invention requires a model converter for compatibility with external frameworks (tensorflow, pytorch, caffe, etc.). The ONNX (Open Neural Network Exchange) format is used when importing pre-trained models of existing frameworks or exporting them to the outside of the database.
여기서, 상기 ONNX 이외에 Open Network Exchange(ONNX), Neural Network Exchange Format(NNEF) 및 학습 파라미터와 바이어스를 포함하는 모델 Weight 파일을 구조화된 포멧으로 변환할 수 있다.Here, in addition to ONNX, Open Network Exchange (ONNX), Neural Network Exchange Format (NNEF), and a model weight file including training parameters and biases may be converted into a structured format.
모델 컨버터는, ONNX 모델을 포함하는 구조화된 포맷에 정의된 network structure 및 model data(weight, bias)를 데이터베이스(110)의 네트워크 모델 테이블 포맷으로 변환한다(a). 반대로 데이터베이스(110)의 네트워크 모델을 ONNX 모델을 포함하는 구조화된 포멧로 변환한다(b).The model converter converts the network structure and model data (weight, bias) defined in the structured format including the ONNX model into the network model table format of the database 110 (a). Conversely, the network model of the database 110 is converted into a structured format including the ONNX model (b).
기존 프레임워크(Caffe, tensorflow, pytorch, etc.)에서 기계학습된 모델은 사용자가 ONNX 모델을 포함하는 구호좌된 포멧으로 변환 후 Converter(Import) 기능을 통해서 데이터베이스(110)에 업로드할 수 있다.The machine-learning model in the existing framework (Caffe, tensorflow, pytorch, etc.) can be uploaded to the database 110 through the Converter (Import) function after the user converts it to a saved format including the ONNX model.
QML(120)에서 학습한 모델은 Converter(Export) 기능을 통해서 데이터베이스(110)에서 ONNX 모델을 포함하는 구조화된 포맷, 또는 CVS 파일로 저장한다.The model learned in the QML 120 is stored in a structured format including the ONNX model in the database 110 or a CVS file through the Converter (Export) function.
데이터베이스(110)에 저장된 ONNX 모델 및 구조화된 포멧은 사용자가 원하는 target 프레임 워크로 변환하여 사용할 수 있다.The ONNX model and structured format stored in the database 110 can be converted into a target framework desired by the user and used.
한편, QML은 C 언어로 개발하고 있는 딥러닝 프레임워크(120)이다. 데이터베이스(110)와 UDF(User Defined Function)를 통해 연결되며 호출에 의해 실행된다. 딥러닝 프레임워크(120)에 정의된 함수들은 UDF를 통해 데이터베이스(110)에 등록되고, 등록된 UDF 호출을 통해서 딥러닝 프레임워크(120)가 실행된다. UDF에서 사용할 수 있는 인자 변수의 타입은 integer, real number, string으로 정해져 있고 QML에서는 다음과 같이 사용한다. Integer는 네트워크 모델을 구성하는 필수 파라미터 중 정수값, QML 내부에 정의된 구조체 메모리의 주소값이다. Real number는 네트워크 모델을 구성하는 필수 파라미터 중 실수값이다. String은 개수가 가변적인 파라미터들과 blob 데이터(binary 데이터)이다.On the other hand, QML is a deep learning framework 120 being developed in C language. It is connected to the database 110 through a User Defined Function (UDF) and is executed by a call. The functions defined in the deep learning framework 120 are registered in the database 110 through the UDF, and the deep learning framework 120 is 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. In QML, they are used as follows. Integer is an integer value among the essential parameters constituting the network model, and the address value of the structure memory defined inside QML. Real number is a real value among essential parameters constituting the network model. String is a variable number of parameters and blob data (binary data).
QML 프레임워크에서는 채널 우선 데이터 포맷인 NCHW(N:batch, C: channel, H:height, W:width) 포맷을 따른다. 레이어 종류는 ONNX에서 사용되는 레이어를 지원하며, 각 레이어에 정의된 파라미터들도 ONNX 포멧을 포함하는 구조화된 포멧을 따른다.The QML framework follows the channel-first data format, NCHW (N:batch, C: channel, H:height, W:width) format. The layer type supports the layers used in ONNX, and the parameters defined in each layer also follow the structured format including the ONNX format.
QML 프레임워크는 네트워크 모델을 학습 가능 하도록 backpropagation 알고리즘이 구현되어 있다. Backpropagation의 필수 요소인 gradient 계산 알고리즘과 모델 파라미터(weight, bias)를 업데이트 시키기 위한 optimization 알고리즘이 구현되어 있다. 네트워크 모델을 학습하는 방식은 두가지로 Train from scratch 및 Fine tuning을 지원한다. Train from scratch는 네트워크 모델을 처음부터 학습시킨다. 각 레이어의 가중치들은 가중치 초기화 알고리즘을 통해 결정된다. Fine tuning은 기학습된 모델의 가중치(import 기능을 통해 데이터베이스에 저장되거나, 이전 학습시도를 통해서 구한 가중치)를 읽어와서 레이어의 초기 가중치를 설정하고 학습을 진행한다.In the QML framework, a backpropagation algorithm is implemented so that the network model can be learned. A gradient calculation algorithm, which is an essential element of backpropagation, and an optimization algorithm for updating model parameters (weight, bias) are implemented. There are two ways to learn a network model: Train from scratch and fine tuning are supported. Train from scratch trains a network model from scratch. The weights of each layer are determined through a weight initialization algorithm. Fine tuning reads the weights of the pre-learned model (the weights stored in the database through the import function or obtained through previous learning attempts) to set the initial weights of the layers and perform learning.
도 8은 본 발명의 실시 예에 따른 QML 프레임워크의 내부 구조를 개략적으로 나타낸 도면이다.8 is a diagram schematically illustrating an internal structure of a QML framework according to an embodiment of the present invention.
도 8을 참조하면, 본 발명의 실시 예에 따른 딥러닝 프레임워크(120)에서, QML_네트워크_t(qml_network_t)는 복수 개의 QML_레이어_t(qml_network_t)로 구성되고, 하나의 QML_레이어_t(qmll_network_t)는 복수 개의 QML_텐서_t(qml_tensor_t)로 구성된다.Referring to FIG. 8 , in the deep learning framework 120 according to an embodiment of the present invention, QML_network_t(qml_network_t) is composed of a plurality of QML_layers_t(qml_network_t), and one QML_layer _t(qmll_network_t) is composed of a plurality of QML_tensor_t(qml_tensor_t).
Object qml_networks_t 는 qml_network_t 를 들고 있고, Multi GPU 로 네트워크 모델을 학습하는 경우에 N 개의 qml_network_t가 qml_networks_t에 포함되어 있고, 네트워크 모델을 추론하는 경우에는 1개의 qml_network_t를 들고 있다.Object qml_networks_t holds qml_network_t, N qml_network_t is included in qml_networks_t when learning a network model with multi GPU, and holds 1 qml_network_t when inferring a network model.
Object qml_network_t는 여러 개의 qml_layer_t 및 네트워크 파라미터들을 들고 있다.Object qml_network_t holds several qml_layer_t and network parameters.
Object qml_layer_t 는 입출력 텐서(qml_tensor_t) 들을 갖고 있고, Object qml_tensor_t는 NCHW 포멧으로 구성된 4차원 텐서이고, 내부에는 dtype, qml_shape_t, data, name 등이 포함되어 있다.Object qml_layer_t has input/output tensors (qml_tensor_t), Object qml_tensor_t is a 4D tensor composed of NCHW format, and contains dtype, qml_shape_t, data, name, etc.
한편, 본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(100)은, 다음과 같이 클라이언트, 회원, 데이터셋, 네트워크, 학습, 학습 실행 등을 관리할 수 있다.Meanwhile, the query-based deep learning inference system 100 according to an embodiment of the present invention may manage clients, members, datasets, networks, learning, learning execution, and the like as follows.
[클라이언트][Client]
본 발명의 실시 예에 따른 쿼리 기반 딥러닝 추론 시스템(100)은, 사용자 단말기(130)로 데이터셋과 기계학습 과정을 관리하고 결과를 확인하기 위하여 기능을 제공한다.The query-based deep learning inference system 100 according to an embodiment of the present invention provides a function to manage the dataset and the machine learning process with the user terminal 130 and to check the results.
[회원 관리][Member Management]
또한, 쿼리 기반 딥러닝 추론 시스템(100)은, 회원관리를 통해서 데이터베이스(110)의 데이터, 네트워크 모델의 생성, 수정 권한을 부여하고 변경 이력을 남긴다.In addition, the query-based deep learning inference system 100 grants the right to create and modify the data of the database 110 and the network model through member management and leave a change history.
[데이터셋 관리][Dataset Management]
또한, 쿼리 기반 딥러닝 추론 시스템(100)은, 데이터셋을 관리하기 위하여 새로운 테이블을 생성하고, 데이터를 조회, 수정, 업로드하기 위한 기능을 제공한다. 새로운 데이터셋을 생성할 때 자동으로 새로운 테이블을 생성하고, 데이터를 업로드한다. 데이터베이스의 테이블에 접근하여 데이터를 조회거나 사용자가 작성한 쿼리를 통해서 데이터베이스의 데이터를 조회한 결과를 보여준다. 권한에 따라 데이터를 수정한다. 사용자로부터 수치데이터를 입력 받거나, 하나 이상의 파일을 읽어서 데이터 업로드를 진행한다. 학습 데이터의 레이블을 작성(tagging)하는 기능을 제공한다.In addition, the query-based deep learning inference system 100 creates a new table to manage the dataset, and provides functions for querying, modifying, and uploading data. When creating a new dataset, a new table is automatically created and data is uploaded. Shows the results of querying data by accessing a table in the database or searching for data in the database through a user-written query. Modify data according to authority. Numerical data is input from the user or data is uploaded by reading one or more files. Provides a function for tagging training data.
[네트워크 관리][Network Management]
또한, 쿼리 기반 딥러닝 추론 시스템(100)은, 다음과 같이 네트워크 모델을 관리하기 위한 기능을 제공한다. 지원되는 레이어를 추가하고 레이어 파라미터를 조정하여 새로운 네트워크 모델을 생성한다. 기존에 작성된 네트워크 모델 리스트를 조회한다. 기존에 작성된 네트워크 모델에 새로운 레이어를 추가하여 새로운 네트워크 모델을 생성한다. 네트워크 모델을 시각화하여 보여주는 기능을 제공한다.In addition, the query-based deep learning inference system 100 provides a function for managing the network model as follows. Add supported layers and adjust layer parameters to create new network models. Retrieves the list of previously created network models. A new network model is created by adding a new layer to the previously created network model. It provides a function to visualize and show the network model.
[학습 관리][Learning Management]
또한, 쿼리 기반 딥러닝 추론 시스템(100)은, 다음과 같이 학습을 관리하기 위한 기능을 제공한다. 네트워크 모델과 데이터셋, 학습 파라미터를 조절하여 학습을 생성 또는 수정한다. 학습이 끝난 네트워크 모델을 컨버터 기능을 통해 출력한다. 현재 사용중인 서버의 자원을 확인한다.In addition, the query-based deep learning inference system 100 provides a function for managing learning as follows. Create or modify training by adjusting network models, datasets, and training parameters. The trained network model is output through the converter function. Check the resources of the server currently in use.
[학습 실행 관리][Manage Learning Execution]
또한, 쿼리 기반 딥러닝 추론 시스템(100)은, 다음과 같이 학습 및 추론을 수행하고 결과를 확인하기 위한 기능을 제공한다. 서버의 자원을 확인한다. 학습 및 추론 수행이 가능한지 여부를 사용자에게 알려준다. 현재 실행 또는 대기 중인 학습계획 리스트를 조회한다. 등록된 네트워크 모델과 데이터셋, 학습 파라미터를 설정하여 학습계획을 생성한다. 현재 실행 또는 대기 중인 학습계획의 학습 파라미터를 확인할 수 있다. 현재 실행 중인 학습계획의 중간 및 결과를 확인할 수 있다. 현재 실행 중인 학습계획을 멈출 수 있다. 대기 중인 학습계획을 시작할 수 있다. 등록된 네트워크 모델과 데이터셋을 설정하여 추론계획을 생성한다. 실행된 추론 계획의 결과를 확인할 수 있다.In addition, the query-based deep learning inference system 100 provides a function for performing learning and inference and confirming the result as follows. Check the server's resources. It informs the user whether learning and inference can be performed. Inquires the list of currently executed or pending learning plans. 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. Create an inference plan by setting the registered network model and dataset. You can check the result 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 users without professional knowledge on deep learning can provide necessary information to the user without difficulty, It is possible to realize a query-based deep learning inference system and a method for inferring data corresponding to a query by learning the data stored in the information database in a deep learning method.
본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains should understand that the present invention can be embodied in other specific forms without changing the technical spirit or essential characteristics thereof, so the embodiments described above are illustrative in all respects and not restrictive. only do The scope of the present invention is indicated by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be construed as being included in the scope of the present invention. .
<부호의 설명><Explanation of code>
100 : 쿼리 기반 딥러닝 추론 시스템100: Query-based deep learning inference system
110 : 데이터베이스110: database
120 : 딥러닝 프레임워크120: deep learning framework
130 : 사용자 단말기130: user terminal

Claims (15)

  1. 데이터 셋, 학습 네트워크 모델, 학습 파라미터 및 학습 결과를 저장하는 데이터베이스;a database for storing data sets, training network models, training parameters, and training results;
    상기 데이터베이스에 플러그인 방식으로 연결되고, 상기 데이터베이스에 저장된 정보 또는 데이터에 대한 확인, 수정 및 새로운 데이터를 추가하는 딥러닝 프레임워크; 및a deep learning framework connected to the database in a plug-in manner, checking, correcting, and adding new data to information or data stored in the database; and
    상기 딥러닝 프레임워크를 통하여 쿼리를 입력하고, 상기 데이터베이스로부터 상기 딥러닝 프레임워크를 통하여 상기 쿼리에 대응된 추론 결과를 수신하는 사용자 단말기;를 포함하고,A user terminal that inputs a query through the deep learning framework and receives an inference result corresponding to the query from the database through the deep learning framework; includes,
    상기 딥러닝 프레임워크는, 상기 쿼리를 입력받으면, 상기 데이터베이스에 저장된 학습 네트워크 모델에 대한 확인, 수정, 및 새로운 학습을 위한 학습 네트워크 모델을 생성하며, 상기 입력된 쿼리에 따라 정보 또는 데이터와 학습 네트워크 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 실행하고, 학습 중간 결과 및 최종 결과를 제공하며, 상기 입력된 쿼리를 통하여 데이터와 기 학습된 학습 네트워크 모델을 선택하여 기계추론을 실행하고, 그 추론 결과를 제공하는, 쿼리 기반 딥러닝 추론 시스템.The deep learning framework, upon receiving the query, generates a learning network model for checking, modifying, and new learning of the learning network model stored in the database, and according to the input query, information or data and a learning network Select a model and set learning parameters to execute machine learning, provide an intermediate learning result and a final result, select data and a pre-trained learning network model through the input query, and execute machine inference, and the inference A query-based deep learning inference system that provides results.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 데이터 셋은, 동일한 형식을 가진 정보 또는 데이터의 집합이고, 상기 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 음성을 포함하여 기계학습에 사용되는 모든 종류의 정보 또는 데이터인 쿼리 기반 딥러닝 추론 시스템.The data set is a set of information or data having the same format, and the information or data is any kind of information or data used in machine learning, including numbers, text, images, images, and voices, based on query-based deep learning inference. system.
  3. 제 1 항에 있어서,The method of claim 1,
    상기 학습 네트워크 모델은, 기계학습에 사용되는 모델로 입출력과 모델 내부를 정의하는 파라미터 그리고 기계학습, 추론에 필요한 파라미터들로 구성되고, 상기 데이터베이스에 관계형 데이터 형식으로 저장되며, 컨버터를 통하여 다른 딥러닝 프레임워크로 변환 가능한 쿼리 기반 딥러닝 추론 시스템.The learning network model is a model used for machine learning, and is composed of input/output and parameters defining the inside of the model, and parameters necessary for machine learning and inference, and is stored in the database in a relational data format, and other deep learning through a converter A query-based deep learning inference system that can be converted into a framework.
  4. 제 1 항에 있어서,The method of claim 1,
    상기 데이터베이스는 기계학습, 기계추론에 사용된 모든 입출력 데이터를 저장하고, 기계학습, 기계추론에 사용된 모델을 저장하며, 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공하는, 쿼리 기반 딥러닝 추론 시스템.The database stores all input/output data used for machine learning and machine inference, stores models used for machine learning and machine inference, and provides a procedure corresponding to a user's query request, a query-based deep Learning inference system.
  5. 제 4 항에 있어서,5. The method of claim 4,
    상기 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함하는, 쿼리 기반 딥러닝 추론 시스템.The procedure is, Insert Network, Insert Layer, Make Project, Input Data Loader, Train, Save Model, and Test ), including a query-based deep learning inference system.
  6. 제 1 항에 있어서,The method of claim 1,
    상기 딥러닝 프레임워크는, The deep learning framework is
    외부 프레임워크와의 호환성을 위해 사용되고, 기존 프레임워크의 기학습된 모델을 가져오거나 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 ONNX, NNEF 및 학습파라미터 바이어스를 포함하는 모델 Weight 파일을 구조화된 포멧으로 이용하는 모델 컨버터;Used for compatibility with external frameworks, when importing a pre-trained model of an existing framework or exporting information or data from the database, a model weight file including ONNX, NNEF, and training parameter bias in a structured format model converter to use;
    를 포함하는 쿼리 기반 딥러닝 추론 시스템.A query-based deep learning inference system that includes
  7. 제 6 항에 있어서,7. The method of claim 6,
    상기 모델 컨버터는, 상기 ONNX, NNEF 및 학습파라미터 바이어스를 포함하는 모델 Weight 파일을 구조화된 포멧으로 이용하는 모델 포멧에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 구조화된 모델 포맷으로 변환하는, 쿼리 기반 딥러닝 추론 시스템.The model converter uses a model weight file including the ONNX, NNEF, and training parameter bias in a structured format, a network structure defined in a model format and model data, and a network model table of the database. A query-based deep learning inference system that converts to a format or, conversely, converts the network model of the database into the structured model format.
  8. 제 1 항에 있어서,The method of claim 1,
    상기 데이터베이스는, 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함하는, 쿼리 기반 딥러닝 추론 시스템.The database, including a dataset table (Dataset Table), network table (Network Table), project table (Project Table), work table (Job Table), common table (Common Table), query-based deep learning inference system.
  9. 제 1 항에 있어서,The method of claim 1,
    상기 딥러닝 프레임워크는, 상기 사용자 단말기로부터 학습 쿼리가 입력되면(Call Train), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train)을 실행하고, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장하며(Store Result & Model), 학습 종료시 학습 결과를 상기 사용자 단말기로 제공하는, 쿼리 기반 딥러닝 추론 시스템.The deep learning framework executes, when a learning query is input from the user terminal (Call Train), network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), initialization for all layers When (Initialize all layers) is done, training is executed, and batch data is obtained until the end of training (Get Batch Data), and the result and model are stored by iteration (Store Result & Model), and training is completed when training is finished. A query-based deep learning inference system that provides a result to the user terminal.
  10. 제 1 항에 있어서,The method of claim 1,
    상기 딥러닝 프레임워크는, 상기 사용자 단말기로부터 추론 쿼리가 입력되면(Call Test), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 추론 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 결과를 저장하며(Store Result), 추론 결과를 상기 사용자 단말기로 제공하는, 쿼리 기반 딥러닝 추론 시스템.When an inference query is input from the user terminal (Call Test), the deep learning framework executes network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), and initialization for all layers When (Initialize all layers) is done, the reasoning test is executed, the test data is obtained (Get Test Data), the feedforward is performed and the result is stored (Store Result), and the inference result is provided to the user terminal. Query-based deep learning inference system.
  11. 사용자 단말기 및 데이터베이스와 연동하는 딥러닝 프레임워크의 쿼리 기반 딥러닝 추론 방법으로서,As a query-based deep learning inference method of a deep learning framework that works with user terminals and databases,
    (a) 상기 딥러닝 프레임워크가 상기 사용자 단말기로부터 학습 쿼리(Call Train) 또는 추론 쿼리(Call Test)를 입력받는 단계;(a) receiving, by the deep learning framework, a learning query (Call Train) or an inference query (Call Test) from the user terminal;
    (b) 상기 딥러닝 프레임워크가 상기 학습 쿼리 또는 상기 추론 쿼리에 따라 네트워크 초기화(Init Network), 네트워크 구성(Construct Network) 및 네트워크 갱신(Update Network)을 실행하는 단계;(b) executing, by the deep learning framework, a network initialization (Init Network), a network configuration (Construct Network) and a network update (Update Network) according to the learning query or the inference query;
    (c) 상기 딥러닝 프레임워크가 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train) 또는 추론(Test)을 실행하는 단계; 및(c) executing training or inference (Test) when the deep learning framework is initialized for all layers; and
    (d) 상기 딥러닝 프레임워크가 상기 학습 또는 상기 추론의 종료시 학습 결과 또는 추론 결과를 상기 사용자 단말기로 제공하는 단계;(d) providing, by the deep learning framework, a learning result or an inference result to the user terminal at the end of the learning or the inference;
    를 포함하는 쿼리 기반 딥러닝 추론 방법.A query-based deep learning inference method comprising
  12. 제 1 항에 있어서,The method of claim 1,
    상기 (c) 단계에서 상기 딥러닝 프레임워크는, 상기 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장 (Store Result & Model)하는, 쿼리 기반 딥러닝 추론 방법.In step (c), the deep learning framework acquires batch data until the end of the learning (Get Batch Data) and stores the result and model by iteration (Store Result & Model), query-based deep learning inference Way.
  13. 제 1 항에 있어서,The method of claim 1,
    상기 (c) 단계에서 상기 딥러닝 프레임워크는, 상기 추론 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 추론 결과를 저장(Store Result)하는, 쿼리 기반 딥러닝 추론 방법.In the step (c), the deep learning framework executes the inference test (Test), obtains test data (Get Test Data), feeds forward, and stores the inference result (Store Result), a query based deep learning inference method.
  14. 제 11 항에 있어서,12. The method of claim 11,
    상기 (a) 단계에서 상기 딥러닝 프레임워크는, 외부 프레임워크와의 호환성을 위해 모델 컨버터를 사용하고, 기존 프레임워크의 기학습된 모델을 가져오거나, 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 상기 모델 컨버터를 통하여 ONNX, NNEF 및 학습파라미터 바이어스를 포함하는 모델 Weight 파일을 구조화된 포멧으로 변환하는, 쿼리 기반 딥러닝 추론 방법.When the deep learning framework in step (a) uses a model converter for compatibility with an external framework, imports a pre-trained model of an existing framework, or exports information or data from the database to the outside A query-based deep learning inference method for converting a model weight file including ONNX, NNEF, and training parameter bias into a structured format through the model converter.
  15. 제 14 항에 있어서,15. The method of claim 14,
    상기 모델 컨버터는, 상기 구조화된 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 구조화된 모델 포맷으로 변환하는, 쿼리 기반 딥러닝 추론 방법.The model converter converts a network structure and model data defined in the structured format into a network model table format of the database, or vice versa, converts a network model of the database into the structured model format Transforming, query-based deep learning inference method.
PCT/KR2020/010600 2020-08-03 2020-08-11 Query-based deep learning inference system and method therefor WO2022030669A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200096679A KR102491755B1 (en) 2020-08-03 2020-08-03 Deep learning inference system based on query, and method thereof
KR10-2020-0096679 2020-08-03

Publications (1)

Publication Number Publication Date
WO2022030669A1 true WO2022030669A1 (en) 2022-02-10

Family

ID=80118222

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/010600 WO2022030669A1 (en) 2020-08-03 2020-08-11 Query-based deep learning inference system and method therefor

Country Status (2)

Country Link
KR (1) KR102491755B1 (en)
WO (1) WO2022030669A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024101582A1 (en) * 2022-11-09 2024-05-16 Samsung Electronics Co., Ltd. A method and electronic device for secure on-device storage for machine learning models

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170243132A1 (en) * 2016-02-23 2017-08-24 Splunk Inc. Machine-Learning Data Analysis Tool
KR20190085823A (en) * 2018-01-11 2019-07-19 한국전자통신연구원 Personalized question-answering system, cloud server for privacy protection and method for providing shared nueral model thereof
US20200012892A1 (en) * 2018-07-06 2020-01-09 Capital One Services, LLC. Systems and methods for synthetic database query generation
KR20200028801A (en) * 2018-09-07 2020-03-17 서울대학교산학협력단 Learning method and learning device for variational interference using neural network and test method and test device for variational interference using the same
KR20200055836A (en) * 2018-11-12 2020-05-22 삼성전자주식회사 Method and apparatus for classifying data, method and apparatus for training classifier

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
US20170243132A1 (en) * 2016-02-23 2017-08-24 Splunk Inc. Machine-Learning Data Analysis Tool
KR20190085823A (en) * 2018-01-11 2019-07-19 한국전자통신연구원 Personalized question-answering system, cloud server for privacy protection and method for providing shared nueral model thereof
US20200012892A1 (en) * 2018-07-06 2020-01-09 Capital One Services, LLC. Systems and methods for synthetic database query generation
KR20200028801A (en) * 2018-09-07 2020-03-17 서울대학교산학협력단 Learning method and learning device for variational interference using neural network and test method and test device for variational interference using the same
KR20200055836A (en) * 2018-11-12 2020-05-22 삼성전자주식회사 Method and apparatus for classifying data, method and apparatus for training classifier

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024101582A1 (en) * 2022-11-09 2024-05-16 Samsung Electronics Co., Ltd. A method and electronic device for secure on-device storage for machine learning models

Also Published As

Publication number Publication date
KR102491755B1 (en) 2023-01-26
KR20220016588A (en) 2022-02-10

Similar Documents

Publication Publication Date Title
WO2017209548A1 (en) Device and method for generating artificial neural network-based prediction model
WO2021054514A1 (en) User-customized question-answering system based on knowledge graph
US5481718A (en) Object-oriented system having object models containing plural objects with instantiation following static classification by class relationships, dynamic classification by temporal instantiation, and causality restrictions
US5452450A (en) System of global update for time/language heterogeneous databases using a relational reference database and both request and database identifier files
WO2022030669A1 (en) Query-based deep learning inference system and method therefor
JPH03214851A (en) Data base management system for intelligent network
WO2020231226A1 (en) Method of performing, by electronic device, convolution operation at certain layer in neural network, and electronic device therefor
WO2020233089A1 (en) Test case generating method and apparatus, terminal, and computer readable storage medium
WO2023043018A1 (en) Reinforcement learning apparatus and method for optimizing location of object on basis of design data
WO2017175925A1 (en) Gateway for conversion between iec61850 and dnp3.0 and method for processing service requested from iec61850 client to dnp3.0 slave
WO2022030670A1 (en) Framework deep learning system and method using query
WO2020215576A1 (en) Method and apparatus for converting sql language into dsl language, computer device, and storage medium
Thomas Modelling and analysing user views of telecommunications services
WO2022114368A1 (en) Method and device for completing knowledge through neuro-symbolic-based relation embedding
WO2022191513A1 (en) Data augmentation-based knowledge tracking model training device and system, and operation method thereof
WO2022163996A1 (en) Device for predicting drug-target interaction by using self-attention-based deep neural network model, and method therefor
WO2022108029A1 (en) Machine tool predictive maintenance system using query-based deep learning inference system, and method for same
WO2022102982A1 (en) User participation-based artificial intelligence service method and device for performing same method
WO2020145591A1 (en) Method for generating natural language-based blockchain smart contract and apparatus therefor
WO2024101540A1 (en) Method of continual learning for transformer model based on adapter attention and apparatus thereof
WO2021015489A2 (en) Method and device for analyzing peculiar area of image by using encoder
WO2023095945A1 (en) Apparatus and method for generating synthetic data for model training
KR20220030680A (en) AI(Artificial Intelligence) service providing system and method for non-AI experts
WO2024019224A1 (en) Method for processing structured data and unstructured data in database, and data processing platform for providing method
WO2023128021A1 (en) Method for enhancing learning data set in natural language processing system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20948753

Country of ref document: EP

Kind code of ref document: A1