본문 바로가기
배움: MBA, English, 운동

ChatGPT 프롬프트 엔지니어링의 다섯 가지 원칙

by Heedong-Kim 2024. 2. 18.

ChatGPT와 프롬프트 엔지니어링의 다섯 가지 원칙


ChatGPT는 OpenAI에 의해 개발된 최첨단 언어 생성 모델로, 자연스러운 대화를 생성할 수 있는 능력을 갖추고 있습니다.

프롬프트 엔지니어링이란, 인공지능 모델과 상호작용할 때 원하는 결과를 얻기 위해 효과적인 프롬프트를 개발하는 과정입니다.  이러한 고급 AI 기술을 활용하는 과정에서 프롬프트 엔지니어링의 다섯 가지 원칙이 중요한 역할을 합니다. 이 원칙들은 ChatGPT와 같은 모델을 효과적으로 사용하여 원하는 결과를 얻기 위한 기본 지침을 제공합니다.



  1. 방향 제시 (Give Direction): 비전과 일치하는 출력을 위한 상세 설명
    ChatGPT에게 명확한 방향을 제시함으로써, 모델이 원하는 결과를 생성할 수 있도록 합니다. 이는 모델에게 구체적인 목적과 경로를 제공합니다.

    제품 이름을 결정하는 것은 주관적인 일입니다. 인공지능에게 당신이 좋아하는 이름의 종류를 알려주지 않으면, 정확한 결과를 얻을 확률이 낮아집니다. 사람도 좋은 브리핑 없이는 이 작업을 수행하기 어렵기 때문에, 창조적인 작업이나 브랜딩 에이전시는 클라이언트로부터 브리핑을 요구합니다. 이와 유사하게 인공지능에게도 충분한 맥락을 제공하는 것이 중요합니다. 인공지능에게 구체적인 지침을 제시하는 것은 마치 인간에게 필요한 맥락을 제공하는 것과 같습니다.따라서 방향 제시는 인공지능에게 분명한 목적과 경로를 제공함으로써 원하는 결과를 얻을 수 있도록 하는 핵심 원칙입니다. 이는 프롬프트 엔지니어링의 가장 중요한 첫 단계이며, 성공적인 인터랙션을 위한 기반이 됩니다.

    예를 들어, '혁신적이고 기억에 남는 제품 이름을 생성해주세요. 기술적이고 현대적인 느낌을 가진 단어를 선호합니다'와 같은 방식으로 프롬프트를 설정함으로써, 인공지능은 당신이 원하는 방향으로 생각을 시작할 수 있습니다. 이는 결과가 당신의 기대와 더 잘 일치하도록 하며, 추상적이거나 너무 일반적인 지시보다 훨씬 효과적입니다.

  2. 형식 지정 (Specify Format): 응답의 구조화와 효율적인 파싱을 위한 명확한 지시
    원하는 정보를 얻기 위해 응답의 형식을 미리 정의합니다. 이는 결과를 쉽게 분석하고 활용할 수 있도록 도와줍니다.
    응답 형식을 지정하는 것은 인공지능에게 원하는 출력의 구조를 명확히 알려줌으로써, 결과를 더 쉽게 파싱하고 오류를 최소화하는 데 중요합니다.

    예를 들어, 제품 이름 생성기를 구축할 때는 단순한 정렬된 목록 대신 JSON 형식을 요구할 수 있습니다. JSON은 API 응답의 보편적 형식이며, 오류를 쉽게 파악하고 구문 분석을 단순화할 수 있습니다.데이터 구조 간의 변환, 즉 JSON에서 YAML로, 또는 자연어에서 파이썬 코드로 변환하는 것을 포함하여, 인공지능 모델은 거의 모든 형식으로 응답을 반환할 수 있는 '범용 번역기'로 작용할 수 있습니다. 따라서 형식을 정확하게 지정하는 것은 프롬프트 엔지니어링에서 중요한 부분입니다.

    명확한 형식 지정은 프롬프트를 생산 소프트웨어에 통합할 때 특히 중요합니다. 간헐적으로 발생하는 형식 변경은 오류를 유발할 수 있으며, 이는 비효율적이고 시간 낭비를 초래합니다. 인간과 협업할 때와 마찬가지로, 인공지능과 작업할 때도 응답에 기대하는 형식을 사전에 명확히 지정함으로써 불필요한 노력을 방지할 수 있습니다.

  3. 예시 제공 (Provide Examples): 인공지능의 출력 신뢰성 향상을 위한 구체적 사례
    모델에게 기대하는 결과의 예시를 제공함으로써, 출력의 정확도와 신뢰성을 높일 수 있습니다. 이는 모델이 더 관련성 높은 정보를 생성하도록 유도합니다.

    인공지능에게 원하는 결과의 사례를 제공하는 것은 그 정확성과 신뢰성을 높이는 데 필수적입니다. 처음 프롬프트를 제공할 때 '좋은' 이름이 무엇인지에 대한 구체적인 예를 포함하지 않으면, 인공지능은 단지 훈련 데이터의 평균적인 결과를 반영할 뿐입니다. 이는 전체 인터넷에 대한 데이터를 기반으로 한 것이므로, 반드시 원하는 결과를 얻을 수 있다는 보장은 없습니다.이러한 접근 방식은 인공지능이 단순히 평균적인 결과를 넘어서, 실제로 유용하고 의도한 결과물을 제공하도록 합니다. 프롬프트에 포함할 수 있는 텍스트의 양은 한정되어 있기 때문에(현재 Midjourney는 6,000자, ChatGPT는 토큰 길이에 따라 약 32,000자), 프롬프트 엔지니어링의 큰 부분은 다양하고 가르치기 위한 사례를 선별하고 삽입하는 작업입니다.

    신뢰성과 창의성 사이에는 트레이드오프가 존재합니다: 제공하는 예시의 수가 많고 다양성이 적을수록 응답은 더 제약을 받게 됩니다. 만약 모든 예시를 동물 이름으로 변경한다면, 응답에 강한 영향을 미치게 되어 동물을 포함한 이름을 신뢰성 있게 반환하게 됩니다.
    성공적인 이름, 업계에서 흔한 이름, 또는 당신이 선호하는 다른 이름들을 예시로 제공함으로써, 인공지능은 이러한 정보를 기반으로 더 정확한 예측을 할 수 있습니다. 예를 들어, '클린텍', '솔라로드', '에코웨이브'와 같이 환경 친화적인 제품 이름 사례를 제공하면, 인공지능은 이러한 경향을 따르는 이름을 생성하는 데 도움을 받게 됩니다.

  4. 품질 평가 (Evaluate Quality): AI의 작업 성과 측정 및 피드백 루프 구축
    생성된 결과의 품질을 지속적으로 평가하고, 이를 통해 모델의 성능을 개선합니다. 이 과정에서 사용자 피드백이 중요한 역할을 합니다.

    프롬프트를 사용한 결과의 품질을 평가하는 것은 AI와의 작업에서 매우 중요한 단계입니다. 기본적인 시도와 오류 방식을 넘어서, 반복적으로 같은 프롬프트를 사용하거나 프롬프트에 의존하는 응용 프로그램을 구축할 때는 결과를 측정하고 분석하는 것이 필수적입니다. 프롬프트의 품질을 평가함으로써, 어떤 응답이 유용하고 어떤 응답이 부적합한지를 식별할 수 있으며, 시간이 지남에 따라 프롬프트를 최적화하여 결과의 질을 개선할 수 있습니다.관리 과학의 아버지인 프레드릭 테일러는 작업 과제를 연구하여 가장 효율적인 수행 방법을 식별하는 것을 주장했습니다. 인간의 노동 성과를 측정하는 것이 오랜 기간 관리 과학의 일부였던 것처럼, AI의 작업 성과 또한 측정되어야 합니다. AI의 작업 성과를 평가하는 방법은 다양하며, 달성하고자 하는 작업에 대한 목표에 크게 의존합니다.

    예를 들어, 제품 이름 생성기를 사용하는 경우, 사용자로부터의 피드백을 통해 좋은 이름과 나쁜 이름을 구별하고, 이를 바탕으로 인공지능 모델을 교정하는 시스템을 구축할 수 있습니다. 이렇게 하면 AI의 성능이 점진적으로 향상되며, 오류를 최소화하고 더 나은 결과를 얻을 수 있습니다.

  5. 작업 분할 (Divide Labor): 복잡한 작업을 관리 가능한 단위로 나누고 연결하기
    복잡한 요청을 여러 하위 작업으로 나누어 처리함으로써, 각 작업에 대한 모델의 처리 능력을 최적화합니다. 이는 전체적인 작업의 효율성을 높이고 결과의 정확성을 개선하는 데 도움이 됩니다.

    AI 작업을 여러 프롬프트로 나누는 것은 복잡한 문제를 해결하는 데 있어서 매우 효과적인 전략입니다. 하나의 큰 작업을 여러 하위 작업으로 분해함으로써 각각의 문제를 보다 쉽게 해결할 수 있으며, 이를 통해 전체적인 목표를 달성할 수 있습니다. 이는 공학의 핵심 원칙 중 하나인 분해적 추론을 AI 작업에 적용하는 것입니다.이러한 접근 방식은 각각의 단계에서 발생할 수 있는 오류를 식별하고 수정하는 데 도움이 됩니다. 또한, 각 프롬프트의 작업에 대한 명확한 이해를 통해 AI가 중요한 요소를 어떻게 고려하는지 파악할 수 있습니다. 결국, 이는 프로젝트의 투명성을 높이고, 보다 신뢰성 있는 결과물을 생성할 수 있는 AI 시스템을 구축하는 데 기여합니다.

    예를 들어, 제품 이름을 생성하는 과정을 생각해 보겠습니다. 단순히 인공지능에게 '제품 이름을 생성해 달라'고 요청하는 대신, 작업을 '브레인스토밍 가능한 이름의 후보 생성', '후보들의 상표 검증', '시장 조사를 통한 후보 평가' 등과 같이 여러 단계로 나눌 수 있습니다. 각 단계는 독립적으로 AI에 의해 수행될 수 있으며, 최종 결과는 이러한 단계들을 통합하여 도출됩니다.

인공지능 프롬프트 엔지니어링의 중요성과 그 원칙들

생성적 인공지능과 상호작용할 때 원하는 결과를 얻기 위한 효과적인 프롬프트를 개발하는 과정인 프롬프트 엔지니어링이 중요합니다. 명확한 방향 제시, 출력의 형식화, 예시의 통합, 성과의 평가, 그리고 복잡한 작업의 분할은 프롬프트 엔지니어링의 핵심 원칙입니다.

 

이러한 원칙들을 적용하고, 시드 단어와 사용자 피드백과 같은 기술을 사용함으로써, 인공지능이 생성하는 결과의 품질과 신뢰성을 향상시킬 수 있습니다. 또한, 인공지능 모델이 원하는 결과를 얻기 위한 명확한 방향과 맥락을 필요로 하는 이유를 배웠으며, 인공지능 모델의 성능을 평가하고 결과를 측정하는 다양한 방법에 대해서도 알아보았습니다.

 

AI 모델을 사용할 때 원하는 결과를 달성하기 위해 명확한 방향과 맥락이 필요합니다.