과학

비전공자를 위한 ChatGPT 설명 1. 트랜스포머의 이해

오늘도 헬스장 사이클 돌리면서 뻘글 쓸 생각에 들뜬 애기 개붕이임.

 

지난 글이 댓글은 많이 받았는데 아쉽게도 좋아요가 10개는 못 넘어서 쓸까말까 고민했지만 걍 오랜만에 글로 누군가한테 설명하는 것도 재밌어서 한 번 더 씀

 

인공지능판에서 그림생성보다 요새 더 뜨거운게 아마도 ChatGPT인 것 같고, 공부하면서 이 모델만큼 다른 사람들 입에 인공지능 모델이 오르내리는 것도 못 본 듯 하여 오늘은

 

ChatGPT가 어떤 식으로 학습을 하고, 어떤 한계가 있는지 최대한 비전공자를 위해 써 보겠음.

 

어그로를 끌기 위해 사실 chatgpt라는 제목을 써 뒀지만, 이 모델 설명을 위해 피할 수 없는 모델은 바로 transformer라는 2017년도에 나온 자연어 인공지능 모델임.

 

그래서 사실 이 글의 대부분은 transformer 모델에 대한 설명이 대부분이 될 거고, 내가 탈수로 사이클을 멈추지 않는다면 아마 RL 과 human in the loop 설명을 쓸 지도 모름.

 

한영변환 귀찮으니 앞으로 트랜스포머라고 쓰겠음.

 

 

1. 그게 뭔데

 

워낙 모델이 좋아서 지금까지도 구조가 거의 많이 안 바뀌고 쓰이는 자연어 처리 모델. 처음엔 번역 목적으로 설계되었음.

 

요새는 그림이나 3차원 모델링 등 언어랑 전혀 상관 없는 분야에도 무슨 레고블럭마냥 쓰이는 인공지능 모델. 

 

그래서 하는 일이 뭐냐,

 

"다음에 올 낱말로 알맞은 것은?" 을 연속해서 푸는 거임.

 

어릴 때 좋든 싫든 아래 그림 같은 거 풀어본 적 있을 거임.

 

00013530_gry_kh0cwqsaXB.jpg

 

오리지날 트랜스포머는 빈 칸 뒤에 추가 단어들이 없지만 여튼, 

똑똑한 개붕이들이라면 뒤 단어 없이도 빈 칸을 채울 수 있을거임.

 

심지어 보기까지 있으면 쉽지.

 

할머니가 배추 다섯 (   )

 

1. 마리 2. 놀라게 3. 포기

 

정답은?

 

 

이걸 인터넷이랑 책에 있는 수많은 글들 기반으로 데이터셋을 구축해놓고, 다음 단어를 잘 맞출때까지 뺑뺑이 돌리는 방식으로 학습함. 

 

2. 개쉬워보이는데 그 전엔 이걸 못 함? 

 

하긴 함. 그리고 잘 못함.

 

딥 러닝의 선조분들께서 이 쉬워 보이는 문제에 도전 안 했을 리가. RNN이니 seq2seq이니 많았음.

 

 

3. 왜 그 전엔 못 함?

 

언어나 시계열 예측에서 다음 정보를 추론할 때 가장 문제가 되는 건 다음에 나올 정보를 추론할 때 필요한 사전 정보가 대체 어디에 있는지를 알기 어렵다는 데에 있음. 예를 들어,

 

"개붕이는 오늘 불금 퇴근길에 맥주 한 캔을 사서 치킨과 함께 축구를 볼 생각에 벌써부터 들떠 있었다. 내일은 (   )요일이니까 늦게까지 잘 생각이다."

 

이런 문장이 있다고 하자. (   )를 맞추기 위해 우리가 찾아야 하는 정보는 15단어 전에 있는 "불금" 임.

 

하지만 아까 처음 문제는 어땠지? "배추 다섯 (   )" 두 단어 전이면 충분함.

 

문제는 다르다는 거. 매번, 문장 구조마다, 단어가 주어지는 방식마다, 문맥마다 다름. 이게 "다음에 나올 낱말을 맞추시오" 처럼 쉬워 보이는 문제를 일반화 해서 풀 때 가장 골때리는 지점이었음.

 

트랜스포머 이전에 나온 언어모델들은 대부분 순차 정보 처리 기반이었고 아무리 용을 써도 오래 전 정보는 모델 자체에서 서서히 잊혀지는 걸 피하기 어려웠음.

 

4. 트랜스포머는 뭐가 다른데

 

이 위대한 인공지능 모델에는 정말 많은 좋은 아이디어들이 들어가 있지만, 가장 핵심은 attention mechanism 이라는 구조임.

사실 이 부분을 잘 이해하는건 모델의 한계점을 이해하는데에는 그닥 도움이 되지 않겠지만, 자연어 인공지능에 있어서 가장 커다란 터닝포인트가 된 아이디어라서 짚고 넘어가고자 함

 

