‘AI의 대중화’ 시대다. [누구나 개발자] 1편에서는 국내 유일의 소프트웨어전문지인 마이크로소프트웨어(이하 마소) 400호에 인공지능에 대한 이야기를 풀어낸 ‘스팟라이트’ 섹션의 기고를 소개한다. [편집자주]

① AI is everywhere
② 오픈소스 AI 개발 도구가 애저 클라우드와 만났을 때
③ 애저에서 머신러닝을 한다는 것...머신러닝이 클라우드, 오토 ML과 ML옵스를 만났을 때
④ 인텔리전트 ‘엣지와 클라우드’의 궁극적 지향점
⑤ 오피스 안으로 들어온 AI
⑥ 누구나 AI 전문가로!
⑦ 양자 컴퓨팅 활용의 지름길 ‘애저 퀀텀'
알고리즘랩스 "인공지능 기술 보편화에 기여하겠다"

#오픈소스 AI 개발 도구가 애저 클라우드와 만났을 때

필자 최영락은 마이크로소프트에서 클라우드 분야 개발자를 위한 커뮤니티와 기업 생태계를 지원하고 전략을 기획하는 일을 맡고 있다. 학창 시절 어려운 머신러닝과 담을 쌓고 지냈으나, 2010년 중반 여러 커뮤니티 모임 및 스터디를 통해 길을 찾아 인공지능 및 딥러닝 기초를 다질 수 있었다. 이전에 헬스케어 회사에서 다뤘던 딥러닝 경험을 바탕으로, 시간 될 때마다 애저 클라우드에서 다양한 AI 접근 방법 및 구현을 재미있게 시도하고 있다.

알파고가 이세돌과 격돌한 게 어느덧 4년이다. 이제는 인공지능 비서라 불리는 AI 스피커뿐만 아니라 스마트폰에 탑재된 AI 음성인식 서비스, AI가 추천하는 광고 및 서비스는 물론이고, 자동차 및 로봇을 비롯해 헬스케어, 심지어는 예술, 법조계까지 전방위로 AI가 도전장을 내밀고 있다. 그렇다면 AI를 구현하는 기술 및 개발 도구는 그동안 어떤 변화가 있었을까? AI를 구현할 수 있던 과거의 오픈소스 시절부터, 클라우드 발전으로 이에 장점을 더한 다양한 오픈소스 개발 툴의 현재를 살펴보기로 하자.

[대제] 머신러닝 구현과 함께해 온 다양한 오픈소스 개발 툴

오늘날과 같이 AI가 발전할 수 있었던 대표적인 요인을 꼽자면 바로 딥러닝 기술이 컴퓨팅 파워와 함께 발전한 덕택일 것이다. 이러한 발전에 영향을 미친 또 다른 요인으로 다양한 오픈소스 딥러닝 개발 프레임워크 생태계를 언급하고자 한다.

파이토치(PyTorch), 텐서플로(TensorFlow), 케라스(Keras) 등 여러 오픈소스 프레임워크가 있다. 많은 AI 모델러뿐만 아니라 실무에서도 그리고 AI를 배우고자 하는 입문자들도 해당 오픈소스 프레임워크를 적어도 한 번은 사용해 보는 것 같다. 이와 같은 AI 개발 툴에 대한 오픈소스 생태계는 2010년 11월, 테아노(Theano)라는 오픈소스 머신러닝 프레임워크를 통해 본격적으로 발전했다. 사실 그 전, 2000년대에도 딥러닝은 아니지만 머신러닝 구현과 함께해 온 오픈소스 개발 툴이 여럿 있었다. 그중 기억에 남는 오픈소스가 있다면, 바로 웨카(Weka)와 libsvm이다.

웨카는 뉴질랜드 와이카토 대학에서 개발한 GNU 라이선스 기반 오픈소스다. 데이터 분석 및 예측을 위해 여러 머신러닝 알고리즘을 실행하고 시각화하는 도구를 포함한다. 자바로 구현됐으며, GUI(Graphical User Interface)를 통해 동일한 데이터 집합에 대해 여러 머신러닝 알고리즘을 실행하고 비교해볼 수 있다. 딥러닝이 발전하기 전까지 다양한 종류의 데이터를 기반으로 지도 학습(Supervised Learning) 및 비지도 학습(Unsupervised Learning) 알고리즘을 누구나 실행해 보고 정확도를 확인·비교할 수 있었다. 머신러닝에 대한 이론을 데이터로 확인하기 매우 유용한 오픈소스였다.

