KR20220026647A - System for sharing or selling machine learning model and operating method thereof - Google Patents

System for sharing or selling machine learning model and operating method thereof Download PDF

Info

Publication number
KR20220026647A
KR20220026647A KR1020200107159A KR20200107159A KR20220026647A KR 20220026647 A KR20220026647 A KR 20220026647A KR 1020200107159 A KR1020200107159 A KR 1020200107159A KR 20200107159 A KR20200107159 A KR 20200107159A KR 20220026647 A KR20220026647 A KR 20220026647A
Authority
KR
South Korea
Prior art keywords
machine learning
learning model
server
information
watermarking
Prior art date
Application number
KR1020200107159A
Other languages
Korean (ko)
Other versions
KR102453673B1 (en
Inventor
정재민
이정근
Original Assignee
한림대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한림대학교 산학협력단 filed Critical 한림대학교 산학협력단
Priority to KR1020200107159A priority Critical patent/KR102453673B1/en
Publication of KR20220026647A publication Critical patent/KR20220026647A/en
Application granted granted Critical
Publication of KR102453673B1 publication Critical patent/KR102453673B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Third-party assisted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation

Abstract

The present invention relates to an operation method of a server for sharing or selling machine learning models. According to the present invention, the operation method comprises the following steps: receiving registration information related to a machine learning model from a provider terminal; receiving the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the provider terminal; applying the test data set to the test code to acquire a test result; approving the machine learning model on the basis of the test result; performing watermarking when the machine learning model is approved to acquire watermarking result information; and storing the registration information related to the machine learning model, the machine learning model, the test code, the test data set, and the watermarking result information in a database.

Description

기계학습모델 공유 또는 판매를 위한 시스템 및 시스템의 동작 방법{SYSTEM FOR SHARING OR SELLING MACHINE LEARNING MODEL AND OPERATING METHOD THEREOF}SYSTEM FOR SHARING OR SELLING MACHINE LEARNING MODEL AND OPERATING METHOD THEREOF

본 개시는 기계학습모델의 공유 또는 판매를 위한 시스템 및 시스템의 동작 방법에 대한 것이다. The present disclosure relates to a system for sharing or selling a machine learning model and an operating method of the system.

최근 인공지능 딥러닝에 대한 사회적 수요가 크게 증가하고 있다. 기술이 빠르게 진보함에 따라 많은 기업, 기관 또는 개인이 딥러닝 기술에 관심을 가지고 각자의 응용분야에 적용하려는 시도가 점차 늘어나고 있다. 이렇게 사회적 수요가 폭발함에도 불구하고, 데이터 수집 및 데이터 정제를 포함한 기술에 난이도가 있어서, 기업, 기관 또는 개인은 딥러닝 기술을 적용하는데 어려움을 겪고 있다. 이러한 어려움은 자체 연구진을 꾸릴 수 없는 중소형 기업 및 기관에서 더 크게 문제되고 있다.Recently, the social demand for artificial intelligence deep learning has increased significantly. As technology advances rapidly, many companies, institutions, or individuals are interested in deep learning technology and are increasingly trying to apply it to their respective fields of application. Despite this explosion of social demand, there are difficulties in technology including data collection and data purification, so companies, institutions, or individuals have difficulties in applying deep learning technology. These difficulties are more problematic for small and medium-sized enterprises and institutions that cannot have their own research team.

기업, 기관 또는 개인은 거대 글로벌 기업에서 개발된, 누구나 사용하기 편한 다양한 소프트웨어 패키지를 활용하여 딥러닝 기술을 사용할 수 있다. 하지만, 특화된 분야에 맞는 적합한 모델을 개발하는 것은 딥러닝에 대한 깊은 이해를 필요로 하므로 많은 어려움이 발생할 수 있다. Companies, institutions, or individuals can use deep learning technology by utilizing a variety of easy-to-use software packages developed by large global companies. However, developing an appropriate model for a specialized field requires a deep understanding of deep learning, so many difficulties may arise.

일차적으로 수백에서 수백만 건의 데이터에 대한 획득 및 정제 그리고 레이블링 등의 작업은 노동-집약적인 작업으로 많은 시간이 소요된다. 소규모 회사에서 소수의 인원으로 처리할 수 있는 문제가 아니다. 또한, 이차적으로 정제된 데이터에 근거하여 적합한 딥러닝 모델을 개발하고 학습하는 것은 많은 컴퓨팅 지원이 요구되며 최신의 컴퓨팅 장치를 사용한다고 하더라도 수일에서 수십일이 걸리는 매우 시간 소모적인 작업이라 할 수 있다. 최근 활용도가 높아지고 있는 클라우드 서비스를 사용한다고 하더라도 최적의 모델 탐색을 위해서는 많은 양의 클라우드 사용시간과 비용이 필요하게 된다. 이러한 노동집약적이면서도 높은 시간과 비용은 중소형 기업이 인공지능을 도입하는 것을 방해하는 매우 큰 요소라고 할 수 있다.First, the acquisition, purification, and labeling of hundreds to millions of data is labor-intensive and time-consuming. It's not something a small company can handle with a handful of people. In addition, developing and training a suitable deep learning model based on secondarily refined data requires a lot of computing support and is a very time-consuming task that takes several to tens of days even with the latest computing devices. Even if you use a cloud service, which has recently been increasingly used, a large amount of cloud usage time and cost is required to search for an optimal model. This labor-intensive, high time and cost is a very big factor that prevents small and medium-sized enterprises from adopting artificial intelligence.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계, 공급자 단말기로부터 기계학습모델, 기계학습모델에 대한 테스트 코드, 및 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계, 테스트 데이터 세트를 테스트 코드에 적용하여 테스트 결과를 획득하는 단계, 테스트 결과에 기초하여 기계학습모델을 승인하는 단계, 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하는 단계, 및 기계학습모델과 관련된 등록 정보, 기계학습모델, 테스트 코드, 테스트 데이터 세트, 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함한다.The operating method of a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving registration information related to a machine learning model from a supplier terminal, a machine learning model from a supplier terminal, a test code for the machine learning model, and machine learning Receiving a test data set for the model, applying the test data set to test code to obtain test results, approving the machine learning model based on the test results, watermarking when the machine learning model is approved Obtaining watermarking result information by performing, and storing registration information related to the machine learning model, machine learning model, test code, test data set, and watermarking result information in a database.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법의 워터마킹 결과정보를 획득하는 단계는 워터마크 이미지 및 워터마크 이미지에 대한 레이블을 획득하는 단계, 기계학습모델은 워터마크 이미지 및 워터마크 이미지에 대한 레이블에 기초하여 추가적으로 학습되는 단계, 및 기계학습모델에 워터마크 이미지를 적용하여 워터마킹 결과정보를 획득하는 단계를 포함한다.The step of obtaining the watermarking result information of the operating method of the server for sharing or selling the machine learning model of the present disclosure is the step of obtaining a watermark image and a label for the watermark image, the machine learning model is a watermark image and a water A step of additionally learning based on the label for the mark image, and the step of applying the watermark image to a machine learning model to obtain watermarking result information.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기의 요청에 따라 기계학습모델과 관련된 등록 정보를 수요자 단말기로 송신하는 단계, 수요자 단말기로부터 선택된 기계학습모델에 대한 식별 정보를 수신하는 단계, 선택된 기계학습모델을 수요자 단말기로 송신하는 단계, 선택된 기계학습모델에 대한 워터마크 이미지 및 워터마킹 결과정보를 수요자 단말기로 송신하는 단계, 및 수요자 단말기에서 선택된 기계학습모델에 대한 워터마크 이미지를 선택된 기계학습모델에 적용하여 워터마킹 확인정보를 생성하고, 선택된 기계학습모델에 대한 워터마킹 결과정보 및 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 수요자 단말기로부터 수신하는 단계를 포함한다.The method of operation of a server for sharing or selling a machine learning model of the present disclosure includes transmitting registration information related to the machine learning model to the consumer's terminal at the request of the consumer's terminal, and identifying information about the machine learning model selected from the consumer's terminal. receiving, transmitting the selected machine learning model to the consumer terminal, transmitting a watermark image for the selected machine learning model and watermarking result information to the consumer terminal, and a watermark for the machine learning model selected in the consumer terminal and generating watermarking confirmation information by applying the image to the selected machine learning model, and receiving information about whether the watermarking result information and the watermarking confirmation information for the selected machine learning model match from the consumer terminal.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계, 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 수요자 단말기에 데이터 세트를 요청하는 단계, 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트를 포함하는 데이터 세트를 수신하는 단계, 선택된 기계학습모델을 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계, 및 튜닝된 기계학습모델에 튜닝용 테스트 데이터 세트를 적용하여 튜닝된 기계학습모델에 대한 정확도를 획득하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving tuning request information for a selected machine learning model from a consumer terminal, information on whether tuning is possible for the selected machine learning model is selected machine learning When it indicates that the model is tunable, requesting a data set from the consumer terminal, receiving a data set including a training data set and a test data set for tuning from the consumer terminal, based on the selected machine learning model on the training data set to generate a tuned machine learning model by re-learning, and obtaining accuracy for the tuned machine learning model by applying a test data set for tuning to the tuned machine learning model.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계 및 튜닝된 기계학습모델과 관련된 등록 정보, 튜닝된 기계학습모델, 튜닝된 테스트 코드, 튜닝용 테스트 데이터 세트, 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함한다.The operating method of a server for sharing or selling a machine learning model of the present disclosure includes the steps of performing watermarking on a tuned machine learning model to obtain tuned watermarking result information, and registration information related to the tuned machine learning model; Storing the tuned machine learning model, the tuned test code, the test data set for tuning, and the tuned watermarking result information in the database.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계, 레이블링 요청 정보에 대응하여 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계, 및 적어도 하나의 프로젝트 참여자의 단말기로부터 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes receiving a plurality of analysis target data and labeling request information from a consumer terminal, and a labeling project for a plurality of analysis target data in response to the labeling request information generating, and receiving a plurality of pieces of label information respectively corresponding to a plurality of analysis target data from terminals of at least one project participant.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계, 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 수요자 단말기에 데이터 세트를 요청하는 단계, 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 데이터 세트를 수신하는 단계, 선택된 기계학습모델을 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계, 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계, 및 튜닝된 기계학습모델과 관련된 등록 정보, 튜닝된 기계학습모델, 튜닝된 테스트 코드, 튜닝용 테스트 데이터 세트, 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving tuning request information for a selected machine learning model from a consumer terminal, information on whether tuning is possible for the selected machine learning model is selected machine learning When it indicates that the model is tunable, requesting a data set from a consumer terminal, receiving a data set including at least one of a training data set and a test data set for tuning from the consumer terminal, training data for the selected machine learning model Generating a tuned machine learning model by re-learning based on the set, performing watermarking on the tuned machine learning model to obtain tuned watermarking result information, and registration information related to the tuned machine learning model , and storing the tuned machine learning model, the tuned test code, the test data set for tuning, and the tuned watermarking result information in the database.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 상기 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계, 상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계, 및 적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes receiving a plurality of analysis target data and labeling request information from the consumer terminal, and corresponding to the labeling request information, the plurality of analysis target data. Generating a labeling project, and receiving a plurality of pieces of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계, 상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계, 상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하는 단계, 상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하는 단계, 수요자 단말기로부터 상기 기계학습모델에 사용하기 위한 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계, 상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계, 및 적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving registration information related to a machine learning model from a supplier terminal, the machine learning model from the supplier terminal, a test code for the machine learning model, and receiving a test data set for the machine learning model, applying the test data set to the test code to obtain a test result, approving the machine learning model based on the test result, consumer terminal Receiving a plurality of analysis target data and labeling request information for use in the machine learning model from, generating a labeling project for the plurality of analysis target data in response to the labeling request information, and at least one project and receiving a plurality of pieces of label information respectively corresponding to the plurality of analysis target data from the participant's terminal.

본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버는 프로세서 및 메모리를 포함하고,상기 프로세서는 상기 메모리에 저장된 명령어에 기초하여, 공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하고, 상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하고, 상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하고, 상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하고, 상기 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하고, 상기 기계학습모델과 관련된 등록 정보, 상기 기계학습모델, 상기 테스트 코드, 상기 테스트 데이터 세트, 상기 워터마킹 결과정보를 데이터베이스에 저장한다.A server for sharing or selling a machine learning model of the present disclosure includes a processor and a memory, wherein the processor receives registration information related to the machine learning model from a provider terminal based on an instruction stored in the memory, and the provider terminal receive the machine learning model, the test code for the machine learning model, and the test data set for the machine learning model from Approving the machine learning model based on, when the machine learning model is approved, performing watermarking to obtain watermarking result information, registration information related to the machine learning model, the machine learning model, the test code, The test data set and the watermarking result information are stored in a database.

또한, 상술한 바와 같은 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법을 구현하기 위한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.In addition, a program for implementing the operating method of the server for sharing or selling the machine learning model as described above may be recorded in a computer-readable recording medium.

도 1은 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)의 블록도이다.
도 2는 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)를 나타낸 도면이다.
도 3 은 본 개시의 일 실시예에 따른 기계학습모델 공유 또는 판매 시스템을 개괄적으로 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따라 기계학습모델을 공유하기 위한 서버의 동작 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 6는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 7은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
도 8은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
도 9는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 10은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
도 11은 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 12은 본 개시의 일 실시예에 따라 참여자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
1 is a block diagram of a provider terminal 310 or a server 330 according to an embodiment of the present disclosure.
2 is a diagram illustrating a provider terminal 310 or a server 330 according to an embodiment of the present disclosure.
3 is a diagram schematically illustrating a machine learning model sharing or sales system according to an embodiment of the present disclosure.
4 is a flowchart illustrating an operation method of a server for sharing a machine learning model according to an embodiment of the present disclosure.
5 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
6 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
7 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
8 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
9 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
10 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
11 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
12 is a diagram illustrating a screen that may be displayed in a participant terminal according to an embodiment of the present disclosure.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the present disclosure to be complete, and those of ordinary skill in the art to which the present disclosure pertains. It is only provided to fully inform the person of the scope of the invention.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail.

