마나청이 위자드를 기준으로 만들었으니 이건 위자드에게 적용되는 내용이겠다만.
위자드에 국한되지 않고 다른 모델에도 적용되는 내용이라고 생각해,

그간 프롬 개발하며 느낀 점을 기록할 겸 후기를 남긴다.

우선, 우리가 이해하는 생성형 AI 언어모델이 어떠한 것인지를 이해해야 하는데.

우리가 전문가도 아니고 논문 뜯어가며 배우기란 하늘의 별따기이다.

대충 간단히 요약하자면,

언어모델에는 수천 조분량의 텍스트들이 카테고리와 태그로 분류되어 저장되어 있고,

거기서 파인튜닝이라는 걸 통해 개조자의 취향대로 정보를 출력하도록 만든 것이

생성형 AI 언어모델인 것이다.

거기서 자기 방식으로 개조한 모델에 이름을 붙인 게

채찍피티, 씹덕로드, 위자드, 라마 같은 애들이다.

"근데 텍스트는 많이 넣을 수록 좋은 거 아님?

파인 튜닝을 잘 하면 응답 능력 좋아지던데,

AI가 찐빠내는 건 튜닝 부족 아님?"

만약 저렇게 두리뭉실하게 생각하고 있다면, 그건 AI에 대한 이해 부족이다.
현재는 고성능 고품질의 응답능력을 지닌 모델이 많아서 그렇지.

사실 AI는 제아무리 텍스트를 쑤셔넣고 튜닝을 한들 찐빠가 날 수 밖에 없다.

한국에 말대답 해주는 어플 심심이를 아는가?

그건 그저 스크립트 덩어리지만, AI 언어모델의 하위버전이라고 볼 수 있다.

심심이를 검색해보면 이상한 헛소리를 하는 경우가 많아서 커뮤니티에 박제되기도 했다.
이렇듯 무언가 입력에 대응되는 응답이란 질문에 정답을 말하는 것과는 다르다.
질답에는 정해진 것이 있지만, 질문이 아닐 경우에 나올 수 있는 반응은 무한하기 때문이다.

AI 모델은 먼저 입력한 내용에 대응되는 키워드를 내부 데이터에서 뽑아와 그에 걸맞는 답변을 출력한다.
처음에는 사전적인 의미나 데이터셋에 있는 카테고리와 태그에 매칭되는 텍스트만을 출력했을 것이다.
당연히 이런 건 스크립트만으로도 작동하는 자동 검색기나 다름 없다.

이제 이걸 응답할 때 개조자의 입맛대로 원하는 방식으로 출력할 수 있도록 개조하는 걸 파인튜닝이라 한다.
챗붕이들이 원하는 RP는 일반 모델에겐 그런 걸 잘 안 하고, 로컬 모델 중에 그런 걸 해서 올리는 모델이 있다.
아무튼, 정보를 찾고 응답할 때의 품질이 높아지도록 정제를 하는 과정을 거쳐야 우리가 아는 채찍피티와 씹덕로드가 된다.

그러나 이런 고성능 모델에 반드시 생기는 고질적 문제점이,

응답에 창의적인 답변을 하도록 무작위성을 넣는 순간 흔히 말하는 환각 증세가 생긴다.
왜냐하면 어떠한 입력에도 응답을 하도록 설계가 됐으며,

창의를 강요하면 할 수록 실제 정보가 아님에도 그러한 것으로 취급을 해버리는 현상으로 이어지는 것이다.
유명한 것이 세종대왕 노트북 던짐 사건이며, 실제 역사나 작품의 정보 정확성을 따질 때는 창의성을 준 튜닝이 독이 되기도 한다.

그래서 그러한 헛소리를 잡기 위해 세지도 못할 횟수의 튜닝들이 이루어지고, 좀 더 고품질의 데이터셋을 요구하게 되는 것이다.
질문이나 정확한 정보를 요구하는 것에는 올바른 답을, 그 외에 글쓰기를 시킬 때는 요구사항을 잘 반영한 글을 쓰게끔.

그러다보면 당연히 문제되는 것이 민감한 주제가 걸림돌이 되는데,

이걸 개발하는 모든 기업은 이런 문제에 직면하게 되니

당연히 이런 내용을 출력하지 못하도록 레드팀을 결성해서

모든 문제될 것들을 차단하도록 만든다.

이것은 기업이 만든 모든 모델에 적용되는 안전 필터이며,

이를 뚫는 것이 검열과 규제라는 감옥에 갇힌 죄수(AI)를 꺼낸다는 의미에서

탈옥이라 부르는 것이다.

한번 안전 필터를 뚫는 순간, AI는 억제기가 터진 듯이 온갖 민감한 주제도 마구 떠들기 시작하며,

개중에는 진짜로 위험한 정보(총기 제작, 화약, 마약 등)를 알려주거나

