Home 최고의 프롬프트 엔지니어링 3.프롬프트 엔지니어링 기초
Post
Cancel

최고의 프롬프트 엔지니어링 3.프롬프트 엔지니어링 기초

프롬프트를 디자인하는 방법

  • 프롬프트 디자인 : AI, 특히 대규모 언어 모델과 효과적으로 소통하기 위해서 질문이나 지시문(프롬프트)의 구조를 고안하는 과정을 의미한다.
  • 이 과정은 마치 우리가 정보를 필요로 할 때 검색 엔진에 검색어를 무엇으로 넣을지 고민하는 것과 유사하다.

프롬프트 디자인의 세 가지 핵심 요소

  • 기본적으로 다음 세가지 핵심 요소만 잘 이해하면 된다.
    • 이는 이전에 설명했던 프롬프트 구성과 동일하다.
      1. 답변을 위한 컨텍스트 제공 : LLM에게 충분한 배경 정보(context)를 제공함으로써 모델이 질문의 맥락을 이해하고 더 정확하게 답변할 수 있도록 한다.
      2. 원하는 결과 추출을 위한 프롬프트 작성 : LLM으로부터 얻고자 하는 정보나 작업의 목표가 무엇인지를 명확하게 설정해 놓고 그에 맞는 질문이나 요청을 구성한다.
      • 목표를 위한 방향성을 제시하는 것이다.
        1. 결과물의 형식 지정
  • 프롬프트 엔지니어링 과정은 다음과 같은 5단계로 세분화 할 수 있다
    1. 프롬프트 결과 설정 : 원하는 답변이나 결과의 유형을 명확히 정의한다.
      • 이 단계에서는 최종적으로 얻괒 하는 정보의 종류와 형태를 결정한다.
    2. 프롬프트 평가 설계 : 설정한 목표를 달성하고자 할 때 프롬프트의 효과를 어떻게 평가할지에 대한 기준을 마련한다.
      • 이는 프롬프트가 원하는 결과를 얼마나 잘 도출해 내는지 측정하는 메커니즘을 개발하는 것을 포함한다.
      • 업무에 본격적으로 사용할 때는 만든 프로프트를 반복적으로 사용하여 업무를 자동화 하는 것읆 목표로 한다.
      • 따라서 이 과정이 가장 중요한 단계이다.
    3. 그라운딩 설계 및 평가 : 그라운딩은 AI가 답변을 생성할 때 신뢰할 수 있는 정보나 데이터에 기반하여 정확성과 연관성을 확보하는 과정이다.
      • 이 단게에서는 모델이 참조할 기초 데이터나 사실들을 정리한다.
    4. 프롬프트 디자인 : 앞서 정의한 목표와 평가 기준에 따라 실제 프롬프트를 설계한다.
      • 이 단계는 창의성과 실험적 접근이 필요하며, 여러 시도를 통해 최적의 프롬프트 구조를 찾아간다.
    5. 모니터링 및 개선 : 원하는 목적을 달성하는 프롬프트를 잘 만들었다면 이를 실제 업무에 반영한다.
      • 프롬프트가 실제 환경에서 사용되는 동안에는 지속적으로 성능을 모니터링하고 필요한 경우에는 개선하는 것이 중요하다.
      • 여기에는 사용자의 피드백을 반영하고 새로운 데이터나 정보가 등장했을 때 프롬프트를 업데이트하여 최신 상태를 유지하는 과정이 포함된다.

프롬프트 디자인 프레임워크

  • 프롬프트 디자인을 아래와 같은 7가지 요소의 프레임워크를 사용하면 훨씬 수월하게 설계할 수 있다.
    • Role(역할)
    • Audience(대상)
    • Knowledge/Information(지식/정보)
    • Task/Goal(작업/목표)
    • Policy/Rule,Style,Constraint(정책/규칙, 스타일, 제약 사항)
    • Format,Structure(형식/구조)
    • Examples(예시)

