프롬프트 엔지니어링
OpenAI의 프롬프트 엔지니어링 가이드: ChatGPT를 위한 고급 애플리케이션 마스터링

프롬프트 엔지니어링 이해
프롬프트 엔지니어링은 ChatGPT와 같은 AI 모델에서 원하는 출력을 얻기 위해 입력(프롬프트)을 만드는 예술과 과학입니다. 이러한 모델의 효과성을 최대화하는 데 필요한 중요한 기술입니다.
ChatGPT는 OpenAI의 GPT-3와 GPT-4 아키텍처를 기반으로 하여 크게 발전하여 더 반응적이고 컨텍스트에 맞게 되었습니다. 프롬프트 엔지니어링을 마스터하려면 이러한 발전을 이해하는 것이 중요합니다.
유능한 지휘자가 오케스트라를 이끄는 것과 마찬가지로 프롬프트 엔지니어링을 통해 이러한 모델을 복잡한 작업을 수행하도록 지시할 수 있습니다. 기술 문서 작성부터 창의적이고 흥미로운 콘텐츠 생성까지 다양한 작업을 수행할 수 있습니다. 이 가이드에서는 AI와의 상호작용을 기본적인 교환에서 세련된 대화로 높이는 전략과 전술을 안내합니다.
예를 들어, “엑셀에서 숫자를 어떻게 더합니까?”라는 질문과 “엑셀에서 달러 금액 열을 자동으로 합계하고 총액을 ‘총계’ 열에 표시하려면 어떻게 합니까?”라는 질문의 차이를 고려해 보세요. 후者の 더 자세한 프롬프트는 AI의 해석을 줄이고 더 정확하고 유용한 응답을 유도합니다. 마찬가지로, 페르소나, 구분자 및 단계별 지침의 사용은 특히 복잡한 작업의 경우 AI의 출력 품질에 큰 영향을 미칠 수 있습니다.
이 프롬프트 엔지니어링 가이드는 이론적인 측면뿐만 아니라 실제적인 예시도 제공합니다. 참조 텍스트를 제공하여 AI를 허구에서 멀어지게 하거나 복잡한 작업을 더 간단한 하위 작업으로 나누어 더 정확한 결과를 얻는 방법을 배울 수 있습니다.
1. 명확성과 세부사항
GPT-4와 같은 AI 모델에 대한 효과적인 프롬프트를 작성하려면 정밀성, 컨텍스트 및 명확성이 결합되어야 합니다. 잘 작성된 프롬프트와 작성되지 않은 프롬프트의 차이는 모호한 일반적인 응답과 매우 관련性이 높고 구체적인 답변의 차이입니다.
예시 1: 기술 질문에 대한 ChatGPT의 언어 이해 활용
- 무효한 프롬프트: “내 코드에서 버그를 어떻게 고칠 수 있나요?”
- AI 출력: “코드에서 버그를 고치려면 먼저 버그를 식별하고, 왜 발생하는지 이해한 다음 코드를 수정하여 버그를 수정해야 합니다.”
- 유효한 기술 질문: “파이썬에서 코드를 작성하고 있지만 딕셔너리에 접근하려고 할 때 ‘KeyError’가 발생합니다. 코드 조각은 다음과 같습니다: [코드 조각]. 이 오류의 원인은 무엇이며 어떻게 고칠 수 있나요?”
- AI 출력: “파이썬 코드에서 발생하는 ‘KeyError’는 존재하지 않는 키에 접근하려고 할 때 발생하는 것입니다. 코드를 수정하여 이 오류를 처리하는 방법은 다음과 같습니다: [수정된 코드 조각 및 설명].”
예시 2: 스타일 모방을 통한 창조적 글쓰기
- 무효한 프롬프트: “단편 소설을 작성해 주세요.”
- AI 출력: “옛날 옛적에, 먼 나라에서, 한 왕국이 큰 위기를 맞이했습니다…”
- 유효한 스타일 모방 프롬프트: “어니스트 헤밍웨이의 스타일로 두 옛 친구가 우연히 만나서 대화하는 단편 소설을 작성해 주세요.”
- AI 출력: “태양이 비우는 가뭄에 빠진 길에서, 잭과 톰, 두 옛 친구가 우연히 만났습니다. ‘오랜 시간이 지나갔다’고 잭은 말했습니다. 그의 목소리는 공기만큼 khô했습니다. ‘전쟁 이후’ 톰은 대답했습니다. [스토리는 헤밍웨이의 간결하고 대화 중심의 스타일로 계속됩니다].”
예시 3: 여행 추천
- 무효한 프롬프트: “파리에 가서 무엇을 할 수 있나요?”
- AI 출력: “파리에서는 에펠탑, 루브르 박물관, 노트르담 대성당과 같은 랜드마크를 방문할 수 있습니다.”
- 유효한 프롬프트: “내가 파리를 3일간 방문할 예정이며, 예술과 역사에 초점을 맞추고 싶습니다. 자세한 일정을 추천해 주세요.”
- AI 출력: “1일차: 루브르 박물관을 아침에 방문한 후 노트르담 대성당으로 산책합니다. [더 자세한 일정이続きます].”
더 나은 프롬프트 작성을 위한 통찰
- 구체성: 가능한 한 구체적으로 작성하십시오. 프롬프트가 더詳細할수록, 응답도 더 맞춤형이 됩니다.
- 컨텍스트 정보: 관련된 모든 컨텍스트를 포함하십시오. 이것은 AI가 요청의 정확한 성격을 이해하는 데 도움이 됩니다.
- 명확한 목적: 출력으로 무엇을 기대하는지 명확히 밝히십시오. 레시피, 여행 계획, 기술 솔루션 등이든, 목적을 명확히 하십시오.
- 모호함 피하기: 모호한 프롬프트는 일반적인 응답으로 이어집니다. 요청을 명확히 하여 정확한 답변을 얻으십시오.
- 알려진 형식 사용: 해당하는 경우, 정보를 특정 형식(목록, 단계별 가이드, 도표 등)으로 요청하십시오.
2. 참조를 통한 AI 응답 강화
GPT-4와 같은 AI 모델의 응답 품질과 정확성을 높이는 데 프롬프트 엔지니어링에서 참조 텍스트의 전략적 사용이 중요합니다. 관련된 신뢰할 수 있는 정보를 함께 제공함으로써, AI를 주어진 자료에 기반하여 답변을 구성하도록 지시할 수 있습니다. 이렇게 하면 응답이 더 신뢰할 수 있고 컨텍스트에 맞게 됩니다.
예시 1: 과학적 설명
- 일반적인 프롬프트: “블랙홀은 어떻게 형성되나요?”
- AI 출력: “블랙홀은 큰 별이 초신성 폭발로 죽을 때 남은 잔해에서 형성됩니다. 핵의 질량이 충분히 크면, 중력으로 인해 블랙홀로 붕괴됩니다.”
- 참조 텍스트가 있는 강화된 프롬프트:
- 제공된 참조 텍스트: “[별의 진화와 블랙홀에 대한 과학적 논문]”
- 프롬프트: “제공된 과학적 논문을 사용하여 블랙홀 형성 과정을 설명해 주세요.”
- AI 출력: “제공된 과학적 논문에 따르면, 블랙홀은 큰 별이 핵 연료를 소진하고 핵이 붕괴할 때 형성됩니다. 논문에는 다음이 자세히 설명되어 있습니다: [‘논문에서 관련된抜粋’]”
예시 2: 법적 해석
- 일반적인 프롬프트: “지적 재산권 침해의 법적 영향은 무엇인가요?”
- AI 출력: “지적 재산권 침해는 소송, 벌금, 심각한 경우에는 징역과 같은 법적 결과를 초래할 수 있습니다.”
- 참조 텍스트가 있는 강화된 프롬프트:
- 제공된 참조 텍스트: “[지적 재산권 법에 대한 법적 저널 논문]”
- 프롬프트: “제공된 법적 저널 논문을 참조하여 지적 재산권 침해의 구체적인 법적 영향에 대해 설명해 주세요.”
- AI 출력: “법적 저널 논문에 따르면, 지적 재산권 침해는 민사 소송, 법정 배상, 그리고 잠재적인 형사 처벌을 초래할 수 있습니다. 특히, 논문에서는 다음을 언급합니다: [‘논문에서 직접 인용한 부분’]”
참조 텍스트를 프롬프트에 사용하기 위한 통찰
- 관련 텍스트 선택: 요청과 직접 관련된 참조 텍스트를 선택하십시오.
- 프롬프트 명세: 제공된 참조 텍스트를 사용하여 답변을 구성하도록 AI에게 명확히 지시하십시오.
- 인용: 답변에서 제공된 참조 텍스트의 특정 부분을 인용하도록 요청하십시오. 이는 정확성과 검증을 위해 중요합니다.
- 부족한 정보 처리: 제공된 텍스트에 질문에 필요한 정보가 없으면 AI가 명확히 표시하도록 지시하십시오.
3. 하위 작업 분할을 통한 복잡한 작업 단순화
GPT-4와 같은 AI 모델에서 복잡한 작업을 효과적으로 처리하는 핵심은 작업을 더 간단한 하위 작업으로 나누는 것입니다. 이 접근법은 작업을 더 관리하기 쉽게 만들고 오류나 관련없는 출력의 가능성을 줄입니다. 아래 예를 통해 이 전략을 демон스트레이션하고, 의도 분류, 요약 기술, 구조화된 대화를 사용하여 복잡한 쿼리에 대한 이점을 강조합니다.
예시 1: 고객 서비스 쿼리
- 무효한 접근: 일반적인 지원 요청으로 단일 프롬프트를 사용합니다.
- 사용자 프롬프트: “내 계정에 문제가 있습니다.”
- AI 출력: “계정 문제의 본질을 지정해 주시겠습니까?”
- 유효한 접근: 쿼리를 분류하고 대상 지원을 제공합니다.
- 사용자 프롬프트: “내 계정에 접근할 수 없습니다.”
- AI 지시: “쿼리를 ‘계정 관리’로 분류한 다음 접근 문제에 대한 특정 단계를 제공하십시오.”
- AI 출력: “계정에 접근할 수 없다는 것 같습니다. 접근 문제를 해결하기 위해 비밀번호를 재설정하는 것으로 시작해 보겠습니다. [자세한 단계가 계속됩니다].”
예시 2: 장문 문서 요약
- 무효한 접근: 한 번에 장문 문서를 요약하려고 시도합니다.
- 사용자 프롬프트: “300페이지짜리 책을 요약해 주세요.”
- AI 출력: “컨텍스트 창의 길이로 인해 문서를 처리할 수 없습니다.”
- 유효한 접근: 문서를 조각별로 요약하고 요약의 요약을 재귀적으로 생성합니다.
- AI 지시: “각 장을 별도로 요약한 다음 요약의 요약을 재귀적으로 생성하여 전체 요약을 만듭니다.”
- 사용자 프롬프트: “이 책의 1장을 요약해 주세요.”
- AI 출력: “1장 요약: [1장의 간단한 요약].”
- 계속되는 과정: 같은 과정은 각 장에 적용되며, 이후 모든 개별 요약을 결합하여 최종 요약을 생성합니다.
하위 작업 분할 및 컨텍스트 프롬프트 엔지니어링의 이점
- 정확도 증가: 특정 작업 측면에 초점을 맞춤으로써 AI는 더 정확하고 관련성이 높은 응답을 제공할 수 있습니다.
- 효율성 향상: 작업을 분할하면 더 관리하기 쉽고 오류나 관련없는 출력의 가능성이 줄어듭니다.
- 사용자 경험 개선: 사용자는 대상 지침을 받으며, 일반적인 응답보다 더 도움이 됩니다.
- 비용 효율성: 더 작은, 대상 프롬프트는 더 큰, 더 복잡한 프롬프트보다 더 비용 효율적일 수 있습니다.
4.思考 시간을 주기
GPT-4와 같은 모델에게 “생각”하는 시간을 주고 복잡한 작업을 더 관리하기 쉬운 단계로 나누는 전략은 응답의 품질을 크게 향상시킵니다.
예시 1: 수학 문제 평가
- 무효한 접근: 모델에게 학생의 해법을 직접 평가하도록 요청합니다.
- 사용자 프롬프트: “학생의 수학 문제 해법이 올바른가요?”
- AI 출력: “학생의 해법은 올바르거나 올바르지 않을 수 있습니다.”
- 유효한 접근: 모델에게 먼저 자신의 해법을 작업한 다음 학생의 해법을 평가하도록 지시합니다.
- 사용자 프롬프트: “먼저 이 수학 문제를 해결한 다음, 학생의 해법과 비교하여 그 정확성을 평가해 주세요.”
- AI 출력: “제 해법: [자세한 해법]. 학생의 해법과 비교하면, [특정 부분]의 계산에서 오류를 발견했습니다. 올바른 접근 방법은 [올바른 방법]입니다.”
예시 2: 문서 분석
- 무효한 접근: 한 번에 큰 문서를 분석하려고 시도합니다.
- 사용자 프롬프트: “이 전체 문서의 주요 사항을 요약해 주세요.”
- AI 출력: “문서의 길이로 인해 처리할 수 없습니다.”
- 유효한 접근: 순차적으로 추출하고 추후 쿼리를 통해 문서를 분석합니다.
- 사용자 프롬프트: “[특정 주제]와 관련된 이 문서의 주요摘录을 추출해 주세요.”
- AI 출력: “摘录 1: [관련된 문단].摘录 2: [또 다른 관련된 문단].”
- 추가 사용자 프롬프트: “더 많은 관련된摘录이 있나요? 전체 컨텍스트를 포함하도록 하세요.”
- AI 출력: “추가摘录: [더 관련된 문단].”
이점과 통찰
- 분석의 깊이: 먼저 해법이나 분석을 작업함으로써, AI는 더 정확하고 심도 있는 평가를 제공할 수 있습니다.
- 안내된 학습: 튜터링 시나리오에서, 내부적 대화와 힌트를 사용하면 학생들이 독립적으로 해법에 도달하도록 격려하여 학습 경험을 향상시킵니다.
- 전체적 커버리지: 문서 분석에서 순차적이고 재귀적인 접근법은 중요한 세부사항을 놓치지 않으면서 철저한 커버리지를 보장합니다.
- 편향 피하기: 먼저 자신의 해법을 생성함으로써, AI는 직접 주어진 답변을 평가할 때 발생할 수 있는 편향을 피할 수 있습니다.
5. 외부 도구 활용
외부 도구와 자원을 AI 상호작용에 통합하면 GPT-4와 같은 모델에서 생성된 응답의 정확성과 관련성을 크게 향상시킬 수 있습니다. 이 섹션에서는 지식 검색을 위한 임베딩 기반 검색, 정확한 계산을 위한 코드 실행, 그리고 AI 모델의 기능을 강화하기 위한 함수 호출을 демон스트레이션합니다.
예시 1: 코드 실행을 통한 정확한 계산
- 코드 실행 없이: 모델의 계산 능력만을 의존합니다.
- 사용자 프롬프트: “529의 제곱근은 무엇인가요?”
- AI 출력: “529의 제곱근은 약 23입니다.”
- 코드 실행으로: 계산의 정확성을 보장합니다.
- 사용자 프롬프트: “529의 제곱근을 계산해 주세요.”
- AI 지시: “파이썬 코드를 작성하고 실행하여 계산하세요.”
- AI 출력: “
python import math math.sqrt(529)529의 제곱근은 정확히 23입니다.”
예시 2: API 호출을 통한 동적 상호작용
- API 호출 없이: 정적인 사전 프로그래밍된 응답으로 제한됩니다.
- 사용자 프롬프트: “내 친구에게 내일 모임에 대한 리마인더를 보내주세요.”
- AI 출력: “리마인더: 친구에게 내일 모임에 대한 메시지를 보내지 않도록 주의하세요.”
- API 호출로: 외부 시스템과 실시간으로 상호작용합니다.
- 사용자 프롬프트: “존에게 내일 모임에 대한 리마인더를 보내주세요.”
- AI 지시: “메시지 API를 사용하여 리마인더를 보내세요.”
- AI 출력: “
python import message message.write(to='John', message='안녕, 내일 모임을 기억하세요!')존에게 내일 모임에 대한 리마인더가 보냈습니다.”
이점과 통찰
- 지식 베이스 확장: 임베딩 기반 검색을 사용하여 AI는 최신 정보를 접근하고 통합하여 응답의 관련성과 정확성을 향상시킬 수 있습니다.
- 계산의 정확성: 코드 실행을 통해 AI는 기술적 또는 과학적인 컨텍스트에서 정확한 수학적 계산을 수행할 수 있습니다.
- 상호작용 능력: API 호출을 통해 AI는 외부 시스템과 상호작용하여 실제 행동(메시지 전송, 리마인더 설정 등)을 수행할 수 있습니다.
6. 체계적인 테스트
체계적인 테스트, 또는 평가 절차,는 AI 시스템의 변경 사항의 효과성을 결정하는 데 중요합니다. 이 접근법은 모델의 출력을 미리 정의된 표준 또는 “골드 표준” 답변과 비교하여 정확성을 평가합니다.
예시 1: 답변의 모순성 식별
- 테스트 시나리오: 모델의 응답과 전문가 답변의 모순성을 감지합니다.
- 시스템 지시: 모델의 응답이 전문가 제공 답변의 어느 부분과도 모순되는지 확인합니다.
- 사용자 입력: “닐 암스트롱은 달에 걸음을 든 두 번째 사람입니다, 버즈 올드린之后.”
- 평가 과정: 시스템은 닐 암스트롱이 달에 첫 번째로 걸음든 사람이라는 전문가 답변과 일치하는지 확인합니다.
- 모델 출력: 모델의 응답은 전문가 답변과 직접적으로 모순됩니다. 이는 오류를 나타냅니다.
예시 2: 답변의 세부사항 수준 비교
- 테스트 시나리오: 모델의 답변과 전문가 답변의 세부사항 수준을 평가합니다.
- 시스템 지시: 모델의 응답과 전문가 답변의 세부사항 수준을 비교합니다.
- 사용자 입력: “닐 암스트롱은 1969년 7월 21일 02:56 UTC에 달에 첫 걸음을 뗐습니다.”
- 평가 과정: 시스템은 모델의 응답이 전문가 답변과 일치하는지, 더 자세한지, 또는 덜 자세한지 평가합니다.
- 모델 출력: 모델의 응답은 전문가 답변과 일치하며, 정확한 시간을 추가하여 전문가 답변을 확장합니다.
이점과 통찰
- 정확성과 신뢰성: 체계적인 테스트는 특히 사실 정보와 관련하여 AI 모델의 응답이 정확하고 신뢰할 수 있음을 보장합니다.
- 오류 감지: 이는 모델의 응답에서 오류, 모순, 또는 일관성 없는 점을 식별하는 데 도움이 됩니다.
- 품질 보증: 이 접근법은 교육, 역사, 또는 다른 사실에 민감한 컨텍스트에서 생성된 AI 콘텐츠의 높은 품질 표준을 유지하는 데 필수적입니다.
결론 및 핵심 메시지
다음과 같이 프롬프트의 구체성이 출력을 크게 바꿀 수 있으며, 복잡한 작업을 더 간단한 하위 작업으로 나누는 것이 어려운 도전을 관리 가능하게 만드는 것을 보았습니다. 우리는 외부 도구의 강력함과 AI 상호작용을 최적화하기 위한 고급 기술과 전략에 대한 우리의 포괄적인 탐색을 보완하는 OpenAI의 프롬프트 엔지니어링 가이드의 기초 지식을 탐구했습니다.