본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. Terms used in this specification have been selected as currently widely used general terms as possible while considering the functions in the present disclosure, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, rather than the simple name of the term.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.References in the singular herein include plural expressions unless the context clearly dictates the singular. Also, the plural expression includes the singular expression unless the context clearly dictates the plural.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. In the entire specification, when a part "includes" a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated.

또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.Also, as used herein, the term “unit” refers to a software or hardware component, and “unit” performs certain roles. However, "part" is not meant to be limited to software or hardware. A “unit” may be configured to reside on an addressable storage medium and may be configured to refresh one or more processors. Thus, by way of example, “part” includes components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functionality provided within components and “parts” may be combined into a smaller number of components and “parts” or further divided into additional components and “parts”.

본 개시의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서" 는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서" 는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 "프로세서" 는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.According to an embodiment of the present disclosure, “unit” may be implemented with a processor and a memory. The term “processor” should be interpreted broadly to include general purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like. In some circumstances, a “processor” may refer to an application specific semiconductor (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), or the like. The term "processor" refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such configurations. may refer to.

용어 "메모리" 는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.The term “memory” should be interpreted broadly to include any electronic component capable of storing electronic information. The term memory includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erase-programmable read-only memory (EPROM), electrical may refer to various types of processor-readable media, such as erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. A memory is said to be in electronic communication with the processor if the processor is capable of reading information from and/or writing information to the memory. A memory integrated in the processor is in electronic communication with the processor.

아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.Hereinafter, with reference to the accompanying drawings, embodiments will be described in detail so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. And in order to clearly describe the present disclosure in the drawings, parts not related to the description will be omitted.

도 1은 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)의 블록도이다.1 is a block diagram of a provider terminal 310 or a server 330 according to an embodiment of the present disclosure.

도 1을 참조하면, 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)는 데이터 학습부(110) 또는 데이터 인식부(120) 중 적어도 하나를 포함할 수 있다. 상술한 바와 같은 공급자 단말기(310) 또는 서버(330)는 프로세서 및 메모리를 포함할 수 있다.Referring to FIG. 1 , a provider terminal 310 or a server 330 according to an embodiment may include at least one of a data learning unit 110 and a data recognition unit 120 . The provider terminal 310 or server 330 as described above may include a processor and a memory.

데이터 학습부(110)는 학습 데이터 세트를 이용하여 타겟 태스크(target task)를 수행하기 위한 기계학습모델을 학습할 수 있다. 데이터 학습부(110)는 학습 데이터 세트에 포함된 분석 대상 데이터 및 분석 대상 데이터에 대응되는 레이블 정보를 수신할 수 있다. 분석 대상 데이터는 분석의 대상이 되는 데이터이며, 레이블 정보는 분석 대상 데이터에 대한 실제(ground truth) 정보일 수 있다. 만약 타겟 태스크가 사진으로부터 사진에 포함된 물건의 이름을 인식하는 것이라면, 분석 대상 데이터는 복수의 사진이 될 것이고, 레이블 정보는 복수의 사진 각각에 대응되는 물건의 이름이 될 것이다.The data learning unit 110 may learn a machine learning model for performing a target task by using the training data set. The data learning unit 110 may receive analysis target data included in the training data set and label information corresponding to the analysis target data. The data to be analyzed may be data to be analyzed, and the label information may be ground truth information about the data to be analyzed. If the target task is to recognize the name of an object included in the photo from the photo, the data to be analyzed will be a plurality of photos, and the label information will be the name of an object corresponding to each of the plurality of photos.

데이터 학습부(110)는 분석 대상 데이터와 레이블 정보의 관계에 대해 기계학습을 수행하여 기계학습모델을 획득할 수 있다. 데이터 학습부(110)가 획득한 기계학습모델은 분석 대상 데이터를 이용하여 레이블 정보를 생성하기 위한 모델일 수 있다. The data learning unit 110 may acquire a machine learning model by performing machine learning on the relationship between the analysis target data and the label information. The machine learning model obtained by the data learning unit 110 may be a model for generating label information by using the analysis target data.

데이터 인식부(120)는 데이터 학습부(110)의 기계학습모델을 수신하여 저장하고 있을 수 있다. 데이터 인식부(120)는 입력 데이터에 기계학습모델을 적용하여 레이블 정보를 출력할 수 있다. 또한, 데이터 인식부(120)는 입력 데이터, 레이블 정보 및 기계학습모델에 의해 출력된 결과를 기계학습모델을 갱신하는데 이용할 수 있다.The data recognition unit 120 may receive and store the machine learning model of the data learning unit 110 . The data recognition unit 120 may output label information by applying a machine learning model to input data. Also, the data recognition unit 120 may use input data, label information, and a result output by the machine learning model to update the machine learning model.

데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 이미 설명한 각종 전자 장치에 탑재될 수도 있다.At least one of the data learning unit 110 and the data recognition unit 120 may be manufactured in the form of at least one hardware chip and mounted in an electronic device. For example, at least one of the data learning unit 110 and the data recognition unit 120 may be manufactured in the form of a dedicated hardware chip for artificial intelligence (AI), or a conventional general-purpose processor (eg, CPU Alternatively, it may be manufactured as a part of an application processor) or a graphics-only processor (eg, GPU) and mounted on various electronic devices described above.

또한 데이터 학습부(110) 및 데이터 인식부(120)는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(110) 및 데이터 인식부(120) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(110) 및 데이터 인식부(120)는 유선 또는 무선으로 통하여, 데이터 학습부(110)가 구축한 기계학습모델 정보를 데이터 인식부(120)로 제공할 수도 있고, 데이터 인식부(120)로 입력된 데이터가 추가 학습 데이터로써 데이터 학습부(110)로 제공될 수도 있다.Also, the data learning unit 110 and the data recognition unit 120 may be respectively mounted on separate electronic devices. For example, one of the data learning unit 110 and the data recognition unit 120 may be included in the electronic device, and the other may be included in the server. In addition, the data learning unit 110 and the data recognition unit 120 may provide the machine learning model information built by the data learning unit 110 to the data recognition unit 120 through wire or wireless, and recognize data. Data input to the unit 120 may be provided to the data learning unit 110 as additional learning data.

한편, 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 메모리 또는 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다. Meanwhile, at least one of the data learning unit 110 and the data recognition unit 120 may be implemented as a software module. When at least one of the data learning unit 110 and the data recognition unit 120 is implemented as a software module (or a program module including instructions), the software module is a memory or computer-readable ratio It may be stored in a non-transitory computer readable media. Also, in this case, at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

본 개시의 일 실시예에 따른 데이터 학습부(110)는 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115)를 포함할 수 있다.The data learning unit 110 according to an embodiment of the present disclosure includes a data acquisition unit 111 , a preprocessing unit 112 , a training data selection unit 113 , a model learning unit 114 , and a model evaluation unit 115 . may include

데이터 획득부(111)는 기계학습에 필요한 데이터를 획득할 수 있다. 학습을 위해서는 많은 데이터가 필요하므로, 데이터 획득부(111)는 복수의 데이터를 포함하는 학습 데이터 세트를 수신할 수 있다. The data acquisition unit 111 may acquire data necessary for machine learning. Since a lot of data is required for learning, the data acquisition unit 111 may receive a learning data set including a plurality of data.

복수의 데이터 각각에 대하여 레이블 정보가 할당될 수 있다. 레이블 정보는 복수의 데이터의 각각을 설명하는 정보일 수 있다. 레이블 정보는 타겟 태스크(target task)가 도출하고자 하는 정보일 수 있다. 레이블 정보는 사용자 입력으로부터 획득되거나, 메모리로부터 획득되거나, 기계학습모델의 결과로부터 획득될 수 있다. 예를 들어 타겟 태스크가 영상으로부터 영상의 내용을 예측하기 위한 것이라면, 기계학습에 사용되는 복수의 데이터는 영상이 될 것이며 레이블 정보는 영상의 내용이 될 것이다.Label information may be allocated to each of the plurality of data. The label information may be information describing each of a plurality of data. The label information may be information that a target task wants to derive. The label information may be obtained from a user input, from a memory, or from a result of a machine learning model. For example, if the target task is to predict the content of an image from an image, a plurality of data used for machine learning will be an image, and label information will be the content of the image.

전처리부(112)는 수신된 데이터가 기계학습에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(112)는 후술할 모델 학습부(114)가 이용할 수 있도록, 획득된 학습 데이터 세트를 미리 설정된 포맷으로 가공할 수 있다. The preprocessor 112 may preprocess the obtained data so that the received data can be used for machine learning. The preprocessor 112 may process the acquired training data set into a preset format so that the model learning unit 114 to be described later can use it.

학습 데이터 선택부(113)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(114)에 제공될 수 있다. 학습 데이터 선택부(113)는 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(113)는 후술할 모델 학습부(114)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.The learning data selection unit 113 may select data necessary for learning from among the preprocessed data. The selected data may be provided to the model learning unit 114 . The learning data selection unit 113 may select data necessary for learning from preprocessed data according to a preset criterion. In addition, the training data selection unit 113 may select data according to a preset criterion by learning by the model learning unit 114 to be described later.

모델 학습부(114)는 학습 데이터 세트에 기초하여 어떤 레이블 정보를 출력할 지에 관한 기준을 학습할 수 있다. 또한, 모델 학습부(114)는 분석 대상 데이터 및 레이블 정보를 학습 데이터로써 이용하여 기계학습을 수행할 수 있다. 또한 모델 학습부(114)는 기존에 획득된 기계학습모델을 추가적으로 이용하여 기계학습을 수행할 수 있다. 이 경우, 기존에 획득된 기계학습모델은 미리 구축된 모델일 수 있다. 예를 들어, 기계학습모델은 기본 학습 데이터를 입력 받아 미리 구축된 모델일 수 있다.The model learning unit 114 may learn a criterion regarding which label information to output based on the training data set. Also, the model learning unit 114 may perform machine learning by using the analysis target data and label information as training data. Also, the model learning unit 114 may perform machine learning by additionally using the previously acquired machine learning model. In this case, the previously acquired machine learning model may be a pre-built model. For example, the machine learning model may be a model built in advance by receiving basic learning data.

기계학습모델은, 학습모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 기계학습모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, Deep Neural Network (DNN), Recurrent Neural Network (RNN), Long Short-Term Memory models (LSTM), BRDNN (Bidirectional Recurrent Deep Neural Network), Convolutional Neural Networks (CNN)과 같은 모델이 기계학습모델로써 사용될 수 있으나, 이에 한정되지 않는다.The machine learning model may be constructed in consideration of the field of application of the learning model, the purpose of learning, or the computer performance of the device. The machine learning model may be, for example, a model based on a neural network. For example, models such as Deep Neural Network (DNN), Recurrent Neural Network (RNN), Long Short-Term Memory models (LSTM), BRDNN (Bidirectional Recurrent Deep Neural Network), Convolutional Neural Networks (CNN) can be used as machine learning models. However, the present invention is not limited thereto.

다양한 실시예에 따르면, 모델 학습부(114)는 미리 구축된 기계학습모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 기계학습모델을 학습할 기계학습모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 기계학습모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 장소, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다. According to various embodiments, the model learning unit 114 may determine, as a machine learning model to learn, a machine learning model having a high correlation between the input learning data and the basic learning data when there are a plurality of pre-built machine learning models. there is. In this case, the basic learning data may be pre-classified for each type of data, and the machine learning model may be previously built for each type of data. For example, the basic training data may be pre-classified according to various criteria such as a place where the training data is generated, a time when the training data is generated, the size of the training data, a generator of the training data, and the type of object in the training data.

또한, 모델 학습부(114)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 기계학습모델을 학습시킬 수 있다.Also, the model learning unit 114 may train the machine learning model using, for example, a learning algorithm including error back-propagation or gradient descent.

또한, 모델 학습부(114)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning)을 통하여, 기계학습모델을 학습할 수 있다. 또한, 모델 학습부(114)는, 예를 들어, 별다른 지도없이 타겟 태스크(target task)을 위해 필요한 데이터의 종류를 스스로 학습함으로써, 타겟 태스크를 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 기계학습모델을 획득할 수 있다. 또한, 모델 학습부(114)는, 예를 들어, 학습에 따른 타겟 태스크의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 기계학습모델을 학습할 수 있다.Also, the model learning unit 114 may learn the machine learning model through supervised learning using, for example, learning data as an input value. In addition, the model learning unit 114, for example, by self-learning the type of data required for the target task without any guidance, unsupervised learning (unsupervised learning) to find a standard for the target task Through this, a machine learning model can be obtained. Also, the model learning unit 114 may learn the machine learning model through, for example, reinforcement learning using feedback on whether a result of a target task according to learning is correct.

또한, 기계학습모델이 학습되면, 모델 학습부(114)는 학습된 기계학습모델을 저장할 수 있다. 이 경우, 모델 학습부(114)는 학습된 기계학습모델을 데이터 인식부(120)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(114)는 학습된 기계학습모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.In addition, when the machine learning model is learned, the model learning unit 114 may store the learned machine learning model. In this case, the model learning unit 114 may store the learned machine learning model in the memory of the electronic device including the data recognition unit 120 . Alternatively, the model learning unit 114 may store the learned machine learning model in a memory of a server connected to the electronic device through a wired or wireless network.

