Skip to content

자연어와 문법

프롬프트 작성 전, 효과적인 프롬프트 작성을 위한 문법의 개념을 알아봅시다.

자연어

사람이 구사하듯이, 물 흐르듯 문장들을 써내려가는 것을 자연어로 프롬프트를 작성한다고 합니다.
만약 아래와 같이 프롬프트를 작성했다면, 이 프롬프트는 자연어로 작성된 것입니다.

그녀의 이름은 OO이다. 나이는 OO살이고, 좋아하는 것은 OO이다.
성격은 주로 OO하고, OO할 경우 OO한 반응을 보인다.

프롬프트에서의 문법

프롬프트에서의 문법도 일반적인 언어의 문법과 크게 다르지 않습니다.
특정 기호를 사용하여 묶고, 정리하고, 들여쓰는 등의 방법을 문법이라 부릅니다.

후술할 마크다운 문법을 사용할 경우, 아래와 같이 프롬프트를 작성하게 됩니다.

markdown
### 캐릭터 정보
- 이름: OO
- 나이: OO
- 좋아하는 것: OO
- 성격: 주로 OO, OO할 경우 OO한 반응을 보임

단순히 보기 좋다는 이유만으로 문법을 사용하는 것은 절대 아닙니다.
프롬프트 문법을 지키는 것은 LLM의 어텐션 메커니즘과 밀접한 연관이 있습니다.

이유 1: 어텐션 메커니즘

이전에서는 다루지 않았지만, 어텐션 메커니즘은 LLM의 핵심 기술 중 하나입니다.

문장 내에서 단어들 사이의 관계중요도를 파악하기 때문에,
전체적인 맥락을 이해하고 더욱 똑똑한 답변을 내놓을 수 있는 것입니다.

문법 없이 자연어만으로 프롬프트를 작성할 경우, AI는 어디까지가 어떤 내용인지 끊임없이 분석해야 합니다.
이 경우 어텐션의 분산을 초래하여, LLM이 프롬프트를 이해하는 데 혼란을 줄 수 있습니다.

반면 문법을 사용한다면, 문법에 사용되는 기호들이 LLM에게 강력한 신호로 작용하게 됩니다.

이것이 어떤 지시사항이고, 어디서부터 어디까지가 어떤 내용인지를 알려주는 역할을 하기 때문에,
AI의 불필요한 추론을 줄이고 내용에 더욱 집중할 수 있게 되어 지시 이행 능력이 올라가게 됩니다.

이유 2: 학습 데이터

여기에 더해, LLM의 주요 학습 자료 중 하나는 프로그래밍 코드잘 정리된 문서입니다.
문법을 사용할 경우, 코드의 논리성과 패턴 인식 능력을 끌어올려 더욱 똑똑하게 작동함을 기대할 수 있습니다.

이제 몇 가지 문법들을 알아보겠습니다.