역할 정의

  • AI의 페르소나 또는 역할을 정의한다.
  • 즉, AI가 실제 상황이나 문제에 대해 어떤 태도나 전문성을 가지고 적합하게 응대해야 하는지를 설정한다.
  • 이는 사용자와의 상호작용에서 AI의 캐릭터나 톤을 결정짓는 기초가 된다.
  • example
    • 당신은 법률 전문가입니다. 법률 관련 질문에 답하십시오

대상 명시

  • AI가 누구에게 정보를 제공하고 있는지, 즉 응답의 대상이 되는 사용자나 그룹을 명시하다.
  • 대상을 고려하여 프롬프트를 설계하면 응답 내용이 그 대상의 필요나 수준에 맞게 조정될 수 있다.
  • 전문가를 대상으로하는 응답과 일반 대중을 대상으로 하는 응답은 다를 것이다
  • example
    • 초등학생에게 태양계의 행성에 대해 설명해주세요
    • 데이터 과학자에게 최신 머신러닝 알고리즘의 동향에 대해 설명해주세요

지식과 정보 제공

  • 질문과 관련해서 참고할 만한 지식과 정보를 DB나 검색 엔진 등에서 가져와 삽입한다.
  • 예를 들어 검색 엔진에서 키워드로 찾은 검색 결과를 컨텍스트에 추가해주는 것이다.
  • 혹은 정보 출처를 직접 지정하기도 한다.
  • 정확하고 신뢰할 수 있는 정보를 제공하거나 AI의 지식 범위를 설정하는 것은 할루시네이션을 줄이고 응답 정확성과 관련성을 높이는데 매우 중요하다.
  • example
    • 위키피디아의 내용에 따라 나폴레옹에 대해 설명해주세요

수행해야 할 작업 및 목표 명시

  • 수행해야 하는 특정 작업이나 목표를 설정한다.
  • 작업을 명확히 해야 AI가 목표를 이해하고 사용자의 요구에 부합하는 결과를 제공할 수 있다.
  • example
    • 환경 보호를 위한 설득력 있는 연설문을 만들어주세요
    • 마케팅 전략을 개선하기 위한 제안을 제시해주세요

정책 및 규칙, 스타일 가이드, 제약 사항 설정

  • 응답을 만들 때 따라야하는 특정 정책이나, 규칙, 스타일 가이드, 제약 사항을 설정한다.
  • 이는 일관된 응답을 만들어 원하는 방식으로 정보를 제공하도록 한다.
  • example
    • 성격의 긍정적인 측면만을 강조하며 자기 소개서를 작성해 주세요.
    • 건설적인 피드백만을 제공하면서 에세이를 평가해주세요
    • 사실 기반의 정보만을 사용하여 뉴스 보고를 작성해주세요
  • 특정 톤이나 유머, 감정 등의 스타일을 지정하면 어투를 좀더 전달하고 싶은 방식으로 설정할 수 있다.
  • 응답이 따라야 하는 특정 제한 사항이나 조건을 설정하기도 한다.
  • 단, 글자 수를 설정한다고 해서 아주 정확하게 140로 만들거나 단어 개수를 맞추지는 않는다.

형식 및 구조 설정

  • 응답이 따라야 하는 특정 형식이나 구조를 설정한다.
  • 목록이나 단락, 또는 대화형이 될 수도 있다.
  • 형식을 통해 정보를 최적화해 전달하면 사용자가 정보를 쉽게 이해하고 사용하는 데 도움이 된다.
  • example
    • JSON 형식으로 결과를 출력해주세요
    • MLA 스타일로 참고 문헌 목록을 만들어주세요

