1. 명확하고 구체적인 지시:

    프롬프트는 모호하지 않고 명확하게 작성해야 합니다. LLM은 주어진 지시를 그대로 따르기 때문에, 사용자가 원하는 작업이 무엇인지 명확하게 전달해야 합니다. 예를 들어, "Large Language Model에 대해 알려줘" 보다는 "Large Language Model의 작동 원리, 장점, 단점, 그리고 미래 전망에 대해 자세히 설명해줘" 와 같이 구체적인 질문을 해야 합니다.

  2. 논리적인 절차 및 근거 제시:

    복잡한 작업을 요청할 경우, 단계별로 논리적인 절차를 제시하고 LLM이 답변의 근거를 명확히 밝히도록 요구해야 합니다. "strawberry 에는 알파벳 'r' 이 몇 개인가? 근거와 함께 답해 줘"와 같이 답변에 대한 근거를 요구하는 것이 좋습니다. 또한, "'기억하고, 생각하고, 고생하고' 에는 '고'자가 몇 개나 있나? 근거와 함께 답해 줘" 와 같은 질문에서, LLM이 단어의 의미를 파악하여 정확한 답변을 도출하도록 유도하는 것이 중요합니다.

  3. 출력 형식 지정:

    원하는 답변 형식을 명확하게 지정하여 출력물의 가독성을 높여야 합니다. 예를 들어, 표, HTML, JSON 등의 형식을 지정할 수 있습니다. "다음 양식을 사용하십시오. 답장 : 여기에 답장 내용\n불만 사항 : '예' 또는 '아니오'" 와 같이 특정 양식을 요구하는 프롬프트를 작성할 수 있습니다.

  4. 역할 명시 및 맥락 제공:

    LLM에게 특정 역할을 부여하고, 답변에 필요한 맥락 정보를 충분히 제공해야 합니다. 예를 들어, "당신은 마케팅 팀에 도움을 주어야 합니다." 와 같이 역할을 명시하고 혹은 "지난 주 학교 운영위원회의 학부모 회의를 깜박 잊고 불참했는데, 관련된 분들께 진심을 느낄 수 있는 정중한 사과의 메일을 작성해 줘" 와 같이 답변에 필요한 문맥을 제공하는 것이 좋습니다.

  5. 단계적 추론과 토큰 제한 고려:

    LLM이 단계적으로 추론 과정을 거치도록 유도하고, 토큰 제한을 고려하여 프롬프트 길이를 조절해야 합니다. 특히 긴 텍스트를 요약하거나 복잡한 계산을 수행할 때는 "차근차근" 또는 "step by step" 과 같은 키워드를 사용하여 LLM이 단계별로 답변을 생성하도록 유도하는 것이 효과적입니다.

  6. 다양한 시도와 검증:

    다양한 프롬프트 작성 기법 (예: Few-Shot/Zero-Shot CoT, Self-consistency CoT, Least-to-Most CoT, Re-Act CoT) 을 파악하고, 실제로 프롬프트를 작성하고 테스트하는 과정을 통해 최적의 프롬프트를 찾아가는 것이 중요합니다. 또한, 생성된 출력물을 항상 검증하고 필요에 따라 프롬프트를 수정해야 합니다.

  7. 추가 팁: