소설 쓰는 딥 러닝
- Deep Learning & AI
- Difficulty Intermediate
- 2018-08-18 (토요일) 13:40 - 14:20
- 한국어
- 104
- Photography and recording is allowed
Slide
https://speakerdeck.com/dreamgonfly/soseol-sseuneun-dib-reoning-pycon-korea-2018
Video
https://www.youtube.com/watch?v=03mEWRC2hyA
Description
창작은 오랫동안 인간의 전유물이라고 여겨져 왔습니다. 특히 이전에 한번도 존재하지 않았던 새롭고 참신한 이야기를 생각해내는 능력은 인간만이 할 수 있는 고도의 예술 활동으로 여겨지며, 이는 어느 정도는 사실입니다. 음성 인식, 번역, 자율 주행 등 수많은 인공 지능 기술들이 사람들을 놀래키고 있는 요즘에도 아직 독자를 몰입시키는 스토리를 만들어내는 진정한 의미의 인공지능 이야기꾼은 등장할 기미가 보이지 않으니까요. 영어로도, 한국어로도 이는 어려운 일입니다. 하지만 어려워 보이는 일은 항상 프로그래머들의 도전심을 자극하곤 합니다. 또한 딥 러닝 프레임워크들이 Python 라이브러리로 제공되기 때문에 Python 안에서 모델 구현 및 실험도 비교적 쉽게 시도해 볼 수 있죠. 이런 환경에서 한국어 소설을 자동으로 쓰는 인공 지능을 만들겠다는 목적을 가지고 Python 유저인 저와 제 친구들은 몇 달 전부터 인공 지능 소설가 프로젝트를 진행해 왔습니다. 기존에 자동으로 이야기를 생성하기 위해서 흔히 사용된 방법들을 살펴보면, 템플릿에 기반한 텍스트 조합 모델이 사용된 경우가 많습니다. 이 경우 일관성이 있고 소설의 작법에 부합하는 이야기가 나오기는 하지만, 사람이 만든 룰과 주어진 정보에 크게 의존한다는 단점이 있지요. 템플릿을 진정한 의미에서 인공지능이라고 부를 수 있는 것인가에 대해서도 의문이 남습니다. 딥 러닝 기술이 발전하면서 자동 텍스트 생성 분야에서도 몇가지 가능성을 보여주고 있습니다. 딥 러닝 기술로 만들어진 텍스트 생성 모델들은 템플릿 기반 모델들에 비해 좀 더 다양한 종류의 텍스트를 생성해 내곤 합니다. 하지만 아직까지는 딥 러닝 모델 역시 수많은 한계점들을 갖고 있습니다. 한가지 예로, 딥 러닝 모델들은 한두 문장 이전의 맥락을 다음 문장에서 이어가는 데에서 어려움을 겪습니다. 즉 소설 처음부터 끝까지 일관성 있는 이야기를 이어가기 어렵다는 뜻이죠. 일반적인 딥 러닝 모델은 짧은 맥락 만을 고려하는 챗봇이나 번역에는 적합하지만 소설에는 적합하지 않았습니다. 따라서 소설 쓰는 인공 지능 모델을 만들기 위해서 저희는 다음 조건들이 충족될 필요가 있다고 생각합니다. 1. 기존에 없었던 새로운 이야기를 할 수 있어야 한다. 2. 긴 글에서 맥락을 이어갈 수 있어야 한다. 3. 문법적으로 흠이 없고 자연스럽게 읽히는 글을 써야 한다. 저희는 이런 점들을 고민하며 모델을 설계하였고, 그 과정에서 여러가지 시도와 실패, 성공을 겪었습니다. 이번 파이콘 발표를 통해 이런 경험을 공유하고 앞으로 한국어 텍스트 자동 생성을 고민하는 사람들이나, 게임에서 유저와 인터렉션하며 게임 스토리가 만들어지도록 하고 싶은 게임 개발자들, 또는 TensorFlow나 PyTorch를 이용하여 딥러닝 모델을 만들어보고 싶은 프로그래머 등에게 도움이 되고자 합니다. 구체적으로 발표에는 다음과 같은 기술들이 다뤄질 예정입니다. - Sentence embedding - Language modeling - Encoder-Decoder model - TensorFlow / PyTorch