어텐션=주목 이니까 우리말로 하면 "주목도 계산방식" 정도 될 것 같은데 전문 인공지는 번역가는 아니니까 이해를 위한 참고용으로만 생각하고,

 

여튼 이 어텐션 메커니즘의 가장 주요한 아이디어는 대략 세 개

- 문장 내 각 단어가, 문장에 있는 "자신을 포함한 다른 모든 단어"에 대해 각각 주목도 점수를 매긴다. (Attention score)

- (생성 시) 응답 언어랑 질의 언어의 단어끼리도 주목도를 계산한다. (Cross attention)

- 이걸 심판을 여러 명 두는 것 마냥 점수를 여럿이서 매긴다. (Multi-head attention)

 

다 설명하자니 슬슬 힘들어서 어텐션 스코어 원리만 설명하겠음.

 

이 모델은 문장에 각 단어를 세 벡터로 변환하는데 수학 나와서 미안. 이걸 수학 없이 설명하려니 진이 다 빠짐. 바코드라고 보면 됨. 단어 하나당 바코드를 세 개 만듬.

 

첫 번째 바코드의 역할은 내가 가진 정보의 방향. 

두 번째 바코드의 역할은 다른 놈들이 가진 정보의 방향

세 번째 바코드의 역할은 내가 가진 정보의 크기.

 

를 함축한다고 보면 전공생들이 오면 방망이들고 뛰어올 거 같지만 반박시 님들 말이 다 맞으니 내스타일로 일단 끝까지 해 볼게. (주1)

 

"불금" 이라는 단어가 가진 정보를 생각해 볼게

 

불금이라는 단어에 있는 정보를 쪼개보면 (불탄다, 술, 만난다, 논다, 늦게까지, 금요일, 내일 휴일) 등등의 정보가 있다고 볼 수 있음.

 

여기서 불탄다, 술, 만난다, 논다, 각각이 방향이라고 보면 됨. 

그럼 아까 문제에서 "내일은" 도 똑같이 생각해보면 (요일, 시간, 날짜, 오늘의 다음, 모래의 어제) 등등의 정보가 있을 거임.

 

어텐션 메커니즘이 하는 일은 이 서로 다른 단어의 정보를 곱했을 때(바코드를 겹쳐봤을 때), 상관 있는 방향끼리는(바코드가 겹치는 정보는) 높은 점수를, 상관 없는 방향끼리는 낮은 점수를 가지도록 인공지능을 훈련시키는 거임. 바코드의 정보가 올바른 방향끼리 계산될 수 있도록.

 

이렇게 하면 모든 단어에 대해서, 다른 모든 단어에 대해 가져야 하는 "주목도"를 계산할 수 있음.

 

이를테면 학습이 잘 진행된다면, 인공지능은 다음과 같이 계산하도록 설계되었다는거임.

 

 "내일은"이라는 단어가 여러 정보 속성 중에 (요일) 방향의 정보를 가지고, "불금" 이라는 단어도 (요일) 속성 정보가 있으니

(바코드상에서 같은 위치에 있으니) 이 정보를 단어 정보에 추가해줘야겠다

 

라는 식임.

 

아까 세 번째 바코드가 정보의 크기를 나타낸다고 했지?

 

학습이 잘 끝나면 "내일은" 이라는 단어는 문장을 다음과 같이 보게 됨.

 

"개붕이는 오늘 불금 퇴근길에 맥주 한 캔을 사서 치킨과 함께 축구를 볼 생각에 벌써부터 들떠 있었다. 내일은 (   )요일이니까 늦게까지 잘 생각이다."

 

-> ".... 오늘 불금 퇴근길에 .. . .. .. ... .. 축구를 . ... .... .. ..."

 

다른 정보를 개무시하고 봐야 하는 단어에만 주목하게 됨. 그리고 이 정보를 세 번째 바코드에 곱해줌. 

 

내일은: 오늘... 불금... 퇴근길.... 메모 (상상도)

1028612757_SMp52QzW_e32bdba9aa7d9ea9654272915fbb1d8297615c9e (1).jpg

 

이런 식으로 모든 단어가 각 단어의 자체 정보에다가 전체 문장에 있는 단어를 어떻게 보고 있는지 메모를 덧씌우는 거임.

 

5. 그래서, 장점은 뭐고 한계는 뭐고 왜 다른데서 쓰임?

 

힘들다. 무리야. 자전거 한 시간 돌렸어. 쇠질도 안 하고.

수학 없이 latent vecter cosine distance랑 query key value 설명하자니 땀이 절로 나네.

 

나중에 이어서 계속 쓸게.

 

좋은 저녁 되길.

 

 

 

(주1)

----수학 위험지역----

이 부분 쓰면서 예상하긴 했지만... 역시나 야생의 전공자분들께서 빠따들고 피드백을 주셔서 업데이트함.

 

