KR20190076212A - 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치 - Google Patents
도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치 Download PDFInfo
- Publication number
- KR20190076212A KR20190076212A KR1020170177820A KR20170177820A KR20190076212A KR 20190076212 A KR20190076212 A KR 20190076212A KR 1020170177820 A KR1020170177820 A KR 1020170177820A KR 20170177820 A KR20170177820 A KR 20170177820A KR 20190076212 A KR20190076212 A KR 20190076212A
- Authority
- KR
- South Korea
- Prior art keywords
- deep learning
- server
- providing
- development platform
- cloud computing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치가 개시된다. 일 실시예에 따른 딥러닝 개발 플랫폼 제공 방법은, 객체로부터 딥러닝과 관련된 서비스 요청을 수신하는 단계와, 상기 서비스 요청에 응답하여 도커(Docker) 이미지를 생성하는 단계와, 상기 도커 이미지에 기초하여 딥러닝 서버 상에 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계를 포함한다.
Description
아래 실시예들은 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치에 관한 것이다.
PaaS(Platform as a Service)란 개발을 위한 별도의 플랫폼을 구축할 필요 없이 필요한 요소들을 사용 가능한 환경을 구축하고 제공하는 모델이다. PaaS를 이용하면 관련된 인프라(미들웨어, 소프트웨어 등)를 관리하는 복잡함 없이 사용자가 어플리케이션을 개발하고 관리할 수 있다.
클라우드 파운드리(Cloud Foundry)란 VMWare가 주도해서 만들고 있는 오픈 PaaS 플랫폼이다. 클라우드 파운드리를 이용하면 개발 기간을 줄이고, 운영 및 관리를 간소화활 수 있다.
오픈 PaaS란 클라우드 기반의 가상 환경에서 소프트웨어를 테스트하고 실행할 수 있는 환경을 제공하는 서비스이다. 오픈 PaaS는 개발에 필요한 여러 프로그래밍 언어와 프레임워크를 클라우드를 기반으로 제공한다.
사용자는 이러한 클라우드 파운드리를 활용하여 자신만의 PaaS 환경을 만들 수 있다.
실시예들은 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼을 제공하는 기술을 제공할 수 있다.
일 실시예에 따른 딥러닝 개발 플랫폼 제공 방법은, 객체로부터 딥러닝과 관련된 서비스 요청을 수신하는 단계와, 상기 서비스 요청에 응답하여 도커(Docker) 이미지를 생성하는 단계와, 상기 도커 이미지에 기초하여 딥러닝 서버 상에 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계를 포함한다.
상기 도커 이미지를 생성하는 단계는, DSL(Domain Specific Language)로 상기 서비스 요청에 대응되는 도커 파일(Docker file)을 생성하는 단계를 포함할 수 있다.
상기 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계는, 상기 가상화된 클라우드 컴퓨팅 환경을 상기 서비스 요청에 대응되는 복수의 컨테이너로 분할하는 단계를 포함할 수 있다.
상기 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계는, 상기 컨테이너를 이용하여 상기 객체에 GPU(Graphics Processing Unit) 서버 환경을 제공하는 단계를 더 포함할 수 있다.
상기 제공하는 단계는, 상기 컨테이너에 그래픽 카드를 연동하여 GPU 서버 환경을 제공하는 단계를 포함할 수 있다.
상기 그래픽 카드는, NVIDIA 그래픽 카드 및 AMD 그래픽 카드를 포함할 수 있다.
상기 딥러닝 개발 플랫폼 제공 방법은, 상기 객체와 상기 가상화된 클라우드 컴퓨팅 환경을 바인딩(binding)하는 단계를 더 포함할 수 있다.
상기 딥러닝 개발 플랫폼 제공 방법은, 상기 객체가 상기 가상화된 클라우드 컴퓨팅 환경을 통해 딥러닝 어플레이케이션을 배포하는 단계를 더 포함할 수 있다.
일 실시예에 따른 딥러닝 개발 플랫폼 제공 장치는, 객체로부터 딥러닝과 관련된 서비스 요청을 수신하는 플랫폼 서버와, 상기 서비스 요청에 응답하여 도커(Docker) 이미지를 생성하는 도커와, 상기 도커 이미지에 기초하여 가상화된 클라우드 컴퓨팅 환경을 생성하는 딥러닝 서버를 포함한다.
상기 도커는, DSL(Domain Specific Language)로 상기 서비스 요청에 대응되는 도커 파일(Docker file)을 생성할 수 있다.
상기 딥러닝 서버는, 상기 가상화된 클라우드 컴퓨팅 환경을 상기 서비스 요청에 대응되는 복수의 컨테이너로 분할할 수 있다.
상기 딥러닝 서버는, 상기 컨테이너를 이용하여 상기 객체에 GPU(Graphics Processing Unit) 서버 환경을 제공할 수 있다.
상기 딥러닝 서버는, 상기 컨테이너에 그래픽 카드를 연동하여 GPU 서버 환경을 제공할 수 있다.
상기 그래픽 카드는, NVIDIA 그래픽 카드 및 AMD 그래픽 카드를 포함할 수 있다.
상기 플랫폼 서버는, 상기 객체와 상기 가상화된 클라우드 컴퓨팅 환경을 바인딩(binding)할 수 있다.
상기 플랫폼 서버는, 상기 객체가 상기 가상화된 클라우드 컴퓨팅 환경을 통해 딥러닝 어플레이케이션을 배포할 수 있다.
도 1은 일 실시예에 따른 딥러닝 개발 플랫폼 제공 시스템의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 딥러닝 개발 플랫폼 제공 장치의 개략적인 블록도를 나타낸다.
도 3은 도 2에 도시된 딥러닝 개발 플랫폼 제공 장치의 동작의 일 예를 나타낸다.
도 4는 도 2에 도시된 딥러닝 개발 플랫폼 제공 장치의 동작의 다른 예를 나타낸다.
도 2는 도 1에 도시된 딥러닝 개발 플랫폼 제공 장치의 개략적인 블록도를 나타낸다.
도 3은 도 2에 도시된 딥러닝 개발 플랫폼 제공 장치의 동작의 일 예를 나타낸다.
도 4는 도 2에 도시된 딥러닝 개발 플랫폼 제공 장치의 동작의 다른 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 딥러닝 개발 플랫폼 제공 시스템의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 딥러닝 개발 플랫폼 제공 시스템(10)은 딥러닝 개발 플랫폼 제공 장치(200)를 통해서 객체(100)에게 딥러닝 개발 환경을 제공할 수 있다. 딥러닝 개발 플랫폼 제공 시스템(10)은 객체(100)가 하드웨어 인프라를 보유하고 있지 않은 상태에서도 통신망을 통해서 객체(100)에게 딥러닝 개발 환경을 제공할 수 있다.
객체(100)는 클라우드 컴퓨팅을 이용하여 딥러닝 플랫폼을 이용하고자 하는 개발자 및 어플리케이션을 포함할 수 있다.
딥러닝 개발 플랫폼 제공 시스템(10)은 객체(100)가 딥러닝 개발을 위한 별도의 플랫폼을 구축할 필요 없이, 딥러닝 개발에 필요한 요소들을 제공할 수 있는 가상 환경을 구축하고 제공할 수 있다.
딥러닝 개발 플랫폼 제공 시스템(10)을 통해서 객체(100)는 미들웨어나 소프트웨어 등을 관리하는 복잡함 없이 딥러닝 어플리케이션을 개발하고 관리할 수 있다.
딥러닝 개발 플랫폼 제공 시스템(10)은 객체(100)의 수요에 따라 자동으로 확장될 수 있고, 딥러닝 어플리케이션의 개발과 배포 작업을 자동화시켜 제공할 수 있다. 이에 따라, 딥러닝 개발 플랫폼 제공 시스템(10)은 딥러닝 어플리케이션의 개발 시간을 단축시킬 수 있다.
객체(100)는 딥러닝 개발 플랫폼 제공 시스템(10)을 통해서 플랫폼이나 하드웨어에 대한 관리 없이 자신이 개발하고자 하는 딥러닝 응용 프로그램과 서비스만 관리할 수 있다.
딥러닝 개발 플랫폼 제공 시스템(10)은 플랫폼을 관리할 수 있는 인프라 관리 시스템을 사용할 수 있다.
딥러닝 개발 플랫폼 제공 장치(200)는 객체(100)로부터 딥러닝과 관련된 서비스 요청을 수신하고, 도커를 통해서 요청된 서비스에 적합한 가상화된 클라우드 컴퓨팅 환경을 생성할 수 있다.
도 2는 도 1에 도시된 딥러닝 개발 플랫폼 제공 장치의 개략적인 블록도를 나타낸다. 딥러닝 개발 플랫폼 제공 장치(200)는 플랫폼 서버(210), 도커(230) 및 딥러닝 서버(250)을 포함할 수 있다.
플랫폼 서버(210)는 객체로부터 딥러닝과 관련된 서비스 요청을 수신할 수 있다. 플랫폼 서버(210)는 도커(230)에 요청된 서비스에 관한 정보를 출력할 수 있다.
플랫폼 서버(210)는 객체(100)로부터 새로운 서비스 요청을 수신하는 경우 이에 적합한 도커(230)에 새로운 요청과 관련된 정보를 출력할 수 있다.
플랫폼 서버(210)는 객체와 가상화된 클라우드 컴퓨팅 환경을 바인딩(binding)할 수 있다. 플랫폼 서버(210)는 객체가 가상화된 클라우드 컴퓨팅 환경을 통해 딥러닝 어플레이케이션을 배포할 수 있다.
도커(230)는 서비스 요청에 응답하여 도커(Docker) 이미지를 생성할 수 있다. 도커(230)는 DSL(Domain Specific Language)로 서비스 요청에 대응되는 도커 파일(Docker file)을 생성할 수 있다.
도커(230)는 객체(100)로부터 요청된 서비스에 응답하여 딥러닝 서버(250)에 도커 이미지를 출력할 수 있다. 도커 이미지는 컨테이너를 실행하기 위한 정보를 포함할 수 있다.
딥러닝 서버(250)는 도커 이미지에 기초하여 가상화된 클라우드 컴퓨팅 환경을 생성할 수 있다. 딥러닝 서버(250)는 가상화된 클라우드 컴퓨팅 환경을 서비스 요청에 대응되는 복수의 컨테이너로 분할할 수 있다. 각 컨테이너들은 객체(100)가 요청한 서비스에 적합한 독립적인 컴퓨터 환경을 제공할 수 있다.
컨테이너란 어플리케이션이 실행될 수 있는 가상의 운영 시스템을 의미할 수 있다.
딥러닝 서버(250)는 컨테이너를 이용하여 상기 객체에 GPU(Graphics Processing Unit) 서버 환경을 제공할 수 있다.
딥러닝 서버(250)는 컨테이너에 그래픽 카드를 연동하여 GPU 서버 환경을 제공할 수 있다. 예를 들어, 그래픽 카드는 NVIDIA 그래픽 카드 및 AMD 그래픽 카드를 포함할 수 있다.
도 3은 도 2에 도시된 딥러닝 개발 플랫폼 제공 장치의 동작의 일 예를 나타내고, 도 4는 도 2에 도시된 딥러닝 개발 플랫폼 제공 장치의 동작의 다른 예를 나타낸다.
도 3 및 도 4를 참조하면, 플랫폼 서버(210)는 객체(100)에게 사용자 인터페이스를 제공하여 객체(100)로 하여금 딥러닝 플랫폼 서비스를 이용하게 할 수 있다.
플랫폼 서버(210)는 객체(100)에게 개인 계정 공간을 제공할 수 있다. 객체(100)는 플랫폼 서버(210)의 개인 계정 공간을 이용하여 딥러닝 어플리케이션을 개발하고, 이를 배포할 수 있다.
또한, 플랫폼 서버(210) 다양한 개발 언어 및 개발 환경을 제공할 수 있다. 객체(100)는 플랫폼 서버(210)가 제공하는 프로그래밍 언어를 이용하여 코드를 작성하여 PaaS 환경에서 자신만의 어플리케이션을 생성할 수 있다. 프로그래밍 언어는 베이직, C, C#, C++, D, F#, 파이썬, 루비, 자바, 파스칼, 프롤로그, 포트란, 코볼, 리스프, 펄, R, 그루비, 스칼라, occam, Swift 및 HTML 등을 포함할 수 있다.
객체(100)는 플랫폼 서버(210)가 제공하는 개발 언어 및 환경을 통해 인터넷에 접속할 수 있는 최소한의 장치만을 이용하여 어플리케이션을 수정하고 배포할 수 있다.
플랫폼 서버(210)는 어플리케이션을 배포, 운영할 수 있다. 플랫폼 서버(210)는 폭 넓은 런타임을 제공하고 프레임워크 및 서비스를 선택할 수 있는 자유를 제공할 수 있다.
플랫폼 서버(210)는 특정 클라우드 환경에 종속되지 않고, 자유로운 선택과 다양성을 보장할 수 있다. 또한, 플랫폼 서버(210)는 새롭게 추가되는 기술 및 서비스에 대해 확장될 수 있다. 플랫폼 서버(210)는 퍼블릭 클라우드 또는 프라이빗 클라우드를 구축하는데 이용될 수 있다. 플랫폼 서버 (210)는 객체(100)가 작성한 코드를 여러 환경에 쉽게 이식할 수 있다.
플랫폼 서버(210)는 객체(100)의 서비스 요청에 따라 이에 적합한 딥러닝 서버(250)를 바인딩할 수 있다. 플랫폼 서버(210)는 컨테이너를 관리하고 컨테이너와 통신할 수 있다. 플랫폼 서버(210)는 생성된 컨테이너들의 네트워크를 설정할 수 있다.
플랫폼 서버(210)는 객체(100)의 서비스를 요청에 응답하여 서비스에 적합한 개발 환경을 제공할 수 있는 컨테이너들을 객체(100)와 바인딩할 수 있다. 컨테이너가 제공하는 개발 환경은 GPU(Graphics Processing Unit) 서비스, 스토리지(storage) 서비스를 포함할 수 있다.
플랫폼 서버(210)는 객체(100)가 요청한 서비스를 제공할 수 있는 딥러닝 서버(250)를 검색해서 컨테이너(또는 인스턴스(instance))를 생성할 수 있다. 플랫폼 서버(210)는 객체(100)와 컨테이너를 바인딩하여 객체(100)가 요청한 서비스를 제공할 수 있다. 바인딩이 완료되면 플랫폼 서버(210)를 거치지 않고 객체(100)가 컨테이너와 직접 통신할 수 있다.
플랫폼 서버(210)는 클라우드 컨트롤러를 포함할 수 있다. 클라우드 컨트롤러는 서비스를 제공하는 딥러닝 서버(250)에 포함된 보쉬(bosh)가 가지는 고유한 URL(Uniform Resource Locator)을 통해 서비스 브로커(service broker)에 접근할 수 있다.
플랫폼 서버(210)는 서비스 브로커를 생성할 수 있다. 플랫폼 서버(210)는 서비스 플랜을 정의하여 서비스에 저장하고 플랜에 맞게 서비스 인스턴스를 생성하도록 딥러닝 서버(250)를 제어할 수 있다. 플랫폼 서버(210)는 사용할 서비스를 정의하고, 바인딩 여부를 결정할 수 있다. 플랫폼 서버(210)는 정의한 서비스를 JSON(JavaScript Object Notation) 형태로 변환할 수 있다. 플랫폼 서버(210)는 파이썬 플라스크의 루트 방법(method)를 사용하여 카탈로그 정보를 URL 형식으로 등록할 수 있다.
플랫폼 서버(210)는 객체(100)의 서비스 요청에 응답하여 서비스 브로커API(Application Programming Interface)를 제어할 수 있다.
도 3의 예시와 같이 서비스 브로커 API는 플랫폼 서버(210) 내부에 구현되거나, 도 3과 달리 딥러닝 서버(250) 내부에 구현될 수도 있다.
서비스 브로커는 서비스 인스턴스를 관리할 수 있다. 서비스 브로커는 플랫폼 서버(210)의 요청에 따라 인스턴스를 생성하거나, 삭제할 수 있다. 서비스 브로커는 인스턴스를 플랫폼 서버(210)의 객체(100) 개발 환경과 바인딩하거나 기존의 바인딩을 해제할 수 있다. 서비스 브로커는 서비스 브로커 API에 정해놓은 규약대로 HTTP(HyperText Transfer Protocol) 요청(request) 형식으로 통신할 수 있다.
서비스 브로커 API는 플랫폼 서버(210)로부터 서비스 브로커의 URL을 획득하여 HTTP 요청 형식으로 코드를 작성할 수 있다. 서비스 브로커 API는 클라우드 컨트롤러를 통해 수신된 서비스 요청에 응답하여 딥러닝 서버(250)에 서비스 인스턴스를 생성하도록 요청할 수 있다. 서비스 브로커 API는 객체(100) 개발환경과 서비스 인스턴스를 바인딩할 수 있다.
클라우드 컨트롤러는 서비스 브로커 API 규약을 준수하며 서비스 인스턴스(또는 컨테이너)를 요청할 수 있다. 딥러닝 서버(250)의 보쉬는 생성된 서비스 인스턴스를 이용하여 서비스 브로커가 수신한 요청을 수행할 수 있다.
플랫폼 서버(210)는 서비스 브로커를 생성하기 위한 코드를 보쉬에 업로드 할 수 있다. 플랫폼 서버(210)는 서비스 브로커의 카탈로그를 정의하고 등록하여 URL로 접근 가능하도록 서비스 브로커를 오픈할 수 있다.
플랫폼 서버(210)는 객체(100)의 서비스 요청이나 객체(100) 인증 등의 요청이 발생했을 때 적절한 컴포넌트(인증이나 서비스 레이어)로 라우팅을 수행할 수 있다. 플랫폼 서버(210)는 클라우드 컴퓨팅 서버(210)에 접속하는 객체(100)의 인증을 수행할 수 있다. 플랫폼 서버(210)는 클라우드 컨트롤러를 통해 복수의 보쉬에 서비스나 인증에 관한 요청을 수행하고 그 결과를 반환 받을 수 있다.
플랫폼 서버(210)는 어플리케이션 개발환경을 생성하여 저장하고 관리할 수 있다. 플랫폼 서버(210)에 포함된 디에고 셀(Diego Cell)은 서비스를 제공하는 보쉬의 어플리케이션을 실행할 수도 있다.
플랫폼 서버(210)는 서비스 브로커를 이용하여 서비스 인스턴스들을 연결하고 관리할 수 있다. 플랫폼 서버(210)는 플랫폼 서버(210)의 내부 통신을 NATs 메시지 버스(message bus)를 이용하여 제어할 수 있다. 플랫폼 서버(210)는 플랫폼 서버(210) 내부의 동작들을 로깅할 수 있다.
도커(230)는 도 4의 예시와 같이 딥러닝 서버(250) 내부에 구현되거나, 도 4와 달리 딥러닝 서버(250) 외부에 구현될 수도 있다.
딥러닝 서버(250)는 서드 파티 시스템으로 동작할 수 있다. 딥러닝 서버(250)는 GPU 서버 환경을 확장 및 수정할 수 있다.
딥러닝 서버(250)는 플랫폼 서버(210)를 통해서 복수의 객체(100)에게 개별적인 딥러닝 개발 공간을 제공할 수 있다. 예를 들어, 딥러닝 서버(250)는 YOLO(You Only Look Once) 개발 환경 및 CNN(Convolution Neural Network) 개발 환경을 제공할 수 있다.
딥러닝 서버(250)는 도커(230)의 제어에 따라 컨테이너(container)를 생성 및 삭제할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (16)
- 객체로부터 딥러닝과 관련된 서비스 요청을 수신하는 단계;
상기 서비스 요청에 응답하여 도커(Docker) 이미지를 생성하는 단계; 및
상기 도커 이미지에 기초하여 딥러닝 서버 상에 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 제1항에 있어서,
상기 도커 이미지를 생성하는 단계는,
DSL(Domain Specific Language)로 상기 서비스 요청에 대응되는 도커 파일(Docker file)을 생성하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 제1항에 있어서,
상기 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계는,
상기 가상화된 클라우드 컴퓨팅 환경을 상기 서비스 요청에 대응되는 복수의 컨테이너로 분할하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 제3항에 있어서,
상기 가상화된 클라우드 컴퓨팅 환경을 생성하는 단계는,
상기 컨테이너를 이용하여 상기 객체에 GPU(Graphics Processing Unit) 서버 환경을 제공하는 단계
를 더 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 제4항에 있어서,
상기 제공하는 단계는,
상기 컨테이너에 그래픽 카드를 연동하여 GPU 서버 환경을 제공하는 단계
를 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 제5항에 있어서,
상기 그래픽 카드는,
NVIDIA 그래픽 카드 및 AMD 그래픽 카드를 포함하는
딥러닝 개발 플랫폼 제공 방법.
- 제1항에 있어서,
상기 객체와 상기 가상화된 클라우드 컴퓨팅 환경을 바인딩(binding)하는 단계
를 더 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 제1항에 있어서,
상기 객체가 상기 가상화된 클라우드 컴퓨팅 환경을 통해 딥러닝 어플레이케이션을 배포하는 단계
를 더 포함하는 딥러닝 개발 플랫폼 제공 방법.
- 객체로부터 딥러닝과 관련된 서비스 요청을 수신하는 플랫폼 서버;
상기 서비스 요청에 응답하여 도커(Docker) 이미지를 생성하는 도커; 및
상기 도커 이미지에 기초하여 가상화된 클라우드 컴퓨팅 환경을 생성하는 딥러닝 서버
를 포함하는 딥러닝 개발 플랫폼 제공 장치.
- 제9항에 있어서,
상기 도커는,
DSL(Domain Specific Language)로 상기 서비스 요청에 대응되는 도커 파일(Docker file)을 생성하는
딥러닝 개발 플랫폼 제공 장치.
- 제9항에 있어서,
상기 딥러닝 서버는,
상기 가상화된 클라우드 컴퓨팅 환경을 상기 서비스 요청에 대응되는 복수의 컨테이너로 분할하는
딥러닝 개발 플랫폼 제공 장치.
- 제11항에 있어서,
상기 딥러닝 서버는,
상기 컨테이너를 이용하여 상기 객체에 GPU(Graphics Processing Unit) 서버 환경을 제공하는
딥러닝 개발 플랫폼 제공 장치.
- 제12항에 있어서,
상기 딥러닝 서버는,
상기 컨테이너에 그래픽 카드를 연동하여 GPU 서버 환경을 제공하는
딥러닝 개발 플랫폼 제공 장치.
- 제13항에 있어서,
상기 그래픽 카드는,
NVIDIA 그래픽 카드 및 AMD 그래픽 카드를 포함하는
딥러닝 개발 플랫폼 제공 장치.
- 제9항에 있어서,
상기 플랫폼 서버는,
상기 객체와 상기 가상화된 클라우드 컴퓨팅 환경을 바인딩(binding)하는
딥러닝 개발 플랫폼 제공 장치.
- 제9항에 있어서,
상기 플랫폼 서버는,
상기 객체가 상기 가상화된 클라우드 컴퓨팅 환경을 통해 딥러닝 어플레이케이션을 배포하는
딥러닝 개발 플랫폼 제공 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170177820A KR102146602B1 (ko) | 2017-12-22 | 2017-12-22 | 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170177820A KR102146602B1 (ko) | 2017-12-22 | 2017-12-22 | 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190076212A true KR20190076212A (ko) | 2019-07-02 |
KR102146602B1 KR102146602B1 (ko) | 2020-08-20 |
Family
ID=67258005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170177820A KR102146602B1 (ko) | 2017-12-22 | 2017-12-22 | 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102146602B1 (ko) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102100323B1 (ko) * | 2019-11-01 | 2020-04-13 | 주식회사 엔쓰리엔클라우드 | 머신러닝 플랫폼 서비스 방법 및 서버 |
KR102140730B1 (ko) * | 2019-12-17 | 2020-08-04 | (주) 씨이랩 | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 |
KR102186127B1 (ko) * | 2020-05-11 | 2020-12-03 | (주)케이엔비씨 | 해킹 방지용 모의 훈련 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램 |
EP3817339A3 (en) * | 2020-06-30 | 2021-05-19 | Beijing Baidu Netcom Science And Technology Co. Ltd. | Method and system for management of an artificial intelligence development platform |
WO2021096053A1 (ko) * | 2019-11-15 | 2021-05-20 | 한국전자기술연구원 | 클라우드 기반 서버리스 플랫폼에서의 실시간성 서비스 제공 방법 |
KR20210057648A (ko) * | 2019-11-12 | 2021-05-21 | 건국대학교 산학협력단 | 딥러닝 라이브러리를 자동으로 관리하는 방법 및 이를 수행하는 장치들 |
WO2023023696A1 (en) * | 2021-08-24 | 2023-03-02 | Radian Arc Limited | A computer system and computer implemented method for gaming in a virtualisation environment |
WO2024034876A1 (ko) * | 2022-08-10 | 2024-02-15 | 충남대학교산학협력단 | 약동력학 연구를 위한 r언어와 도커를 활용한 컨테이너 기반 비선형 모수 최적화 시스템 |
US12026493B2 (en) | 2021-09-17 | 2024-07-02 | Electronics And Telecommunications Research Institute | Docker image creation apparatus and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170213156A1 (en) * | 2016-01-27 | 2017-07-27 | Bonsai AI, Inc. | Artificial intelligence engine having multiple independent processes on a cloud based platform configured to scale |
KR20170107431A (ko) * | 2014-11-25 | 2017-09-25 | 어스0 인코포레이티드 | 서버 요청에서 캡슐화된 코드를 통한 멀티테넌시 |
-
2017
- 2017-12-22 KR KR1020170177820A patent/KR102146602B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170107431A (ko) * | 2014-11-25 | 2017-09-25 | 어스0 인코포레이티드 | 서버 요청에서 캡슐화된 코드를 통한 멀티테넌시 |
US20170213156A1 (en) * | 2016-01-27 | 2017-07-27 | Bonsai AI, Inc. | Artificial intelligence engine having multiple independent processes on a cloud based platform configured to scale |
Non-Patent Citations (1)
Title |
---|
Iain Emsley et al, "A Framework for the Preservation of a Docker Container", The 12th International Digital Curation Conference(2017.02.) * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102100323B1 (ko) * | 2019-11-01 | 2020-04-13 | 주식회사 엔쓰리엔클라우드 | 머신러닝 플랫폼 서비스 방법 및 서버 |
KR20210057648A (ko) * | 2019-11-12 | 2021-05-21 | 건국대학교 산학협력단 | 딥러닝 라이브러리를 자동으로 관리하는 방법 및 이를 수행하는 장치들 |
WO2021096053A1 (ko) * | 2019-11-15 | 2021-05-20 | 한국전자기술연구원 | 클라우드 기반 서버리스 플랫폼에서의 실시간성 서비스 제공 방법 |
KR102140730B1 (ko) * | 2019-12-17 | 2020-08-04 | (주) 씨이랩 | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 |
KR102186127B1 (ko) * | 2020-05-11 | 2020-12-03 | (주)케이엔비씨 | 해킹 방지용 모의 훈련 방법, 이를 구현하기 위한 프로그램이 저장된 기록매체 및 이를 구현하기 위해 매체에 저장된 컴퓨터프로그램 |
EP3817339A3 (en) * | 2020-06-30 | 2021-05-19 | Beijing Baidu Netcom Science And Technology Co. Ltd. | Method and system for management of an artificial intelligence development platform |
US11455173B2 (en) | 2020-06-30 | 2022-09-27 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Management of artificial intelligence development platform |
WO2023023696A1 (en) * | 2021-08-24 | 2023-03-02 | Radian Arc Limited | A computer system and computer implemented method for gaming in a virtualisation environment |
US12026493B2 (en) | 2021-09-17 | 2024-07-02 | Electronics And Telecommunications Research Institute | Docker image creation apparatus and method |
WO2024034876A1 (ko) * | 2022-08-10 | 2024-02-15 | 충남대학교산학협력단 | 약동력학 연구를 위한 r언어와 도커를 활용한 컨테이너 기반 비선형 모수 최적화 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR102146602B1 (ko) | 2020-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102146602B1 (ko) | 도커를 이용한 컨테이너 기반 딥러닝 개발 플랫폼 제공 방법 및 장치 | |
KR102319172B1 (ko) | 클라우드 컴퓨팅 기반의 플랫폼 제공 시스템 및 이를 이용한 플랫폼 제공 방법 | |
US10409654B2 (en) | Facilitating event-driven processing using unikernels | |
US9104514B2 (en) | Automated deployment of applications with tenant-isolation requirements | |
CN108140007B (zh) | 跨部署位置安全地部署应用程序 | |
US8843889B2 (en) | Managing application template artifacts in a networked computing environment | |
US8434070B2 (en) | Generating specifications of client-server applications for static analysis | |
KR20190069655A (ko) | 클라우드 컴퓨팅 기반 딥러닝 개발 플랫폼 제공 방법 장치 | |
US10191735B2 (en) | Language-independent program composition using containers | |
US20240020582A1 (en) | Parameter data sharing for multi-learner training of machine learning applications | |
US20120102474A1 (en) | Static analysis of client-server applications using framework independent specifications | |
US10838702B2 (en) | Analyzing and optimizing container images in cloud computing | |
US20180152392A1 (en) | Hybrid cloud management | |
US20130268937A1 (en) | Distributed processing system, scheduler node and scheduling method of distributed processing system, and program generation apparatus thereof | |
JP2016517120A (ja) | アプリケーション・プログラミング・インターフェースへのランタイム・アクセスの制御 | |
US9569249B1 (en) | Pattern design for heterogeneous environments | |
US12050690B2 (en) | Run-time communications protocol parameter adjustment in containerized applications | |
US8938712B2 (en) | Cross-platform virtual machine and method | |
US20190058640A1 (en) | Automatically orchestrating the compliance of cloud services to selected standards and policies | |
US11853749B2 (en) | Managing container images in groups | |
US11409564B2 (en) | Resource allocation for tuning hyperparameters of large-scale deep learning workloads | |
WO2020170049A1 (en) | Native code generation for cloud services | |
US10318559B2 (en) | Generation of graphical maps based on text content | |
US20140156252A1 (en) | Hybrid platform-dependent simulation interface | |
US20210397482A1 (en) | Methods and systems for building predictive data models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |