WO2022030670A1 - 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법 - Google Patents

쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법 Download PDF

Info

Publication number
WO2022030670A1
WO2022030670A1 PCT/KR2020/010625 KR2020010625W WO2022030670A1 WO 2022030670 A1 WO2022030670 A1 WO 2022030670A1 KR 2020010625 W KR2020010625 W KR 2020010625W WO 2022030670 A1 WO2022030670 A1 WO 2022030670A1
Authority
WO
WIPO (PCT)
Prior art keywords
learning
framework
model
query
network
Prior art date
Application number
PCT/KR2020/010625
Other languages
English (en)
French (fr)
Inventor
이준혁
Original Assignee
㈜한국플랫폼서비스기술
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ㈜한국플랫폼서비스기술 filed Critical ㈜한국플랫폼서비스기술
Publication of WO2022030670A1 publication Critical patent/WO2022030670A1/ko

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • 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

Definitions

  • the present invention relates to a framework deep learning learning system and method using a query, and more particularly, a framework plug-in to a database so that even users without professional knowledge on deep learning can provide information necessary for user learning without difficulty.
  • a framework deep learning using a query that is connected in the form of a query to provide information or data corresponding to the query by learning the information or data stored in the database by the query inputted during user learning in a deep learning method It relates to a learning system and method.
  • machine learning is provided in various forms as AI technology develops, and among them, deep learning is emerging as a representative machine learning method.
  • Such a deep learning machine learning method is a method of increasing the accuracy through repeated learning. As the accuracy of the result value is increased, the amount of data generated is enormous, and various auxiliary facilities are generated to process big data.
  • the large-capacity AI learning framework eventually manages (generates and combines) the learning input data through a query, which is a request for Q&A. It is used when inputting or outputting as a set.
  • the framework is connected to the database in the form of a plug-in so that even a user without professional knowledge about deep learning can provide information necessary for the user's learning without difficulty, so that the user's learning
  • a framework deep learning learning system and method using a query which learns information or data stored in the database by a query input at the time in a deep learning method, and provides information or data corresponding to the query .
  • a framework deep learning learning system using a query for achieving the above object, a database for storing a data set, a learning model, a learning parameter and a learning result; It is connected to the database in a plug-in method, and checks, corrects, and learns information or data stored in the database, but searches for data related to the input query in the database, and learns the search results in a deep learning method a learning framework that provides post-deep learning learning results; and an input/output module for inputting information, commands, and queries for learning into the learning framework, and outputting a deep learning learning result provided from the learning framework.
  • the learning framework sets the received query as a subject corresponding to a resource of a resource description framework (RDF) model, and for data stored in the database, a subject, Create at least one or more RDF models including predicate (Properties) and objects (Literals), determine whether the generated RDF models collide with each other, In this case, an RDF network is generated by merging, and objects having the same relevance may be selected based on the generated RDF network and provided as a search result.
  • RDF resource description framework
  • the learning framework uses the input query for humanities, society, economy, culture, science, art, religion, broadcasting, architecture, law, construction, music, administration, education, life, common sense, tool, person, event, medicine , Pharmacy, Business Administration, Psychology, Media, Politics, Diplomacy, Nursing, Environment, Physics, Machinery, Astronomy, Forestry, Industry, Life, Clothing, Shipbuilding, Marine, Chemistry, Aviation, Plant, Agriculture, Landscaping, Finance , it is possible to search for data corresponding to the corresponding classification in the database.
  • the learning framework executes network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), and initialization for all layers (Call Train)
  • network initialization Init Network
  • Construct Network Network
  • Update Network Network
  • Initialize all layers training is executed, and batch data is obtained until the end of training (Get Batch Data), and the results and model are stored by iteration (Store Result & Model), and when training is finished, the training result is obtained can provide
  • 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 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 another learning frame through a model converter It may be convertible to work.
  • 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 training framework may import and export an Open Neural Network Exchange (ONNX), a Neural Network Exchange Format (NNEF), and a model weight file including training parameters and biases in a structured format.
  • ONNX Open Neural Network Exchange
  • NEF Neural Network Exchange Format
  • model weight file including training parameters and biases in a structured format.
  • the learning framework may extend and support various formats other than ONNX, NNEF, and CSV.
  • the learning framework is used for compatibility with an external framework, and may include a model converter that uses a model format when importing a pre-trained model of an existing framework or exporting information or data from the database to the outside.
  • 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 framework deep learning learning method using a query is a query-based framework deep learning learning method of a framework interworking with a user terminal and a database, (a) receiving, by the framework, a query from the user terminal; (b) searching, by the framework, data related to the received query in the database; (c) learning, by the framework, the search result in a deep learning manner; And (d) the framework may include the step of providing the deep learning learning result to the user terminal.
  • step (b) the framework converts the input query into humanities, society, economy, culture, science, art, religion, broadcasting, architecture, law, construction, music, administration, education, life, common sense, tools, figures, events, medicine, pharmacy, management, psychology, journalism, politics, diplomacy, nursing, environment, physics, machinery, astronomy, forestry, industry, life, clothing, shipbuilding, marine, chemistry, aviation, plant, agriculture, landscaping, It is possible to classify one of finance and search for data corresponding to the corresponding classification in the database.
  • the framework sets the received query as a subject corresponding to a resource of a Resource Description Framework (RDF) model, and sets the data stored in the database to a subject.
  • RDF Resource Description Framework
  • description Predicate; Properties
  • target Object; Literals
  • an RDF network is generated by merging, and objects having the same relevance may be selected based on the generated RDF network and provided as a search result.
  • the framework 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. It can be converted to model format through a 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 framework is connected to the database in the form of a plug-in, and learning, inference, etc. can be performed using data stored in the database according to a user's request query.
  • a learning plan can be created, and the result of the executed learning can be checked.
  • FIG. 1 is a configuration diagram schematically showing the overall configuration of a framework deep learning learning system using a query according to an embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a flow of performing a learning technique using a query 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 deep learning learning method using a query 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.
  • FIG. 9 is a diagram illustrating an example of a main screen provided by a learning framework according to an embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a network creation function screen provided by a learning framework according to an embodiment of the present invention.
  • FIG. 11 is a diagram illustrating a screen for adding a network layer in a learning framework according to an embodiment of the present invention.
  • FIG. 12 is a diagram illustrating a parameter addition/modification/deletion screen when a network layer is added in the learning framework according to an embodiment of the present invention.
  • FIG. 13 is a diagram illustrating a screen for adding layer input information when a network layer is added in the learning framework according to an embodiment of the present invention.
  • FIG. 14 is a diagram illustrating a learning creation screen of a learning framework according to an embodiment of the present invention.
  • 15 is a diagram illustrating a learning execution screen of a learning framework according to an embodiment of the present invention.
  • 16 is a diagram illustrating a learning management screen of a learning framework according to an embodiment of the present invention.
  • 17 is a diagram illustrating a log management and resource management screen of a learning framework according to an embodiment of the present invention.
  • FIG. 18 is a diagram illustrating an operation flowchart for explaining a framework deep learning learning method using a query of a learning framework according to an embodiment of the present invention.
  • 19 is a diagram illustrating an example of generating data in a database as an RDF model using a query input from the learning framework according to an embodiment of the present invention.
  • 20 is a diagram illustrating an example of generating or merging an RDF model in a learning 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.
  • a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
  • a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer.
  • an application running on a server and a server may be a component.
  • One or more components may reside within a process and/or thread of execution, and a component may be localized on one computer, and/or distributed between two or more computers.
  • the term "infer” or “inference” generally refers to a system, environment, and/or user from a set of observations as captured through events and/or data. It refers to the process of inferring or estimating the states of Inference may be employed to identify a particular context or action, or may generate a probability distribution over states, for example.
  • the inference may be probabilistic, ie, the calculation of a probability distribution for states of interest based on consideration of data and events.
  • Inference may also refer to techniques employed to construct high-level events from a collection of events and/or data. Such inference can be made from a collection of observed events and/or stored event data, depending on whether or not events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources. Result that constitutes events or actions.
  • FIG. 1 is a configuration diagram schematically showing the overall configuration of a framework deep learning learning system using a query according to an embodiment of the present invention.
  • the framework deep learning learning system 100 using a query is a database (DB, 110), a learning framework ( QML, 120 ) and an input/output module 130 .
  • the input/output module 130 may be provided in the form of its own interface module inside the system, but may be implemented as a user terminal 130 as shown in FIG. 1 .
  • the user terminal 130 as an input/output module will be described as an example.
  • the input/output module 130 is its own interface module inside the system, the input device and the output device may be provided separately, and when the input/output device is implemented as one, it may be implemented as a touch interface module, for example. have.
  • Deep learning learning technology using a query is a technology in which the learning framework 120 is connected to the database 110 in the form of a plug-in and performs deep learning learning using data stored in the database 110 according to a user's request query. .
  • the database 110 may store a data set, a learning 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 model is a model used in machine learning and consists of input/output and parameters defining the inside of the model, parameters necessary for machine learning and inference, and is stored in a database in a relational data format, and is transferred to other learning frameworks through a model converter. may be convertible.
  • the learning 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 include a dataset table, a network table, a project table, a job table, and a common table.
  • 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
  • Learning framework 120 humanities, society, economy, culture, science, art, religion, broadcasting, architecture, law, construction, music, administration, education, living, common sense, tools, figures, events, medicine, pharmacy, business management, psychology, journalism, politics, diplomacy, nursing, environment, physics, machinery, astronomy, forestry, industry, life, clothing, shipbuilding, marine, chemistry, aviation, plant, agriculture, It is possible to classify one of landscaping and finance, and search for data corresponding to the corresponding classification in the database 110 .
  • the learning framework 120 sets the query input from the user terminal 130 as a subject corresponding to the resource of the RDF (Resource Description Framework) model, and the data stored in the database 110 .
  • RDF Resource Description Framework
  • the training framework 120 may import and export a model weight file including Open Neural Network Exchange (ONNX), Neural Network Exchange Format (NNEF), and training parameters and biases in a structured format in a structured format. have.
  • ONNX Open Neural Network Exchange
  • NEF Neural Network Exchange Format
  • the learning framework 120 may extend and support various formats other than ONNX, NNEF, and CSV.
  • the learning framework 120 is used for compatibility with an external framework and may include a model converter that uses a model format when importing a pre-trained model of an existing framework or exporting information or data from the database to the outside. .
  • the model converter may convert a network structure and model data defined in the model format into a network model table format of a database, or convert a network model of a database into a model format on the contrary.
  • the learning framework 120 is connected to the database 110 in a plug-in manner, and may check, correct, and add new data to information or data stored in the database 110 .
  • the learning framework 120 may be, for example, QML.
  • QML is a 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 learning framework 120 when receiving a query from the user terminal 130, the 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 the input According to a query, select information or data and a learning network model, set learning parameters, execute machine learning, provide intermediate and final results for learning, and select data and pre-learned learning models through an input query to select a machine learning model. Execute the inference and provide the inference result.
  • the learning framework 120 executes, when a learning query is input from the user terminal 130 (Call Train), network initialization (Init Network), network configuration (Construct Network), and network update (Update Network), all layers When the initialization (Initialize all layers) of the Learning results can be provided at the end of learning.
  • the user terminal 130 may input a query through the learning framework 120 and receive a learning result corresponding to the query from the database 110 through the 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 may request machine inference by selecting data and a pre-learned network model through a query, and check the inference result.
  • FIG. 2 is a flowchart showing the execution flow of a deep learning learning technique using a query according to an embodiment of the present invention.
  • the deep learning learning technology using a query stores a pre-learned model converted into ONNX format in QML format through a converter, and learns or infers from the user terminal 130 . It receives a query and transfers data or information from the database 110 to 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 .
  • the learning framework 120 may import or export a learning model (1).
  • the training framework 120 imports and exports a model weight file including Open Neural Network Exchange (ONNX), Neural Network Exchange Format (NNEF), and training parameters and biases in a structured format in a structured format. can do.
  • ONNX Open Neural Network Exchange
  • NEF Neural Network Exchange Format
  • the learning framework 120 may extend and support various formats other than ONNX, NNEF, and CSV.
  • the learning framework 120 when importing or exporting the learning model, converts it according to the schema structure of the database 110 through the model converter (2).
  • the database 110 interprets the query and performs an appropriate operation (3).
  • the 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 deep learning learning are Insert Network, Insert Layer, Make Project, Input Data Loader, Network Initialization (Init Network), and Train. , 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 framework deep learning learning method using a query according to an embodiment of the present invention.
  • the framework deep learning learning system 100 using a query is a query-based framework in the learning framework 120 interworking with the user terminal 130 and the database 110 . Execute the deep learning method of work.
  • the main screen provided by the learning framework 120 according to the present invention includes an information area 1 , a log area 2 , and a content area 3 as shown in FIG. 9 .
  • 9 is a diagram illustrating an example of a main screen provided by a learning framework according to an embodiment of the present invention.
  • the information area (1) represents learning, network, and data set lists
  • the log area (2) is an area where various logs can be viewed
  • the content area (3) displays function pop-ups such as learning management and network management. is the area
  • the learning framework 120 receives a learning query (Call Train) or an inference query (Call Test) from the user terminal 130 (S410).
  • the learning framework 120 uses a model converter for compatibility with an external framework, imports a pre-trained model of an existing framework, or when exporting information or data from the database 110 to the outside. It can be converted to model format through a converter.
  • the model converter may convert a network structure and model data defined in the model format into a network model table format of a database, or convert a network model of a database into a model format on the contrary.
  • the 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 learning framework 120 may perform a network generation function as shown in FIG. 10 .
  • 10 is a diagram illustrating a network creation function screen provided by a learning framework according to an embodiment of the present invention.
  • the network creation function includes network basic information input (1), data set (2), network optimizer (3) and network parameter (Network Parameter) (4), etc. is to set Network ID, Network Name, Network Type, Learning Rate, Batch, Train Iteration, and Output Layers can be input as basic network information.
  • the data set outputs a list of data sets suitable for the network type, and when the network type is 'Data regression', area 2-1 can be activated.
  • the network optimizer can set Adam/SGD as an optimizer parameter. And you can set the optimizer parameters.
  • the learning framework 120 may add a network layer as shown in FIG. 11 .
  • 11 is a diagram illustrating a screen for adding a network layer in a learning framework according to an embodiment of the present invention.
  • the network layer addition screen is divided into a network layer information input (1), a layer information output (2), and a layer parameter and input information output (3) areas.
  • network layer information a layer name, a layer type, a layer index, a layer parameter, a layer input information, and the like may be input.
  • the learning framework 120 may add, modify, or delete parameters as shown in FIG. 12 when adding a network layer.
  • 12 is a diagram illustrating a parameter addition/modification/deletion screen when a network layer is added in the learning framework according to an embodiment of the present invention.
  • the learning framework 120 may add (Add; 1), edit (Edit; 2), or delete (Delete; 3) parameters when adding a network layer.
  • Add (1) is a function to add layer parameters.
  • Add button (1) selects a layer parameter from the Layer Parameter Popup (2) and enters the layer parameter value.
  • Edit (2) is a layer parameter editing function.
  • Delete (3) is a function to delete layer parameters. Select a parameter in the parameter selection box (1), and click the Delete button on the right (2).
  • the learning framework 120 may add layer input information as shown in FIG. 13 .
  • 13 is a diagram illustrating a screen for adding layer input information when a network layer is added in the learning framework according to an embodiment of the present invention.
  • the learning framework 120 may add (Add; 1), edit (Edit; 2), or delete (Delete; 3) layer input information when adding a network layer.
  • Add (1) is a function of adding layer parameters.
  • the Add button (1) the input layer index and input tensor index are displayed in the layer input information popup (Input Layer Info Popup). Enter (2) and click the 'OK' button (3).
  • Edit (2) is a layer parameter editing function.
  • Delete (3) is a function to delete a layer parameter. In the Input Layer Info Popup selection box, select the input layer index (1), and click the Delete button on the right (2) ).
  • the learning framework 120 executes training or inference when initialization of all layers is performed (S430).
  • the learning framework 120 may provide a learning creation screen as shown in FIG. 14 .
  • 14 is a diagram illustrating a learning creation screen of a learning framework according to an embodiment of the present invention.
  • the learning framework 120 provides learning basic information input (1), optimizer parameter input (2), and dataset selection (3) areas through the learning creation screen. have.
  • the learning framework 120 may input a project name, a network, a network type, a learning rate, a GPU, a train mode, and the like as basic learning information 1 .
  • the learning framework 120 may input a parameter type (Adam/SDG) as an optimizer parameter.
  • the learning framework 120 may select data set information.
  • Adam/SDG parameter type
  • the learning framework 120 may provide a learning execution screen as shown in FIG. 15 .
  • 15 is a diagram illustrating a learning execution screen of a learning framework according to an embodiment of the present invention.
  • the learning framework 120 is a project name, batch size (Batch Size), steps (Steps), offset (Offset), volume (Volume), data shift (DataShift), epoch (Epoch) as shown in FIG. , Continue, Save teration, Validation step, Sync Interval, Estimated CPU usage indication, Estimated GPU usage indication, Required memory indication, etc. can be provided.
  • the learning framework 120 may provide a learning management screen as shown in FIG. 16 .
  • 16 is a diagram illustrating a learning management screen of a learning framework according to an embodiment of the present invention.
  • the learning framework 120 may provide a project ID, project name, dataset, network name, state information, learning start time, learning end time, learning execution time, etc. as learning management information, as shown in FIG. 16 . .
  • the learning framework 120 may obtain batch data (Get Batch Data) and iterate until the end of learning to store results and models (Store Result & Model).
  • the learning framework 120 may execute log management and resource management as shown in FIG. 17 .
  • 17 is a diagram illustrating a log management and resource management screen of a learning framework according to an embodiment of the present invention.
  • the learning framework 120 may perform resource management (1) and log management (2) functions as shown in FIG. 17 . That is, resources such as CPU, GPU, and memory can be managed, and logs such as learning history management, network history management, dataset history management, and job history management can be managed.
  • the learning framework 120 may execute a test, obtain test data (Get Test Data), feedforward, and store an inference result (Store Result).
  • the learning framework 120 provides the learning result or the inference result to the user terminal 130 at the end of the learning or inference (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 in response to a user's learning request, and the database 110 calls QML 120 to receive data as a factor. Pass it and return the result.
  • the learning framework 120 is, 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 learning framework 120 executes layer initialization (Init Layer) (S55) until initialization (Initialize all layers) for all layers is made (S54-No), and initialized layer information (Initialized Layer) Info) and executes a layer update (Update Layer) ( S56 ).
  • the learning framework 120 when initialization for all layers is made (S54-Yes), executes training (S57), until the end of learning (S58-No), obtains 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 provided to the user terminal 130 at the end of learning (S58-Yes) do (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 in response to a user's inference request, and the database 110 calls QML 120 to receive data as a factor. Pass it and return the result.
  • the 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 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 learning framework 120 when initialization for all layers is made (S67-Yes), executes an inference test (Test) (S70), obtains inference data (Get Test Data) (S71) feed Forward (feed forward) (S72), store the result (Store Result) (S73), and provide the inference result to the user terminal 130 (S74).
  • 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.).
  • external frameworks tensorflow, pytorch, caffe, etc.
  • ONNX Open Neural Network Exchange
  • the model converter converts the network structure and model data (weight, bias) defined in the ONNX model format into the network model table format of the database 110 (a). Conversely, the network model of the database 110 is converted into an 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 an ONNX model.
  • the model learned in the QML 120 is stored in the database 110 in the ONNX model format or as a CVS file through the Converter (Export) function.
  • the ONNX model stored in the database 110 can be converted into a target framework desired by the user and used.
  • QML is a 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. Functions defined in the learning framework 120 are registered in the database 110 through the UDF, and the 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).
  • 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 for each layer also follow 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 framework deep learning learning system 100 using a query can manage clients, members, datasets, networks, learning, learning execution, etc. as follows.
  • the framework deep learning learning system 100 using a query provides a function for managing a dataset and a machine learning process with the user terminal 130 and confirming the results.
  • the framework deep learning learning system 100 using a query grants the right to create and modify data of the database 110 and the network model through member management, and leave a change history.
  • the framework deep learning system 100 using a query 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. Displays the results of searching for data by accessing tables in the database or searching for data in the database through a user-written query.
  • the framework deep learning learning system 100 using a query 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 framework deep learning learning system 100 using a query 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 framework deep learning learning system 100 using a query provides a function for performing learning and inference and confirming the result.
  • FIG. 18 is a diagram illustrating an operation flowchart for explaining a framework deep learning learning method using a query of a learning framework according to an embodiment of the present invention.
  • the learning framework 120 interworking with the user terminal 130 and the database 120 receives a query from the user terminal 130 ( S1810 ).
  • the learning framework 120 searches the database 110 for data related to the received query (S1820).
  • the learning framework 120 analyzes the input query in humanities, society, economy, culture, science, art, religion, broadcasting, architecture, law, construction, music, administration, education, life, common sense, tool, person, event , medicine, pharmacy, business administration, psychology, journalism, politics, diplomacy, nursing, environment, physics, machinery, astronomy, forestry, industry, life, clothing, shipbuilding, marine, chemistry, aviation, plant, agriculture, landscaping, finance as one of It is to classify and search for data corresponding to the corresponding classification in the database 110 .
  • the learning framework 120 learns the search result in a deep learning method (S1830).
  • the learning framework 120 provides the deep learning learning result to the user terminal 130 (S1840).
  • the learning framework 120 sets the received query as a subject corresponding to a resource of the RDF (Resource Description Framework) model, and sets the data stored in the database 110 to the subject and description.
  • RDF Resource Description Framework
  • the learning framework 120 is the subject 1 (S1) as shown in FIG. 19 'Yun Seok-yeol', Subject 2 (S2) is set to 'Chu Mi-ae', and among the data stored in the database 110, 'Prosecutor's Office' related to 'Yun Seok-yeol' is set to Description 1 (P1), and 'Prosecutor General ' is set as object 1 (O1), and RDF model 1 is created by connecting them to each other.
  • the learning framework 120 sets the 'Ministry of Justice' related to 'Chu Mi-ae', which is the subject 2 (S2), as the description 2 (P2), and sets the 'Minister of Justice' as the target 2 (O2), and connects them to the RDF model to create 2.
  • the learning framework 120 generates RDF 2, RDF 3, , RDF n models in the same process as described above for other data in the database 120 .
  • the learning framework 120 sets the 'Seoul Central Prosecutor's Office' related to 'Yoon Seok-yeol', which is the subject 1 (S1), as description 5 (P5) as shown in FIG. 20 in the database 120, and , set the 'Prosecutor's Office' as the target 5 (O5) and then create the RDF model 5.
  • 20 is a diagram illustrating an example of generating or merging an RDF model in a learning framework according to an embodiment of the present invention. As shown in FIG.
  • the learning framework 120 generates a new RDF model 1 by merging the two RDF models because the RDF model 1 and the RDF model 5 have the same subject 1 ( S1 ).
  • S1 subject 1
  • 'Public Prosecutor's Office' in Narrative 1 (P1) and 'Prosecutor General' in Subject 1 (S1) are connected to 'Suk-Yeol Yoon', which is subject 1 (S1), 'Seoul Central Prosecutor's Office' and 'Subject 5' to Narration 5 (P5) (O5) is to create an RDF model connected to the 'chief of the prosecutor' at the same time.
  • the learning framework 120 generates an RDF model that is related to the subject 1 (S1) as an RDF model through the process as described above, and then merges the related RDF models to generate an RDF model that is easy to search, thereby generating the user terminal 130. It is possible to easily search for a target corresponding to the query inputted from
  • the framework is connected to the database in the form of a plug-in so that even users without professional knowledge on deep learning can provide information necessary for the user's learning without difficulty. It is possible to realize a framework deep learning learning system and method using a query that learns information or data stored in a database by a query in a deep learning manner, and provides information or data corresponding to the query.

