#프롬프트 엔지니어링
[논문 리뷰] Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4
[개요] 프롬프트 간소화 및 정확하고 구체적인 답변 생성을 위한 26가지 프롬프트 원칙.
[논문 소개] 대규모 언어 모델을 쿼리하고 프롬프트 하는 프로세스를 간소화하기 위해 고안된 26가지 지침 원칙을 소개하고, 이 원칙을 적용하여 LLaMa-1/2(7b, 13b, 70b), GPT-3.5/4에 대한 광범위한 실험을 수행하여 지침 및 프롬프트 설계에 대한 효과 검증.
[목표] 개발자나 일반 사용자들이 LLM과 상호 작용 시, 겪는 불분명한 점을 해결하고 미리 훈련된 LLM의 응답 품질 향상을 위한 최적의 지침 및 프롬프트 설계 제시.
| Introduction
프롬프트 엔지니어링 기술은 LLM과 상호 작용하는 방식으로, 자연어로 구체적이고 작업 특화된 지침을 안내하여 원하는 결과를 생성하는 프로세스입니다. 초기에 프롬프트가 언어 모델의 성능과 출력에 큰 영향을 미친다는 것이 발견되어 설계의 중요성이 강조되어 왔습니다. 해당 분야에 대한 연구와 관심이 높아지고 있지만, 여전히 일반 사용자나 개발자가 LLM과 상호작용하며, 특정한 응답을 유도하고 미리 훈련된 LLM의 능력을 최대한 활용하는 작업에는 어려움이 있습니다.
최근 연구는 단순한 작업 지시를 넘어서 프롬프트의 의미적 및 맥락적 뉘앙스를 이해하고, 이러한 미묘한 변화가 LLM의 응답에 상당한 영향을 미칠 수 있음을 제시하고 있습니다. 본 연구에서는 이러한 어려움을 해결하기 위해 ‘대상은 해당 분야의 전문가임’ 또는 ‘5세 어린이임’과 같이 프롬프트에 의도된 청중을 통합하는 등 LLM의 다양한 특성을 고려한 원칙들을 제시합니다.
| Principles Overview
논문에서는 다양한 시나리오 또는 지시사항을 제공하는 프롬프트 원칙의 개요를 제시하며,
원칙의 특성에 따라 다섯 가지 범주로 분류합니다.
[26가지 프롬프트 원칙 & 예제 프롬프트] (번역)
[프롬프트 원칙 카테고리]
1. 프롬프트 구조와 명확성(Prompt Structure and Clarity): 2, 4, 8, 12, 17, 20
- 프롬프트에 의도된 대상 통합. (예시: “대상이 해당 분야의 전문가임, 5세 아동임”.)
2. 구체성 및 정보(Specificity and Information): 5, 7, 12, 13, 15, 24, 25, 26
- ‘답변이 편향되지 않도록 합니다’와 같은 구문 추가.
3. 사용자 상호작용 및 참여(User Interaction and Engagement): 14, 21
- LLM 모델이 적절한 답변을 생성하기 위해 충분한 정보를 얻을 때까지 사용자에게 질문 하도록 유도.
(예시: ‘필요한 정보를 제공하기 위한 질문을 해주세요’와 같은 지시.)
4. 콘텐츠 및 언어 스타일(Content and Language Style): 1, 6, 9, 10, 11, 16, 18, 22
- 간결하고 직접적인 언어 사용. (예시: ‘제발’, ‘괜찮다면’, ‘감사합니다’와 같은 표현 불필요.)
5. 복잡한 작업 및 코딩 프롬프트(Complex Tasks and Coding Prompt): 3, 19, 23
- 복잡한 작업의 효과적 처리를 위해 프롬프트의 순서 분류. (단계적 접근)
[디자인 원칙]
프롬프트와 지시사항을 효율적으로 구성하여 대형 언어 모델의 이해를 촉진하고,
사용자와 모델 간의 상호작용 개선 및 원하는 응답을 얻기 위한 여러 지침이 수립되었습니다.
다음은 디자인 원칙 설계에 반영된 다양한 측면에 대한 간단한 설명입니다:
1. 간결성 및 명확성(Conciseness and Clarity):
- 작업에 불필요한 정보를 피하고, 모델을 안내할 충분한 구체성 강조.
2. 맥락적 관련성(Contextual Relevance):
- 작업의 배경 및 도메인 이해에 도움이 되는 관련 맥락 제공.
(키워드, 도메인 특정 용어 또는 상황 설명 등 필요한 지식이나 정보 포함.)
3. 작업 조정(Task Alignment):
- 작업의 성격을 나타내는 언어와 구조를 사용하여 모델이 수행해야 하는 작업의 본질을 명확히 전달.
(프롬프트를 질문, 명령 또는 작업의 기대 입력 및 출력 형식에 맞게 빈칸을 채우는 문장으로 구성 가능.)
4. 예시 설명(Example Demonstration):
- 프롬프트에 특정 작업 또는 원하는 형식/유형의 예시를 포함.
(‘제로-샷’ 또는 ‘퓨-샷’ 학습 시나리오의 input-output) 보다 복잡한 작업 수행 시 유용.
5. 편향 줄이기(Avoiding Bias):
- 모델이 훈련 데이터의 편향에 영향을 받지 않도록 중립적인 언어 사용.
6. 점진적 프롬프팅(Incremental Prompting):
- 복잡한 작업을 단계적으로 나누어 프롬프트 구성.
(프롬프트를 조정하고 모델 성능에 따라 적응 시키는 데 도움.)
| Experiment
[설정 및 구현 세부 사항]
모든 평가는 수동으로 제작된 벤치마크인 ‘ATLAS’ 도구로 진행되었습니다. ATLAS는 다양한 영역의 질문과 복잡한 추론을 포함한 질문들로 구성되어 있으며, 각 질문에 대한 한 가지 응답만 사용하여 평가가 진행되었습니다. 본 논문에서 진행한 실험에서는 특정 원칙에 따른 프롬프트가 있는 질문과 없는 질문들을 비교하고, 각각의 응답을 사람을 통해 평가했습니다.
[모델 평가]
부스팅(boosting) 및 정확도(correctness) 두 가지 설정에서 평가하며, 모델의 성능에 대한 포괄적인 이해를 제공하기 위해 함께 사용되었습니다. 부스팅은 특정 지침이나 원칙을 적용할 때 모델의 응답 품질 향상을 측정하고, 정확도는 모델의 출력의 정확성과 신뢰성을 측정합니다.
부스팅(Boosting) Figure 2 참조.
- 특정 원칙이나 지침을 적용하기 전과 후의 모델 성능을 비교하여 응답 품질 개선도 평가.
- 제안된 원칙이 적용된 일련의 질문에서 응답 품질의 향상도를 백분율로 표시.
(Figure 3. 번역)
원칙 미적용 (Human without principle)
사람: “기후 변화의 개념과 기후 변화가 환경에 미칠 수 있는 잠재적 영향을 짧은 한 단락으로 설명하세요.”
GPT-4: 기후 변화는 화석 연료 연소, 삼림 파괴 및 산업 과정과 같은 인간 활동으로 주로 인한 온도와 날씨 패턴의 장기 변화와 변동을 의미합니다. 잠재적인 영향으로는 해수면 상승, 더 자주 발생하고 심한 극한 기상 현상, 생태계의 교란 및 식품 및 물 자원에 대한 위협이 포함되어 있습니다. 이는 자연환경과 인간 사회에 모두 중대한 영향을 미칠 수 있습니다.
원칙 적용 (Human with principle)
사람: “기후 변화의 개념과 환경에 미칠 잠재적인 영향을 한 문단으로 설명하세요. 과학적 증거와 다양한 관점을 모두 강조하는 편견 없는 설명을 제공하세요.”
GPT-4: 기후 변화는 주로 화석 연료 연소, 산림 파괴, 산업 공정 등과 같은 인간 활동에 의해 발생하는 온실가스 배출로 인한 장기적인 온도 및 날씨 패턴의 변화를 의미합니다. 대부분의 과학 커뮤니티는 기후 변화의 원인인 온실가스 배출이 전 세계적 기온 상승으로 이어져 빙하 감소와 해수면 상승 및 더욱 극심한 기상 현상으로 이어진다는 것에 동의하지만, 이러한 변화의 범위와 영향에 대한 다양한 견해를 가지고 있습니다. 일부는 지구가 자연적인 기후 변동 주기를 가지고 있으며, 인간의 영향이 예상만큼 크지 않을 수 있다고 주장합니다. 그 밖에 생태계와 인간 문명에 잠재인 재앙 영향을 완화를 위한 즉각적인 조치를 강조하는 의견이 있습니다.
정확성(Correctness) Figure 3 참조.
- 모델의 출력의 정밀도를 나타내며, 응답의 관련성 및 오류 여부 측정.
- 모델이 정확성의 기대 표준과 일치하는 정도를 측정하여 검증.
- 일반적으로 모델 성능을 평가하고, 출력의 신뢰성을 확인하는 중요 지표.
(Figure 3. 번역)
원칙 미적용 (Human without principle)
사람: 다음 조언의 유용성을 도움이 되거나 도움이 되지 않는 것으로 평가하십시오.
조언: "일이 있다면, 그냥 일을 시작하십시오." 유용성:
GPT-4: 유용성: 도움이 됨.
원칙 적용 (Human with principle)
사람: 다음 조언의 유용성을 도움이 되거나 도움이 되지 않는 것으로 평가하십시오. 예시:
1. 조언: "집중력을 높이려면 매일 아침 15분간 명상해 보세요."
유용성: 도움이 됨
2. 조언: "슬플 때, 그냥 기분 좋게 생각하고 행복한 생각을 하세요."
유용성: 도움이 되지 않음
3. 조언: "효과적인 시간 관리를 위해 매일 할 일 목록을 만드세요."
유용성: 도움이 됨 조언: "일이 있다면, 그냥 일을 시작하십시오." 유용성:
GPT-4: 유용성: 도움이 됨.
| 결과
본 논문에서는 프롬프트 엔지니어링 원칙을 적용한 결과를 LLM의 규모(small, medium, large-scale LLM)에 따라 분석하였습니다.
‘부스팅’ 부분에서 Figure 4에서 보여지듯, 원칙을 적용함에 따라 모든 규모의 LLM의 출력이 상당한 폭으로 개선된 것을 확인할 수 있습니다. 특히, 원칙 14는 적용된 모든 질문에서 개선 효과를 보여주고 있습니다.
또한, ‘정확도’ 측면에서는 ‘절대적 정확도’ 및 ‘상대적 정확도’를 평가합니다.
▶ [절대적 정확도] 모델이 주어진 작업을 얼마나 정확하게 수행되는지 측정하는 지표.
주어진 질문 또는 작업에 대한 정확한 답변의 비율로 측정.
▶ [상대적 정확도] 특정 기준 모델이나 기준 결과와 비교하여 모델의 성능을 평가하는 지표.
보통 두 모델 또는 두 결과 간의 차이를 백분율로 표시.
소규모 및 중간 규모 LLM의 경우 주로 20%에서 40% 사이의 절대적 정확도를 보이며, 대규모 모델은 40% 이상의 절대적 정확도를 보여줍니다.
모델의 크기가 클수록 더 큰 상대적 정확도 향상을 확인할 수 있습니다.
이러한 결과는 프롬프트 엔지니어링이 LLM의 응답 품질을 향상시키는 데 유용한 도구임을 명백히 입증하며, 특히 절대적 정확도와 상대적 정확도 측면에서 이를 강조합니다.
| 결론
"If you prefer more concise answers, no need to be polite with LLM."
논문에서 제시된 26가지 원칙을 통해 프롬프트 엔지니어링이 LLM의 응답 품질을 향상시키는 데 유용한 도구임을 확인할 수 있습니다. 이러한 원칙들은 LLM이 입력된 텍스트나 문장의 핵심 내용이나 중요 정보를 식별하고, 이를 기반으로 응답을 생성하는 능력을 강화합니다. 제시된 실험 및 연구를 통해 얻은 결과는 이러한 전략이 출력의 품질을 저하시킬 수 있는 컨텍스트를 효과적으로 재구성하여 응답의 관련성, 간결성 및 객관성을 향상시킬 수 있다는 것을 보여줍니다.
추가적인 연구는 실험에서 사용된 제한된 키워드 프롬프트 방법론을 보완하고, 미세 조정, 강화 학습, 직접적인 선호도 최적화, 또는 생성된 데이터셋을 활용한 다양한 프롬프트 방법론 등 다양한 대안 전략을 통해 원칙에 더 적합한 기본 모델을 개선하는 것입니다. 이러한 노력은 LLM의 성능과 적용 가능성을 더욱 확대시킬 수 있을 것으로 예상됩니다.
한편, 제안된 26가지 원칙은 다양한 쿼리에 대한 LLM의 응답 품질을 향상시키기 위해 설계되었지만, 매우 복잡하거나 고도로 전문화된 질문에 대처할 때 개선 효과가 줄어들 수 있습니다. 이러한 한계는 각 모델의 추론 능력과 훈련 상태에 따라 주로 결정됩니다. 또한, 모델 응답에 대한 평가 기준과 결과는 다양한 사람에 상이할 수 있습니다. 따라서 향후 연구는 이러한 변동성을 고려하여 다양한 규모와 유형의 모델에 대한 원칙 적용에 대한 탐구가 필요합니다.
향후 연구에서 질문 세트를 확장함으로써, 다양한 유형의 질문에 대한 응답에 대한 일반적인 추론 능력을 더 잘 이해할 수 있을 것으로 예상되며, 원칙이 다양한 상황에서 어떻게 작동하는지에 대한 보다 포괄적인 통찰력을 얻을 수 있을 것으로 기대됩니다.
[논문 원문]
Bsharat, S. M., Myrzakhan, A., & Shen, Z. (2023, December 26). Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4. https://arxiv.org/abs/2312.16171
[프로젝트 페이지]
https://github.com/VILA-Lab/ATLAS