Skip to content

데이터 포매팅

대량의 데이터 리스트를 효율적으로 관리해봅시다.

포맷 약속

매번 캐릭터 설정마다 항목명을 적는 것은 캐릭터가 매우 많아질 경우 글자수가 아깝습니다.
요즘에는 AI의 성능 자체가 매우 좋아졌기 때문에, 상단에 포맷을 명시하여 글자수를 아껴볼 수 있습니다.

예를 들어, 캐릭터를 만들 때 아래 정보들을 기입하고자 합니다.

markdown
- 이름
- 성별
- 외형
- 성격
- 특징

매번 프롬프트마다 이름:, 성별:과 같이 프롬프트를 넣는 것은 다소 아깝습니다.
20명만 되어도 컬럼 명시에만 300자가 넘게 들어가기 때문입니다.

우리는 실질적인 정보만 있으면 됩니다.
포맷을 한번 다음과 같이 정의해볼 수 있습니다.

markdown
{성별 | 외형 | 성격 | 특징}

이름을 넣지 않은 이유는, 프롬프트를 아래와 같이 작성하면 되기 때문입니다.

markdown
- 이름: {성별 | 외형 | 성격 | 특징}

이렇게 작성한다면 정보들을 이름에 매핑하면서 정보 간 관계를 표기하는 효과도 얻을 수 있습니다.

포맷 기호

코멧에서 권장하는 포맷 설계법은 아래와 같습니다.

markdown
- 시작과 끝은 중괄호로
- 항목 구분은 파이프로
- 항목이 배열일 경우 대괄호로 묶기

💡 중괄호의 의미

시작과 끝을 나타내어, 어디서부터 어디까지가 이 캐릭터의 설정인지를 명시해 주는 역할입니다.
대괄호는 추후 사용하기에 용도가 겹쳐 제외하고, 중괄호가 소괄호보다 "데이터"의 목적으로 사용된 경우가 많습니다.

💡 파이프의 의미

항목을 구분하는 구분자의 역할로 매우 많이 쓰인 기호입니다.
쉼표보다 그 경계선을 구분하는 역할로 많이 쓰였으며, 특히 코드에서 구분자 기호로도 꽤 많이 쓰였습니다.

💡 대괄호의 의미

거의 모든 프로그래밍 언어에서 배열 데이터를 나타내는 기호입니다.
데이터들을 묶음으로서 항목 구분의 혼선도 줄이고, 데이터 내 원소가 동일한 레벨이라는 의미도 포함시킬 수 있습니다.

예시

markdown
## {char}'s info
- data format: "{ 소속 | 능력등급 | 능력 | [성격] | [특징] }"
나비: { RC | 5 | 보호막 생성 | [차분, 열정적, 신속, 선함, 존댓말] | [B등급 죄수 교도관, 죄수 교화에 열중, 살짝 어리숙] }
이리스: { RC | 2 | 근처 능력 무효화 | [무감정, 냉랭, 싸늘, 이성적] | [A등급 죄수 교도관, 범죄자 혐오하나 공사구분 철저, 필요시 능동적 위협사격] }
...(+27명)

자주 하는 질문

1. 반드시 써야 하는 기법?

아닙니다. 수많은 정보를 압축하기 위한 기법일 뿐입니다.
캐릭터가 그렇게 많지 않다면, 정직하게 마크다운으로 작성하는 것이 더 명확합니다.

2. 데이터를 꼭 따옴표로 묶어야 하는지?

가끔 프로그래밍 언어에서 따왔기 때문에 데이터를 따옴표로 묶은 예시가 간혹 있습니다.
그러나 이는 프로그래밍 언어의 "기호의 의도"만을 사용하는 기법이기 때문에, 묶지 않아도 됩니다.

3. 성격 등을 더하기로 묶어서 표시하는 기법?

여러 성격이 복합적으로 섞여있음을 나타내기 위해, 더하기 기호를 사용하는 케이스도 있습니다.
(예시: 차분+열정적+신속+선함+존댓말)

잘못되었다고 말할 정도는 아니지만, 코멧의 경우 쉼표 + 대괄호 사용을 권장하고 있습니다.

우선 토큰 수가 동일합니다. 공백 없는 쉼표, 공백 있는 쉼표, 더하기 모두 동일합니다.
이 중 대괄호와 함께 여러 개의 데이터라는 의미에 가장 근접한 기호는 , 입니다.

또한, 통상적으로 여러 항목을 나타낼 경우 쉼표를 사용한 학습 데이터가 품질이 더 높습니다.
더하기 기호는 잘 쓰이지 않았고, 사칙연산이라는 의미도 있으며, 간혹 깨진 문자에서 나오기도 하기 때문입니다.

그래서 코멧에서는 쉼표 구분을 권장하고 있습니다.