클라우드로부터의 탈출! 윈도우 10용 머신러닝 앱 구현된다

윈도우 10의 신버전 공개가 머지 않았다. 그와 함께 애플리케이션용 새 API도 많이 선보일 것이다. 큰 변화 중 하나는 다른 곳에서 훈련된 머신러닝 모델이 애플리케이션 형태로 실행되도록 지원하는 것이다. 또 이 과정에서 머신러닝 애플리케이션 가속화를 위해 로컬 GPU를 활용할 수도 있다.

머신러닝 애플리케이션을 구축하는 것은 복잡한 과정이다. 또 모델 훈련에 많은 데이터와 상당한 처리 성능이 필요하다. 클라우드 플랫폼과 넓은 대역폭을 이용할 수 있는 상황이라면 상관 없겠지만 만일 기트허브(GitHub)의 기존 모델을 취해 PC에서 실행하고 싶다면 어떨까?

‘훈련된 머신러닝 모델’은 신경 네트워크와 딥러닝의 장점을 애플리케이션에 활용하기에 이상적인 도구다. 적절한 인터페이스에 연결하기만 하면 코드의 일부로 실행되기 때문이다. 그러나 시중의 여러 머신러닝 프레임워크와 플랫폼을 감안하면 어떤 모델도 사용할 수 있는 공통 런타임이 필요하다. 이 때 새로운 윈도우 머신러닝 도구가 요긴하다. 윈도우 개발자들이 기존 머신러닝 모델을 자신의 애플리케이션에서 실행할 수 있게 해주는 플랫폼을 제공할 수 있기 때문이다

윈도우용 ONNX 소개
마이크로소프트는 ONNX(Open Neural Network Exchange) 형식을 지원한다. 플랫폼과 서비스 간에 딥러닝 모델을 공유하기 위한 공개 표준이다. ONNX가 있으면 클라우드 플랫폼이나 전용 머신러닝 시스템 상에서 유명 알고리즘을 이용해 신경망을 구축해 훈련시킬 수 있다. 일단 훈련이 되면 알고리즘을 다른 프레임워크에서, 아니면 윈도우 머신러닝을 PC 또는 심지어 IoT 기기 상의 애플리케이션의 일부로 실행시킬 수 있다.

ONNX는 현재 다양한 머신러닝 프레임워크를 지원한다. 예를 들면, 페이스북의 인기 있는 카페 2(Caffe 2), 파이썬(Python) 기반의 파이토치(PyTorch), 마이크로소프트의 코그니티브 툴킷(Cognitive Toolkit)(예전 이름은 CNTK) 등이다. 구글의 텐서플로우(TensorFlow)에 대한 직접적인 지원은 없지만 ONNX로서 내보내기를 하게 해 주는 비공식 커넥터를 구할 수 있다. 공식 가져오기/내보내기 도구는 현재 개발되는 중이다.

또 ONNX는 자체 런타임과 라이브러리를 제공한다. 따라서 사용자는 자신의 모델을 자신의 하드웨어에서 실행하면서 이미 보유 중인 가속기를 활용할 수 있다.

ONNX로 머신러닝 모델 변환
머신러닝 모델 구축 및 실행을 위해 애저 상에서 마이크로소프트 코그니티브 툴킷을 사용 중이라면 이미 ONNX에 접근할 수 있다. 2.3.1 이후 버전에는 모두 포함되어 있기 때문이다. AI용 비주얼 스튜디오(Visual Studio) 도구에도 곧 포함될 예정이다. 모델을 내보내기 위해서는 ONNX를 내보내기 형식으로 선택하기만 하면 된다. 파이썬이나 C# 코드 한 줄로 할 수 있는 일이다. 훈련 애플리케이션에 내보내기 명령문을 써 넣을 필요조차 없다. 애저 노트북(Azure Notebook)으로부터의 호출이나 애저 머신러닝 파이프라인의 명령문으로도 가능하기 때문이다.

마이크로소프트는 애플의 코어ML(Core ML)과 같은 다른 형식에서 ONNX로 모델을 변환할 수 있는 자체 도구도 제공한다. 마이크로소프트의 윈ML툴스(WinMLTools)는 파이썬 패키지이기 때문에 아나콘다(Anaconda)와 같은 기존 머신러닝 도구와 함께 사용할 수 있다. 익숙한 머신러닝 개발 환경에 통합함으로써 교차 플랫폼 데이터 과학기술과 윈도우 개발자를 결합시킬 수 있다. 이제 윈도우뿐 아니라 널리 사용되는 모바일 플랫폼에서 실행되는 똑같은 머신러닝 모델을 사용하는 것이다.

단 그리 간단한 일은 아니다. 이미지 출력을 제공하는 코어 ML 모델과의 작업에 문제가 있을 수 있다. ONNX는 이미지 종류를 직접 지원하지 않기 때문이다. 그러나 마이크로소프트의 윈ML툴스 설명서를 참고하면 ONNX 출력 텐서를 이미지 파일 모음에 매핑할 수 있다.

윈도우 애플리케이션에 머신러닝 추가
일단 내보내기가 된 모델은 윈도우의 새로운 머신러닝 플랫폼에서 실행 가능하다. 일단 가져오기가 된 훈련된 모델은 추가 훈련 없이도 새로운 데이터와 작업할 수 있다.

예를 들어 이미지 인식에 사용한다면 현장 작업자들은 자신의 노트북 또는 투인원(2-in-1)의 카메라를 이용해 문제를 파악하고 해결책을 찾을 수 있는 새로운 도구를 제공받는 셈이다. 연결성 문제가 있는 경우에는 센서나 다른 모니터링 도구에서 다운로드 받은 데이터에 대해 로컬 머신러닝 알고리즘을 실행 시킬 수 있다. 차량 부착 센서로부터 자동차 수리가 가능한 진단 도구 역할을 할 수도 있을 것이다.

다이렉트X(DirectX) 12에서 연산 GPU지원을 기반으로 한 윈도우 머신러닝은 대부분의 최신 PC하드웨어에서 실행 가능할 것이다. GPU가 없으면 CPU자원을 이용할 수 있다. 단, GPU를 병렬 처리 표면으로 사용함으로써 얻게 되는 성능의 이점은 많은 부분 잃게 된다. 퀄컴(Qualcomm) ARM 기기의 AI 코어로 작업하는 방법과 인텔의 플러그-인AI 코프로세서(co-processor)로 작업하는 방법도 있다.

현재 윈도우 머신러닝 지원이 가능한 곳은 비주얼 스튜디오 15.7 사전 공개판과 윈도우 10 SDK 윈도우 참가자 공개판이다. 머신러닝 처리를 위한 UWP 코드 작성은 간단하다. ONNX 모델을 비주얼 스튜디오 프로젝트로 내보내면 적절한 인터페이스와 클래스가 자동으로 생성되고 이를 해당 애플리케이션에 통합시키면 된다. C++이나 C#를 사용하는 경우에는, 윈도우 SDK의 도구인 mlgen이 래퍼 클래스(wrapper class)를 생성해 준다.

엣지에서의 머신러닝
윈도우 머신러닝은 전통적인 PC에서만 사용되는 것이 아니다. 마이크로소프트 CEO 사티아 나델라가 ‘인텔리전트 엣지’(intelligent edge)라고 부르는 곳으로 클라우드 애플리케이션을 이동시킬 수 있다는 사실은 다양한 종류의 기기로의 이동을 의미한다. 셀 타워(cell tower)에서 실행되는 일반 크기의 서버일 수도 있고 지점 서버나 데스크탑 PC와 비슷한 사양의 허브 기기일 수도 있으며 내장 프로세서를 사용하는 IoT 기기 자체일 수도 있다.

AMD는 최근 에픽(Epyc)과 라이젠(Ryzen) 프로세서의 내장 버전을 출시했다. 데스크톱 및 모바일 라이젠과 마찬가지로 내장 버전은 내장된 GPU상에 코드를 실행한다. 영국 출시 행사에서 한 개발자는 임베디드 라이젠을 활용한 카메라로 맥주병들을 스캔해 작업 결정을 내리는 시연을 진행했다. 여기에 사용된 머신러닝 모델은 보다 강력한 시스템에서 상당량의 이미지 데이터를 이용해 훈련된 것이었다. 훈련을 마친 후 내보내서 카메라로부터의 이미지 흐름을 분석하는 데 사용된 것이다.