Landscapes

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

Abstract

본 발명은 사용자의 학습 시에 입력된 쿼리에 의해 데이터베이스에 저장된 정보 또는 데이터를 딥러닝 방식으로 학습하여, 쿼리에 대응하는 정보 또는 데이터를 제공할 수 있도록 하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법이 개시된다. 개시된 쿼리를 이용한 프레임워크 딥러닝 학습 시스템은, 데이터 셋, 학습 모델, 학습 파라미터 및 학습 결과를 저장하는 데이터베이스; 상기 데이터베이스에 플러그인 방식으로 연결되고, 상기 데이터베이스에 저장된 정보 또는 데이터에 대한 확인, 수정 및 학습을 실행하되, 상기 입력받은 쿼리와 관련된 데이터를 상기 데이터베이스에서 탐색하고, 탐색 결과를 딥러닝 방식으로 학습한 후 딥러닝 학습 결과를 제공하는 학습 프레임워크; 및 상기 학습 프레임워크에 학습을 위한 정보, 명령 및 쿼리(query)를 입력하고, 상기 학습 프레임워크로부터 제공된 딥러닝 학습 결과를 출력하는 입출력 모듈을 포함할 수 있다.

Description

쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법
본 발명은 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법에 관한 것으로서, 더욱 자세하게는 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자의 학습에 필요한 정보를 제공할 수 있도록 프레임워크가 데이터베이스에 플러그인 형태로 연결되어, 사용자의 학습 시에 입력된 쿼리에 의해 데이터베이스에 저장된 정보 또는 데이터를 딥러닝 방식으로 학습하여, 쿼리에 대응하는 정보 또는 데이터를 제공할 수 있도록 하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법에 관한 것이다.
일반적으로 기계학습의 경우 AI 기술이 발전함에 따라 다양한 형태로 제공되고 있으며, 그 중 딥러닝 기법이 대표적인 기계학습의 방법으로 대두되고 있다.
이와 같은 딥러닝 기계학습 방법은 반복적인 학습을 통하여 그 정확도를 높여가는 방법으로, 결과값의 정확도를 높여갈수록 발생하는 데이터의 양도 방대해져 빅데이터를 처리하는데 다양한 부대시설 등이 발생하게 된다.
이에 따라, 분산처리 및 분산저장과 같은 기술들이 제안되고 있으며, 또한 각각의 운영체계 별로 다양한 형태의 학습 프로그램 등을 제공하게 된다.
이와 같은 현상으로 인하여 사용하는 AI 학습 프레임워크에 따라 사용자가 호환 작업을 해야 하거나, 또는 사용하는 학습데이터 도메인/알고리즘에 따른 학습 프레임워크를 별도로 구동해야 하는 불편함이 있었다.
또한, 다양한 이종 AI 학습 프레임워크들은 입력 데이터를 표현하는 데이터셋의 포맷 기준이 다르며, 이를 호환하기 위하여 별도의 데이터 컨버트 툴을 사용하거나 NoSQL 같은 대용량 파일관리의 분산 서비스를 활용하기도 한다.
이러한 문제점을 극복하기 위해 다양한 방법들이 시도되고 있으나, 단순히 공통적으로 사용되는 Open Source 트랜드를 반영하여 입력 데이터셋의 포맷을 호환하는 방법 등이 대부분이었으며, 사용자의 지식수준에 따라 이와 같은 호환 작업에서도 질적인 차이가 발생하여 기계학습의 결과가 달라지는 경우가 빈번하게 발생하고 있다.
대용량 학습 데이터(정형 또는 비정형)의 관리와 사용자의 PC 및 서버 장비의 폴더 및 디렉터리 구조로 작업을 진행하고 있으며, 이는 데이터의 무결성과 중복성 그리고 불필요한 하드웨어 저장 공간이 늘어나는 상황을 야기시킨다.
단순히 프로그램별 매칭을 통하여 호환하는 방법 등이 대부분이었으며, 사용자의 지식수준에 따라 이와 같은 호환 작업에서도 질적인 차이가 발생하여 기계학습의 결과가 달라지는 경우가 빈번하게 발생하고 있다.
이에 따라 대용량의 AI 학습 프레임워크는 결국 질의응답을 위한 요청사항인 쿼리(query)를 통하여 학습 입력 데이터를 관리(생성 및 조합)하게 되는 것이고, 이와 같은 쿼리는 DBMS에 데이터(DB)를 학습데이터 셋으로 입력하거나 출력할 때 사용하게 된다.
그러나, 앞서 말한 쿼리의 경우 그 사용상 작성이 매우 복잡할 수 있어, 일반적인 사용자가 사용하는데 난해한 문제가 발생할 수 있으며, 또한, 초기 질의응답에 대한 검색어 등을 잘못 입력할 경우 그 결과물의 질적 저하 및 작업시간이 길어져 비효율적인 문제가 발생할 수 있다.
또한, 다양한 이기종의 학습 프레임워크를 사용하는데 그 호환성의 문제 등이 야기되어 그 사용이 매우 복잡한 문제가 있다.
전술한 문제점을 해결하기 위한 본 발명의 목적은, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자의 학습에 필요한 정보를 제공할 수 있도록 프레임워크가 데이터베이스에 플러그인 형태로 연결되어, 사용자의 학습 시에 입력된 쿼리에 의해 데이터베이스에 저장된 정보 또는 데이터를 딥러닝 방식으로 학습하여, 쿼리에 대응하는 정보 또는 데이터를 제공할 수 있도록 하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법을 제공함에 있다.
전술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템은, 데이터 셋, 학습 모델, 학습 파라미터 및 학습 결과를 저장하는 데이터베이스; 상기 데이터베이스에 플러그인 방식으로 연결되고, 상기 데이터베이스에 저장된 정보 또는 데이터에 대한 확인, 수정 및 학습을 실행하되, 상기 입력받은 쿼리와 관련된 데이터를 상기 데이터베이스에서 탐색하고, 탐색 결과를 딥러닝 방식으로 학습한 후 딥러닝 학습 결과를 제공하는 학습 프레임워크; 및 상기 학습 프레임워크에 학습을 위한 정보, 명령 및 쿼리(query)를 입력하고, 상기 학습 프레임워크로부터 제공된 딥러닝 학습 결과를 출력하는 입출력 모듈을 포함할 수 있다.
상기 학습 프레임워크는, 상기 입력받은 쿼리를 RDF(Resource Description Framework) 모델의 자원(Resource)에 해당하는 주체(Subject)로 설정하여, 상기 데이터베이스 내에 저장되어 있는 데이터들에 대하여, 주체(Subject), 술부(Predicate; Properties), 대상(Object; Literals)을 포함하는 RDF 모델을 적어도 하나 이상으로 생성하고, 생성된 RDF 모델들 간에 서로 충돌하는지를 판단하여, 서로 충돌하는 경우에는 분리하고, 서로 충돌하지 않는 경우에는 병합하여 RDF 네트워크를 생성하며, 생성된 RDF 네트워크에 기반하여 관련성이 동일한 대상들을 선택하여 탐색 결과로 제공할 수 있다.
상기 학습 프레임워크는, 상기 입력받은 쿼리를 인문, 사회, 경제, 문화, 과학, 예술, 종교, 방송, 건축, 법률, 건설, 음악, 행정, 교육, 생활, 상식, 도구, 인물, 사건, 의학, 약학, 경영, 심리, 언론, 정치, 외교, 간호, 환경, 물리, 기계, 천문, 산림, 산업, 생명, 의류, 조선, 해양, 화학, 항공, 식물, 농업, 조경, 금융 중 하나로 분류하고, 상기 데이터베이스 내에서 해당 분류에 해당하는 데이터를 탐색할 수 있다.
상기 학습 프레임워크는, 상기 사용자 단말기로부터 학습 쿼리가 입력되면(Call Train), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train)을 실행하고, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장하며(Store Result & Model), 학습 종료시 학습 결과를 제공할 수 있다.
상기 데이터 셋은, 동일한 형식을 가진 정보 또는 데이터의 집합이고, 상기 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 음성을 포함하여 기계학습에 사용되는 모든 종류의 정보 또는 데이터일 수 있다.
상기 학습 모델은, 기계학습에 사용되는 모델로 입출력과 모델 내부를 정의하는 파라미터 그리고 기계학습, 추론에 필요한 파라미터들로 구성되고, 상기 데이터베이스에 관계형 데이터 형식으로 저장되며, 모델 컨버터를 통하여 다른 학습 프레임워크로 변환 가능할 수 있다.
상기 데이터베이스는 기계학습, 기계추론에 사용된 모든 입출력 데이터를 저장하고, 기계학습, 기계추론에 사용된 모델을 저장하며, 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공할 수 있다.
상기 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.
상기 학습 프레임워크는, ONNX(Open Neural Network Exchange), NNEF(Neural Network Exchange Format) 및 학습 파라미터와 바이어스를 포함하는 모델 Weight 파일을 구조화된 포맷으로 임포트(Import) 및 익스포트(Export) 할 수 있다.
상기 학습 프레임워크는, ONNX, NNEF, CSV 외 다양한 포맷을 확장하여 지원할 수 있다.
상기 학습 프레임워크는, 외부 프레임워크와의 호환성을 위해 사용되고, 기존 프레임워크의 기학습된 모델을 가져오거나 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 모델 포맷을 이용하는 모델 컨버터를 포함할 수 있다.
상기 모델 컨버터는, 상기 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 모델 포맷으로 변환할 수 있다.
상기 데이터베이스는, 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함할 수 있다.
한편, 전술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 방법은, 사용자 단말기 및 데이터베이스와 연동하는 프레임워크의 쿼리 기반 프레임워크 딥러닝 학습 방법으로서, (a) 상기 프레임워크가 상기 사용자 단말기로부터 쿼리(query)를 입력받는 단계; (b) 상기 프레임워크가 상기 입력받은 쿼리와 관련된 데이터를 상기 데이터베이스에서 탐색하는 단계; (c) 상기 프레임워크가 상기 탐색 결과를 딥러닝 방식으로 학습하는 단계; 및 (d) 상기 프레임워크가 상기 딥러닝 학습 결과를 상기 사용자 단말기로 제공하는 단계를 포함할 수 있다.
상기 (b) 단계에서 상기 프레임워크는, 상기 입력받은 쿼리를 인문, 사회, 경제, 문화, 과학, 예술, 종교, 방송, 건축, 법률, 건설, 음악, 행정, 교육, 생활, 상식, 도구, 인물, 사건, 의학, 약학, 경영, 심리, 언론, 정치, 외교, 간호, 환경, 물리, 기계, 천문, 산림, 산업, 생명, 의류, 조선, 해양, 화학, 항공, 식물, 농업, 조경, 금융 중 하나로 분류하고, 상기 데이터베이스 내에 해당 분류에 해당하는 데이터를 탐색할 수 있다.
상기 (b) 단계에서 상기 프레임워크는, 상기 입력받은 쿼리를 RDF(Resource Description Framework) 모델의 자원(Resource)에 해당하는 주체(Subject)로 설정하여, 상기 데이터베이스 내에 저장되어 있는 데이터들을 주체(Subject), 서술(Predicate; Properties), 대상(Object; Literals)을 포함하는 RDF 모델을 적어도 하나 이상으로 생성하고, 생성된 RDF 모델들 간에 서로 충돌하는지를 판단하여, 서로 충돌하는 경우에는 분리하고, 서로 충돌하지 않는 경우에는 병합하여 RDF 네트워크를 생성하며, 생성된 RDF 네트워크에 기반하여 관련성이 동일한 대상들을 선택하여 탐색 결과로 제공할 수 있다.
상기 (a) 단계에서 상기 프레임워크는, 외부 프레임워크와의 호환성을 위해 모델 컨버터를 사용하고, 기존 프레임워크의 기학습된 모델을 가져오거나, 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 상기 모델 컨버터를 통하여 모델 포맷으로 변환할 수 있다.
상기 모델 컨버터는, 상기 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 모델 포맷으로 변환할 수 있다.
본 발명에 의하면, 쿼리 기반의 학습 기술을 이용함으로써 프레임워크가 데이터베이스에 플러그인 형태로 연결되어 사용자의 요청 쿼리에 의해서 데이터베이스에 저장된 데이터를 사용하여 학습, 추론 등을 수행할 수 있다.
따라서, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 필요한 정보를 용이하게 제공받을 수 있다.
또한, 현재 실행 또는 대기 중인 학습 계획의 학습 파라미터를 확인할 수 있으며, 현재 실행 중인 학습 계획의 중간 및 결과를 확인할 수 있다.
또한, 현재 실행 중인 학습 계획을 멈출 수 있으며, 대기 중인 학습 계획을 시작할 수 있다.
또한, 등록된 네트워크 모델과 데이터 셋을 설정하여 학습 계획을 생성하고, 실행된 학습의 결과를 확인할 수 있다.
도 1은 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템의 전체적인 구성을 개략적으로 나타낸 구성도이다.
도 2는 본 발명의 실시 예에 따른 쿼리를 이용한 학습 기술의 수행 흐름을 나타낸 흐름도이다.
도 3은 본 발명의 실시 예에 따른 데이터베이스의 내부 데이터 흐름을 나타낸 도면이다.
도 4는 본 발명의 실시 예에 따른 쿼리를 이용한 딥러닝 학습 방법을 설명하기 위한 동작 흐름도를 나타낸 도면이다.
도 5는 본 발명의 실시 예에 따른 학습 프로시저의 실행 흐름을 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 추론 프로시저의 실행 흐름을 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 모델 컨버터의 변환 동작을 나타낸 도면이다.
도 8은 본 발명의 실시 예에 따른 QML 프레임워크의 내부 구조를 개략적으로 나타낸 도면이다.
도 9는 본 발명의 실시 예에 따른 학습 프레임워크에서 제공하는 메인 화면의 한 예를 나타낸 도면이다.
도 10은 본 발명의 실시 예에 따른 학습 프레임워크에서 제공하는 네트워크 생성 기능 화면을 나타낸 도면이다.
도 11은 본 발명의 실시예에 따른 학습 프레임워크에서 네트워크 레이어를 추가하는 화면을 나타낸 도면이다.
도 12는 본 발명의 실시 예에 따른 학습 프레임워크에서 네트워크 레이어의 추가시 파라미터 추가/수정/삭제 화면을 나타낸 도면이다.
도 13은 본 발명의 실시 예에 따른 학습 프레임워크에서 네트워크 레이어의 추가시 레이어 입력 정보를 추가하는 화면을 나타낸 도면이다.
도 14는 본 발명의 실시 예에 따른 학습 프레임워크의 학습 생성 화면을 나타낸 도면이다.
도 15는 본 발명의 실시 예에 따른 학습 프레임워크의 학습 실행 화면을 나타낸 도면이다.
도 16은 본 발명의 실시 예에 따른 학습 프레임워크의 학습 관리 화면을 나타낸 도면이다.
도 17은 본 발명의 실시 예에 따른 학습 프레임워크의 로그 관리 및 자원 관리 화면을 나타낸 도면이다.
도 18은 본 발명의 실시 예에 따른 학습 프레임워크의 쿼리를 이용한 프레임워크 딥러닝 학습 방법을 설명하기 위한 동작 흐름도를 나타낸 도면이다.
도 19는 본 발명의 실시 예에 따른 학습 프레임워크에서 입력받은 쿼리를 이용하여 데이터베이스의 내부에 있는 데이터들을 RDF 모델로 생성하는 예를 나타낸 도면이다.
도 20은 본 발명의 실시 예에 따른 학습 프레임워크에서 RDF 모델을 생성 또는 병합하는 예를 나타낸 도면이다.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우 뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
제1, 제2 및 제3 등의 용어들은 다양한 부분, 성분, 영역, 층 및/또는 섹션들을 설명하기 위해 사용되나 이들에 한정되지 않는다. 이들 용어들은 어느 부분, 성분, 영역, 층 또는 섹션을 다른 부분, 성분, 영역, 층 또는 섹션과 구별하기 위해서만 사용된다. 따라서, 이하에서 서술하는 제1 부분, 성분, 영역, 층 또는 섹션은 본 발명의 범위를 벗어나지 않는 범위 내에서 제2 부분, 성분, 영역, 층 또는 섹션으로 언급될 수 있다.
여기서 사용되는 전문 용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분의 존재나 부가를 제외시키는 것은 아니다.
다르게 정의하지는 않았지만, 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 보통 사용되는 사전에 정의된 용어들은 관련 기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.
어플리케이션에서 사용되는 바와 같이, "컴포넌트"와 "시스템"이라는 용어들은, 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행하는 소프트웨어인 컴퓨터 관련 개체를 언급하려 의도된다. 예를 들어, 컴포넌트는 프로세서에서 실행하는 프로세스, 프로세서, 객체, 실행파일, 실행의 스레드(thread), 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 제한되지는 않는다. 예로서, 서버에서 실행하는 어플리케이션과 서버 모두가 컴포넌트일 수 있다. 한 개 이상의 컴포넌트들은 프로세스 및/또는 실행의 스레드 내에 존재할 수 있고, 컴포넌트는 한 개의 컴퓨터에 로컬화될 수 있고, 및/또는 2개 이상의 컴퓨터들 간에 분산될 수 있다.
본 명세서에 사용된 바와 같이, "추론하다(infer)" 또는 "추론(inference)"이라는 용어는 일반적으로 이벤트들 및/또는 데이터를 통해 캡처된 것처럼 관찰의 집합으로부터 시스템, 환경, 및/또는 사용자의 상태들에 대해 추론하거나 추정하는 프로세스를 일컫는다. 추론은 특정 컨텍스트나 액션을 식별하기 위해 채택될 수 있거나, 또는 예를 들어, 상태들에 대해 확률 분포를 생성할 수 있다. 추론은 확률적일 수 있는데, 즉, 데이터와 이벤트들을 고려하는 것에 기반한 관심 상태들에 대한 확률 분포의 계산일 수 있다. 추론은 또한 이벤트들 및/또는 데이터의 집합으로부터 높은 레벨의 이벤트들을 구성하기 위해 채택되는 기술들을 일컬을 수 있다. 그런 추론은, 이벤트들이 가까운 시간 근접성에 상관되는지 아닌지의 여부, 및 이벤트들과 데이터가 1개 또는 여러 이벤트와 데이터 소스들로부터 오는지에 따라, 관찰된 이벤트들 및/또는 저장된 이벤트 데이터의 집합으로부터 새로운 이벤트들이나 액션들을 구성하는 결과를 가져온다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
도 1은 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템의 전체적인 구성을 개략적으로 나타낸 구성도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 쿼리를 이용한 딥러닝 학습 기술을 적용하기 위해, 데이터베이스(DB, 110), 학습 프레임워크(QML, 120) 및 입출력 모듈(130)을 포함한다.
여기서, 입출력 모듈(130)은 시스템의 내부에 자체적인 인터페이스 모듈 형태로 구비될 수 있으나, 도 1에 도시된 바와 같이 사용자 단말기(130)로 구현할 수 있다. 본 발명의 실시 예에서는 입출력 모듈로써 사용자 단말기(130)를 예를 들어 설명하기로 한다. 입출력 모듈(130)이 시스템의 내부에 자체적인 인터페이스 모듈인 경우에는 입력 장치와 출력 장치를 각각 별개로 구비할 수 있으며, 입출력 장치가 하나로 구현되는 경우에는 예를 들면, 터치 인터페이스 모듈로도 구현할 수 있다.
쿼리를 이용하는 딥러닝 학습 기술은, 학습 프레임워크(120)가 데이터베이스(110)에 플러그인 형태로 연결되어 사용자의 요청 쿼리에 의해서 데이터베이스(110)에 저장된 데이터를 사용하여 딥러닝 학습을 수행하는 기술이다.
데이터베이스(110)는 데이터 셋(Data Set), 학습 모델, 학습 파라미터 및 학습 결과를 저장할 수 있다.
데이터 셋은, 동일한 형식을 가진 정보 또는 데이터의 집합이다. 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 음성을 포함하여 기계학습에 사용되는 모든 종류의 정보 또는 데이터일 수 있다.
학습 모델은, 기계학습에 사용되는 모델로 입출력과 모델 내부를 정의하는 파라미터 그리고 기계학습, 추론에 필요한 파라미터들로 구성되고, 관계형 데이터 형식으로 데이터베이스에 저장되며, 모델 컨버터를 통하여 다른 학습 프레임워크로 변환 가능할 수 있다.
학습 모델은, 사용자에 의해 입력된 텍스트를 인식할 수 있고, 이미지, 오디오 및 동영상에 포함된 음성 및 텍스트를 인식할 수 있다. 또한, 인식한 음성 및 텍스트로부터 사용자 의향을 분석할 수 있다.
학습 결과는 기계학습이 진행되는 동안 중간 출력값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다. 기계학습이 진행되는 동안 모델 파라미터 값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다. 기계학습이 진행되는 동안 계산되는 모델의 평가지표 값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다. 기계추론 결과값이 데이터베이스(110)에 저장되어 사용자가 확인할 수 있다.
데이터베이스(110)는, 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함할 수 있다.
데이터베이스(110)는 기계학습, 기계추론에 사용된 모든 입출력 데이터를 저장하고, 기계학습, 기계추론에 사용된 모델을 저장하며, 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공할 수 있다. 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.
학습 프레임워크(120)는, 사용자 단말기(130)로부터 입력받은 쿼리를 인문, 사회, 경제, 문화, 과학, 예술, 종교, 방송, 건축, 법률, 건설, 음악, 행정, 교육, 생활, 상식, 도구, 인물, 사건, 의학, 약학, 경영, 심리, 언론, 정치, 외교, 간호, 환경, 물리, 기계, 천문, 산림, 산업, 생명, 의류, 조선, 해양, 화학, 항공, 식물, 농업, 조경, 금융 중 하나로 분류하고, 데이터베이스(110) 내에서 해당 분류에 해당하는 데이터를 탐색할 수 있다.
학습 프레임워크(120)는, 사용자 단말기(130)로부터 입력받은 쿼리를 RDF(Resource Description Framework) 모델의 자원(Resource)에 해당하는 주체(Subject)로 설정하여, 데이터베이스(110) 내에 저장되어 있는 데이터들에 대하여, 주체(Subject), 술부(Predicate; Properties), 대상(Object; Literals)을 포함하는 RDF 모델을 적어도 하나 이상으로 생성하고, 생성된 RDF 모델들 간에 서로 충돌하는지를 판단하여, 서로 충돌하는 경우에는 분리하고, 서로 충돌하지 않는 경우에는 병합하여 RDF 네트워크를 생성하며, 생성된 RDF 네트워크에 기반하여 관련성이 동일한 대상들을 선택하여 탐색 결과로 제공할 수 있다.
학습 프레임워크(120)는, ONNX(Open Neural Network Exchange), NNEF(Neural Network Exchange Format) 및 학습 파라미터와 바이어스를 포함하는 모델 Weight 파일을 구조화된 포맷으로 임포트(Import) 및 익스포트(Export) 할 수 있다.
학습 프레임워크(120)는, ONNX, NNEF, CSV 외 다양한 포맷을 확장하여 지원할 수 있다.
학습 프레임워크(120)는, 외부 프레임워크와의 호환성을 위해 사용되고 기존 프레임워크의 기학습된 모델을 가져오거나 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 모델 포맷을 이용하는 모델 컨버터를 포함할 수 있다.
모델 컨버터는, 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 데이터베이스의 네트워크 모델을 모델 포맷으로 변환할 수 있다.
학습 프레임워크(120)는 데이터베이스(110)에 플러그인 방식으로 연결되고, 데이터베이스(110)에 저장된 정보 또는 데이터에 대한 확인, 수정 및 새로운 데이터를 추가할 수 있다. 학습 프레임워크(120)는 예를 들면, QML을 예로 들 수 있다.
QML은 데이터베이스(110)에 플러그 인으로 설치된 학습 프레임워크로서 데이터베이스의 호출로 실행된다. QML은 호출될 때 데이터베이스(110)로부터 각종 데이터를 인자로 받아 수행결과를 반환한다. QML은 관계형 데이터 포맷으로 정의된 네트워크 모델을 해석하여 프레임워크 내부에 네트워크를 구성한다. QML은 데이터베이스(110)로부터 학습 파라미터와 학습 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크의 학습을 수행하고 학습결과를 반환한다. QML은 데이터베이스(110)로부터 입력 데이터를 인자로 받아 프레임워크 내부에 구성된 네트워크를 이용하여 기계추론을 수행하고 결과를 반환한다.
또한, 학습 프레임워크(120)는, 사용자 단말기(130)로부터 쿼리를 입력받으면, 데이터베이스(110)에 저장된 학습 네트워크 모델에 대한 확인, 수정, 및 새로운 학습을 위한 학습 네트워크 모델을 생성하며, 입력된 쿼리에 따라 정보 또는 데이터와 학습 네트워크 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 실행하고, 학습 중간 결과 및 최종 결과를 제공하며, 입력된 쿼리를 통하여 데이터와 기 학습된 학습 모델을 선택하여 기계추론을 실행하고, 그 추론 결과를 제공할 수 있다.
학습 프레임워크(120)는, 사용자 단말기(130)로부터 학습 쿼리가 입력되면(Call Train), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train)을 실행하고, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장하며(Store Result & Model), 학습 종료시 학습 결과를 제공할 수 있다.
사용자 단말기(130)는 학습 프레임워크(120)를 통하여 쿼리를 입력하고, 데이터베이스(110)로부터 학습 프레임워크(120)를 통하여 쿼리에 대응된 학습 결과를 수신할 수 있다.
또한, 사용자 단말기(130)는 쿼리를 통해서 데이터베이스(110)에 여러 기능들을 요청하고, 데이터베이스(110)로부터 결과를 응답 받는다. 사용자 단말기(130)는 쿼리를 통해서 데이터베이스(110)에 저장된 데이터를 확인, 수정하고, 새로운 데이터를 추가한다. 사용자 단말기(130)는 쿼리를 통해서 데이터베이스(110)에 저장된 네트워크 모델을 확인, 수정하고 새로운 학습을 위한 네트워크 모델을 생성한다. 사용자 단말기(130)는 쿼리를 통해서 데이터와 학습 네트워크 모델을 선택하고 학습 파라미터를 설정하여 기계학습을 요청하고, 학습 중간 결과 및 최종 결과를 확인한다. 사용자 단말기(130)는 쿼리를 통해서 데이터와 기학습 된 네트워크 모델을 선택하여 기계추론을 요청하고, 추론 결과를 확인할 수 있다.
도 2는 본 발명의 실시 예에 따른 쿼리를 이용한 딥러닝 학습 기술의 수행 흐름을 나타낸 흐름도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 쿼리를 이용하는 딥러닝 학습 기술은, ONNX 포맷으로 변환된 기학습된 모델을 컨버터를 통해서 QML 포맷으로 저장하고, 사용자 단말기(130)로부터 학습 또는 추론 쿼리를 입력받으며, 데이터베이스(110)에서 데이터 또는 정보를 QML로 전달하여 학습 및 추론을 수행한다. 그리고, 학습 또는 추론 결과를 데이터베이스(110)에 저장하면, 사용자 단말기(130)가 데이터베이스(110)에 저장된 결과를 확인한다.
먼저 학습 프레임워크(120)는 학습 모델을 임포트(Import)하거나, 익스포트(Export) 할 수 있다(①).
즉, 학습 프레임워크(120)는, ONNX(Open Neural Network Exchange), NNEF(Neural Network Exchange Format) 및 학습 파라미터와 바이어스를 포함하는 모델 Weight 파일을 구조화된 포맷으로 임포트(Import) 및 익스포트(Export) 할 수 있다.
또한, 학습 프레임워크(120)는, ONNX, NNEF, CSV 외 다양한 포맷을 확장하여 지원할 수 있다.
또한, 학습 프레임워크(120)는, 학습 모델을 임포트 또는 익스포트 할 때, 모델 컨버터를 통하여 데이터베이스(110)의 스키마 구조에 맞게 변환한다(②).
또한, 데이터베이스(110)는 쿼리를 해석하여 적절한 작업을 수행한다(③).
또한, 학습 프레임워크(120)는 데이터베이스(110)에 플러그인을 수행하고, 데이터베이스(110)로부터 받은 정보를 통해 학습 및 추론을 수행한다(④).
또한, 사용자 단말기(130)는 쿼리를 통해 데이터베이스(110)로 학습 또는 추론을 요청할 수 있다(⑤).
또한, 사용자 단말기(130)는 데이터베이스(110)의 테이블을 조회하여 학습 관련 정보를 조회할 수 있다(⑥).
그리고, 모델 데이터는 데이터베이스(110)에 QML 스키마로 저장된다(⑦).
도 3은 본 발명의 실시 예에 따른 데이터베이스의 내부 데이터 흐름을 나타낸 도면이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 데이터베이스(110)는, 기계학습과 관련된 데이터들을 저장하고, 기계학습에 필요한 기능들을 프로시저(Procedure)로 제공하여 사용자 요청에 의해 기계학습을 수행한다.
데이터베이스(110)에서, 테이블(Table)은 크게 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함할 수 있다.
데이터 셋은 데이터 종류를 포함하고, 네트워크는 네트워크 종류, lenet을 포함하며, 프로젝트는 네트워크의 정보를 복사해 학습 또는 추론 작업을 진행한다. 작업 테이블은 사용자 정보, 프로젝트의 상태, 로그 등을 포함하고, 공통 테이블은 레이어 타입, 오류 코드 등 룩업 테이블을 포함한다.
네트워크 테이블에 네트워크 모델 정보가 저장되어 있고, 프로젝트 테이블에는 네트워크 테이블로부터 복사된 실제 학습이나 추론을 진행할 프로젝트 정보가 저장된다. 프로젝트가 생성된 후 네트워크 테이블과 별개의 구성을 가지게 되므로, 프로젝트에 사용된 기반 네트워크가 수정되더라도 영향이 없다. 개수가 많고 가변적인 데이터(입출력 데이터 및 가중치 정보)는 blob 또는 text 타입으로, 개수가 적고 가변적인 데이터(각 레이어 파라미터 등)는 레코드를 분할하여 저장하도록 되어 있다.
딥러닝 학습에 필요한 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 네트워크 초기화(Init Network), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함할 수 있다.
인서트 네트워크는 네트워크 이름, 네트워크 타입, 데이터셋 이름, 옵티마이저 타입, 옵티마이저 파라미터, 학습률, 배치 크기, 학습 횟수, 출력 레이어 인덱스를 포함하는 네트워크를 생성한다.
인서트 레이어는, 네트워크 아이디, 레이어 이름, 레이어 타입, 레이어 인덱스, 레이어 파라미터, 입력 레이어 인덱스를 포함하는 레이어를 등록한다.
메이크 프로젝트는, 프로젝트 이름, 데이터셋 이름, 네트워크 이름, 학습 또는 추론 플래그, GPU 개수를 포함하는 프로젝트를 생성한다.
입력 데이터 로더는, 네트워크 입력의 선택(레이어 인덱스, 쿼리 타입(2:학습 테이블, 0:학습 데이터, 4:검증 테이블, 3:검증 데이터)에 따라 쿼리를 입력한다.
네트워크 초기화는, 네트워크 모델을 구성한다.
트레인은, 프로젝트 아이디, 학습 세대 수, 배치 사이즈, 이어서 학습 여부, 저장 간격, 검증 간격, GPU 동기화 간격을 포함하는 학습을 시작한다.
모델 저장은, 프로젝트 테이블의 네트워크 정보를 네트워크 테이블로 복사(프로젝트 이름, 네트워크 이름)한다.
테스트는, 프로젝트 아이디, 모든 레이어의 결과 저장 여부 플래그를 포함하는 추론을 시작한다.
도 4는 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 방법을 설명하기 위한 동작 흐름도를 나타낸 도면이다.
도 4를 참조하면, 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 사용자 단말기(130) 및 데이터베이스(110)와 연동하는 학습 프레임워크(120)에서 쿼리 기반 프레임워크 딥러닝 학습 방법을 실행한다.
본 발명에 따른 학습 프레임워크(120)에서 제공하는 메인 화면은 도 9에 도시된 바와 같이 정보 영역(1), 로그(Log) 영역(2) 및 컨텐츠(Contents) 영역(3)을 포함한다. 도 9는 본 발명의 실시 예에 따른 학습 프레임워크에서 제공하는 메인 화면의 한 예를 나타낸 도면이다. 정보 영역(1)은 학습, 네트워크, 데이터 셋 리스트를 표현하고, 로그 영역(2)은 각종 로그를 볼 수 있는 영역이며, 컨텐츠 영역(3)은 학습 관리, 네트워크 관리 등의 기능 팝업을 표시하는 영역이다.
학습 프레임워크(120)는 사용자 단말기(130)로부터 학습 쿼리(Call Train) 또는 추론 쿼리(Call Test)를 입력받는다(S410).
이때, 학습 프레임워크(120)는, 외부 프레임워크와의 호환성을 위해 모델 컨버터를 사용하고, 기존 프레임워크의 기학습된 모델을 가져오거나, 데이터베이스(110)에서 정보 또는 데이터를 외부로 내보낼 때 모델 컨버터를 통하여 모델 포맷으로 변환할 수 있다.
모델 컨버터는, 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 데이터베이스의 네트워크 모델을 모델 포맷으로 변환할 수 있다.
이어, 학습 프레임워크(120)는 학습 쿼리 또는 추론 쿼리에 따라 네트워크 초기화(Init Network), 네트워크 구성(Construct Network) 및 네트워크 갱신(Update Network)을 실행한다(S420).
여기서, 학습 프레임워크(120)는 도 10에 도시된 바와 같이 네트워크 생성 기능을 수행할 수 있다. 도 10은 본 발명의 실시 예에 따른 학습 프레임워크에서 제공하는 네트워크 생성 기능 화면을 나타낸 도면이다. 도 10에 도시된 바와 같이, 네트워크 생성 기능은 네트워크 기본 정보 입력(1), 데이터 셋(Dataset)(2), 네트워크 옵티마이저(Network Optimizer)(3) 및 네트워크 파라미터(Network Parameter)(4) 등을 설정하는 것이다. 네트워크 기본 정보로서 네트워크 ID, 네트워크 이름(Name), 네트워크 타입(Network Type), 학습률(Learning Rate), 배치(Batch), 트레인 반복(Train Iteration), 출력 레이어들(Output Layers)을 입력할 수 있다. 데이터 셋은 네트워크 타입에 맞는 데이터셋 리스트를 출력하고, 네트워크 타입이 'Data regression'인 경우에 2-1 영역을 활성화 할 수 있다. 네트워크 옵티마이저는 옵티마이저 파라미터로서 Adam/SGD를 설정할 수 있다. 그리고 옵티마이저 파라미터를 설정할 수 있다.
또한, 학습 프레임워크(120)는 도 11에 도시된 바와 같이 네트워크 레이어를 추가할 수 있다. 도 11은 본 발명의 실시예에 따른 학습 프레임워크에서 네트워크 레이어를 추가하는 화면을 나타낸 도면이다. 도 11에 도시된 바와 같이, 네트워크 레이어 추가 화면은 네트워크 레이어 정보 입력(1), 레이어 정보 출력(2), 레이어 파라미터 및 입력 정보 출력(3) 영역으로 구분된다. 네트워크 레이어 정보로서 레이어 이름(Layer Name), 레이어 타입(Layer Type), 레이어 인덱스(Layer Index), 레이어 파라미터(Layer Parameter), 레이어 입력 정보(Layer Input Info) 등을 입력할 수 있다.
또한, 학습 프레임워크(120)는 네트워크 레이어를 추가할 때 도 12에 도시된 바와 같이 파라미터를 추가하거나 수정하거나 삭제할 수 있다. 도 12는 본 발명의 실시 예에 따른 학습 프레임워크에서 네트워크 레이어의 추가시 파라미터 추가/수정/삭제 화면을 나타낸 도면이다. 학습 프레임워크(120)는 도 12에 도시된 바와 같이, 네트워크 레이어의 추가시 파라미터를 추가(Add; 1), 수정(Edit; 2), 삭제(Delete; 3) 할 수 있다. 추가(1)는 레이어 파라미터 추가 기능으로써, 사용자가 Add 버튼을 클릭하면(①), 레이어 파라미터 팝업(Layer Parameter Popup)에서 레이어 파라미터(Layer Parameter)를 선택하고(②), 레이어 파라미터 값을 입력한 후(③), 'OK' 버튼을 클릭한다(④). 수정(2)은 레이어 파라미터 수정 기능으로써, 파라미터(Params) 선택 박스에서 파라미터를 선택하고(①), 우측의 수정 버튼(Edit Button)을 클릭하며(②), 파라미터 수정 팝업(Parameter Edit Popup)에서 파라미터 값을 입력한 후(③), 'OK' 버튼을 클릭한다(④). 삭제(3)는 레이어 파라미터 삭제 기능으로써, 파라미터(Params) 선택 박스에서 파라미터를 선택하고(①), 우측의 삭제(Delete) 버튼을 클릭한다(②).
또한, 학습 프레임워크(120)는 네트워크 레이어를 추가할 때 도 13에 도시된 바와 같이 레이어 입력(Layer Input) 정보를 추가할 수 있다. 도 13은 본 발명의 실시 예에 따른 학습 프레임워크에서 네트워크 레이어의 추가시 레이어 입력 정보를 추가하는 화면을 나타낸 도면이다. 학습 프레임워크(120)는 도 13에 도시된 바와 같이, 네트워크 레이어의 추가시 레이어 입력 정보를 추가(Add; 1), 수정(Edit; 2), 삭제(Delete; 3) 할 수 있다. 추가(1)는 레이어 파라미터 추가 기능으로써, 사용자가 Add 버튼을 클릭하면(①), 레이어 입력 정보 팝업(Input Layer Info Popup)에서 입력 레이어 인덱스(Input Layer Index)와 입력 텐서 인덱스(Input Tensor Index)를 입력하고(②), OK' 버튼을 클릭한다(③). 수정(2)은 레이어 파라미터 수정 기능으로써, 입력 정보(Input Infos) 선택 박스에서 입력 레이어 인덱스(Input Layer Index)를 선택하고(①), 우측의 수정 버튼(Edit Button)을 클릭하며(②), 레이어 입력 정보 팝업(Input Layer Info Popup)에서 레이어 인덱스(Layer Index)와 입력 텐서 인덱스(Input Tensor Index) 값을 수정한 후(③), 'OK' 버튼을 클릭한다(④). 삭제(3)는 레이어 파라미터 삭제 기능으로써, 레이어 입력 정보(Input Layer Info Popup) 선택 박스에서 입력 레이어 인덱스(Input Layer Index)를 선택하고(①), 우측의 삭제(Delete) 버튼을 클릭한다(②).
이어, 학습 프레임워크(120)는 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train) 또는 추론(Test)을 실행한다(S430).
여기서, 학습 프레임워크(120)는 도 14에 도시된 바와 같이 학습 생성 화면을 제공할 수 있다. 도 14는 본 발명의 실시 예에 따른 학습 프레임워크의 학습 생성 화면을 나타낸 도면이다. 학습 프레임워크(120)는 도 14에 도시된 바와 같이 학습 생성 화면을 통해 학습 기본 정보 입력(1), 옵티마이저 파라미터(Optimizer Parameter) 입력(2), 데이터셋 선택(3) 영역을 제공할 수 있다. 학습 프레임워크(120)는 학습 기본 정보(1)로써 프로젝트 명, 네트워크, 네트워크 타입, 학습율(Learning Rate), GPU, 트레인 모드(Train Mode) 등을 입력할 수 있다. 또한, 학습 프레임워크(120)는 옵티마이저 파라미터로써 파라미터 타입(Adam/SDG)을 입력할 수 있다. 그리고 학습 프레임워크(120)는 데이터셋 정보를 선택할 수 있다.
또한, 학습 프레임워크(120)는 도 15에 도시된 바와 같이 학습 실행 화면을 제공할 수 있다. 도 15는 본 발명의 실시 예에 따른 학습 프레임워크의 학습 실행 화면을 나타낸 도면이다. 학습 프레임워크(120)는 도 15에 도시된 바와 같이 프로젝트 명, 배치 사이즈(Batch Size), 단계(Steps), 오프셋(Offset), 볼륨(Volume), 데이터 쉬프트(DataShift), 에퍼크(Epoch), 계속(Continue), 종료 저장(Save teration), 검증 단계(Validation step), 동기화 간격(Sync Interval), 예상 CPU 사용량 표시, 예상 GPU 사용량 표시, 필요한 메모리 표시 등을 제공할 수 있다.
또한, 학습 프레임워크(120)는 도 16에 도시된 바와 같이 학습 관리 화면을 제공할 수 있다. 도 16은 본 발명의 실시 예에 따른 학습 프레임워크의 학습 관리 화면을 나타낸 도면이다. 학습 프레임워크(120)는 도 16에 도시된 바와 같이 학습 관리 정보로써 프로젝트 ID, 프로젝트 명, 데이터셋, 네트워크명, 상태 정보, 학습 시작 시간, 학습 종료 시간, 학습 실행 시간 등을 제공할 수 있다.
학습 프레임워크(120)는, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장(Store Result & Model)할 수 있다.
또한, 학습 프레임워크(120)는 도 17에 도시된 바와 같이 로그 관리 및 자원 관리를 실행할 수 있다. 도 17은 본 발명의 실시 예에 따른 학습 프레임워크의 로그 관리 및 자원 관리 화면을 나타낸 도면이다. 학습 프레임워크(120)는 도 17에 도시된 바와 같이 자원 관리(1) 및 로그 관리(2) 기능을 수행할 수 있다. 즉 CPU, GPU, 메모리(Memory) 등의 자원을 관리할 수 있으며, 학습 이력 관리, 네트워크 이력 관리, 데이터셋 이력 관리, 작업 이력 관리 등의 로그를 관리할 수 있다.
또한, 학습 프레임워크(120)는, 테스트(Test)를 실행하고, 테스트 데이터를 획득하여(Get Test Data) 피드 포워드(feedforward)하고 추론 결과를 저장(Store Result)할 수 있다.
이어, 학습 프레임워크(120)는 학습 또는 추론의 종료시 학습 결과 또는 추론 결과를 사용자 단말기(130)로 제공한다(S440).
전술한 학습 과정 또는 추론 과정에 대하여 아래에서 각각 구분하여 설명한다.
도 5는 본 발명의 실시 예에 따른 학습 프로시저의 실행 흐름을 나타낸 도면이다.
도 5를 참조하면, 본 발명의 실시 예에 따른 학습 프레임워크(120)에서는 사용자의 학습 요청에 대해 다음과 같은 단계가 실행되고, 데이터베이스(110)에서는 QML(120)을 호출하여 데이터를 인자로 넘겨주어 결과를 반환받는다.
먼저, 학습 프레임워크(120)는, 사용자 단말기(130)로부터 학습 쿼리가 입력되어 학습이 호출되면(Call Train)(S50), 네트워크 초기화(Init Network)(S51), 네트워크 구성(Construct Network)(S52), 네트워크 갱신(Update Network)(S53)을 실행한다.
또한, 학습 프레임워크(120)는, 모든 층에 대한 초기화(Initialize all layers)가 이루어지기까지(S54-No), 레이어 초기화(Init Layer)(S55)를 실행하고, 초기화된 레이어 정보(Initialized Layer Info)를 획득하며, 레이어 갱신(Update Layer)(S56)을 실행한다.
또한, 학습 프레임워크(120)는, 모든 층에 대한 초기화가 이루어지면(S54-Yes), 학습(Train)을 실행하고(S57), 학습 종료시까지(S58-No) 배치 데이터를 획득하고(Get Batch Data)(S59), 반복 되풀이(Iteration)하여(S60), 결과 및 모델을 저장하며(Store Result & Model)(S610), 학습 종료시(S58-Yes) 학습 결과를 사용자 단말기(130)로 제공한다(S62).
도 6은 본 발명의 실시 예에 따른 추론 프로시저의 실행 흐름을 나타낸 도면이다.
도 6을 참조하면, 본 발명의 실시 예에 따른 학습 프레임워크(120)에서는 사용자의 추론 요청에 대해 다음과 같은 단계가 실행되고, 데이터베이스(110)에서는 QML(120)을 호출하여 데이터를 인자로 넘겨주어 결과를 반환받는다.
먼저, 학습 프레임워크(120)는, 사용자 단말기(130)로부터 추론 쿼리가 입력되어 추론이 호출되면(Call Test)(S63), 네트워크 초기화(Init Network)(S64), 네트워크 구성(Construct Network)(S65), 네트워크 갱신(Update Network)(S66)을 실행한다.
또한, 학습 프레임워크(120)는, 모든 층에 대한 초기화(Initialize all layers)가 이루어지기까지(S67-No), 레이어 초기화(Init Layer)(S68) 및 레이어 갱신(Update Layer)(S69)을 실행한다.
또한, 학습 프레임워크(120)는, 모든 층에 대한 초기화가 이루어지면(S67-Yes), 추론 테스트(Test)를 실행하고(S70), 추론 데이터를 획득하여(Get Test Data)(S71) 피드 포워드(feed forward)하고(S72), 결과를 저장하며(Store Result)(S73), 추론 결과를 사용자 단말기(130)로 제공한다(S74).
도 7은 본 발명의 실시 예에 따른 모델 컨버터의 변환 동작을 나타낸 도면이다.
도 7을 참조하면, 본 발명의 실시 예에 따른 데이터베이스(110)에 저장된 네트워크 모델은 외부 프레임워크(tensorflow, pytorch, caffe, etc.)와의 호환성을 위해 모델 컨버터를 필요로 한다. 기존 프레임워크의 기학습된 모델을 가져오거나 데이터베이스 외부로 내보낼 때 예를 들면, ONNX(Open Neural Network Exchange) 포맷을 사용한다.
모델 컨버터는, ONNX 모델 포맷에 정의된 network structure 및 model data(weight, bias)를 데이터베이스(110)의 네트워크 모델 테이블 포맷으로 변환한다(a). 반대로 데이터베이스(110)의 네트워크 모델을 ONNX 모델로 변환한다(b).
기존 프레임워크(Caffe, tensorflow, pytorch, etc.)에서 기계학습된 모델은 사용자가 ONNX 모델로 변환 후 Converter(Import) 기능을 통해서 데이터베이스(110)에 업로드할 수 있다.
QML(120)에서 학습한 모델은 Converter(Export) 기능을 통해서 데이터베이스(110)에서 ONNX 모델 포맷, 또는 CVS 파일로 저장한다.
데이터베이스(110)에 저장된 ONNX 모델은 사용자가 원하는 target 프레임 워크로 변환하여 사용할 수 있다.
한편, 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 데이터)이다.
QML 프레임워크에서는 채널 우선 데이터 포맷인 NCHW(N:batch, C: channel, H:height, W:width) 포맷을 따른다. 레이어 종류는 ONNX에서 사용되는 레이어를 지원하며, 각 레이어에 정의된 파라미터들도 ONNX 포맷을 따른다.
QML 프레임워크는 네트워크 모델을 학습 가능 하도록 backpropagation 알고리즘이 구현되어 있다. Backpropagation의 필수 요소인 gradient 계산 알고리즘과 모델 파라미터(weight, bias)를 업데이트 시키기 위한 optimization 알고리즘이 구현되어 있다. 네트워크 모델을 학습하는 방식은 두가지로 Train from scratch 및 Fine tuning을 지원한다. Train from scratch는 네트워크 모델을 처음부터 학습시킨다. 각 레이어의 가중치들은 가중치 초기화 알고리즘을 통해 결정된다. Fine tuning은 기학습된 모델의 가중치(import 기능을 통해 데이터베이스에 저장되거나, 이전 학습시도를 통해서 구한 가중치)를 읽어와서 레이어의 초기 가중치를 설정하고 학습을 진행한다.
도 8은 본 발명의 실시 예에 따른 QML 프레임워크의 내부 구조를 개략적으로 나타낸 도면이다.
도 8을 참조하면, 본 발명의 실시 예에 따른 학습 프레임워크(120)에서, QML_네트워크_t(qml_network_t)는 복수 개의 QML_레이어_t(qml_network_t)로 구성되고, 하나의 QML_레이어_t(qmll_network_t)는 복수 개의 QML_텐서_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_network_t는 여러 개의 qml_layer_t 및 네트워크 파라미터들을 들고 있다.
Object qml_layer_t 는 입출력 텐서(qml_tensor_t) 들을 갖고 있고, Object qml_tensor_t는 NCHW 포멧으로 구성된 4차원 텐서이고, 내부에는 dtype, qml_shape_t, data, name 등이 포함되어 있다.
한편, 본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 다음과 같이 클라이언트, 회원, 데이터셋, 네트워크, 학습, 학습 실행 등을 관리할 수 있다.
[클라이언트]
본 발명의 실시 예에 따른 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 사용자 단말기(130)로 데이터셋과 기계학습 과정을 관리하고 결과를 확인하기 위한 기능을 제공한다.
[회원 관리]
또한, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 회원관리를 통해서 데이터베이스(110)의 데이터, 네트워크 모델의 생성, 수정 권한을 부여하고 변경 이력을 남긴다.
[데이터셋 관리]
또한, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 데이터셋을 관리하기 위하여 새로운 테이블을 생성하고, 데이터를 조회, 수정, 업로드하기 위한 기능을 제공한다. 새로운 데이터셋을 생성할 때 자동으로 새로운 테이블을 생성하고, 데이터를 업로드한다. 데이터베이스의 테이블에 접근하여 데이터를 조회거나 사용자가 작성한 쿼리를 통해서 데이터베이스의 데이터를 조회한 결과를 보여준다. 권한에 따라 데이터를 수정한다. 사용자로부터 수치데이터를 입력 받거나, 하나 이상의 파일을 읽어서 데이터 업로드를 진행한다. 학습 데이터의 레이블을 작성(tagging)하는 기능을 제공한다.
[네트워크 관리]
또한, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 다음과 같이 네트워크 모델을 관리하기 위한 기능을 제공한다. 지원되는 레이어를 추가하고 레이어 파라미터를 조정하여 새로운 네트워크 모델을 생성한다. 기존에 작성된 네트워크 모델 리스트를 조회한다. 기존에 작성된 네트워크 모델에 새로운 레이어를 추가하여 새로운 네트워크 모델을 생성한다. 네트워크 모델을 시각화하여 보여주는 기능을 제공한다.
[학습 관리]
또한, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 다음과 같이 학습을 관리하기 위한 기능을 제공한다. 네트워크 모델과 데이터셋, 학습 파라미터를 조절하여 학습을 생성 또는 수정한다. 학습이 끝난 네트워크 모델을 컨버터 기능을 통해 출력한다. 현재 사용 중인 서버의 자원을 확인한다.
[학습 실행 관리]
또한, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템(100)은, 학습 및 추론을 수행하고 결과를 확인하기 위한 기능을 제공한다. 서버의 자원을 확인한다. 학습 및 추론 수행이 가능한지 여부를 사용자에게 알려준다. 현재 실행 또는 대기 중인 학습계획 리스트를 조회한다. 등록된 네트워크 모델과 데이터셋, 학습 파라미터를 설정하여 학습계획을 생성한다. 현재 실행 또는 대기 중인 학습계획의 학습 파라미터를 확인할 수 있다. 현재 실행 중인 학습계획의 중간 및 결과를 확인할 수 있다. 현재 실행 중인 학습계획을 멈출 수 있다. 대기 중인 학습계획을 시작할 수 있다. 등록된 네트워크 모델과 데이터셋을 설정하여 추론계획을 생성한다. 실행된 추론 계획의 결과를 확인할 수 있다.
도 18은 본 발명의 실시 예에 따른 학습 프레임워크의 쿼리를 이용한 프레임워크 딥러닝 학습 방법을 설명하기 위한 동작 흐름도를 나타낸 도면이다.
도 18을 참조하면, 사용자 단말기(130) 및 데이터베이스(120)와 연동하는 학습 프레임워크(120)는 사용자 단말기(130)로부터 쿼리(query)를 입력받는다(S1810).
이어, 학습 프레임워크(120)는 입력받은 쿼리와 관련된 데이터를 데이터베이스(110)에서 탐색한다(S1820).
즉, 학습 프레임워크(120)는 입력받은 쿼리를 인문, 사회, 경제, 문화, 과학, 예술, 종교, 방송, 건축, 법률, 건설, 음악, 행정, 교육, 생활, 상식, 도구, 인물, 사건, 의학, 약학, 경영, 심리, 언론, 정치, 외교, 간호, 환경, 물리, 기계, 천문, 산림, 산업, 생명, 의류, 조선, 해양, 화학, 항공, 식물, 농업, 조경, 금융 중 하나로 분류하고, 데이터베이스(110) 내에 해당 분류에 해당하는 데이터를 탐색하는 것이다.
이어, 학습 프레임워크(120)는 탐색 결과를 딥러닝 방식으로 학습한다(S1830).
그리고, 학습 프레임워크(120)는 딥러닝 학습 결과를 사용자 단말기(130)로 제공한다(S1840).
학습 프레임워크(120)는 입력받은 쿼리를 RDF(Resource Description Framework) 모델의 자원(Resource)에 해당하는 주체(Subject)로 설정하여, 데이터베이스(110) 내에 저장되어 있는 데이터들을 주체(Subject), 서술(Predicate; Properties), 대상(Object; Literals)을 포함하는 RDF 모델을 적어도 하나 이상으로 생성하고, 생성된 RDF 모델들 간에 서로 충돌하는지를 판단하여, 서로 충돌하는 경우에는 분리하고, 서로 충돌하지 않는 경우에는 병합하여 RDF 네트워크를 생성하며, 생성된 RDF 네트워크에 기반하여 관련성이 동일한 대상들을 선택하여 탐색 결과로 제공하는 것이다.
예를 들면, 학습 프레임워크(120)는 사용자 단말기(130)로부터 '추미애', '윤석열'이라는 두 개의 쿼리가 입력된 경우, 도 19에 도시된 바와 같이 주체1(S1)은 '윤석열', 주체2(S2)는 '추미애'로 설정하고, 데이터 베이스(110)의 내부에 저장되어 있는 데이터들 중에 '윤석열'과 관련되어 있는 '검찰청'을 서술1(P1)로 설정하고, '검찰총장'을 대상1(O1)로 설정하여, 서로 연결하여 RDF 모델1을 생성한다. 도 19는 본 발명의 실시 예에 따른 학습 프레임워크에서 입력받은 쿼리를 기반으로 데이터베이스의 내부에 있는 데이터들을 이용하여 RDF 모델을 생성하는 예를 나타낸 도면이다. 학습 프레임워크(120)는 주체2(S2)인 '추미애'와 관련된 '법무부'를 서술2(P2)로 설정하고, '법무장관'을 대상2(O2)로 설정하여, 서로 연결함으로써 RDF 모델2를 생성하는 것이다.
또한, 학습 프레임워크(120)는 데이터베이스(120)에서 다른 데이터들을 전술한 바와 같은 동일한 과정으로 RDF 2, RDF 3, , RDF n 모델들을 생성한다. 예를 들어, 학습 프레임워크(120)는 데이터베이스(120)에서 도 20에 도시된 바와 같이 주체1(S1)인 '윤석열'과 관련이 있는 '서울중앙지검'을 서술5(P5)로 설정하고, '지검장'을 대상5(O5)로 설정한 후 RDF 모델5를 생성한다. 도 20은 본 발명의 실시 예에 따른 학습 프레임워크에서 RDF 모델을 생성 또는 병합하는 예를 나타낸 도면이다. 도 20에 도시된 바와 같이, 학습 프레임워크(120)는 RDF 모델1과 RDF 모델5가 동일한 주체1(S1)을 가지므로, 두 RDF 모델을 병합하여 새로운 RDF 모델1을 생성한다. 즉, 주체1(S1)인 '윤석열'에 서술1(P1)인 '검찰청'과 대상1(O1)인 '검찰총장'이 연결된 상태에서 서술5(P5)로 '서울중앙지검'과 대상5(O5)로 '지검장'이 동시에 연결된 RDF 모델을 생성하는 것이다.
학습 프레임워크(120)는 전술한 바와 같은 과정으로 주체1(S1)과 관련이 있는 데이터들을 RDF 모델로 생성한 후 관련 RDF 모델들을 병합시켜 검색에 용이한 RDF 모델을 생성함으로써 사용자 단말기(130)로부터 입력받은 쿼리에 해당하는 대상을 용이하게 탐색할 수 있다.
전술한 바와 같이 본 발명에 의하면, 딥러닝에 관한 전문적 지식이 없는 사용자라도 어려움 없이 사용자의 학습에 필요한 정보를 제공할 수 있도록 프레임워크가 데이터베이스에 플러그인 형태로 연결되어, 사용자의 학습 시에 입력된 쿼리에 의해 데이터베이스에 저장된 정보 또는 데이터를 딥러닝 방식으로 학습하여, 쿼리에 대응하는 정보 또는 데이터를 제공할 수 있도록 하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법을 실현할 수 있다.
본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
<부호의 설명>
100 : 쿼리를 이용한 프레임워크 딥러닝 학습 시스템
110 : 데이터베이스
120 : 학습 프레임워크
130 : 사용자 단말기

Claims (15)

  1. 데이터 셋, 학습 모델, 학습 파라미터 및 학습 결과를 저장하는 데이터베이스;
    상기 데이터베이스에 플러그인 방식으로 연결되고, 상기 데이터베이스에 저장된 정보 또는 데이터에 대한 확인, 수정 및 학습을 실행하되, 상기 입력받은 쿼리와 관련된 데이터를 상기 데이터베이스에서 탐색하고, 탐색 결과를 딥러닝 방식으로 학습한 후 딥러닝 학습 결과를 제공하는 학습 프레임워크; 및
    상기 학습 프레임워크에 학습을 위한 정보, 명령 및 쿼리(query)를 입력하고, 상기 학습 프레임워크로부터 제공된 딥러닝 학습 결과를 출력하는 입출력 모듈;
    을 포함하고,
    상기 학습 프레임워크는, 상기 입력받은 쿼리를 RDF(Resource Description Framework) 모델의 자원(Resource)에 해당하는 주체(Subject)로 설정하여, 상기 데이터베이스 내에 저장되어 있는 데이터들에 대하여, 주체(Subject), 술부(Predicate; Properties), 대상(Object; Literals)을 포함하는 RDF 모델을 적어도 하나 이상으로 생성하고, 생성된 RDF 모델들 간에 서로 충돌하는지를 판단하여, 서로 충돌하는 경우에는 분리하고, 서로 충돌하지 않는 경우에는 병합하여 RDF 네트워크를 생성하며, 생성된 RDF 네트워크에 기반하여 관련성이 동일한 대상들을 선택하여 탐색 결과로 제공하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  2. 제 1 항에 있어서,
    상기 데이터 셋은, 동일한 형식을 가진 정보 또는 데이터의 집합이고, 상기 정보 또는 데이터는 숫자, 문자, 이미지, 영상, 음성을 포함하여 기계학습에 사용되는 모든 종류의 정보 또는 데이터인, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  3. 제 1 항에 있어서,
    상기 학습 모델은, 기계학습에 사용되는 모델로 입출력과 모델 내부를 정의하는 파라미터 그리고 기계학습, 추론에 필요한 파라미터들로 구성되고, 상기 데이터베이스에 관계형 데이터 형식으로 저장되며, 모델 컨버터를 통하여 다른 학습 프레임워크로 변환 가능한, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  4. 제 1 항에 있어서,
    상기 데이터베이스는 기계학습, 기계추론에 사용된 모든 입출력 데이터를 저장하고, 기계학습, 기계추론에 사용된 모델을 저장하며, 사용자의 쿼리 요청에 대응하는 프로시저(procedure)를 제공하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  5. 제 4 항에 있어서,
    상기 프로시저는, 인서트 네트워크(Insert Network), 인서트 레이어(Insert Layer), 메이크 프로젝트(Make Project), 입력 데이터 로더(Input Data Loader), 트레인(Train), 모델 저장(Save Model) 및 테스트(Test)를 포함하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  6. 제 1 항에 있어서,
    상기 학습 프레임워크는,
    외부 프레임워크와의 호환성을 위해 사용되고, 기존 프레임워크의 기학습된 모델을 가져오거나 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 모델 포맷을 이용하는 모델 컨버터;
    를 포함하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  7. 제 6 항에 있어서,
    상기 모델 컨버터는, 상기 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 ONNX 모델 포맷으로 변환하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  8. 제 1 항에 있어서,
    상기 데이터베이스는, 데이터셋 테이블(Dataset Table), 네트워크 테이블(Network Table), 프로젝트 테이블(Project Table), 작업 테이블(Job Table), 공통 테이블(Common Table)을 포함하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  9. 제 1 항에 있어서,
    상기 학습 프레임워크는, 상기 사용자 단말기로부터 학습 쿼리가 입력되면(Call Train), 네트워크 초기화(Init Network), 네트워크 구성(Construct Network), 네트워크 갱신(Update Network)을 실행하며, 모든 층에 대한 초기화(Initialize all layers)가 이루어지면 학습(Train)을 실행하고, 학습 종료시까지 배치 데이터를 획득하고(Get Batch Data) 반복(Iteration)하여 결과 및 모델을 저장하며(Store Result & Model), 학습 종료시 학습 결과를 제공하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  10. 제 1 항에 있어서,
    상기 학습 프레임워크는, 상기 입력받은 쿼리를 인문, 사회, 경제, 문화, 과학, 예술, 종교, 방송, 건축, 법률, 건설, 음악, 행정, 교육, 생활, 상식, 도구, 인물, 사건, 의학, 약학, 경영, 심리, 언론, 정치, 외교, 간호, 환경, 물리, 기계, 천문, 산림, 산업, 생명, 의류, 조선, 해양, 화학, 항공, 식물, 농업, 조경, 금융 중 하나로 분류하고, 상기 데이터베이스 내에서 해당 분류에 해당하는 데이터를 탐색하는, 쿼리를 이용한 프레임워크 딥러닝 학습 시스템.
  11. 사용자 단말기 및 데이터베이스와 연동하는 프레임워크의 쿼리를 이용한 프레임워크 딥러닝 학습 방법으로서,
    (a) 상기 프레임워크가 상기 사용자 단말기로부터 쿼리(query)를 입력받는 단계;
    (b) 상기 프레임워크가 상기 입력받은 쿼리와 관련된 데이터를 상기 데이터베이스에서 탐색하는 단계;
    (c) 상기 프레임워크가 상기 탐색 결과를 딥러닝 방식으로 학습하는 단계; 및
    (d) 상기 프레임워크가 상기 딥러닝 학습 결과를 상기 사용자 단말기로 제공하는 단계;
    를 포함하는, 쿼리를 이용한 프레임워크 딥러닝 학습 방법.
  12. 제 11 항에 있어서,
    상기 (b) 단계에서 상기 프레임워크는, 상기 입력받은 쿼리를 인문, 사회, 경제, 문화, 과학, 예술, 종교, 방송, 건축, 법률, 건설, 음악, 행정, 교육, 생활, 상식, 도구, 인물, 사건, 의학, 약학, 경영, 심리, 언론, 정치, 외교, 간호, 환경, 물리, 기계, 천문, 산림, 산업, 생명, 의류, 조선, 해양, 화학, 항공, 식물, 농업, 조경, 금융 중 하나로 분류하고, 상기 데이터베이스 내에 해당 분류에 해당하는 데이터를 탐색하는, 쿼리를 이용한 프레임워크 딥러닝 학습 방법.
  13. 제 11 항에 있어서,
    상기 (b) 단계에서 상기 프레임워크는, 상기 입력받은 쿼리를 RDF(Resource Description Framework) 모델의 자원(Resource)에 해당하는 주체(Subject)로 설정하여, 상기 데이터베이스 내에 저장되어 있는 데이터들을 주체(Subject), 서술(Predicate; Properties), 대상(Object; Literals)을 포함하는 RDF 모델을 적어도 하나 이상으로 생성하고, 생성된 RDF 모델들 간에 서로 충돌하는지를 판단하여, 서로 충돌하는 경우에는 분리하고, 서로 충돌하지 않는 경우에는 병합하여 RDF 네트워크를 생성하며, 생성된 RDF 네트워크에 기반하여 관련성이 동일한 대상들을 선택하여 탐색 결과로 제공하는, 쿼리를 이용한 프레임워크 딥러닝 학습 방법.
  14. 제 11 항에 있어서,
    상기 (a) 단계에서 상기 프레임워크는, 외부 프레임워크와의 호환성을 위해 모델 컨버터를 사용하고, 기존 프레임워크의 기학습된 모델을 가져오거나, 상기 데이터베이스에서 정보 또는 데이터를 외부로 내보낼 때 상기 모델 컨버터를 통하여 모델 포맷으로 변환하는, 쿼리를 이용한 프레임워크 딥러닝 학습 방법.
  15. 제 14 항에 있어서,
    상기 모델 컨버터는, 상기 모델 포맷에 정의된 망 구조(network structure) 및 모델 데이터(model data)를 상기 데이터베이스의 네트워크 모델 테이블 포맷으로 변환하거나, 반대로 상기 데이터베이스의 네트워크 모델을 상기 모델 포맷으로 변환하는, 쿼리를 이용한 프레임워크 딥러닝 학습 방법.