libsvm은 딥러닝 이전 뛰어난 성능으로 많은 주목을 받았던 서포트 벡터 머신(Support Vector Machine) 알고리즘을 구현한 라이브러리다. 특히 당시 넷플릭스와 같은 추천 시스템을 구현할 때, 해당 알고리즘을 활용해 구현하는 경우가 많았을 정도로 인기가 있었다.

머신 러닝 구현 관련 오픈 소스: 웨카와 libsvm
머신 러닝 구현 관련 오픈 소스: 웨카와 libsvm
이처럼 오픈소스 개발 툴은 딥러닝이 등장하기 이전에도 머신러닝 발전에 함께 활용됐다. 당시에는 오늘날과 같이 선택할 수 있는 오픈소스 툴이 많지 않았는데, 딥러닝과 AI 기술이 발전하면서 다양한 오픈소스 AI 개발 도구들이 생겨났다.

#딥러닝의 발전으로 도래한 AI 오픈소스 개발 툴 춘추전국시대

딥러닝이란 용어가 본격적으로 사용된 것은 2006년 토론토 대학의 제프리 힌튼(Geoffrey Hinton) 교수가 심층 신뢰 신경망(Deep Belief Network)이라는 효과적인 딥러닝 알고리즘을 논문으로 발표하면서부터이다. 이후 학계에서 점점 많은 데이터와 컴퓨팅 파워를 활용해 모델의 정확도를 계산해 보고 보다 나은 정확도를 보장하는 딥러닝 모델이 무엇인지 비교하기 시작한다. 또한 중앙처리장치(CPU)가 맡았던 응용 프로그램 계산을 그래픽 카드 프로세서인 GPU에서 처리할 수 있는 기술이 발전함에 따라, 이론상의 딥러닝 모델이 일정 성능을 보장하는 구현 가능한 딥러닝 모델로의 실현이 가능해졌다. 이전에는 그래픽카드가 컴퓨터 화면 출력 계산을 위해서만 사용됐다.

2012년 글로벌 이미지 인식 경진대회인 ILSVRC(ImageNet Large Scale Recognition Challenge)에서 딥러닝을 기반으로 한 모델이 83.6%로, 무려 10% 이상 획기적으로 정확도를 개선한 사건이 발생한다. 제프리 힌튼 교수의 제자인 알렉스 크리제브스키(Alex Krizhevsky) 팀이 알렉스넷(AlexNet)이라는 딥러닝 모델을 구현한 것이다. GPU 연산을 활용해 학습 시간을 단축했을 뿐만 아니라 소스 코드를 공개해, 해당 딥러닝 모델을 직접 구현하는 AI 연구 및 개발자가 점차 증가했다. ILSVRC에서 2011년까지 정확도는 0.1~2% 정도만 향상됐었다.

이미지넷 분류 대회 정확도 변화(2010~2015)
이미지넷 분류 대회 정확도 변화(2010~2015)
그렇다면 딥러닝 구현을 위해 어떤 오픈소스가 사용됐을까? 2010년 파이썬(Python) 과학 컴퓨팅 콘퍼런스에서 테아노라는 오픈소스가 발표됐다. 테아노는 파이썬 수식을 CPU와 GPU에서 실행할 수 있도록 컴파일하는 기능을 포함했다. 행렬 연산과 같은 수식을 쉽게 표현할 수 있고 GPU 연산도 가능하다. 이런 장점에 힘입어, AI를 위한 복잡한 머신러닝 알고리즘을 매력적인 파이썬 소스 코드로 구현이 가능해졌다. 물론 native C/C++로 직접 구현하는 것보다 성능이 저하된 면이 있었지만, 복잡한 수학적인 지식을 CPU·GPU 연산으로 빠르게 전환할 수 있다는 사실은 큰 영향을 주었다. 또한 2012년 이미지넷(ImageNet) 대회에서 가장 높은 정확도를 보였던 알렉스넷에 대해, 카페(Caffe)라는 오픈소스를 기반으로 1 GPU로 구현된 카페넷이 널리 알려지면서, 카페라는 오픈소스 프레임워크도 많은 개발자가 사용하기 시작했다.

