logo

프롬프트 엔지니어링은 필요한가

프롬프트 공학은 필요한가?

  • AI 시스템이 개선됨에 따라 AI가 사용자가 원하는 것을 알아내는 데 능숙해지고 있음
    • 난해한 프롬프트의 필요성 하락
  • Sam Altman(ChatGPT를 만드는 OpenAI의 CEO)은 앞으로 5년 후에는 프롬프트 공학은 필요 없어질 것이라고 주장(2022)

유튜브: https://youtu.be/WHoWGNQRXb0?si=I2w5lZ8JJsVGQoVF&t=1507

LLM은 프롬프트를 "이해"하는가?

  • 프롬프트 기반 모델은 의미적으로 올바른 지시적(instructive) 프롬프트뿐만 아니라, 의도적으로 오도하거나 관련 없는 내용의 프롬프트가 주어졌을 때도 비슷한 수준의 학습 속도를 보임
    • 모델이 프롬프트의 의미를 인간처럼 이해하지 못함을 시사
  • 모델 성능은 프롬프트 템플릿의 의미보다 예측해야 할 타겟 단어(target words)의 선택에 훨씬 더 큰 영향을 받음
    • 예: "yes/no" vs. "cat/dog"
    • 타겟 단어의 효과가 프롬프트 의미의 효과를 압도
  • 이러한 현상은 초대형 모델(GPT-3)과 다양한 지시사항으로 튜닝된 모델(T0)에서도 일관되게 나타남
    • 모델의 크기나 instruction tuning만으로는 이 문제가 해결되지 않음을 보여줌

출처: Do Prompt-Based Models Really Understand the Meaning of their Prompts? (https://arxiv.org/abs/2109.01247)

LLM은 프롬프트를 "이해"하는가?

  • 5가지 종류의 설명:
    • instructive: 이 과제를 처음 보는 사람에게 설명하듯이
    • misleading-moderate: 관련은 있지만 다른 과제처럼 설명
    • misleading-extreme: 전혀 다른 과제로 설명
    • irrelevant: 어느 자연어 처리 과제와도 관련 없는 설명
    • null: 설명 없음
  • LLM이 프롬프트를 "이해"한다면, 설명에 따라서 성능에 차이가 있어야 함

prompt-advanced-slide79-image01

설명의 의미와 성능의 관계

  • few-shot에서는 설명의 의미와 성능에 큰 차이가 없음
  • zero-shot에는 instructive한 설명의 성능이 더 나음

prompt-advanced-slide80-image01

prompt-advanced-slide80-image02

prompt-advanced-slide80-image03

타겟 단어의 의미와 성능

  • 타겟 단어의 종류를 다르게 하면, 대체로 의미와 성능에 관련이 있음
    • Yes/No: 함의는 yes, 아니면 no
    • Yes/No-like: yes-no와 비슷하지만 다른 단어(true/false, positive/negative)
    • Arbitrary: 의미 없는 임의의 단어(cat/dog)
    • Reversed: 의미를 반대로(no/yes)
  • 프롬프트와 조합에 따라서는 성능이 역전되는 경우도 있음
    • misleading 프롬프트 + yes/no 타겟(빨강)이 instructive 프롬프트 + arbitrary 타겟(초록)보다 성능이 높음

prompt-advanced-slide81-image01

prompt-advanced-slide81-image02

프롬프트의 민감도

  • 프롬프트에 대한 민감도: 프롬프트의 변화가 결과 성능에 미치는 영향
  • 민감도가 낮아질수록 프롬프트 엔지니어링의 필요도 낮아짐
    • 말만 통하면 결과가 비슷하므로
  • 모델이 커질수록, 예시를 많이 들수록 프롬프트에 대한 민감도가 낮아짐
  • 일시적으로 작동하는 특이한 기법을 쓰는 것보다 성능이 좋은 모델을 사용하고, 프롬프트를 정확하게 쓰고, 예시를 충분히 드는 것이 중요
    • 예: 아이스크림을 사주겠다고 하기 등

prompt-advanced-slide82-image01

prompt-advanced-slide82-image02

사람들이 프롬프트를 잘 쓰지 못하는 이유

  • 과잉 일반화: 한두 번 해보고 된다, 안 된다고 쉽게 판단
  • 언어 모형을 사람처럼 생각
  • 불필요한 말 덧붙이기(예: please)
  • 유용한 프롬프트 기법 사용을 주저
    • 예시 들기
    • 중요한 말 반복하기

prompt-advanced-slide83-image01

프롬프트 공유 안하는 신입 사원?

  • 결과물을 AI에게 주고 프롬프트를 물어보면 됨

prompt-advanced-slide85-image01

prompt-advanced-slide84-image02

prompt-advanced-slide85-image02

프롬프트에서 컨텍스트로

prompt-advanced-slide86-image01 그림 출처: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents

Previous
프롬프트 엔지니어링
Next
증강