KR20240024575A - 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치 - Google Patents

서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치 Download PDF

Info

Publication number
KR20240024575A
KR20240024575A KR1020220102736A KR20220102736A KR20240024575A KR 20240024575 A KR20240024575 A KR 20240024575A KR 1020220102736 A KR1020220102736 A KR 1020220102736A KR 20220102736 A KR20220102736 A KR 20220102736A KR 20240024575 A KR20240024575 A KR 20240024575A
Authority
KR
South Korea
Prior art keywords
model
test
information
artificial intelligence
service
Prior art date
Application number
KR1020220102736A
Other languages
English (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 KR1020220102736A priority Critical patent/KR20240024575A/ko
Priority to PCT/KR2022/012490 priority patent/WO2024038939A1/ko
Publication of KR20240024575A publication Critical patent/KR20240024575A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

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

Abstract

전자 장치에서 서비스와 관련된 인공 지능 모델을 관리하는 방법이 개시된다. 구체적으로, 서비스와 관련된 인공 지능 모델을 관리하는 방법은 제1 사용자의 제1 단말로부터 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하는 단계; 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하는 단계; 서비스와 관련된 데이터를 기반으로, 제1 모델의 서빙을 수행하는 단계; 및 제1 모델의 서빙에 따른 결과 정보를 제공하는 단계를 포함할 수 있다.

Description

서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치{METHOD AND APPARTUS FOR MANAGING AN ARTIFICIAL INTELLIGENCE MODEL RELATED SERVICE}
본 명세서의 실시 예는 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치에 관한 것이다. 본 명세서의 실시 예는 플랫폼을 통해 인공 지능 모델을 훈련시키고, 훈련된 인공 지능 모델의 서빙에 따른 결과 정보를 제공함으로써, 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 이에 대한 장치에 관한 것이다.
최근 온라인 마케팅 등 인터넷 환경에서 사용자에게 적합한 아이템을 추천하는 것과 같은 의사 결정을 할 때 인공 지능 모델을 이용되거나 사용자의 행동 데이터를 분석하기 위한 각종 테스트가 수행되고 있다.
이러한 인공 지능 모델 및 행동 데이터를 분석하기 위한 각종 테스트는 서로 다른 개발자에 의해 개발될 수 있다. 이에 따라, 인공 지능 모델은 라이브러리 버전의 차이 등으로 인해 에러가 생길 우려가 있다. 또한, 개발자의 반복적인 작업으로 인해 인공 지능 모델의 훈련 및 개발, 행동 데이터를 분석하기 위한 각종 테스트는 비효율적으로 수행되고 있다. 따라서, 이와 같은 문제를 해결하기 위한 방법 및 장치가 요구된다.
본 개시는 상술한 문제점을 해결하기 위해 제안된 것으로, 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 이를 장치를 제공하는데 있다.
보다 구체적으로 본 개시는 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 모델에 대한 정보를 확인하고, 모델의 서빙을 수행함에 따른 결과를 제공하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1측면에 따른 전자 장치에서 서비스와 관련된 인공 지능 모델을 관리하는 방법은 제1 사용자의 제1 단말로부터 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하는 단계; 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하는 단계; 서비스와 관련된 데이터를 기반으로, 제1 모델의 서빙을 수행하는 단계; 및 제1 모델의 서빙에 따른 결과 정보를 제공하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델에 대한 정보를 확인하는 단계는 플랫폼에 대한 접속 요청을 수신함에 따라, 제1 단말에 인공 지능과 관련된 모델에 대한 플랫폼을 제공하는 단계; 및 플랫폼을 통해 제1 모델에 대한 적어도 하나의 데이터 및 설정된 모델 프레임워크에 대한 정보를 확인하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델에 대한 정보를 확인하는 단계는 설정된 모델 프레임워크에 대한 정보 및 적어도 하나의 데이터에 기반하여, 제1 모델을 훈련하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 제1 모델에 대한 정보를 확인하는 단계는 적어도 하나의 데이터를 적어도 하나의 제1 데이터 및 적어도 하나의 제2 데이터로 나누는 단계; 적어도 하나의 제1 데이터를 학습 데이터로 이용하여, 모델 프레임워크에 대한 정보에 따라 제1 모델을 훈련하는 단계; 및 적어도 하나의 제2 데이터를 테스트 데이터로 이용하여 훈련된 제1 모델의 예측 정확도를 확인하는 단계를 더 포함할 수 있다.
일 실시 예에 따르면, 플랫폼에 저장된 제1 모델은 예측 정확도가 설정된 임계치 이상인 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 제1 모델에 대한 정보를 확인하는 단계는 적어도 하나의 데이터에 대한 정보, 설정된 모델 프레임워크에 대한 정보, 제1 모델과 관련된 라이브러리 버전에 대한 정보 및 제1 모델에 대한 파라미터 정보 중 적어도 하나를 포함하는 제1 모델에 대한 정보를 확인하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델의 서빙을 수행하는 단계는 플랫폼을 통해 제2 사용자의 제2 단말에 제1 모델을 제공하는 단계; 및 플랫폼을 통해 서비스와 관련된 데이터에 기반하여 제1 모델에 대한 A/B 테스트를 수행하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델에 대한 A/B 테스트를 수행하는 단계는 A/B 테스트의 테스트 타입 및 A/B 테스트에 대한 설정 정보에 기반하여, A/B 테스트를 수행하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델에 대한 테스트를 수행하는 단계는 제1 모델을 포함하는 복수 개의 모델을 바인딩하여 생성된 대상 모델을 확인하는 단계; 및 대상 모델에 대한 A/B 테스트를 수행하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델은 플랫폼에 저장된 제2 모델의 새로운 버전이고, 제1 모델과 제2 모델은 모델 훈련에 사용된 적어도 하나의 데이터, 모델 프레임 워크, 라이브러리 버전 중 적어도 하나가 상이한 것을 특징으로 할 수 있다.
일 실시 예에 따르면, A/B 테스트는 서비스에 대한 표준 모델 및 대상 모델을 각각 A/B 테스트의 대조군 및 실험군으로 하는 A/B 테스트인 것을 특징으로 할 수 있다.
일 실시 예에 따르면, A/B 테스트에 대한 설정 정보는 A/B 테스트의 실행 기간에 대한 정보, 실행 지역에 대한 정보 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.
일 실시 예에 따르면, 테스트 타입이 제1 타입인 경우, A/B 테스트에 대한 설정 정보는 A/B 테스트에 할당되는 트래픽에 대한 정보를 포함할 수 있고, A/B 테스트를 수행하는 단계는 A/B 테스트에 할당되는 트래픽에 대한 정보에 따라 A/B 테스트를 수행하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 테스트 타입이 제2 타입인 경우, A/B 테스트에 대한 설정 정보는 A/B 테스트의 테스트 그룹 간의 실행 간격에 대한 정보 및 A/B 테스트의 테스트 그룹의 실행 순서에 대한 정보를 포함할 수 있고, A/B 테스트를 수행하는 단계는 실행 간격에 대한 정보 및 실행 순서에 대한 정보에 기반하여, A/B 테스트의 테스트 그룹에 A/B 테스트를 교대로 실행하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 테스트 타입이 제3 타입인 경우, A/B 테스트를 수행하는 단계는 A/B 테스트에 대한 설정 정보에 포함되는 실행 지역에 대한 정보에 기반하여, A/B 테스트의 사용자를 결정하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 플랫폼을 통해 제1 모델에 대한 적어도 하나의 데이터를 확인하는 단계는 플랫폼을 통해 호출 가능한 데이터를 가공하여 제1 모델에 대한 적어도 하나의 데이터를 생성하는 단계를 포함할 수 있다.
일 실시 예에 따르면, 제1 모델의 서빙에 따른 결과 정보를 제공하는 단계는 제1 모델의 서빙과 관련된 메트릭에 대한 정보를 제공하는 단계를 포함할 수 있다.
본 개시의 제2측면에 따른 서비스와 관련된 인공 지능 모델을 관리하기 위한 전자 장치는 트랜시버; 하나 이상의 명령어를 저장하는 스토리지; 및 제1 사용자의 제1 단말로부터 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하고, 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하고, 서비스와 관련된 데이터를 기반으로, 제1 모델의 서빙을 수행하고, 및 제1 모델의 서빙에 따른 결과 정보를 제공하는 프로세서를 포함할 수 있다.
본 개시의 제3측면에 따른 기록매체는 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체일 수 있다.
본 명세서의 실시 예에 따르면, 전자 장치는 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 모델에 대한 정보를 확인하고, 모델의 서빙을 수행함에 따른 결과를 제공할 수 있다. 이에 따라, 전자 장치는 플랫폼을 통해 단말의 사용자에게 동일한 개발 환경을 제공할 수 있다. 또한, 전자 장치는 별도의 코딩 없이 인공 지능과 관련된 모델의 서빙을 수행함으로써 모델의 서빙에 따른 결과 정보를 빠르게 확인하게 할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시 예에 따른 전자 장치가 서비스와 관련된 인공 지능 모델을 관리하는 방법이 구현될 수 있는 시스템을 설명하기 위한 도면이다.
도 2는 전자 장치가 서비스와 관련된 인공 지능 모델을 관리하는 방법을 나타낸 흐름도이다.
도 3은 제1 단말에서 획득한 정보에 기반하여 인공 지능과 관련된 제1 모델에 대한 정보를 확인하는 구체적인 실시 예에 대한 도면이다.
도 4는 플랫폼 상의 인공 지능과 관련된 모델에 대한 페이지를 나타내는 도면이다.
도 5는 플랫폼 상의 인공 지능과 관련된 모델에 대한 상세 페이지를 나타내는 도면이다.
도 6은 플랫폼 상의 인공 지능과 관련된 모델의 새로운 버전을 추가하기 위한 페이지를 나타내는 도면이다.
도 7은 플랫폼 상의 인공 지능과 관련된 모델의 새로운 버전을 추가하기 위한 페이지를 나타내는 도면이다.
도 8은 플랫폼 상의 표준 모델에 대한 페이지를 나타내는 도면이다.
도 9는 대상 모델을 생성하는 페이지를 나타내는 도면이다.
도 10은 표준 모델 및 대상 모델에 대한 A/B 테스트를 포함하는 페이지를 나타내는 도면이다.
도 11은 테스트 타입이 제1 타입인 경우, A/B 테스트의 설정 정보를 설정하기 위한 페이지에 대한 도면이다.
도 12는 테스트 타입이 제2 타입인 경우, A/B 테스트의 설정 정보를 설정하기 위한 페이지에 대한 도면이다.
도 13은 테스트 타입이 제3 타입인 경우, A/B 테스트의 설정 정보를 설정하기 위한 페이지에 대한 도면이다.
도 14는 파라미터 값을 설정함에 따라 테스트 그룹에 포함되는 사용자를 우선 할당하는 일 실시 예를 설명하기 위한 도면이다.
도 15는 제1 모델의 서빙과 관련된 메트릭에 대한 정보를 제공하는 실시 예에 대한 도면이다.
도 17은 일 실시 예에 따른 서비스와 관련된 인공 지능 모델을 관리하기 위한 전자 장치를 도식화한 블록도이다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “...부”, “...모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 “a, b, 및 c 중 적어도 하나”의 표현은, ‘a 단독’, ‘b 단독’, ‘c 단독’, ‘a 및 b’, ‘a 및 c’, ‘b 및 c’, 또는 ‘a,b,c 모두’를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 다양한 실시 예에 따른 전자 장치가 서비스와 관련된 인공 지능 모델을 관리하는 방법이 구현될 수 있는 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 다양한 실시 예에 따른 시스템(10)은 다양한 종류의 장치들에 의해 구현될 수 있다. 예를 들어, 시스템(10)은 전자 장치(100), 제1 단말(110) 및 제2 단말(120)을 포함할 수 있다. 도1에 도시된 시스템(10)은 본 실시 예와 관련된 구성요소들만 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
전자 장치(100), 제1 단말(110) 및 제2 단말(120) 각각은 트랜시버, 스토리지 및 프로세서를 포함할 수 있다. 또한, 전자 장치(100), 제1 단말(110) 및 제2 단말(120) 각각은 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 한편 실시 예 전반에서 전자 장치(100), 제1 단말(110) 및 제2 단말(120) 각각은 분리된 장치 또는 서버로 언급되나 이는 논리적으로 나누어진 구조일 수 있으며, 이들 중 적어도 일부가 하나의 장치 또는 서버에서 분리된 기능에 의해 구현될 수 있다.
일 실시 예에 따르면, 전자 장치(100), 제1 단말(110) 및 제2 단말(120)은 네트워크 서버로 구현되는 다수의 컴퓨터 시스템 또는 컴퓨터 소프트웨어를 포함할 수 있다. 예를 들면 전자 장치(100), 제1 단말(110) 및 제2 단말(120) 중 적어도 일부는 인트라넷 또는 인터넷과 같은 컴퓨터 네트워크를 통해 다른 네트워크 서버와 통신할 수 있는 하위 장치와 연결되어 작업 수행 요청을 접수하고, 그에 대한 작업을 수행하여 수행 결과를 제공하는 컴퓨터 시스템 및 컴퓨터 소프트웨어를 지칭할 수 있다. 이외에도, 전자 장치(100), 제1 단말(110) 및 제2 단말(120) 중 적어도 일부는 네트워크 서버 상에서 동작할 수 있는 일련의 응용 프로그램과, 내부 혹은 연결된 다른 노드에 구축되어 있는 각종 데이터베이스를 포함하는 광의의 개념으로 이해될 수 있다. 예컨대, 전자 장치(100), 제1 단말(110) 및 제2 단말(120) 중 적어도 일부는 도스(DOS), 윈도우(Windows), 리눅스(Linux), 유닉스(UNIX), 또는 맥OS(MacOS) 등의 운영 체제에 따라 다양하게 제공되는 네트워크 서버 프로그램을 이용하여 구현될 수 있다.
전자 장치(100), 제1 단말(110) 및 제2 단말(120)은 네트워크(미도시)를 통해서 서로 통신할 수 있다. 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
일 실시 예에 따르면, 전자 장치(100)에서 서비스와 관련된 인공 지능 모델을 관리하는 방법은 제1 사용자의 제1 단말(110)로부터 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하고, 제1 단말(110)에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하고, 서비스와 관련된 데이터를 기반으로, 제1 모델의 서빙을 수행하고, 및 제1 모델의 서빙에 따른 결과 정보를 제공하는 동작을 포함할 수 있다. 여기서, 제1 단말(110)은 제1 사용자의 단말일 수 있다. 전자 장치(100)는 제1 단말(110)에 인공 지능과 관련된 모델에 대한 플랫폼을 제공할 수 있고, 플랫폼을 통해 제1 모델에 대한 적어도 하나의 데이터 및 설정된 모델 프레임 워크에 대한 정보를 확인할 수 있다.
또한, 전자 장치(100)는 제1 단말(110)에서 확인된 제1 모델에 대한 정보에 기반하여, 플랫폼을 통해 제2 사용자의 제2 단말(120)에 제1 모델을 제공할 수 있고, 플랫폼을 통해 서비스와 관련된 데이터에 기반하여 제1 모델에 대한 A/B 테스트를 수행할 수 있다. 이에 따라, 전자 장치(100)는 플랫폼을 통해 제2 단말(120)에 제1 모델의 서빙에 따른 결과 정보를 제공할 수 있다.
이에 따라, 전자 장치(100)는 제1 단말(110) 및 제2 단말(120)에 플랫폼을 제공함으로써, 인공 지능과 관련된 모델의 학습 데이터 및 인공 지능 모델의 프레임 워크 등 모델 훈련에 대한 정보에 기반하여 인공 지능 모델을 훈련시킬 수 있다. 또한, 전자 장치(100)는 훈련된 인공 지능 모델을 플랫폼 상에 저장하고, 훈련된 인공 지능 모델에 대한 테스트를 수행하고, 테스트 결과 정보를 제2 단말(120)에 제공할 수 있다. 이에 따라, 전자 장치(100)에서 제공하는 플랫폼을 통해 인공 지능 모델의 훈련에 있어 비효율성이 줄어들 수 있고, 상이한 사용자에게 동일한 라이브러리 버전의 파일을 제공하여 에러의 가능성이 줄어들 수 있다. 또한, 전자 장치(100)는 플랫폼을 통해 메뉴얼한 작업을 자동화하여 인공 지능 모델의 테스트 결과를 빠르게 확인하도록 할 수 있다. 이에 대한 구체적인 실시 예는 하기에서 자세히 살펴보기로 한다.
도 2는 전자 장치가 서비스와 관련된 인공 지능 모델을 관리하는 방법을 나타낸 흐름도이다.
도 2를 참조하면, 전자 장치가 서비스와 관련된 인공 지능 모델을 관리하는 각 동작은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해되는 범위 내에서 일부 동작이 변경, 치환되거나 동작 간의 일부 순서가 변경될 수 있음은 자명하게 이해될 수 있다.
단계 S210에서, 전자 장치(100)는 제1 사용자의 제1 단말로부터 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 제1 사용자의 제1 단말(110)로부터 전자 장치(100)와 관련된 플랫폼에 대한 접속 요청을 수신할 수 있다. 여기서, 제1 단말(110)은 데이터를 관리하고 인공 지능 모델을 개발, 훈련하는 사용자의 단말일 수 있다. 접속 요청이 수신된 플랫폼은 인공 지능 모델의 학습 데이터, 테스터 데이터를 설정하고, 인공 지능 모델을 훈련시키는 것뿐만 아니라, 훈련된 인공 지능 모델을 테스트하고 저장하기 위한 플랫폼일 수 있다. 또한, 전자 장치(100)에 의해 제공되는 플랫폼은 제1 단말(110)의 제1 사용자에게만 제공되는 것이 아니다. 예를 들어, 전자 장치(100)는 제2 사용자의 제2 단말로부터 플랫폼에 대한 요청을 수신함에 따라 제1 단말(110)에 제공한 프로그래밍 언어(예를 들어, 파이썬)의 라이브러리 버전을 동일하게 제2 단말에 제공할 수 있다. 이에 따라, 다른 사용자에 의해 모델이 훈련되더라도, 모델의 라이브러리 버전 차이에 따른 에러는 발생하지 않을 수 있다.
단계 S220에서, 전자 장치(100) 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 플랫폼에 대한 접속 요청을 수신함에 따라, 제1 단말(110)에 인공 지능과 관련된 모델에 대한 플랫폼을 제공할 수 있다. 예를 들어, 제1 단말(110)에 제공되는 플랫폼은 인터넷 환경에서 모델에 대한 코드를 작성하고 실행할 수 있는 페이지를 제공할 수 있다. 보다 상세하게는, 제1 단말(110)에 제공되는 플랫폼은 주피터 노트북일 수 있고, 전자 장치(100)는 플랫폼을 통해 제1 사용자가 파이썬 코드를 작성하고 실행할 수 있는 페이지를 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 플랫폼을 제1 단말(110)에 제공할 수 있고, 제1 단말(110)로부터 제1 모델에 대한 적어도 하나의 데이터 및 설정된 모델 프레임 워크에 대한 정보를 확인할 수 있다. 전자 장치(100)는 플랫폼을 통해 호출된 서비스와 관련된 데이터를 제1 단말(110)에 제공할 수 있고, 제1 사용자는 플랫폼 상의 서비스와 관련된 데이터 중 적어도 하나의 데이터를 모델에 대한 데이터로 선택할 수 있다. 여기서, 플랫폼을 통해 호출된 서비스와 관련된 데이터는 외부 스토리지로부터 호출된 서비스와 관련된 데이터일 수 있다. 다만, 이에 한정되는 것은 아니고, 플랫폼을 통해 호출된 서비스와 관련된 데이터는 전자 장치에 저장되어 있을 수 있다. 적어도 하나의 데이터는 제1 모델을 훈련시키기 위한 학습 데이터일 수 있다. 다만 이에 한정되는 것은 아니고. 적어도 하나의 데이터는 제1 모델의 성능 검증을 위한 예측에 사용될 테스트 데이터를 포함할 수 있다.
적어도 하나의 데이터는 플랫폼을 통해 호출된 서비스와 관련된 데이터가 가공됨에 따라 생성된 피처 또는 데이터일 수 있다. 보다 상세하게는, 전자 장치(100)는 플랫폼을 통해 호출된 서비스와 관련된 데이터를 가공하여 모델과 관련되 데이터를 생성하는 페이지를 제공할 수 있다. 여기서, 플랫폼을 통해 호출된 서비스와 관련된 데이터는 별도의 데이터 베이스에 저장되어 있을 수 있고, 카프카를 통해 호출될 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 모델 프레임 워크에 대한 정보를 확인할 수 있다. 여기서, 모델 프레임 워크는 인공 지능 모델에 사용되는 프레임 워크로 인공 지능 모델의 개발 단계에서 재사용 가능한 코드 부분 또는 뼈대를 의미할 수 있다. 전자 장치(100)는 모델 프레임 워크에 대한 정보에 따라 인공 지능 모델을 학습 시킴으로써, 인공 지능 모델의 품질이 향상되고, 인공 지능 모델의 훈련, 개발 및 검증에 소요되는 시간이 효과적으로 감소될 수 있다. 보다 상세하게는, 인공 지능 모델에 사용되는 모델 프레임 워크는 XGboost, LightGBM와 같은 알고리즘일 수 있다. 모델 프레임 워크에 대한 정보는 도 5에서 더 자세히 살펴보기로 한다.
일 실시 예에 따르면, 전자 장치(100)는 설정된 모델 프레임워크에 대한 정보 및 적어도 하나의 데이터에 기반하여, 인공 지능과 관련된 제1 모델을 훈련시킬 수 있다. 인공 지능과 관련된 제1 모델을 훈련시키는 구체적으로 동작은 도 3에서 살펴보기로 한다.
단계 S230에서, 전자 장치(100)는 서비스와 관련된 데이터를 기반으로, 제1 모델의 서빙을 수행할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 플랫폼을 통해 제2 사용자의 제2 단말(120)에 제1 모델을 제공할 수 있다. 보다 상세하게는, 전자 장치(100)는 훈련된 모델을 정렬하여 제2 단말(120)에 제공할 수 있다. 여기서, 제2 단말(120)의 사용자인 제2 사용자는 훈련된 후 플랫폼 상에 저장된 인공 지능 모델의 서빙의 대상이 되는 사용자일 수 있다. 플랫폼을 통해 제1 모델을 제공받은 제2 사용자는 제1 모델에 대한 A/B 테스트를 수행할 수 있다. 보다 상세하게는, 전자 장치(100)는 제1 모델을 포함하는 복수 개의 모델을 바인딩하여 생성된 대상 모델에 대한 A/B 테스트를 수행할 수 있다. 이때, 제1 모델은 대상 모델에 포함되는 서브 모델일 수 있다. 제1 모델과 관련된 A/B 테스트를 수행하는 구체적인 동작은 도 12 내지 도 14에서 자세히 살펴보기로 한다.
본원의 서빙의 대상이 되는 인공 지능 모델은 Stand Alone 모델뿐만 아니라 임베딩 모델을 포함할 수 있다. 여기서, Stand Alone 모델은 서비스 수행에 해당 모델만을 이용하여 서비스되는 경우의 모델일 수 있다.
단계 S240에서, 전자 장치(100)는 제1 모델의 서빙에 따른 결과 정보를 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 제1 모델의 서빙과 관련된 메트릭에 대한 정보를 제2 단말(120)에 제공할 수 있다. 보다 상세하게는, 전자 장치(100)는 A/B 테스트에 대한 설정 정보를 설정할 때, A/B 테스트의 결과 정보에 포함되는 메트릭을 설정하는 페이지를 제2 단말(120)에 제공할 수 있다. 이에 따라, 전자 장치(100)는 제2 단말(120)로부터 수신된 A/B 테스트에 대한 메트릭에 대한 정보에 기반하여, A/B 테스트에 대한 메트릭에 대한 정보에 매칭되는 메트릭에 대한 결과 정보를 제공할 수 있다. 여기서, 제1 모델의 서빙과 관련된 메트릭은 제1 모델과 관련된 A/B 테스트의 표준 모델 및 대상 모델의 정확도에 대한 성공 메트릭(Success metric)을 포함할 수 있다.
이에 따라, 제2 단말(120)의 사용자인 제2 사용자는 제1 모델과 관련된 A/B 테스트의 결과 정보를 수신하고, A/B 테스트의 표준 모델 및 대상 모델 중 어떤 모델의 퍼포먼스가 더 좋은지를 확인할 수 있다. 이에 따라, 전자 장치(100)는 제2 단말(120)에 제공되는 플랫폼을 통해 제1 모델과 관련된 서비스를 빠르게 업데이트하도록 할 수 있다.
도 3은 제1 단말에서 획득한 정보에 기반하여 인공 지능과 관련된 제1 모델에 대한 정보를 확인하는 구체적인 실시 예에 대한 도면이다.
단계 S310에서, 전자 장치(100)는 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신할 수 있다.
단계 S320에서, 전자 장치(100)는 인공 지능과 관련된 모델에 대한 플랫폼을 제공할 수 있다. 여기서, 인공 지능과 관련된 모델에 대한 플랫폼은 1) 인공 지능과 관련된 모델을 개발하기 위한 학습 데이터 및 인공 지능 모델의 프레임 워크를 설정할 수 있는 페이지, 2) 학습 데이터 및 인공 지능 모델의 프레임 워크에 기반하여 인공 지능과 관련된 모델을 훈련시킬 수 있는 페이지 및 3) 훈련된 모델의 성능을 검증하기 위한 예측 관련 페이지를 포함하는 플랫폼일 수 있다. 모델 개발 및 모델 성능을 테스트하는 개발자는 동일한 라이브러리 버전으로 모델을 개발할 수 있는 바, 전자 장치(100)는 개발자 간의 라이브러리 버전의 차이로 인해 발생하는 오류 등을 감소시킬 수 있다.
단계 S330에서, 전자 장치(100)는 제1 단말(110)에 입력된 인공 지능과 관련된 제1 모델의 훈련에 대한 설정 정보를 수신할 수 있다. 보다 상세하게는, 제1 사용자는 제1 단말(110)에 제공된 인공 지능과 관련된 모델을 개발하기 위한 학습 데이터 및 인공 지능 모델의 프레임 워크를 설정할 수 있는 페이지를 통해 제1 모델의 훈련에 대한 설정 정보를 입력할 수 있다. 여기서, 제1 모델의 훈련에 대한 설정 정보는 인공 지능과 관련된 제1 모델의 학습 데이터 및 모델 프레임 워크에 대한 정보를 포함할 수 있다. 또한, 제1 모델의 훈련에 대한 설정 정보는 제1 모델의 성능 검증을 위한 테스트 데이터를 포함할 수 있다. 다만, 제1 모델의 훈련에 대한 설정 정보는 이에 한정되는 것은 아니고, 제1 모델의 훈련에 대한 설정 정보는 파라미터 설정 정보를 포함할 수 있다.
단계 S340에서, 전자 장치(100)는 제1 모델의 훈련에 대한 설정 정보에 기반하여 제1 모델을 훈련시킬 수 있다. 보다 상세하게는, 전자 장치(100)는 입력 데이터(입력 데이터는 피처로 호칭될 수 있다.) 및 출력 데이터(출력 데이터는 라벨로 호칭될 수 있다.)를 포함하는 인공 지능과 관련된 제1 모델의 학습 데이터에 기반하여, 입력 데이터와 출력 데이터 간의 관계에 대한 수식 또는 알고리즘인 제1 모델을 훈련시킬 수 있다. 보다 상세하게는, 전자 장치(100)는 학습 데이터 및 설정된 프레임 워크에 따라, 제1 모델의 파라미터를 최적화할 수 있다.
다만, 제1 모델이 학습 데이터에 의해 과 최적화될 우려가 있는 바, 전자 장치(100)는 데이터를 학습 데이터인 제1 데이터와 테스트 데이터인 제2 데이터로 나눌 수 있다. 이에 따라, 전자 장치(100)는 훈련 단계 및 예측에 따른 성능 검증 단계를 이원화하여 수행할 수 있다. 예를 들어, 전자 장치(100)는 제1 데이터를 학습 데이터로 이용하여 제1 모델을 훈련시킬 수 있다. 또한, 전자 장치(100)는 제2 데이터를 테스트 데이터로 이용하여 제2 데이터에 포함되는 입력 데이터에 따른 제1 모델의 출력 값과 출력 데이터와의 차이에 기반하여 제1 모델의 예측 정확도를 확인할 수 있다.
단계 S350에서, 전자 장치(100)는 제1 모델의 훈련 결과에 대한 정보를 제공할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 단계 S340에서 확인된 제1 모델의 예측 정확도에 대한 정보를 제1 단말(110)에 제공할 수 있다. 이에 따라, 제1 단말(110)의 제1 사용자는 제1 모델의 예측 정확도에 대한 정보를 확인할 수 있다.
단계 S360에서, 전자 장치(100)는 제1 단말(110)로부터 제1 모델을 플랫폼에 저장하는 것에 대한 요청을 수신할 수 있다. 이에 따라, 플랫폼에 저장된 제1 모델은 예측 정확도가 설정된 임계치 이상으로 모델의 성능이 우수한 모델일 수 있다. 이와 같은 프로세스에 따라, 전자 장치(100)는 제1 단말(110)의 제1 사용자가 제1 모델을 적합한 데이터 및 적합한 프레임 워크에 따라 학습 시키고 성능을 확인할 수 있도록 하는 플랫폼을 제공할 수 있다.
또한, 일 실시 예에 따르면, 전자 장치(100)는 제1 모델을 플랫폼에 저장할 때, 제1 모델에 대한 정보를 플랫폼에 함께 저장할 수 있다. 제2 단말(120)에 제공되는 제1 모델은 모델의 예측 정확도가 설정된 임계치 이상으로 모델의 성능이 우수한 모델일 수 있다. 즉, 전자 장치(100)는 제1 모델의 서빙 이전에 제1 모델의 성능 검증에 대한 프로세스를 먼저 수행할 수 있다. 여기서, 인공 지능과 관련된 제1 모델에 대한 정보는 학습 데이터 및 테스트 데이터를 포함하는 제1 모델과 관련된 데이터에 대한 정보, 설정된 모델 프레임워크에 대한 정보, 제1 모델과 관련된 라이브러리 버전에 대한 정보 및 제1 모델에 대한 파라미터 정보 중 적어도 하나를 포함할 수 있다. 본원에서 플랫폼에 모델 또는 데이터 등을 저장한다는 것은 플랫폼과 연결된 외부 스토리지 등에 모델 또는 데이터 등을 저장하는 것을 의미할 수 있다.
도 4는 플랫폼 상의 인공 지능과 관련된 모델에 대한 페이지를 나타내는 도면이다.
도 4를 참조하면, 페이지(400)는 인공 지능과 관련된 모델에 대한 페이지이다. 플랫폼의 페이지(400)는 도 3의 프로세스에 따라 플랫폼에 저장된 모델에 대한 정보를 표시할 수 있다. 페이지(400)은 모델 ID가 1, 2, 3, 4인 모델에 대한 정보를 표시하고 있으나, 플랫폼에 저장된 모델은 모델 ID가 1, 2, 3, 4인 모델에 한정되는 것은 아니다. 예를 들어, 모델 ID가 1인 제1 모델(420)은 아이템 배송비를 결정하는데 사용될 수 있는 모델일 수 있다.
제1 모델(420)의 모델 키는'DELIVERY_TASK_PRICE_ACCEPT_MODEL'로 제1 모델 키(430)일 수 있다. 또한, 페이지(400)의 제1 모델(420)의 모델 키인 제1 모델 키(430)에 대한 제1 사용자의 입력에 따라, 전자 장치(100)는 제1 모델의 설정을 수정하거나 제1 모델의 새로운 버전을 추가할 수 있는 상세 페이지를 제1 단말(110)에 제공할 수 있다. 또한, 제1 단말(110)을 통해 제1 모델(420)을 수정하기 위한 아이콘(440)은 제1 모델(420)을 수정하기 위한 페이지를 제공할 수 있다.
도 5는 플랫폼 상의 인공 지능과 관련된 모델에 대한 상세 페이지를 나타내는 도면이다.
페이지(500)는 인공 지능 모델에 대한 상세 페이지로, 제1 모델(420)을 수정하거나 제1 모델(420)의 새로운 버전을 추가할 수 있는 상세 페이지일 수 있다. 페이지(500) 상에 표시되는 모델은 모델(511), 모델(512), 모델(513) 및 모델(514)로 모델 키(510)는 'DELIVERY_TASK_PRICE_ACCEPT_MODEL'로 동일할 수 있다. 다만, 모델(511), 모델(512), 모델(513) 및 모델(514)은 모델 버전(520), 모델 소스 타입(530) 및 모델 타입(540)에서 차이가 있는 상이한 모델일 수 있다.
예를 들어, 모델(514)은 모델 소스 타입(530) 및 모델 타입(540)이 XGBOOST 로 모델(511), 모델(512) 및 모델(513의 모델 소스 타입(530) 및 모델 타입(540)인 LIGHTGBM 및 PMML과 상이할 수 있다. 모델(511), 모델(512) 및 모델(513)은 모델 소스 타입(530) 및 모델 타입(540)인 LIGHTGBM 및 PMML로 동일하지만, 상이한 학습 데이터에 기반하여 훈련된 모델일 수 있다. 예를 들어, 모델 소스 S3 path에 대한 정보에 따르면 모델(511)은 spatial cat이라는 데이터를 제외한 새로운 데이터에 기반하여 훈련된 모델일 수 있고, 모델(512)는 후에 살펴볼 A/B 테스트의 테스트 타입 중 제1 타입인 'dryrun'에 이용될 수 있는 default 데이터에 기반하여 훈련된 모델일 수 있다.
본원에서, 모델 소스 타입(530)은 인공 지능과 관련된 모델의 프레임 워크에 대한 정보를 나타낼 수 있다. 1) 모델 소스 타입(530) 중 XGBOOST(Extreme Gradient Boosting)는 그레디언트 부스팅 알고리즘을 분산환경에서도 실행할 수 있도록 하는 프레임 워크, 알고리즘, 라이브러리일 수 있다. XGBOOST는 병렬 처리 속도가 빠른 프레임 워크일 수 있다. 2) 모델 소스 타입(530) 중 LightGBM은 그레이디언트 부스팅 모델로 트리를 기반으로 학습하는 프레임 워크, 알고리즘, 라이브러리일 수 있다. 보다 상세하게는, LightGBM은 leaf-wise(리프 중심 트리 분할) 방식을 채택함에 따라, 트리의 깊이에 따라 소요 시간 및 메모리 사용을 절약하는 것을 특징으로 할 수 있다. 이에, ightGBM은 XGboost보다 빠른 연산 속도를 가지는 것을 특징으로 할 수 있다. 3) 다만, 모델 소스 타입(530)은 XGboost 및 LightGBM에 한정되는 것은 아니다. 예를 들어, 모델 소스 타입(530)은 H2O, Tensorflow, Pytorch 모델 프레임 워크를 포함할 수 있다. 또한, 모델 타입(540) 중 PMML(Predictive Model Markup Language)은 XML 기반의 예측 모델을 기술할 수 있는 표준 언어일 수 있다.
본원에서, 모델 소스 S3 path에 대한 정보는 모델의 저장 경로에 대한 정보일 수 있다. 또한, 해당 모델은 하기와 같은 코드에 따라 저장 경로에 저장될 수 있다.
Model._Booster_save_model(model_file_path)
도 6은 플랫폼 상의 인공 지능과 관련된 모델의 새로운 버전을 추가하기 위한 페이지를 나타내는 도면이다.
도 6을 참조하면, 페이지(600)은 인공 지능과 관련된 모델의 새로운 버전을 추가하기 위해 인공 지능과 관련된 모델의 설정 정보를 입력하는 란을 포함할 수 있다. 이에 따라, 제1 사용자는 페이지(600)를 통해 모델 키(610), 설명(620), 모델 소스 타입(630), 모델 소스 S3 path(640)에 대한 정보를 입력할 수 있다. 보다 상세하게는, 제1 사용자가 플랫폼을 통해 도 4의 모델 ID가 4이고, 모델 키가 'TSD_T2_NEARBY'인 모델의 새로운 버전을 추가할 때, 전자 장치(100)가 제1 사용자에게 제공하는 페이지는 페이지(600)과 같을 수 있다.
도 6에 이어, 도 7은 플랫폼 상의 인공 지능과 관련된 모델의 새로운 버전을 추가하기 위한 페이지를 나타내는 도면이다.
도 7은 도 6에 이어 모델 키가 'TSD_T2_NEARBY'인 모델의 새로운 버전을 추가하는 일 실시 예를 설명하기 위한 도면일 수 있다. 도 7을 참조하면, 페이지(700)은 제1 단말(110)을 통해 인공 지능과 관련된 모델의 설정 정보가 입력된 페이지일 수 있다. 예를 들어, 새로운 버전의 모델에 대한 모델 소스 타입(730)은 LIGHTGBM으로 도 6의 모델 소스 타입(630)인 XGBOOST와 상이할 수 있다. 또한, 새로운 버전의 모델에 대한 모델 소스 S3 path(740)은 모델 키가 'TSD_T2_NEARBY'인 모델의 새로운 버전이 저장된 모델 저장 경로에 대한 정보를 포함할 수 있다. 제1 사용자는 인공 지능과 관련된 모델의 설정 정보를 입력함에 따라, 페이지(700) 상의 아이콘(750)을 클릭할 수 있고, 전자 장치(100)는 인공 지능과 관련된 모델의 설정 정보에 따른 새로운 버전의 모델을 저장할 수 있다. 이에 따라, 사용자는 전자 장치(100)가 제공하는 플랫폼에 저장된 새로운 버전의 모델을 추출하여 이용할 수 있다. 본원에서, 새로운 버전의 모델은 기존의 모델과 훈련에 사용되는 데이터, 모델의 프레임 워크, 라이브러리 버전, 파라미터 중 적어도 하나가 상이한 모델일 수 있다.
도 8은 플랫폼 상의 표준 모델에 대한 페이지를 나타내는 도면이다.
도 8을 참조하면, 페이지(800)는 플랫폼 상에 저장된 표준 모델에 대한 정보를 표시하는 페이지일 수 있다. 표준 모델은 현재 서비스를 실행하는데 사용되고 있는 모델로, 복수 개의 모델을 서브 모델로 포함하는 모델일 수 있다. 보다 상세하게는, 표준 모델은 서비스를 수행하기 위해 현재 런칭하여 적용 중인 모델로, 복수 개의 표준 모델이 있을 수 있다. 또한, 표준 모델을 기반으로 수행되는 서비스는 ETA(Estimated Time of Arrival), 자동 할당, 계획 등이 있을 수 있으나, 이에 한정되는 것은 아니다. 보다 상세하게는, 서비스를 보다 정확하게 수행하기 위해 플랫폼 상에 저장된 모델 중 복수 개의 모델을 선택하고 이를 바인딩한 표준 모델을 이용할 수 있다. 이에 따라, 전자 장치(100)는 바인딩된 표준 모델을 통해 서비스의 품질을 향상시킬 수 있다. 제1 표준 모델(810)은 'TSD_T2_ETA로' 서비스 중 ETA를 예상하는데 사용되는 표준 모델일 수 있다. 도 8을 참조하면, 페이지(800)는 각각의 표준 모델에 대한 키 정보, 생성 시각에 대한 정보 및 생성한 사용자에 대한 정보 등을 포함할 수 있다.
도 9는 대상 모델을 생성하는 페이지를 나타내는 도면이다.
도 9을 참조하면, 페이지(900)는 플랫폼 상에 저장된 표준 모델과 비교하기 위한 대상 모델을 생성하는 페이지일 수 있다. 보다 상세하게는, 페이지(900)는 도 8의 제1 표준 모델(810)과 비교하기 위한 대상 모델을 생성하기 위한 페이지이다. 본원에서, 대상 모델은 서비스를 수행하기 위해 현재 런칭하여 적용 중인 모델과 상이한 모델로 테스트에서 대상 모델과 비교하기 위한 대상일 수 있다. 보다 상세하게는, 대상 모델은 대응되는 표준 모델에 플랫폼 상의 새로운 서브 모델을 추가하거나 표준 모델에 포함되는 복수 개의 모델 중 적어도 일부 모델의 버전을 변경한 모델일 수 있다. 다만 이에 한정되는 것은 아니고, 대상 모델은 표준 모델에 새로운 파라미터를 추가한 모델일 수 있다.
예를 들어, 제1 표준 모델(810)인 'TSD_T2_ETA'는 서브 모델로 모델(920) 및 모델(930)을 포함할 수 있다. 보다 상세하게는, 모델(920)은 'ETA1DefaultModel v1'일 수 있고, 모델(930)은 'PMML_TEST v2'일 수 있다. 제1 표준 모델(810)과 비교하기 위한 대상 모델은 제1 표준 모델(810)에 모델(940)을 바인딩하여 생성된 모델일 수 있다. 여기서, 모델(940)은 도착 예상 시간 지연을 고려하기 위한 모델일 수 있다. 다만, 대상 모델은 도 9의 실시 예에 한정되는 것은 아니다. 예를 들어, 대상 모델은 제1 표준 모델(810)에 새로운 파라미터인 'regionbuffer'를 추가함에 따라 생성된 새로운 모델일 수 있다. 전자 장치(100)는 페이지(900)의 아이콘(960)을 통해 제1 표준 모델(810)에 새로운 파라미터인 'regionbuffer'를 추가하여 대상 모델을 생성할 수 있다. 여기서, 'region buffer'는 사용자의 지역에 대한 파라미터일 수 있다. 또한, 전자 장치(100)는 페이지(900)의 저장 아이콘(970)을 통해 생성된 대상 모델을 플랫폼 상에 저장할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 제1 모델의 서빙을 수행할 수 있다. 보다 상세하게는, 전자 장치(100)는 제1 모델(보다 상세하게는, 대상 모델일 수 있다.)에 대한 A/B 테스트를 수행할 수 있다. 이에 대해 하기에서 살펴보기로 한다.
도 10은 표준 모델 및 대상 모델에 대한 A/B 테스트를 포함하는 페이지를 나타내는 도면이다.
도 10을 참조하면, 페이지(1000)는 플랫폼 상에 저장된 표준 모델 및 대응되는 대상 모델의 A/B 테스트에 대한 페이지일 수 있다. 예를 들어, 페이지(1000)은 플랫 폼에 저장된 ETA에 대한 제1 표준 모델(1010) 및 대응되는 대상 모델에 대한 A/B 테스트를 포함할 수 있다. 제1 표준 모델(1010)에 대한 A/B 테스트의 이름 정보(1020)는 optimize buffer의 여부에 따른 도착 예정 시간에 대한 A/B 테스트를 나타낼 수 있다. 또한, 제1 표준 모델(1010)에 대한 시작 시각에 대한 정보(1030) 및 종결 시각에 대한 정보는 각각 2022년 04년 28일 및 2022년 07년 30일일 수 있다. 또한, 제1 표준 모델(1010)에 대한 A/B 테스트의 테스트 타입은 제1 타입 내지 제3 타입 중 제3 타입인 'TRAFFIC CONTROL'일 수 있다. 또한, 페이지(1000)의 아이콘(1060)은 제1 표준 모델(1010)에 대한 A/B 테스트를 수정하거나 A/B 테스트의 설정 정보를 설정하는 페이지로 이동하기 위한 엔트리 포인트일 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 플랫폼을 통해 제2 사용자의 제2 단말(120)에 제1 모델을 제공할 수 있고, 플랫폼을 통해 서비스와 관련된 데이터에 기반하여 제1 모델에 대한 A/B 테스트를 수행할 수 있다. 예를 들어, 전자 장치(100)는 A/B 테스트의 테스트 타입 및 A/B 테스트에 대한 설정 정보에 기반하여, A/B 테스트를 수행할 수 있다. A/B 테스트에 대한 설정 정보는 A/B 테스트의 실행 기간에 대한 정보 및 A/B 테스트의 실행 지역에 대한 정보를 포함할 수 있다. A/B 테스트의 테스트 타입에 따른 A/B 테스트의 실행의 구체적인 실시 예는 도 11 내지 도 13에서 살펴본다.
도 11은 테스트 타입이 제1 타입인 경우, A/B 테스트의 설정 정보를 설정하기 위한 페이지에 대한 도면이다.
테스트 타입이 제1 타입으로 'Dry Run'인 경우, A/B 테스트에 대한 설정 정보는 A/B 테스트에 할당된 트래픽에 대한 정보를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 A/B 테스트에 할당된 트래픽에 대한 정보에 따라 A/B 테스트를 수행할 수 있다.
예를 들어, 페이지(1000)의 아이콘(1060)을 통한 입력에 대응하여, 전자 장치(100)는 도 10의 제1 표준 모델(1010)에 대한 설정 정보를 설정 및 편집하는 페이지(1100)를 제공할 수 있다. 도 11의 A/B 테스트의 이름 정보는 제1 표준 모델(1010)에 대한 A/B 테스트의 이름 정보(1020)와 대응될 수 있다. 전자 장치(100)는 테스트 타입(1120)을 'Traffic Control'에서 'Dry Run'으로 변경하는 입력을 수신함에 따라, 제2 사용자의 제2 단말(120)에 'Dry Run percentage' 을 조절하는 아이콘(1130) 및 A/B 테스트의 수행 시간인 'Test Range'를 조절하는 아이콘(1110)을 제공할 수 있다.
제2 사용자는 플랫폼을 통해 제2 단말(120)에 표시되는 A/B 테스트의 수행 시간인 'Test Range'를 조절하는 아이콘(1110)을 통해 제1 표준 모델(1010)에 대한 시작 시각에 대한 정보 및 종결 시각에 대한 정보를 설정할 수 있다.
또한, 제2 사용자는 플랫폼을 통해 'Dry Run percentage' 을 조절하는 아이콘(1130)을 통해 'Dry Run'으로 동작하는 비율을 설정할 수 있다. 예를 들어, 도 11과 같이 'Dry Run percentage'이 10%로 설정되면, 전자 장치(100)는 테스트 그룹의 사용자 중 'Dry Run Percentage'인 10%의 사용자에게 A/B 테스트의 실험군으로 A/B 테스트를 수행할 수 있다. 여기서, A/B 테스트의 실험군은 제1 표준 모델(1010)와 비교대상이 되는 대상 모델일 수 있다. 이에 따라, 전자 장치(100)는 'Dry Run Percentage'에 따라 설정된 비율의 사용자에게만 사용자에게 A/B 테스트의 실험군으로 A/B 테스트를 수행함으로써, 본격적인 A/B 테스트 이전에 예비적인 A/B 테스트를 수행할 수 있다.
도 12는 테스트 타입이 제2 타입인 경우, A/B 테스트의 설정 정보를 설정하기 위한 페이지에 대한 도면이다.
테스트 타입이 제2 타입으로 'Switch Back'인 경우, A/B 테스트에 대한 설정 정보는 A/B 테스트의 테스트 그룹 간의 실행 간격에 대한 정보 및 A/B 테스트의 테스트 그룹의 실행 순서에 대한 정보를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 A/B 테스트의 테스트 그룹 간의 실행 간격에 대한 정보 및 A/B 테스트의 테스트 그룹의 실행 순서에 대한 정보에 따라, /B 테스트의 테스트 그룹에 A/B 테스트를 교대로 실행할 수 있다.
예를 들어, 페이지(1000)의 아이콘(1060)을 통한 입력에 대응하여, 전자 장치(100)는 도 10의 제1 표준 모델(1010)에 대한 설정 정보를 설정 및 편집하는 페이지(1200)를 제공할 수 있다. 도 12의 A/B 테스트의 이름 정보는 제1 표준 모델(1010)에 대한 A/B 테스트의 이름 정보(1020)와 대응될 수 있다. 전자 장치(100)는 테스트 타입(1220)을 'Traffic Control'에서 'Switch Back'으로 변경하는 입력을 수신함에 따라, 제2 사용자의 제2 단말(120)에 'Switch Back'의 실행 간격에 대한 정보를 조절하는 아이콘(1230) 및 A/B 테스트의 테스트 그룹의 사이즈에 대한 정보를 조절하는 아이콘(1240)을 제공할 수 있다.
제2 사용자는 플랫폼을 통해 제2 단말(120)에 표시되는 A/B 테스트의 수행 시간인 'Test Range'를 조절하는 아이콘(1210)을 통해 제1 표준 모델(1010)에 대한 시작 시각에 대한 정보 및 종결 시각에 대한 정보를 설정할 수 있다. 예를 들어, 시작 시각에 대한 정보는 '2022년 5월 22일'일 수 있고, 종결 시각에 대한 정보는 '2022년 5월 24일'일 수 있다.
또한, 제2 사용자는 플랫폼을 통해 제2 단말(120)에 표시되는 'Switch Back'의 실행 간격에 대한 정보를 조절하는 아이콘(1230)을 통해 대조군 및 적어도 하나의 실험군의 실행 간격을 적응적으로 조절할 수 있다. 도 12를 참조하면, Switch Back'의 실행 간격에 대한 정보는 480분일 수 있다. 또한, 제2 사용자는 플랫폼을 통해 제2 단말(120)에 표시되는 'A/B 테스트의 테스트 그룹의 사이즈에 대한 정보를 조절하는 아이콘(1240)을 통해 그룹 사이즈를 대조군 1개 및 2개의 실험군을 포함하는 3개로 조절할 수 있다. 이에 따라, 그룹 A, 그룹 B 및 그룹 C는 2022년 5월 22일, 2022년 5월 23일 및 2022년 5월 24일에 교대로 실행될 수 있다. 구체적으로, 2022년 5월 22일에는 그룹 A, 그룹 B 및 그룹 C 순으로 실행될 수 있고, 2022년 5월 23일에는 그룹 B, 그룹 C 및 그룹 A 순으로 실행될 수 있으며, 2022년 5월 24일에는 그룹 C, 그룹 A 및 그룹 B 순으로 실행될 수 있다. 이에 따라, 그룹 A, 그룹 B 및 그룹 C는 상이한 날짜에 0시부터 8시, 8시부터 16시 및 16시부터 24시까지 한번씩 실행되었다. 또한, 도 12에 표시되지는 않았지만, 제2 사용자는 테스트 그룹 사이의 실행 순서에 대한 정보도 설정할 수 있다. 예를 들어, 도 12를 참조하면, 설정된 테스트 그룹 사이의 실행 순서는 그룹 A, 그룹 B 및 그룹 C 순서일 수 있다.
테스트 타입이 제2 타입으로 'Switch Back'인 경우, 전자 장치(100)는 설정된 시간 대에 테스트 그룹 중 하나의 그룹에 대한 A/B 테스트를 실행함으로써, A/B 테스트에 할당되는 트래픽을 하나의 그룹에 대한 A/B 테스트에 집중하여 실행할 수 있다. 이에 따라, A/B 테스트에 할당되는 트래픽이 적은 경우에도 전자 장치(100)는 A/B 테스트를 효율적으로 수행할 수 있다. 또한, 전자 장치(100)는 테스트 타입이 제2 타입으로 'Switch Back'로 A/B 테스트를 실행함에 따라, 동일 지역의 사용자에게 대조군 또는 적어도 하나의 실험군 중 하나의 서비스를 제공할 수 있고, 동일 지역의 사용자는 동일한 서비스를 이용할 수 있다.
도 13은 테스트 타입이 제3 타입인 경우, A/B 테스트의 설정 정보를 설정하기 위한 페이지에 대한 도면이다.
테스트 타입이 제3 타입으로 'Traffic Control'인 경우, A/B 테스트에 대한 설정 정보는 A/B 테스트의 실행 지역에 대한 정보를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(100)는 A/B 테스트의 실행 지역에 대한 정보에 따라, A/B 테스트의 사용자를 결정할 수 있다.
예를 들어, 페이지(1000)의 아이콘(1060)을 통한 입력에 대응하여, 전자 장치(100)는 도 10의 제1 표준 모델(1010)에 대한 설정 정보를 설정 및 편집하는 페이지(1300)를 제공할 수 있다. 도 13의 A/B 테스트는 제1 표준 모델(1010)에 대한 A/B 테스트와 대응될 수 있다. 페이지(1300)의 A/B 테스트의 실행 지역에 대한 'Dimension Type'에 대한 정보(1320)는 'Region', 'City', 'Custom' 및 'ALL' 중 'Region'일 수 있다. 여기서 'Region'은 A/B 테스트의 사용자의 지역 정보가 지방인 것을 의미할 수 있고, 'City'는 은 A/B 테스트의 사용자의 지역 정보가 도시인 것을 의미할 수 있고, 'Custom'은 은 A/B 테스트의 사용자의 지역 정보가 설정된 지역인 것을 의미할 수 있으며 및 'ALL' 은 A/B 테스트의 사용자의 지역 정보에 제약이 없는 것을 의미할 수 있다. 도 13을 참조하면, 제2 단말(120)을 통해 페이지(1300) 상의 'Region'이 클릭되면, A/B 테스트의 테스트 그룹에 포함되는 사용자는 사용자의 지역 정보가 지방인 사용자로 한정될 수 있다.
페이지(1300)는 그룹 A(1310)인 대조군에 대한 설정 정보를 표시하고 있지만, 제2 사용자가 페이지(1300)의 그룹 추가에 대한 아이콘(133)을 클릭함에 따라, 전자 장치(100)는 그룹 A(1310)뿐만 아니라 적어도 하나의 실험군에 대한 'Dimension ids' 및 'version'에 대한 정보를 설정하는 페이지를 플랫폼을 통해 제2 단말(120)에 제공할 수 있다.
서비스의 특성에 따라 A/B 테스트의 대상이 되는 사용자를 특정 지역(예를 들어, 지방 또는 도시)으로 한정할 필요가 있을 수 있다. 이때, 테스트 타입을 제3 타입으로 'Traffic Control'설정함에 따라, 전자 장치(100)는 /B 테스트의 대상이 되는 사용자를 특정 지역으로 한정하여 A/B 테스트를 실행할 수 있다.
또한, 페이지(1300)는 테스트 그룹에 포함되는 사용자 중 적어도 일부를 특정 그룹으로 우선 할당(Override)하기 위한 파라마터 설정을 추가하는 아이콘(1340)을 포함할 수 있다. 예를 들어, 도 13을 참조하면, 테스트 그룹에 포함되는 사용자 중 제2 사용자에 의해 추가된 파라미터 설정 값에 대응하는 사용자는 그룹 A(1310)에 할당될 수 있다.
도 13에 이어, 도 14는 파라미터 값을 설정함에 따라 테스트 그룹에 포함되는 사용자를 우선 할당하는 일 실시 예를 설명하기 위한 도면이다.
페이지(1300)의 파라마터 설정을 추가하는 아이콘(1340)을 통한 입력에 대응하여, 일 실시 예에 따른 전자 장치(100)는 테스트 그룹에 포함되는 사용자를 특정 그룹으로 우선 할당할 수 있다. 예를 들어, 테스트 그룹에 포함되는 사용자 중 파라미터 키(1410)가 'age'이고, 파라미터 값(1420)이 20-29인 사용자는 처음에 적어도 하나의 실험군에 할당되었더라도 그룹 A인 대조군으로 우선 할당될 수 있다. 다만, 이에 한정되는 것은 아니다. 예를 들어, 그룹 B와 관련하여 파라마터 설정을 추가하는 아이콘을 통한 입력에 대응하여, 일 실시 예에 따른 전자 장치(100)는 테스트 그룹에 포함되는 사용자 중 파라미터 설정에 대응하는 사용자를 그룹 B인 실험군에 우선 할당할 수 있다.
본원에서 파라미터는 'age'에 한정되는 것은 아니고, 사용자의 성별과 같은 정보뿐만 아니라 사용자의 구매 패턴 및 구매 이력에 대한 파라미터도 포함할 수 있다.
도 15는 제1 모델의 서빙과 관련된 메트릭에 대한 정보를 제공하는 실시 예에 대한 도면이다.
일 실시 예에 따르면, 전자 장치(100)는 A/B 테스트에 대한 설정 정보를 설정 한 후, 제1 모델의 서빙에 따른 메트릭에 대한 정보를 제공할 수 있다. 도 15를 참조하면, 페이지(1500)는 메트릭에 대한 정보를 설정하는 페이지일 수 있다. 예를 들어, 전자 장치(100)는 메트릭에 대한 정보를 설정하는 페이지를 제2 단말(120)을 제공함에 따라, 제2 사용자는 플랫폼을 통해 플랫폼 상의 메트릭 중 적어도 하나의 메트릭을 추가할 수 있다. 예를 들어, 페이지(1500) 상의 메트릭 추가 아이콘(1510)을 통한 입력에 따라, metric 1은 Added metrics에 대한 부분에 추가될 수 있다. 또한, 모델의 서빙과 관련된 메트릭은 A/B 테스트의 성공 메트릭(Success Metric)을 포함할 수 있다. 여기서, 성공 메트릭은 대조군 및 적어도 하나의 실험군의 성능을 수치화한 값을 element로 하는 메트릭일 수 있다. 또한, 추가된 metric 1에 대한 상세 설정 페이지는 도 15의 페이지(1550)와 같이 표시될 수 있다. 플랫폼을 통해 페이지(1550) 상의 필터에 대한 정보(1560)를 추가적으로 설정함에 따라, metric 1은 다이나믹하게 설정될 수 있다.
도 16은 전자 장치에서 서비스와 관련된 인공 지능 모델을 관리하는 구체적인 실시 예을 설명하기 위한 도면이다.
Platform Configuration(1600)는 전자 장치(100)가 단말에 제공하는 인공 지능 모델, A/B 테스트 등의 설정을 관리하는 페이지일 수 있다. Algorithm Configuration(1601)은 플랫폼 상의 모델을 바인딩하는 기능을 제공하는 페이지로 도 9의 대상 모델을 생성하기 위한 페이지를 포함할 수 있다. Model Configuration(1602)은 도 6 내지 도 7의 인공 지능 과 관련된 모델을 설정하고, 새로운 버전을 추가하기 위한 페이지일 수 있다. Parameter Configuration(1603)은 모델의 파라미터 값을 변경하거나 새로운 파라미터를 추가하기 위한 페이지일 수 있다. A/B 테스트 Configuration(1604)는 도 10 내지 도 14의 A/B 테스트에 대한 설정 정보를 관리하기 위한 페이지일 수 있다. 또한, Feature Binding(1605)는 feature를 결합하거나 가공하여 관리하기 위한 페이지일 수 있다. 전자 장치(100)는 Platform Configuration(1600)에 따라 단말에 플랫폼을 통해 제공되는 인공 지능 모델, A/B 테스트 등을 관리하는 페이지를 제공할 수 있다. 또한, Platform Configuration(1600)에 의해 설정된 모델, 테스트, 파라미터, 알고리즘(본원의 대상 모델 또는 표준 모델에 대응될 수 있음.) 및 피처는 외부 스토리지(1610)에 저장될 수 있다.
도 16을 참조하면, 서버(1610)는 Platform Configuration(1600)을 통한 설정에 기반하여 실질적으로 구동되는 부분으로, Client(1630) 및 Model serving(1640)을 포함할 수 있다. Configuration Loader(1631)은 Platform Configuration(1600)을 통한 설정에 기반하여 저장하는 부분이다. 이에 따라, 모델을 로드하고, 로컬 컴퓨팅 디바이스에 다운로드하거나 Model Loader(1641)에 로드된 모델을 제공할 수 있다. Algorithm Invoker(1632)는 설정된 알고리즘(복수 개의 모델이 바인딩된 대상 모델 또는 표준 모델에 대응될 수 있다.)을 호출할 수 있다. 또한, A/B Controller(1633)은 A/B 테스트를 확인하고, A/B 테스트의 실행 지역에 대한 정보 및 default로 설정된 A/B 테스트의 설정 정보 등을 확인할 수 있다. Feature Accessor(1634)는 유사한 피처를 종합하고, 비등기 병렬 처리 등을 이용하여 최대 성능을 위해 피처를 획득할 수 있다. Model Invoker(1635)는 모델을 호출할 수 있다. Model loader(1641)은 기존의 변경된 모델 또는 새로운 모델을 로드할 수 있다. 또한, Load Engine(1642)는 다운로드된 모델을 로드하기 위한 엔진일 수 있다. 모델(1643)은 모델 X의 버전 1, 모델 X의 버전 2, 모델 Y의 버전 1 및 모델 Y의 버전 2를 포함할 수 있다. 다만, 도 16의 모델(1643)은 본원의 일 실시 예이며, 본원의 모델은 이에 한정되지 않는다.
도 17은 일 실시 예에 따른 서비스와 관련된 인공 지능 모델을 관리하기 위한 전자 장치를 도식화한 블록도이다.
도 17의 전자 장치(1700)는 본원 명세서의 전자 장치(100)에 대응될 수 있다.
본 개시의 전자 장치(1700)는 일 실시 예에 따라, 트랜시버(1710), 프로세서(1720) 및 스토리지(1730)를 포함할 수 있다. 도 17에 도시된 구성요소들은 전자 장치를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 전자 장치(1700)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 한편 실시 예에서 프로세서(1720)는 적어도 하나의 프로세서를 포함할 수 있다. 또한, 전자 장치(1700)는 서버로 동작할 수 있다.
트랜시버(1710)는 유무선 통신 기술을 이용하여 외부의 장치와 통신할 수 있으며 트랜시버(1710)를 포함할 수 있다. 외부의 장치는 데이터 과학자, 개발자, 품질 보증 팀의 단말을 포함하는 단말 또는 서버가 될 수 있다. 또한, 트랜시버(1710)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있을 수 있으며, 이에 한정되는 것은 아니다.
일 실시 예에 따라, 트랜시버(1710)는 단말과 통신하여 정보를 주고받을 수 있다. 트랜시버(1710)는 전자 장치(100) 상의 도메인과 관련된 적어도 하나의 A/B 테스트에 대한 정보를 표시하는 페이지를 제공할 수 있다. 또한, 트랜시버(1710)는 제1 단말(110)로부터 전자 장치(1700)과 관련된 플랫폼에 대한 접속 요청을 수신할 수 있다. 또한, 트랜시버(1710)는 제1 모델의 서빙에 따른 결과 정보를 제2 단말(120)에 제공할 수 있다. 다만 이에 한정되는 것은 아니고, 트랜시버(1710)는 전자 장치(1700)에서 수행되는 프로세스를 플랫폼 상이나 외부 스토리지와 저장할 때 이용될 수 있다.
프로세서(1720)는 전자 장치(1700)의 전반적인 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 프로세서(1720)는 도 1 내지 도 16를 통하여 전술한 하나의 방법을 수행할 수 있다. 프로세서(1720)는 트랜시버(1710) 및 스토리지(1730)와, 나아가 전자 장치(1700)가 더 포함할 수 있는 구성요소들과의 상호 작용을 통해 전자 장치(1700)가 수행하는 실시 예들을 제어할 수 있다. 일 실시 예에 따라, 프로세서(1720)는 제1 사용자의 제1 단말로부터 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하고, 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하고, 서비스와 관련된 데이터를 기반으로, 제1 모델의 서빙을 수행하고, 및 제1 모델의 서빙에 따른 결과 정보를 제공할 수 있다.
스토리지(1730)는 도 1 내지 도 16를 통하여 전술한 적어도 하나의 방법을 수행하기 위한 정보를 저장할 수 있다. 스토리지(1730)는 메모리로 호칭될 수 있고, 휘발성 메모리 또는 비휘발성 메모리일 수 있다. 또한, 스토리지(1730)는 프로세서(1520)의 동작을 수행하는데 필요한 하나 이상의 명령어를 저장할 수 있고, 플랫폼 상에 저장되거나 외부 메모리에 저장되는 데이터를 임시적으로 저장할 수 있다.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
전술한 실시 예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 아이콘 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler), 파이썬(Python) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.