이후 2015년부터는 마치 춘추전국시대를 연상할 정도로 정말 다양한 머신러닝, 딥러닝 오픈소스 프레임워크 개발 툴이 역동적 변화를 거듭하기 시작했다. 먼저 토치(Torch)라는 루아(Lua) 스크립트 언어를 기반으로 하는 프레임워크가 있었다. 페이스북은 2015년 1월, 토치를 기반으로 하는 딥러닝 모듈을 오픈소스로 공개했다. 이후 파이썬을 위한 오픈소스 머신러닝 라이브러리인 파이토치 오픈소스를 2016년 10월 내놨고, 2018년 12월 1.0 버전을 정식 출시했다. 뿐만 아니라 구글에서는 2015년 11월 텐서플로라는 딥러닝 프레임워크를 오픈소스로 공개하고 지속적으로 버전업을 하고 있다. 중국 바이두에서는 패들패들(PaddlePaddle)이라는 딥러닝 프레임워크를 2016년 8월 공개했다.

한 가지 주목할 만한 점은 적극적이고 활발한 오픈소스 생태계에서 모든 오픈소스가 살아남지는 못했다는 것이다. 2010년 11월 출발했던 테아노는 2018년 5월, 더 이상 적극적으로 개발하지 않겠다고 선언했다. 2015년 6월 일본계 회사 프리퍼드 네트워크(Preferred Network)에서 개발을 주도했던 체이너(Chainer)라는 오픈소스는 2019년 12월, 향후 개발을 파이토치로 전환할 것이라고 선언했다. 카페는 미국 UC 버클리에서 연구하던 양칭 지아(Yangqing Jia)가 페이스북에 입사하면서 2017년 4월, 카페2를 릴리즈했는데, 2018년 3월, 카페2 기능을 페이스북에서 적극적으로 주도하던 파이토치에 통합하기도 했다. 이와 같은 딥러닝 개발 프레임워크에 대해 오픈소스 진영에 여러 변화가 생기는 한편, 인공신경망을 파이썬으로 쉽게 만들 수 있도록 여러 오픈소스에 대한 계산 엔진을 선택해 사용 가능한 케라스 오픈소스가 발전했다. 아마존은 아파치(Apache) 재단 프로젝트인 엠엑스넷(MXNet) 오픈소스 개발을 지원했다. 이렇듯 개발자 입장에서 다양한 선택지가 생긴 것은 환영할 만한 일이라 할 수 있겠다.

딥러닝 관련 오픈소스 역사 및 발전
딥러닝 관련 오픈소스 역사 및 발전
마이크로소프트 역시 이와 같은 AI 오픈소스 개발 툴에서의 춘추전국시대를 함께 지내왔다. 2012년 알렉스넷이 83.6% 정확도를 보였던 이미지넷 경진대회에서는 2013년부터 많은 딥러닝 모델이 경쟁했다. 그 결과 2014년에는 구글이 우승했다. 2015년에는 마이크로소프트 연구 조직에서 Deep Residual Networks라는 딥러닝 모델을 레스넷(ResNet)이라는 이름으로 선보였는데 무려 96.43%라는 높은 정확도를 보였다. 뿐만 아니라 2015년 4월, 연구 조직에서 내부 프로젝트로 진행하던 딥러닝 프레임워크인 CNTK (Computational Network Toolkit)를 오픈소스로 공개했다. 초기 버전의 CNTK는 내부 스크립트인 브레인스크립트(BrainScript)라는 언어로만 이용할 수 있었으나, 2016년 명칭을 마이크로소프트 코그니티브 툴킷으로 변경하면서 파이썬, C++, C# 언어 인터페이스를 제공하기 시작했다. 현재 최신 버전은 2.7로, 자바 프로그램에서 CNTK 모델 평가 기능을 사용할 수 있고, 64비트 윈도뿐만 아니라 리눅스 운영체제도 지원하는 등 오픈소스로서 자리매김하고자 지난 몇 년간 지속적인 발전을 했다.

