사용자와 AI(생성형 인공지능 모델) 간의 효과적인 커뮤니케이션을 위한 가이드

차 교수의 도움을 받아 “Write clear instructions”  내용과 구성을 참고해 CDPE 프롬프트 작성 가이드 첫 번째 부분을 작성합니다.

 

안녕하세요, 여러분! 오늘은 사용자와 시스템 간의 효과적인 커뮤니케이션 방법에 대해 알아보겠습니다. 이 글을 통해 여러분은 시스템과 더 원활하게 소통하고, 원하는 결과를 더 정확하게 얻을 수 있는 방법을 배우게 될 것입니다.

명확한 지침 제공하기

첫 번째로 알아볼 내용은 ‘명확한 지침 제공하기’입니다. 시스템에게 요청을 할 때, 가능한 한 구체적이고 명확하게 설명하는 것이 중요합니다.

예를 들어, “Excel에서 숫자를 더하는 방법”이라고 물어보는 것보다 “Excel에서 달러 금액이 있는 행을 자동으로 합산하고, 그 합계를 ‘Total’이라는 열에 표시하는 방법”이라고 물어보는 것이 더 좋습니다.

이렇게 구체적으로 질문하면, 시스템은 여러분의 요구사항을 더 정확히 이해하고 더 유용한 답변을 제공할 수 있습니다.

무엇을 생성해주기를 원하는 지를 작성하고 대화를 시작합니다. 생성해  주기 원하는 게 없다면 해산 하세요~^^

Excel에서 뭔가를 하고 싶었던 거죠. 뭘 하고 싶었던 걸까요? “Excel에서 뭔가를 하고 싶었습니다.”로 시작해도 됩니다. 그러면 묻겠죠. “무엇을 하고 싶으세요.” 이런 대화는 시간 낭비 돈 낭비니. 잠깐 고민해 봅니다. ‘무엇을 하고 싶었던 거지.’ ‘달러 금액들이 있는데 이것들의 합계를 구하고 싶었지.”

이 정도면 대화 시작으로 좋습니다. 그래도 잠깐 결과가 어떻게 생기길 원하는 지 물어보세요. ‘Total’

이걸 가지고 대화를 시작해 보세요. 그러면 더 고려해야 할 것들이 무엇인지 대화를 통해 더 많이 생각나게 해 줄거예요. AIPilotSmarteasy의 Promptius와 대화를 시작하겠습니다.

사실 단발성 질의나 지시를 하려고 Promptius를 사용하지는 않습니다. 여러 번 일어나는 일에 반복적으로 사용하고 싶을 때  사용합니다. 재 사용하고 싶은 거죠. 재사용 하는 상황을 생각해보면, 똑같은 내용으로 질의나 지시를 하지 않을 거고 약간의 변경되는 부분들이 있겠죠. 이렇게 대부분 같은데 아주 일부분만 바뀌는 것을 템플릿이라고 합니다. 재 사용할 프롬프트를 만든다는 것은 결국 프롬프트 템플릿을 만들겠다는 것입니다. 아니면 정말 똑같이 반복적으로 사용할거나. 이런 거 있으면 아니 이런 일 있으면 좋겠죠. 복사 붙여 넣기만 하면 되니까.

 

이 예를 Promptius에게 던지면 ‘따라하기’ 처럼 어떻게 해야 하는 지를 쫘악하고 설명해 줄거예요. 일회성 문제해결을 한거죠.

세부 정보 포함하기

두 번째 팁은 ‘세부 정보 포함하기’입니다. 질문이나 요청에 관련된 모든 중요한 세부 사항을 포함시키세요.

예를 들어, “누가 대통령인가요?”라고 묻는 대신 “2021년 멕시코 대통령은 누구였으며, 선거는 얼마나 자주 열리나요?”라고 물어보는 것이 좋습니다.

이렇게 하면 시스템이 여러분이 원하는 정확한 정보를 제공할 수 있습니다.

“누가 대통령인가요?”라고 묻는 것은 되나 안 되나 정도 확인하고 싶은 경우나 하겠죠. 이렇게 하고 “와! 정말 되네.”로 시작해서 이 수준으로 질의나 지시를 하다보니 “뭐 되는게 없어.”로 끝나게 됩니다. 이런 수준으로 질의나 지시를 했으니 조금만 복잡해지면 질의나 지시하는 게 힘들어지게 되죠. 많이 복잡해 지면 Promptius 같은 것들은 많이 귀찮게 하거든요.

페르소나 채택하기

세 번째 팁은 ‘페르소나 채택하기’입니다. 시스템에게 특정한 역할이나 성격을 가정하도록 요청할 수 있습니다.

예를 들어, “당신은 이제부터 유머러스한 작가입니다. 모든 단락에 적어도 하나의 농담이나 재치 있는 표현을 포함해주세요.”라고 요청할 수 있습니다.

이렇게 하면 시스템의 답변 스타일을 여러분의 목적에 맞게 조정할 수 있습니다.

생성형 인공지능 모델은 관련성을 가지고 단어들을 모으는게 기본이니 관련성을 높이는 단어들을 많이 등장시켜주면 좋습니다. 아무 단어나 막 집어 넣을 수는 없고 어떤 일을 하는데 어떤 역할이 필요한지 그 역할은 무엇을 하는 것인지를 넣어주면 원하는 것으로 응답해 줄 확률이 높아집니다.

많이 해 보니 그런 지혜를 얻게 된거고. 그럼 고생 반복하고 ‘아 그렇구나’ 보다는 먼저 경험해서 얻은 지혜는 받아들이면 되죠. 역할까지 고민하기는 싫으니Promptius와 대화하면서 물어봐요. “이런 거 하고 싶은데 역할(또는 페르소나)은 뭘로 하면 좋을까요?”

