상세 컨텐츠

본문 제목

검증된 프롬프트 방식으로 GPT 효율 높이기

Information Technology/etc.

by Developer, Jiyong Kim 2024. 3. 21. 00:38

본문

이제는 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. 예시를 제공하고, 동일한 스타일로 답변하도록 명령하라

    - 예시: "다음 문단의 스타일을 참고하여, 동일한 스타일로 새로운 에세이를 작성해주세요. [샘플 문단] "

해당 글은 아래 링크된 논문과 조코딩 영상을 참고하여 작성하였다.

https://arxiv.org/abs/2312.16171

 

Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4

This paper introduces 26 guiding principles designed to streamline the process of querying and prompting large language models. Our goal is to simplify the underlying concepts of formulating questions for various scales of large language models, examining

arxiv.org

https://youtu.be/mC2b57u_s0k?si=VgF01d49OL2-UyZk

'Information Technology > etc.' 카테고리의 다른 글

[Git] git stash로 작업 임시 저장하기  (0) 2024.07.02

관련글 더보기