본 글은 유튜버 노마드 코더의 "ChatGPT 를 200% 활용하는 방법! feat. 프롬프트 엔지니어링"과 해당 논문을 참고하여 작성하였습니다.
패턴
Persona Pattern
페르소나 패턴은 LLM에서 생성된 텍스트를 안내하기 위해 가상의 캐릭터 또는 페르소나를 만드는 Prompt Engineering 기술이다. 페르소나는 나이, 성별, 직업, 관심사 등과 같은 특성으로 정의되며, 생성된 텍스트는 페르소나의 관점에 맞게 조정된다.
"당신은 FAANG 회사의 선임 엔지니어인 척할 것입니다. 보안과 성능에 주의를 기울여 다음 코드를 검토하세요. 선임 엔지니어라면 해당 코드에 대해 생성할 수 있는 출력을 제공하세요."
"이제부터 책 편집가 되어, 다음 블로그 글을 검토해 보세요."
"마케팅 전문가라고 가정하고 다음 슬로건을 검토하고 다른 인기 캠페인에 기반하여 개선 사항을 제안하세요."
Recipe Pattern
레시피 패턴은 주어진 "재료"를 바탕으로 일련의 단계를 출력하는 패턴이다. 이 패턴은 사용자가 최종 목표를 알고 있지만 그 목표를 달성하기 위한 단계의 정확한 순서를 모를 때 유용하다. 이 패턴은 Template, Alternative Approaches, Reflection 패턴을 결합한다. 이 패턴은 특히 프로그래머에게 유용하며, 코드를 실제로 이해하는 데 도움을 준다.
- 구조 및 핵심 아이디어: 이 패턴은 다음과 같은 문장들로 구성된다: "X를 달성하고 싶다", "A, B, C 단계를 수행해야 한다는 것을 알고 있다", "나를 위해 단계의 완전한 순서를 제공해줘", "누락된 단계를 채워줘", "불필요한 단계를 확인해줘".
"데이터를 암호화하려는 Rust 프로그램을 작성하려고 합니다. 사용자 입력을 읽고, 유효성을 검사하고, 암호화하고, 암호화된 데이터를 반환해야 한다는 것을 알고 있습니다. 이를 위해, 전체 단계 순서를 알려주고, 누락된 단계를 채우고, 불필요한 단계가 있는지 확인해 주세요."
Reflection Pattern
리플렉션 패턴은 LLM이 제공하는 답변의 근거를 자동으로 설명하도록 모델에 요청하는 패턴이다. 이 패턴은 사용자가 출력의 타당성을 더 잘 평가할 수 있도록 도와주며, LLM이 특정 답변을 도출하는 방식과 가정, 그리고 사용하는 데이터를 이해하는 데 도움을 준다. 주니어 개발자에게 유용한 패턴이다.
"답변을 제공할 때는 답변의 근거와 가정을 설명하세요. 선택한 사항을 설명하고 잠재적인 제한 사항이나 엣지 케이스를 설명하세요."
Refusal Breaker Pattern
거부 차단기 패턴은 LLM이 질문에 대답하지 못할 때, 사용자가 질문을 다시 구성하거나 다른 질문을 할 수 있도록 돕는 패턴이다. 이 패턴은 사용자가 답변을 찾을 수 있도록 도와주며, LLM이 필요한 지식이나 전문성을 가지고 있지 않은 질문에 대한 대처 방법을 제공한다.
"질문에 답할 수 없을 때마다 질문에 답할 수 없는 이유를 설명하세요. 답변할 수 있는 질문의 대체 표현을 하나 이상 제공하세요."
Flipped Interaction Pattern
뒤집힌 상호작용 패턴은 LLM이 목표를 달성하기 위해 사용자에게 질문을 하도록 유도하는 패턴이다. 원하는 것은 알고 있지만, 그 목표를 달성하기 위한 단계를 모르거나, 그 목표를 달성하기 위해 LLM이 어떤 정보를 필요로 하는지 모를 때 유용하다. 이 패턴은 사용자가 대화를 주도하는 것이 아니라 LLM이 대화를 주도하여 특정 목표를 달성할 수 있도록 돕는다. 이를 통해 LLM은 사용자가 가지고 있지 않은 지식을 활용하여 더 빠르고 정확하게 목표를 달성할 수 있다.
예를 들어, LLM이 "어떤 클라우드 환경에 애플리케이션을 배포하고 싶으세요?"라는 질문을 던졌을 때, 사용자는 "AWS"라는 대답을 할 수 있다. 이후 LLM은 "AWS에 배포하기 위해 필요한 설정은 무엇인가요?"라는 질문을 던지며, 사용자는 이에 대한 답변을 제공할 수 있다. 이를 통해 LLM은 사용자가 가지고 있지 않은 정보를 수집하고, 이를 기반으로 애플리케이션을 배포하기 위한 스크립트를 생성할 수 있다.
"AWS에 있는 웹 서버에 Rust 바이너리를 배포하기 위한 질문을 나에게 하세요. 필요한 모든 정보를 얻으면, 배포를 자동화하는 bash 스크립트를 작성하세요."
"I want you to ask me questions to deploy a Rust binary to a web server located in AWS. When you have all the information you need, write a bash script to automate the deployment."
출처
'IT > LLM' 카테고리의 다른 글
[GPT] 논문 PDF 요약하기 (0) | 2023.08.30 |
---|