프롬프트 엔지니어링을 통한 인간-AI 상호작용: LLM 길들이기
INSIGHT
YOUJUNG HUH
WROTE THIS POST.
SUMMARY
CIT의 UX Lounge에서 진행된 ODD 세션 'LLM 길들이기'를 소개합니다. 프롬프트 엔지니어링 26가지 원칙과 효과를 논의했습니다. 원칙 적용 시 LLM 응답의 품질, 정확도가 향상되었으나, 모델과 평가자에 따라 결과가 달라질 수 있었습니다.
One Day Discovery를 소개합니다!
CIT의 프라이빗 커뮤니티, UX Lounge에서는 Lounge 멤버들을 위한 크고 작은 이벤트가 활발하게 열리고 있습니다. 그중 One Day Discovery는 하루 내에 새로운 지식을 발견하는 세션입니다. 가벼운 마음으로 알찬 지식을 얻어가세요!
안녕하세요! 따뜻한 봄을 맞아 ODD를 진행한 컴패노이드 랩스 크루 허유정 입니다.
오늘 제가 전해드릴 내용은 지난 3월 16일 진행한 One Day Discovery 세션(이하 ODD) <LLM 길들이기>입니다.
인공지능과 대화 잘 되시나요?
'챗GPT'가 등장한 이후로 여러 대규모 언어 모델(Large Language Model, 이하 LLM)이 줄지어 공개되었습니다. 지난 3월 초에는 Anthropic에서 공개한 ‘Claude 3’로 한차례 떠들썩했죠. Claude 3는 멘사 IQ 테스트 결과 최초로 IQ 100을 넘은 모델이라고 하는데요. 인간의 지능 수준을 넘어선 모델이 등장할 날도 머지않은 것 같네요.
이렇게 빠르게 LLM 성능이 발전하는 모습을 보면, 사용자로서는 자연스럽게 궁금해집니다. “어떻게 효과적으로 사용하지?”, “더 나은 답변을 받으려면 어떻게 해야 할까?"와 같은 활용법에 대한 궁금증이죠. 이런 궁금증을 함께 해소하고 싶었던 허유정 크루는 Sondos Mahmoud Bsharat 등이 작성한 논문 “Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4”의 내용을 나누는 자리를 마련했다고 해요. 그리고 세션에 참여한 UX Lounge 멤버들을 위해 ‘Prompt Engineering 시무 26조’ 스티커도 제작했답니다!
잘 보이는 곳에 붙여놓고 LLM과 대화할 때 참고하면 딱이겠죠? 혹시라도 이 글을 보고 계시는 분들 중 프롬프트 치트시트 출시 알림 소식을 받아보고 싶으신 분들은 아래 폼을 작성해 주시면 가장 먼저 만나보실 수 있습니다.
그럼 지금부터 세션에 대해 자세히 들려드릴게요!
프롬프트 엔지니어링, 생성형 LLM과의 커뮤니케이션 기술
AI 모델과 대화하다 보면 답답해지는 순간이 많지 않으신가요? 생각보다 원하는 답변을 듣기 쉽지 않으셨을 거예요. 원하는 것과 최대한 가까운 결과를 얻으려면 입력할 지시 내용(instruction)을 다듬고 최적화하는 과정이 필요하거든요. 이러한 과정을 프롬프트 엔지니어링(Prompt Engineering)이라고 합니다. 챗GPT 등장과 함께 크게 주목 받는 핵심 연구 분야죠.
하지만 LLM의 기능을 최대한 활용할 수 있게 자연어로 지시하는 일은 여전히 어려운 문제예요. 그래서 본 논문의 연구자들은 프롬프트 작성 과정을 간소화, 효율화할 방법을 연구했다고 합니다. 우선 다양한 시나리오와 상황에 적용될 수 있는 보편적인 프롬프트 개선 방법을 수집한 후 분류했는데요. 총 26가지 지시 원칙을 5가지 범주로 분류했습니다.
본 논문에서는 더 좋은 응답을 유도하기 위한 6가지 프롬프트 구성 지침을 밝혔습니다. 하나씩 살펴볼까요?
1. 간결성 및 명확성(Conciseness and Clarity)
지나치게 장황하거나 모호한 프롬프트는 인공지능 모델을 혼란스럽게 만들겠죠. 원하는 내용과 관련성이 떨어지는 응답을 줄 테고요. 프롬프트는 불필요한 정보를 제외하고 충분히 구체적이면서도 간결해야 합니다.
2. 문맥적 관련성(Contextual Relevance)
모델이 작업의 배경과 도메인을 이해할 수 있도록 관련 문맥을 제공해야 합니다. 키워드, 도메인별 용어나 상황 설명이 있어야 정확한 맥락의 대답을 얻을 수 있어요.
3. 작업 일치(Task Alignment)
모델에게 작업의 성격을 명확히 전달하는 언어와 구조를 사용해서 프롬프트를 작업과 밀접하게 일치시켜야 해요. 예를 들어, 작업의 예상 입력과 출력 형식에 적합한 질문, 명령, 빈칸 채우기 문장으로 프롬프트를 구성하는 거죠.
4. 예시 시연(Example Demonstrations)
복잡한 작업의 경우, 프롬프트에 예시를 포함해 원하는 형식이나 응답 유형을 모델에게 보여줄 수 있어요.
5. 편향 피하기(Avoiding Bias)
학습 데이터로 인해 모델에 내재된 편향성이 최대한 드러나지 않도록 프롬프트를 설계해야 합니다. 민감한 주제에 대해서는 중립적인 언어 사용과 잠재적인 윤리적 함의에 유의해야 해요.
6. 단계적 프롬프팅(Incremental Prompting)
일련의 단계가 필요한 작업의 경우, 모델이 점진적으로 프로세스를 진행하도록 프롬프트를 구조화할 수 있어요.
그래서 프롬프트 원칙을 적용하면 효과가 있나요?
지금까지 다양한 프롬프트 원칙을 살펴봤는데요. 아직 해결되지 않은 궁금증이 있죠! 원칙들이 모델의 답변을 얼마나 개선할지 그 효과성에 관한 질문이에요. 본 논문에서는 LLaMA-1-{7, 13}, LLaMA-2-{7, 13}, off-the-shelf LLaMA-2-70B-chat, GPT-3.5 (ChatGPT), GPT-4 모델을 평가에 사용했고, 규모에 따라 3가지 그룹으로 나눴어요.
small-scale (7B models)
medium-scale (13B)
large-scale (70B, GPT-3.5/4)
그리고 프롬프트 원칙을 적용하기 이전과 적용한 이후의 결과물을 비교 평가했습니다. 구체적으로 인간 평가자가 Boosting과 Correctness 차원에서 모델별 결과물을 평가했어요.
Boosting: 원칙이 적용됐을 때 질문에 대한 응답 품질이 증가한 비율을 의미
Correctness: 모델의 출력이나 응답이 정확하고 적절하며 오류가 없는지를 의미, 절대적 정확도(Absolute Correctness)와 상대적 정확도(Relative Correctness)를 모두 고려
평과 결과는 어땠을까요? boosting의 경우, 원칙 대부분이 3가지 규모 모델 모두에서 상당한 개선율을 보였습니다. 일부 원칙들은 특히 대형 모델에서 큰 개선 효과를 보였고, 모든 모델에서 큰 개선 효과를 보인 원칙도 있었어요.
correctness의 경우, 우선 절대적 정확도는 평균적으로 20~40% 향상했습니다. 특히 소형 및 중형 모델은 10~40% 개선되었고, 대형 모델은 40% 이상에 달하는 경우도 있었습니다. 상대적 정확도는 평균 10% 이상 향상되었고, 대형 모델의 경우 20%를 넘어섰다고 해요.
세션을 마무리하며
지금까지 다양한 프롬프트 엔지니어링 원칙과 그 효과에 대해 알아보았습니다. 여러분의 프로덕트 디자인에도 활용할만한 원칙을 찾으셨나요?
다만 한 가지 유의할 점은 있어요. 바로 같은 원칙을 적용하더라도 언어모델과 평가자에 따라 응답 결과와 평가 기준이 다를 수 있다는 점이에요. 어떤 사람과 대화하느냐에 따라 적절한 커뮤니케이션 기술이 달라질 수 있는 것처럼, LLM이 달라진다면 프롬프트 원칙도 얼마든지 달라질 수 있겠죠.
여러분은 프롬프트 원칙에 대해 어떻게 생각하시나요?
UX Lounge 멤버들 생각도 듣고 가세요!
A: 저는 실무에서 위의 원칙 중 일부를 이미 사용하고 있어요. 데이터를 정형화하는데 주로 사용하고 있는데, 템플릿과 예시를 선제시하고 처리 방법에 대한 가이드라인을 포함해 프롬프트를 작성하죠. 역할 부여도 하고요. 하지만 정성적인 프롬프트 원칙은 모델에 따라 편차가 클 것 같아요.
B: 저는 역할 부여 원칙을 사용해서 욕쟁이 할머니 컨셉의 대화형 에이전트와 함께 회고록을 작성하는 프로덕트를 만들려고 했어요. 그런데 모델 자체에 설정된 규제 때문인지 욕을 잘 안 해주더라고요. 원하는 컨셉의 프로덕트를 만들려면 어쩔 수 없이 파인 튜닝이 필요하겠다는 생각이 들었어요.
C: LLM을 만드는 회사에서는 규제나 원칙을 계속 만들어가는 거잖아요. 현재 사용하기 좋은 프롬프트 원칙이 있다고 해도 LLM이 업데이트되면 적용 결과가 달라질 수 있기 때문에 이 원칙들이 어떤 의미를 가질지 많은 생각이 들어요. 특히 LLM API를 사용해 서비스를 만드는 회사의 경우 서비스 품질을 통제하기 어렵게 되잖아요. 결국 자체적으로 개발한 모델과 결합하는 구조로 운영할 수 밖에 없을 것 같아요.
[오늘의 논문]
Sondos Mahmoud Bsharat et al. (2024). Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4. VILA Lab, Mohamed bin Zayed University of AI
[오늘의 멤버]
Companoid Labs: 허유정, 박민아, 유은경, 최예소
UX Lounge: 강성훈, 금승도, 고송언, 박찬근
"One Day Discovery에 참여해 가벼운 마음으로 알찬 지식을 얻으며 토론하고 싶으시다면, HCI 칼리지 프로그램에 입문하고 UX Lounge 멤버가 되어 보세요."