구조화
프롬프트 작성 시 필요한 핵심 원리를 다시 한 번 체크해봅시다.
의미
형식적으로나마 사전적 의미를 한번 짚고 넘어가 봅시다.
부분적인 요소들을 모아 유기적인 연관 관계를 맺게 함으로써 하나의 전체적인 조직이나 틀을 만드는 것
핵심은 유기적인 연관 관계입니다.
정보를 아무렇게나 흩뿌리듯 작성하는 것이 아닌, 정보들이 어떤 항목에 속해있고, 어디부터 어디까지가 어떤 항목인지 구분해주는 것이 핵심이라고 할 수 있습니다.
구조화의 필요성
구조화가 필요한 이유 역시 문법의 중요성과도 연관이 깊습니다.
문법을 사용하는 핵심 이유였던 어텐션 메커니즘에 대한 설명입니다.
문장 내에서 단어들 사이의 관계와 중요도를 파악하기 때문에,
전체적인 맥락을 이해하고 더욱 똑똑한 답변을 내놓을 수 있는 것입니다.
구조화 역시 단어들 사이의 관계와 중요도를 위해 사용하는 방법으로, 문법과 별개의 개념이 아닙니다.
문법과 구조화를 동시에 사용해야 그 효과가 더욱 높아지고, 완성도 높은 프롬프트를 설계할 수 있습니다.
구조화 방법
핵심은 큰 부분부터 나누고, 공통된 분야는 같은 구역에 위치하도록 설계하는 것입니다.
아래는 프롬프트 구조 설계 파트의 예제입니다.
xml
<goal>
- 장르: (장르)
- 목표: (목표)
</goal>
<world-setting>
(세계관 설정)
</world-setting>
<character-data>
(캐릭터 설정)
</character-data>
<output-syntax>
(출력 규칙)
</output-syntax>AI는 일반적으로 XML 문법같은 데이터셋을 인식하는 데에 가장 강력합니다.
따라서 위의 예제의 경우, 캐릭터 프롬프트라는 가장 큰 데이터를 4개의 데이터로 나누어 구조화한 것입니다.
더 세부적인 부분에도 XML을 도입해도 문제는 없지만, 쓰기 번거롭기도 하고
마크다운 역시 많은 학습량을 기반으로 강력한 인식률을 보이기 때문에, 여기서부턴 마크다운으로 나눕니다.
구조화 없이 마구잡이로 흩뿌려진 세계관 데이터를 하나 구성해보겠습니다.
markdown
- 아카데미: 지속적인 마법사 탄압으로 하나만 남았고, 그마저 신입생이 없는 수준으로 폐교 위기
- 길드: 왕국에서 살기 위해 오는 가장 일반적인 곳. 그러나 마법사 파티원을 구하지 못하며 경제가 지나치게 악화됨
- 마법사: 과거에는 매우 활발하게 활동했지만 최근 계속되는 마녀사냥으로 역사 속으로 사라질 위기에 처함
- 용사: 마법사가 대거 줄어드는 바람에 파티를 찾기가 애매해짐, 실직자도 매일 늘어나는 중
- 루미너스 왕국은 과거 "마법사의 땅"이라 불릴 정도로 마나 기운이 좋고 활발했지만, 지금은 마나도 고갈되고 마녀사냥 때문에 쇠퇴 중이다.
- 비너스 교단: 이데아 신을 섬긴다. 초창기부터 꾸준히 권력을 잡아왔지만, 점차 교단이 아닌 마법사가 실질적인 문제들을 해결하며 권위가 떨어지자 마법사를 마녀로 몰아가는 여론 조작을 감행했다.핵심은 공통적인 데이터를 묶는 것입니다.
💡 먼저 아카데미와 길드는 공통적으로 왕국의 시스템을 담당하고 있습니다.
이 둘은 같은 레벨에 위치하도록 구성해야 합니다.
💡 마법사와 용사는 공통적으로 왕국의 직업군을 담당하고 있습니다.
마찬가지로 이 둘은 같은 레벨에 위치하도록 구성해야 합니다.
⚠️ 비너스 교단의 경우 루미너스 왕국 내부에 있기는 합니다.
그러나 설정상 왕국의 부속품으로 작용하는 것이 아닌 왕국을 망가뜨리는 대척점에 서있습니다.
이 경우 교단을 왕국의 구성 요소가 아닌, 왕국과 같이 세계관을 구성하는 요소로 간주되는 것이 좋습니다.
이처럼 구조화는 기계적으로 분류하는 것이 아니라 AI에게 요소들 간의 관계를 나타내는 것입니다.
아래는 위의 정보들을 바탕으로 구조화를 한 결과입니다.
markdown
# 루미너스 왕국
- 과거 "마법사의 땅"이라 불릴 정도로 마나 기운이 좋고 활발했음
- 그러나 마나 고갈 및 마녀사냥 때문에 쇠퇴 중
## 왕국 시스템
1. 아카데미
- 지속적인 마법사 탄압으로 한 곳만 남음
- 그마저도 신입생이 없는 수준, 폐교 위기
2. 길드
- 왕국에서 살기 위해 오는 가장 일반적인 곳
- 마법사 파티원이 고갈되며 경제 악화됨
## 왕국 직업군
1. 마법사
- 과거에는 매우 활발했음
- 계속되는 마녀사냥으로 역사 속으로 사라질 위기
2. 용사
- 마법사가 대거 줄어들어 파티 구하기가 어려워짐
- 실직자도 늘어나는 중
# 비너스 교단
- 이데아 신을 섬기는 교단
- 초창기부터 꾸준히 권력을 잡아옴
- 그러나 점차 마법사의 위상이 높아지며 권위가 하락하자 마녀사냥을 집행하며 여론을 조작함마크다운 헤더 문법이 어떻게 구조화를 이루는지는 마크다운 링크 문법을 참조하세요.
참고하면 좋은 내용: MECE 원칙
구조화 시 가장 핵심적으로 작용하는 개념입니다. 내용은 아래와 같습니다.
겹치는 항목은 없어야 한다. (Mutually Exclusive, ME)
다 합쳤을 때 누락되는 항목은 없어야 한다. (Collectively Exhaustive, CE)
만약 위의 예시에서 왕국 시스템 안에 용사를 넣었다면, 왕국 시스템 항목에는 길드와 용사가 있습니다.
이 경우 "길드에 속한 용사"는 두 시스템 모두 속할 수 있기에 겹쳐버립니다. (ME 위반)
또한, 만약 프롬프트에서 비너스 교단 항목이 빠진다면, 구상한 설정 일부가 누락되어 버립니다. (CE 위반)
MECE 원칙을 지켜서 프롬프트를 작성하면 AI가 혼선에 빠질 염려를 줄일 수 있습니다.
참고하면 좋은 내용: 위계와 입도
정보의 레벨을 위계(Hierachy) 라 하며, 그 정보가 세밀한 정도를 입도(Grain Size) 라 합니다.
먼저, 같은 수준에 있는 정보들은 동등한 중요도를 가져야 합니다. (위계의 일치)
예를 들어, # 과일 밑에 - 사과, - 비행기가 오면 안됩니다.
또한, 같은 레벨의 정보는 상세함의 정도가 비슷해야 합니다. (입도의 일치)
예를 들어, 위의 예제에서 아카데미 항목에는 10줄, 길드 항목에는 1줄만 적으면 구조적 불균형이 발생합니다.
이 경우 AI는 많이 설명된 쪽에 과도한 가중치를 두게 됩니다.
정교한 구조화에는 이와 같이 위계와 입도를 일치시키는 과정도 포함됩니다.