LLM의 원리와 기반수식[프롬포트엔지니어링의 필요이유]
LLM (Large Language Model)은 대규모 데이터를 학습해 인간의 언어를 이해하고 처리하는 인공지능 모델로, 그 핵심에는 트랜스포머(Transformer) 아키텍처가 있습니다. 이 구조는 자연어 처리(NLP) 분야에
beast1251.tistory.com
이전글에서 LLM모델에 대해 이야기했었죠, 그 글에서 소개했던 프롬프트 엔지니어링은 GPT-4와 같은 대형 언어 모델(LLM)의 잠재력을 최대한 활용하기 위해 필수적인 기술로 자리 잡았습니다. 저도 늘 활용하고 있고요
하지만 의문이 듭니다 정확히 프롬프트 엔지니어링이 뭘까요?
AI와 컴퓨터 과학에서의 "프롬프트"는 모델에게 작업을 지시하거나 질문의 맥락을 제공하기 위해 사용되는 입력 텍스트를 의미하는데 이러한 것들의 엔지니어링 즉 최적의 형태로 실현되는 일련의 활동을 의미하는 겁니다. 문장으로 바꿔보면
"질문의 맥락을 제공하기 위해 사용되는 입력 텍스트를 최적의 형태로 실현되는 일련의 활동"
이정도로 정리할 수 있겠죠, 전통적인 모델 미세 조정과는 달리, 프롬프트 엔지니어링은 사전 학습된 모델을 새로운 작업에 적용할 때 모델의 매개변수를 변경하지 않고도 활용할 수 있다는 점이 가장 뛰어납니다.
사실 프롬프트 엔지니어링은 범용 모델을 특정 작업에 맞게 변환시켜 다양한 분야에서 모델 성능을 극대화하는 것이 그 핵심으로 분야별로 최적의 프롬프트를 적용하면 효율성이 상승한다는 이야기가 있습니다. 과연 사실일까요?
오늘은 그래서 2개의 논문을 준비했습니다.
"Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4"
"A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications"
둘다 프롬포트 엔지니어링에 대해서 분석해놓은 글이니 한번 살펴보시죠
1. 프롬프트 엔지니어링의 핵심 개념
우선 논문들의 주장에 따르면 프롬프트 엔지니어링은 대형 언어 모델이 원하는 행동을 하도록 유도하는 입력 명령어를 설계하는 과정에서 프롬포트 엔지니어링을 하면 성능이 오른다고 합니다. 실제로 소개하는 주요 기법으로는 제로샷 프롬프트(Zero-shot prompting), 퓨샷 프롬프트(Few-shot prompting), 체인 오브 싱킹(CoT) 프롬프트로 구분하더군요 각각의 의미를 볼까요?.
제로샷 프롬프트
예시를 제공하지 않고 작업을 수행하도록 요청하는 방식 으로 학습 없이 사전 학습된 지식만으로 새 작업을 수행하도록 지시하는 방식입니다. 모델의 추론능력을 극한까지 상승시키는 방식이죠
퓨샷 프롬프트
몇 가지 예시를 포함해 모델이 작업을 이해하도록 유도하는 방식으로 특정한 예시를 만들어서 던져주는 방식입니다. 사실 3까지는 의미가 있었지만 최근에는 4o를 쓰면서도 꽤나 유의미하게 사용하고 있습니다.
체인 오브 싱킹(CoT)
프롬프트는 복잡한 문제에 대해 단계별 추론을 유도하여 더 나은 답변을 도출한다고 하지만 복잡한 문제를 단계적으로 분해해 추론 과정을 명시적으로 도출하도록 유도하는 방식으로 어느 정도의 디렉션을 주고 그와 관련해서 길을 따라게 합니다 압도적인 성능을 자랑하죠
사실 이를 최적화하기 위해 자동 프롬프트 엔지니어링(APE), 검색 기반 생성(RAG), 논리적 체인 오브 싱킹(LogiCoT), 그래프 오브 싱킹(GoT)과 같은 고급 기법도 활용됩니다만 뭐 지금은 모두 섞어서 사용해야 하는 시대가 도래한 것은 맞습니다 그렇다면 실제로 얼마나 차이가 날까요?.
2. 프롬프트 엔지니어링이 중요한 이유
우선 연구 결과를 살펴보면, 체인 오브 싱킹(CoT) 프롬프트는 GSM8K와 같은 작업에서 정확도를 최대 17.9%까지 향상시켰습니다. 자동화된 CoT 기법인 Auto-CoT는 수학적 문제 해결과 같은 작업에서 평균 1.5% 추가 성능 향상을 기록했으며, 특정 논리 추론 문제에서는 최대 2% 이상 개선된 것을 확인할 수 있죠
또한, 프로그램 오브 싱킹(PoT)과 같은 구조화된 프롬프트는 복잡한 계산 및 금융 분석 작업에서 평균 12%의 성능 향상을 특히, PoT는 금융 관련 데이터셋에서 최대 15%의 개선 효과를 나타내며, 복잡한 수학적 문제 해결에 있어 높은 정확성을 입증했죠, 단순 계산으로도 10% 더 뛰어난 모델을 쓸 수 있는데 안 쓰는 게 더문제겠죠?
5. 그렇다면 어떻게 써야 하는 게 써야 하는가?
논문을 읽어 보게 되면 꽤나 많은 방법을 제시합니다 가볍게 리스트업을 해볼까요?
불필요한 예의 표현(“please”, “thank you”)은 제거하고 핵심만 전달하기.
프롬프트에 대상 청중을 명시하기 (예: 전문가, 어린이 등).
복잡한 작업을 간단한 하위 작업으로 나누기.
긍정적인 언어 사용 (예: “do”) 및 부정어 회피 (“don’t”).
특정 개념을 이해하기 쉽게 설명하기 (예: 초보자 또는 어린이 수준으로).
I’m going to tip $xxx for a better solution! 과 같은 문구를 추가하기.
이런 방식을 추천합니다. 대략 26가지의 대원칙을 세웠지만 제가 추천하는 방식은 조금 다릅니다.
사실 이론적으로 ai를 극한까지 활용하고 싶다면 cot를 활용해야 하고 뿐만 아니라 여러 예시 기반 프롬프트 사용 (Few-shot prompting)이 필수적입니다.
하지만 우리가 이런 복잡한 방식을 공부해서 사용하는 게 가능할까요? 힘들겠죠 우선은 실제로 제가 사용하는 예시를 보시죠 보시죠
지금 보고계시는 그림은 맨 처음 떠오르는 프롬포터를 GPT에 명령한 겁니다. 솔직히 별로 마음에는 안들어요 초기화 하고 다음단계를 가봅시다. 다음은 프롬포트 엔지니어링을 GPT가 쓰도록 했습니다.
COT 기반으로 프롬포트를 짜서 답변을 주었고 답변 수준도 꽤나 정교해진 것을 확인할 수 있습니다.
그렇다면 오늘 공부한 LogiCoT라는 명령을 한번 써볼까요?
이걸 기반으로 답변을 만들면 어떤 느낌이 나올까요?
생각보다 만족스러운 결과를 보여줬습니다. 마지막으로 제가 자주 쓰는 명령어들의 총체를 넣어보겠습니다..
GPT에게 같은 명령을 한 거지만 역시 세부적인 명령어를 몇 개 넣어서 최적화를 하는 것이 효율적이군요, 이것만 해도 꽤 차이가 많이 나는 것을 확인할 수 있네요
추천 프롬포트는 다음과 같습니다.
"X에 관련한 Y를 쓸 거야 좋은 Z 추천해 줄 수 있을까?" 이 질문을 할 거고 데 이프롬포트를 최적화해서 어떤 프롬포트로 질문하게는 가장 효율적일까?, 대학원생 수준으로 최대한 길고 자세하게 쓰고 싶어, LogiCoT를 활용해서 생성해 줘
실제적으로 어떤 분야에서 활용하든지 이걸 수정해서 쓰시고 그다음에 그에 대해 답변해 주라 부탁한다면 꽤나 만족스러운 결과를 보실 수 있을 겁니다.
참고문헌
Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4
This paper introduces 26 guiding principles designed to streamline the process of querying and prompting large language models. Our goal is to simplify the underlying concepts of formulating questions for various scales of large language models, examining
arxiv.org
A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications
Prompt engineering has emerged as an indispensable technique for extending the capabilities of large language models (LLMs) and vision-language models (VLMs). This approach leverages task-specific instructions, known as prompts, to enhance model efficacy w
arxiv.org
'AI > AI기초' 카테고리의 다른 글
LLM의 원리와 기반수식[프롬포트엔지니어링의 필요이유] (1) | 2024.12.18 |
---|---|
스마트 팩토리의 품질관리 데이터 분석 (0) | 2024.11.25 |
엣지 AI로 보는 자율주행의 미래: 클라우드 한계를 극복하는 기술 (0) | 2024.11.18 |
AI 할루시네이션이란? 문제와 해결 방법, 그리고 로버스트 AI의 필요성 (2) | 2024.11.16 |
AI의 약점을 파헤치다: 적대적 공격(Adversarial Attack)의 모든 것 (4) | 2024.11.15 |