#현실에서의 오픈소스 AI 툴의 어려움 그리고 상호 운용성

이처럼 AI 기술이 발전하게 된 또 다른 배경에는 오픈소스가 주는 긍정적이면서 선한 영향력이 있었다. 그런데 여전히 많은 기업에서 AI를 적용하는 데 어려움을 겪고 있는 것 또한 사실이다. AI 적용을 위한 데이터 수집에서부터 숙련된 AI 모델러 및 개발자가 부족한 현실적인 이유도 있겠지만, 오픈소스와 관련해서 겪는 어려운 점으로는 ‘오픈소스는 상용 서비스에 적용하기 어렵다’는 인식이 있을 수 있다. 오픈소스는 완성도가 부족해 상용 서비스에 적합하지 않다는 이야기를 듣곤 한다. 하지만 AI 영역에서 설명했던 여러 오픈소스 프레임워크는 교수나 연구자뿐만 아니라 현업에서도 사용되는 프레임워크이기 때문에 완성도 면에서는 상용 소프트웨어에 절대 뒤지지 않는다. 뿐만 아니라 마이크로소프트 애저 같은 클라우드 기업도 이러한 주요 오픈소스 프레임워크를 기본으로 지원하고 있을 정도다. 오픈소스 프레임워크를 사용하는 것 또한 좋은 선택지가 될 것이다.

트레이닝을 위한 다양한 머신러닝 프레임워크와 여러 배포 대상에 따른 구현 복잡성
트레이닝을 위한 다양한 머신러닝 프레임워크와 여러 배포 대상에 따른 구현 복잡성
그런데 상호 운용성이라는 관점에서 오픈소스 AI 툴을 바라보면 현실에서 겪을지도 모를 어려움을 이해할 수 있다. 기업 규모가 커질수록, 심지어는 같은 팀 구성원이더라도 어떤 AI 모델러는 파이토치를 사용하는 데 반해, AI 개발자는 텐서플로를 사용하는 경우도 생긴다. 이때 서로 다른 프레임워크에서 개발된 모델이 호환되지 않아 결국 다른 오픈소스 프레임워크를 지원하기 위해 새로 구현해야 하는 경우도 있다. AI 기술이 점차 발전하면서 다양한 오픈소스가 생겨나 선택지가 많아진 것은 환영할 만한 일이다. 하지만 여러 오픈소스 개발 툴의 고유한 장단점 때문에 업무를 할 때 특정 오픈소스 개발 툴을 정하고 쓰는 것이 힘들어지기도 한다. 이때 강제로 한 가지 개발 툴을 선택하는 것이 좋을 수도 있으나, 만약 각 오픈소스 개발 툴로 구현된 모델이 상호 호환이 된다면 특정 개발 툴을 강제하지 않아도 되지 않을까. 위의 그림과 같이 배포 대상이 어디인지에 따라 그 대상에 맞추기 위해 추가 구현을 할 수도 있다. 오픈소스마다 각각의 배포 대상을 위해 추가 구현할 경우, 그 경우의 수가 곱절로 많아지는 현상이 생긴다.

#상호 운용성을 해결하는 오픈소스를 위한 데이터 포맷, ONNX

2017년 9월, 마이크로소프트와 페이스북이 공동으로 개발한 오픈 뉴럴 네트워크 익스체인지(Open Neural Network Exchange. 이하 ONNX)에 대한 발표가 있었다. AI 개발자들이 이미 사용 중인 프레임워크를 딥러닝 학습 모델의 필요에 따라 쉽게 다른 것으로 바꿀 수 있게 하는 프레임워크로, AI 프레임워크에 대한 상호 변환과 여러 배포 대상을 공통의 모델로 하는 데이터 포맷에 해당한다.

