[꿀팁] 프롬프트 엔지니어링 (강의 요약)

서쿠·2024년 8월 24일
11

프롬프트 엔지니어링: 환각 줄이고, 효율적인 SW 서비스까지

프롬프트 엔지니어링 분야에서 최근 많은 관심을 받고 있는 주제는 바로 "AI 모델의 환각(Hallucination) 현상을 줄이고, 보다 신뢰성 있는 결과를 얻는 방법"입니다.

AI 모델의 환각(Hallucination) 현상이란?
AI 모델의 환각(Hallucination) 현상은 AI가 정보를 처리하는 과정에서 발생하는 대표적인 오류로, 실제로 존재하지 않거나 관련이 없는 정보를 사실인 것처럼 생성해내는 문제를 말합니다. 이 현상은 생성형 AI 모델에서 주로 나타나며, 특히 대규모 언어 모델(LLM)에서 자주 관찰됩니다.

  • 환각 현상은 크게 네 가지 유형으로 나눌 수 있습니다:
    1. 모순된 문장: AI가 생성한 문장이 외형적으로는 타당해 보이지만 실제로는 내용상 모순을 포함하는 경우
    2. 프롬프트와의 모순: 사용자의 요구와 전혀 다르거나 관련 없는 결과를 제공하는 경우
    3. 사실 왜곡: 실제 사실을 잘못 해석하거나 왜곡하여 제시하는 경우
    4. 허위 정보 생성: 완전히 거짓된 정보를 사실인 것처럼 제시하는 경우

티타임즈TV 채널의 강수진 박사과의 패널 토크, "환각 줄이고, SW 서비스까지 만들 수 있는 프롬프팅은?"에서는 이러한 문제를 해결하기 위한 다양한 프롬프트 작성 기법을 소개하며, 실질적인 예시와 함께 그 응용 가능성을 설명하고 있습니다.

이번 글에서는 이 강의에서 언급하고 있는 프롬프트 엔지니어링 꿀팁들을 정리해보도록 하겠습니다.

1. 사실과 견해를 구분하는 프롬프트 기법

  • 내용 요약: 프롬프트에서 사실(Fact)과 견해(Opinion)을 구분하도록 명시하면, AI 모델의 환각 현상을 줄일 수 있습니다. 이 방법은 모델이 생성하는 내용에서 명확히 구분된 정보를 제공합니다.

  • 부연 설명 및 예시: 프롬프트에서 명확하게 사실의견을 구분해 작성하면, 모델이 데이터를 더 정확하고 신뢰성 있게 처리할 수 있습니다. 이는 특히 정보가 혼재되어 있는 뉴스 기사 생성 등에서 유용합니다.

  • 예를 들어, 경제 성장에 대한 데이터를 설명하는 프롬프트에서는 객관적 사실과 주관적 견해를 구분하여 명확한 결과를 도출할 수 있습니다.

  • 예시:

주제: 최근 경제 성장에 대해 설명해 주세요.

1. 사실(Fact): 경제 성장에 관한 객관적인 데이터를 제공합니다.
2. 견해(Opinion): 경제 성장이 사회에 미치는 영향을 개인적으로 어떻게 해석하는지 설명합니다.

프롬프트: 
"다음 주제에 대해 설명하세요. 
 첫 번째 부분에는 객관적인 데이터를 포함한 사실을, 
 두 번째 부분에는 주관적인 의견을 제시하세요."

이와 같이 프롬프트를 작성하면, 결과가 더 명확하고 신뢰성 있게 도출됩니다.

2. 띄어쓰기를 통한 프롬프트 성능 향상

  • 내용 요약: 프롬프트에서 띄어쓰기를 적절히 활용하면 언어 모델이 텍스트를 더 잘 이해하고 정확한 결과를 생성할 수 있습니다.

  • 부연 설명 및 예시: 프롬프트 내에서 띄어쓰기는 텍스트의 구조를 이해하는 데 중요한 역할을 합니다. 잘못된 띄어쓰기나 불필요한 붙여쓰기는 모델의 결과 해석에 혼란을 줄 수 있으므로, 명확하고 정확한 띄어쓰기를 적용해야 합니다.

  • 예시:

잘못된 띄어쓰기:
"최근경제성장에대해설명해줘"

적절한 띄어쓰기:
"최근 경제 성장에 대해 설명해 줘"

작은 조정만으로도 모델의 이해도가 크게 향상될 수 있습니다.

