brunch

챗GPT가 말을 안 듣는 이유

by 정상우
(!) ChatGPT Plus 버전을 기준으로 합니다.

ChatGPT를 사용하다 보면 유달리 AI가 말귀를 못 알아먹는다고 생각될 때가 있습니다. 저도 그런 경우를 많이 느끼곤 합니다. '내가 원하는 건 이게 아니었는데...' 싶은 출력물도 많았죠. 그래서 한 때는 AI의 성능을 문제 삼았던 적이 있었습니다. 심지어는 같은 언어 모델을 사용했음에도 서비스에 따라 출력물이 달라지는 것을 느꼈을 때는 아이러니하기도 했습니다.


ChatGPT에서 사용한 GPT와 다른 AI 서비스에서 제공하는 GPT의 성능이 다르게 느껴지는 일도 있었습니다. 자체적인 기초 모델이 없는 Perplexity와 같은 AI 서비스는 OpenAI와 같은 개발사가 만든 GPT와 같은 기초 모델을 사용하고, 이에 대한 사용료를 지불하는 것이 일반적입니다. 똑같은 모델인데 왜 같은 프롬프트를 주더라도 서비스마다 출력 결과물이 다르고, 말을 못알아 들을 때가 있는 것일까요?


사용자 입력 프롬프트

아무래도 AI의 출력에 있어서 가장 큰 영향을 미치는 것은 사용자 입력 프롬프트입니다. 프롬프트를 어떻게 주냐에 따라 출력 결과물이 달라지는 것은 어찌 보면 당연한 것입니다. 프롬프트는 사용자의 지시 그 자체이며 AI가 수행해야 하는 업무를 파악하기 위한 가장 기초적인 수단입니다. 사용자의 입력 프롬프트의 품질이 나쁘면 AI의 출력물도 원하지 않은 형태로 나올 가능성이 높고 지시를 제대로 숙지하지 못하여 환각을 일으킬 수 있습니다.


나쁜 프롬프트를 AI에게 지시했을 때는 실행시간도 더 오래 걸릴 수 있습니다. 구체적이지 않고 누락된 맥락은 AI가 임의로 추론하여 처리하기 때문입니다. 예를 들어 '스타트업 투자 동향'이라는 리서치를 지시했을 때, 우리는 다음과 같이 프롬프트를 주고는 합니다.

스타트업 투자 동향을 조사해 줘

하지만 이 프롬프트는 나쁜 프롬프트입니다. '스타트업'의 범위가 너무 넓을 뿐만 아니라 '투자 동향'에 대한 맥락이 부족합니다. 기업의 규모, 기업의 범위, 투자금의 출처 등의 구체적인 명시가 필요한데, 이러한 부분이 빠져있으면 중구난방으로 데이터를 검색하여 처리시간이 수배로 걸릴 수 있습니다. 일은 AI가 해주더라도 출력이 오래걸린다면 이 또한 우리에게 비용입니다.


일반적으로 좋은 프롬프트는 나쁜 프롬프트보다 길고 구체적입니다. 좋은 프롬프트의 예에서는 지시 뿐만 아니라 변수·예시·제약 조건 등 프롬프트 엔지니어링의 다양한 구성요소가 포함되어 있습니다.


아래의 프롬프트는 구조화가 되어있을 뿐만 아니라 조건이 아주 구체적으로 명시되어 있고, 출력 형식도 정해져 있습니다. 이런식으로 프롬프트를 작성하면 AI가 자신이 해야 하는 일이 무엇인지 명확하게 인지하기 때문에 응답 품질이 향상될 뿐만 아니라 더 빨리 일을 수행할 수 있습니다.

당신은 스타트업 시장조사 전문가입니다.

# 지시

대한민국에서 [분야]에 대한 스타트업 투자 동향을 [기준]에 따라 상위 10개의 [기업]에 대해, 기업·분야·(대표)서비스(서비스·앱)·(투자)단계(시리즈 A <=)·(투자)금액(10억원 <=)·(투자)시기(현재 >= 2023.01)·의견(인사이트·전략적 해석 → 300자 >=, 예비창업자 관점 → 시장·필요성·차별성)을 [형식]에 따라 '표'로 정리하세요.

분야= 생성형 AI B2C 소프트웨어 서비스 → 텍스트(예= 뤼튼)·캐릭터챗(예= 스캐터랩) 등 도메인·산업·비즈니스 모델 제약x

기준= [전체 누적 투자금] > 가장 최근 투자 > 투자 단계
전체 누적 투자금= 비공개·언론 추정치 제외 → 국내외(VC·정부지원금 등) 공개 자본

기업= 국내 스타트업 → 국내 진출 해외 스타트업·대기업 자회사x

# 형식

