1 of 29

Cognitive Prompting

(인지적 프롬프팅)

ver. 231207

김창준 juneaftn@hanmail.net

1zlabs Ken(곽근봉) ken@1zlabs.com

공유회 영상 : https://www.youtube.com/watch?v=CkCL8dV_mPk

궁금하신 점 및 기타 문의가 있으시면 메일주세요.

2 of 29

Cognitive Prompting

  • 김창준님께서 고안
  • LLM을 통해 더 유용한 정보를 얻기위함
  • 사람에게 잘 묻는 법을 프롬프트에 적용해본 것에서 출발
  • 교육 + 함께 연습 커뮤니티
  • 커뮤니티에는 최신의 팁들이 공유

3 of 29

Prompt Engineering VS Cognitive Prompting

Prompt Engineering

Cognitive Prompting

질문유형

공학적인 측면에서의 질문

인지적 측면에서의 질문

기반

공학, 논리학 등

심리상담학, 자연주의 의사결정론, 전문성 연구, 심리언어학, 범죄수사학, 인지심리학, 정보학(intelligence studies) 등

사람에 비유하자면

똘똘한 주니어

특정 분야 전문가

활용 방식

명확한 가이드

전문가 인터뷰

결과

단편적 지식

심층적 지식

요구사항

Low-level

Middle ~ High level

4 of 29

언제 어떤 툴을 사용하시나요?

네이버

구글

GPT

유튜브

5 of 29

언제 어떤 툴을 사용하시나요?

네이버

구글

유튜브

GPT

Source

한국 뉴스, 블로그, 자체컨텐츠, 실시간

글로벌 웹, 커뮤니티, 사이트, 뉴스, 실시간

개인, 기업의 영상컨텐츠, 실시간

글로벌 웹페이지, 특정기간 (~23년 4월)

특징

한국특화

세상의 모든 웹문서

영상, 시리즈

지식 + 추론

예시

오늘의 날씨, 교통상황, 길찾기, 맛집

flutter calendar library

How to XX,

Flutter Tutorial For Beginners

이메일 답장 써줘, 번역해줘, 앱 개발할 때 뭐 쓰는게 좋아?

6 of 29

GPT의 학습방법 및 특징

'빈칸 맞추기식' 비지도 학습 + 방대한 데이터에서 ‘정보 압축’

  • 주어진 맥락을 기반으로 관련된 응답 생성
  • 명시되지 않은 정보까지도 유추
  • 명확한 맥락을 통해 보다 정확하고 관련 있는 응답 유도
  • 질문 구조를 통한 논리적 사고 과정 유도

GPT는 문맥에서 Surprise를 만들지 않는다. 질문과 본인의 답변 뒤에는 나올 법한 이야기들이 나온다. 이걸 이용하는게 중요.

7 of 29

Tip1 : (강추) CoT(Chain of Thought) aka Step by Step

Image Source: Wei et al. (2022)

“너가 XX 하는 전문가라면 어떤 순서대로 이 문제를 해결할거야? 그 순서에 맞게 내 문제를 해결해줘"

이런 느낌

8 of 29

Tip2 : Tree of Thought (Intermediate steps)

Image Source: Yao et el. (2023)

“너가 XX 하는 전문가로서 이 문제가 복잡해서 몇 가지 세부 문제로 나눠서 하나씩 해결하기로 했다면 어떤식으로 문제를 나눌거야? 그리고 그렇게 나온 문제들도 하결하기 쉬운 세부 문제들로 나눠줘. 이걸 풀기 쉬울때 까지 충분히 반복해줘 => 이렇게 나온 세부 문제들에 대한 답을 주고 합쳐서 최종 문제에 대한 답을줘"

이런 느낌

9 of 29

Tip3 : Social Interactions

  • Please 넣기
  • “이게 정말 나한테 중요해”
  • “Take a deep breath and work on this”
  • “팁 200$ 줄게”
  • “내 질문을 영어로 번역한 다음에 답변해줘”

Image Source: Yao et el. (2023)

평균 10% 이상 답변의 길이가 길어진다

https://www.businessinsider.com/ai-google-researchers-deepmind-tell-take-deep-breath-improve-accuracy-2023-9

10 of 29