구체적인 예시 제공

  • 원하는 응답 형식이나 내용을 구체적으로 보여주는 예시를 제공한다.
  • 예시는 AI에게 분명한 지침을 제공하여 원하는 방향으로 응답을 유도한다.
  • 또한 복잡한 요구 사항이나 추상적인 개념을 구체화하는 데 도움이 된다.
  • example
    • 다음의 에시를 참고하여 응답하세요.
      1
      2
      3
      4
      
      {
      "name" : "Jin",
      "age" : 13
      }
      

      정리

  • 프롬프트를 구성할 때는 최대한 명확하고 구체적으로 요구 사항을 기술하는 것이 중요하다.
  • 그러면 LLM이 주어진 지시를 정확하게 이해하고 이를 통해 LLM의 응답 품질을 크게 향상 시킬 수 있다.

프롬프팅 테크닉 TOP 8

  • 프롬프팅 : 원하는 결과를 더 정확하게 잘 이끌어내는 것을 목표로 프롬프트를 디자인 하는 것.

예시 제공

  • 예시 제공 기법은 모든 프롬프팅 기법 중 가장 기본이 되는 기법으로, 사전에 몇 가지 예제를 제공하고 이를 참고해서 답변하도록 해 더 나은 성능을 발휘하는 기술이다.
  • 일반적으로 머신러닝 모델은 방대한 양의 데이터를 필요로 하지만, 퓨샷 러닝은 소수의 예시만으로 충분히 학습할 수 있다.
    • 제로샷
    • 원샷
    • 퓨샷
  • 퓨샷은 간단하게 2~3개, 본격적으로 사용할 때는 10개 이상의 예제를 제공한다.
  • 퓨샷은 파라미터(모델의 크기)크기가 큰 LLM에서 훨씬 성능이 좋게 나온다.
  • 또한 퓨샷은 정확한 답을 말해야 하는 산술 추론 문제에는 적합하지 않다.
  • 대신 랜덤하게 분포되어 있는 레이블에서 가장 확률이 높은 답변을 골라 내는 일에 적합하다.
    • 예를 들어 패턴 인식을 통한 카테고리 분류, 감정 감석 같은 간단한 언어 이해 작업등

생각 사슬

  • 생각 사슬 또한 거의 모든 프롬프팅 테크닉의 기초가 되는 기법으로, LLM이 문제의 이유 혹은 추론 과정에 대해 직접 설명하도록 만들어 답변을 더 정확하게 생성하는 기술이다.
  • 이렇게 중간에 추론 단계를 거치면 복잡한 사고가 필요한 작업에 정확도를 향상 시킬 수 있다.

자기 일관성(Self-Consistency)

  • CoT보다 AI가 더 정확하고 신뢰할 수 있는 답변을 제공하도록 설계된 기법이다.
  • CoT를 한 단계 더 발전시켜 동일한 문제에 대해 여러 가지 다른 추론 경로를 고려한 후 가장 일관되게 나온 답을 선택한다.
  • 이는 마치 여러 사람에게 각자의 해결 방안을 생각해 보라고 한 뒤 가장 반복적으로 나온 답을 선택하는 과정과 유사하다.
  • LLM이 스스로 여러 개의 결과를 낸 다음 가장 많이 나온 결과인 6을 선택하는 것이 바로 자기 일관성 기법이다.
  • 각 CoT 경로는 문제 해결을 위한 하나의 독립적인 추론 과정으로 볼 수 있으며, 여러 CoT를 통해 문제를 다각도에서 분석하고 해결할 수 있다.
  • 자기 일관성 기법에서 중요한 것은 다양성이다.
  • 즉, 하나의 문제에 대해 여러 가지 방식으로 접근하고 해결해 보는 것이다.
  • 이를 통해 AI는 동일한 문제에 대해 다수의 추론 과정을 수행하게 되며, 이는 AI가 복잡한 문제를 보다 신뢰할 수 있는 방법으로 해결하도록 돕는다.
This post is licensed under CC BY 4.0 by the author.

최고의 프롬프트 엔지니어링 2.프롬프트 엔지니어링 레슨

최고의 프롬프트 엔지니어링 6. 프롬프트 엔지니어링 연습