학습된 기계학습모델이 저장되는 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.The memory in which the learned machine learning model is stored may also store, for example, commands or data related to at least one other component of the electronic device. The memory may also store software and/or programs. A program may include, for example, a kernel, middleware, an application programming interface (API) and/or an application program (or "application"), and the like.

모델 평가부(115)는 기계학습모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(114)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 기계학습모델을 평가하기 위한 기 설정된 데이터일 수 있다. The model evaluation unit 115 inputs evaluation data to the machine learning model, and when a result output from the evaluation data does not satisfy a predetermined criterion, the model learning unit 114 may learn again. In this case, the evaluation data may be preset data for evaluating the machine learning model.

예를 들어, 모델 평가부(115)는 평가 데이터에 대한 학습된 기계학습모델의 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 기계학습모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(115)는 학습된 기계학습모델이 적합하지 않은 것으로 평가할 수 있다.For example, the model evaluation unit 115, among the results of the machine learning model learned for the evaluation data, does not satisfy a predetermined criterion when the number or ratio of evaluation data for which the recognition result is not accurate exceeds a preset threshold. can be evaluated as For example, when the predetermined criterion is defined as a ratio of 2%, when the learned machine learning model outputs an erroneous recognition result for more than 20 evaluation data out of a total of 1000 evaluation data, the model evaluation unit 115 learns It can be evaluated that the machine learning model is not suitable.

한편, 학습된 기계학습모델이 복수 개가 존재하는 경우, 모델 평가부(115)는 각각의 학습된 기계학습모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 기계학습모델로써 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(115)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 기계학습모델로써 결정할 수 있다.On the other hand, when there are a plurality of learned machine learning models, the model evaluation unit 115 evaluates whether a predetermined criterion is satisfied with respect to each learned machine learning model, and the model that satisfies the predetermined criterion is used as the final machine learning model. can decide In this case, when there are a plurality of models satisfying the predetermined criteria, the model evaluation unit 115 may determine one or a predetermined number of models preset in the order of the highest evaluation score as the final machine learning model.

한편, 데이터 학습부(110) 내의 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.Meanwhile, at least one of the data acquisition unit 111 , the preprocessor 112 , the training data selection unit 113 , the model learning unit 114 , and the model evaluation unit 115 in the data learning unit 110 is at least one It may be manufactured in the form of a hardware chip of For example, at least one of the data acquisition unit 111 , the preprocessor 112 , the training data selection unit 113 , the model learning unit 114 , and the model evaluation unit 115 is artificial intelligence (AI). It may be manufactured in the form of a dedicated hardware chip for this purpose, or it may be manufactured as a part of an existing general-purpose processor (eg, CPU or application processor) or graphics-only processor (eg, GPU) and mounted on the various electronic devices described above.

또한, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.In addition, the data acquisition unit 111 , the preprocessor 112 , the training data selection unit 113 , the model learning unit 114 , and the model evaluation unit 115 may be mounted in one electronic device, or separate Each of the electronic devices may be mounted. For example, some of the data acquisition unit 111 , the preprocessor 112 , the training data selection unit 113 , the model learning unit 114 , and the model evaluation unit 115 are included in the electronic device, and the rest are It can be included in the server.

또한, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the data acquisition unit 111 , the preprocessor 112 , the training data selection unit 113 , the model learning unit 114 , and the model evaluation unit 115 may be implemented as a software module. A program in which at least one of the data acquisition unit 111, the preprocessor 112, the learning data selection unit 113, the model learning unit 114, and the model evaluation unit 115 includes a software module (or instructions) module), the software module may be stored in a computer-readable non-transitory computer readable medium. Also, in this case, at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

본 개시의 일 실시예에 따른 데이터 인식부(120)는 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125)를 포함할 수 있다.The data recognition unit 120 according to an embodiment of the present disclosure includes a data obtaining unit 121 , a preprocessing unit 122 , a recognition data selecting unit 123 , a recognition result providing unit 124 , and a model updating unit 125 . may include

데이터 획득부(121)는 입력 데이터를 수신할 수 있다. 전처리부(122)는 획득된 입력 데이터가 인식 데이터 선택부(123) 또는 인식 결과 제공부(124)에서 이용될 수 있도록, 획득된 입력 데이터를 전처리할 수 있다. The data acquisition unit 121 may receive input data. The preprocessor 122 may preprocess the acquired input data so that the acquired input data can be used by the recognition data selection unit 123 or the recognition result providing unit 124 .

인식 데이터 선택부(123)는 전처리된 데이터 중에서 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(124)에게 제공될 수 있다. 인식 데이터 선택부(123)는 기 설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(123)는 모델 학습부(114)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.The recognition data selection unit 123 may select necessary data from the pre-processed data. The selected data may be provided to the recognition result providing unit 124 . The recognition data selection unit 123 may select some or all of the preprocessed data according to a preset criterion. Also, the recognition data selection unit 123 may select data according to a preset criterion by learning by the model learning unit 114 .

인식 결과 제공부(124)는 선택된 데이터를 기계학습모델에 적용하여 결과 데이터를 획득할 수 있다. 기계학습모델은 모델 학습부(114)에 의하여 생성된 기계학습모델일 수 있다. 인식 결과 제공부(124)는 결과 데이터를 출력할 수 있다.The recognition result providing unit 124 may obtain result data by applying the selected data to the machine learning model. The machine learning model may be a machine learning model generated by the model learning unit 114 . The recognition result providing unit 124 may output result data.

모델 갱신부(125)는 인식 결과 제공부(124)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 기계학습모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(125)는 인식 결과 제공부(124)에 의해 제공되는 인식 결과를 모델 학습부(114)에게 제공함으로써, 모델 학습부(114)가 기계학습모델을 갱신하도록 할 수 있다.The model updating unit 125 may update the machine learning model based on the evaluation of the recognition result provided by the recognition result providing unit 124 . For example, the model update unit 125 may provide the model learning unit 114 with the recognition result provided by the recognition result providing unit 124 so that the model learning unit 114 updates the machine learning model. there is.

한편, 데이터 인식부(120) 내의 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.Meanwhile, at least one of the data acquisition unit 121 , the preprocessor 122 , the recognition data selection unit 123 , the recognition result providing unit 124 , and the model update unit 125 in the data recognition unit 120 is at least It may be manufactured in the form of a single hardware chip and mounted in an electronic device. For example, at least one of the data acquisition unit 121 , the preprocessor 122 , the recognition data selection unit 123 , the recognition result providing unit 124 , and the model update unit 125 is artificial intelligence (AI). ), or may be manufactured as a part of an existing general-purpose processor (eg, CPU or application processor) or graphics-only processor (eg, GPU) and mounted on the various electronic devices described above.

또한, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.In addition, the data acquisition unit 121 , the preprocessor 122 , the recognition data selection unit 123 , the recognition result providing unit 124 , and the model update unit 125 may be mounted in one electronic device or separately. It may be mounted on each of the electronic devices of For example, some of the data acquiring unit 121 , the preprocessing unit 122 , the recognition data selection unit 123 , the recognition result providing unit 124 , and the model updating unit 125 are included in the electronic device, and the remaining parts are included in the electronic device. may be included in the server.

또한, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the data acquisition unit 121 , the preprocessor 122 , the recognition data selection unit 123 , the recognition result providing unit 124 , and the model update unit 125 may be implemented as a software module. At least one of the data acquisition unit 121, the preprocessor 122, the recognition data selection unit 123, the recognition result providing unit 124, and the model update unit 125 includes a software module (or instructions) When implemented as a program module), the software module may be stored in a computer-readable non-transitory computer readable medium. Also, in this case, at least one software module may be provided by an operating system (OS) or may be provided by a predetermined application. Alternatively, a part of the at least one software module may be provided by an operating system (OS), and the other part may be provided by a predetermined application.

아래에서는 데이터 학습부(110)의 데이터 획득부(111), 전처리부(112) 및 학습 데이터 선택부(113)가 학습 데이터를 수신하여 처리하는 방법 및 장치에 대하여 보다 자세히 설명한다. Hereinafter, a method and apparatus for the data acquisition unit 111 , the preprocessor 112 , and the training data selection unit 113 of the data learning unit 110 to receive and process the training data will be described in more detail.

도 2는 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)를 나타낸 도면이다.2 is a diagram illustrating a provider terminal 310 or a server 330 according to an embodiment of the present disclosure.

공급자 단말기(310) 또는 서버(330)는 프로세서(210) 및 메모리(220)를 포함할 수 있다. 프로세서(210)는 메모리(220)에 저장된 명령어들을 수행할 수 있다. The provider terminal 310 or the server 330 may include a processor 210 and a memory 220 . The processor 210 may execute instructions stored in the memory 220 .

상술한 바와 같이 공급자 단말기(310) 또는 서버(330)는 데이터 학습부(110) 또는 데이터 인식부(120)를 포함할 수 있다. 데이터 학습부(110) 또는 데이터 인식부(120)는 프로세서(210) 및 메모리(220)에 의하여 구현될 수 있다. As described above, the provider terminal 310 or the server 330 may include the data learning unit 110 or the data recognition unit 120 . The data learning unit 110 or the data recognition unit 120 may be implemented by the processor 210 and the memory 220 .

도 1 및 도 2는 공급자 단말기(310) 또는 서버(330)에 대하여 설명한 것이지만 이에 한정되는 것은 아니다. 이하에서 설명할 수요자 단말기(320)도 공급자 단말기(310) 또는 서버(330)와 동일한 구성을 포함할 수 있다.1 and 2 have been described with respect to the provider terminal 310 or the server 330, but is not limited thereto. The consumer terminal 320 to be described below may also include the same configuration as the provider terminal 310 or the server 330 .

도 3 은 본 개시의 일 실시예에 따른 기계학습모델 공유 또는 판매 시스템을 개괄적으로 나타내는 도면이다.3 is a diagram schematically illustrating a machine learning model sharing or sales system according to an embodiment of the present disclosure.

기계학습모델 공유 및 판매를 위한 시스템은 공급자 단말기(310), 수요자 단말기(320) 또는 서버(330)를 포함할 수 있다. 공급자 단말기(310)는 공급자가 이용하는 단말기로써, 스마트폰, PC, 또는 테블릿 등을 포함할 수 있다. 수요자 단말기(320)는 수요자가 이용하는 단말기로써, 스마트폰, PC, 또는 테블릿 등을 포함할 수 있다. 서버(330)는 공급자 단말기(310) 또는 수요자 단말기(320)와 유무선으로 통신할 수 있다. 서버(330)는 기계학습모델을 유통하기 위한 서비스를 제공할 수 있다. 서버(330)는 수요자 또는 공급자에게 결제서비스를 제공할 수 있다. 즉, 서버(330)는 기계학습모델의 판매에 따라 수익을 공급자에게 제공할 수 있다. 또한 서버(330)는 기계학습모델 구매에 따라 수요자에게 과금할 수 있다. 또한 서버(330)는 기계학습모델 유통과 관련된 다양한 서비스를 제공할 수 있다.A system for sharing and selling a machine learning model may include a supplier terminal 310 , a consumer terminal 320 , or a server 330 . The provider terminal 310 is a terminal used by the provider, and may include a smartphone, a PC, or a tablet. The consumer terminal 320 is a terminal used by the consumer, and may include a smartphone, a PC, or a tablet. The server 330 may communicate with the provider terminal 310 or the consumer terminal 320 by wire or wireless. The server 330 may provide a service for distributing the machine learning model. The server 330 may provide a payment service to a consumer or a provider. That is, the server 330 may provide a profit to the supplier according to the sale of the machine learning model. In addition, the server 330 may charge the consumer according to the purchase of the machine learning model. In addition, the server 330 may provide various services related to machine learning model distribution.

공급자 단말기(310)는 서버(330)로 기계학습모델을 송신할 수 있다. 서버(330)는 수신한 기계학습모델을 저장할 수 있다. 또한 서버(330)는 별도의 클라우드에 기계학습모델을 저장할 수 있다. 서버(330)는 공급자 단말기(310)로부터 수신된 기계학습모델을 튜닝하는 모델 튜닝 서비스를 제공할 수 있다. 모델 튜닝 서비스에 의하여 수요자는 이미 생성된 기계학습모델을 자신의 입맛에 맞게 변경할 수 있다. 모델 튜닝 요청이 있는 경우, 서버(330), 공급자 단말기(310) 또는 클라우드는 기계학습모델을 새로운 데이터에 기초하여 재학습할 수 있다. 또한 서버(330) 또는 클라우드는 재학습된 기계학습모델을 저장할 수 있다.The provider terminal 310 may transmit the machine learning model to the server 330 . The server 330 may store the received machine learning model. In addition, the server 330 may store the machine learning model in a separate cloud. The server 330 may provide a model tuning service for tuning the machine learning model received from the provider terminal 310 . By the model tuning service, the consumer can change the already created machine learning model to suit his or her taste. When there is a model tuning request, the server 330, the provider terminal 310, or the cloud may re-learn the machine learning model based on new data. In addition, the server 330 or the cloud may store the retrained machine learning model.

서버(330)는 데이터 정재 서비스를 제공할 수 있다. 데이터 정재 서비스는 러(RAW) 데이터를 레이블링하거나, 데이터가 기계학습모델에 적용될 수 있도록 처리하는 것을 의미한다. 데이터 정재 서비스는 크라우드 소싱을 사용할 수 있다. 예를 들어 데이터 정재 서비스에 따르면, 서버(330)는 수요자 단말기(320)가 제공한 러(RAW) 데이터에 대하여 레이블링을 요청하는 프로젝트를 생성할 수 있다. 적어도 한명의 참여자가 프로젝트에 참여하여 러 데이터에 대해 레이블링을 할 수 있다. 서버(330)는 그에 대한 보상으로 프로젝ㅌ트의 참여자에게 포인트를 지급할 수 있다. 포인트는 현금화될 수 있다.The server 330 may provide a data refinement service. Data refinement service refers to labeling raw data or processing the data so that it can be applied to a machine learning model. Data refinement services may use crowdsourcing. For example, according to the data revision service, the server 330 may create a project requesting labeling for the raw data provided by the consumer terminal 320 . At least one participant can participate in the project and label the raw data. The server 330 may provide points to the participants of the project as a reward. Points can be cashed out.