여기서 중요한 것은 프롬프트에 역할 넣으면 응답이 원하는 쪽으로더 가더라를 기억하는 거예요.

 

구분자 사용하기

네 번째 팁은 ‘구분자 사용하기’입니다. 삼중 따옴표, XML 태그, 섹션 제목 등을 사용하여 입력의 각 부분을 명확히 구분할 수 있습니다.

예를 들어:

삼중 따옴표로 구분된 텍스트를 하이쿠로 요약해주세요.

“””여기에 텍스트를 넣으세요”””

 

이렇게 하면 시스템이 입력의 각 부분을 정확히 이해하고 처리할 수 있습니다.

이렇게 하는 대부분의 이유는 응답(생성한 것)을 다른 곳에 사용하기 위해서 입니다. 글을 쓴다면 생성된 글을 어딘가에 제출하거나 올려야 하는데 이런 경우 마크다운이 좋고, 다른 프로그램에서 사용하기 위해서는 JSON이 좋습니다.

생성된 결과가 어디에 사용되어야 하는 지 체크해 봐야 한다는 거죠.

 

구분자 사용에 대해 좀 보강해 봅니다.

프롬프트에서 구분자(delimiter)를 사용하는 것은 입력의 다른 부분을 명확히 구분하는 좋은 방법입니다. 여기 몇 가지 일반적으로 사용되는 구분자와 예시를 들어 설명해 드리겠습니다:

  1. 별표 (**) 예: 중요 내용 이것은 중요한 내용입니다.
  2. 꺾쇠 괄호 (<>) 예: <지시사항>이 부분을 따라 하세요.</지시사항>
  3. 대괄호 ([]) 예: [주제] 이것은 주요 주제입니다. [/주제]
  4. 중괄호 ({}) 예: {배경정보} 이것은 배경 정보입니다. {/배경정보}
  5. 삼중 따옴표 (“””) 예: “”” 이것은 여러 줄의 텍스트입니다. “””
  6. 삼중 백틱 ()


이것은 주로
코드 블록에
사용됩니다.

      7. 대시 (---)

     8. 슬래시 (///) 예: /// 주석 시작 이것은 주석입니다. /// 주석 끝

 

마크다운을 구분자로 사용하기

코드 블록 ()
python
def example():
print("이것은 코드 블록입니다.")

특정 언어의 코드를 표시할 때 유용합니다.
수평선 (---, ___ 또는 ***)
---
이것은 섹션 구분선입니다.

강조 (* 또는 **)
*이탤릭* 또는 **볼드**로 중요한 부분을 강조할 수 있습니다.

목록 (-, *, +)
- 항목 1
- 항목 2
* 하위 항목 A
* 하위 항목 B

링크 [링크 텍스트](URL)

테이블
| 열1 | 열2 |
|-----|-----|
| 행1 | 데이터 |
| 행2 | 데이터 |

예시 제공하기

다섯 번째 팁은 ‘예시 제공하기’입니다. 때로는 일반적인 지침을 제공하는 것보다 구체적인 예시를 제공하는 것이 더 효과적일 수 있습니다.

예를 들어, 특정한 응답 스타일을 원할 때 “이런 식으로 대답해주세요”라고 말하고 예시를 제공할 수 있습니다.

좀 복잡한 과정을 거쳐야 만들어지는 응답이라면, 지시하는 게 쉽지 않고 꽤 길어질 수 있습니다. 길게 길게 설명해 주는 거보다 예를 주는 게 좋을 때가 자주 있습니다. 응답이나 중간 생성되는 것들에 대한 예가 있다면 대화가 쉬워집니다.

Promptius가 함께 프롬프트를 생성할 때도 많은 경우 예를 들어 설명해 주는 이유도 이런 거죠.

원하는 출력 길이 지정하기

마지막 팁은 ‘원하는 출력 길이 지정하기’입니다. 시스템에게 특정 길이의 출력을 요청할 수 있습니다.

예를 들어, “약 50단어로 요약해주세요” 또는 “3개의 bullet point로 요약해주세요”라고 요청할 수 있습니다.

원하는 것이 분명하면 분명하게 말해서 AI가 움직일 범위를 제약주는 것은 원하는 응답을 얻는 데 도움이 되겠죠?

대화를 한다는 것도 재미 흥미가 아니라면, 결국 자신이 원하는 것으로 가까이 가기 위한 제약을 더 하는 것입니다.

 

이상으로 사용자와 시스템 간의 효과적인 커뮤니케이션을 위한 팁들을 알아보았습니다. 이러한 방법들을 실제로 적용해보면서, 여러분만의 효과적인 커뮤니케이션 방식을 개발해 나가시기 바랍니다.

 

기억하세요, 실천이 중요합니다! 이러한 팁들을 꾸준히 사용하다 보면, 시스템과의 상호작용이 더욱 원활해지고 효율적으로 변할 것입니다. 행운을 빕니다!

 

프롬프트를 만든다면 기억할  것!!!

  • 프롬프트를 만든다는 것은 재사용한다는 것이 전제가 된다. 재사용이 더 많이 되다면, 질의나 지시 내용 중에 일반화 할 내용이 있다는 것. 이런 경우에는 프롬프트 템플릿을 만들어야 한다. Promptius와 대화를 시작했다는 것은 프롬프트 템플릿이 필요했다는 것. CDPE가 기존 프롬프트 엔지니어링과 차이를 두려는 것도 대화 방식을 전제로 한 프롬프트 템플릿을 만들겠다는 것. 
  • 역할과 예를 반드시 포함하도록 해. 몸의 좋은 습관이 되게 하자. 
About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*