10. 좋은 프롬프트란 무엇인가

by New ERA Systems

좋은 프롬프트란 무엇인지 저도 잘 모르겠습니다. 세상에는 수많은 사람들이 있고 이들이 하는 말은 더 많이 있습니다. 프롬프트라는 것이 결국 사람의 말 또는 글이기 때문에 무엇이 좋다, 나쁘다는 평가하는 것은 의미가 없다고 생각합니다.


다만, AI를 정확하게 통제하여 사용자가 원하는 작업을 오차범위 내에서 실행하게 해주는 프롬프트가 좋은 프롬프트라면 꼭 알고 넘어가야 할 부분이 있습니다.

거두절미하고 바로 들어가 보겠습니다.


저는 프롬프트를 이렇게 구성합니다.



1. 역할정의: (AI를 빙의 시키는 겁니다. 프롬프트가 충분하게 촘촘히 짜여져 있다면 사실 필요 없을 수도 있습니다. 단, 전체 프롬프트 구조가 엉성하거나 확실한 방향을 정해줘야 할 때는 꽤 유요한 듯 합니다)

2. 작업목표(또는 목적): (이 작업을 하는 목적과 목표설정 입니다. 전 이 부분이 중요하다고 생각합니다. 작업을 진행하는 모든 순간에 목표가 없거나 상실하면 엉뚱한 방향으로 흘러갈 가능성이 높습니다. 바다위의 등대 같은 것이라고 보시면 될 것 같습니다)

3. 실행규칙: (일반적으로 말하는 프롬프트가 여기에 해당됩니다. 어떤 일을 해라. 어떻게 해라. 이런 저런 과정을 거쳐서 일을 해라 등이 여기에 해당됩니다)

4. 제약사항: (잘 아시는 ~하지마라 에 해당하는 부분입니다)

5. 출력프로토콜: (일반인들이 잘 모르지만 개인적으로 가장 중요하다고 생각하는 부분입니다. 출력형식을 지정해 주는 것입니다. 보고성 형식인지, 리포트 형식인지, 또는 내가 원하는 어떤 형식으로 구성해 주면 됩니다.)



앞의 포스트에서 프롬프트에는 입력데이터도 포함된다고 언급한 적이 있습니다. 이렇게 구성된 프롬프트에 입력데이터를 포함된 것이 전체 프롬프트 입니다.


여기서 검색을 한다면 입력데이터는 인터넷 전체 또는 인터넷 전체 중 실행규칙 또는 제약사항의 필터링을 통과한 인터넷의 특정 부분이 입력데이터가 되는 것입니다. 그냥 쉽게 AI가 도달할 수 있는 인터넷 전체를 입력데이터로 보시는 것이 가장 직관적입니다.


이 프롬프트의 각 항목을 이용해서 사용자가 원하는 작업을 하고 원하는 출력값을 뽑아낼 수 있도록 구성하시면 됩니다.


5번 출력프로토콜에 대해 조금 더 보충하겠습니다. 리포트를 원하면 [리포트형식으로 출력하라]는 피해야할 프롬프트 형식입니다. (필요한 경우에) 리포트형식을 일일히 지정해서 1) 000 2) 000 3) 000 ,,, 와 같이 정확하게 표시해줘야 합니다. 이렇게 해야 AI가 자의적으로 생각할 수 있는 공간이 없어지면서 할루시네이션 없이 정확하게 임무를 수행하는 환경이 마련됩니다.


마지막으로 가장 중요한 부분 입니다. 입력데이터를 포함한 모든 프롬프트는 논리적 정합성이 맞아 떨어져야 합니다. 논리적 정합성이 충돌하는 부분이 있거나 어긋나는 부분이 많으면 연산과정에서 할루시네이션이 발생할 가능성이 높아집니다.


이 부분에 대해서는 다음 기회에 좀 더 자세하게 생각해 보도록 하겠습니다.

작가의 이전글9. 연속성 문제와 할루시네이션