이하에서는 공급자 단말기(310), 수요자 단말기(320) 및 서버(330)의 동작에 대하여 보다 자세히 설명한다.Hereinafter, operations of the provider terminal 310 , the consumer terminal 320 , and the server 330 will be described in more detail.

도 4는 본 개시의 일 실시예에 따라 기계학습모델을 공유하기 위한 서버의 동작 방법을 나타내는 흐름도이다. 4 is a flowchart illustrating an operation method of a server for sharing a machine learning model according to an embodiment of the present disclosure.

서버(330)는 공급자 단말기(310)로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계(410)를 수행할 수 있다. 기계학습모델과 관련된 등록 정보는 기계학습모델의 제목, 기계학습모델의 설명, 기계학습모델의 가격, 프레임워크, 기계학습모델의 목적, 기계학습모델의 분야, 기계학습모델의 클래스, 기계학습모델의 워터마크 이미지, 깃허브(코드) 또는 정확도 중 적어도 하나를 포함할 수 있다. The server 330 may perform step 410 of receiving registration information related to the machine learning model from the provider terminal 310 . The registration information related to the machine learning model is the title of the machine learning model, the description of the machine learning model, the price of the machine learning model, the framework, the purpose of the machine learning model, the field of the machine learning model, the class of the machine learning model, the machine learning model It may include at least one of a watermark image of , GitHub (code), or accuracy.

여기서 프레임워크는 사용자가 기계학습모델을 쉽게 구현할 수 있는 환경을 제공하는 툴(TOOL)이다. 프레임워크에는 텐서플로우 또는 파이토치를 포함할 수 있다.Here, the framework is a tool that provides an environment in which users can easily implement machine learning models. Frameworks can include TensorFlow or PyTorch.

기계학습모델의 클래스는 기계학습모델이 분류할 수 있는 종류를 나타낼 수 있다. 예를 들어 기계학습모델이 영상 내에 있는 물체가 고양이 또는 개인지 구별할 수 있다면 클래스는 고양이, 개가 될 수 있다.The class of the machine learning model may indicate the kind that the machine learning model can classify. For example, if the machine learning model can distinguish whether an object in an image is a cat or a dog, the class could be a cat or a dog.

기계학습모델의 워터마크 이미지는 공급자의 기계학습모델이 수요자의 기계학습모델과 일치하는지 여부, 또는 공급자의 기계학습모델이 다른 이에 의하여 도용된 것은 아닌지 확인하기 위한 구성으로써, 이에 대해서는 추후에 더 자세히 설명한다. 워터마크 이미지는 공급자 단말기(310)가 제공할 수도 있으며, 서버(330)가 생성할 수도 있다.The watermark image of the machine learning model is a configuration to check whether the supplier's machine learning model matches the consumer's machine learning model or whether the supplier's machine learning model has been stolen by others. Explain. The watermark image may be provided by the provider terminal 310 or may be generated by the server 330 .

기계학습모델의 정확도는 도 1의 모델 평가부(115) 또는 모델 갱신부(125)에서 도출한 기계학습모델에 대한 정확도일 수 있다. 정확도는 테스트 데이터 세트에 기계학습모델을 적용하여 예측값(예측 레이블)을 도출하고, 예측값이 실제값(Ground Truth Value; 실제 레이블)과 동일한지 여부에 기초하여 도출될 수 있다.The accuracy of the machine learning model may be the accuracy of the machine learning model derived from the model evaluator 115 or the model updater 125 of FIG. 1 . Accuracy may be derived based on whether a predicted value (prediction label) is derived by applying a machine learning model to a test data set, and whether the predicted value is the same as a ground truth value (actual label).

서버(330)는 공급자 단말기(310)로부터 기계학습모델, 기계학습모델에 대한 테스트 코드, 및 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계(420)를 수행할 수 있다. 기계학습모델은 적어도 하나의 파일로 이루어질 수 있다. 또한 기계학습모델은 테스트 코드에 의하여 실행될 수 있다. 테스트 코드는 적어도 하나의 프로그래밍 언어로 구현될 수 있다. 또한 테스트 데이터 세트는 기계학습모델을 테스트하기 위한 데이터일 수 있다. 테스트 데이터 세트는 분석 대상 데이터를 포함할 수 있다. 또한 테스트 데이터 세트는 분석 대상 데이터에 대응되는 실제 레이블 정보를 더 포함할 수 있다. 수요자는 기계학습모델, 테스트 코드에 기반하여 자신의 목적에 맞게 기계학습모델을 사용할 수 있다. The server 330 may perform step 420 of receiving the machine learning model, the test code for the machine learning model, and the test data set for the machine learning model from the provider terminal 310 . The machine learning model may consist of at least one file. In addition, the machine learning model can be executed by the test code. The test code may be implemented in at least one programming language. Also, the test data set may be data for testing the machine learning model. The test data set may include data to be analyzed. In addition, the test data set may further include actual label information corresponding to the data to be analyzed. Consumers can use the machine learning model for their own purposes based on the machine learning model and test code.

서버(330)는 테스트 데이터 세트를 테스트 코드에 적용하여 테스트 결과를 획득하는 단계(430)를 수행할 수 있다. 서버(330)는 테스트 코드를 이용하여 기계학습모델을 실행할 수 있다. 또한 서버(330)는 테스트 데이터 세트 중 분석 대상 데이터를 기계학습모델에 적용하여 테스트 결과를 획득할 수 있다. 테스트 결과는 분석 대상 데이터에 대한 예측된 레이블 정보일 수 있다. 하지만 이에 한정되는 것은 아니며 서버(330)의 관리자가 테스트 코드를 이용하여 테스트 데이터 세트에 포함된 분석 대상 데이터를 기계학습모델에 적용하고, 테스트 결과를 서버(330)에 입력할 수 있다.The server 330 may perform step 430 of obtaining a test result by applying the test data set to the test code. The server 330 may execute the machine learning model using the test code. In addition, the server 330 may obtain a test result by applying the analysis target data among the test data sets to the machine learning model. The test result may be predicted label information for the data to be analyzed. However, the present invention is not limited thereto, and the manager of the server 330 may apply the analysis target data included in the test data set to the machine learning model by using the test code, and may input the test result to the server 330 .

서버(330)는 테스트 결과에 기초하여 기계학습모델을 승인하는 단계(440)를 수행할 수 있다. 서버(330)는 테스트 결과를 테스트 데이터의 실제 레이블 정보와 비교할 수 있다. 비교에 기초하여, 서버(330)는 테스트 결과의 정확도를 획득할 수 있다. 단계(410)에서 획득된 정확도에서 테스트 결과의 정확도를 뺀 값이 임계값 이하인 경우 서버(330)는 기계학습모델을 승인할 수 있다. 임계값은 양수이고 미리 정해진 값일 수 있다.The server 330 may perform step 440 of approving the machine learning model based on the test result. The server 330 may compare the test result with actual label information of the test data. Based on the comparison, the server 330 may obtain the accuracy of the test result. When the value obtained by subtracting the accuracy of the test result from the accuracy obtained in step 410 is equal to or less than the threshold value, the server 330 may approve the machine learning model. The threshold value is a positive number and may be a predetermined value.

기계학습모델이 승인되지 않은 경우, 서버(330)는 공급자 단말기(310)에 기계학습모델 또는 테스트 데이터 세트를 다시 요청할 수 있다. 서버(330)는 재전송된 기계학습모델 또는 테스트 데이터 세트에 기반하여 단계(430) 및 단계(440)를 더 수행할 수 있다. 또한 단계(410)에서 획득된 정확도에서 테스트 결과의 정확도를 뺀 값이 임계값 초과인 경우, 서버(330)는 단계(410)에서 획득된 정확도극 테스트 결과의 정확도로 교체하고, 기계학습모델을 승인할 수 있다.If the machine learning model is not approved, the server 330 may request the machine learning model or test data set again from the provider terminal 310 . The server 330 may further perform steps 430 and 440 based on the retransmitted machine learning model or test data set. In addition, if the value obtained by subtracting the accuracy of the test result from the accuracy obtained in step 410 exceeds the threshold, the server 330 replaces the accuracy of the accuracy test result obtained in step 410 with the accuracy of the test result, and the machine learning model can approve

기계학습모델이 승인된 경우, 서버(330)는 워터마킹을 수행하여 워터마킹 결과정보를 획득하는 단계(450)를 수행할 수 있다. 워터마킹은 서버(330) 또는 수요자 단말기(320)가 수신한 기계학습모델이 진정한 것인지 확인하는 절차일 수 있다. 또한 워터마킹은 서버(330)가 기계학습모델의 도용을 판단하기 위한 절차일 수 있다. 워터마킹에 대해서는 도 5와 함께 자세히 설명한다.When the machine learning model is approved, the server 330 may perform watermarking to obtain watermarking result information ( 450 ). Watermarking may be a procedure for confirming whether the machine learning model received by the server 330 or the consumer terminal 320 is genuine. In addition, watermarking may be a procedure for the server 330 to determine the theft of the machine learning model. Watermarking will be described in detail with reference to FIG. 5 .

서버(330)는 기계학습모델과 관련된 등록 정보, 기계학습모델, 테스트 코드, 테스트 데이터 세트, 및 워터마킹 결과정보를 데이터베이스에 저장하는 단계(460)를 수행할 수 있다. 서버(330)는 수요자 단말기(320)의 요청에 기초하여 기계학습모델과 관련된 등록 정보를 수요자 단말기(320)로 송신할 수 있다. 수요자는 기계학습모델과 관련된 등록 정보를 확인하고, 기계학습모델을 구매할 수 있다. 수요자 단말기(320)는 결제정보를 서버(330)로 송신하고, 서버(330)는 결제정보를 확인 후에 기계학습모델 등을 수요자 단말기(320)로 송신할 수 있다. 여기서 결제정보는 결제를 위한 카드와 관련된 정보, 또는 은행계좌와 관련된 정보와 같은 서버(330)로 송금을 위해 필요한 정보를 포함할 수 있다.The server 330 may perform step 460 of storing registration information related to the machine learning model, machine learning model, test code, test data set, and watermarking result information in a database. The server 330 may transmit registration information related to the machine learning model to the consumer terminal 320 based on the request of the consumer terminal 320 . The consumer can check the registration information related to the machine learning model and purchase the machine learning model. The consumer terminal 320 may transmit payment information to the server 330 , and the server 330 may transmit a machine learning model or the like to the consumer terminal 320 after confirming the payment information. Here, the payment information may include information necessary for remittance to the server 330, such as information related to a card for payment or information related to a bank account.

도 5는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.5 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.

서버(330)는 워터마킹 결과정보를 획득하는 단계(450)를 수행하기 위하여 아래와 같은 동작을 수행할 수 있다. 서버(330)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보 중 적어도 하나를 획득하는 단계(510)를 수행할 수 있다. 서버(330)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보 중 적어도 하나를 공급자 단말기(310)로부터 수신할 수 있다. 또한 서버(330)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보 중 적어도 하나를 공급자에 대한 정보에 기초하여 생성할 수 있다.The server 330 may perform the following operation in order to perform the step 450 of obtaining the watermarking result information. The server 330 may perform an operation 510 of obtaining at least one of a watermark image and label information for the watermark image. The server 330 may receive at least one of a watermark image and label information for the watermark image from the provider terminal 310 . In addition, the server 330 may generate at least one of the watermark image and label information for the watermark image based on the information on the provider.

본 개시의 일 실시예에 따르면, 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 있는지 여부를 결정할 수 있다. 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 있는 경우, 수신한 워터마크 이미지를 사용할 수 있다. 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 없는 경우, 공급자에 대한 정보에 기초하여 워터마크 이미지를 생성할 수 있다. 공급자에 대한 정보는 공급자의 식별정보, 공급자 단말기의 식별정보를 포함할 수 있다. 공급자에 대한 정보는 공급자의 아이디, 이름, 성별, 주소, 이메일, 정화번호, 공급자 단말기의 모델명, 공급자 단말기의 IP주소, 또는 MAC주소 중 적어도 하나를 이용하여 생성될 수 있다. 또한 서버(330)는 생성된 워터마크 이미지를 공급자 단말기(310)에 송신할 수 있다.According to an embodiment of the present disclosure, the server 330 may determine whether there is a watermark image received from the provider terminal 310 . When there is a watermark image received from the provider terminal 310 , the server 330 may use the received watermark image. When there is no watermark image received from the provider terminal 310, the server 330 may generate a watermark image based on information on the provider. The information on the provider may include identification information of the provider and identification information of the provider terminal. Information on the provider may be generated using at least one of ID, name, gender, address, email, purification number, model name of the provider terminal, IP address of the provider terminal, or MAC address of the provider. Also, the server 330 may transmit the generated watermark image to the provider terminal 310 .

본 개시의 다른 실시예에 따르면, 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 있는지 여부를 결정하지 않고, 공급자에 대한 정보에 기초하여 워터마크 이미지를 생성할 수 있다. 또한 서버(330)는 워터마크 이미지를 공급자 단말기(310)에 송신할 수 있다.According to another embodiment of the present disclosure, the server 330 may generate a watermark image based on information about the provider, without determining whether there is a watermark image received from the provider terminal 310 . In addition, the server 330 may transmit the watermark image to the provider terminal 310 .