Claims (19)

  1. 전자 장치에서 서비스와 관련된 인공 지능 모델을 관리하는 방법에 있어서,
    제1 사용자의 제1 단말로부터 상기 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하는 단계;
    상기 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하는 단계;
    서비스와 관련된 데이터를 기반으로, 상기 제1 모델의 서빙을 수행하는 단계; 및
    상기 제1 모델의 서빙에 따른 결과 정보를 제공하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  2. 제1항에 있어서,
    상기 제1 모델에 대한 정보를 확인하는 단계는,
    상기 플랫폼에 대한 접속 요청을 수신함에 따라, 상기 제1 단말에 인공 지능과 관련된 모델에 대한 플랫폼을 제공하는 단계; 및
    상기 플랫폼을 통해 상기 제1 모델에 대한 적어도 하나의 데이터 및 설정된 모델 프레임워크에 대한 정보를 확인하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  3. 제2항에 있어서,
    상기 제1 모델에 대한 정보를 확인하는 단계는,
    상기 설정된 모델 프레임워크에 대한 정보 및 상기 적어도 하나의 데이터에 기반하여, 상기 제1 모델을 훈련하는 단계를 더 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  4. 제2항에 있어서,
    상기 제1 모델에 대한 정보를 확인하는 단계는,
    상기 적어도 하나의 데이터를 적어도 하나의 제1 데이터 및 적어도 하나의 제2 데이터로 나누는 단계;
    상기 적어도 하나의 제1 데이터를 학습 데이터로 이용하여, 상기 모델 프레임워크에 대한 정보에 따라 상기 제1 모델을 훈련하는 단계; 및
    상기 적어도 하나의 제2 데이터를 테스트 데이터로 이용하여 상기 훈련된 제1 모델의 예측 정확도를 확인하는 단계를 더 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  5. 제4항에 있어서,
    상기 플랫폼에 저장된 상기 제1 모델은 상기 예측 정확도가 설정된 임계치 이상인 것을 특징으로 하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  6. 제5항에 있어서,
    상기 제1 모델에 대한 정보를 확인하는 단계는,
    상기 적어도 하나의 데이터에 대한 정보, 상기 설정된 모델 프레임워크에 대한 정보, 상기 제1 모델과 관련된 라이브러리 버전에 대한 정보 및 상기 제1 모델에 대한 파라미터 정보 중 적어도 하나를 포함하는 상기 제1 모델에 대한 정보를 확인하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  7. 제1항에 있어서,
    상기 제1 모델의 서빙을 수행하는 단계는,
    상기 플랫폼을 통해 제2 사용자의 제2 단말에 상기 제1 모델을 제공하는 단계; 및
    상기 플랫폼을 통해 상기 서비스와 관련된 데이터에 기반하여 상기 제1 모델에 대한 A/B 테스트를 수행하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  8. 제7항에 있어서,
    상기 제1 모델에 대한 A/B 테스트를 수행하는 단계는,
    상기 A/B 테스트의 테스트 타입 및 상기 A/B 테스트에 대한 설정 정보에 기반하여, 상기 A/B 테스트를 수행하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  9. 제8항에 있어서,
    상기 제1 모델에 대한 테스트를 수행하는 단계는,
    상기 제1 모델을 포함하는 복수 개의 모델을 바인딩하여 생성된 대상 모델을 확인하는 단계; 및
    상기 대상 모델에 대한 A/B 테스트를 수행하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  10. 제9항에 있어서,
    상기 제1 모델은 상기 플랫폼에 저장된 제2 모델의 새로운 버전이고, 상기 제1 모델과 상기 제2 모델은 모델 훈련에 사용된 적어도 하나의 데이터, 모델 프레임 워크, 라이브러리 버전 중 적어도 하나가 상이한 것을 특징으로 하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  11. 제9항에 있어서,
    상기 A/B 테스트는 상기 서비스에 대한 표준 모델 및 상기 대상 모델을 각각 A/B 테스트의 대조군 및 실험군으로 하는 A/B 테스트인 것을 특징으로 하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  12. 제8항에 있어서,
    상기 A/B 테스트에 대한 설정 정보는 상기 A/B 테스트의 실행 기간에 대한 정보, 실행 지역에 대한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  13. 제8항에 있어서,
    상기 테스트 타입이 제1 타입인 경우, 상기 A/B 테스트에 대한 설정 정보는 상기 A/B 테스트에 할당되는 트래픽에 대한 정보를 포함하고,
    상기 A/B 테스트를 수행하는 단계는,
    상기 A/B 테스트에 할당되는 트래픽에 대한 정보에 따라 상기 A/B 테스트를 수행하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  14. 제8항에 있어서,
    상기 테스트 타입이 제2 타입인 경우, 상기 A/B 테스트에 대한 설정 정보는 상기 A/B 테스트의 테스트 그룹 간의 실행 간격에 대한 정보 및 상기 A/B 테스트의 테스트 그룹의 실행 순서에 대한 정보를 포함하고,
    상기 A/B 테스트를 수행하는 단계는,
    상기 실행 간격에 대한 정보 및 상기 실행 순서에 대한 정보에 기반하여, 상기 A/B 테스트의 테스트 그룹에 상기 A/B 테스트를 교대로 실행하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  15. 제8항에 있어서,
    상기 테스트 타입이 제3 타입인 경우, 상기 A/B 테스트를 수행하는 단계는,
    상기 A/B 테스트에 대한 설정 정보에 포함되는 실행 지역에 대한 정보에 기반하여, 상기 A/B 테스트의 사용자를 결정하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  16. 제2항에 있어서,
    상기 플랫폼을 통해 상기 제1 모델에 대한 적어도 하나의 데이터를 확인하는 단계는,
    상기 플랫폼을 통해 호출 가능한 데이터를 가공하여 상기 제1 모델에 대한 적어도 하나의 데이터를 생성하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  17. 제1항에 있어서,
    상기 제1 모델의 서빙에 따른 결과 정보를 제공하는 단계는,
    상기 제1 모델의 서빙과 관련된 메트릭에 대한 정보를 제공하는 단계를 포함하는 서비스와 관련된 인공 지능 모델을 관리하는 방법.
  18. 서비스와 관련된 인공 지능 모델을 관리하기 위한 전자 장치에 있어서,
    트랜시버;
    하나 이상의 명령어를 저장하는 스토리지; 및
    제1 사용자의 제1 단말로부터 상기 전자 장치와 관련된 플랫폼에 대한 접속 요청을 수신하고,
    상기 제1 단말에서 획득된 정보를 기반으로 인공 지능과 관련된 제1 모델에 대한 정보를 확인하고,
    서비스와 관련된 데이터를 기반으로, 상기 제1 모델의 서빙을 수행하고, 및
    상기 제1 모델의 서빙에 따른 결과 정보를 제공하는 프로세서를 포함하는 서비스와 관련된 인공 지능 모델을 관리하기 위한 전자 장치.
  19. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
