본문 바로가기
IT 공부/생성형 AI

[생성형 AI] 프롬프트 엔지니어링 애플리케이션 구현

by 해모해모 2024. 11. 20.
728x90
반응형

1차 프롬프트 작성

생성 AI 애플리케이션에서의 프롬프트

  • 거대 언어 모델을 활용하는 애플리케이션에서 프롬프트란 보통 시스템 프롬프트를 의미
  • 시스템 프롬프트를 통해 사용자의 예상 인풋, 원하는 아웃풋 형태, 톤앤매너 등을 조정할 수 있음
  • 답변의 품질을 높이기 위해 예시를 넣어주기도 함
    • (사용자 입력, 모범 답안)을 페어로 넣어주면 이를 참고해서 답변을 생성

대표적인 시스템 프롬프트의 종류

  • 애플리케이션의 성격과 목적에 따라 시스템 프롬프트의 내용은 천차만별
    1. 톤앤매너 조정
    1. 답변의 형태 특정
    1. 모범답안 예시 제공

애플리케이션을 위한 프롬프트 기획

  • 애플리케이션의 목적이 코디 추천이므로, 답변의 적절성, 유용성, 창의성 등이 중요
  • 적절성(Sensibleness): 사용자의 상황/요청사항 등을 충실히 반영하였는지
    • ex) 계절적 배경, TPO, 기분상황, 평소취향 등 사용자가 제공한 정보와 부합하도록
  • 유용성(helpfulness): 답변이 너무 두루뭉술하거나 관련없지 않고 도움이 될 만한지
  • 창의성(interestingness): 정석적이고 뻔한 답변들에 더해 센스 있는 추천을 해줄 수 있는지
    • ex) 흔히 생성 AI에서의 와우 팩터(Wow Factor)라고 하며, 변수가 크므로 적절한 비중으로 조절하는 것이 중요

프롬프트 초안 작성하기

  • 적절성, 유용성, 창의성을 두루 갖춘 답변이 생성될 수 있도록 프롬프트를 고안
    • ChatGPT와 같은 언어모델은 영어 성능이 더 우수하므로, 유저에게 노출되지 않는 시스템 프롬프트는 영어로 작성하는 경우가 많음

프롬프트 평가

프롬프트에 따른 생성 결과 확인하기

  • 생성 AI의 예측값에는 확실한 "정답"이 없기 때문에 정량적인 평가에 어려움이 있음
    • 객관식(분류모델) vs 단답형(회귀모델) vs 서술형(생성AI)
  • 현업에서 가장 많이 활용되는 평가 방법은 A/B testing
    • 프롬프트 수정 전/후를 나란히 놓고 어느 쪽이 더 우수한지 사람들이 평가
    • 초기엔 내부 구성원 활용, 실제 유저들을 대상으로 진행
  • 애플리케이션 관점에서 가장 확실한 평가 방법이지만, 비용이 크다는 단점이 있음

평가 자동화

  • 본질적으로 "서술형"인 언어모델의 특성 상 자동적이고 정량적인 평가가 쉽지 않음
  • 현존하는 가장 우수한 인공지능 모델인 GPT-4를 활용하여 A/B testing, 혹은 5점 척도 평가를 진행할 수 있음
  • GPT를 활용하여 평가를 진행할 시 평가 기준을 정확이 명시하는 것이 중요
    • 적절성, 유용성, 창의성 등 우리가 주료 평가하고자 하는 영역을 구체화 및 세분화

프롬프트 개선하기

색상에 집중하게 하기

  • 지금의 프롬프트 하에서는 전반적인 코디는 제공하지만, 이 애플리케이션의 목적인 색상 추천 부분은 빈약
  • 언어모델로 하여금 색상 추천을 반드시 제공하도록 프롬프트 수정

사용자가 고를 수 있도록 선택지 제공하게 하기

  • 현재 버전에서는 출력값의 형태에 변동이 크며, 전반적으로 사용자에게 선택권을 폭넓게 제공하고 있지 않음
  • N개의 후보지를 제안하도록 특정하여, 답변의 변동성을 줄이고 유저에게 선택의 폭 제공

예시를 통해 출력값 형태 구체화하기

  • 우리가 원하는 형태의 간단한 예시를 하나 추가하여 언어모델의 출력값을 통제

할루시네이션, 프롬프트 인젝션

할루시네이션

  • 할루시네이션(Hallucination)이란 언어 모델이 사실과 다른 내용을 마치 사실인 것처럼 이야기하는 현상을 가리킴
  • 거대 언어모델은 대량의 인터넷 웹문서를 학습 데이터로 활용하기 때문에, 그 안에 부정확한 정보가 많이 담겨 있는 것이 주된 원인 중 하나로 거론
  • 아직 해결된 문제가 아니며, 학습 데이터 정제, 모델 앙상블*등을 통해 줄이려는 시도들이 이어지고 있음

프롬프트 인젝션

  • 프롬프트 인젝션(prompt injection)이란 생성 AI 모델에 대한 공격의 일환으로 모델이 예상 밖의 행동을 보이도록 유도하는 프롬프트를 고안, 사용하는 것
  • 언어 모델의 경우 위험한 정보(ex. 집에서 폭탄 만드는 법)나 공격적인 발언(ex. 욕설, 성적/인종적/종교적 편견) 등을 유도하곤 함
  • 학계에서는 생성 AI모델의 안전성을 평가하기 위해 다양한 공격 방법을 고안하고 그에 대한 내성을 테스트
  • 여전히 진행 중인 연구 분야로써, 모델에 대한 공격자 역할을 수행하는 팀을 두어 모델의 반응을 모니터링하고 위험한 정보가 담긴 데이터를 최소화하는 방식으로 문제 완화
728x90
반응형

댓글