ONNX의 등장으로 오픈소스마다 제각각이던 학습 모델 포맷의 통일이 가능해졌다.
ONNX의 등장으로 오픈소스마다 제각각이던 학습 모델 포맷의 통일이 가능해졌다.
그래프 연상 모델, 자체 연산자, 표준 데이터 타입을 정의한 포맷인 ONNX가 등장해 CNTK, 카페2, 파이토치 프레임워크를 비롯해 텐서플로, 케라스 등에서 모두 사용이 가능해지면서 그동안 제각각 모델 연산을 만들어 저장하던 그래프 데이터 포맷을 통일할 수 있게 됐다. 이에 따라 선택한 오픈소스 프레임워크의 특성과 상용화를 위한 특징 간에 있는 간극을 메울 수 있게 됐다. ONNX는 2019년 11월, 머신러닝·딥러닝과 관련된 프로젝트를 관리하는 리눅스 재단인 ‘리눅스 파운데이션 AI’에 가입함으로써 개방된 커뮤니티 참여로 함께 발전할 것으로 기대한다.

#고성능 오픈소스 ‘ONNX 런타임’으로 가속화하는 오픈모델 기반 AI 구현

ONNX 데이터 포맷으로 서로 다른 오픈소스 프레임워크를 사용하더라도 동일한 모델 형식으로 저장하는 것은 가능해졌으나, 해당 데이터 포맷을 어떻게 배포해 최적의 성능을 보장하는지에 대한 문제를 해결한 것은 아니다. 2018년 12월, 마이크로소프트에서는 ONNX 데이터 포맷으로 저장된 모델을 리눅스, 윈도, 맥OS에서 고성능으로 실행 가능한 ‘ONNX 런타임’을 깃허브(github.com/microsoft/onnxruntime)에 공개했다.

이에 따르면 MIT 라이선스로 관심 있는 누구나 소스 다운로드와 설치뿐만 아니라 컨트리뷰션도 가능하다. 확장 가능하고 모듈화한 프레임워크로 설계해 파이썬, C++, C#, C, 자바 같은 다양한 프로그래밍 언어를 지원한다. GPU 가속을 위한 쿠다(CUDA) 라이브러리와 인텔 하드웨어를 위한 시각 추론, 신경망 최적화를 위한 툴킷인 오픈비노(OpenVINO) 등 다양한 하드웨어 가속 옵션에서 ONNX 런타임으로 실행할 수 있다.

ONNX 런타임 지원 사항
ONNX 런타임 지원 사항
2020년 1월, 마이크로소프트에서는 ONNX 런타임을 사용해 BERT 추론을 17배 이상으로 가속화했다고 발표했다. BERT는 2018년 10월 등장한 새로운 자연어 처리를 위한 AI 모델로, 효과적인 단어 간의 연관 관계를 바탕으로 ‘트랜스포머’라는 인코더를 양방향으로 활용해 여러 자연어 처리 데이터셋에서 기존 정확도를 추월했다. 하지만 상당한 계산을 필요로 하기 때문에 대규모로 BERT 모델에 기반해 추론하는 경우에는 시간이 많이 걸릴 뿐더러 엄격하게 대기 시간을 제약하는 상황에서는 사용할 수 없을 수도 있다. ONNX 런타임에서는 BERT에서 사용하는 트랜스포머 단위를 구성하는 많은 연산자로 된 그래프의 최적화를 수행해 메모리 복사 횟수를 줄이는 방식으로 성능을 개선했다. 그 결과 CPU 환경에서 128시퀀스를 길이로 하는 3계층 BERT를 실행한 결과, 대기 시간(latency)이 17배 감소했다. 64배치 크기를 기반으로 GPU에서 실행했을 때는 대기 시간이 3배 감소했을 정도로 성능이 획기적으로 개선됐다.

ONNX 런타임에서 BERT를 실행한 결과(CPU·GPU)
ONNX 런타임에서 BERT를 실행한 결과(CPU·GPU)
이와 같이 ONNX 및 ONNX 런타임을 이용해 기존에 이미 익숙한 오픈소스 개발 툴과 함께 상호 운용성과 빠르고 안정된 성능을 보장하면서 AI 구현이 가능해졌다. 오픈 데이터 포맷을 기반으로 다른 오픈소스 개발 툴 간 모델에 대한 상호 교류가 가능해지고, 배포 대상 대해 신경 쓰지 않고 최적의 성능을 누릴 수 있는 장점을 얻게 된다.