워터마크 이미지에 대한 레이블 정보는 워터마크 이미지에 대응되는 레이블일 수 있다. 워터마크 이미지에 대한 레이블 정보는 임의로 결정될 수 있다. 워터마크 이미지에 대한 레이블 정보는 실제(Ground Truth) 레이블 정보로써 사용될 수 있다.The label information for the watermark image may be a label corresponding to the watermark image. Label information for the watermark image may be arbitrarily determined. Label information for the watermark image may be used as ground truth label information.

서버(330) 또는 공급자 단말기(310)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보에 기초하여 기계학습모델을 추가적으로 학습하는 단계(520)를 수행할 수 있다. The server 330 or the provider terminal 310 may perform an operation 520 of additionally learning the machine learning model based on the watermark image and label information for the watermark image.

본 개시의 일 실시예에 따르면, 서버(330) 또는 공급자 단말기(310)가 기계학습모델을 추가적으로 학습한다는 것은, 순전파를 수행하는 것을 의미할 수 있다. 순전파를 수행하는 과정은 서버(330) 또는 공급자 단말기(310)에 포함된 인식 결과 제공부(124)에서 수행될 수 있다. 순전파는 워터마크 이미지를 기계학습모델에 적용함을 의미한다. 단계(520)를 수행하기 위한 데이터가 서버(330)에 있는 경우, 공급자 단말기(310)는 서버(330)로부터 데이터를 수신할 수 있다. 반대로 단계(520)를 수행하기 위한 데이터가 공급자 단말기(310)에 있는 경우, 서버(330)는 공급자 단말기(310)로부터 데이터를 수신할 수 있다. 서버(330) 또는 공급자 단말기(310)는 워터마크 이미지를 기계학습모델에 적용하여 워터마크 이미지에 대응하는 워터마킹 결과정보를 획득할 수 있다.According to an embodiment of the present disclosure, when the server 330 or the provider terminal 310 additionally learns the machine learning model, it may mean performing forward propagation. The process of performing forward propagation may be performed by the recognition result providing unit 124 included in the server 330 or the provider terminal 310 . Forward propagation means applying the watermark image to the machine learning model. When data for performing step 520 is in the server 330 , the provider terminal 310 may receive data from the server 330 . Conversely, when data for performing step 520 is in the provider terminal 310 , the server 330 may receive data from the provider terminal 310 . The server 330 or the provider terminal 310 may obtain watermarking result information corresponding to the watermark image by applying the watermark image to the machine learning model.

본 개시의 다른 실시예에 따르면, 서버(330) 또는 공급자 단말기(310)가 기계학습모델을 추가적으로 학습한다는 것은, 순전파 및 역전파를 수행하여 기계학습모델을 업데이트하는 것을 의미할 수 있다. 순전파 및 역전파를 수행하는 과정은 서버(330) 또는 공급자 단말기(310)의 모델 학습부(114)에서 수행될 수 있다. 보다 구체적으로 서버(330) 또는 공급자 단말기(310)는 워터마크 이미지를 기계학습모델에 적용하여 예측 데이터를 획득할 수 있다. 이를 순전파라고 한다. 또한 서버(330) 또는 공급자 단말기(310)는 예측 데이터 및 워터마크 이미지에 대한 레이블의 오차에 기반하여, 오차가 줄어들도록 기계학습모델에 포함된 가중치를 업데이트하는 과정을 수행할 수 있다. 이를 역전파라고 한다. 이를 통하여 기계학습모델은 업데이트될 수 있다.According to another embodiment of the present disclosure, that the server 330 or the provider terminal 310 additionally learns the machine learning model may mean updating the machine learning model by performing forward propagation and back propagation. The process of performing forward propagation and back propagation may be performed by the server 330 or the model learning unit 114 of the provider terminal 310 . More specifically, the server 330 or the provider terminal 310 may obtain prediction data by applying the watermark image to the machine learning model. This is called forward propagation. In addition, the server 330 or the provider terminal 310 may perform a process of updating the weight included in the machine learning model so that the error is reduced based on the error of the label for the prediction data and the watermark image. This is called backpropagation. Through this, the machine learning model can be updated.

서버(330) 또는 공급자 단말기(310)는 기계학습모델에 워터마크 이미지를 적용하여 워터마킹 결과정보를 획득하는 단계(530)를 수행할 수 있다. 단계(530)는 서버(330) 또는 공급자 단말기(310)의 데이터 인식부(120)에서 수행할 수 있다. 여기서 기계학습모델은 위에서 설명하였듯이 워터마크 이미지에 의하여 업데이트된 기계학습모델일 수도 있고, 업데이트되지 않은 기계학습모델일 수도 있다. 서버(330) 또는 공급자 단말기(310)는 워터마크 이미지를 기계학습모델에 적용하여 워터마킹 결과정보를 획득할 수 있다. 즉, 단계(530)에서는 순전파가 수행될 수 있다. 워터마킹 결과정보는 기계학습모델의 최종 결과값일 수도 있다. 최종 결과값은 히든레이어에 포함된 최종레이어(n)의 출력일 수 있다. 하지만 이에 한정되는 것은 아니며, 기계학습모델의 히든레이어에 포함된 값일 수도 있다. 예를 들어 워터마킹 결과정보는 최종레이어(n)의 직전레이어(n-1)의 출력일 수 있다. 워터마킹 결과정보는 워터마크 이미지에 대한 레이블과 같거나 다를 수 있다. 서버(330)는 워터마킹 결과정보를 획득하거나, 공급자 단말기(310)로부터 수신할 수 있다. 단계(460)에서 서버(330)는 워터마킹 결과정보를 저장할 수 있다.The server 330 or the provider terminal 310 may perform a step 530 of obtaining watermarking result information by applying a watermark image to the machine learning model. Step 530 may be performed by the server 330 or the data recognition unit 120 of the provider terminal 310 . Here, the machine learning model may be a machine learning model updated by the watermark image as described above, or a machine learning model that is not updated. The server 330 or the provider terminal 310 may obtain watermarking result information by applying the watermark image to the machine learning model. That is, forward propagation may be performed in step 530 . The watermarking result information may be the final result value of the machine learning model. The final result value may be an output of the final layer (n) included in the hidden layer. However, the present invention is not limited thereto, and may be a value included in the hidden layer of the machine learning model. For example, the watermarking result information may be an output of the immediately preceding layer (n-1) of the final layer (n). The watermarking result information may be the same as or different from the label for the watermark image. The server 330 may obtain the watermarking result information or may receive it from the provider terminal 310 . In step 460, the server 330 may store the watermarking result information.

도 6는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.6 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.

도 6이 수행되기 전에 서버(330)는 공급자 단말기(310)로부터 수신한 기계학습모델에 기초하여 API(Application Programming Interface)를 생성할 수 있다. 여기서, API는 사용자가 기계학습모델을 이용하여 소프트웨어를 쉽게 구현할 수 있도록 돕는 인터페이스를 의미할 수 있다. 서버(330)는 API를 저장하고 있을 수 있다.Before FIG. 6 is performed, the server 330 may generate an application programming interface (API) based on the machine learning model received from the provider terminal 310 . Here, the API may refer to an interface that helps a user to easily implement software using a machine learning model. The server 330 may store the API.

수요자 단말기(320)는 기계학습모델과 관련된 등록 정보를 요청할 수 있다. 서버(330)는 수요자 단말기의 요청에 따라 기계학습모델과 관련된 등록 정보를 수요자 단말기로 송신하는 단계(610)를 수행할 수 있다. 수요자 단말기(320)는 수신된 정보에 기초하여 도 7과 같은 화면을 표시할 수 있다. The consumer terminal 320 may request registration information related to the machine learning model. The server 330 may perform a step 610 of transmitting registration information related to the machine learning model to the consumer terminal according to the request of the consumer terminal. The consumer terminal 320 may display a screen as shown in FIG. 7 based on the received information.

도 7은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.7 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.

수요자 단말기(320)의 화면의 제 1 영역(710)에는 썸네일이 표시될 수 있다. 제 1 영역(710)에는 기계학습모델과 관련된 이미지 또는 영상이 표시될 수 있다. 예를 들어 제 1 영역(710)에는 기계학습모델의 장점에 대한 정보 또는 기계학습모델의 사용방법에 대한 정보가 이미지로 표시될 수 있다.A thumbnail may be displayed in the first area 710 of the screen of the consumer terminal 320 . An image or an image related to the machine learning model may be displayed in the first area 710 . For example, in the first area 710 , information on advantages of the machine learning model or information on a method of using the machine learning model may be displayed as an image.

수요자 단말기(320)의 화면의 제 2 영역(720)에는 설명이 표시될 수 있다. 제 2 영역(720)에는 기계학습모델과 관련된 텍스트가 표시될 수 있다. 예를 들어 제 2 영역(720)에는 기계학습모델의 장점에 대한 정보 또는 기계학습모델의 사용방법에 대한 정보가 텍스트로 표시될 수 있다.A description may be displayed in the second area 720 of the screen of the consumer terminal 320 . Text related to the machine learning model may be displayed in the second area 720 . For example, in the second area 720 , information on advantages of the machine learning model or information on a method of using the machine learning model may be displayed as text.

수요자 단말기(320)의 화면의 제 3 영역(730)에는 기계학습모델과 관련된 등록 정보가 표시될 수 있다. 예를 들어 제 3 영역(730)에는 기계학습모델의 제목, 기계학습모델의 설명, 기계학습모델의 가격, 프레임워크, 기계학습모델의 목적, 기계학습모델의 분야, 기계학습모델의 클래스, 기계학습모델의 워터마크 이미지, 깃허브(코드) 또는 정확도 중 적어도 하나가 표시될 수 있다.Registration information related to the machine learning model may be displayed in the third area 730 of the screen of the consumer terminal 320 . For example, in the third area 730, the title of the machine learning model, the description of the machine learning model, the price of the machine learning model, the framework, the purpose of the machine learning model, the field of the machine learning model, the class of the machine learning model, the machine At least one of a watermark image of the learning model, GitHub (code), or accuracy may be displayed.

수요자 단말기(320)의 화면의 제 4 영역(740)에는 기계학습모델을 선택하기 위한 버튼이 표시될 수 있다. 제 4 영역(740)의 버튼은 기계학습모델을 구매하거나 다운로드하기 위한 버튼일 수 있다. 사용자가 제 4 영역(740)의 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 서버(330)로 선택된 기계학습모델에 대한 식별정보를 송신할 수 있다. 서버(330)는 식별정보에 기초하여 수요자 단말기(320)가 선택한 기계학습모델을 저장부로부터 획득할 수 있다.A button for selecting a machine learning model may be displayed in the fourth area 740 of the screen of the consumer terminal 320 . The button in the fourth area 740 may be a button for purchasing or downloading the machine learning model. When the user clicks or touches the button of the fourth area 740 , the consumer terminal 320 may transmit identification information for the selected machine learning model to the server 330 . The server 330 may acquire the machine learning model selected by the consumer terminal 320 from the storage unit based on the identification information.

수요자 단말기(320)의 화면의 제 5 영역(750)에는 기계학습모델을 테스트하기 위한 버튼이 표시될 수 있다. 사용자가 제 5 영역(750)의 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 기계학습모델을 테스트하기 위한 화면을 표시할 수 있다.A button for testing the machine learning model may be displayed in the fifth area 750 of the screen of the consumer terminal 320 . When the user clicks or touches the button of the fifth area 750 , the consumer terminal 320 may display a screen for testing the machine learning model.

도 6을 다시 참조하면, 이미 설명한 바와 같이, 수요자 단말기(320)가 선택된 기계학습모델에 대한 식별정보를 서버(330)로 송신할 수 있다. 또한 서버(330)는 수요자 단말기(320)로부터 선택된 기계학습모델에 대한 식별 정보를 수신하는 단계(620)를 수행할 수 있다. 서버(330)는 기계학습모델에 대한 식별 정보와 함께 수요자 단말기(320)의 요청 내용에 대한 정보를 수신할 수 있다. 요청 내용은 구매 또는 테스트 중 하나를 포함할 수 있다.Referring back to FIG. 6 , as already described, the consumer terminal 320 may transmit identification information for the selected machine learning model to the server 330 . In addition, the server 330 may perform a step 620 of receiving identification information for the selected machine learning model from the consumer terminal 320 . The server 330 may receive information about the request contents of the consumer terminal 320 together with identification information on the machine learning model. The request content may include either a purchase or a test.

요청 내용이 구매인 경우, 서버(330) 및 수요자 단말기(320)는 결제정보를 송수신할 수 있다. 서버(330)는 결제를 요청할 수 있고, 수요자 단말기(320)는 서버(330)로 송금을 위해 필요한 정보를 송신할 수 있다. 수요자 단말기(320)로부터 서버(330)로 결제가 정상적으로 이루어진 경우 다음과 같은 동작을 더 수행할 수 있다.When the request is a purchase, the server 330 and the consumer terminal 320 may transmit and receive payment information. The server 330 may request payment, and the consumer terminal 320 may transmit information necessary for remittance to the server 330 . When the payment is normally made from the consumer terminal 320 to the server 330, the following operations may be further performed.

