2023년 5월 19일
프롬프트 엔지니어링 (Prompt Engineering)
1. 프롬프트 엔지니어링(Prompt Engineering)의 개요
(1) 프롬프트 엔지니어링의 부각 배경
- 특정 산업 또는 조직에서 대규모 언어 모델(LLM) 등 생성형(Generative) AI를 효과적으로 활용하기 위해서는 생성형 AI 맞춤화가 필요하며, 프롬프트 엔지니어링을 통해 생성형 AI 맞춤화로 기업/기관의 생산성 향상 가능
- 특히 LLM(Large Language Model)의 방대한 텍스트 데이터에서 원하는 결과를 얻기 위해 프롬프트(질문)의 최적화가 필요하며, 다양한 방식으로 조작하고 개선하여 최선의 결과 도출 필요
(2) 프롬프트 엔지니어링의 개념
프롬프트의 개념 | 텍스트, 질문 또는 이미지를 언어 모델 등 생성형 AI 모델에 입력하는 값 |
---|---|
프롬프트 엔지니어링의 개념 | 대규모 언어 모델(LLM) 등 생성형(Generative) AI로부터 원하는 결과를 정확하게 제공받을 수 있도록 프롬프트를 설계 및 제작하는 기법 |
(3) 프롬프트 생성 가이드
방법 | 설명 | 예제 |
---|---|---|
쉽고 간결한 표현 | – 불필요 형용사 등 문구 제거 – 작은 입력 차이 큰 변화 | – 초등학생과 함께 가기 좋은 역사 유적지가 있는 여행지 3개 추천해줘. |
지시의 맥락을 함께 입력 | – 현재 상황 구체적으로 입력 – AI 모델의 현재 상황 이해 | – 40대 여성 허벅지 근력 운동 일주일 루틴 짜줘. |
작업의 조건을 구체적으로 명시 | – 원하는 결과를 구체적 입력 – AI 수행 작업을 명확히 지시 | – 인공지능의 종류 3가지를 개념, 특징, 목적으로 비교 표를 만들어줘. |
열린 질문 보다 닫힌 지시문 사용 | – 의문문이 아닌 지시문 입력 – AI의 답변 선택 여지 차단 | – 강남에서 먹을 저녁 식사 메뉴 짜줘. |
원하는 결과물의 예시를 함께 입력 | – 표, 그림 등 결과 예시 입력 – 필요한 결과물의 샘플 제공 | – 다음 포맷으로 가상의 게임 캐릭터를 만들어서 설명해줘. 캐릭터 이름: 멀린, 직업: 마법사, 스킬: 파이어볼, 아이스볼트 |
충분한 테스트와 반복 수행 | – 프롬프트 최적화/추가 개선 – 가이드의 방법을 반복 적용 | – 추가 정보 및 조건을 입력하여 원하는 결과물 도출할 때까지 수행 |
- 좋은 프롬프트는 인공지능이 이해하기 쉽게 요구사항을 잘 정리한 것이고, 반면 모호하고 불명확한 프롬프트는 혼란하고 부실한 결과를 초래할 수 있어 모델 별 프롬프트의 특성에 대한 이해가 필요
- 생성형 AI 모델은 학습할 데이터가 부족하거나 없으면 학습 자체가 어렵거나 편향이 발생할 수 있으므로 퓨샷 러닝(Few-Shot Learning) 기반 소량의 데이터로 원하는 결과 도출이 가능하도록 학습 가능
2. 퓨샷 러닝(Few-Shot Learning)
(1) 퓨샷 러닝의 개념 및 특징
개념 | 메타 러닝, 메트릭 러닝 기반 적은 양의 데이터를 통해 새로운 작업이나 도메인을 학습하기 위한 기계 학습 기법 | |
---|---|---|
특징 | 메타 러닝 | N-way K-shot 태스크를 통한 학습 전략에 대한 앙상블 학습 (N은 범주의 수, K는 범주 별 서포트 데이터의 수) |
메트릭 러닝 | 거리 학습 기반의 오차 함수를 사용하여 내재된 범위에 대한 의미 학습 (일반 학습 방식으로 적은 샷의 학습은 훈련데이터에서의 과적합 발생) |
(2) 퓨샷 러닝의 주요 기법
주요 기법 | 개념도 | 학습 방법 |
---|---|---|
메트릭 러닝 (거리 학습) | – 특징 공간 – 유클리디안 거리 | |
GNN (그래프 신경망 방식) | – Dense Graph 구조 활용 (일반 학습 행렬 활용) – 노드 별 거리(유사도)를 곱한 값들의 합(가중 평균) 기반 그래프 변환 학습 |
- 메타 러닝을 통해 스스로 학습 규칙을 도출할 수 있게 하여 일반화 성능 고도화
3. Transformer 모델 기반 프롬프트 엔지니어링의 한계점 및 개선방안
(1) Transformer 모델 기반 프롬프트 엔지니어링의 한계점
구분 | 한계점 | 제약 사항 |
---|---|---|
학습 데이터에 따른 AI 모델 한계 측면 | 편향성 발생 가능 | – 학습 데이터가 없거나 부족한 경우 발생 – 근거 데이터가 부족하여 결과의 정확성 저하 |
학습 데이터에 따라 다른 응답 결과 | – 표준 학습데이터 부재로 AI 모델 성능 저하 – AI 모델이 문맥 의미 파악 불가, 부정확한 출력 | |
외부 입력에 따른 AI 모델 영향 발생 측면 | 시퀀스 일관성 저하 | – 생성된 단어 등 결과물의 일관성 보장 불가 – 저품질 프롬프트 입력 시 예측 범위 외 결과물 |
악의적 공격에 취약 | – 프롬프트의 기능이 의도한 것과 다르게 작동 – 프롬프트 인젝션 등 공격으로 프롬프트 유출 |
(2) Transformer 모델 기반 프롬프트 엔지니어링 한계점 개선 방안
한계점 | 개선 방안 | 세부 방안 |
---|---|---|
편향성 발생 가능 | 학습 컨텍스트 제공 | – 가능한 많은 입력 컨텍스트 제공, 출력 테스트 – 학습 데이터셋 구축, 데이터 전처리, 퓨샷 러닝 |
학습 데이터에 따라 다른 응답 결과 | 모델 미세 조정 (Fine-Tuning) | – 모델 자체 데이터로 미세 조정(Fine-Tuning) – 특정 사용 사례 요구사항에 유용, 정확한 출력 |
시퀀스 일관성 저하 | 모범 사례 적용 | – 입력값에 명확하고 구체적인 프롬프트 입력 – 질문, 입력 데이터 등 경험 측면 모범 사례 |
악의적 공격에 취약 | 프롬프트 유출 검사 / 가이드라인 최소화 | – AI 모델 질의 전 검사, 생성물에 프롬프트 확인 – Fine-Tuning을 통해 Task 가이드라인 최소화 |
- 초거대 언어 모델이 등장하고 주류로 자리잡으며 프롬프트 엔지니어링의 중요성도 더욱 커질 것으로 예상, 공격자가 시스템 출력을 조작하기 위해 악의적 프롬프트를 주입하는 프롬프트 인젝션(Prompt Injection) 등 보안 위협도 커질 것으로 예상되므로 프롬프트 엔지니어링의 활발한 연구 및 보완 필요
[참고]
- OpenAI, Best practices for prompt engineering with OpenAI API
- Google Research, Language Models Perform Reasoning via Chain of Thought