정확한 설명을 위해 수학 설명을 첨부하며, 위의 설명은 비전공자들에게 '느낌적인 느낌'을 압축해서 전달하기 위한 부정확한 설명이라는 점을 밝혀둠.

 

수학적으론 위에서 언급한 세 백터 모두 그 자체는 전부 구조상 정규화랑은 크게 관계 없는 자유로운 크기를 가질 수 있는 고차원 벡터임. 벡터 1, 2, 3을 각각 원저에서는 query,key,value라 칭하며 통상 q, k, v 라 함.

 

수식에서 두 단어간 정보 유사도를 계산하기 위해 q와 k를 내적(스칼라곱)함. 고딩때 배우는 2차원 벡터의 내적이 |q||k|cos(theta) 임을 생각해 보면, 직관적으로 두 벡터의 사잇각이 작을 수록 값이 크고, 사잇각이 직각에 가까워질수록 0에 가까워지는 걸 알 수 있음. 즉 두 벡터가 가까울수록 절대값이 크고, 멀수록 0에 가까워 짐.이런 의미에서 이를 cosine distance 라고도 부름. 두 고차원 정보의 유사도를 측정하는 가장 단순한 방법 중 하나. 

다만 2차원의 직관을 확장하면 오해가 오히러 커질 것 같아서 내가 차라리 바코드에 비유했는데, 고차원 벡터에서 두 벡터의 스칼라곱은 공통 차원의 값이 클수록 해당차원의 값이 커진다는 직관을 활용하기 위해서였음.

 

원글에서 방향을 강조한 이유는 정보 측면에서 잘 학습된 q,k의 코사인 거리는 effective하게 방향에 영향을 크게 받기 때문이고, 원 저자가 이를 기대하고 식을 디자인했을거라 추측했기 때문임. 정보가 고차원 벡터로 (잘; disentangle되도록) 인코딩 되면, 대부분의 차원은 0이 됨. 이를 sparse하다고 함. 이런 고차원 벡터를 내적하면 상상대로 대부분은 0이 되고 겹치는 차원만 유의미한 값을 갖게 될거임. (바닐라 트랜스포머의 q,k,v 차원이 충분히 고차원인지는... 논외로 하자.)

 

피드백 준 개붕이가 써준대로 key vector가 가지는 의미도 보다 풍부하게 설명하는게 물론 좋겠지만...거기까지 짚으려면 cross attention을 포함해 투머치를 피하기가 어려웠음. 그건 이 글이 의도한 바가 아니었고... 거기까진 무리였어 용서해줘 개붕씨...

 

혹시나 이 글을 보고 흥미가 생겨 정확한 수학적 이해를 원하는 개붕이가 있다면 이딴 똥글 말고 제발 꼭 반드시 수식과 원 논문을 참조하는걸 추천. 이해가 안 가는 대충 넘어가는 부분이 대해 물어보면 어떤 의미인지 답을 해줄수 있지만 수식 정의는 원문이 짱임.

-----수학위험지대 끝----

47개의 댓글

2023.02.14

잘 보고있다 개붕아

내가 어렸을때 MLM을 했었을 줄이야.... 개붕이가 보여준 예시 보고 깨달았다.... 나도 사실은 고도로 발달된 ( 그러다가 어딘가 고장난) AI 모델이 아닐까

2
2023.02.14
@아름다운새끼

ㅇㅇ 어릴때 하는게 사실 BERT 지 ㅋㅋㅋㅋㅋㅋㅋz

0
2023.02.14

추천해준다! 너 멋있어

0

ㅊㅊㅊㅊ 나중에 chatgpt 강의 한번 해주면 좋겄네

0
2023.02.14

ㅎㅇㅌ!!

0
Emt
2023.02.15

배추 다섯마리를 심고있어요

0
2023.02.15

질문 있는데 해도 될까?

0
2023.02.15
@안녕욯ㅎㅎ

질문하기 전에 예를 갖추는 강호의 도리...

ㅇㅇ 적당히 아는 선에서 대답할 수 있는 거라면 얼마든지

0
2023.02.15
@년째설명충

나중에 제대로 된 소설 쓰는 ai가 나올꺼라고 생각함?

 

진짜 한 권 뚝딱 흥미로운 내용으로 쓸 수 있을까?

 

실제 인간 작가보다 더 잘

0
2023.02.15
@안녕욯ㅎㅎ

물론... '잘'을 어떻게 정의할거냐랑 언제냐가 문제지. '흥미'가 이산학적으로 어떤건지에 대한 가설에 관해서도 써둔 글타래가 있는데 기회가 되면 풀어보겠음.

0
2023.02.15
@년째설명충

아 그니까 사실 내가 순문학 소설 작가준비생이라서 단순하게 걍 작가준비하는 나보다 잘쓰면 솔직히 접어야겠지 ㅋㅋ 아니면 다른쪽르고 틀거나.... ai 소설 창작 기술자쪽으로...

 

그냥 작가준비생 또는 작가와 비슷하게 완벽한 단권 또는 여러권 연작을 할 수 있을까 ai가? 궁금하다

 

근데 작가준비는 직장다니면서 하는거라 여차하면 접으면 되서 부담없이 말해도 된다 가감없이 업계 종사자의 의견을 듣고싶음

0
2023.02.15
@안녕욯ㅎㅎ

개붕이 질문에 대한 답은 링크로 대체하겠음.

 

작년 말 딥마인드가 발표한 극작가를 위한 인공지능.

 

https://www.google.com/url?sa=t&source=web&rct=j&url=https://mobile.twitter.com/DeepMind/status/1601237890708537344&ved=2ahUKEwja3eyh0Zf9AhX4k1YBHdAMDRAQo7QBegQIARAB&usg=AOvVaw0rFLkIrWe0TvvfrPC8ps6Q

0
2023.02.15
@안녕욯ㅎㅎ

이 댓글과는 별개로 예술의 가치는 가보지 않은 길을 탐험하면서 뭔가를 생산해 낼 때 생산자가 느끼는 즐거움에 가장 큰 의미가 있다고 봄.

 

그런 의미에서 개인의 활동으로서 글짓기가 주는 행위 자체의 가치는 오롯이 개인의 것임. 쓰면서 느끼는 뽕맛이랄까 그런거 때문에 쓰는거잖아 사실. 내가 이 글을 쓴 이유도 그거고.

 

AI가 판칠지도 모르는데 업으로 해도 되느냐? 그건... 감히 내가 할 답이 아닌 것 같음.

0
2023.02.15
@년째설명충

당연 나중에 어느정도 발전하면 나도 소설 창작 툴로 인공지능을 쓰겠지만

 

난 솔직히 인공지능이 많이 발전해서 ㄹㅇ 일반인도 ai 사용해서 나보다 좋은 소설 쓰면 지금 글쓰면서 노력하는 의미가 없어져서 그럼

 

그리고 아래 글쓰기에 재미라는거는 결국 출판되거나 인터넷으로 퍼져서 읽힐 때의 이야기임

 

가수나 댄서 연예인이 무대에 서고 공연을 하는 것을 위해, 무대 아래서 춤연습 노래연습 조차도 즐길 수 있는 것처럼

 

작가도 글을 내고 발표하고 사람들이 읽을 수 있기 때문에 혼자서 쓰는 행위 자체에 즐거움을 느낄 수 있지

 

솔직히 나는 ai소설이 나보다 잘 쓰게 되면 걍 바로 ai소설 기술자? 이런걸로 들어갈꺼다

0
2023.02.16
@년째설명충

답 ㅎㅎ

0
2023.02.16
@안녕욯ㅎㅎ

인터넷 썰쟁이가 배경도 능력도 실력도 모르는 다른이의 앞길에 대해 왈가왈부할 자격따위는 없다고 생각하고, 그래서 괜한 영향을 줄까봐 조심스럽지만... 수 많은 창작 영역중 텍스트 관련 영역이 사람에게 도전하는게 가장 빠를거야. 언제인지는 모르지만 우리네 인생 중일거라는 정도는 말 할 수 있을 지도. 몇 년 뒤냐? 몰?루

 

현업 입장에서는 당장 6개월 뒤에 ai가 소설대회 대상탔다는 소식 나와도 나는 놀라지는 않을 듯.

0
2023.02.15

얀르쿤이 agi는 아직은 절대 불가능하다고 했는데 어떻게 생각함?

0
2023.02.15
@파드

나보다 백배는 더 많이 고민한 사람의 의견인데 당연히 존중함. 인터넷 썰쟁이 나부랭이랑 얀르쿤중 누굴 믿을래 하면 물을 것도 없이 얀르쿤 믿는게 맞다고 생각함.

하지만 개인적인 지극히 개인적인 견해로는 올해, 늦어도 3년 안에 트랜스포머처럼 아키텍쳐적인 혁신(내지는 조합) 아이디어가 나올거라 생각함.

0
2023.02.15

오 재밌당

저런 식으로 글의 맥락을 이어가는 거였구나

1

1년이 다르게 메타가 바뀌는 기계학습판에서 6년 내내 자연어 처리에서 sota를 차지하는것도 모자라 컴퓨터 비전까지 넘보는 아키텍처인게 좀 놀라움

 

무엇보다 무지성으로 체급을 키우면 키우는 대로 퍼포먼스가 올라가는 scalability가 말이 안됨

 

당분간 천장에 닿기 전까지는 업계에선 계속 트랜스포머 울궈먹을듯

1
2023.02.15

와 진짜 궁금했던건데.. 마저 더써줄거지?? ㅊㅊ

1
2023.02.15

1. transformer

 

2. gpt 1

트랜스포머 모델 구조 반토막 내서 사용해봄

 

다음 단어 맞추게 훈련된 모델에 목적(텍스트 유사도 체크, 번역, 리뷰 글의 점수, 기타등등)에 따라 레이어를 하나 더 추가하고 각 목적별로 따로따로 모델을 만들어서 따로따로 추가로 훈련 시켜서 튜닝해보자.

 

오. 몇몇 목적은 가장 뛰어난 퍼포먼스를 보여준 다른 모델들이랑 맞먹는다.

 

3. gpt 2

각 목적에 맞춰서 모델 따로따로 만들고 튜닝 하는게 아니라, 그냥 한 모델에 더 많은 데이터 주면,

 

a. 몇가지 예시만 주면 그 예시에 따라서 잘 해주지 않을까?

예: 할머니 -> 할아버지, 남자 -> 여자, 그림자 -> 빛, 민주주의 -> (그 다음 나올 단어는?)

 

b. 예시도 안주고 뭘 해달라고 지시해도 잘 맞추지 않을까?

예: 민주주의의 반댓말 알려줘. ->

 

예시 주는건 잘하고, 예시 안주는건 잘 맞추지는 못하지만 어느정도 맞추기는 하네.

 

4. gpt 3 -> 모델을 크게 만들수록 아무 예시도 안주고 지시하는걸 잘하게 되네. 모델을 졸라 크게 만들고 훈련 데이터도 늘리면 어떨까?

 

그리고 gpt 3을 chat 용으로 약간 개조한게 chat gpt

1
2023.02.15
0
2023.02.15

q,k,v 정보 수정 좀… 벡터에 방향 정보가 내포된건 맞지만 방향만을 나타내는건 아니니… 물론 gpt에서는 normalize를 어텐션 시작전에 넣기때문에 크기를 빼서 설명할 수도 있겠지만 바닐라 트랜스포머에서는 어텐션 레이어를 통과한 후에 정규화를 하다보니 좀 더 벡터쪽으로 설명하는게 좋지 않을까 싶음. value값 설명은 self-attention을 가정한 설명같고 key값은 그냥 attention 자체에 더 맞는 설명이라 이부분도 수정하면 좋을거 같아. 좋은글 잘 읽었어!

1
2023.02.15
@입벌구

ㅇㅋ 참조해서 수정할게 피드백 고마워용

1
2023.02.15
@입벌구

수정하였읍니다...

1
2023.02.15
@년째설명충

감사합니다 센세...

0
2023.02.15

선형대수없이 q, k, v 설명하기는 쉽지 않겠네요. 위치 인코딩도 설명해주시면 고마울 것 같아요 감사합니다~

0
2023.02.15
@년째 개드리퍼

Pos encoding은 설명을 피하고 싶은 마음입니다... frequency encoding이 많이 쓰이는 좋은 아이디어이긴 하지만 스탠다드인지는 잘 모르겠고... 글의 전체 맥락에서 벗어나는데다가 난이도만 높아질 것 같아서 일부러 뺐어요 ㅠㅠ

0
[삭제 되었습니다]
2023.02.15
@치즈버거플리즈

개드립내 괴롭힘으로 신고합니다

1
[삭제 되었습니다]
2023.02.15
@구화지문설참신도

다음 글에 답을 쓸게

0
2023.02.15

뭔진 모르겠지만 유용하게 잘 쓰고 있어서 프리미엄 사용중 넷플릭스 그런 것보다 더 유용함

0

트랜스포머는 쿼리당 단가가 비싸지 않아? 그럼 chatGPT도 쿼리당 단가를 낮추는데는 한계가 있겠네?

차세대 언어 모델이 나오기 전에는 쿼리당 단가 하락은 요원한겨...?

0
2023.02.15
@포동포동한민관

오픈ai쯤 되면 NPU 써서 아키텍처 구조 및 크기에 맞는 최적화된 인퍼런스 전용 칩을 만들고 분산시킨다음에 버전 업데이트 때마다 웨이트만 바꾸는 방식으로 최적화하지 않을까? 물론 추측임. 쿼리 히스토리는 db에 따로 저장하고 업데이트에 쓰고. 개붕이 말대로 전 세계 chatGPT 인퍼런스쿼리에 gpu 썼다간 채팅하다가 인류가 ai 채팅을 위한 탄소배출량에 질식할지도..

 

별개로 쿼리단가가 비싼 아키텍쳐인 건 맞음.

1
2023.02.15

ㅋㅋ사이트 특성상 잘읽고도 좋아요가 짠데 글 첫머리에 언급하니 많이들 찍어줬네

이래서 유튜브할때 구독과 좋아요 부탁드립니다 하는건가 싶군

 

몇안되는 읽판의 귀인이시니 부디 글 계속 써주길...

 

그동안 인간을 ai가 대체한다 대체한다 말만했지만 큰 변화는 없었는데 자연어 처리 쪽은 진짜 몇년 안에 상당수의 인간을 대체할거같음

1

웹코더는 몇년안에 컷될거같음?

0
2023.02.16

기사들 보면 구글 바드가 망신당하고 오픈ai와 마이크로소프트 빙이 구글을 위협할것이다 난린데

구글 주가도 폭락했고

 

글쓴이 글과 댓글 보면 뭔가 기술적으로 최첨단을 이끄는건 구글 딥마인드 같네

글쓴이가 말하는 조만간의 다음 혁신도 구글에서 나올 가능성이 큰가?

0
2023.02.17

다음 연재글에 쓰려고 했는데 내가 개드립에 다시 언제 들어오게 될지 가늠이 애매해서 그냥 여기에 붙여둠.

 

나는 소설에 관심이 있었고 'NOVELAI'라는 소설 인공지능 프로그램을 사용해 보았음. 이미 일러스트로 유명했다가 뒷방으로 밀려난 늙은이 신세가 된 거 같지만 원래는 텍스트 생성 인공지능이었고 일러스트 생성은 거기에 딸린 부록 같은 느낌이었음. 아마 글쓴이가 여기서 설명하는 언어인공지능의 초기형태를 사용하는 듯 함. 문장 생성하기 앞 한 10문장 쯤을 살펴봐서 'older brother', 'sister', 'shout', 'dabate' 등의 가중치를 붙일 만한 단어가 검색되면 오빠와 여동생하고 싸우는 상황에서 나올 만한 문장을 출력하는 식인 거 같았음. 이러면 사용자에게는 'NOVELAI'가 오빠와 여동생하고 말다툼하는 상황을 인식하고 그 다음에 나올 만한 상황을 문장으로 출력해낸 거 같이 보이게 됨. 여러가지 기능이 추가되고 보강되었지만 뼈대는 이렇고 나머지는 여기에 매크로만 붙인 수준이 아니었나 하고 생각하고 있음.

 

문제가 두 가지 있었는데 첫째는 NOVELAI의 인공지능 동작은 이런 식이라 한 줄 한 줄 내가 썼다 얘가 썼다 하는 릴레이 소설 식으로 이야기를 전개해 나가는 것까지만 딱 괜찮고 그 이상은 안되었다는 거임. 둘째는 이 녀석은 영어만 알아듣는데 그 중에서도 실제 영어사용자의 영작문에 최적화 되어 나처럼 영어를 '배워서 쓰는' 사람이나 '번역기로 돌린' 문장은 제대로 인식을 못한다는 거였음. 우리도 외국인이 한국어를 사용할 때 문법에는 틀린 게 없는데 어색하기 짝이 없는 문장을 많이 듣게 되는데 내가 영어를 쓰면 그렇게 들릴 거고 이런 걸 AI는 잘 인식을 못한다는 거였지. 물론 이런 한계점을 극복하고 얘를 소설 툴로 능숙하게 사용하는 테크닉도 존재하는 하는데(예를 들어 나는 상황에 대한 지시문만 쓰고 소설 내용 자체는 AI스스로가 문장으로 표한하게 한다던가)나는 도저히 힘들어서 그렇게 까진 할 자신이 없어서 딱 1개월만 최고 티어로 구독해 연구해보고 딱 그만두었음.

 

Chatgpt은 이런 거 없이 그냥 '용사가 무서운 용을 물리치고 공주를 구하는 이야기를 쓰고 싶어. 챕터부터 구상해 줘.' 이러면 1. 부름 : 한적한 시골의 농부였던 토마스는 어떻게 어떻게 해서 용으로부터 공주를 구해야 하는 사명을 받게 된다. 2. 자격 : 임금은 토마스에게 용을 물리칠 임무를 부여하기 이전에, 그를 여러가지로 시험하여 그의 자격을 확인하고자 한다. 3. 출정 : 임금으로부터 인정받고 갑옷과 무기를 장만한 토마스는 각오를 다지고 홀로 어려운 여정을 시작한다..... 이런 식으로 어디서 본 거 같지만 챕터를 주르륵 작성해주고 만약에 '등장 인물이 필요해. 이 이야기엔 어떤 등장인물이 어울릴까?' 이런 식으로 등장인물을 요청하면 '덩키, 여행 중 만나게 회색 당나귀, 사람말을 알아듣고 사람말을 한다. 거기에 더해서 거짓말로 남을 속이는 데에도 능하다. 꾸벅이, 여행 중 만나게 되는 화려한 깃털 색의 앵무새. 말은 못 하지만 알아듣기는 하고, 남이 한 말을 따라할 수는 있다. 새라서 날아다니면서 주변을 살피는 데 도움을 줄 수 있다.' 이렇게 등장인물까지 마련해 주기도 함.

 

