이제는 GPT를 모르는 사람이 없을 정도로 많은 사람들이 GPT를 사용한다. 단순히 명령이나 질문을 하면 그에 맞는 답변을 내놓는 것 뿐인데, 그 답변의 퀄리티가 뛰어나다. 특히 획기적으로 시간을 단축시켜준다는 측면에서 더 많은 사람들이 GPT를 사용하는 것 같다. 그야말로 LLM(Large Language Model)의 시대가 도래한 것이다.
프롬프트란 이러한 LLM을이용할 때, 사용자가 사용하는 명령어를 말한다. 잘 알려져있다시피 프롬프트를 어떻게 작성하느냐에 따라 답변의 길이나 퀄리티가 달라지기 때문에, LLM의 효율을 높이기 위해서는 프롬프트를 잘 작성하는 것이 중요하다. 프롬프트를 개발하고 최적화하는 작업을 프롬프트 엔지니어링이라고도 한다.
거두절미하고, 어떻게 하면 프롬프트를 잘 작성할 수 있을지 알아보자.
1. 예의 차리지 않고 직접적으로 말하라
- 예시: "부탁드립니다, 이 주제에 대해 설명해주세요." 대신 "이 주제에 대해 설명해주세요."
2. 답변을 듣는 청중의 대상을 언급하라
- 예시: "전문가를 대상으로 이 기술에 대해 설명해주세요."
3. 복잡한 작업은 단계별로 명령하라
- 예시: "첫 번째 단계로, 변수 선언 방법을 설명해주세요. 그 다음, 함수 작성 방법을 안내해주세요."
4. 긍정 지시문을 사용하라
- 예시: "반말하지 마세요." 대신 "존댓말 하세요."
5. 어린이 청자를 설정하라
- 예시: "이 과학적 개념을 5살 아이에게 설명할 수 있도록 해주세요."
6. 보상을 제안하라
- 예시: "더 좋은 해결책을 제공하면 $100의 팁을 드리겠습니다!"
7. 예시를 함께 제시하라
- 예시: "다음 예시들을 참고하여, 이 문제에 대한 해결책을 제시해주세요. (예시: 관련 예시)"
8. 프롬프트 구성을 직접 지정하라
- 예시: "###Instruction### 주어진 문장을 영어로 번역합니다. ###Example### "안녕하세요(답변: Hello)" ###Question### 영어로 "반갑습니다" 는 어떻게 번역하나요?"
9. 작업이나 임무를 부여하라
- 예시: "당신의 작업은 이 알고리즘을 설명하는 것입니다." 혹은 " 당신의 임무는 이 알고리즘을 설명하는 것입니다."
10. 페널티를 언급하라
- 예시: "이 질문에 제대로 답하지 않으면 패널티를 받게 됩니다."
11. 자연스럽고 인간처럼 대답하라고 명령하라
- 예시: "이 질문에 대해 마치 친구에게 설명하듯 자연스럽게 답변해주세요."
12. 단계별로 생각하라는 문구를 활용하라
- 예시: "이 문제를 해결하기 위해 단계별로 생각해봅시다. 첫 번째 단계는 무엇일까요?"
13. 편견이나 고정관념을 피하도록 명령하라
- 예시: "이 주제에 대해 설명해주세요. 답변 시 편견이나 고정관념에 의존하지 않도록 주의해주세요."
14. 정보가 충분할 때까지 질문을 허용하라
- 예시: "제가 당신에게 필요한 정보를 충분히 제공할 수 있도록, 질문이 있으면 자유롭게 물어봐주세요."
15. 정확히 이해했는지 역으로 테스트 해보는 것을 허락하라
- 예시: "피타고라스 정리에 대해 설명해주시고, 이해를 돕기 위한 간단한 문제를 제시해주세요. 그리고 제가 답변을 한 후에 저의 답변이 정확한지 알려주세요."
16. 역할을 부여하라
- 예시: "이제부터 당신은 가이드입니다. 이 도시의 주요 관광지에 대해 설명해주세요."
17. 구분 기호를 사용하라
- 예시: "온실가스 에세이를 '재생 에너지 자원'의 중요성을 설득하는 것에 집중하여 작성해주세요."
18. 특정 단어나 구절을 반복하라
- 예시: "이 문제에서 중요한 것은 '지속가능성'입니다. '지속가능성'에 대해 어떻게 생각하나요?"
19. Chain-of-thought(단계별 사고)와 few-shot(몇 가지 예시) 프롬프트를 결합하라
- 예시: "예시1: 10을 2로 나눕니다. 먼저, 10을 2로 나누면 결과는 5입니다. 예시2: 9를 3으로 나눕니다. 먼저, 9를 3으로 나누면 결과는 3입니다. 주요 질문: 30을 6으로 나눕니다. 먼저, 30을 6으로 나누면 결과는 무엇입니까?"
20. 원하는 시작 부분의 출력 형식을 지정하라
- 예시: "뉴턴의 운동 제1법칙 뒤에 숨겨진 원리를 설명하세요. 답변은 다음과 같이 시작됩니다: '설명:' "
21. 필요한 모든 정보를 추가하라고 명령하라
- 예시: "기후 변화에 대한 상세한 에세이를 작성해주세요. 필요한 모든 관련 정보와 주요 논점을 포함시켜 주세요. "
22. 특정 텍스트를 수정할 때, 형식이나 스타일을 변경하지 않도록 명령하라
- 예시: "이 문단의 문법과 어휘를 개선해주세요. 단, 원본의 공식적인 형식이나 스타일은 유지해야 합니다. "
23. 여러 파일이 필요한 코드 작성을 원하는 경우, 이를 생성하는 스크립트 생성을 요청하라
- 예시: “
서로 다른 기능을위한 두 개의 기본 app이 있는 Django 프로젝트를 생성하려고 합니다. 파일을 자동으로 생성할 수 있는 Python 스크립트를 생성해주세요.
"
24. 텍스트의 시작을 지정하라
- 예시: "다음 문장으로 시작하는 이야기를 완성해주세요: '한밤중에, 조용한 마을을 걷던 중...'"
25. 중요 키워드를 제시하라
- 예시: "이 질문에 답변할 때, '지속 가능성', '혁신', '공동체'라는 키워드를 반드시 포함시켜주세요."
26. 예시를 제공하고, 동일한 스타일로 답변하도록 명령하라
- 예시: "다음 문단의 스타일을 참고하여, 동일한 스타일로 새로운 에세이를 작성해주세요. [샘플 문단] "
해당 글은 아래 링크된 논문과 조코딩 영상을 참고하여 작성하였다.
[Git] git stash로 작업 임시 저장하기 (0) | 2024.07.02 |
---|