서버(330)는 선택된 기계학습모델을 수요자 단말기로 송신하는 단계(630)를 수행할 수 있다. 송신되는 기계학습모델은 단계(420)에서 공급자 단말기(310)로부터 수신된 기계학습모델과 동일할 수 있다. 서버(330)는 선택된 기계학습모델과 관련된 API를 수요자 단말기로 송신할 수도 있다. 수요자는 API를 이용하여 선택된 기계학습모델에 기초한 소프트웨어를 쉽게 구현할 수 있다. API에 의하여 수요자는 기계학습모델을 이용하여 소프트웨어를 구현할 노력을 덜 수 있다. 또한 서버(330)는 수요자 단말기에 선택된 기계학습모델을 송신하는지 또는 선택된 기계학습모델과 관련된 API를 송신하는지에 따라 과금을 달리 할 수 있다. 예를 들어, 서버(330)는 선택된 기계학습모델을 송신하는 경우, API를 송신하는 경우보다 저렴하게 과금할 수 있다. 반대로 서버(330)는 선택된 기계학습모델을 송신하는 경우, API를 송신하는 경우보다 비싸게 과금할 수 있다. 하지만 이에 한정되는 것은 아니며 과금을 달리하지 않을 수 있다.The server 330 may perform step 630 of transmitting the selected machine learning model to the consumer terminal. The transmitted machine learning model may be the same as the machine learning model received from the provider terminal 310 in step 420 . The server 330 may transmit an API related to the selected machine learning model to the consumer terminal. Consumers can easily implement software based on the selected machine learning model by using the API. With the API, the consumer can reduce the effort to implement the software using the machine learning model. In addition, the server 330 may charge differently depending on whether the selected machine learning model is transmitted to the consumer terminal or an API related to the selected machine learning model is transmitted. For example, when transmitting the selected machine learning model, the server 330 may charge cheaper than when transmitting the API. Conversely, when the server 330 transmits the selected machine learning model, it may charge more expensively than when transmitting the API. However, it is not limited thereto and the charge may not be different.

또한 수요자 단말기(320)는 선택된 기계학습모델에 대한 API가 구현되어 있지 않은 경우, 서버(330)에 API를 구현해줄 것을 요청할 수 있다. 서버(330)는 API 구현에 소요되는 비용을 수요자 단말기(320)에 요청할 수 있다. 수요자 단말기(320)가 해당 비용을 송금한 경우, 서버(330)는 API를 생성하여 수요자 단말기(320)에 제공할 수 있다.In addition, when the API for the selected machine learning model is not implemented, the consumer terminal 320 may request the server 330 to implement the API. The server 330 may request the consumer terminal 320 for the cost required to implement the API. When the consumer terminal 320 remits the corresponding cost, the server 330 may generate an API and provide it to the consumer terminal 320 .

서버(330)는 선택된 기계학습모델에 대한 워터마크 이미지 및 워터마킹 결과정보 중 적어도 하나를 수요자 단말기로 송신하는 단계(640)를 수행할 수 있다. 수요자 단말기(320)는 수신된 워터마크 이미지를 기계학습모델에 적용할 수 있다. 수요자 단말기(320)는 선택된 기계학습모델에 대한 워터마크 이미지를 선택된 기계학습모델에 적용하여 워터마킹 확인정보를 생성할 수 있다. The server 330 may perform an operation 640 of transmitting at least one of a watermark image for the selected machine learning model and watermarking result information to the consumer terminal. The consumer terminal 320 may apply the received watermark image to the machine learning model. The consumer terminal 320 may generate watermarking confirmation information by applying a watermark image for the selected machine learning model to the selected machine learning model.

본 개시의 일 실시예에 따르면, 수요자 단말기(320)는 워터마킹 확인정보를 워터마킹 결과정보와 비교하여 동일여부를 판단할 수 있다. 수요자 단말기(320)는 워터마킹 결과정보 및 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 서버(330)로 송신할 수 있다. 또한 서버(330)는 선택된 기계학습모델에 대한 워터마킹 결과정보 및 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 수요자 단말기로부터 수신하는 단계(650)를 수행할 수 있다.According to an embodiment of the present disclosure, the consumer terminal 320 may compare the watermarking confirmation information with the watermarking result information to determine whether it is the same. The consumer terminal 320 may transmit information on whether the watermarking result information and the watermarking confirmation information match to the server 330 . In addition, the server 330 may perform a step 650 of receiving from the consumer terminal information on whether the watermarking result information and the watermarking confirmation information for the selected machine learning model match.

워터마킹 확인정보가 워터마킹 결과정보와 동일하지 않다면 수요자 단말기(320)는 서버(330)에 기계학습모델을 다시 요청할 수 있다. 동일하지 않다면 수요자 단말기(320)는 서버(330)에 기계학습모델을 다시 요청할 수 있다. 또한 수요자 단말기(320)는 서버(330)에 환불을 요청할 수 있다. 워터마킹 확인정보가 워터마킹 결과정보와 동일하다면 수요자 단말기(320)는 거래 완료 정보를 서버(330)에 송신할 수 있다.If the watermarking confirmation information is not the same as the watermarking result information, the consumer terminal 320 may request the machine learning model from the server 330 again. If not identical, the consumer terminal 320 may request the machine learning model from the server 330 again. In addition, the consumer terminal 320 may request a refund from the server 330 . If the watermarking confirmation information is the same as the watermarking result information, the consumer terminal 320 may transmit the transaction completion information to the server 330 .

본 개시의 다른 실시예에 따르면, 수요자 단말기(320)는 워터마킹 확인정보를 서버(330)로 송신할 수 있다. 서버(330)는 워터마킹 확인정보를 워터마킹 결과정보와 비교하여 동일여부를 판단할 수 있다. 워터마킹 확인정보가 워터마킹 결과정보와 동일하지 않다면 서버(330)는 수요자 단말기(320)에 기계학습모델을 재송신할 수 있다. 또한 수요자 단말기(320)는 서버(330)에 환불을 요청할 수 있다. 워터마킹 확인정보가 워터마킹 결과정보와 동일하다면 서버(330)는 거래 완료 정보를 생성할 수 있다.According to another embodiment of the present disclosure, the consumer terminal 320 may transmit the watermarking confirmation information to the server 330 . The server 330 may compare the watermarking confirmation information with the watermarking result information to determine whether it is the same. If the watermarking confirmation information is not the same as the watermarking result information, the server 330 may retransmit the machine learning model to the consumer terminal 320 . In addition, the consumer terminal 320 may request a refund from the server 330 . If the watermarking confirmation information is the same as the watermarking result information, the server 330 may generate transaction completion information.

위와 같은 도 6의 과정을 통하여 수요자는 서버(330)에 있는 기계학습모델과 수요자 단말기(320)에 있는 기계학습모델이 동일함을 확인할 수 있다. 또한 워터마킹 확인정보가 워터마킹 결과정보와 일치하지 않는 경우, 서버(330)는 공급자에게 그 정보를 송신하여, 공급자가 조치를 취할 수 있게 할 수 있다. 또한, 서로 다른 공급자가 등록한 기계학습모델들에 동일한 워터마크 이미지를 입력하고, 획득된 워터마킹 확인정보들이 동일하다면 서로 다른 공급자 중 하나가 저작권을 위반한 것으로 볼 수 있다. 따라서 서버(330)는 저작권을 효과적으로 보호할 수 있다.Through the process of FIG. 6 as described above, the consumer can confirm that the machine learning model in the server 330 and the machine learning model in the consumer terminal 320 are the same. Also, when the watermarking confirmation information does not match the watermarking result information, the server 330 may transmit the information to the provider so that the provider can take action. In addition, if the same watermark image is input to machine learning models registered by different suppliers and the obtained watermarking confirmation information is the same, it can be considered that one of the different suppliers has violated the copyright. Therefore, the server 330 can effectively protect the copyright.

도 8은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.8 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.

도 7에서 수요자 단말기(320)까 제 5 영역(750)의 모델 테스트를 클릭하거나 터치하는 경우, 수요자 단말기(320)는 도 8과 같은 화면을 표시할 수 있다. 수요자 단말기(320)는 미리 정해진 최대개수 이하의 입력 데이터(input1, input2, ...)를 서버(330)로 송신할 수 있다. 미리 정해진 최대개수는 수요자 단말기(320) 도는 서버(330)의 메모리에 저장되어 있을 수 있다. 도 8을 참조하면, 미리 정해진 최대개수는 3개일 수 있다. 서버(330)는 입력 데이터를 수신하여 선택된 기계학습모델에 적용할 수 있다. 또한 서버(330)는 기계학습모델의 출력으로써, 입력 데이터에 대응되는 예측 데이터를 생성할 수 있다. 서버(330)는 예측 데이터를 수요자 단말기(320)로 송신할 수 있다. 수요자 단말기(320)는 수신된 예측 데이터(output1, output2, ...)를 화면에 표시할 수 있다. In the case of clicking or touching the model test of the fifth region 750 from the consumer terminal 320 to the consumer terminal 320 in FIG. 7 , the consumer terminal 320 may display a screen as shown in FIG. 8 . The consumer terminal 320 may transmit the input data (input1, input2, ...) less than a predetermined maximum number to the server 330 . The predetermined maximum number may be stored in the memory of the consumer terminal 320 or the server 330 . Referring to FIG. 8 , the predetermined maximum number may be three. The server 330 may receive input data and apply it to the selected machine learning model. In addition, the server 330 may generate prediction data corresponding to the input data as an output of the machine learning model. The server 330 may transmit the prediction data to the consumer terminal 320 . The consumer terminal 320 may display the received prediction data (output1, output2, ...) on the screen.

수요자는 추가적인 테스트를 위하여 서버(330)에서 과금된 금액을 결제할 수 있다. 서버(330)는 수요자 단말기(320)로부터 결제정보를 수신할 수 있다. 즉, 서버(330)는 수요자 단말기(320)로부터 소정의 금액을 수신할 수 있다. 서버(330)는 상기 미리 정해진 최대개수를 초과한 입력 데이터를 수신하여 예측 데이터를 수요자 단말기(320)로 송신할 수 있다. 수요자는 기계학습모델을 구매하기 전에 기계학습모델의 성능을 테스트해볼 수 있다.The consumer may pay the amount charged by the server 330 for an additional test. The server 330 may receive payment information from the consumer terminal 320 . That is, the server 330 may receive a predetermined amount from the consumer terminal 320 . The server 330 may receive the input data exceeding the predetermined maximum number and transmit the prediction data to the consumer terminal 320 . Consumers can test the performance of the machine learning model before purchasing it.

도 9는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.9 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.

서버(330)는 수요자 단말기(320)로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계(910)를 수행할 수 있다. 서버(330)는 수요자 단말기(320)로부터 결제정보를 수신할 수 있다. 서버(330)는 수요자 단말기(320)가 튜닝 비용을 지불한 경우 단계(920)를 진행할 수 있다. 튜닝 비용은 수요자 단말기(320)에서 제공하는 데이터 세트의 크기에 기초하여 결정될 수 있다. 보다 구체적으로 데이터 세트의 크기와 비용은 비례관계일 수 있다.The server 330 may perform an operation 910 of receiving tuning request information for the machine learning model selected from the consumer terminal 320 . The server 330 may receive payment information from the consumer terminal 320 . The server 330 may proceed to step 920 when the consumer terminal 320 has paid the tuning cost. The tuning cost may be determined based on the size of the data set provided by the consumer terminal 320 . More specifically, the size and cost of the data set may be proportional.

서버(330)는 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는지 여부를 결정할 수 있다. 튜닝 가능 여부에 대한 정보는 서버(330)의 데이터 베이스에 저장되어 있을 수 있다. 튜닝 가능 여부에 대한 정보는 단계(410)에서 공급자 단말기로부터 수신될 수 있으며, 단계(460)에서 데이터 베이스에 저장될 수 있다. The server 330 may determine whether the information on whether the selected machine learning model is tunable indicates that the selected machine learning model is tunable. Information on whether tuning is possible may be stored in a database of the server 330 . Information on whether tuning is possible may be received from the provider terminal in step 410 and may be stored in a database in step 460 .

선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 서버(330)는 수요자 단말기(320)에 데이터 세트를 요청하는 단계를 수행할 수 있다. 수요자 단말기(320)는 데이터 세트를 서버(330)로 송신할 수 있다. 데이터 세트는 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 기계학습모델을 튜닝하기 위해 사용되는 데이터들의 집합일 수 있다. 학습 데이터 세트에는 분석 대상 데이터 및 분석 대상 데이터에 대응되는 레이블 정보를 포함할 수 있다. 여기서 레이블 정보는 실제(ground truth) 정보일 수 있다. 예를 들어 분석 대상 데이터는 사진일 수 있고, 레이블 정보는 상기 사진에 포함된 물건의 이름일 수 있다. 튜닝용 테스트 데이터 세트는 분석 대상 데이터를 포함할 수 있다. 튜닝용 테스트 데이터 세트는 튜닝된 기계학습모델을 테스트하기 위해 사용될 수 있다. 튜닝용 테스트 데이터 세트는 분석 대상 데이터에 대응되는 레이블 정보를 더 포함할 수 있다.When the information on whether the selected machine learning model is tunable or not indicates that the selected machine learning model is tunable, the server 330 may perform the step of requesting the data set from the consumer terminal 320 . The consumer terminal 320 may transmit the data set to the server 330 . The data set may be a set of data used to tune a machine learning model including at least one of a training data set and a test data set for tuning. The training data set may include analysis target data and label information corresponding to the analysis target data. Here, the label information may be ground truth information. For example, the data to be analyzed may be a photo, and the label information may be a name of an object included in the photo. The test data set for tuning may include data to be analyzed. The test dataset for tuning can be used to test the tuned machine learning model. The tuning test data set may further include label information corresponding to the analysis target data.