ONNX와 ONNX 런타임을 함께 사용하면 어떤 오픈소스 AI 개발 툴을 사용하더라도 ONNX 모델로 변환해 저장한 다음, ONNX 런타임을 통해 실행할 수 있다. 아래 그림은 ONNX 모델로 변환 후 저장한 다음 ONNX 런타임을 사용하는 샘플 코드이다.

ONNX 모델로 변환 후 저장한 다음 ONNX 런타임을 사용하는 샘플 코드
ONNX 모델로 변환 후 저장한 다음 ONNX 런타임을 사용하는 샘플 코드
#마이크로소프트 애저에서 지원하는 다양한 오픈소스 기반 AI 개발 도구


애저 포털에서 애저 머신러닝 서비스에 대한 리소스 생성 후 서비스에 접속했다.
애저 포털에서 애저 머신러닝 서비스에 대한 리소스 생성 후 서비스에 접속했다.
지난 몇 년 동안 애저는 마이크로소프트가 오픈소스를 사랑한다는 철학으로 애저라는 공통된 클라우드에서 최적의 개발 환경을 경험하고 AI 개발자가 인프라에 대한 고민 없이 개발에만 집중할 수 있도록 변신을 거듭했다. 그중 대표적인 서비스가 바로 애저 머신러닝 서비스(Azure Machine Learning Service)다. 애저 포털에서 해당 리소스를 생성한 후, 서비스에 접속하면 위와 같다. 머신러닝 모델을 자동으로 학습하고 튜닝해 주는 자동화한 ML과 드래그 앤드 드롭으로 데이터 준비부터 모델 배포까지 각 단계를 쉽게 설계하는 디자이너 등, 그것만으로도 훌륭하다. 하지만 개발자 입장에서 가장 훌륭한 점으로는 바로 위에서 설명한 여러 오픈소스 AI 개발 툴뿐만 아니라, 머신러닝 개발 환경에서 많이 사용하는 주피터 노트북(Jupyter Notebook) 내장 및 통합 편집기(IDE)에 해당하는 비주얼 스튜디오 코드와 연동을 자체적으로 내장했다는 점이라고 생각한다. 각각을 조금 자세히 파헤쳐보자.

애저에서 지원하는 오픈소스 기반 AI 도구
애저에서 지원하는 오픈소스 기반 AI 도구
1. 애저 노트북 사용

주피터 노트북은 웹 브라우저에서 파이썬 코드를 단계적으로 실행해 볼 수 있는 오픈소스 웹 애플리케이션으로, 텍스트 및 실행 코드, 실행 결과, 관련 그래픽 및 시각화를 캔버스 단위로 저장해 공유할 수 있다. PC나 노트북에 직접 설치해 사용할 수도 있지만, 이 경우 캔버스 파일을 전달해야 공유되므로 실시간 공유가 어렵다는 단점이 있다. 애저 머신러닝 서비스에서는 노트북 파일을 작성하고 컴퓨팅 머신을 생성해 클라우드에서 노트북 결과를 확인할 수 있다. 별도의 애저 노트북 서비스(notebooks.azure.com)도 있는데 4기가바이트(GB) 메모리와 1GB 데이터 제한이 있지만 무료로 사용 가능하다.

2. 비주얼 스튜디오 코드

무료로 사용 가능한 IDE임에도 불구하고 확장팩을 설치하면 애저 서비스와의 연동이 쉽다. 애저 확장팩은 비주얼 스튜디오 코드를 실행한 후, 왼쪽에서 확장에 아이콘을 클릭한 다음 ‘애저’로 검색하면 주요 애저 서비스별로 확장팩을 확인할 수 있다. ‘애저 머신러닝 서비스’의 확장팩은 aka.ms/vscode-plugin-azureml을 통해 다운로드할 수 있다. 애저를 사용하지 않더라도 파이썬 확장팩(aka.ms/vscode-python)을 설치하면 주피터 노트북 파일인 .ipynb 확장자를 가진 파일을 IDE에서 직접 열어서 확인하는 기능을 제공한다. 다른 사람이 만든 주피터 노트북 파일을 확인하고자 할 때, 번거롭게 주피터 노트북 개발 환경을 구성할 필요 없이 간단히 열어서 확인할 수 있다. 필요한 경우에는 주피터 노트북을 비주얼 스튜디오 코드가 실행되는 로컬 환경에서 설치해 한 줄씩 실행하는 것 또한 가능해진다.

