이제는 GPT 같은 LLM 모델이 없는 삶을 상상하기 어려울 정도로, 우리 일상 깊숙이 자리 잡고 있다. 간단한 업무부터 창의적인 작업까지, 정말 많은 일들을 훨씬 더 생산적으로 바꿔주고 있다.
이런 LLM 모델들은 단순한 질문에도 꽤 훌륭한 답변을 내놓지만, 좀 더 깊이 있고 정교한 결과를 원한다면 프롬프트 엔지니어링(Prompt Engineering)이라는 과정을 활용하는 게 훨씬 효과적이다.
예를 들어, 모델에게 특정 역할을 부여하거나 구체적인 예시를 함께 던져주는 방식은 한 번쯤 들어봤을 것이다.
하지만 그 외에도 생각보다 다양한 방법들이 있고, 이들을 적절히 조합하면 훨씬 더 풍부하고 세밀한 응답을 얻을 수 있다.
이번 글에서는 수업을 통해 배운 프롬프트 작성법과 다양한 기술들, 그리고 조별 실습을 통해 경험한 내용을 정리해보려고 한다.
Prompt Engineering
Prompt
자연어 처리 모델들과 효과적으로 상호 작용하기 위해 질문이나 지시사항을 구성하는 역할을 한다.
어떻게 보면 LLM으로부터 응답을 생성하기 위한 입력값이라고 볼 수 있다.
Prompt는 크게 역할을 부여하는 지시문과 입력으로 구성되어진다.
Prompt를 어떻게 구성하느냐에 따라서 결과가 달라질 수 있어서 다양한 실험을 통해서 최적의 결과를 만드는 Prompt를 찾는 것이 중요하다.
Prompt는 Token이라는 단위로 구성되는데, 이러한 토큰이 컴퓨터가 글을 이해하기 위해 사용되어진다.
아래의 사이트를 들어가면 내가 적는 프롬프트가 어떻게 토큰화되어지고 몇 개의 토큰으로 나뉘어지는지 알 수 있다.
https://platform.openai.com/tokenizer
Prompt 구성 5원칙
- 목적 : 원하는 정보나 작업을 명확히 전달하기 위해 목적에 대해서 설정해야한다.
ex) 가장 큰 나라 -> 세계에서 가장 큰 나라를 알려줘 - 명확성 : 요청 내용을 최대한 구체적이고 명확하게 작성하여야한다.
ex) 가장 인구 많은 나라 -> 2024년을 기준으로 가장 인구가 많은 나라를 알려줘 - 맥락 : 모델이 적절하게 답변을 생성하게 하기 위하여 배경 정보나 맥락을 제공하여 이해도를 올린다.
ex) 중세 유럽에서 가장 영향력 있던 왕에 대해 알려줘. 정치적, 경제적 배경을 고려해서 답변해줘. - 형식 : 사용자가 원하는 형식의 답변이 있다면 명시적으로 표현하여 원하는 답변을 얻어야한다.
ex) 가장 큰 나라의 이름과 면적을 표로 정리해서 보여줘 - 피드백 : 모델이 생성해낸 답변에 대해 추가 요청이나 수정사항을 통해 답변을 개선시킬 수 있다.
ex) 세계에서 가장 큰 나라가 러시아라고 답했는데, 면적도 함께 포함해서 다시 알려줘
Prompt Design Framework
- 역할(Role/ Persona) : 생성형 AI의 역할을 정의해준다
- 대상(Audience) : 생성형 AI에게 누구에게 정보를 제공할지를 지정하여, 대상에게 필요하고 적합한 수준에 맞게 답을 생성하게 해준다.
- 지식 및 정보 제공(Knowldeg/ Information) : 생성형 AI에게 질문과 관련되어 참고할만한 지식과 정보를 함께 제공한다. 할루시네이션의 확률을 낮추고 응답의 정확성을 올릴 수 있다.
- 작업 목표(Task/ Goal) : 생성형 AI에게 해야하는 일을 명확하게 알려준다.
- 제약사항(Constrains) : 응답을 생성할 때 따라야하는 제약사항에 대해서 설정한다.
- 형식 및 구조(Format) : 응답의 형식을 지정한다.
- 예시(Examples) : 원하는 응답 형식이나 내용을 구체적인 예시를 제공하여 원하는 방향으로 응답을 유도한다.
조별 실습하기
교수님께서 우리에게 시나리오를 던져주시고 해당 시나리오를 생성형 AI를 통하여 산출물을 만들어보는 실습을 하였다.
<시나리오>
스포츠 용품 기업의 마케터인 나민서 매니저는 초보 러너들을 위한 디지털 마케팅을 기획중이다.
우선 대표 페르소나 5명에 대하여 심층 인터뷰를 진행하고, 그 결과를 바탕으로 2000명 대상으로
설문조사를 진행하여 소비자들의 관심사와 Pain-Points를 도출하고자한다.
이 시나리오를 받고, 각 조별로 자유롭게 방향을 설정해 실습을 시작했다.
우리 조는 디지털 마케팅의 타겟을 좀 더 구체화하고 싶어서 처음에는 중장년층을 대상으로 잡았다가, 이후에는 가족 단위로 타겟을 확장해보기로 방향을 수정했다. 단순한 연령대보다 '가족이라는 관계'를 중심으로 잡으면 더 공감력 있는 메시지를 만들 수 있을 거라 판단했다.
또한 브랜드 아이덴티티 측면에서도 기존의 SK 로고를 그대로 사용하는 대신, 생성형 AI를 활용해 새로운 로고를 직접 제작해보는 실험도 해보았다.
아래는 우리가 AI와 협업하여 만들어낸 보고서 형식의 결과물이다.
https://bittersweet-snowman-a04.notion.site/1-3-SKRUSH-1c294f06d6d78083b82bdcfa20359331
스칼라 1반 3조 ‘SKRUSH’ | Notion
< 시나리오 >
bittersweet-snowman-a04.notion.site
조별 실습 후 느낀 점
이번 조별 실습을 통해 정말 다양한 걸 느낄 수 있었다.
특히 '프롬프트'에 대해 갖고 있던 생각이 많이 바뀌었는데, 그동안은 그냥 질문 던지는 도구 정도로만 생각했던 것 같다. 그런데 막상 실습을 해보니까, 프롬프트 하나를 만드는 것도 마치 하나의 문서를 작성하는 것처럼 구체적이고 체계적으로 접근해야 한다는 걸 깨달았다.
처음엔 "프롬프트에 엔지니어링이 필요한가?"라는 생각이 있었는데, 실제로 해보니 그 차이가 정말 컸다. 대충 던진 질문과 정돈된 프롬프트 사이에는 결과물에서 분명한 차이가 느껴졌다.
특히 놀라웠던 건, 인터뷰 문답지를 만들 때였다. 한 명을 대상으로 하던 인터뷰가 어느 순간 부부 인터뷰로 바뀌었는데, AI가 두 사람을 동시에 인터뷰하는 듯한 답변을 자연스럽게 만들어낸 게 인상 깊었다. 이런 부분에서 AI의 응답 능력이 굉장히 유연하고 사람처럼 느껴졌다.
또 설문조사 결과를 임의로 생성할 때, 그냥 랜덤하게 만드는 게 아니라 ‘있을 법한 결과’로 잘 구성된 것도 신기했다. 단순히 데이터를 만들어내는 데 그치지 않고, 우리가 작성한 마케팅 전략을 바탕으로 AI가 직접 평가까지 해주는 과정은 꽤 의미 있게 다가왔다.
다만, 마지막에 설문조사 결과를 시각화하는 단계까지 프롬프트에 포함했더라면 더 완성도 높은 보고서가 되었을 것 같다는 아쉬움도 남는다. 시각화까지 포함되었으면 보는 사람 입장에서도 훨씬 더 직관적이고 설득력 있게 전달됐을 것 같다.
이번 실습을 통해 ‘프롬프트 작성’이 단순한 질문이 아니라, 결과물을 좌우하는 핵심 요소라는 걸 제대로 느낄 수 있었다. 앞으로는 좀 더 전략적으로 접근해야겠다는 생각이 든다.
Prompt Techinque
Zero -shot
- 예제 없이 모델에 직접 작업을 요청하는 방식이다.
- 간단하고 빠르게 적용이 가능하지만 모델의 기본적인 추론 능력에 의존하게 된다.
- 작업 명령을 명확하게 작성해야 원하는 답변이 나올 가능성이 높다
One -shot
- 하나의 예제를 제공하여 작업 패턴을 보여주는 방식이다.
- 예제 하나로도 성능이 개선이 되어진다.
- 원하는 형식이 있다면 예제를 하나 만들어서 프롬프트에 작성하면 형식에 맞춰 응답이 생성된다.
Few -shot
- 몇 가지 예제를 제공하여 모델이 작업패턴을 학습하도록 유도하는 방식이다.
- 모델을 성능을 향상시키는데 효과적이다.
CoT(Chain of Thought)
- 모델이 중간 사고 과정을 단계적으로 생성하도록 유도하는 방식이다.
- 복잡한 문제를 해결할 때 매우 유용하게 사용된다.
- 단계별로 진행되기 때문에 결과를 검증하고 문제 발생 부분을 찾기 쉽다.
- 중간 단계 출력을 명시적으로 포함하여 원하는 흐름으로 흘러가길 유도한다.
- 단계가 많아지면 토큰의 비용이 증가하게 된다.
Instruction
- 명확하고 구체적인 지침을 모델에게 제공하여 작업을 수행하도록 유도하는 방식이다.
- 지시사항에 의존하는 만큼 지시사항이 불명확하거나 모호하면 부정확한 결과가 생성된다.
Dynamic Prompting
- 입력값, 조건, 사용자 맥락, 이전 대화 내용 등에 따라 실시간으로 프롬프트를 조합하거나 수정하는 방식이다.
- 문맥이나 다양한 상황에 맞게 대답을 생성한다.
- 사용자에게 맞춰 결과 제공이 가능해진다.
논문으로 알아보는 Prompt Engineering Tip
- Few-Shot 프롬프팅은 파라미터의 수가 많은 LLM 모델에게는 효과가 있지만, sLLM 모델에는 큰 효과가 없다.
- Temperature 는 LLM모델의 창의성과 관련된 파라미터인데 Temperature 값을 높이면 할루시네이션을 유발할 가능성이 높아진다고 한다.
- CoT 또한, 성능을 올리기 위해 많이 쓰이지만, 파라미터가 큰 LLM 모델에 효과적이다.
이번 실습과 수업을 통해 Prompt Engineering이 단순히 질문하는 기술을 넘어 AI의 가능성을 끌어올리는 중요한 요소라는 걸 분명히 알게 되었다. 프롬프트 하나를 제대로 작성하는 것만으로도 AI의 성능과 결과물의 품질이 크게 달라진다는 사실이 매우 인상적이었다.
앞으로 AI를 사용할 일이 더욱 늘어날 것이고, 그만큼 Prompt Engineering 기술의 중요성은 더 강조될 것이다. 결국 AI를 제대로 활용하는 것은 기술 자체보다, 그것을 사용하는 사람의 '질문하는 능력'에 달려있다는 점에서 우리 모두에게 중요한 과제가 될거라고 생각한다.
'SKALA' 카테고리의 다른 글
[SKALA] AI Agent 두번째 실습 - LangChain, RAG (0) | 2025.04.08 |
---|---|
[SKALA] AI Agent 개념 및 실습 (0) | 2025.04.06 |
[SKALA] 클라우드 기초 학습(2) - Docker 이해 (0) | 2025.03.23 |
[SKALA] FAST API 서버와 프론트엔드 연동: 트러블 슈팅 경험 정리 (0) | 2025.03.22 |
[SKALA] 클라우드 기초 학습(1) - 개념 단어 정리 (0) | 2025.03.18 |