업무 파일럿(업무 전문가)를 위한 프롬프트 엔지니어링: 실전 가이드 – 1. 프롬프트 엔지니어링 02 핵심 원칙
사용자는 생성을 지시하기 위해 생성형 AI를 사용합니다. 사용자가 생성형 AI에게 하는 생성 지시를 프롬프트라고 합니다. 생성형 AI가 사용자의 의도를 정확히 이해하고 원하는 결과를 생성할 수 있도록 프롬프트를 설계하고 최적화하는 기술을 프롬프트 엔지니어링이라고 합니다.
숙련된 요리사가 레시피를 이해하고 재료의 특성을 고려하여 최고의 요리를 만드는 것처럼, 프롬프트 엔지니어링은 생성형 AI라는 특별한 “요리사”가 최상의 결과물을 만들도록 “레시피(프롬프트)”를 개선하는 과정입니다.
사용자의 요구에 부합하는 결과를 생성해내는 프롬프트들을 분석해 보니, 공통적인 특징들이 발견되었고, 이러한 특징들은 프롬프트 작성 원칙의 기반이 되었습니다.
프롬프트 작성의 핵심 원칙
- 명확성 및 구체성:
- 설명: 지시 사항이 정확하고 명확할수록 AI가 원하는 결과를 이해하기 쉬워집니다. 사용자가 어떤 정보를 필요로 하는지, 어떤 형식으로 결과를 제시하기를 원하는지를 구체적으로 명시하는 것이 중요합니다.
- 예시: “오늘의 뉴스 요약을 제공해 줘” 대신 “오늘의 경제 뉴스 중 주요 사건을 5개로 요약해 줘”라고 요청하는 것이 더 효과적입니다.
- 어떤 결과를 얻기 원하는지 그립니다. 그림을 그리고 그것을 글로 바꿉니다.
- 처음에는 두리뭉실하게 시작하지만, 점차적으로 모호한 부분을 명확하고 구체적으로 명확하게 작성해갑니다. 구체적이고 설명적인 언어를 사용합니다.
- “더 간결하게 작성해줘”로 시작해서, “전문용어를 줄이고 쉬운 단어로 바꿔줘”로
- “고령화 문제에 대해 써라” 로 시작해서, “고령화 문제를 시급히 해결해야 할 필요성을 주장하는 설득력 있는 에세이를 작성하라”로
- 1단계: “환경 문제에 대해 글을 써줘” 2단계: “플라스틱 오염이 해양 생태계에 미치는 영향에 대한 글을 써줘” 3단계: “10대 청소년들이 이해하기 쉽도록, 플라스틱 오염이 해양 생태계에 미치는 영향을 설명하는 500자 정도의 글을 써줘. 실제 사례와 통계를 포함해줘.”
- 예시 활용
- 예시를 활용한 지시는 명확한 의사소통의 가장 효과적인 방법 중 하나입니다. 마치 새로운 도시에서 길을 찾을 때, 단순히 “북쪽으로 가세요”라고 하는 것보다 “저기 보이는 빨간 건물 방향으로 가세요”라고 하는 것이 훨씬 더 명확합니다.
- 예시 사용이 효과적일 때
- 특정한 글쓰기 스타일이나 톤을 원할 때
- 전문적인 문서나 보고서의 형식을 요청할 때
- 창의적인 작업이나 예술적 표현을 요구할 때
- 복잡한 데이터 분석이나 시각화를 원할 때
- 예) 이런 글을 원합니다: 인공지능은 의료 진단의 정확도를 높이고 의료진의 업무 효율성을 개선하는 데 큰 도움이 됩니다. 예를 들어, X-ray 판독에서 AI는 95% 이상의 정확도를 보여주고 있습니다.
- 원하는 결과(에 대한 요구사항)를 명확하게, 구체화합니다.
- 길이, 스타일, 형식, 내용에 대한 제한합니다.
- “다음 주제에 대해 50단어 이내로 시를 써주세요: 봄” (길이 제한)
- “긍정적인 어조로 제품 리뷰를 작성해주세요.” (스타일 제한)
- “JSON 형식으로 정보를 제공해주세요.” (형식 제한)
- “특정 단어(예: 폭력, 차별)는 사용하지 마세요.” (내용 제한)
- 길이, 스타일, 형식, 내용에 대한 제한합니다.
- 맥락:
- 설명: 작업에 대한 배경 정보나 특정 환경에 대한 설명은 AI의 이해를 높이고 더욱 맞춤화된 결과를 생성하는 데 도움이 됩니다.
- 예시: 특정 산업이나 주제를 언급하고 관련 정보를 제공하면 AI가 그에 맞는 답변을 하는 데 큰 도움이 됩니다. 예를 들어, “소프트웨어 개발 트렌드에 대한 리포트를 작성해 줘”보다는 “2023년 한국의 소프트웨어 개발 트렌드에 대해 작성해 줘”라고 하면 더욱 효과적입니다.
- 모든 지시에는 맥락이 존재하며, 이를 이해하는 것은 명확한 지시와 효과적인 수행을 위해 필수적입니다.
- “보고서 작성”과 같은 단순 지시 대신, “경영진 보고를 위한 지난 분기 실적 보고서, 특히 매출 증가율과 신규 고객 유치 현황 중점”과 같이 맥락을 포함한 구체적인 요청은 더 나은 결과를 도출합니다.
- 생성하기를 원하는 것으로 단순 지시를 작성합니다. 생성하기를 원한 이유를 묻고 답합니다. 생성 결과가 어떤 모습이 되길 원하는지 왜 그렇게 되길 원하는지 묻고 답합니다. 이 과정을 반복하다보면 맥락이 하나 둘 씩 파악될 것입니다. 답할 때 작업에 대한 배경 정보, 특정 환경, 산업, 주제, 대상 독자 등을 고려해서 답합니다.
- “보고서를 작성해줘” (맥락 없는 요청)
- 왜? “우리 회사의 지난 분기 실적을 경영진에게 보고해야 합니다.
- 어떤 모습이어야? 매출 증가율과 신규 고객 유치 현황에 중점을 두어야 함.
- 왜? …
- 반복적 개선:
- 설명: 한 번 지시로 원하는 결과를 얻으면 좋겠지만 그렇지 않은 경우가 대부분입니다. 지시하고 지시에 대한 응답에 피드백 합니다. 사용자와 생성형 AI 간의 이러한 지속적인 상호작용을 통해 점점 더 사용자가 원하는 결과에 가까워질 것입니다.
- 절차: 지시하고, 결과를 받고, 결과를 검토합니다. 부족한 점과 개선이 필요한 부분을 파악합니다. 어떤 부분이 잘 작동했고, 어떤 부분이 미흡했는지 분석합니다. 더 구체적인 지시사항을 추가합니다. 다른 표현방식이나 구조를 시도합니다. 필요한 경우 톤이나 스타일을 조정합니다.
- 예시:
- 첫 번째 결과물이 마음에 들지 않고, “더 상세한 데이터 분석을 포함해 줘”라는 피드백을 주어 생성형 AI가 개선할 수 있도록 합니다.
- 1차 시도: “인공지능의 윤리적 문제점에 대해 설명해줘” 분석: 너무 광범위하고 일반적인 내용이 나왔다. 2차 시도: “자율주행차의 윤리적 의사결정 문제에 초점을 맞춰서 설명해줘”
분석: 주제는 구체화됐지만 여전히 전문성이 부족하다. 3차 시도: “자율주행차가 사고 상황에서 마주하는 트롤리 딜레마에 대해, 현재 자동차 업계의 접근 방식과 실제 사례를 포함해서 설명해줘”
- 윤리적 고려
- 책임감 있는 지시
- 편향 방지
- 긍정적이고 건설적인 접근
저스틴) 사람에게 일을 시킬 때는 잔소리꾼처럼 자세히 지시하고, LLM에게는 간단하게 지시하는 방식은 효과적이지 않을 수 있습니다. LLM(대형 언어 모델)도 정확하고 구체적인 지시가 주어질 때 더 효과적으로 작업을 수행합니다.
사람과 LLM에게 지시하는 방식에 차이를 두는 것은 매우 비효율적입니다. 사람에게는 어느 정도의 자율성과 상황 판단 능력을 기대할 수 있지만, 현재의 LLM은 아직 그러한 능력이 부족합니다. 사람에게는 “이 보고서를 작성해 줘”라고 말해도 어느 정도의 결과물을 기대할 수 있지만, LLM에게 같은 지시를 한다면 원하는 결과를 얻기 어려울 것입니다.
LLM은 지시받은 내용을 그대로, 그리고 매우 문자 그대로 해석하고 처리합니다. 따라서 모호한 표현이나 암시적인 지시는 오류나 예상치 못한 결과를 초래할 수 있습니다. 사람에게는 맥락을 이해하고 부족한 부분을 채워 넣는 능력이 있지만, LLM은 그렇지 않습니다.
따라서 LLM에게는 사람에게 일을 시킬 때보다 훨씬 더 정확하고 구체적인 지시가 필요합니다. 원하는 결과물의 형식, 필요한 정보, 제약 조건 등을 명확하게 명시해야 합니다. 마치 프로그래밍을 할 때 변수와 함수를 정의하고, 알고리즘을 설계하는 것처럼 꼼꼼하고 세심하게 프롬프트를 작성해야 LLM이 원하는 결과를 정확하게 생성할 수 있습니다. 단순히 “요약해줘” 보다는 “500자 이내로 요약하고, 핵심 내용 3가지와 그 근거를 명시해줘” 와 같이 구체적인 지시가 필요하다는 것입니다. 결국, LLM을 효과적으로 활용하기 위해서는 ‘평가자’의 입장에서가 아니라, ‘책임자’의 입장에서 정확하고 상세한 지시를 내리는 것이 중요합니다.