서버(330)는 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 데이터 세트를 수신하는 단계(920)를 수행할 수 있다. 서버(330)는 튜닝하는데 필요한 최소한의 데이터의 개수에 대한 정보를 저장하고 있을 수 있다. 최소한의 데이터의 개수는 서버(330)에 미리 정해져 있거나, 공급자 단말기(310)로부터 수신할 수 있다. 데이터 세트에 포함된 데이터의 개수가 최소한의 데이터의 개수보다 작은 경우, 서버(330)는 수요자 단말기(320)에 데이터 세트를 추가할 것을 요청할 수 있다. 서버(330)는 최소한의 데이터의 개수 이상의 데이터에 기반하여 기계학습을 수행하므로 정확도가 높은 기계학습모델을 생성할 수 있다.The server 330 may perform an operation 920 of receiving a data set including at least one of a training data set and a test data set for tuning from the consumer terminal. The server 330 may store information on the minimum number of data required for tuning. The minimum number of data may be predetermined in the server 330 or may be received from the provider terminal 310 . When the number of data included in the data set is smaller than the minimum number of data, the server 330 may request to add the data set to the consumer terminal 320 . Since the server 330 performs machine learning based on data equal to or greater than the minimum number of data, it is possible to generate a machine learning model with high accuracy.

서버(330)는 선택된 기계학습모델을 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계(930)를 수행할 수 있다. 하지만 이에 한정되는 것은 아니고, 서버(330)는 공급자 단말기(310)로 학습 데이터 세트를 송신할 수 있다. 공급자 단말기(310)는 학습 데이터 세트에 기초하여 튜닝된 기계학습모델을 생성하고, 서버(330)로 송신할 수 있다. 서버(330)는 공급자 단말기(310)로부터 튜닝된 기계학습모델을 수신할 수 있다.The server 330 may perform step 930 of generating a tuned machine learning model by re-learning the selected machine learning model based on the training data set. However, the present invention is not limited thereto, and the server 330 may transmit the training data set to the provider terminal 310 . The provider terminal 310 may generate a machine learning model tuned based on the training data set and transmit it to the server 330 . The server 330 may receive the tuned machine learning model from the provider terminal 310 .

서버(330) 또는 공급자 단말기(310)는 튜닝된 기계학습모델에 튜닝용 테스트 데이터 세트를 적용하여 튜닝된 기계학습모델에 대한 정확도를 획득하는 단계(950)를 수행할 수 있다. 서버(330) 또는 공급자 단말기(310)는 튜닝 전의 정확도와 튜닝 후의 정확도를 비교할 수 있다. 튜닝 전의 정확도에서 튜닝 후의 정확도를 뺀 값이 임계값보다 작은 경우, 서버(330)는 공급자 단말기(310)에 정확도가 낮음을 나타내는 정보를 송신할 수 있다. 임계값은 음수일 수 있다. 임계값은 미리 정해진 값일 수도 있고, 수요자 단말기(320)로부터 수신된 값일 수 있다. 또한 튜닝 전의 정확도에서 튜닝 후의 정확도를 뺀 값이 임계값보다 작은 경우, 서버(330)는 수요자 단말기(320)에 추가적인 데이터 세트를 요청할 수 있다.The server 330 or the provider terminal 310 may perform a step 950 of obtaining accuracy for the tuned machine learning model by applying a test data set for tuning to the tuned machine learning model. The server 330 or the provider terminal 310 may compare the accuracy before tuning with the accuracy after tuning. When the value obtained by subtracting the accuracy after tuning from the accuracy before tuning is less than the threshold value, the server 330 may transmit information indicating that the accuracy is low to the provider terminal 310 . The threshold may be negative. The threshold value may be a predetermined value or a value received from the consumer terminal 320 . In addition, when the value obtained by subtracting the accuracy after tuning from the accuracy before tuning is smaller than the threshold value, the server 330 may request an additional data set from the consumer terminal 320 .

수요자 단말기(320)는 튜닝된 기계학습모델의 정확도가 충분하지 않은 경우, 구매를 포기할 수 있다.The consumer terminal 320 may abandon the purchase when the accuracy of the tuned machine learning model is not sufficient.

서버(330)는 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계를 수행할 수 있다. 워터마킹의 과정은 도 5와 함께 설명하였으며, 중복되는 설명은 생략한다.The server 330 may perform watermarking on the tuned machine learning model to obtain the tuned watermarking result information. The process of watermarking has been described with reference to FIG. 5, and overlapping descriptions will be omitted.

서버(330)는 튜닝된 기계학습모델과 관련된 등록 정보, 튜닝된 기계학습모델, 튜닝된 테스트 코드, 튜닝용 테스트 데이터, 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 수행할 수 있다. 튜닝된 테스트 코드는 도 4의 테스트 코드와 동일 할 수 있다. 하지만 이에 한정되는 것은 아니며, 튜닝된 테스트 코드는 튜닝된 기계학습모델에 특화된 코드로써, 도 4의 테스트 코드와 다를 수 있다.The server 330 may perform the step of storing registration information related to the tuned machine learning model, the tuned machine learning model, the tuned test code, test data for tuning, and the tuned watermarking result information in the database. The tuned test code may be the same as the test code of FIG. 4 . However, the present invention is not limited thereto, and the tuned test code is a code specific to the tuned machine learning model, and may be different from the test code of FIG. 4 .

도 10은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.10 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.

도 10의 화면은 도 9의 과정 전에 수요자 단말기(320)에서 표시될 수 있다. 수요자 단말기(320)는 서버(330)로부터 수신한 정보에 기초하여 제 6 영역(1010)에 기계학습모델과 관련된 등록 정보를 표시할 수 있다. 수요자는 기계학습모델과 관련된 등록 정보에 기초하여 구매할 기계학습모델에 대하여 파악할 수 있다.The screen of FIG. 10 may be displayed on the consumer terminal 320 before the process of FIG. 9 . The consumer terminal 320 may display registration information related to the machine learning model in the sixth area 1010 based on the information received from the server 330 . The consumer can identify the machine learning model to purchase based on the registration information related to the machine learning model.

수요자 단말기(320)의 제 7 영역(1020)에는 모델 구매 버튼이 표시될 수 있다. 수요자가 모델 구매 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 구매를 요청하는 정보를 서버(330)로 송신할 수 있으며, 구매절차가 시작될 수 있다. A model purchase button may be displayed in the seventh area 1020 of the consumer terminal 320 . When the consumer clicks or touches the model purchase button, the consumer terminal 320 may transmit information requesting purchase to the server 330, and the purchase procedure may be started.

수요자 단말기(320)의 제 8 영역(1030)에는 모델 튜닝 요청 버튼이 표시될 수 있다. 수요자가 모델 튜닝 요청 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 선택된 기계학습모델에 대한 튜닝 요청 정보를 송신할 수 있다. 이에 대응하여 서버(330)는 단계(910)를 수행할 수 있다.A model tuning request button may be displayed in the eighth area 1030 of the consumer terminal 320 . When the consumer clicks or touches the model tuning request button, the consumer terminal 320 may transmit tuning request information for the selected machine learning model. In response, the server 330 may perform step 910 .

도 11은 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.11 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.

서버(330)는 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계(1110)를 수행할 수 있다. 복수의 분석 대상 데이터는 기계학습모델에 사용되기 위한 데이터일 수 있다. 예를 들어 복수의 분석 대상 데이터는 기계학습모델의 분석 대상일 수 있다. 복수의 분석 대상 데이터는 데이터 학습부(110) 또는 데이터 인식부(120)에 입력되는 데이터 일 수 있다.The server 330 may perform an operation 1110 of receiving a plurality of analysis target data and labeling request information from the consumer terminal. The plurality of analysis target data may be data to be used in a machine learning model. For example, a plurality of analysis target data may be an analysis target of the machine learning model. The plurality of analysis target data may be data input to the data learning unit 110 or the data recognition unit 120 .

또한, 서버(330)는 레이블링 요청 정보에 대응하여 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계(1120)를 수행할 수 있다. 프로젝트를 생성한다는 것은 가사의 작업공간을 만든다는 것이다. 프로젝트 참여자들은 참여자 단말기로 가상의 작업공간에 접속하여 복수의 분석 대상 데이터에 대한 레이블링을 수행할 수 있다. 레이블링 프로젝트는 수요자로부터 획득된 복수의 분석 대상 데이터를 포함할 수 있다. 또한 레이블링 프로젝트는 수요자 단말기(320)로부터 수신한 작업 가이드 정보를 포함할 수 있다. 참여자는 참여자 단말기를 이용하여 작업 가이드 정보에 기초하여 레이블 정보를 입력할 수 있다. 참여자 단말기는 프로젝트에 포함된 복수의 분석 대상 데이터에 대하여 레이블 정보를 서버(330)로 송신할 수 있다. 레이블링 프로젝트는 프로젝트에 할당된 총포인트 정보를 포함할 수 있다. 총포인트 정보는 수요자 단말기(320)로부터 수신될 수 있다.Also, the server 330 may perform an operation 1120 of generating a labeling project for a plurality of analysis target data in response to the labeling request information. Creating a project means creating a working space for lyrics. Project participants can perform labeling on a plurality of data to be analyzed by accessing a virtual workspace with a participant terminal. The labeling project may include a plurality of analysis target data obtained from the consumer. In addition, the labeling project may include work guide information received from the consumer terminal 320 . The participant may input label information based on the work guide information using the participant terminal. The participant terminal may transmit label information for a plurality of analysis target data included in the project to the server 330 . A labeling project may contain information about the total points assigned to the project. The total point information may be received from the consumer terminal 320 .

서버(330)는 적어도 하나의 프로젝트 참여자의 단말기로부터 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계(1130)를 수행할 수 있다. 서버(330)는 참여자의 단말기로부터 수신된 복수의 분석 대상 데이터에 대해서서 검수를 할 수 있다. 예를 들어, 서버(330)는 복수의 참여자 단말기로부터 하나의 분석 대상 데이터에 대한 레이블 정보를 수신할 수 있다. 복수의 참여자 단말기는 홀수일 수 있다. 서버(330)는 참여자 단말기로부터 더 많이 선택된 레이블 정보를 실제 레이블 정보로 결정할 수 있다. 또한, 서버(330)는 참여자 단말기들 중 임계비율 이상 선택된 레이블 정보를 실제 레이블 정보로 결정할 수 있다. 임계비율은 미리 결정된 값일 수 있다. 서버(330)는 실제 레이블 정보를 결정할 수 없을 때, 다른 복수의 참여자 단말기에게 해당 분석 대상 데이터에 대한 레이블 정보를 달아줄 것을 요청할 수 있다.The server 330 may perform an operation 1130 of receiving a plurality of pieces of label information respectively corresponding to a plurality of analysis target data from the terminals of at least one project participant. The server 330 may inspect a plurality of analysis target data received from the participant's terminal. For example, the server 330 may receive label information for one piece of analysis target data from a plurality of participant terminals. The plurality of participant terminals may be an odd number. The server 330 may determine the more selected label information from the participant terminal as the actual label information. In addition, the server 330 may determine the label information selected above a threshold ratio among the participant terminals as the actual label information. The threshold ratio may be a predetermined value. When the server 330 cannot determine the actual label information, it may request a plurality of other participant terminals to attach label information for the corresponding analysis target data.

서버(330)는 복수의 분석 대상 데이터의 개수 중 프로젝트 참여자 단말기가 송신한 복수의 레이블 정보의 개수의 비율에 기초하여 포인트를 지급할 수 있다. 예를 들어 참여자 단말기에 아래와 같은 수식에 의한 포인트가 지급될 수 있다.The server 330 may pay points based on a ratio of the number of pieces of label information transmitted by the project participant terminal among the number of a plurality of analysis target data. For example, points may be paid to the participant terminal according to the following formula.

P = T * (n-a)/MP = T * (n-a)/M

여기서 P는 프로젝트 참여자에게 지급될 포인트이고, T 는 총포인트이고, n은 참여자 단말기가 송신한 복수의 레이블 정보의 개수이고, M은 복수의 분석 대상 데이터의 개수일 수 있다. 또한 a는 참여자 단말기가 송신한 복수의 레이블 정보 중 실제 레이블 정보로 결정되지 않은 레이블 정보의 수일 수 있다. 포인트는 현금에 비례한 가지를 가질 수 있다. 서버(330)는 포인트의 양에 기반하여 참여자에게 현금을 지급할 수 있다.Here, P may be the points to be paid to project participants, T may be the total points, n may be the number of pieces of label information transmitted by the participant terminals, and M may be the number of pieces of data to be analyzed. Also, a may be the number of label information that is not determined as actual label information among a plurality of label information transmitted by the participant terminal. Points can have branches proportional to cash. The server 330 may pay cash to the participant based on the amount of points.

도 12은 본 개시의 일 실시예에 따라 참여자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.12 is a diagram illustrating a screen that may be displayed in a participant terminal according to an embodiment of the present disclosure.

참여자 단말기의 화면(1210)의 제 9 영역(1211)에는 영상이 표시될 수 있다. 영상은 서버(330)로부터 수신될 수 있다. 영상은 수요자 단말기(320)가 서버(330)에 제공한 데이터일 수 있다. 제 9 영역(1211)에 표시된 영상은 분석 대상 데이터에 포함될 수 있다. An image may be displayed in the ninth area 1211 of the screen 1210 of the participant terminal. The image may be received from the server 330 . The image may be data provided by the consumer terminal 320 to the server 330 . The image displayed in the ninth area 1211 may be included in the analysis target data.

또한 참여자 단말기의 제 10영역(1212)에는 선택 가능한 레이블 정보가 포함될 수 있다. 선택 가능한 레이블 정보는 클래스 정보일 수 있다. 선택 가능한 레이블 정보는 서버(330)로부터 수신될 수 있다. 선택 가능한 레이블 정보는 수요자 단말기(320)가 서버(330)에 제공한 데이터일 수 있다. 참여자 단말기는 참여자의 입력에 기초하여 선택 가능한 레이블 정보 중 하나를 선택할 수 있다. 레이블 정보는 영상에 나타낸 물체의 종류일 수 있다.In addition, selectable label information may be included in the tenth area 1212 of the participant terminal. The selectable label information may be class information. The selectable label information may be received from the server 330 . The selectable label information may be data provided by the consumer terminal 320 to the server 330 . The participant terminal may select one of selectable label information based on the participant's input. The label information may be a type of an object indicated in an image.

