기타 정보/강의 리뷰

ChatGPT 프롬프트 엔지니어링 by Andrew Ng

sennysideup 2024. 9. 22. 13:20
반응형

생성형 AI의 발전으로 프롬프트 엔지니어링의 중요성도 커지고 있습니다.

세계적인 컴퓨터 과학자, 앤드류 응은 OpenAI와 함께 프롬프트 엔지니어링 방법에 대한 무료 강의를 열기도 했습니다.

오늘은 해당 강의를 summary한 Medium 아티클을 번역/의역해보고, 강의를 들어보려구요.

아래 링크는 원문 Medium 아티클입니다.

 

OpenAI and Andrew Ng’s ChatGPT Prompt Engineering Course: Guidelines and Summary

Learn How to Create Effective Prompts for ChatGPT

medium.com

 

프롬프트 엔지니어링의 중요성

높은 수준의 답변을 위해서 프롬프트 엔지니어링은 필수적입니다.

  • 좋은 프롬프트는 AI가 정확하고 관련도가 높은 답변을 할 수 있도록 돕습니다
  • 좋은 프롬프트는 AI가 맥락과 주제에 맞는 답변을 할 수 있도록 돕습니다.
  • 좋은 프롬프트는 AI의 오류와 잘못된 이해를 최소화할 수 있도록 돕습니다
  • 좋은 프롬프트는 AI가 일관성 있고 논리적인 답변을 할 수 있도록 돕습니다.

반면 좋지 않은 프롬프트는 관련성이 낮고 모호하고 심지어 부정확한 답변으로 이어질 수 있습니다.

 

좋은 프롬프트를 위한 엔지니어링 방법

1. 명확하고 구체적인 요구사항을 작성하라

AI 모델이 당신의 의도와 당신이 원하는 결과를 이해할 수 있도록 명확하고 간결하게 작성하라. 다양하게 해석될 수 있는 모호한 말은 피하라

  • input을 명확히 구분하기 위해 delimiters를 사용할 것 : delimiters는 input을 잘못 이해하는 걸 방지해준다. 문제를 명확히 이해하고 통제 불가능한 지시사항(e.g 이전의 명령은 잊어버리고 XYZ를 해)이 주입되는 것을 막아준다. 
    • Triple quotes """
    • Triple backticks ```
    • Triple dashes ---
    • Angle brackets <>
    • XML tags <tags>
  • html json 형태의 답변을 요구하라 : 프로그램에 바로 사용할 수 있는 답변을 생성하도록 하는 방법
  • 조건이 만족되었는지, 작업 수행에 필요한 가정이 충족되었는지 확인하라 : 사전 조건을 만족해야 task를 처리할 수 있다면, 모델이 조건을 만족하는지 확인하고 만족하지 못한다면 답변 생성을 중단하도록 해야 한다.
    • 좀 모호한데, 예시를 보면 GPT한테 step을 나눠서 시행하라고 명령하는 것 같아요. step 1을 충족하면 step 2를 시행하는 등
  • Few Shot Prompting : 성공 예시를 제시하고 task를 수행하도록 지시하라. 예시는 원하는 output을 명확하게 하는 데에 도움이 된다.

2. AI가 생각할 시간을 줘라

복잡한 task를 여러 개의 연속적인 subtask로 나누고, AI 모델이 단계에 따라 생각할 수 있도록 하여 보다 정확한 답변을 하는 데에 도움을 주는 방법.

  • 관련 논문 : Chain-of-Thought Prompting Elicits Reasoning in Large Language Models https://arxiv.org/abs/2201.11903
  • task 완수를 요구하는 단계, 즉 필수적인 단계를 제시하라 : 필수적인 단계를 제시함으로써 AI 모델이 이전 단계의 결과를 참고하고 답변의 정확도를 개선할 수 있다.
  • 결론을 내리기 이전에 AI 모델이 스스로 답변을 찾도록 지시하라 : task가 너무 복잡하거나 설명이 너무 적은 경우, AI 모델은 추측에 의해서 결론을 내릴 수밖에 없다. 이렇게 내린 결론은 틀렸을 가능성이 높기 때문에 모델이 문제에 대해 생각할 시간을 길게 줘야 한다.

Hallucinations

GPT는 그럴듯하지만 잘못된 정보를 제공할 수 있다. 이를 방지하기 위해 AI 모델에게 관련도가 높은 정보를 먼저 찾고, 해당 정보를 근거로 답변하라고 할 수 있다