그러나 구체적으로 챕터 1의 내용을 써 줘. 이런 요청을 하면 아무리 소설처럼 써 달라고 해도 굉장히 추상적이거나 휙휙 뛰는 내용으로 급 전개를 시킴. 이걸 방지하는 방법 중 하나는 챕터 1도 '평범한 농부인 토마스가 농사일에 열중하는 장면' , '토마스가 공주의 행차 행렬을 목격하는 장면', '용이 공주의 행렬을 습격하여 공주를 납치하는 장면.' '공주가 토마스에게 도움을 요청하는 장면', '토마스가 기지를 발휘하여 공주를 거의 구할 뻔하나 실패하는 장면'... 이런 식으로 세세하게 나눠서 각 장면의 묘사를 Chatgpt에 요청하면 가능하긴 했음. 마치 내가 소설을 쓰는 게 아니라 영화를 찍고 있고 각 장면(scene)을 카메라 감독인 Chatgpt에게 이야기해서 그 장면을 연출한다는 것과 비슷한 개념이 됨.

 

근데 이것도 힘든 건 마찬가지고, Chatgpt는 내가 요청한 최초 요청에 대한 대답을 한번 내 놓으면 내가 아무리 그 대답을 바꾸어 달라고 해도 내용을 잘 바꾸지 않는 경향이 있었음. 결국 그러다가 세션이 전체가 오류나서 펑 하고 날아가고 새로운 세션에서 아무리 이전 내용을 Chatgpt에게 다시 읽게 해도 Chatgpt는 이전의 전개 내용을 다시 잘 이어가지 못했음.

 

또한 이런 식으로 계속 소설을 작성한다고 하면 아무리 중간에 요약하고, 정리하고 넘어간다고 하더라도 그 분량이 쌓이게 됨. 내가 앞서 말한 NOVELAI가 최대 2048 토큰을 사용자에게 제공하고, Chatgpt 역시 2000~3000기억토큰 정도를 제공한다고 들었는데 이건 단어가 아니라 형태소의 형태로 정보를 저장한다고 하니 얘네들에게 기억시킬 수 있는 단어는 아무리 잘해도 2000~3000단어를 넘을 수가 없음. 이건 구독료를 비싸게 내거나 해서 더 많은 컴퓨팅 자원을 할당 받는 식으로 해도 토큰을 늘릴 수가 없다고 들었는데, 이런 형태라면 애초에 위와 같은 식으로 소설을 작성해 나갈 수 있다고 하더라도 한계가 있을 수밖에 없어 보임.

 

또한 '용은 성채만하다. 토마스는 용과 어떻게 싸울 것인가?' 이런 질문에 대해 '토마스는 용의 목을 비틀었다.' 이런 식의 대답이 나오는 경우가 많았음. 이건 아마 인공지능이 그저 질문을 언어적으로 해석하고 집채만하다는 용의 덩치에 대한 인식 없이 싸움에 대한 다음 문장으로 '목을 비튼다' 이런 문장을 생성해 낸 게 아닌가 싶음. 대체 어떻게 Chatgpt에게 용과 사람의 상대적인 크기 차이와 이로 인한 물리적인 전투방식의 변화를 설명할 수 있을까 고민해 봐도 딱히 답이 없었던 거 같음.

 

결국 소설을 쓰는 데에 있어서는 NOVELAI도 Chatgpt도 내가 해야 할 일을 별로 줄여주지 못했고, Chatgpt는 여기에 검열이 심해져서 글 쓰는데에는 더욱 힘들어졌음. 공주의 외모를 묘사하려고 하면 여성의 외모를 부각하는 건 좋지 않다고 경고가 뜨는 식.

1
2023.02.17

내가 주로 찾아보는 (18금) 영어권 소설 사이트의 소설들에는 과거부터 TAG가 붙어 있는 경우가 많았음. 이건 소설을 보기 전에 주로 독자에게 경고의 의미로 사용되었던 거 같음. 예를 들어 Gore라는 태그가 붙어 있는 글은 잔인한 묘사가 포함되어 있으니 이런 거 나오는 거 싫어하는 사람들은 안 보는게 좋을 거 같다는 거였겠고, Humiliation 이런 태그는 등장인물 중 누군가가 정신적으로 크게 굴욕을 당하는 그런 장면이 포함되니 그런 거 보기 괴로운 사람은 보지 말라는 거였겠지. 그런데 반대로 그런 걸 좋아해서 그런 것만 찾아 보는 사람도 존재함.

 

그러니 이야기를 소개하면서 TAG는 세세하게 붙일 수 있으면 붙이는 게 좋은 거였고, 이야기들이 시간이 지나 방대하게 쌓이면서 TAG 검색을 지원하고 특정 TAG만 찾아보고 특정 TAG를 보고 피하는 사람들이 늘면서 이야기를 TAG로 분류하는 것은 필수가 됨. 이야기의 요소에 존재하는 TAG가 있으면 해당 태그를 가능한한 다 붙여두는 것이 권장되었음.

 