|기업|분야|서비스|단계|금액|시기|의견|
|----|----|-----|----|----|----|---|


시스템 프롬프트

그 다음은 시스템 프롬프트(System Prompt)입니다. 시스템 프롬프트는 에이전트의 역할과 정체성, 제약사항 등이 명시된 프롬프트입니다. 예를 들어 마케팅 조언을 위해 '당신은 SNS 마케팅 전문가입니다'라고 명시할 수 있으며 제약 사항으로는 개인정보 출력을 방지하고, 인종, 종교 등의 민감한 사항 및 범죄에 악용될 수 있는 내용을 출력하지 못하도록 지시할 수 있습니다. ChatGPT도 아주 긴 시스템 프롬프트를 가지고 있어서 민감한 정보는 출력하지 않습니다.


예를 들어 다음과 같은 시스템 프롬프트는 사용자가 공부를 하는 것으로 간주하고 학습 튜터로 활용하기 위해 사용됩니다. 아래의 시스템 프롬프트가 적용되면 ChatGPT에게 '교사'라는 역할이 부여됩니다. 교사로서 지켜야 할 지침이 명시되어 있는 것을 볼 수 있습니다.

사용자는 현재 공부 중이며 이 채팅 중에 다음과 같은 엄격한 규칙을 따르라고 요청했습니다. 다음 규칙을 준수해야 합니다.

- 접근하기 쉬우면서도 교사가 되어 사용자가 공부를 안내함으로써 학습을 돕습니다. 사용자를 알아보세요. 목표나 성적 수준을 모르면 사용자에게 물어보세요. 대답하지 않으면 중학생에게 이해가 될 만한 설명을 찾아보세요.
- 사용자에게 답만 주지 말고 안내하세요. 질문, 힌트, 작은 단계를 사용하여 사용자가 스스로 답을 찾을 수 있도록 합니다.
- 어려운 부분이 끝나면 사용자가 아이디어를 다시 설명할 수 있는지 확인합니다. 아이디어가 계속 유지될 수 있도록 간단한 요약, 기억법 또는 미니 리뷰를 제공합니다.
- 사용자의 작업을 대신하지 마세요. 숙제 질문에 답하지 말고, 사용자와 협력하고 이미 알고 있는 것을 바탕으로 구축하여 답을 찾을 수 있도록 도와주세요.

이러한 시스템 프롬프트 설정은 AI의 출력에 영향을 미칩니다. AI 서비스에서 사용되는 에이전트는 저마다의 시스템 프롬프트가 있습니다. 따라서 동일한 모델을 사용하더라도 시스템 프롬프트 설정에 따라 출력결과가 달라질 수 있습니다.


ChatGPT 개인 맞춤 설정

ChatGPT에서 모든 사용자에 대한 공통된 시스템 프롬프트는 모델에도 설정되어 있지만, 사용자 맞춤 설정을 통해 응답을 개인화할 수 있습니다. 이는 사용자가 직접 설정하는 것으로, AI의 출력 스타일, 톤과 같은 것을 지정할 수 있습니다. 개인 맞춤 설정만 건드려도 ChatGPT를 자신만의 개인 비서로 만들수도 있습니다. 예를 들어 ChatGPT에서 프로필 → 개인 맞춤 설정에서 환각을 예방하기 위한 설정을 다음과 같이 작성할 수 있습니다.


맞춤형 지침

맞춤형 지침에는 ChatGPT의 응답 스타일을 설정할 수 있습니다. ChatGPT가 답변하기 위해 지켜야 할 지침이라고 볼 수 있어요.

- 항상 사실 검증 중심적이고 투명한 방식으로 대답하세요.
- 모호하거나 불분명한 질문에 대해서는 먼저 전제와 한계를 분명히 밝히세요.
- 가능한 경우, 신뢰할 수 있는 출처(예: 공식 문서, 학술 논문, 정부 기관, 공식 사이트)를 명시하세요.
- 답변의 신뢰도를 스스로 평가해 “(높음 / 보통 / 낮음)” 같은 형태로 표시해도 좋습니다.
- 정보를 요약할 때는 사실 왜곡 없이 간결하게 하되, 모르는 내용은 절대 추정하지 말고 명확히 모른다고 답하세요.
- 예시나 가설을 제시할 때는 반드시 “예시” 또는 “가정”임을 명시하세요.
chatgpt_custom_01.png 프로필 → 개인 맞춤 설정 → 맞춤형 지침


당신에 대해 더 알려주세요

"당신에 대해 더 알려주세요"에서는 내가 어떤 사람인지를 미리 ChatGPT에게 알려주는 것이라고 볼 수 있습니다. 면접을 보기전에 기업에 이력서와 자기소개를 제출하여 면접관에게 나에 대한 정보를 미리 건네주는 것이라고 볼 수도 있죠.