3. 컨테이너 환경에 대한 지원

애저 머신러닝 서비스에서는 사용자가 직접 오픈소스를 활용해 만든 모델 파일과 ONNX 데이터 포맷으로 저장된 모델을 업로드할 수 있다. 이때 등록된 모델은 하나 이상의 파일에 대한 논리적인 컨테이너인데 실제적으로는 도커에서 사용하는 컨테이너 단위와 같다. 따라서 해당 컨테이너를 쿠버네티스와 같은 컨테이너 오케스트레이터를 통한 관리가 가능할 뿐만 아니라 데브옵스와 연계도 쉽다는 장점이 있다.

4. 데이터 과학자를 위한 가상 머신

1-3을 보다 잘 활용하기 위해 별도의 개발 환경을 갖춰야 한다면, ‘애저 데이터 사이언스 버추얼 머신’을 사용하는 것도 고려해보자. 머신러닝·딥러닝을 위한 오픈소스 AI 개발 툴이 내장된 전용 가상 머신을 애저 클라우드에서 사용할 수 있다. 즉, 추가적인 머신러닝, 딥러닝 툴 설치 없이 바로 가상 머신에 접속해 개발 및 애저 머신러닝 서비스 환경에서 개발할 수 있다. 윈도, 윈도 서버, 우분투 리눅스 세 가지 버전으로 제공하며, 운영체제 호환성에 따라 지원되는 개발 툴 목록에 차이가 있을 수 있으니, aka.ms/dsvm-tools 링크를 참고하자.

#진정한 오픈소스를 기반으로 한 ‘오픈’ AI 협력 및 개발을 위해

AI, 특히 딥러닝과 관련한 여러 알고리즘과 모델이 발전했던 시기를 돌아보면서, 마이크로소프트의 AI 분야 오픈소스 활동과 클라우드를 기반으로 하는 여러 오픈소스들이 어떻게 활용돼 AI 클라우드 서비스로 발전했는지를 살펴봤다. 참고로 클라우드 기반으로 제공되는 모든 서비스가 오픈소스를 바탕으로 제공되는 것은 아니다. 예를 들어, 애저에서 제공하는 컴퓨터 비전, 텍스트 분석 서비스 등은 마이크로소프트에서 방대한 양의 데이터 및 학습을 통해 API 키 액세스로 모델을 사용할 수 있는 형태로 제공한다. <표1>은 curl 명령어를 사용해 이미지에 대한 컴퓨터 비전 분석 결과를 API 호출로 얻은 것이다.

<표1>

마이크로소프트의 애저 AI 서비스 특징
마이크로소프트의 애저 AI 서비스 특징
그럼에도 애저에서 AI를 위해 고려하는 서비스와 개발 툴 중 거의 절반이 오픈소스를 기반으로 하는 것은 예전에 리눅스는 암이라고 했던, 오픈소스를 적으로 간주하던 마이크로소프트가 더 이상 아니라는 것의 방증이다. AI 분야는 앞으로도 더 많은 발전이 있을 것으로 기대된다. 변화하는 세상에서 오픈소스를 기반으로 한 다양한 AI 개발자 툴과 함께 클라우드를 잘 활용해 인프라에 대한 고민을 덜고, AI 개발을 위한 본연의 일에 더 집중한다면 보다 생산적이고 즐거운 AI 개발 라이프가 되지 않을까 생각한다.

#마이크로소프트웨어 #마소 #개발자 #인공지능 #사티아나델라 #마이크로소프트 #MS #윈도문의는마이크로소프트에 #마이크로소프트웨어와마이크로소프트는다릅니다 #누구나개발자