PCT/KR2020/010625 2020-08-03 2020-08-11 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법 WO2022030670A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200096813A KR102491753B1 (ko) 2020-08-03 2020-08-03 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법
KR10-2020-0096813 2020-08-03

Publications (1)

Publication Number Publication Date
WO2022030670A1 true WO2022030670A1 (ko) 2022-02-10

Family

ID=80118226

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/010625 WO2022030670A1 (ko) 2020-08-03 2020-08-11 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR102491753B1 (ko)
WO (1) WO2022030670A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102641532B1 (ko) * 2022-10-20 2024-02-28 (주)한국플랫폼서비스기술 사생활 보호 딥러닝 프레임워크 응용 컴퓨팅 장치 및 그 방법
CN116595154B (zh) * 2023-07-14 2023-12-12 阿里巴巴(中国)有限公司 任务处理方法以及自动问答方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100963885B1 (ko) * 2010-03-30 2010-06-17 한국과학기술정보연구원 Rdf 네트워크 기반 연관검색 서비스 시스템 및 방법
KR100978740B1 (ko) * 2010-04-16 2010-08-30 한국과학기술정보연구원 Rdf 탐색기반 질의응답 서비스 시스템 및 방법
US20170243132A1 (en) * 2016-02-23 2017-08-24 Splunk Inc. Machine-Learning Data Analysis Tool
US20190384816A1 (en) * 2018-03-23 2019-12-19 Abbyy Production Llc Information extraction from natural language texts
US20200012892A1 (en) * 2018-07-06 2020-01-09 Capital One Services, LLC. Systems and methods for synthetic database query generation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102058124B1 (ko) 2019-01-25 2019-12-23 (주)비아이매트릭스 피벗 테이블 구조의 olap 결과를 이용한 딥러닝 예측 데이터 반영 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100963885B1 (ko) * 2010-03-30 2010-06-17 한국과학기술정보연구원 Rdf 네트워크 기반 연관검색 서비스 시스템 및 방법
KR100978740B1 (ko) * 2010-04-16 2010-08-30 한국과학기술정보연구원 Rdf 탐색기반 질의응답 서비스 시스템 및 방법
US20170243132A1 (en) * 2016-02-23 2017-08-24 Splunk Inc. Machine-Learning Data Analysis Tool
US20190384816A1 (en) * 2018-03-23 2019-12-19 Abbyy Production Llc Information extraction from natural language texts
US20200012892A1 (en) * 2018-07-06 2020-01-09 Capital One Services, LLC. Systems and methods for synthetic database query generation

Also Published As

Publication number Publication date
KR102491753B1 (ko) 2023-01-26
KR20220016641A (ko) 2022-02-10

Similar Documents

Publication Publication Date Title
WO2022030670A1 (ko) 쿼리를 이용한 프레임워크 딥러닝 학습 시스템 및 방법
WO2019098449A1 (ko) 메트릭 학습 기반의 데이터 분류와 관련된 장치 및 그 방법
WO2015137641A2 (ko) 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법
Rosenthal et al. Tools and transformations—rigorous and otherwise—for practical database design
WO2022191368A1 (ko) 자연어 의도를 분류하는 뉴럴 네트워크 훈련을 위한 데이터 처리 방법 및 장치
US11853904B2 (en) Agnostic creation, version control, and contextual query of knowledge graph
WO2010123168A1 (ko) 데이터베이스 관리 방법 및 시스템
WO2018097407A1 (ko) 사용자 정의 erp 펑션 공유 방법 및 시스템
CN113297251A (zh) 多源数据检索方法、装置、设备及存储介质
US20050033719A1 (en) Method and apparatus for managing data
Jakobson et al. CALIDA: a system for integrated retrieval from multiple heterogeneous databases
WO2022030669A1 (ko) 쿼리 기반 딥러닝 추론 시스템 및 그 방법
WO2017191877A1 (ko) 프로버넌스 관리를 위한 압축 장치 및 방법
WO2022035074A1 (ko) 문서 데이터에서 질병 관련 인자들 간의 관계를 추출하는 방법 및 이를 이용하여 구축되는 시스템
US20050038812A1 (en) Method and apparatus for managing data
WO2023149767A1 (en) Modeling attention to improve classification and provide inherent explainability
WO2017159906A1 (ko) 원문의 번역어순을 결정하는 데이터 구조, 상기 구조를 생성하는 프로그램 및 이를 저장하는 컴퓨터 판독가능 저장매체
WO2024019225A1 (ko) 복수의 서로 다른 데이터베이스 상의 정형 데이터와 비정형 데이터를 처리하는 방법 및 이러한 방법을 제공하는 데이터 처리 플랫폼
WO2022145503A1 (ko) 시맨틱 레스트 에이피아이 제공 방법
JP2798118B2 (ja) データベース問合せ文作成装置
WO2024136161A1 (ko) 임상시험 디지털 데이터의 표준화 방법
WO2021075793A1 (ko) 데이터 베이스에 포함된 데이터를 분석하는 데이터 분석 장치 및 방법
WO2024101540A1 (ko) 어댑터 어텐션 기반의 트랜스포머 모델 연속 학습 방법 및 그 장치
WO2022092330A1 (ko) Dcat 기반 메타데이터 변환 시스템
Bibi et al. Conceptual Model for Component Selection: A Research Review on Existing Techniques

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

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

Country of ref document: EP

Kind code of ref document: A1