KR1020220102736A 2022-08-17 2022-08-17 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치 KR20240024575A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220102736A KR20240024575A (ko) 2022-08-17 2022-08-17 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치
PCT/KR2022/012490 WO2024038939A1 (ko) 2022-08-17 2022-08-22 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220102736A KR20240024575A (ko) 2022-08-17 2022-08-17 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240024575A true KR20240024575A (ko) 2024-02-26

Family

ID=89941936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220102736A KR20240024575A (ko) 2022-08-17 2022-08-17 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치

Country Status (2)

Country Link
KR (1) KR20240024575A (ko)
WO (1) WO2024038939A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102142205B1 (ko) * 2019-01-04 2020-08-06 에스케이 주식회사 설명 가능한 인공지능 모델링 및 시뮬레이션 시스템 및 방법
US11392469B2 (en) * 2019-06-20 2022-07-19 Microsoft Technology Licensing, Llc Framework for testing machine learning workflows
CN111160526B (zh) * 2019-12-18 2022-08-26 河海大学 基于mape-d环形结构的深度学习系统在线测试方法与装置
KR102398361B1 (ko) * 2020-11-23 2022-05-16 (주)아크릴 Gui 기반 인공지능 추천 시스템 및 그 방법
KR102520651B1 (ko) * 2020-12-15 2023-04-11 인하공업전문대학산학협력단 독립적 상품추천 서비스 구축시스템 및 이를 이용한 상품추천 서비스 제공방법

Also Published As

Publication number Publication date
WO2024038939A1 (ko) 2024-02-22

Similar Documents

Publication Publication Date Title
US10671933B2 (en) Method and apparatus for evaluating predictive model
CN106796522B (zh) 用于更新源代码文件的系统和方法
US8498887B2 (en) Estimating project size
US10366112B2 (en) Compiling extract, transform, and load job test data cases
US10885440B2 (en) Contextual evaluation of process model for generation and extraction of project management artifacts
US10223654B2 (en) Automated, accelerated prototype generation system
US11748064B2 (en) Architecture for analysis of value stream for software products
Bocciarelli et al. Simulation-based performance and reliability analysis of business processes
US10740209B2 (en) Tracking missing data using provenance traces and data simulation
CN111695877A (zh) 计算机执行的项目资源管理方法、系统、设备和可读介质
JP2023086678A (ja) 深層学習フレームワークに基づいて深層学習モデルを生成して適用する方法及び装置
CN110865806B (zh) 代码处理方法、装置、服务器及存储介质
WO2022100439A1 (en) Workflow patching
Ahmed-Nacer et al. Model-Driven Simulation of Elastic OCCI Cloud Resources
US20210157715A1 (en) Manage multi-team and multi-sprint projects via cognitive computing
KR20240024575A (ko) 서비스와 관련된 인공 지능 모델을 관리하는 방법 및 장치
US10248554B2 (en) Embedding profile tests into profile driven feedback generated binaries
Lehrig Architectural Templates: Engineering Scalable SaaS Applications Based on Architectural Styles.
CN117716373A (zh) 基于期望的度量值提供机器学习模型
US20220197901A1 (en) Ai model optimization method and apparatus
US11651281B2 (en) Feature catalog enhancement through automated feature correlation
CN115812195A (zh) 计算开发过程中的开发者时间
US11526849B2 (en) Data set filtering for machine learning
US20140244538A1 (en) Business process management, configuration and execution
US9769590B2 (en) Moving critical actions within a mobile application