[re:Invent 2019 워크샵] AWS DeepComposer: Get started with generative AI #reinvent

AWS 에서는 모든 개발자가 수학적 지식이나 박사학위가 없이도 AI 를 마음껏 가지고 놀면서 창조적인 무언가를 만들어내기를 기대하고 또 그를 위해 아낌없이 지원해주고 있습니다. Deep Learning 의 기본적인 지식을 익히기 위해 DeepLens 를 출시했고, Reinforcement Learning 를 익히기 위해 DeepRacer 를, 그리고 GenerativeAI 를 익히기 위해 이번엔 DeepComposer 를 출시했다고 합니다!
2019.12.05

안녕하세요! 클래스메소드 주식회사 의 김태우입니다!

이번 re:Invent 에서 새롭게 발표된 DeepComposer 워크샵에 다녀왔습니다. 저는 DeepComposer 발표되기 전에 GenerativeAI 워크샵이 있어서 신청해놓은거였는데, 발표되고 나니까 워크샵명이 DeepComposer 로 바뀌었더군요! 다들 몇시간씩 기다려서 walk-up 으로 겨우 입장하시던데, 저는 굉장히 편하게 제시각에 슥 들어가서 DeepComposer 키보드도 받아왔다는..^^;;

AWS 에서는 모든 개발자가 수학적 지식이나 박사학위가 없이도 AI 를 마음껏 가지고 놀면서 창조적인 무언가를 만들어내기를 기대하고 또 그를 위해 아낌없이 지원해주고 있습니다. Deep Learning 의 기본적인 지식을 익히기 위해 DeepLens 를 출시했고, Reinforcement Learning 를 익히기 위해 DeepRacer 를, 그리고 GenerativeAI 를 익히기 위해 이번엔 DeepComposer 를 출시했다고 합니다!

참고로, DeepComposer 를 제 블로그를 통해 처음 접하신 분이 계시다면, 심플한 패턴의 악보를 입력하면 이를 기반으로 재즈, 락, 발라드 등 주어진 GAN 모델에 따라 제각각의 멋진 음악을 작곡해주는 서비스입니다. SoundCloud 랑도 연계되어 있어서 생성된 음악을 바로 SoundCloud 등에 업로드하여 공유하는 것도 가능합니다!

AWS 공식블로그 를 읽어보시면 대략 어떤느낌인지 감을 잡으실 수 있을 것 같습니다. 본 포스팅에서는 워크샵에서 진행한 내용과 소감에 대해 적어보려고합니다.

목차

워크샵에서 진행했던 내용

deepcomposer-workshop-1

10분전에 입장해서 시작을 기다리면서 두근두근 하는 마음으로 한장 찍었습니다!! 저 키보드를 워크샵에 참여한 전원에게 주었다는..^^;;;

deepcomposer-workshop-2

키보드에 대해 설명하는 부분인데 저 그림보고는 이해가 안갔는데 직접 몇번 만져보니까 바로 이해되더군요! 옥타브를 버튼으로 조절할 수 있고, 페달 밟은 효과나 1옥타브 위의 음을 자동으로 번갈아 눌러지는 효과같은 것들이 있었습니다. 이어폰을 끼면서 실습을 진행해서 소리 녹음을 못해와서 조금 아쉽네요.. (받은 DeepComposer 로 제가 직접 작곡해보고 후기글 다시 올리겠습니다ㅎㅎ)

Agenda

deepcomposer-workshop-2

처음에 머신러닝의 기본적인 내용들, Supervised Learning / Unsupervised Learning / Reinforcement Learning 에 대한 짧은 설명을 해주고 질문을 10분정도 받았습니다.

deepcomposer-workshop-3 그 후에는 GAN 에 대해 5분정도 설명하고 15분정도 Q&A 를 진행했습니다. GAN 에 대해 하나하나 다 설명하려고 하면 끝도 없으니 그냥 일단 한번 해봐~ 라는 식의 마인드로 하이레벨에서의 Q&A 가 이어졌습니다.

그 후에는 직접 키보드로 입력한 음원파일로 기본적으로 주어진 모델에 이것저것 생성해보는 실습(Lab1)을 진행했습니다.

워크샵 실습 URL

DeepComposer 에 대한 내부 구조에 대해서도 잠깐 설명을 해주었는데요, 아래와 같은 구성도로 표현된다고 합니다.

deepcomposer-workshop-4

DeepComposer 콘솔에서는 정말 심플한 인터페이스라서 정말 이게 전부입니다.

DeepComposer 콘솔 인터페이스

Music Studio

deepcomposer-workshop-5

Models

deepcomposer-workshop-6

Composition

deepcomposer-workshop-7

보시는대로 Music Studio 에서 Generate composition 버튼만 누르면 그냥 바로 음원이 생성되는데요,

deepcomposer-workshop-8

이런식으로 DeepComposer 에서 디폴트로 제공하는 모델을 선택하거나, SageMaker 로 직접 만든 모델을 선택할 수 있어서 해당 모델을 어떻게 빌드했냐에 따라서 완전히 다른 느낌의 음악을 생성할 수 있습니다. 이 모델을 SageMaker 위에서 직접 커스터마이징하는 과정에서 GAN(Generative Adversarial Networks) 에 대한 깊이 있는 이해가 가능해지는거죠!

생성된 음악은 대략 이런식으로 키보드 외의 다른 악기의 소리가 합해져서 음원이 제작됩니다.

deepcomposer-workshop-9

이걸 바로 다운받을 수도 있고, SoundCloud 로 직접 업로드 할 수도 있습니다.

시간 관계상 전체적으로는 Lab2 는 진행하지 못했지만, 저는 살짝 먼저 이것저것 살펴보았는데, SageMaker 인스턴스가 ml.c5.4xlarge 타입으로 세팅되어 있었습니다. 개인이 몇시간 이상 사용하게 되면 비용적으로 부담스러울 수도 있다고 생각할지도 모르지만 Spot Instance 를 활용하시면 굉장히 할인을 많이 받을 수 있으니 모델 학습은 Spot Instance 를 활용하시는것을 추천합니다.

SageMaker 에 대해 직접 실습을 통해 공부하고 싶으신 분들은 제가 어제 작성한 SageMaker 포스트를 참고해주세요!

워크샵 참가 후기

저희 회사에서는 올해 한해동안 DeepRacer 에 대한 열기가 가득했었는데요, 저는 개인적으로 별로 관심이 없었습니다. 장난감으로 무슨 딥러닝을 배운다고.. 라고 생각하며 거의 거들떠보지도 않았는데, 막상 re:Invent 에 참여해보니 생각보다 훨씬 더 제대로 학습하기 위한 툴이구나! 라는 생각이 많이 들었습니다. DeepRacer 의 경우에는 강화학습의 원리나 개념뿐아니라 parameter tuning 을 통해 머신러닝 엔지니어링을 깊숙히 체험하며 학습할 수 있다는 걸 알게되었고, DeepComposer 도 마찬가지로, 직접 SageMaker 와 Jupyter Notebook 을 통해 하나하나 코드레벨에서 GAN 을 깊숙하게 이해할 수 있겠다라는 확신이 들었습니다.

그럼 다음 블로그로 찾아뵙겠습니다~!