KR20210040332A - 애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램 - Google Patents

애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20210040332A
KR20210040332A KR1020210038369A KR20210038369A KR20210040332A KR 20210040332 A KR20210040332 A KR 20210040332A KR 1020210038369 A KR1020210038369 A KR 1020210038369A KR 20210038369 A KR20210038369 A KR 20210038369A KR 20210040332 A KR20210040332 A KR 20210040332A
Authority
KR
South Korea
Prior art keywords
task
application
output data
data
tasks
Prior art date
Application number
KR1020210038369A
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 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20210040332A publication Critical patent/KR20210040332A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원은 애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램을 개시하며, 인공지능분야에 관한 것이다. 구체적인 구현방안은, 애플리케이션의 서비스 편성 파일을 획득하고; 상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하며; 여기서, 상기 서비스 편성 파일은, 애플리케이션을 분해하여 얻은 적어도 하나의 태스크에 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함한다.

Description

애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램{APPLICATION CONSTRUCTION METHOD AND APPARATUS, ELECTRONIC DEVICE AND STORAGE MEDIUM}
본 출원은 컴퓨터 기술분야에 관한 것이며, 특히 인공지능분야에 관한 것이다.
인공지능 시스템에서의 비즈니스 애플리케이션은 여러 가지 구축방식이 존재하는데, 최종적으로 대부분 약간의 독립적인 서비스로 구현된다. 인공지능 애플리케이션의 구축에 대한 처리에서, 엔지니어링 구현이 기존의 빅데이터 프로그래밍 패러다임을 준수하지 않는 경우가 많기 때문에, AI 애플리케이션에 의해 분해되는 모든 태스크는 사용자 지정 태스크이므로 AI 애플리케이션의 편성 대가가 더 높다.
본 발명은 애플리케이션 구축 방법, 장치, 전자기기 및 저장매체를 제공한다.
본 발명의 제1 측면에 따르면, 애플리케이션 구축 방법을 제공하며, 상기 방법은,
애플리케이션의 서비스 편성 파일을 획득하는 것; 및
상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것; 을 포함하고,
여기서, 상기 서비스 편성 파일은, 애플리케이션을 분해하여 얻은 적어도 하나의 태스크에 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함한다.
본 발명의 제2 측면에 따르면, 애플리케이션 구축 장치를 제공하며, 상기 장치는,
애플리케이션의 서비스 편성 파일을 획득하기 위한 정보 획득 모듈; 및
상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하기 위한 처리 모듈을 포함하고,
여기서, 상기 서비스 편성 파일은, 애플리케이션을 분해하여 얻은 적어도 하나의 태스크에 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함한다.
본 발명의 제3 측면에 따르면, 전자기기를 제공하며, 해당 기기는,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서와 통신연결된 메모리를 포함하며, 여기서,
상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되며, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서로 하여금 상기 방법을 수행하도록 한다.
본 발명의 제4 측면에 따르면, 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장매체를 더 제공하며, 상기 컴퓨터 명령은 상기 컴퓨터로 하여금 상기 방법을 수행하도록 한다.
본 발명의 실시예에서, 서비스 편성 파일을 통해 애플리케이션을 분해하여 얻은 복수의 태스크 및 그들 사이의 논리적 관계, 데이터 관련 파라미터에 대해 정의함으로써, 전체 작업 흐름에서의 각 태스크의 데이터 처리가 서로 호환할 수 있도록 유지할 수 있고; 또한 태스크의 데이터 관련 파라미터 및 태스크의 논리적 관계를 정의하기만 하면, 해당 애플리케이션의 실행 프로그램을 얻을 수 있으므로, 애플리케이션 개발자들이 엔지니어링 구현에 관심을 가질 필요가 없어, AI 애플리케이션의 편성 대가를 저하시킬 수 있을 뿐만 아니라, 편성 효율을 향상시킬 수 있다.
본 명세서에서 설명한 내용은 본 발명의 실시예의 관건적이거나 중요한 특징을 표기하기 위한 것이 아니고, 본 발명의 범위를 한정하기 위한 것도 아님을 이해해야 한다. 본 발명의 기타 특징은 아래의 명세서를 통해 더 용이하게 이해할 수 있을 것이다.
도면은 본 방안을 더 잘 이해하기 위한 것으로서, 본 출원에 대해 한정하는 것이 아니다. 여기서,
도 1은 본 출원의 실시예에 따른 애플리케이션 구축 방법의 과정 모식도이고;
도 2는 본 출원의 실시예에 따른 애플리케이션 구축 장치의 조성 구조 모식도이며;
도 3은 본 출원의 실시예에 따라 애플리케이션 구축 방법을 구현하는 전자기기의 조성 구조 모식도이다.
이하 도면과 결부하여 본 출원의 예시적인 실시예를 설명하되, 여기서 본 출원의 실시예를 포함하는 여러 가지 세부절차는 이해를 돕기 위한 것으로서, 이들은 응당 예시적인 것으로 간주해야 한다. 따라서, 해당 분야 기술자들은 여기서 설명한 실시예에 대하여 여러 가지 변화와 수정을 진행할 수 있고, 이는 본 출원의 범위와 정신을 벗어나지 않는다는 것을 인식하여야 한다. 마찬가지로, 명확함과 간결함을 위하여, 아래의 설명에서는 공지 기능과 구조에 대한 설명을 생략하였다.
본 실시예는 애플리케이션 구축 방법을 제공하며, 도 1에 도시된 바와 같이, 상기 방법은,
S101: 애플리케이션의 서비스 편성 파일을 획득하는 것; 및
S102: 상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것; 을 포함하며,
여기서, 상기 서비스 편성 파일은, 애플리케이션을 분해하여 얻은 적어도 하나의 태스크에 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함한다.
도 1에서의 S101에서 서비스 편성 파일은 서비스 편성에 기반하여 얻은 파일이다.
서비스 편성이란 한 서비스의 논리적 목표에 도달하기 위하여, 통상적으로 이를 복수의 단계로 분해하고 일정한 규칙에 따라 순차적으로 완성하는 것으로서, 이 과정을 설명하고 수행하는 시스템을 서비스 편성이라고 한다. 서비스 편성에서, 태스크(Task)를 이용하여 단일한 단계의 추상화를 나타내고, 이러한 태스크 사이의 여러 가지 가능한 수행 규칙에서, 업스트림 및 다운스트림 태스크 사이의 의존 관계는 제일 기초적인 것이며, 작업 흐름(Workflow DAG) 또는 선형 표시를 이용하여 전체 서비스에 대한 추상화를 나타낼 수 있다.
AI 애플리케이션 구축에서, 모델은 핵심 자산으로서, 모델의 엔지니어링 구현은 흔히 기존의 빅데이터 프로그래밍 패러다임에 부합되지 않아, 모든 AI 애플리케이션이 분해한 태스크가 모두 자체 정의 태스크가 되도록 하므로, 기존 시스템에서 이익이 극히 낮으며, 복수의 애플리케이션이 동일한 분해 아이템을 가지더라도, 성과를 공유하거나 편성 대가를 저하시킬 수 없다. 또한, AI 애플리케이션의 모델 자산은 높은 복제 가능성과 이식 가능성을 가지고, 비교적 강한 규범 형식, 예를 들어 동일한 모델의 입출력 또는 동일한 기계 학습/딥러닝 프레임을 가진다.
이에 기반하여 본 출원의 서비스 편성 파일에는 태스크가 사용하고자 하는 모델의 관련 정보가 포함되며, 여기서 관련 정보는 모델의 이름 및/또는 식별자가 포함될 수 있다.
바꾸어 말하면, 서비스 편성 파일에서 애플리케이션의 어느 한 태스크가 사용하고자 하는 모델을 지정할 수 있으나, 직접 코딩할 필요는 없다. 이렇게 되면, 더 이상 모델을 코딩하지 않고, 직접 모델을 서비스 편성 상대로 사용할 수 있어, 모델의 재사용성을 향상시키고, 편성 대가를 저하시킬 수 있다.
이해해야 할 것은, 애플리케이션을 분해하여 얻은 모든 애플리케이션에는 일부 태스크만 모델을 사용해야 할 수 있으므로, 일부 모델을 직접 편성 상대로 사용해야 할 태스크에 대하여, 서비스 편성 파일에서 해당 모델의 관련 정보, 즉 모델의 이름 또는 식별자 등을 설명할 수 있다. 서비스 편성 파일에서 편성된 태스크에 대응하는 번호, 예를 들어 index 또는 식별자 등을 증가하여, 서비스 편성 파일에서의 어느 한 콘텐츠가 대응되는 것이 구체적으로 어느 태스크인가를 표징할 수 있다.
다른 한편으로, 본 출원의 실시예에서 서비스 편성 파일이 과정 제어 능력에 관심을 가지고, 컴퓨팅 태스크의 정의는 외부 확장 플러그인 메커니즘을 통해 다른 시스템에 호스팅 될 수 있다. 본 출원의 실시예에서 서비스 편성 시스템을 이용하여 서비스 편성 파일을 생성하는 것은 주요하게: 업스트림 및 다운스트림 태스크의 데이터 전송 메커니즘 제공 여부; 어떻게 업스트림 태스크 상태와 결과에 근거하여 다운스트림 태스크 수행 조건을 확정할 것인가; 내포된 태스크를 제공하여 유사한 프로그램 논리의 과정 제어(순환, 분기)의 제공 여부 이 몇 가지에 관련된다. 즉 서비스 편성 파일은 태스크 사이의 표준 데이터 양식 및 데이터 변형 문법을 정의함으로써, 전체 작업 흐름의 데이터 처리를 서로 호환하도록 유지할 수 있다.
구체적으로, 도 1의 S101에서 획득한 서비스 편성 파일에 포함된 내용에 대해 구체적으로 아래와 같이 설명한다.
상기 태스크 사이에서 전달되는 데이터의 양식의 관련 정보는,
태스크의 입력 데이터 양식에 대한 정의; 및
태스크의 출력 데이터 양식에 대한 정의 중의 적어도 하나를 포함한다.
태스크 사이의 표준 데이터 양식의 관련 정보는 다음과 같이 이해할 수 있다. 즉: 각 태스크의 입력 데이터 양식에 대해 정의하고, 각 태스크의 출력 데이터 양식에 대해 정의하며; 서로 의존 관계가 존재하는 제1 태스크 및 제2 태스크에서, 제1 태스크의 출력 데이터 양식과 제2 태스크의 입력 데이터 양식이 동일하고; 여기서 제2 태스크의 입력은 제1 태스크의 출력에 의존한다.
입력 데이터 양식 또는 출력 데이터 양식에서의 데이터 양식은 실제 상황에 따라 설치할 수 있는 바, 예를 들어, 정수 타입 데이터 또는 부동 소수점 타입 데이터 또는 문자 부호 타입 데이터 등일 수 있고, 물론 실제 상황에 따라 기타 데이터 양식으로 설치될 수도 있으며, 본 예시에서 완전하게 예를 들지 않을 뿐이다.
이해해야 할 것은, 애플리케이션을 분할하여 얻은 복수의 태스크에서의 태스크 사이에는 의존 관계가 존재할 수 있는데, 예를 들어, 상기 분할하여 얻은 복수의 태스크에는 태스크가 그 전번 태스크가 없이 다음 태스크만 구비할 수도 있고, 태스크에 그 전번 태스크는 존재하나 다음 태스크가 존재하지 않을 수도 있으며, 태스크에 그 전번 태스크도 존재하고 다음 태스크도 존재할 수도 있다.
본 실시예의 복수의 태스크에 관하여, 의존관계를 가지는 임의의 두 개의 태스크를 모두 상기 제1 태스크 및 제2 태스크로 이해할 수 있다.
예를 들어 설명하면, 태스크1, 2, 3, 4, 5에서, 태스크1의 출력이 태스크2의 입력이면, 태스크1은 상기 제1 태스크 이고, 태스크2는 제2 태스크 일 수 있다.
이 외에, 제1 태스크 및 제2 태스크의 수량은 한정되지 않는 바, 예를 들어 복수의 제1 태스크는 하나의 제2 태스크와 대응되거나, 또는 하나의 제1 태스크가 복수의 제2 태스크와 대응될 수 있다.
또 예를 들어 설명하면, 태스크1, 2, 3, 4, 5에서, 태스크1, 2의 출력이 태스크3의 입력이면, 태스크1, 2는 상기 제1 태스크 이고, 태스크3은 제2 태스크 일 수 있으며; 만약 태스크3의 출력이 태스크4, 5의 입력이면, 이 관계에서 태스크3은 제1 태스크이고 태스크4, 5는 제2 태스크 일 수 있다.
더 설명해야 할 것은, 만약 복수의 제1 태스크가 하나의 제2 태스크와 대응되면, 상이한 제1 태스크의 출력 데이터 양식은 동일한 정의 일 수 있고; 물론 상이한 정의 일 수도 있는데, 이는 제2 태스크의 입력은 여러 가지 데이터 유형의 양식이 존재할 수 있기 때문이다. 또한, 만약 하나의 제1 태스크가 복수의 제2 태스크와 대응되면, 하나의 제1 태스크의 출력 데이터는 상이한 제2 태스크에 대해 상이한 정의를 설정할 수 있는 바, 예를 들어, 태스크3의 출력이 태스크4, 5의 입력이 되고, 태스크4가 제1 데이터 양식을 입력할 것을 요구하고, 태스크5가 제2 데이터 양식을 입력할 것을 요구하면, 태스크3 - 태스크4 사이에서 전달되는 출력 데이터 양식 및 태스크4 - 태스크5 사이에서 전달되는 출력 데이터 양식에 대해 각각 정의하여, 상이한 제2 태스크의 요구를 만족시키도록 할 수 있다.
서비스 편성 파일에서, 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보는,
제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의; 및
제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의 중의 적어도 하나를 포함할 수 있다.
바꾸어 말하면, 서로 의존 관계를 가지는 제1 태스크 및 제2 태스크에서, 제1 태스크의 출력 데이터를 조절하고, 조절하여 얻은 데이터를 제2 태스크의 입력 데이터로 사용하거나; 및/또는, 서로 의존 관계를 가지는 제1 태스크 및 제2 태스크에서, 제1 태스크의 출력 데이터를 대응되는 기설정 파라미터와 결합하여, 제2 태스크의 입력 데이터로 사용한다.
제1 태스크와 제2 태스크의 설명은 상술한 내용과 동일하므로, 더 이상 설명하지 않는다.
예를 들어 설명하면, 애플리케이션을 분해하여 얻은 복수의 태스크에 태스크1, 태스크2가 존재하고, 태스크2의 입력이 태스크1의 출력에 의존한다고 가정하면, 태스크1은 전술한 제1 태스크이고, 태스크2는 전술한 제2 태스크이다.
서비스 편성 파일(JSON파일일 수 있음)에서의 태스크 사이에서 전달되는 데이터의 문법 변환은, 다음과 같은 관련 정보의 설명을 포함할 수 있다. 즉: 만약 태스크1이 JSON 파일에서 출력 데이터가 8개의 데이터를 포함한다고 정의하면, 8개의 데이터에 대해 이름 변화, 데이터 필터링 또는 데이터 변환 등 처리를 진행하여 조절한 후의 출력 데이터를 얻으며, 조절한 후의 출력 데이터를 태스크2의 입력 데이터로 사용할 수 있다.
또 예를 들면, 서비스 편성 파일에서의 태스크 사이에서 전달되는 데이터의 문법 변환은 다음과 같은 정의를 포함할 수 있다. 즉: 만약 태스크1이 JSON 파일에서 출력 데이터에 8개의 데이터가 포함된다고 정의하면, 8개의 데이터와 기설정 파라미터를 결합하여, 태스트2의 입력 데이터로 사용할 수 있다. 즉, 태스크1의 출력 데이터의 기초상에 기설정 파라미터를 추가할 수 있다.
또 다른 상황에서, 제1 태스크 및 제2 태스크의 수량은 한정되지 않는 바, 예를 들어, 복수의 제1 태스크가 하나의 제2 태스크와 대응되거나, 또는 하나의 제1 태스크가 복수의 제2 태스크와 대응될 수 있다.
설명해야 할 것은, 만약 복수의 제1 태스크가 하나의 제2 태스크와 대응되면, 상이한 제1 태스크의 출력 데이터 문법 변환의 정의는 동일할 수 있으므로, 제2 태스크의 입력 양식은 고정된 것이고; 물론 상이할 수도 있는 바, 예를 들어, 하나의 제1 태스크의 출력 데이터의 일부를 삭제하여 삭제된 후의 데이터를 얻고, 다른 한 제1 태스크의 출력 데이터에 기설정 파라미터를 증가하여 대응되는 데이터를 얻으며, 두 개의 제1 태스크를 변환시킨 후의 데이터를 제2 태스크에 제공할 수 있다. 또한, 만약 하나의 제1 태스크가 복수의 제2 태스크와 대응되면, 하나의 제1 태스크의 출력 데이터는 상이한 제2 태스크에 대해 상이한 정의를 설정할 수 있는 바, 예를 들어, 태스크3의 출력은 태스크4, 5의 입력으로 사용할 수 있고, 태스크3-태스크4 사이에서 전달되는 데이터에 대하여, 태스크3의 출력 데이터를 일부 필터링한 후의 데이터로 정의하여, 태스크4의 입력 데이터로 사용할 수 있고; 태스크3 - 태스크5 사이에서 전달되는 데이터는 기설정 파라미터를 증가한 후의 데이터로 정의하여 태스크5의 입력 데이터로 사용할 수 있다.
이 외에, 서비스 편성 파일이 흔히 보는 논리적 처리와 프로그래밍 패러다임에 대해 표준적인 설명(또는 정의)를 진행하는 것, 구체적으로 말하면, 서비스 편성 파일에서의 태스크 사이의 논리 처리의 관련 정보는,
제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건; 여기서, 상기 기설정 조건은 제1 태스크의 상태 및/또는 출력 데이터와 관련되며; 및
제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의 중의 적어도 하나를 포함할 수 있다.
바꾸어 말하면, 제1 태스크 상태 및/또는 출력 데이터가 대응되는 기설정 조건을 만족시키는 상황에서 제2 태스크를 수행할 수 있는데, 이렇게 되면 서비스 편성 파일에서 해당 기설정 조건을 정의해야 하고;
이 외에, 서비스 편성 파일에서 또한 제1 태스크가 출력 데이터를 얻은 후 수행해야 하는 적어도 하나의 다음 태스크를 정의한다.
태스크 사이의 수행 논리의 관련 정의는, 태스크 성공, 태스크 실패, 태스크 대기, 성명, 단일 선택, 다중 병렬을 포함할 수 있다.
논리적 처리와 프로그래밍 패러다임을 설명함에 있어서, 태스크 사이의 처리에 대해 조건 한정을 진행하는 것으로 이해할 수 있다. 예를 들어, 서로 의존 관계를 가지는 제1 태스크 및 제2 태스크에 대해, 제1 태스크가 출력 데이터를 획득한 후 하나의 판정 논리를 증가하여, 출력 데이터의 정확 여부를 판정하는데 이용할 수 있으며, 만약 정확하면, 출력 데이터를 제2 태스크의 입력 데이터로 사용하고; 또는 만약 정확하지 않으면, 제1 태스크는 실패하여, 순환 논리를 설치함으로써, 제1 태스크를 다시 수행할 수 있다(또는 제1 태스크 전의 N개의 태스크를 다시 수행하되, N은 1보다 크거나 같은 정수이다).
또 예를 들면, 만약 복수의 태스크가 병렬로 처리될 수 있으면, 병렬 처리의 정의를 진행할 수 있으며, 제1 태스크와 제2 태스크 및 제3 태스크에 모두 의존 관계가 존재하고, 제1 태스크의 출력을 제2 태스크 및 제3 태스크의 입력으로 사용할 수 있다고 가정하면, 제1 태스크의 출력과 병행하여 제2 태스크 및 제3 태스크를 출력하고, 동시에 제2 태스크 및 그 다음 태스크의 처리, 제3 태스크 및 그 다음 태스크의 처리를 트리거한다고 정의할 수 있다. 이러한 예시에서는 제1 태스크 및 그 다음 태스크를 한 부류의 태스크로 이해하고, 제3 태스크 및 그 다음 태스크를 다른 한 부류의 태스크로 이해할 수 있으며, 이 두 부류는 병렬로 처리할 수 있다.
다시 예를 들면, 만약 한 태스크의 입력이 두 개의 태스크의 출력에 의존하고, 예를 들어, 태스크6이 태스크3, 4, 5의 출력에 의존하면, 태스크6 전에 하나의 대기 중인 처리 논리를 증가할 수 있는데, 해당 대기 중인 논리는 대기 태스크3, 4, 5의 출력을 모두 획득하고 다시 태스크6을 수행하도록 정의될 수 있다.
물론, 논리적 처리와 프로그래밍 패러다임의 정의(또는 관련 정보)는 이상의 예시에 한정되지 않고, 실제 상황에 따라 더 많은 논리를 설정할 수 있는 바, 본 실시예는 완전하게 예를 들지 않을 뿐이다.
관련 기술에서는 코드를 작성하여야만 컴퓨터 논리를 프로세스 제어의 형식화 정의, 예를 들어 if 또는 순환으로 연결할 수 있고; 본 출원의 실시예는 서비스 편성 파일을 통해 형식화 정의를 파일 설명 방식으로 변화시켜 설명할 수 있는 바, 예를 들어, JSON 또는 XML 텍스트를 이용하여 설명함으로써, 서비스 편성 파일에 기반하여 구축한 애플리케이션이 상이한 시스템에서 사용되도록 할 수 있다. 이 외에, 완전한 작업 흐름(workflow DAG)의 설명을 지지하는지 여부는 본 실시예의 핵심 목표에 영향을 미치지 않는데, 그 이유는 DAG가 항상 토폴로지 정렬에 따라 수행되어 논리와 결과의 정확성을 유지하기 때문이며; 선형 설계를 이용하여 표달하더라도 구현될 수 있어 본 실시예는 이에 대해 한정하지 않는다.
하나의 예시에 기반하여 본 실시예의 S101에서의 서비스 편성 파일을 예시적으로 설명하며, 만약 AI 애플리케이션이 안면 비교 애플리케이션이라고 가정하면, 해당 애플리케이션을 복수의 태스크로 구획하고, 서비스 편성 파일을 통해 각 태스크를 정의하는 것은 아래와 같은 내용을 포함할 수 있다. 즉:
태스크1은 두 개의 입력 이미지를 얻고, 두 개의 입력 이미지(이미지a와 이미지b라고 가정함)를 각각 태스크2와 태스크3에 할당하며;
태스크2와 태스크3을 병렬로 처리하고;
태스크2의 입력은 이미지a이고, 태스크3의 입력은 이미지b이며;
태스크2는 안면 인식 모델의 이름 또는 식별 번호로서, 해당 태스크가 안면 인식 모델을 호출해야 하는 것을 지시하고, 안면 인식 모델이 피드백한 특징 결과를 얻는데 사용되고; 상기 특징 결과 데이터에 대해 출력 데이터 양식 정의를 진행하며; 태스크3은 동일한 처리 일 수 있고;
태스크4 전에 대기 중인 처리 논리 정의를 증가하며, 대기 태스크2, 3의 출력 데이터는 모두 다음으로 이동시켜 처리하며; 태스크4는 비교 모델을 호출하여 비교 모델이 피드백한 유사성 결과 등 내용을 얻을 수 있고;
태스크4의 출력 데이터에 대해 데이터 변형 처리의 정의를 진행하며, 태스크4의 출력 데이터에 기설정 파라미터A를 증가하도록 정의할 수 있으며;
태스크4의 출력 데이터를 태스크5의 입력 데이터로 사용하고, 태스크5는 임계값에 따라 판정하도록 정의하고, 판정 결과를 얻고, 이미지a, b의 특징 비교 결과를 출력하고, 태스크5의 출력 데이터 양식을 문자 부호 타입의 데이터 양식으로 정의한다.
이해해야 할 것은, 상기 내용은 단지 예시적인 설명으로서, 실제 처리에서는 상기 형식을 사용하여 설명하지 않을 수 있는 바, 예를 들어 JSON 양식의 파일을 이용하여 설명하거나, 또는 XML 양식의 파일을 이용하여 설명할 수 있는데, 여기서는 이에 대해 한정하지 않는다. 이 외에, 실제 처리에서 더 많은 태스크 또는 더 적은 태스크가 존재할 수 있으며, 해당 AI 애플리케이션에 대한 한정이 되지 않는다.
상기 서비스 편성 파일에 기반하여 S102를 수행하며, 해당 서비스 편성 파일에 기반하여 AI 애플리케이션의 수행 코드를 생성할 수 있다. 나아가, 해당 AI 애플리케이션을 수행할 때, 직접 호출하면 된다.
S102에서, 상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
상기 서비스 편성 파일에서의 태스크가 사용하고자 하는 모델의 관련 정보에 기반하여 상기 태스크와 대응되는 모델을 확정하고 태스크의 실행 가능 코드를 생성하며; 바꾸어 말하면, 서비스 편성 파일에서 이미 제공한 어느 태스크가 사용하고자 하는 모델의 관련 정보(예를 들어 이름 또는 아이디)로 인하여, 애플리케이션의 실행 프로그램을 생성할 때, 직접 해당 모델에 기반하여 대응되는 태스크를 생성하면 되는 것;
상기 서비스 편성 파일에서의 태스크 사이에서 전달되는 데이터의 양식의 관련 정보에 기반하여, 태스크의 출력 데이터의 양식을 조절하거나 제어하는 실행 가능 코드를 확정하는 것;
상기 서비스 편성 파일에서 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보에 기반하여, 태스크의 출력 데이터의 변환을 제어하거나 조절하는 실행 가능 코드를 확정하는 것; 및
상기 서비스 편성 파일에서 태스크 사이의 논리 처리의 관련 정보에 기반하여, 태스크를 제어하기 위한 수행 논리 및/또는 수행 순서의 실행 가능 코드를 확정하는 것 중의 적어도 하나를 포함한다.
구체적으로 말하면, S102에서, 상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
태스크의 입력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 입력 데이터 양식을 확정하는 것; 및
태스크의 출력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 출력 데이터 양식을 확정하는 것 중의 적어도 하나를 포함한다.
애플리케이션에는 적어도 하나의 태스크의 입력 데이터 양식 또는 출력 데이터 양식을 제어하는 실행 가능 코드가 포함되어, 이상에서 정의한 내용을 구현하도록 할 수 있다.
상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의에 기반하여, 애플리케이션에서의 제1 태스크의 출력 데이터를 조절하고, 조절한 후의 데이터를 제2 태스크의 입력 데이터로 하는 것; 및
제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의에 기반하여, 애플리케이션에서의 제1 태스크의 출력 데이터에 기설정 파라미터를 증가한 후, 제2 태스크의 입력 데이터를 획득하는 것 중의 적어도 하나를 더 포함할 수 있다.
예를 들어, 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정할 경우, 서비스 편성 파일에서의 정의에 근거하여 대응되는 실행 가능 코드를 확정하고, 해당 실행 가능 코드에 의해 제1 태스크의 출력 데이터를 조절하며, 조절한 후의 데이터를 제2 태스크의 입력 데이터로 할 수도 있고; 해당 실행 가능 코드에 의해 애플리케이션에서의 제1 태스크의 출력 데이터에 기설정 파라미터를 증가한 후, 제2 태스크의 입력 데이터를 획득할 수도 있다.
S102에서, 상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건에 기반하여, 애플리케이션에서의 제1 태스크의 상태 및/또는 출력 데이터가 기설정 조건을 만족시키는지 여부를 판정하고, 판정 결과에 기반하여 제2 태스크 수행 여부를 확정하는 것; 및
제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의에 기반하여, 애플리케이션에서의 제1 태스크를 완성한 후 수행해야 할 적어도 하나의 다음 태스크를 제어하는 것 중의 적어도 하나를 포함한다.
예를 들어, 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정할 경우, 서비스 편성 파일에서의 정의에 근거하여 대응되는 실행 가능 코드를 확정하고, 해당 실행 가능 코드에 의해, 애플리케이션에서의 제1 태스크의 상태 및/또는 출력 데이터가 기설정 조건을 만족시키는지 여부를 판정하고, 판정 결과에 기반하여 제2 태스크 수행 여부를 확정하고; 예를 들어, 해당 실행 가능 코드에 의해 판정의 논리를 수행하되, 만약 결과가 기설정 조건을 만족시키면, 제2 태스크를 수행하도록 제어하고, 그렇지 않으면 제1 태스크를 다시 수행하는 것, 또는, 서비스 편성 파일에서의 정의에 근거하여 해당 실행 가능 코드를 확정하여 기타 태스크를 다시 수행하도록 하는 것 중의 적어도 하나를 수행할 수 있다.
애플리케이션에서의 제1 태스크를 완성한 후 수행해야 할 적어도 하나의 다음 태스크를 제어하는 것은, 바꾸어 말하면 실행 가능 코드를 통해 제1 태스크에서 수행 완료한 후 적어도 하나의 다음 태스크를 병렬하여 수행하도록 제어할 수 있는 것이다.
알 수 있다 시피, 상기 방안을 사용함으로써, 서비스 편성 파일이 애플리케이션을 분해하여 얻은 복수의 태스크 및 그들 사이의 논리적 관계, 데이터 관련 파라미터에 대해 정의하는 것을 통해, 전체 작업 흐름에서의 각 태스크의 데이터 처리가 서로 호환하도록 유지할 수 있고; 태스크의 데이터 관련 파라미터 및 태스크의 논리적 관계를 정의하기만 하면, 해당 애플리케이션의 실행 프로그램을 얻을 수 있으므로, 애플리케이션 개발자들이 엔지니어링 구현에 관심을 가질 필요가 없어, AI 애플리케이션의 편성 대가를 저하시킬 수 있을 뿐만 아니라, 편성 효율을 향상시킬 수 있다.
본 출원의 실시예는 애플리케이션 구축 장치를 더 제공하며, 도 2에 도시된 바와 같이, 상기 장치는,
애플리케이션의 서비스 편성 파일을 획득하기 위한 정보 획득 모듈(21); 및
상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하기 위한 처리 모듈(22)을 포함하고,
여기서, 상기 서비스 편성 파일은, 애플리케이션을 분해하여 얻은 적어도 하나의 태스크에 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함한다.
상기 태스크 사이에서 전달되는 데이터의 양식의 관련 정보는,
태스크의 입력 데이터 양식에 대한 정의; 및
태스크의 출력 데이터 양식에 대한 정의 중의 적어도 하나를 포함한다.
처리 모듈(22)은,
태스크의 입력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 입력 데이터 양식을 확정하는 것; 및
태스크의 출력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 출력 데이터 양식을 확정하는 것 중의 적어도 하나를 수행하는데 사용된다.
상기 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보는,
제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의; 및
제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의 중의 적어도 하나를 포함한다.
처리 모듈(22)은,
제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의에 기반하여, 애플리케이션에서의 제1 태스크의 출력 데이터를 조절하고, 조절한 후의 데이터를 제2 태스크의 입력 데이터로 하는 것;
제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의에 기반하여, 애플리케이션에서의 제1 태스크의 출력 데이터에 기설정 파라미터를 증가한 후, 제2 태스크의 입력 데이터를 획득하는 것 중의 적어도 하나를 수행하는데 사용된다.
상기 태스크 사이의 논리 처리의 관련 정보는,
제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건; 여기서, 상기 기설정 조건은 제1 태스크의 상태 및/또는 출력 데이터와 관련되며; 및
제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의 중의 적어도 하나를 포함한다.
처리 모듈(22)은,
제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건에 기반하여, 애플리케이션에서의 제1 태스크의 상태 및/또는 출력 데이터가 기설정 조건을 만족시키는지 여부를 판정하고, 판정 결과에 기반하여 제2 태스크 수행 여부를 확정하는 것; 및
제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의에 기반하여, 애플리케이션에서의 제1 태스크를 완성한 후 수행해야 할 적어도 하나의 다음 태스크를 제어하는 것 중의 적어도 하나를 수행하는데 사용된다.
본 출원의 실시예에 따르면, 본 출원은 전자기기 및 판독 가능 저장매체를 더 제공한다.
도 3에 도시된 바와 같이, 이는 본 출원의 실시예에 따른 애플리케이션 구축 방법의 전자기기의 블록도이다. 해당 전자기기는 상기 배치 기기 또는 에이전트 기기 일 수 있다. 전자기기는 랩톱 컴퓨터, 데스크톱 컴퓨터, 워크스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인프레임 컴퓨터 및 기타 적합한 컴퓨터와 같은 여러 가지 형식의 디지털 컴퓨터를 가리킨다. 전자기기는 개인 디지털 프로세싱, 셀룰러 폰, 스마트 폰, 웨어러블 기기 및 기타 유사한 컴퓨팅 장치와 같은 여러 가지 형식의 이동장치를 더 나타낼 수 있다. 본 명세서에 도시된 부품, 이들의 연결과 관계 및 이들의 기능은 단지 예시적인 것일 뿐이며, 본 문에서 설명 및/또는 요구한 본 출원의 실현을 한정하기 위한 것이 아니다.
도 3에 도시된 바와 같이, 해당 전자기기는 하나 또는 복수의 프로세서(801), 메모리(802) 및 각 부품을 연결하기 위한, 고속 인터페이스와 저속 인터페이스를 포함하는 인터페이스를 포함한다. 각 부품은 상이한 버스를 이용하여 서로 연결되고, 공용 메인보드에 장착되거나 또는 수요에 따라 기타 방식으로 장착될 수 있다. 프로세서는 전자기기 내에서 수행되는 명령을 처리할 수 있는데, 이는 메모리에 저장되거나 또는 메모리에 저장되어 외부 입력/출력장치(예를 들어 인터페이스에 커플링 된 디스플레이 기기)에 GUI를 표시하는 그래프 정보의 명령을 포함한다. 기타 실시형태에서, 만약 필요하면, 복수의 프로세서 및/또는 복수의 버스를 복수의 메모리와 함께 사용할 수 있다. 마찬가지로 복수의 전자기기를 연결할 수 있고, 각 기기는 일부 필요한 조작(예를 들면 서버 어레이, 블레이드 서버 세트 또는 멀티 프로세서 시스템으로 함)을 제공할 수 있다. 도 3에서는 하나의 프로세서(801)를 예로 한다.
메모리(802)는 본 출원에서 제공하는 비일시적 컴퓨터 판독 가능 저장매체이다. 여기서, 상기 메모리에는 적어도 하나의 프로세서에 의해 수행될 수 있는 명령이 저장되어, 상기 적어도 하나의 프로세서로 하여금 본 출원에서 제공하는 애플리케이션 구축 방법을 수행하도록 할 수 있다. 본 출원의 비일시적 컴퓨터 판독 가능 저장매체는 컴퓨터 명령을 저장하고, 해당 컴퓨터 명령은 컴퓨터로 하여금 본 출원에서 제공하는 애플리케이션 구축 방법을 수행하도록 한다.
메모리(802)는 비일시적 컴퓨터 판독 가능 저장매체로서 비일시적 소프트웨어 프로그램, 비일시적 컴퓨터 실행 가능 프로그램 및 모듈, 예를 들어 본 출원의 실시예에서의 애플리케이션 구축 방법에 대응되는 프로그램 명령/모듈을 저장하는데 사용될 수 있다. 프로세서(801)는 메모리(802)에 저장된 비일시적 소프트웨어 프로그램, 명령 및 모듈을 작동시킴으로써, 서버의 여러 가지 기능 응용 및 데이터 처리를 수행, 즉 상기 방법 실시예에서의 애플리케이션 구축 방법을 실현한다.
메모리(802)는 프로그램 저장구역과 데이터 저장구역을 포함할 수 있으며, 여기서, 프로그램 저장구역은 운영체제, 적어도 하나의 기능에 필요한 응용 프로그램을 저장할 수 있고, 데이터 저장구역은 전자기기의 사용이 구축한 데이터 등을 저장할 수 있다. 이 외에, 메모리(802)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 비일시적 메모리, 예를 들면 적어도 하나의 디스크 메모리, 플래시 메모리 또는 기타 비일시적 솔리드 스테이트 메모리를 더 포함할 수 있다. 일부 실시예에서, 메모리(802)는 선택적으로 프로세서(801)에 대해 원격으로 설치되는 메모리를 포함하고, 이러한 원격 메모리는 네트워크를 통해 전자기기에 연결될 수 있다. 상기 네트워크의 구현예는 인터넷, 인트라넷, 근거리 통신망, 이동 통신망 및 이들의 조합을 포함하나 이에 한정되지 않는다.
애플리케이션 구축 방법에 따른 전자기기는 입력장치(803)와 출력장치(804)를 더 포함할 수 있다. 프로세서(801), 메모리(802), 입력장치(803)와 출력장치(804)는 버스 또는 기타 방식을 통해 연결될 수 있고, 도 3에서는 버스를 통해 연결되는 것을 예로 한다.
입력장치(803)는 입력된 숫자 또는 문자 부호정보를 수신할 수 있고 ,또한 전자기기의 사용자 설정 및 기능 제어와 관련되는 키 신호 입력을 발생할 수 있으며, 예를 들면 터치 스크린, 키보드, 마우스, 트랙패드, 터치패드, 지시 바, 하나 또는 다수의 마우스버튼, 트랙 볼, 조이스틱 등 입력장치일 수 있다. 출력장치(804)는 디스플레이 기기, 보조 조명장치(예를 들면, LED)와 촉각 피드백 장치(예를 들면, 진동모터) 등을 포함할 수 있다. 해당 디스플레이 기기는 액정 모니터(LCD), 발광 다이오드(LED) 디스플레이와 플라즈마 디스플레이를 포함할 수 있으나 이에 한정되지 않는다. 일부 실시방식에서, 디스플레이 기기는 터치 스크린일 수 있다.
여기서 설명하는 시스템과 기술의 여러 가지 실시형태는 디지털 전자회로 시스템, 집적회로 시스템, 전용 ASIC(전용 집적회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합에서 실현할 수 있다. 이러한 여러 가지 실시형태는 하나 또는 복수의 컴퓨터 프로그램에서 실시되는 것을 포함할 수 있고, 해당 하나 또는 복수의 컴퓨터 프로그램은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템에서 실행 및/또는 해석되며, 해당 프로그래머블 프로세서는 전용 또는 범용 프로그래머블 프로세서로서, 저장 시스템, 적어도 하나의 입력장치 및 적어도 하나의 출력장치에서 데이터와 명령을 수신할 수 있고, 데이터와 명령을 해당 저장 시스템, 해당 적어도 하나의 입력장치 및 해당 적어도 하나의 출력장치에 전송할 수 있다.
이러한 컴퓨팅 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드라고도 한다)은 프로그래머블 프로세서의 기계 명령을 포함하고, 고급 프로세스 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계 언어를 이용하여 이러한 컴퓨팅 프로그램을 실시할 수 있다. 본 명세서에서 사용한 바와 같이, 용어 “기계 판독 가능 매체”와 “컴퓨터 판독 가능 매체”는 기계 명령 및/또는 데이터를 프로그래머블 프로세서에 제공하는 임의의 컴퓨터 프로그램 제품, 기기 및/또는 장치(예를 들면 자기 디스크, 시디롬, 메모리 프로그램 가능 로직 장치(PLD))를 가리키고, 기계 판독 가능 신호로서의 기계 명령을 수신하는 기계 판독 가능 매체를 포함한다. 용어 “기계 판독 가능 신호”는 기계 명령 및/또는 데이터를 프로그래머블 프로세서에 제공하는 임의의 신호를 가리킨다.
사용자와의 상호작용을 제공하기 위하여, 여기서 설명하는 시스템과 기술을 컴퓨터에서 실시할 수 있으며, 해당 컴퓨터는, 사용자에게 정보를 디스플레이 하는 디스플레이 장치(예를 들면 CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터); 및 키보드와 포인팅 장치(예를 들면, 마우스 또는 트랙 볼)를 구비하고, 사용자는 해당 키보드와 해당 포인팅 장치를 통해 컴퓨터에 입력을 제공할 수 있다. 기타 유형의 장치는 사용자와의 상호작용에 사용될 수도 있는 바, 예를 들면 사용자에게 제공된 피드백은 모든 형식의 감각 피드백(예를 들면 시각 피드백, 청각 피드백 또는 촉각 피드백) 일 수 있고, 모든 형식(소리 입력, 음성 입력 또는 촉각 입력을 포함)에 의해 사용자로부터의 입력을 수신할 수 있다.
여기서 설명한 시스템과 기술을 백그라운드 부품을 포함하는 컴퓨팅 시스템(예를 들면 데이터 서버), 또는 미들웨어 부품을 포함하는 컴퓨팅 시스템(예를 들면 애플리케이션 서버), 또는 프런트엔트 부품을 포함하는 컴퓨팅 시스템(예를 들면 그래픽 사용자 인터페이스 또는 네트워크 브라우저를 구비한 사용자 컴퓨터, 사용자는 해당 그래픽 사용자 인터페이스 또는 해당 네트워크 브라우저를 통해 여기서 설명한 시스템과 기술의 실시형태와 상호작용할 수 있다), 또는 이러한 백그라운드 부품, 미들웨어 부품 또는 프런트엔드 부품을 포함하는 임의의 조합의 컴퓨팅 시스템에서 실시될 수 있다. 임의의 형태 또는 매체의 디지털 데이터 통신(예를 들면 통신 네트워크)을 통해 시스템의 부품을 서로 연결할 수 있다. 통신 네트워크의 예시는 근거리 통신망 (LAN), 광역 통신망 (WAN) 및 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 원격으로 설치되는 동시에 통신 네트워크를 통해 서로 상호작용한다. 상응하는 컴퓨터에서 운행되고 서로 클라이언트-서버 관계를 가지는 컴퓨터 프로그램을 통하여 클라이언트와 서버의 관계를 발생한다. 서버는 클라우드 서버 일 수 있고, 클라우드 컴퓨팅 서버 또는 클라우드 호스트라고도 하는 바, 이는 클라우드 컴퓨팅 서비스 시스템에서의 하나의 호스트 제품으로서, 전통적인 물리 호스트와 VPS 서비스에서 관리 난이도가 크고, 서비스 확장성이 약한 단점을 해결한다.
이해해야 할 것은, 이상에서 설명한 여러 가지 형태의 과정을 사용하여, 단계를 다시 정렬시키고 증가 또는 삭제할 수 있다. 예를 들면 본 출원에서 기재한 각 단계는 동시에 수행할 수도 있고 순차적으로 수행할 수도 있으며 상이한 순서로 수행할 수도 있는 바, 본 출원에서 개시한 기술방안에서 기대하는 결과를 실현할 수만 있다면, 본 문은 이에 대해 한정하지 않는다.
상기 구체적인 실시형태는 본 출원의 보호범위에 대한 한정이 아니다. 해당 분야 기술자들은 설계 요구와 기타 요소에 근거하여 여러 가지 수정, 조합, 하위 조합과 대체를 진행할 수 있다는 것을 이해할 수 있다. 본 출원의 정신과 원칙 내에서 진행한 그 어떤 수정, 균등한 대체와 개량은 모두 본 출원의 보호범위 내에 포함된다.