애플리케이션 자체는 내장 리눅스(Linux) 상에서 실행 중이었지만 향후에 윈도우의 내장판이 나오는 것도 어렵지 않아 보인다. 이를테면 윈도우 10 IoT 엔터프라이즈(Windows 10 IoT Enterprise) 같은 것이 내장 라이젠 하드웨어에 비슷한 머신러닝 기능을 제공하는 식이다. ARM의 프로젝트 트릴리움(Project Trillium) 내장 머신러닝 프로세서에 대한 지원 옵션도 있다. 저성능 칩셋에 ARM의 자체 신경 네트워킹 소프트웨어를 실행할 수 있는 하드웨어를 내장시키는 것이다.

머신러닝을 클라우드 밖으로 가지고 나오는 것은 중요하고도 의미 있는 진전이다. 신속하게 반응해야 하는 애플리케이션의 지연을 없애주고 멀리 떨어진 사이트에서 클라우드 서버로 전송되는 데이터 양을 줄여주기 때문이다. 윈도우 머신러닝이 있으면 이들 기술을 사용해 복잡한 알고리즘을 본인 코드에 신속하게 추가함으로써 소프트웨어를 더욱 유능하고 유용하게 만들 수 있다. ciokr@idg.co.kr
 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
65 고난 앞에 오히려 강한 사람들이 가지고 있다는 이 습관 file 졸리운_곰 2020.05.23 210
64 '파이썬'의 인기가 떨어지면 어떤 개발 언어가 뜨게 될까. file 졸리운_곰 2020.04.23 200
63 8초 안에 청중의 귀를 사로잡는 '발표'의 황금법칙 file 졸리운_곰 2020.04.21 199
62 2020년이 디지털 인력 채용에 있어서 티핑 포인트가 되는 이유 file 졸리운_곰 2020.04.21 163
61 당신이 원격 근무 환경에서 보여줘야 하는 진짜 리더십. file 졸리운_곰 2020.04.16 125
60 2020년 반드시 주목해야 할 웹 개발 트렌드 6가지 file 졸리운_곰 2020.04.16 128
59 한 분야에 집중하지 못하는 사람이 더 성공하는 이유 file 졸리운_곰 2020.04.14 233
58 존경받는 리더들이 가지고 있는 커뮤니케이션 패턴 8가지 file 졸리운_곰 2020.04.12 178
57 회의 시간은 줄이고 핵심은 남기는, 1페이지의 법칙 file 졸리운_곰 2020.04.12 215
56 제프 베조스가 말하는 성공을 위한 의사결정 방식 2가지 file 졸리운_곰 2020.04.10 177
55 #트리즈 #창의적사고 #발명기법 file 졸리운_곰 2020.04.09 272
54 창조적 아이디어의 비밀 졸리운_곰 2020.04.09 226
53 아이디어 찾는 법 ‘개발 능력은 있지만, 아이디어가 없다?’ file 졸리운_곰 2020.03.20 155
52 [위시켓] 아이디어는 정말 괜찮은데..개발자가 없네 file 졸리운_곰 2020.03.20 192
51 나만 알고 싶은 기발한 앱아이디어 35가지 file 졸리운_곰 2020.03.20 175
50 [CES 2020] "한국 스타트업, 일본·중국 합친 것보다 많이 참가" file 졸리운_곰 2020.01.11 184
49 2020년 뜨는 직업…7대 유망 서비스는? file 졸리운_곰 2019.01.13 121
48 2018년 창업 유망 트렌드, ‘체험하고 즐기는 사업 인기’ file 졸리운_곰 2019.01.13 345
47 프리랜서 유망 분야 … 21세기는 '1인기업 프리랜서 시대' 무궁무진 졸리운_곰 2019.01.13 135
46 [카드뉴스] 언론보도를 위한 카드뉴스 콘텐츠 작성법 file 졸리운_곰 2018.05.15 228
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED