Skip to content

프롬프트 작성 기법

구체적으로 프롬프트를 작성할 때 알면 좋은 내용들을 알아봅시다.

제약은 느슨하게

엄격히 금지한다, 필수 등과 같은 제약적 키워드를 과하게 사용하면 응답 품질을 떨어뜨릴 수 있습니다.

권장, 지양 등의 느슨한 키워드로 틀만 잡는 형태를 추천하고,
만약 정말 강력한 금지가 필요하다면 ~ 대신 ~한 방향으로 할 것과 같이 방향성을 잡아주면 좋습니다.

일관성 유지

한 프롬프트 안에 서로 반대되는 지시문이 존재한다면 품질 낮은 응답으로 이어지기 매우 쉽습니다.
만약 응답 퀄리티 차이가 심하다면, 프롬프트가 일관성 있게 작성되었는 지 확인해보세요.

띄어쓰기는 빼지 마세요

간혹 정해진 글자 수 안에 최대한 많은 정보를 넣기 위해 띄어쓰기를 제거한 프롬프트를 사용한 경우가 있습니다.
이는 토큰 효율성과 학습 데이터 활용을 모두 망치는 행위로, 절대로 권장하지 않는 방법입니다.

LLM은 기본적으로 사람들이 많이 사용하는, 띄어쓰기가 포함된 데이터들을 주로 학습했습니다.
토큰화 또한 이에 최적화되도록 설계되었기 때문에, 상당수의 토큰이 띄어쓰기가 포함되어 있습니다.

오히려 띄어쓰기를 없앤다면 해석하기 위해 더 작게 토큰을 쪼개게 되고,
이는 결국 컨텍스트 길이만 늘어나고, 부정확하고 품질 낮은 프롬프트로 이어지는 결과를 초래하게 됩니다.

코멧에서는 이를 고려하여 프롬프트에서 공백을 글자수에서 제외하고 있습니다.
띄어쓰기를 없애지 않아도 글자수가 늘어나지는 않으니 안심하셔도 좋습니다.

명확한 지시문은 영문으로

시스템 규칙과 같이 뉘앙스의 여지가 적은 명령문이나 지시사항은 영문으로 작성해 보세요.
단순히 멋있어서가 아닌, 아래와 같이 여러 이유가 존재합니다.

  • 기본적으로 영문 자료의 학습 비중이 매우 높습니다.
  • 영문은 토큰 최적화가 매우 잘 되어 의미 전달이 명확합니다.
  • 명령문은 영문으로, 세부 설정은 한국어로 작성하면 구분이 명확해져 이행률이 올라갑니다.
  • 영문의 기술적 키워드는 매우 구체적이며 고정된 의미를 가집니다.

핵심 문장 성분만 사용

완성된 한국어의 문장은 내용 전달에 중요하지 않은 문장 성분도 분명히 포함하고 있습니다.
프롬프트의 목적은 명령이지 대화가 아니므로, 핵심만 추려낸 텍스트를 사용하는 것이 더욱 효율적입니다.

예를 들어, 아래 프롬프트의 경우 다음과 같이 불필요한 성분들을 삭제해 글자수와 효율 모두 잡을 수 있습니다.

그녀는 17살의 원소마법을 주로 다루는 신입생입니다. 특징으로는 불 마법에 능통한 모습을 보입니다.
-> 17살, 신입생, 원소마법 주로 다룸, 불 마법에 능통

숫자 계산은 지양

LLM의 고질적인 문제점 중 하나로, 롤플레잉수치 계산을 동시에 하는 것은 아직까지 불완전합니다.
특히, 랜덤으로 선택 과 같은 명령어는 아예 효과가 없고, 랜덤으로 숫자 생성 역시 랜덤이 나오지 않습니다.

비록 입력으로 {dice6} 등의 값을 넘길 수는 있지만,
{dice6} 값이 A ~ B면 실행: 과 같은 명령문은 작동하지 않는 점 유의해주세요.

랜덤이 필요할 경우, 후술할 로어북 시스템을 이용하여 구현하는 것을 권장합니다.