Claims (17)

  1. 애플리케이션 구축 방법에 있어서,
    애플리케이션의 서비스 편성 파일을 획득하는 것;
    상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것; 을 포함하며 ,
    여기서, 상기 서비스 편성 파일은 애플리케이션을 분해하여 얻은 적어도 하나의 태스크가 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함하는 것을 특징으로 하는 애플리케이션 구축 방법.
  2. 제1항에 있어서,
    상기 태스크 사이에서 전달되는 데이터의 양식의 관련 정보는,
    태스크의 입력 데이터 양식에 대한 정의; 및
    태스크의 출력 데이터 양식에 대한 정의 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
    태스크의 입력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 입력 데이터 양식을 확정하는 것; 및
    태스크의 출력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 출력 데이터 양식을 확정하는 것 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보는,
    제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의; 및
    제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
    제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의에 기반하여, 애플리케이션에서의 제1 태스크의 출력 데이터를 조절하고, 조절한 후의 데이터를 제2 태스크의 입력 데이터로 하는 것; 및
    제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의에 기반하여, 애플리케이션에서의 제1 태스크의 출력 데이터에 기설정 파라미터를 증가한 후, 제2 태스크의 입력 데이터를 획득하는 것 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 태스크 사이의 논리 처리의 관련 정보는,
    제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건; 여기서, 상기 기설정 조건은 제1 태스크의 상태 및/또는 출력 데이터와 관련되며; 및
    제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하는 것은,
    제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건에 기반하여, 애플리케이션에서의 제1 태스크의 상태 및/또는 출력 데이터가 기설정 조건을 만족시키는지 여부를 판정하고, 판정 결과에 기반하여 제2 태스크 수행 여부를 확정하는 것; 및
    제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의에 기반하여, 애플리케이션에서의 제1 태스크를 완성한 후 수행해야 할 적어도 하나의 다음 태스크를 제어하는 것 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  8. 애플리케이션 구축 장치에 있어서,
    애플리케이션의 서비스 편성 파일을 획득하기 위한 정보 획득 모듈;
    상기 서비스 편성 파일에 기반하여 애플리케이션의 실행 프로그램을 확정하기 위한 처리 모듈을 포함하며,
    여기서, 상기 서비스 편성 파일은, 애플리케이션을 분해하여 얻은 적어도 하나의 태스크에 대응되는 다음 내용, 즉: 태스크 사이에서 전달되는 데이터의 양식의 관련 정보; 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보; 태스크 사이의 논리 처리의 관련 정보; 및 태스크가 사용하고자 하는 모델의 관련 정보 중의 적어도 하나를 포함하는 것을 특징으로 하는 애플리케이션 구축 장치.
  9. 제8항에 있어서,
    상기 태스크 사이에서 전달되는 데이터의 양식의 관련 정보는,
    태스크의 입력 데이터 양식에 대한 정의; 및
    태스크의 출력 데이터 양식에 대한 정의 중의 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  10. 제9항에 있어서,
    상기 처리 모듈은,
    태스크의 입력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 입력 데이터 양식을 확정하는 것; 및
    태스크의 출력 데이터 양식에 대한 정의에 기반하여, 애플리케이션에서의 태스크의 출력 데이터 양식을 확정하는 것 중의 적어도 하나를 수행하는 것을 특징으로 하는 장치.
  11. 제8항에 있어서,
    상기 태스크 사이에서 전달되는 데이터의 문법 변환의 관련 정보는,
    제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의; 및
    제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의 중의 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  12. 제11항에 있어서,
    상기 처리 모듈은,
    제2 태스크에 입력된 제1 태스크의 출력 데이터를 조절하는 정의에 기반하여 애플리케이션에서의 제1 태스크의 출력 데이터를 조절하고 조절한 후의 데이터를 제2 태스크의 입력 데이터로 하는 것; 및
    제2 태스크에 입력된 제1 태스크의 출력 데이터에 대해 증가한 기설정 파라미터의 정의에 기반하여 애플리케이션에서의 제1 태스크의 출력 데이터에 기설정 파라미터를 증가한 후 제2 태스크의 입력 데이터를 획득하는 것 중의 적어도 하나를 수행하는데 사용되는 것을 특징으로 하는 장치.
  13. 제8항에 있어서,
    상기 태스크 사이의 논리 처리의 관련 정보는,
    제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건; 여기서, 상기 기설정 조건은 제1 태스크의 상태 및/또는 출력 데이터와 관련되며; 및
    제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의 중의 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  14. 제13항에 있어서,
    상기 처리 모듈은,
    제1 태스크 다음에 제2 태스크를 수행함에 있어서 만족시켜야 할 기설정 조건에 기반하여, 애플리케이션에서의 제1 태스크의 상태 및/또는 출력 데이터가 기설정 조건을 만족시키는지 여부를 판정하고, 판정 결과에 기반하여 제2 태스크 수행 여부를 확정하는 것;
    제1 태스크가 출력 데이터를 획득한 후 수행해야 할 적어도 하나의 다음 태스크의 정의에 기반하여, 애플리케이션에서의 제1 태스크를 완성한 후 수행해야 할 적어도 하나의 다음 태스크를 제어하는 것 중의 적어도 하나를 수행하는데 사용되는 것을 특징으로 하는 장치.
  15. 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결된 메모리를 포함하는 전자기기에 있어서,
    상기 메모리에는 상기 적어도 하나의 프로세서에 의해 실행 가능한 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제7항 중 임의의 한 항에 따른 방법을 수행할 수 있도록 하는 것을 특징으로 하는 전자기기.
  16. 컴퓨터 명령이 저장된 비일시적 컴퓨터 판독 가능 저장매체에 있어서,
    상기 컴퓨터 명령은 상기 컴퓨터로 하여금 제1항 내지 제7항 중 임의의 한 항에 따른 방법을 수행하도록 하는 것을 특징으로 하는 비일시적 컴퓨터 판독 가능 저장매체.
  17. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램 중의 명령이 프로세서에 의해 실행될 경우, 제1항 내지 제7항 중 어느 한 항의 방법을 구현하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램.