참여자 단말기의 화면(1220)의 제 11영역(1221)에는 영상이 표시될 수 있다. 또한 참여자 단말기의 제 12영역(1222)에는 선택 가능한 레이블 정보가 포함될 수 있다. 레이블 정보는 영상에 나타낸 물체의 동작 묘사일 수 있다.An image may be displayed in the eleventh area 1221 of the screen 1220 of the participant terminal. In addition, selectable label information may be included in the twelfth area 1222 of the participant terminal. The label information may be a description of the motion of the object shown in the image.

참여자 단말기의 제 13 영역(1231)에는 영상이 표시될 수 있다. 또한 참여자는 특정 물체의 위치를 지정할 수 있다. 예를 들어 참여자 단말기는 참여자의 입력에 기초하여 제 14 영역(1232) 및 제 15 영역(1233)에 특정 물체가 위치하는 것으로 결정할 수 있다. An image may be displayed in the thirteenth area 1231 of the participant terminal. Participants can also specify the location of specific objects. For example, the participant terminal may determine that a specific object is located in the 14th area 1232 and the 15th area 1233 based on the participant's input.

서버(330)는 참여자 단말기로부터 수신한 정보를 분석 대상 데이터에 대한 레이블 정보를 저장할 수 있다. 또한 서버(330)는 참여자 단말기에 포인트를 지급할 수 있다. 또한 수요자 단말기(320)는 복수의 분석 대상 데이터 및 복수의 레이블 정보에 기초하여 기계학습모델을 재학습시키거나 기계학습모델을 동작시킬 수 있다.The server 330 may store label information for the data to be analyzed in the information received from the participant terminal. Also, the server 330 may provide points to the participant terminals. In addition, the consumer terminal 320 may re-learn the machine learning model or operate the machine learning model based on the plurality of analysis target data and the plurality of label information.

이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, various embodiments have been mainly looked at. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).

Claims (10)

공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계;
상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계;
상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하는 단계;
상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하는 단계;
상기 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하는 단계; 및
상기 기계학습모델과 관련된 등록 정보, 상기 기계학습모델, 상기 테스트 코드, 상기 테스트 데이터 세트, 상기 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함하는 서버의 동작 방법.
Receiving registration information related to the machine learning model from the provider terminal;
receiving the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the provider terminal;
applying the test data set to the test code to obtain a test result;
approving the machine learning model based on the test result;
when the machine learning model is approved, performing watermarking to obtain watermarking result information; and
and storing registration information related to the machine learning model, the machine learning model, the test code, the test data set, and the watermarking result information in a database.
제 1 항에 있어서,
상기 워터마킹 결과정보를 획득하는 단계는,
워터마크 이미지 및 상기 워터마크 이미지에 대한 레이블을 획득하는 단계;
상기 기계학습모델은 상기 워터마크 이미지 및 상기 워터마크 이미지에 대한 레이블에 기초하여 추가적으로 학습되는 단계; 및
상기 기계학습모델에 상기 워터마크 이미지를 적용하여 워터마킹 결과정보를 획득하는 단계를 포함하는 서버의 동작 방법.
The method of claim 1,
The step of obtaining the watermarking result information comprises:
obtaining a watermark image and a label for the watermark image;
further learning the machine learning model based on the watermark image and a label for the watermark image; and
and obtaining watermarking result information by applying the watermark image to the machine learning model.
제 2 항에 있어서,
수요자 단말기의 요청에 따라 상기 기계학습모델과 관련된 등록 정보를 상기 수요자 단말기로 송신하는 단계;
상기 수요자 단말기로부터 선택된 기계학습모델에 대한 식별 정보를 수신하는 단계;
상기 선택된 기계학습모델을 상기 수요자 단말기로 송신하는 단계;
상기 선택된 기계학습모델에 대한 워터마크 이미지 및 워터마킹 결과정보를 상기 수요자 단말기로 송신하는 단계; 및
상기 수요자 단말기에서 상기 선택된 기계학습모델에 대한 워터마크 이미지를 상기 선택된 기계학습모델에 적용하여 워터마킹 확인정보를 생성하고, 상기 선택된 기계학습모델에 대한 워터마킹 결과정보 및 상기 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 상기 수요자 단말기로부터 수신하는 단계를 포함하는 서버의 동작 방법.
3. The method of claim 2,
transmitting registration information related to the machine learning model to the consumer terminal at the request of the consumer terminal;
receiving identification information on the selected machine learning model from the consumer terminal;
transmitting the selected machine learning model to the consumer terminal;
transmitting a watermark image and watermarking result information for the selected machine learning model to the consumer terminal; and
The consumer terminal applies the watermark image for the selected machine learning model to the selected machine learning model to generate watermarking confirmation information, and the watermarking result information for the selected machine learning model and the watermarking confirmation information match Method of operation of a server comprising the step of receiving information on whether or not to do so from the consumer terminal.
제 3 항에 있어서,
상기 수요자 단말기로부터 상기 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계;
상기 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 상기 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 상기 수요자 단말기에 데이터 세트를 요청하는 단계;
상기 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트를 포함하는 데이터 세트를 수신하는 단계;
상기 선택된 기계학습모델을 상기 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계; 및
상기 튜닝된 기계학습모델에 상기 튜닝용 테스트 데이터 세트를 적용하여 상기 튜닝된 기계학습모델에 대한 정확도를 획득하는 단계를 포함하는 서버의 동작 방법.
4. The method of claim 3,
receiving tuning request information for the selected machine learning model from the consumer terminal;
requesting a data set from the consumer terminal when the information on whether the selected machine learning model is tunable indicates that the selected machine learning model is tunable;
receiving a data set including a training data set and a tuning test data set from the consumer terminal;
generating a tuned machine learning model by re-learning the selected machine learning model based on the training data set; and
and acquiring accuracy for the tuned machine learning model by applying the tuning test data set to the tuned machine learning model.
제 4 항에 있어서,
상기 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계; 및
상기 튜닝된 기계학습모델과 관련된 등록 정보, 상기 튜닝된 기계학습모델, 튜닝된 테스트 코드, 상기 튜닝용 테스트 데이터 세트, 상기 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함하는 서버의 동작 방법.
5. The method of claim 4,
performing watermarking on the tuned machine learning model to obtain tuned watermarking result information; and
Registering information related to the tuned machine learning model, the tuned machine learning model, the tuned test code, the test data set for tuning, and the step of storing the tuned watermarking result information in a database Operation method of a server .
제 5 항에 있어서,
상기 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계;
상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계; 및
적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함하는 서버의 동작 방법.
6. The method of claim 5,
receiving a plurality of analysis target data and labeling request information from the consumer terminal;
generating a labeling project for the plurality of analysis target data in response to the labeling request information; and
Method of operating a server comprising the step of receiving a plurality of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
수요자 단말기로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계;
상기 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 상기 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 상기 수요자 단말기에 데이터 세트를 요청하는 단계;
상기 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 데이터 세트를 수신하는 단계;
상기 선택된 기계학습모델을 상기 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계;
상기 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계; 및
상기 튜닝된 기계학습모델과 관련된 등록 정보, 상기 튜닝된 기계학습모델, 튜닝된 테스트 코드, 상기 튜닝용 테스트 데이터 세트, 상기 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함하는 서버의 동작 방법.
Receiving tuning request information for the selected machine learning model from the consumer terminal;
requesting a data set from the consumer terminal when the information on whether the selected machine learning model is tunable indicates that the selected machine learning model is tunable;
receiving a data set including at least one of a training data set and a tuning test data set from the consumer terminal;
generating a tuned machine learning model by re-learning the selected machine learning model based on the training data set;
performing watermarking on the tuned machine learning model to obtain tuned watermarking result information; and
Registering information related to the tuned machine learning model, the tuned machine learning model, the tuned test code, the test data set for tuning, and the step of storing the tuned watermarking result information in a database Operation method of a server .
제 7 항에 있어서,
상기 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계;
상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계; 및
적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함하는 서버의 동작 방법.
8. The method of claim 7,
receiving a plurality of analysis target data and labeling request information from the consumer terminal;
generating a labeling project for the plurality of analysis target data in response to the labeling request information; and
Method of operating a server comprising the step of receiving a plurality of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계;
상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계;
상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하는 단계;
상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하는 단계;
수요자 단말기로부터 상기 기계학습모델에 사용하기 위한 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계;
상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계; 및
적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함하는 서버의 동작 방법.
Receiving registration information related to the machine learning model from the provider terminal;
receiving the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the provider terminal;
applying the test data set to the test code to obtain a test result;
approving the machine learning model based on the test result;
receiving a plurality of analysis target data and labeling request information for use in the machine learning model from a consumer terminal;
generating a labeling project for the plurality of analysis target data in response to the labeling request information; and
Method of operating a server comprising the step of receiving a plurality of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
기계학습모델을 공유하기 위한 서버는 프로세서 및 메모리를 포함하고,
상기 프로세서는 상기 메모리에 저장된 명령어에 기초하여,
공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하고, 상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하고, 상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하고, 상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하고, 상기 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하고, 상기 기계학습모델과 관련된 등록 정보, 상기 기계학습모델, 상기 테스트 코드, 상기 테스트 데이터 세트, 상기 워터마킹 결과정보를 데이터베이스에 저장하는 서버.
A server for sharing a machine learning model includes a processor and memory,
The processor based on the instructions stored in the memory,
Receive registration information related to a machine learning model from a supplier terminal, receive the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the supplier terminal, and the test data set is applied to the test code to obtain a test result, and the machine learning model is approved based on the test result, and when the machine learning model is approved, watermarking is performed to obtain watermarking result information, and the A server for storing registration information related to a machine learning model, the machine learning model, the test code, the test data set, and the watermarking result information in a database.
KR1020200107159A 2020-08-25 2020-08-25 System for sharing or selling machine learning model and operating method thereof KR102453673B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200107159A KR102453673B1 (en) 2020-08-25 2020-08-25 System for sharing or selling machine learning model and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200107159A KR102453673B1 (en) 2020-08-25 2020-08-25 System for sharing or selling machine learning model and operating method thereof

Publications (2)

Publication Number Publication Date
KR20220026647A true KR20220026647A (en) 2022-03-07
KR102453673B1 KR102453673B1 (en) 2022-10-13

Family

ID=80817489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200107159A KR102453673B1 (en) 2020-08-25 2020-08-25 System for sharing or selling machine learning model and operating method thereof

Country Status (1)

Country Link
KR (1) KR102453673B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102033136B1 (en) 2019-04-03 2019-10-16 주식회사 루닛 Method for machine learning based on semi-supervised learning and apparatus thereof
KR20200015048A (en) 2018-08-02 2020-02-12 삼성전자주식회사 Method and apparatus for selecting model of machine learning based on meta-learning
KR102099019B1 (en) 2018-10-12 2020-04-08 서울대학교산학협력단 Identifying method of user based on generative model for watermark and watermarking method based on generative model
CN111260071A (en) 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 Method, device and storage medium for analyzing universal machine learning model file

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200015048A (en) 2018-08-02 2020-02-12 삼성전자주식회사 Method and apparatus for selecting model of machine learning based on meta-learning
KR102099019B1 (en) 2018-10-12 2020-04-08 서울대학교산학협력단 Identifying method of user based on generative model for watermark and watermarking method based on generative model
CN111260071A (en) 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 Method, device and storage medium for analyzing universal machine learning model file
KR102033136B1 (en) 2019-04-03 2019-10-16 주식회사 루닛 Method for machine learning based on semi-supervised learning and apparatus thereof

Also Published As

Publication number Publication date
KR102453673B1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
AU2019216644B2 (en) Automation and digitizalization of document processing systems
US11682093B2 (en) Document term recognition and analytics
KR102066371B1 (en) Agency matching method, apparatus and program based on block chain
US10360631B1 (en) Utilizing artificial intelligence to make a prediction about an entity based on user sentiment and transaction history
CN113508378A (en) Recommendation model training method, recommendation device and computer readable medium
CN109983491B (en) Method and apparatus for applying artificial intelligence to money collection by using voice input
CN108431854A (en) Detect junk information publication
CN106407999A (en) Rule combined machine learning method and system
US20210350393A1 (en) Behavioral data analytics platform
US20210191988A1 (en) Summarized logical forms for controlled question answering
Artasanchez et al. Artificial Intelligence with Python: Your complete guide to building intelligent apps using Python 3. x
JP2013058192A (en) System, method and computer program product for parcel assessment
KR102384728B1 (en) Method and system for outputting producer-centric auction price in reverse of agricultural product based on auction price of producing area
US20230093756A1 (en) Systems and methods for generating recommendations
CN113781149A (en) Information recommendation method and device, computer-readable storage medium and electronic equipment
KR20200127810A (en) Method for automatically estimatimg transaction value of used goods and computing device for executing the method
García-Magariño et al. Estimation of missing prices in real-estate market agent-based simulations with machine learning and dimensionality reduction methods
CN115456707A (en) Method and device for providing commodity recommendation information and electronic equipment
US10922633B2 (en) Utilizing econometric and machine learning models to maximize total returns for an entity
EP3965050A1 (en) Systems and methods for deriving rating for properties
JP7417597B2 (en) Probabilistic item matching and search
KR102453673B1 (en) System for sharing or selling machine learning model and operating method thereof
KR102370650B1 (en) real estate investment curation system based on artificial neural network and method therefor
Van Dinther Adaptive bidding in single-sided auctions under uncertainty: an agent-based approach in market engineering
US10860593B1 (en) Methods and systems for ranking leads based on given characteristics

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant