지난 포스팅에서는 HyperCLOVA 언어 모델을 활용하여 소설을 창작했던 경험을 소개했습니다. 지난 포스트 보기 이번 글에서는 그 소설을 하이퍼클로바 언어 모델로 어떻게 완성했는지 구체적인 방법에 관해서 설명해 볼게요.
클로바 스튜디오, 사람의 협업 도구가 되다
글을 쓰다 보면 한 번쯤 모니터 속 깜빡이는 커서만 멍하니 바라보던 경험이 있을 겁니다. 이 포스팅을 쓰고 있는 저 역시 글이 잘 써지지 않아 애꿎은 마우스 휠만 빙빙 돌리던 날들이 많았죠. 그랬던 제가 지금은 10회차 이상의 소설을 연재한 아마추어 작가가 되었습니다. 어떻게 가능했을까요? 그건 바로 사람의 글쓰기를 도울 수 있는 도구, 클로바 스튜디오 덕분입니다.
늘리고, 유도하고, 고르고, 바꾸고
소설 쓰기는 아래 그림처럼 크게 네 가지 방법으로 진행되었습니다. 첫째, 입력한 시놉시스를 기반으로 이야기가 이어 써지며 확장될 수 있도록 합니다. 확장된 이야기는 다시 프롬프트에 쓰일 수 있습니다. 둘째, 모델이 올바른 방향으로 생성해나갈 수 있도록 중간중간 지시하면서 결과를 유도합니다. 셋째, 이 과정에서 전개에 도움이 되는 문장이나 표현력이 좋은 문장들은 따로 수집합니다. 수집된 문장은 이야기 전개에 도움이 되는 경우 선별되어 사용됩니다. 넷째, 단조로운 문장의 표현력을 바꾸어서 문장을 더 흥미롭게 만듭니다.
첫 번째, 이야기의 눈덩이를 만드는 일
우리가 눈사람을 만드는 과정을 한번 생각해 볼까요? 처음에는 작고 보잘것없는 눈덩이지만 계속 굴리다 보면 어느새 커다란 덩어리가 되어 있죠. 글쓰기는 이 ‘눈덩이'를 만드는 것에서부터 시작합니다.
아래는 로맨스 판타지 장르의 소설을 만들었던 과정입니다. 작은 화실은 운영하던 주인공 세나가 화실에서 잠이 들었다가 눈을 떠보니 1920년대 프랑스 니스였고, 이곳에서 화가로서 성공하고 사랑하는 연인도 만나게 되는 내용입니다.
먼저 클로바 스튜디오에서 플레이그라운드라는 작업 영역에 간략한 시놉시스와 대사를 포함한 도입부 서너 문장을 프롬프트(Prompt)로 입력한 후 실행 버튼을 누릅니다. ➊ 모델은 기존에 작성된 부분과의 연결성을 고려하여 자연스럽게 다음 문장을 만들어냅니다. ➋ 이렇게 만들어진 결과물은 다시 프롬프트의 재료로 쓰입니다. ➌ 이 과정을 반복해 나가면서 문장을 생성합니다. 이 방법을 통해 작가는 자신이 구상한 이야기의 작은 눈덩이에서부터 시작해서 점차 그 분량을 키워나갈 수 있죠.
두 번째, 사람의 손 터치로 모델의 창작을 주무르다
그렇다면 모델이 스스로 이어 쓰며 만들어간 이야기는 과연 재미있을까요? 아무래도 모델은 이야기꾼은 아니었나 봅니다. 솔직히 말해 모델이 스스로 만들어낸 이야기는 크게 인상 깊지 않았습니다. 인과관계 없이 단순히 장면을 나열하는 경우나, 이야기의 방향이 기대와 다르게 전개되는 경우가 많았습니다. 그러다 보니 비슷하게 소설 흉내는 내었지만, 어딘가 어색하고 재미가 없었죠. 일반적으로 플롯은 소설 속에서 일어나는 여러 사건이 효과적이고 개연성 있게 짜인 것을 말하는데요. 모델의 결과는 그렇지 못했죠. 그건 아마도 현재 모델이 플롯이나 문학적 장치와 같은 데이터를 충분히 학습하지 않았기 때문일 것입니다.
아래 그림은 모델의 순수한 출력 결과이며 전개에 문제가 있는 실패 사례입니다. 뜬금없는 인물이 갑자기 문을 두드리며 등장하며, 심지어 이름은 현아로 주인공이 가르치던 학생의 이름과 같습니다. 두 인물은 이야기를 나누다가 현아는 갑자기 자신이 아프다고 고백합니다. 주인공 세나는 다음날 일자리를 구하기도 하고, 갑자기 고향 집에 내려가겠다는 다짐을 합니다.
이렇게 맥락 없는 흐름이 연속되다 보면 독자 입장에서는 이해하기 어렵고 몰입감도 떨어지게 될 것입니다.
그래서 필요한 것이 사람의 개입이었습니다. 저는 언어 모델의 생성 결과 중간중간에 개입해서 모델이 이야기 흐름에서 벗어나지 않도록 했습니다. 한 가지 재미있는 사실은 약간의 개입만으로도 모델이 제가 의도한 대로 이야기를 이끌어 간다는 것입니다.
예를 들어볼까요? 아래 그림은 중간에 개입했던 흔적들입니다. 주인공 세나가 화실 운영에 어려움을 겪고 있다는 배경에 대한 설명에서 벗어나고 싶었습니다. 그래서 ‘그러던 어느 보통날이었다.’를 입력한 뒤 실행 버튼을 눌러 시간을 전환 시켰습니다. 모델은 ‘나는 여느 때와 같이 그림을 그리고 있었다.’라는 결과를 출력하며 장면을 바꾸어 전개를 이어갔습니다. 앞서 보여드린 실패 사례에서 수입과 월세에 대해 고뇌하던 우울한 감정의 주인공과는 다른 전개임을 확인하실 수 있습니다.
‘내가 자주 그리던 그림은’를 입력해서 모델이 그림에 대해 자세히 설명하게 하였습니다. 그리고 이제 본격적으로 판타지적인 소설 전개가 가능하도록 상황을 조성하였습니다. ‘지금부터 하는 이야기는 황당할 수 있다’, ‘그러던 중’ 등을 입력했습니다. 그 결과 주인공이 그리던 그림 속 여자가 자신을 쳐다보고, 심지어 주인공과 똑 닮았다는 형태로 흥미롭게 전개하게 되었습니다.
이 원리는 하이퍼클로바 언어 모델이 확률 기반의 생성 모델이기 때문인데요. 쉽게 말해 입력된 단어의 다음 단어를 확률적으로 예측하여 선택해 나가며 문장을 완성하는 것입니다. 이 원리를 이용해서 문장 중간에 단어나 문장을 직접 삽입하여 모델의 다음 출력 결과에 대해 영향력을 행사할 수 있었습니다.
몇 가지 예제를 더 보여드리겠습니다. ‘가까이’라는 단어를 넣어서 인물을 피사체 앞으로 옮기기도 하고, ‘어쩌면’이라는 단어를 넣어서 인물의 사유를 담아냅니다. ‘한 번은’을 넣어서 인물의 과거를 회상합니다. 그리고 ‘그때’라는 단어를 넣어 장면을 환기 시킬 수도 있습니다. 이때 누군가 등장을 하기도 하며, 새로운 사건이 발생하기도 합니다.
세 번째, 문장 조각들을 모으는 일
이야기의 뼈대를 만들고 나면 이제 글을 다듬는 작업을 해야 합니다. 이야기 구조 안에서 중요한 역할을 하는 문장들이 있습니다. 도입부나 인물에 대한 묘사, 핵심적인 대사라든지, 극적인 전환점 등 말이죠. 이 문장들이 모여 문단이 되고, 문단이 모여 한편의 글이 됩니다.
하지만 우리에게 주어진 시간은 그리 많지 않습니다. 이런 일련의 과정 중 어느 하나라도 생략하고 싶은 순간이 찾아오죠. 그렇다면 퍼즐 맞추기를 하듯 좋은 문장을 골라내어 배열하면 어떨까요? 양질의 문장들이 모여 하나의 덩어리를 이루면 이를 바탕으로 더욱 풍부한 이야기를 만들 수 있을 것입니다. 저의 세 번째 방법인 문장 모으기입니다.
키워드와 장면을 묘사하는 문장 서너 개를 예제로 넣어 프롬프트를 만들었습니다. 이제 키워드를 입력하면 하이퍼클로바 언어 모델은 장면을 묘사할 수 있습니다. 실행해서 얻어낸 문장 중에서도 특히 인상 깊은 문장들은 따로 모아두었다가 적절한 시점에 활용되기도 합니다. 클로바 스튜디오에는 한 번에 최대 15개까지 출력할 수 있는 multiple 기능이 있는데요. 이 기능을 이용하면 더욱 많은 문장을 얻어낼 수 있습니다.
네 번째, 감성 한 스푼
내가 쓴 문장이 단조롭다고 느낀 적 있으신가요? 클로바 스튜디오를 이용하면 단조로운 문체를 더욱 표현력 있게 바꿀 수 있습니다. 아래 그림은 문체 변환 프롬프트를 통해 문장의 표현력을 바꾼 결과입니다. 파도가 '글씨를 지워버렸다'를 '고요하게 쓸어갔다'로 서정적으로 변환했습니다. ‘태양’을 ‘거대한 불덩이’라고 어구를 바꾸면서 다른 분위기를 연출하기도 합니다. ‘달빛은 환하게 비추고 있었다’를 ‘달빛은 환하게 부서져 내리고 있었다’로 바꾸어 좀 더 감성적인 느낌을 살리기도 했죠. 이렇듯 단조로운 문장들을 다양하게 변화시키면서 생동감 있고 풍부한 묘사를 할 수 있습니다.
무한한 가능성을 찾아서
클로바 스튜디오는 다양한 소설 작법에 사용할 수 있습니다. 키워드를 입력하면 시놉시스를 만들어내고, 우리는 여기에서 아이디어를 얻고, 이를 발전시켜 스토리를 구성할 수도 있을 것입니다. 우리의 상상력을 자극히고 영감을 주는 하이퍼클로바 언어 모델입니다.
이외에도 장르 소설을 작성하려면 캐릭터 구축, 장소나 배경 설정 등 세계관을 만드는 것에 많은 준비가 필요합니다. 이러한 준비 작업에 프롬프트는 다양한 방법으로 이용될 수 있습니다. 예를 들어 소설 속 캐릭터 구축에도 이용할 수 있죠. 캐릭터는 작가의 주제를 직접적으로 전달하는 역할을 하는 만큼, 체계적이고 섬세하게 계획된 설정하에 독자들에게도 충분히 납득이 되게 행동해야만 합니다. 아래 그림처럼 캐릭터 인벤토리를 채워내는 작업을 만들면 소설 쓰기가 더욱 수월해질 것입니다.
지금까지 클로바 스튜디오를 창작 활동의 도구로써 활용하는 다양한 방법들을 설명해드렸습니다. 앞으로 클로바 스튜디오을 통해 얼마나 다양한 결과물들이 나오게 될까요? 이제 필요한 건 여러분의 상상력입니다.