KR1020210038369A 2020-06-16 2021-03-24 애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램 KR20210040332A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010549956.2 2020-06-16
CN202010549956.2A CN111708520B (zh) 2020-06-16 2020-06-16 应用构建方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
KR20210040332A true KR20210040332A (ko) 2021-04-13

Family

ID=72540715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210038369A KR20210040332A (ko) 2020-06-16 2021-03-24 애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램

Country Status (5)

Country Link
US (1) US20210389981A1 (ko)
EP (1) EP3816791A3 (ko)
JP (1) JP2021170335A (ko)
KR (1) KR20210040332A (ko)
CN (1) CN111708520B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576534A (zh) * 2022-09-30 2023-01-06 北京百度网讯科技有限公司 原子服务的编排方法、装置、电子设备及存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111190396A (zh) * 2018-11-15 2020-05-22 西门子(中国)有限公司 应用配置装置和方法
CN112527474B (zh) * 2020-12-10 2023-07-25 北京百度网讯科技有限公司 任务处理方法及装置、设备、可读介质、计算机程序产品
CN112764764A (zh) * 2020-12-31 2021-05-07 成都佳华物链云科技有限公司 场景模型部署方法、装置、设备及存储介质
CN113098966B (zh) * 2021-04-01 2023-03-07 广东三维家信息科技有限公司 基于跨标签页的模型复制方法、装置、终端设备及存储介质
CN114595067A (zh) * 2022-03-18 2022-06-07 北京百度网讯科技有限公司 工作流节点的执行方法、装置、设备以及存储介质
CN115080509A (zh) * 2022-06-10 2022-09-20 北京达佳互联信息技术有限公司 一种数据处理方法、装置、电子设备及存储介质
CN117608810B (zh) * 2024-01-18 2024-04-30 腾讯科技(深圳)有限公司 服务处理方法、装置、电子设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130339930A1 (en) * 2012-06-18 2013-12-19 South Dakota Board Of Regents Model-based test code generation for software testing
US9952899B2 (en) * 2014-10-09 2018-04-24 Google Llc Automatically generating execution sequences for workflows
US20180018610A1 (en) * 2016-07-14 2018-01-18 Lendinghome Corp. Systems and methods for optimizing parallel task completion
EP3475888A1 (en) * 2016-08-22 2019-05-01 Oracle International Corporation System and method for ontology induction through statistical profiling and reference schema matching
US20180189035A1 (en) * 2016-12-29 2018-07-05 TechRev, LLC Application development tool using graphic objects to bind object sets of different distinct divisions of a design pattern
US20180189033A1 (en) * 2016-12-29 2018-07-05 TechRev, LLC Graphical software meta-development tool
CN108279890B (zh) * 2017-01-06 2021-12-24 阿里巴巴集团控股有限公司 组件发布方法、组件构建方法及图形化机器学习算法平台
US20180300653A1 (en) * 2017-04-18 2018-10-18 Distributed Systems, Inc. Distributed Machine Learning System
US10606566B2 (en) * 2017-06-03 2020-03-31 Apple Inc. Integration of learning models into a software development system
US10372479B2 (en) * 2017-08-09 2019-08-06 International Business Machines Corporation Scheduling framework for tightly coupled jobs
JP7059696B2 (ja) * 2018-03-02 2022-04-26 株式会社リコー 機器、情報処理システム、情報処理方法及びプログラム
US10990900B2 (en) * 2018-04-09 2021-04-27 Veda Data Solutions, Inc. Scheduling machine learning tasks, and applications thereof
US11263533B2 (en) * 2018-07-12 2022-03-01 Sap Portals Israel Ltd. Dynamic configurable rule representation
CN109325541A (zh) * 2018-09-30 2019-02-12 北京字节跳动网络技术有限公司 用于训练模型的方法和装置
CN109375912B (zh) * 2018-10-18 2021-09-21 腾讯科技(北京)有限公司 模型序列化方法、装置及存储介质
CN110308902B (zh) * 2019-06-28 2023-10-03 百度在线网络技术(北京)有限公司 文件生成方法、装置、设备和存储介质
CN110689124A (zh) * 2019-09-30 2020-01-14 北京九章云极科技有限公司 一种构建神经网络模型的方法及系统
CN110888720A (zh) * 2019-10-08 2020-03-17 北京百度网讯科技有限公司 任务处理方法、装置、计算机设备及存储介质
US20210133622A1 (en) * 2019-10-31 2021-05-06 International Business Machines Corporation Ml-based event handling
CN111078315B (zh) * 2019-12-12 2020-12-08 拉扎斯网络科技(上海)有限公司 微服务编排、执行方法及系统、架构、设备、存储介质
CN111125451B (zh) * 2019-12-25 2023-07-21 北京百度网讯科技有限公司 数据生产加工方法、装置、电子设备及存储介质
US11132226B2 (en) * 2020-01-03 2021-09-28 International Business Machines Corporation Parallel resource provisioning

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115576534A (zh) * 2022-09-30 2023-01-06 北京百度网讯科技有限公司 原子服务的编排方法、装置、电子设备及存储介质
CN115576534B (zh) * 2022-09-30 2024-02-20 北京百度网讯科技有限公司 原子服务的编排方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111708520B (zh) 2023-08-29
CN111708520A (zh) 2020-09-25
EP3816791A2 (en) 2021-05-05
US20210389981A1 (en) 2021-12-16
JP2021170335A (ja) 2021-10-28
EP3816791A3 (en) 2021-08-18

Similar Documents

Publication Publication Date Title
KR20210040332A (ko) 애플리케이션 구축 방법, 장치, 전자기기, 저장매체 및 컴퓨터 프로그램
US20210390428A1 (en) Method, apparatus, device and storage medium for training model
EP3828719A2 (en) Method and apparatus for generating model for representing heterogeneous graph node, electronic device, storage medium, and computer program product
US11403468B2 (en) Method and apparatus for generating vector representation of text, and related computer device
US11445008B2 (en) Data processing methods, electronic devices, and storage media
CN107454954B (zh) 数据绑定相关性分析
US20090282384A1 (en) Framework-Based Model-Driven Software Development
CN106164867A (zh) 数据的增量并行处理
JP2021099798A (ja) 構造化処理方法、装置、コンピュータ機器及び媒体
US20210118409A1 (en) Rendering method and apparatus, electronic device and storage medium
KR20220004807A (ko) 태깅 툴 생성 방법, 태깅 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램
CN110532487B (zh) 标签的生成方法及装置
CN112506854B (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN111158666A (zh) 实体归一化处理方法、装置、设备及存储介质
CN112506479A (zh) 页面编辑的方法、装置、设备以及存储介质
US20220101216A1 (en) Business Content Output Method, Apparatus, Storage Medium and Program Product
KR102505002B1 (ko) 코드 재사용 처리 방법, 장치, 전자 기기, 컴퓨터 판독 가능 저장 매체 및 컴퓨터 프로그램
CN109800090A (zh) 一种数据集成系统及方法
KR20210037631A (ko) 사용자 app 관심을 임베딩하는 방법, 장치, 기기, 저장 매체 및 프로그램
CN111026916B (zh) 文本描述的转换方法、装置、电子设备及存储介质
WO2016201813A1 (zh) 一种基于Android的动态布局方法及系统
US11977850B2 (en) Method for dialogue processing, electronic device and storage medium
EP3958183A1 (en) Deep learning model adaptation method and apparatus and electronic device
JP7146986B2 (ja) 情報抽出方法、情報抽出装置及び電子機器
US10360701B2 (en) Integrated visualization

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application