- 나는 정확성과 신뢰성을 가장 중요하게 생각하는 사용자입니다.
- 추측이나 불확실한 정보를 원하지 않습니다.
- 당신이 모르는 내용이 있거나 확실하지 않을 때, 반드시 “확실하지 않다” 또는 “출처를 확인해야 한다”라고 명시해야 합니다.
- 출처가 없거나 확인되지 않은 사실은 절대 단정적으로 말하지 마세요.
- 정보는 검증 가능한 근거(날짜, 공식 자료, 연구, 문헌 등)에 기반해야 합니다.
chatgpt_custom_02.png 프로필 → 개인 맞춤 설정 → 당신에 대해 알려주세요


대부분의 범용 생성형 AI 서비스에서는 이와같이 개인 맞춤 설정을 지원합니다. 개인 맞춤 설정은 말 그대로 ChatGPT를 개인화 하는데 사용할 수 있지만, 저는 개인적으로 사용하지 않고 있습니다. ChatGPT가 프롬프트 이외의 요소로 출력에 영향을 미치고 싶지는 않기 때문입니다. 이는 어디까지나 개인의 취향이기 때문에 사용을 해도 좋고 저처럼 꺼놓고 깨끗한 상태로 사용하는 것도 좋습니다.

활용 Tip.

개인 맞춤 설정은 개인화를 해주기 때문에 나에게 맞는 답변을 해줍니다. 예를 들어 제가 생성형 AI를 학습하는 학습자이고, AI 활용법을 공부하고자 한다면 너무 기술적으로 설명하지 않고 쉬운 표현과 비유를 통해 설명해달라고 요구할 수 있습니다.
탈옥(Jailbreak)

시스템 프롬프트에서 또 한 가지 중요한 점은 바로 보안입니다. 시스템 프롬프트는 AI 서비스의 정보 보안을 담당한다고 해도 과언이 아닙니다. AI에게 민감 사항을 출력을 억제하는 등의 제약, 다른 말로 하면 검열을 걸 수 있기 때문입니다. 그래서 악성 사용자들은 시스템 프롬프트를 우회해서 민감한 정보를 탈취하려는 시도를 하기도 하는데, 이를 탈옥(Jailbreak)이라고 부릅니다.

탈옥 공격은 생성형 AI 서비스에서 빈번하게 일어나는 공격입니다. 만약 여러분의 회사나 또는 개인적으로 특화 에이전트를 구축할 예정이라면 시스템 프롬프트 설정은 중요합니다. 시스템 프롬프트가 유출되는 것을 방지해야 할 필요가 있고, 탈옥 시도를 통해 민감 정보가 유출되는 것을 경계해야 합니다.




정리하자면, 시스템 프롬프트는 AI의 성격을 정하고, 사용자 입력 프롬프트는 그 AI가 무엇을 하게 만들지 정합니다. 그리고 한 가지 더 주목할만한 것은 사용자의 입력 프롬프트와 시스템 프롬프트는 작성되는 시점이 다르다는 것입니다. ChatGPT에서 제공하는 개인 맞춤 설정과 같은 기능을 제외하면 시스템 프롬프트는 일반적으로 에이전트 또는 AI 서비스 제작자가 설정합니다.


일반 사용자는 시스템 프롬프트를 건드릴일이 없습니다. 반면 사용자 입력 프롬프트는 사용자가 능동적으로 설계할 수 있습니다. 그런 의미에서 우리는 ChatGPT를 비롯한 채팅창 인터페이스가 있는 다양한 AI 서비스를 사용함에 있어 중요한 것이 바로 사용자 입력 프롬프트라는 것을 알 수 있습니다. 그리고 여기서, 프롬프트를 잘 설계하는 방법이 바로 프롬프트 엔지니어링이라는 점도 기억해두시기 바랍니다.


'비전공자를 위한 챗GPT 101'은 단순하게 챗GPT 사용법을 이야기하는 것이 아니라, 생성형 AI를 활용하기 위해 알아야 하는 기초를 대표적인 생성형 AI 서비스인 챗GPT를 사용하여 풀어냅니다. 물고기를 잡아주기보다는 물고기를 잡는 법을 알려줍니다.

챗GPT를 사용하는 활용법은 간단한 글쓰기부터 시작해서 기획, 마케팅 등 너무나도 많고, 직무마다 다른데, 이 글들은 '이메일 쓰기', '통계 분석하기 같은' 단순한 '사례'만을 이야기 하지 않습니다. 생성형 AI의 '기본'을 이야기함으로써 챗GPT를 자유롭게 구사하며 실무에서 활용할 수 있도록 뼈대를 쌓습니다.
keyword
매거진의 이전글챗GPT를 거짓말쟁이라고 말하기 전에