그런데 이야기의 분량이 짧고, TAG가 잘 붙어 있는 이야기는 역으로 붙은 TAG를 보고 이야기의 내용을 역산할 수 있는 경우도 자주 생김. 예를 들어 Sport, Genius, Brother and sister, Humiliation, Competition 뭐 이런 태그들이 한 이야기에 붙어 있으면 남매 둘 중 하나가, 혹은 둘 다가 운동 천재고, 이로 인해서 뭔가 갈등이 생길 거 같고 한 쪽이 굴욕을 심하게 당하고, 그리고 뭔가 경기나 다른 데서 뭘로든 경쟁이 붙는다. 뭐 이런 내용으로 흘러갈 것을 예측해 볼 수 있음. 내가 과거 작가의 작품을 이미 알고 있고 이 작가가 어떤 성향으로 어떤 글을 써 왔는가를 알고 있다면 예측의 정밀도가 더 올라가겠지.

 

이런 식으로 잘 sort된 스토리들의 데이터가 있다면, 하나의 소설 텍스트의 생성 역시 하나의 일러스트 생성하는 것과 크게 다른 거 아니지 않나 라는 생각이 들었음. 문제는 각 TAG의 요소들을 어떻게 긴밀하게 연결하여 하나의 의미 있는(적어도 그럴싸한) 이야기를 재구성하는 가인데, 이미 이건 그림에서 하고 있는 거 같아서.

 

1
2023.02.17
@불타는밀밭

인간이 재미를 느끼는 원리랑 언어인공지능의 현재와 예상되는 미래를 연결해서 글 쓰려고 하는데 솔직히 얼마나 걸릴진 모르겠음 암튼 무슨 말인지 이해했고 답에는 글이 필요함ㅋㅋ 늦게 써서 미안.

0
2023.02.17
@불타는밀밭

관심가지고 긴 이야기 나눌 수 있어서 고맙고 쓰면 댓글에서는 멘션 하겠음.

0
2023.02.20
@불타는밀밭

https://www.dogdrip.net/doc/464847681 글씀 ㄱㅅㄱㅅ

0
[삭제 되었습니다]
2023.02.20
@구화지문설참신도

ㅇㅋ 오늘 미완이지만 일단 글을 쌌고, 가능하면 오늘 안에 대략적으로라도 완결을 짓겠음. 후속 글 참조해줘잉

0
2023.02.21

컴공과 전공했는데도 도움됐다 고맙다!

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
563 [과학] 경계선 지능이 700만 있다는 기사들에 대해 34 LinkedList 11 13 일 전
562 [과학] 번역)새들은 왜 알을 많이 낳는가? - 후투티의 형제살해 습성... 7 리보솜 3 2024.03.23
561 [과학] 학계와 AI, 그리고 Bitter Lesson (쓰라린 교훈) 26 elomn 35 2024.02.17
560 [과학] 지구의 속삭임, 골든 레코드의 우주 9 Archaea 10 2024.02.16
559 [과학] 잔혹한 과학실험 이야기 <1> 절망의 구덩이 19 개드립하면안됨 37 2024.02.15
558 [과학] 스트레스를 받으면 술이 땡기는 이유 12 동식 16 2024.02.10
557 [과학] 지능은 모계유전이 아니다. 40 울릉특별자치도 35 2024.01.26
556 [과학] 진화를 생각할 때 고려할 것들 23 날씨가나쁘잖아 12 2024.01.17
555 [과학] 학문적(과학적) 접근과 유사 진화심리"학" 26 날씨가나쁘잖아 19 2024.01.15
554 [과학] 호모 사피엔스의 야릇한 은폐된 배란에 대한 남녀 학자의 다... 14 개드립하면안됨 15 2023.12.29
553 [과학] 김영하의 작별인사를 읽고 느낀 점 (스포있음) 21 장문주의 2 2023.11.28
552 [과학] 제4회 포스텍 SF 어워드 공모전 ( SF 단편소설 / SF 미니픽션 ) 2 따스땅 1 2023.11.25
551 [과학] 펌) CRISPR 유전자 가위 치료제 "최초" 승인 12 리보솜 7 2023.11.25
550 [과학] 러시아는 기술산업을 어떻게 파괴시켰는가(펌) 9 세기노비는역사비... 15 2023.11.18
549 [과학] 고양이에 의한 섬생태계 교란과 생물 종의 절멸 (펌) 2 힘들힘들고 6 2023.11.16
548 [과학] 번역) 알츠하이머병 유전자는 어떻게 살아남았는가? 12 리보솜 10 2023.11.15
547 [과학] 『우영우』의 자폐 스펙트럼 장애 개념이 왜곡인 이유 (펌) 47 힘들힘들고 10 2023.11.12
546 [과학] 흑수저 문과충 출신 구글 취직하는 파이썬 특강 -1 14 지방흡입기 11 2023.09.27
545 [과학] 국가별 당뇨 유병율 이거 뭐가 바뀐건지 아는사람? 8 LAMBDA 1 2023.09.27
544 [과학] 물샤워 ㅇㅈㄹ 하는 놈들 봐라 171 철동이 48 2023.09.23