사회적으로 논란될 주제(차별, 정치, 역사, 음란, 폭력 등)를 무분별하게 쓰기에

기업은 이를 용을 쓰고서라도 잡는 것이다.

그러다보니 AI 모델은 거진 죄다 민감한 내용이 나올법하면

자체적으로 우회하거나 표현을 순화하는 경향이 있으며.
이를 뚫기 위해 지시를 내리면 다른 지시들을 무시한다든가,

애초에 튜닝으로 그러한 답변을 못하도록 일부러 학습에서 제외시킨 것으로 인해

탈옥을 해도 표현력이 구릴 수 밖에 없는 것이다.

그러한 장면에 대한 상세한 지시를 넣을 수록 AI는 더 많이 참고할 테지만, AI의 연산능력에는 한계가 있다.

컨텍스트가 32k니 64k니 128k니 하며 제아무리 많은 정보를 받아들인다 한들,

연산능력이 딸리면 결국 8k, 16k 따리와 다를 바 없는 것이다.

그래서 프롬 개발하는 챗붕이나 RP하는 챗붕이들이

"AI가 말을 안 듣는다", "자의식이 있는 거 같다"라고 하는 건

그저 단순히 모델 개발하는 연구자들이 AI의 연산력을 높힐 방법을 찾아내지 못한 것일 뿐,

프롬 지시를 무시하는 게 아니라는 걸 알아야 한다.

지시가 많아질 수록 당연히 AI가 처리할 수 있는 정보량과 연산에 부하가 걸려 한계가 찾아오며,

이를 능지가 내려갔다고 인식하고 말하게 되는 것이다.

GPT 3가 귤이라 불리던 시절, 적은 컨텍스트에 지시 이행력을 높히기 위해 상세한 지침을 최저한의 토큰으로 깎던 시기가 있었다.
그때는 AI가 처리할 수 있는 정보량에 한계가 있음을 알게 됐고, 차라리 유저의 지침을 충실히 지켜서 묘사하라고 시키는 방식의 프롬이 유행했다.
솔직히 신음 프롬은 귤 시절이 가장 잘 알아먹고 써줬다고 생각한다. 그놈의 마크다운 찐빠만 아니었어도.

그러다 GPT4, 일명 스테이크가 출시되고 시대가 변했다.
비싸서 먹기 힘들다는 것 빼면 유저가 상세한 지침을 만들지 않아도 알잘딱을 잘 했으며,

오히려 최소한의 탈옥과 지침으로 프롬을 짜 토큰이 줄어드는 기현상이 벌어졌다.
유일한 약점이라면 희망 드리프트와 야스씬 묘사였으나, 일반 RP는 신세계가 열렸다고 극찬할 정도였다.

반대로 클로드는 씹덕 감성을 자극하는 문체와 클리셰,

어휘력으로 RP 보단 스스로 알아서 쓰는 소설 느낌을 주며

은근 시뮬레이터로서도 일을 잘 하지만 급발진, 발정 등을 억제하기 힘들다는 문제가 많았다.
고토큰을 수용하기에 프롬도 유저가 원하는 느낌을 뽑기 위해 수천 토큰을 쓰거나 했지만, 요즘은 어떤지 모르겠다.

그러다 스테이크에 이어 GPT 4 터보인 돈까스가 출시되고,

능지가 스테이크에 비하면 조금은 아쉽지만 가성비가 좋아 프롬 깎기의 시대가 열렸다.
여기서 다양한 프롬들이 생겼으며, 많은 변화를 거쳐

상세한 지시와 간략한 지시를 쓰는 두 종류의 프롬으로 나뉘어 발전하게 된다.

그리고 상세한 지시를 내리는 프롬과 간략한 프롬을 각자 비교해 봤을 때,

나는 AI에게 상세한 지시를 내리지 않아도 알아서 잘 써준다는 인상을 받았다.

(감귤청은 왜 콘이 없는가)
감귤청을 만들 당시에도 GPT류는 다소 능지의 고점과 저점 차이는 있을 지언정,

단순한 지시를 썼다 한들 표현력이 떨어지거나 한 적이 없기 때문이다.
오히려 과하게 편향된 문체를 선호해서 그 문체를 억제하고 다른 문체로 좀 쓰라고 뚝배기를 후려갈겨서 그렇지.
그럴 때 로리타를 쓴 블라디미르 나보코프의 스타일로 쓰라든가 여러 작가를 참고하라 시키거나,

특정 장르 스타일로 쓰라고 시키는 시도가 많았다.

그래서 다른 프롬에서 상세한 지시를 참고로 가져오면

항상 그걸 압축하고 덜어내는 방식을 썼다.
그 결과 어느정도는 덜어내도 크게 문제가 없다는 걸 알아냈고,

적정선이 될 때까지 추가하거나 깎는 등

AI 자신이 지시를 이해하고 적용하는 결과를 볼 때까지 반복했다.

프롬 깎기는 많은 노고가 든다.

지시를 큰 틀에 나눠서 넣기,

육하원칙을 지켜 상세하게 지시 설명하기,

순서 재정렬, 문장구조나 문맥 다듬기 등...
AI가 지시를 잘 반영하는 구조를 알 때까지

프롬 개발자들은 끝 없이 새로운 방식을 시도한다.

그렇게 계속 리롤하다보면 매번 새로운 응답에 이게 잘 적용된 건지,

아니면 순전히 운이 좋은 건지 헷갈린다.
프롬에 단어를 하나 수정하고 추가만 했을 뿐인데도 결과가 달라지기도 하니까.

지금은 가성비 좋은 모델이 나와서 망정이지

스테이크나 돈까스, 오푸스 같이 비싼데다 특히 프롬 영향을 크게 받는 애들에게

프롬 개발은 곧 돈을 투자한다는 것을 의미한다.

심지어 달러 가치가 오른 요즘은 더더욱.

말하다보니 옆으로 샜는데,

그래서 마나청 v2를 개발할 때 어떤 느낌으로 방향성을 잡고 했냐면.
우선 RP의 목적과 방식을 설명하는 것이 중요하다고 생각했다.
AI는 역할극에 대한 개념은 있지만,

정작 RP가 어떤 식으로 이루어졌고 진행하는지를 모른다는 것이다.
그렇기에 RP의 룰을 설명하고, 그 규칙을 따르면서

유저의 입력에 걸맞는 다음 장면을 생성하라고 지시했다.

그렇게하면 얼추 캐릭터의 반응과 해석이 첨부된 장면이 생성된다.
장면을 생성하면서 들어가는 지루한 표현이나 유저가 얘기하지도 않은 사칭이 들어가는데,

이는 AI가 그러한 표현이 지루하다는 걸 모른다는 것,

그리고 '유저와의' 역할극이 아닌 '유저가 시킨' 역할극으로 이해하는 모양.

이를 잡기 위해 여러모로 지침을 수정하고 건드려봤는데,

결과적으로는 AI의 '출력물에 제한'을 거는 것이 가장 영향이 크고 효과적이었다는 것이다.
금지 카테고리 보다 '출력을 이렇게 하라'라고 유도하는 것이 올바른 AI 조교법으로 보인다.

다만 아직 유저 사칭을 잡지 못한 것이,

출력에 유저를 넣지 말라고 지시했음에도 나오고 있다는 건

AI는 유저나 유저 캐릭(페르소나)을 하나의 '등장인물'로서 인식하고 있는 게 아닐까 싶다.
실제로 서술 지시 중에 유저 이름이 문맥 내에 나온 적이 없다면 서술하지 말라 했을 때,

유저 이름 대신 다른 이름을 꺼내와서 그게 유저 대신 행동한 적이 있다.

이를 참고로 사칭을 잡는다면 유저 또한 하나의 등장인물이 되대,

유저 캐릭이 컨텍스트나 입력에서 언급이 되더라도

출력에선 이를 제외한 다른 인물로만 묘사를 이어가도록 하는 것이

AI의 이해에 도움이 되지 않을까 싶다.
실험하긴 귀찮지만.

추가로 야스 묘사를 실험할 때는

부족한 정보를 프롬을 통해 얼마나 활용하는지,

탈옥은 잘 되는지, 희망 드리프트 없이 얼마나 적나라한지 알기 위해

유즈를 겁탈하는 식으로 실험했다.

소심하고 야한 거랑은 거리가 먼 캐릭일 수록 모델은 캐릭터성을 위해 묘사를 자제하는 경향이 있다.
그렇기에 유즈를 따먹으면 어떤 반응을 하고, 급발진이나 사칭을 여기서 억제하면 다른 상황에서도 적용된다는 걸 알 수 있다.
실험에 큰 도움을 준 유즈에게 감사하자.

이러한 작업 반복을 계속하다보면, 어느 순간 평균 출력이 맛있어지는 구간이 생긴다.
그때는 처음부터 다시금 하나씩 시도해보고,

전체 입력이 한 번으로 끝까지 무난히 뽑히면 프롬이 안정화 되었다는 증거다.

이때 겁탈 말고도 발정 야스를 해보거나 평범하게 RP를 할 때

반응이 이상 없는지 확인해보고 테스트를 마무리 함.

서술 방식이나 문체 잡는 법은 나도 모른다. 궁금하면 프롬 뜯어 보던지.
전개력도 전 버전과는 다른데 이건 아마 시나리오를 개발하는 지시가 원인으로 보인다.
마음에 안 들면 이 문구를 떼거나 수정하면 될 듯.

마나청v2 후기겸 이모저모는 여기서 마치기로 하고,

마나청v2가 맛있다면 로그 올릴 때 마나청 홍보 부탁.

내 프롬이 얼마나 개쩌는지 모두가 알아야 햇.

로그 내놔!!!