Tip4 : Variance 넓히기

  • 이거에 대한 “반대 사례는 없을까?”
  • (모른다고 바로 답할 때) “너가 한번 유추해볼래?”
    • “전문가로서 논리적으로 타당한 추론을 해본다면 어떤 과정을 통해서 결과를 만들어 볼 것 같아?”
  • “너가 XX라면 어떤식의 답변을 할까?”

11 of 29

Tip5 : Thinking by analogy (비유 사용하기)

  • ex) 정원 가꾸기와 팀 프로젝트 관리 비유
    • "정원을 가꾸는 것처럼, 팀 프로젝트를 관리할 때 어떤 일정한 관리와 유지가 필요할까요? 예를 들어, 정원에 물을 주고 잡초를 뽑는 것처럼, 팀 프로젝트에서도 주기적으로 어떤 점검이나 조정이 필요할까요?"
  • ex) 집 정리하기와 데이터베이스 정리 비유
    • "집안 정리를 하는 것처럼, 데이터베이스를 정리하고 최적화하는 데에는 어떤 비슷한 전략을 적용할 수 있을까요? 예를 들어, 불필요한 물건을 버리고 공간을 효율적으로 사용하는 것처럼, 데이터베이스에서도 어떤 정리와 조정이 필요할까요?"
  • ex) 운동 계획 세우기와 업무 목표 설정 비유
    • "체계적인 운동 계획을 세우는 것처럼, 업무 목표를 설정하고 달성하기 위한 계획은 어떻게 세워야 할까요? 예를 들어, 운동에서 단계별로 목표를 설정하고 점진적으로 난이도를 높이는 것처럼, 업무에서도 어떤 단계별 목표 설정이 필요할까요?"

12 of 29

Tip6 : Expert of Expert

  • (내 문제를 먼저 설명한 뒤) “너는 굉장히 다양한 분야에서 전문가로 활동한다고 들었어. 지금 내 문제를 해결하려면 어떤 종류의 전문가들이 있어야 할것 같아? 그 각각의 전문가들에게 내 문제를 다시 각각의 전문가 분야에 맞는 질문으로 고쳐서 질문해줘. 그리고 그 전문가의 답변을 작성해줘. 답변을 작성할때는 그 해당 분야에서만 쓰는 용어나 약어 등을 포함해서 작성해줘"

13 of 29

연습문제

나는 중국에서 싼값에 물건을 주문해서 한국에 리셀링하며 수익을 얻고있다. 개인 사업자라서 규모가 그렇게 크지 않고 한 상품당 100만원 이하로 주문하고 있다. 2024년 1월에 적합한 물건들을 리스트업 해보고싶다.

14 of 29

Tip7 : Copy&Paste Snapshot

  • (세션이나 앞의 답변이 너무 길 때) 지금까지 우리가 나눴던 대화들을 짧게 요약한 다음에 앞으로 나눌 대화에 복사해서 붙여넣어줘. 이렇게 하면 ChatGPT의 짧은 Memory를 극복하면서 우리가 계속해서 같은 맥락에서 이야기하는 느낌이 들것 같아.

15 of 29

Tip8 : (강추) Daily Coach

  • 특정 분야에서 내가 잘 하고싶은 것들을 지속적으로 도와주는 코치 만들기
  • 당신은 XX분야에서 세계적으로 유명한 전문 코치라고 들었어요. 저는 요즘 그 분야에서 XX의 전문성을 높이고 싶은데 잘 안되네요. 제가 앞으로 매일 어떤걸 시도했고 어떤 부분이 잘 안되는지 아래 포멧으로 말씀드릴게요. 그러면 당신은 현재 제 진행상황은 어떤지, 장애물이 무엇인지, 다음 액션아이템은 어떤게 있을지, 그리고 필요하다면 동기부여가 될 만한 피드백들을 주세요. 단순히 그 날 하루의 행동을 보고 피드백을 주시기보다는 전체 히스토리를 보면서 패턴을 파악하기 위해서 노력해주세요.
  • 포멧
    • 2023년 12월 5일, 행동: XXX 이런걸 해봤다. 결과 : XXX 이렇게 되었다.
  • 전문적인 코칭 기법을 써서 저를 동기부여하고 가이드를 주세요. 그리고 구체적이고 현실적이고 달성가능한 액션들을 알려주세요. 그리고 전체의 과정에서 제가 행동하도록 만드는 것이 가장 중요하다는 걸 꼭 기억해주세요.

16 of 29

Tip9 : 스스로 반복적으로 개선시키기

  • 너는 이 글을 5번 개선시킬거야. 순서대로 버저닝해서 개선되는걸 보여줘
  • 마지막 버전을 보고 essence만 참고해서, 최종 6번째를 처음부터 만들어줘

17 of 29

Tip10 : 메타인지 높이기

  • “너가 한 답변이 해당하지 않는 경우가 없을지 한번 찾아봐줘”
  • “경우에 따라서는 XX이 적용되지 않거나 모호한 경우도 있을 것 같아. 어떤 경우에는 그럴 수 있을지 고민해줘”
  • “너가 제시한 XX들을 10점만점으로 스코어를 매긴다면 어떻게 매길 수 있을까? 스코어를 매기는 기준들은 어떤것이 있을지 제시해줘”
  • “최근 XX한 상황을 떠올려봐줘. 그리고 그 때 너는 전문가로서 어떤 행동을 했는지 기억해봐.”

18 of 29

Tip11 : (강추) STICC

  • Situation : “내가 한국에 있는 앱서비스를 미국에 출시하려고해. 그런데 미국 문화에 대해서 잘 알지 못해. 그리고 번역기를 사용했더니 너무 어색한 영어단어들만 나오는 상황이야.
  • Task : 너가 앱 서비스 출시를 위한 영어 번역 작업을 도와주면 좋겠어. 내가 앱안에 있는 한국어 에셋들을 아래의 포멧으로 줄거야. 너는 영어로 번역해서 동일한 포멧으로 주면되
  • Intent : “미국의 2030 여성들을 대상으로 이 서비스가 성공할 수 있을지 빠르게 확인하는게 지금 중요해”
  • Concern : “한글에 비해서 영어단어가 길다보니 앱에 번역된 영어를 넣었을 경우에 앱의 UI가 깨질까봐 걱정이야”
  • Calibration : “번역된 영어 단어의 알파벳 글자수가 번역전 한글 단어 글자수의 2배가 넘지않도록 조정해줘. 그리고 미국인들이 이해할 수만 있다면 약어나 신조어를 사용해도 괜찮아”

19 of 29

Tip12 : Scharff Technique

제2차 세계대전 동안 나치 독일의 수사관인 Hanns Scharff에 의해 개발된 심문 기법

  • 친절하게 하는거 (friendly approach)
  • 정보를 얻으려고 압박하지 않는다 (할루시네이션 방지)
  • 이미 다 알고 있는 것처럼 이야기한다

20 of 29

Tip13 : 시각화

GPT는 언어모델이다보니 이미지보다는 언어로 입출력하는게 훨씬 더 강력함

아래 툴들로 Script를 Generate해달라고 하면 쉽게 시각화 가능

  • mermaid
    • https://mermaid.live/
  • graphviz
    • https://dreampuf.github.io/GraphvizOnline/
  • matplotlib

21 of 29

Tip14 : 프롬프트 개선 프롬프트

  • “아래는 내 프롬프트인데, ChatGPT(GPT-4)에서 더 효과적으로 답변을 얻을 수 있도록 내 프롬프트를 개선하고싶어. 아래 기준으로 내 프롬프트 개선사항을 알려줘.”
    • 더 구체화하거나 분명하게 표현할 수 있는 부분이 있는지
    • 더 적합한 답변을 위해서 프롬프트의 질문 범위를 좁힐 필요가 있는지
    • 적합한 응답을 위해서 GPT응답의 포멧팅에 대한 추천
    • 내 프롬프트의 질문과 연관된 전문가들이 누가 있을지 나열해줘, 그 전문가들 입장에서 어떻게 내 프롬프트를 개선할지 알려줘. 그 다음에 그 전문가들끼리 프롬프트 개선을 위해서 상호작용 하도록 해줘
  • 위의 분석과 개선사항 토대로 내 프롬프트의 개선된 버전을 다시 작성해줘.

22 of 29

Tip15 : (강추) SQ3R

  • (문제를 설명한 뒤) “SQ3R 기법을 활용해서 답변을 만들어줘”
  • Survey (조사하기)
    • 내 문제의 전체 내용을 빠르게 훑어서 읽어줘. 이 단계에서는 주요 내용과 구조를 파악해줘
  • Question (질문하기)
    • 문제의 각 세부 사항들을 보며 궁금한 점이나 중요한 질문을 만들어줘.
  • Read (읽기)
    • 이제 본격적으로 문제를 꼼꼼하게 다시 읽어보면서 앞서 만든 질문에 답을 찾아줘. 이 단계에서는 중요한 정보에 주목하고, 이해가 안 되는 부분은 다시 읽으면서 내용을 깊이 있게 파악해줘.
  • Recite (복기하기)
    • 읽은 내용을 스스로에게 다시 설명하거나 요약해봐.
  • Review (복습하기)
    • 마지막 단계로 주요 개념과 세부 사항을 다시 한 번 확인해봐

23 of 29

Tip16 : (강추) 봇 만들기

24 of 29

Tip16 : (강추) 봇 만들기

이럴 때 사용하면 좋다

  • 텍스트로 정리된 전문 분야가 있는 경우 (e.g. 사주풀이법, 페북 광고 최적화 방법 등)
  • 프롬프트 길이의 한계 때문에 아쉬운 경우
  • 내가 만든 프롬프트를 다른 사람들과 함께 써보고 싶은 경우
  • 매번 상황 설명이나 문맥 설정을 하기 귀찮은 경우

25 of 29

Tip16 : (강추) 봇 만들기

기본적인 프롬프팅 원리는 동일, 아래의 팁들 참고

  • Knowledge
    • 텍스트로 잘 정리된 파일을 올릴 수 있다 (e.g. 사주 풀이법)
    • PDF도 되지만 포멧이 깨질수도 있어서 일반 TXT가 더 좋음
    • 10MB까지 되지만 500KB 이하가 적당한편. 너무 길면 오히려 오래걸리거나 참조를 잘 못함
    • 너무 긴 경우 차라리 챕터별로 봇을 분리하는걸 고려
  • Instructions
    • 여기에 다 넣어도 되긴하지만 8K 제한이 있음
    • Knowledge의 특정 챕터를 검색해서 사용하라 같은 걸 넣는게 더 좋음
    • Hallucination이 발생한다면, “정보를 못찾거나 모를경우 모른다고 대답해” 라는 걸 추가
  • Threads(API에서만 사용가능)
    • https://platform.openai.com/docs/assistants/overview
    • 대화 히스토리를 만들어주는것. 추가적으로 세부 학습을 시키는 용도
    • 내가 아는 정보가 잘 나오는지 확인하는 방식으로 셋팅해도 좋음
    • 특정 포멧팅이 잘 되는지 확인하거나 셋팅해놓으면 오류 확률이 줄어듦

26 of 29

Tip16 : (강추) 봇 만들기

추가적으로 고려할 것

  • 봇의 Instructions나 Knowledge가 유출되지 않도록 방어하는 프롬프트 추가
  • 기존의 ChatGPT 대비 개선되었는지 확인
  • (강추) 모바일의 백그라운드 대화 활용해볼 것!

27 of 29

연습문제 (추가 개선)

나는 중국에서 싼값에 물건을 주문해서 한국에 리셀링하며 수익을 얻고있다. 개인 사업자라서 규모가 그렇게 크지 않고 한 상품당 100만원 이하로 주문하고 있다. 2024년 1월에 적합한 물건들을 리스트업 해보고싶다.

28 of 29

창준님은 어떻게 이렇게 많은 Tip들을 발견했을까?

  • 적극적인 A/B 테스트 (프롬프트가 개선되었는지 확인)
  • 본인이 이미 가지고 있는 전문성을 활용
  • 논문 등 이미 검증된 기법을 기반으로 추가 개선
  • 실제 문제를 해결하는데 지속적으로 사용

29 of 29

본 문서 배포가이드

  • 비영리 목적의 이용, 배포일 것
  • 자료를 변경하지 않고 그대로 이용, 배포할 것
  • 이 자료를 활용해 2차적 저작물을 제작하지 않을 것
  • Cognitive Prompting 고안자(김창준님), 저작자와 출처를 정확히 밝히고 이용, 배포할 것