3. 구조화된 프롬프트 작성

  • 내용 요약: 구체적인 형식과 구조를 명시한 프롬프트는 더 정확하고 일관된 결과를 도출할 수 있습니다. JSON 형식을 사용해 결과를 체계적으로 구성하는 방법도 유용합니다.

  • 부연 설명 및 예시: 프롬프트에서 결과의 형식을 미리 정의하면, 모델이 구조화된 방식으로 결과를 출력하게 되어 일관된 데이터 분석이나 보고서 작성에 큰 도움이 됩니다.

  • 예시:

프롬프트:
"다음 주제에 대해 JSON 형식으로 정보를 제공합니다. 
각 항목은 개별적으로 명확히 구분하세요."

주제: 미래 도시
{
  "도시 개요": "도시의 전반적인 설명을 포함합니다.",
  "인프라": "교통, 에너지 등 기술 인프라에 대한 상세 정보."
}

이와 같은 방법으로 구조를 지정하면 일관된 형식으로 데이터를 얻을 수 있습니다.

4. 자기 검증(Self-Critique)을 포함한 프롬프트

  • 내용 요약: 프롬프트에서 모델이 모르는 정보를 명확히 구분하고, 자기 검증을 하도록 지시하면 환각 현상을 줄일 수 있습니다.

  • 부연 설명 및 예시: 프롬프트에 "모르는 정보면 모른다고 답변하라"는 지시를 포함시키면, 모델이 불확실한 정보를 생성하지 않게 되어 신뢰도가 높아집니다. 이러한 자기 검증 기능을 통해 모델의 응답 정확성을 더욱 개선할 수 있습니다.

  • 예시:

프롬프트:
"푸바오가 중국으로 간 연도와 배경을 알려주세요. 
모르는 정보면 모른다고 답변하고, 
답변 전 스스로 검증한 후에 대답하세요."

결과:
"푸바오는 2024년에 중국으로 귀환했습니다. 
하지만 특정한 날짜는 명시되지 않았습니다."

이 방법은 모델의 신뢰성을 크게 높이는 데 기여합니다.

5. 극강의 프롬프트 복잡성

  • 내용 요약: 여러 작업을 포함하는 복잡한 프롬프트는 다양한 응용 가능성을 보여줍니다. 프롬프트를 통해 여러 기능을 동시에 수행하도록 명령할 수 있습니다.

  • 부연 설명 및 예시: 복잡한 프롬프트는 다양한 상황에서 유용하게 사용될 수 있습니다.

  • 예를 들어, 여러 단계를 거치는 작업이나 자동화된 시스템에서 활용할 수 있습니다.

  • 예시:

프롬프트:
"댓글 데이터를 크롤링하고, 다음 단계를 따라 처리하세요:
1. 주요 키워드를 추출하세요.
2. 긍정적, 부정적, 중립적으로 분류하세요.
3. 각 분류에 맞는 댓글을 자동 생성하세요."

결과:
"긍정적 댓글: '감사합니다! 앞으로도 잘 부탁드립니다.'"

이러한 프롬프트는 복잡한 작업을 체계적으로 처리할 수 있도록 도와줍니다.

6. 프롬프트 엔지니어링의 미래

  • 내용 요약: 프롬프트 엔지니어링은 업무 자동화, 교육 기술, B2B 솔루션 개발 등 다양한 산업에 적용될 수 있는 잠재력을 가지고 있습니다.

  • 부연 설명 및 예시: 프롬프트 엔지니어링은 단순한 텍스트 생성 이상으로, 다양한 산업에서 실질적인 도구로서 활용될 수 있습니다.

  • 예를 들어, 교육 기술에서 맞춤형 학습 자료를 생성하거나, 업무 자동화 도구로 사용될 수 있습니다.

  • 예시:

프롬프트:
"미국에서 한국어를 배우고 있는 학생들을 위한 맞춤형 학습 자료를 생성하세요. 
초급, 중급, 고급으로 난이도를 구분하고 각 수준에 맞는 연습 문제를 제공합니다."

결과:
"초급: '다음 문장을 한국어로 번역하세요: 'Hello, how are you?'"

프롬프트 엔지니어링을 활용하면 다양한 교육 도구를 효과적으로 개발할 수 있습니다.

결론

강수진 박사의 강의에서 소개된 프롬프트 엔지니어링 기법들은 AI 모델의 정확성, 신뢰성, 창의성을 높이는 데 매우 유용합니다. 프롬프트를 구조화하고, 명확히 구분하며, 자기 검증 기능을 포함하는 것만으로도 결과의 질이 크게 향상될 수 있습니다.

이번 포스트는 가볍게 Prompt Engineering 관련한 흥미로운 유튜브 제목이 있어서 시청 후 정리를 해보았는데요. 다음 번에는 좀 더 개념적인 내용으로 찾아뵙도록 하겠습니다! 🤗

profile
Always be passionate ✨

0개의 댓글