프롬프트 작성시 유용한 팁
LLM(대규모 언어 모델)에서 사용할 프롬프트 작성 시 다음 팁들을 활용하면 더 효과적인 결과를 얻을 수 있습니다.
- 역할 설정하기
- “당신은 [특정 역할/전문가]입니다”와 같은 표현으로 AI에게 특정 관점이나 전문성을 부여하세요
- 예: “당신은 경험 많은 마케팅 전략가입니다. 다음 제품의 타겟 시장 분석을 제공해 주세요…”
- 맥락 제공하기
- 충분한 배경 정보를 제공하여 AI가 상황을 더 잘 이해할 수 있도록 하세요
- 이전 대화나 참조 자료가 있다면 언급하세요
- 대상 청중이나 전문 지식 수준을 지정하면 적절한 복잡성 수준의 응답을 받을 수 있습니다
- 명확한 지시사항 제공하기
- 원하는 출력 형식을 명확히 지정하세요 (예: “다음 형식으로 답변해 주세요: 1. 개요, 2. 세부 내용, 3. 결론”)
- 작업의 목적과 의도를 설명하면 더 적절한 응답을 받을 수 있습니다
- 필요한 경우 예시를 포함하여 원하는 형식이나 스타일을 보여주세요
- 단계별 접근 유도하기
- 복잡한 문제는 단계별로 해결하도록 요청하세요
- “먼저 문제를 분석한 다음, 가능한 해결책을 제시하고, 마지막으로 최적의 방안을 추천해 주세요”
- 제약 조건 설정하기
- 단어 수 제한, 사용할 언어, 포함하거나 제외할 특정 주제 등을 명시하세요
- 예: “300단어 이내로 요약해 주세요” 또는 “전문 용어를 사용하지 않고 설명해 주세요”
- 체인 프롬프팅 활용하기
- Chain of Thought 방법
- 복잡한 작업은 여러 단계로 나누어 프롬프트를 작성하세요
- 이전 응답을 참조하며 다음 단계로 진행하도록 안내하세요
- 피드백 루프 만들기
- “당신의 응답을 검토하고 개선점을 찾아 수정해 주세요”와 같은 자체 평가 요청을 포함하세요
- 특정 기준이나 체크리스트를 제공하여 AI가 자신의 응답을 평가하도록 하세요
- 프롬프트 템플릿 활용하기
// 기본 템플릿 예시 역할: [AI가 맡을 역할] 맥락: [상황 설명과 배경 정보] 작업: [AI에게 요청할 구체적인 작업] 형식: [원하는 출력 형식] 제약사항: [단어 수, 스타일, 포함/제외할 내용 등] 예시: [원하는 응답의 예시]
- 프롬프트 실험 및 개선하기
- 처음부터 완벽한 프롬프트를 작성하기는 어렵습니다. 여러 번 시도하며 개선하세요
- 응답이 만족스럽지 않다면 프롬프트를 구체화하거나 다른 접근 방식을 시도하세요
- 성공적인 프롬프트는 저장해두고 유사한 작업에 재활용하세요
프롬프트 예시
역할: 당신은 교육 심리학 전문가입니다.
맥락: 고등학교 수학 수업에서 학생들의 학습 동기 부여에 어려움을 겪고 있는 교사입니다.
작업: 10대 학생들의 수학 학습 동기를 향상시킬 수 있는 5가지 실용적인 전략을 제공해 주세요.
형식: 각 전략에 대해 1) 간략한 설명, 2) 적용 방법, 3) 예상되는 효과를 포함해 주세요.
제약사항: 실행하기 쉽고 추가 자원이 거의 필요하지 않은 전략으로 제한해 주세요. 전문 용어는 최소화하고 500단어 이내로 작성해 주세요.
LLM 프롬프팅 실용 팁
- 영문으로 프롬프트 작성하기
- 대부분의 LLM은 영어로 학습된 데이터가 더 많아, 영문 프롬프트가 더 정확한 결과를 제공합니다. 한국어로 작성한 후 영어 번역을 하여 넣어도 됩니다.(번역은 구글 번역 또는 DeepL, 파파고 등)
- 구체적인 수치 활용하기
- “몇 가지 아이디어”보다 “5가지 아이디어”처럼 명확한 숫자를 지정하면 더 구조화된 응답을 받을 수 있습니다.
- 시스템 프롬프트 활용하기
- 대화 시작 시 시스템 프롬프트를 설정하여 AI의 일관된 행동 방식을 유지하세요.
- ChatGPT: 좌측 사이드바의 ‘ChatGPT’를 마우스 우클릭 – ‘개인맞춤설정’ → GPT의 성격 및 대답을 할 때 사용할 수 있는 ‘맞춤형 지침’을 설정할 수 있음. 나에 대한 정보도 저장을 해두면 그것에 더 적합한 결과를 얻을 수 있음. ‘저장된 메모리 참고’ On/Off를 통해 Open AI 회사가 내 정보에 접근 권한을 지정할 수 있음.
- Google Gemini: 좌측 사이드바의 ‘설정 및 도움말’ → ‘저장된 정보’에서 설정 가능
- Grok: 좌측 사이드바의 ‘내 아이콘’ 클릭 → ‘설정’ → ‘맞춤설정’에서 설정 가능
- Claude: 좌측 사이드바의 ‘내 이름’ 클릭 → ‘설정’ → ‘프로필’에 ‘직무’ 및 ‘Claude가 응답할 때 고려해야 할 개인 선호 사항은 무엇인가요?’에 입력 가능
- 출력 형식 명시하기
- JSON, 마크다운, 표 등 원하는 출력 형식을 구체적으로 지정하면 후처리 작업이 용이해집니다.
- JSON(JavaScript Object Notation) 형식: 데이터를 구조화된 형태로 표현하는 형식으로, 키-값 쌍으로 구성됩니다. API 통합이나 데이터 추출 시 유용합니다.
{ "name": "프롬프트 엔지니어링", "categories": ["AI", "LLM", "자연어처리"], "difficulty": "중급", "topics": [ {"name": "기본 프롬프트 작성", "importance": "high"}, {"name": "체인 오브 쏘트", "importance": "medium"} ] }
- 마크다운(Markdown) 형식: 텍스트를 쉽게 서식화할 수 있는 경량 마크업 언어입니다. 문서 작성, 블로그 포스트 등에 적합합니다.
# 제목 (H1) ## 소제목 (H2) - 항목 1 - 항목 2 - 하위 항목 2.1 **굵은 글씨**와 *기울임체*를 사용할 수 있습니다. [링크 텍스트](<https://example.com>) ```python print("코드 블록도 지원합니다")
- CSV(Comma-Separated Values) 형식: 데이터를 쉼표로 구분하여 표현하는 형식으로, 스프레드시트나 데이터베이스로 쉽게 가져올 수 있습니다.
이름,나이,직업 홍길동,30,개발자 김철수,25,디자이너 이영희,35,마케터
- HTML 형식: 웹 페이지 구조를 표현하는 마크업 언어로, 웹 콘텐츠 생성 시 유용합니다.
<!DOCTYPE html> <html> <head> <title>페이지 제목</title> </head> <body> <h1>주요 제목</h1> <p>문단 내용입니다.</p> <ul> <li>목록 항목 1</li> <li>목록 항목 2</li> </ul> </body> </html>
- YAML(YAML Ain’t Markup Language) 형식: 구성 파일이나 데이터 직렬화에 자주 사용되는 가독성 높은 형식입니다.
project: name: AI 학습 프로젝트 version: 1.0 components: - name: 데이터 수집 priority: high - name: 모델 학습 priority: medium settings: debug: true max_iterations: 100
- XML(eXtensible Markup Language) 형식: 데이터를 구조화하고 저장하기 위한 마크업 언어로, 웹 서비스나 구성 파일에 사용됩니다.
<?xml version="1.0" encoding="UTF-8"?> <course> <title>프롬프트 엔지니어링</title> <instructor>홍길동</instructor> <modules> <module id="1">기본 개념</module> <module id="2">고급 기법</module> </modules> </course>
- 표(Table) 형식: 행과 열로 구성된 데이터를 정리하여 보여줍니다. 비교 분석이나 정보 요약에 적합합니다. 프레임워크 장점 단점 REACT 체계적인 사고 유도 복잡한 문제에 시간 소요 Chain-of-Thought 단계적 문제 해결 토큰 소비량 증가 Few-Shot 빠른 학습 맥락 이해 제한적
- 온도(temperature) 설정 조정하기
- 창의적인 내용은 높은 온도(0.7~1.0), 사실적 정보는 낮은 온도(0~0.3)로 설정하세요.
- Few-shot 학습 활용하기
- 원하는 출력 예시를 2-3개 제공하면 AI가 패턴을 인식하여 유사한 형식으로 응답합니다.
- Few-shot, Zero-shot 학습법은 LLM에게 작업을 지시할 때 사용되는 프롬프팅 기법입니다:
- Zero-shot 학습: 예시 없이 직접 질문하는 방식으로, AI가 즉시 작업을 수행합니다. 간단한 질문이나 일반적인 정보를 요청할 때 효과적입니다.
질문: "우주에서 가장 큰 행성은 무엇인가요?"
- One-shot 학습: 하나의 예시를 제공한 후 유사한 작업을 요청합니다. AI가 패턴을 인식하여 동일한 형식으로 응답합니다.
입력: 질문: 대한민국의 수도는 어디인가요? 답변: 대한민국의 수도는 서울입니다. 질문: 일본의 수도는 어디인가요?
- Few-shot 학습: 여러 예시를 제공하여 AI가 패턴을 더 확실하게 학습하도록 합니다. 복잡한 형식이나 특정 스타일의 응답이 필요할 때 유용합니다.
입력: 프로젝트: 웹사이트 리뉴얼 목표: 사용자 경험 개선, 모바일 최적화 기간: 3개월 예산: $15,000 프로젝트: 마케팅 캠페인 목표: 브랜드 인지도 상승, 신규 고객 유치 기간: 2개월 예산: $8,000 프로젝트: AI 챗봇 개발 목표:
- 토큰 제한 고려하기
- 모델의 토큰 제한을 고려하여 프롬프트 길이를 조절하고, 장문의 경우 여러 부분으로 나누어 요청하세요.
- 토큰의 정의: 토큰은 AI 언어 모델이 텍스트를 처리하는 기본 단위입니다. 영어에서는 대략 단어의 3/4 정도 크기로, 일반적인 단어는 1-2개의 토큰으로 구성됩니다. 한국어와 같은 비영어권 언어는 토큰 분할이 더 세분화되어 같은 내용이라도 더 많은 토큰이 소비됩니다.
- 토큰 제한이 중요한 이유:
- 처리 능력 제한: 모든 AI 모델은 한 번에 처리할 수 있는 최대 토큰 수(컨텍스트 윈도우)가 있습니다.
- 비용 효율성: 많은 API 서비스는 사용한 토큰 수에 따라 비용을 청구합니다.
- 응답 품질: 토큰 제한에 가까워지면 모델이 기억력 손실을 겪거나 응답 품질이 저하될 수 있습니다.
- 시간 효율성: 불필요하게 긴 프롬프트는 처리 시간을 늘리고 효율성을 떨어뜨립니다.
- 토큰 최적화 방법: 간결한 프롬프트 작성, 불필요한 설명 제거, 장문의 경우 여러 부분으로 나누어 요청하는 방법을 활용하세요.
- Chain of Thought(생각의 사슬) 기법 사용하기
- “단계별로 생각해보세요”라는 지시를 추가하면 복잡한 문제에 대한 더 논리적인 해결책을 얻을 수 있습니다.
- 반복 개선 유도하기
- “이 응답을 개선할 방법이 있는지 검토해주세요”라고 요청하여 AI가 자체 응답을 개선하도록 유도하세요.
- 테스트 세트 구축하기
- 다양한 프롬프트 변형을 테스트하고 결과를 기록하여 어떤 접근 방식이 가장 효과적인지 파악하세요.
- 영어 자료도 포함해서 검색하기
- 자료를 검색할 때는 한국어로 입력하면 주로 한국어로 된 자료 안에서 검색을 합니다. 검색 프롬프트에 ‘영어자료도 함께 검색에 포함시켜줘.‘와 같이 영어자료에 대한 언급을 해 주세요.
- 근거를 요청하기
- AI가 제공하는 정보의 신뢰성을 높이기 위해 근거나 출처를 함께 요청하세요. 이는 AI가 생성한 정보의 검증 가능성을 높이고, 잠재적인 환각(hallucination)을 줄이는 데 도움이 됩니다.
- 예시: “이 주제에 대한 신뢰할 수 있는 근거나 출처와 함께 설명해주세요” 또는 “당신의 답변을 뒷받침하는 구체적인 데이터나 연구 결과가 있다면 함께 알려주세요”
- 모르는 내용에 대해서는 솔직히 모른다고 표현하게 하기
- AI 환각(Hallucination) 방지: AI는 확신이 없을 때 그럴듯한 허구 정보를 생성하는 경향이 있습니다. 모른다고 표현하도록 지시하면 잘못된 정보 제공을 줄일 수 있습니다.
- 신뢰성 향상: 모르는 것을 인정하는 AI는 제공하는 다른 정보에 대한 신뢰도도 높아집니다.
- 의사결정의 정확성: 불확실한 정보에 기반한 결정을 방지하여 더 나은 판단을 내릴 수 있게 합니다.
- 시간 절약: 부정확한 정보를 검증하는 데 드는 시간과 노력을 줄여줍니다.
- 현실적 기대치 설정: AI의 한계를 인정함으로써 사용자가 AI 능력에 대해 현실적인 기대를 갖게 합니다.