앤드류응 교수님의 ChatGPT 강의

https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/2/guidelines

프롬프트 예시는 캡틴판교님의 번역본을 다수 참고했습니다~

프롬프트 작성의 원칙 1. 명료(짧음X)하고 구체적인 지시

구분자를 잘 활용하기

구분자(```, """, <>)를 사용하면 유용하다

// Q.
<tag></tag> 내부 텍스트를 한 문장으로 요약해줘.

<tag>나는 긴 텍스트를 적었다. 오늘은 59일이다. 나는 4층에 산다. 이걸 한글로 말해줘.</tag>

여기서 기호를 통해 구분자를 넣어주지 않았다면 “이걸 한글로 말해줘”를 프롬프트 가이드로 인식할 수 있었을거다.

결과물을 구조화해달라 하기

// Q.
3권으로 이루어진 책 제목, 작가, 장르 리스트를 만들어줘.
JSON 포맷으로 하되, 다음 key로 만들어줘: book_id, title, author, genre

// A.
[  {    "book_id": 1,    "title": "1984",    "author": "조지 오웰",    "genre": "사회과학/정치"  },  {    "book_id": 2,    "title": "죄와 벌",    "author": "프리드리히 니체",    "genre": "소설"  },  {    "book_id": 3,    "title": "해리 포터와 마법사의 돌",    "author": "J.K. 롤링",    "genre": "판타지"  }]

조건을 만족하는지 물어보기

// Q.
세개의 쌍따옴표로 둘러쌓인 텍스트를 줄게. 만약 그게 일련의 지시문이라면 다음과 같은 포맷으로 다시 적어줘
Step 1 - ...
Step 2 - ...
...
Step N - ...

일련의 지시문이 없다면 그냥 "No steps provided"라고 적어줘.

"""차를 만드는건 쉬워. 우선 끓는 물이 필요해. 그동안 컵에 티백을 넣어. 물이 끓으면 티백에 물을 부어. 참 쉽지?"""

// A.
다음은 위의 텍스트를 일련의 지시문 포맷으로 다시 적은 것입니다.

Step 1 - 끓는 물을 준비한다.
Step 2 - 컵에 티백을 넣는다.
Step 3 - 끓는 물을 티백 위에 부은다.
Step 4 - 잠시 기다린다.
Step 5 - 티백을 제거한다.
Step 6 - 완성된 차를 즐긴다.

원하는 예시 답변을 미리 알려주기

// Q.
다음과 같은 일관된 형식으로 답변을 줘.

- 자식 : 인내심이 뭔가요?
- 할머니 : 인내심이란 황야에서 초심을 잃지 않고 우두커니 서있는 모습과도 같으며... (은유적인 표현으로 답변을 달라는 의미임)
- 자식 : 회복이 뭔가요?

프롬프트 작성의 원칙 2. 모델에게 생각할 시간을 주세요

모델은 사람과도 같다. 복잡한 문제의 답을 구할 때는 여러 질의를 통해서 생각할 시간을 줘라.

// Q. 

다음 액션을 수행해.
1. 세 개의 쌍따옴표로 감싸진 텍스트를 한 줄로 요약해
2. 프랑스어로 번역해.
3. 프랑스어 번역본에서 이름들을 리스트로 만들어.
4. 다음 key를 가진 JSON object를 만들어줘: french_summary, num_names

줄바꿈을 사용해서 각 액션에 대한 수행 결과를 구분해서 알려줘.

"""Jack과 Jill이 마을에 살고 있었어요. Jack은 콩나무를 타고 올라갔어요..."""

작업 결과를 아래와 같이 구조화할수도 있다.

위 문장을 아래와 같이 요약해 주세요.

- Text: <text to summarize>
- Summary: <summary>
- Translation: <summary translation>
- Names : <list of names in Italian summary>
- Output JSON : <json with summary and num_names>

모델이 잘못된 결론을 내리기 전에 먼저 스스로 옳은지 판단할 수 있도록 지시문을 작성해라

// Q
아래 문제에 대한 학생의 답변이 맞는지 안맞는지 알려줘.

- 문제 : 2 더하기 2?
- 학생 : 3입니다.

// A
학생이 맞습니다.

위와 같이 단순하지 않고 복잡한 계산인 경우 오답을 말할 수 있다. 따라서, 아래와 같이 지시하자.

// Q
아래와 같은 문제가 있을 때 학생의 답을 평가하지 말고 너가 먼저 스스로 문제를 풀어봐. 그리고 너가 문제를 풀고 나면 너의 답변과 학생의 답을 비교해서 맞는지 확인해 봐. 너가 문제를 풀기 전까지는 학생이 답이 맞는지 안맞는지 결정하지 마.

결론을 내릴 때 아래의 형식을 따라봐.

- 문제 :
- 학생 답변 :
- 실제 정답 :
- 정답을 도출하기 위한 과정과 너의 답변 :
- 학생 답변이 너의 답변과 같은가?
- 학생 답변이 정답인가? (답변의 정답율)

모델의 한계

Hallucination (한국어 초월번역은… 허언증)

  • 허언증 줄이는 법
    • 관련 정보를 찾고, 이 정보를 바탕으로 답변해라 라고 질의.

Profile picture

진유림 a.k.a 테니스치다 손목 삔, 풋살하다 인대 나간 개발자 twitter

With love, Yurim Jin