brunch

You can make anything
by writing

C.S.Lewis

by 최영석 Feb 16. 2023

프롬프트 엔지니어링과 인젝션:
새로운 IP 훔치기

10억 달러 Notion AI와 Bing-ChatGPT의 숨겨진 프롬프트

프롬프트는 무엇인가?

프롬프트는 텍스트, 질문 또는 이미지로 모델에 입력해 주는 값을 의미한다. 모델은 프롬프트를 처리하고 이에 적절한 텍스트 응답, 분류 혹은 이미지 생성등의 출력 결과물을 생성한다. Prompt는 생성된 텍스트의 콘텍스트, 어조 및 내용을 정의하며 단순한 한 개의 단어부터, 원하는 출력에 대한 보다 복잡한 다중 문장 설명까지 길어질 수 있다. “Prompt를 얼마나 잘 썼는가?”는 모델에서 생성된 출력 결과물의 품질을 결정한다. 따라서 AI에게 욕구를 정확하게 제공할 수 있도록 명확하고 간결하며 당면한 작업에 적절한 프롬프트를 만드는 것이 중요하다.

비유를 하자면, 잘 설계된 엔지니어링 프롬프트는 회사에서 능력 있는 유능한 감독자와 같다. 훌륭한 감독자는 명확하고 간결하게 팀원들에게 자신의 프로젝트 로드맵을 전달한다. 좋은 프롬프트란 결국 AI가 이해하기 쉽게 요구사항을 잘 정리한 것이다.

반면에 모호하고 불명확한 프롬프트는 혼란스럽고 부실한 결과를 초래할 수 있다. 이것이 모델 별 프롬프트들에 대한 명확성과 특성을 잘 이해해야 하는 이유이다.


Prompt Engineering

Prompt Engineering은 AI가 원하는 결과물을 정확하게 제공할 수 있도록 프롬프트를 구체적이고 관련성이 있도록 만드는 방법론 중 하나이다. 대규모 언어 모델(LLM)을 위한 Prompt Engineering에는 모델이 일관성 있고 고품질의 텍스트 출력을 생성할 수 있도록 하는 효과적인 Prompt를 설계하고 제작하는 작업이 포함된다.


프롬프트 엔지니어링은 원하는 출력 결과물을 이해하고 요구 사항을 충족하는 텍스트를 생성하는 모델의 기능을 최대화하는 명확하고 간결한 입력을 제공하는 것을 목표로 한다. 생성된 텍스트 출력의 품질은 주로 Prompt의 품질에 따라 달라지므로, Prompt Engineering은 LLM 기반 서비스를 개발하고 배포하는 데 중요한 구성 요소가 된다. 인공지능이 생성한 결과물은 유저의 만족도에 지대한 영향을 미치기 때문에 잘 설계된 Prompt의 중요성은 계속해서 증가할 것이다.

Promptbase.com


실제로 Prompt를 판매하는 Prompt 마켓 플레이스도 존재한다. Promptbase.com은 Midjourney, DALL E2, GPT-3 및 Stable Diffusion과 같은 이미지 생성 모델 <Large Language Models>을 사용하여 아름다운 이미지를 만드는 데 사용되는 Prompt 마켓플레이스이다.


$250,000- $335,000 USD for the job (January 2023)

Prompts가 중요하다는 인식은 2023년 1월 Prompt Engineer를 위한 Anthropic의 채용 공고와 같이 Prompt 설계에 전념하는 전문화된 역할의 창출로 이어졌다. Anthropic은 이 직책에 대해 $250,000–335,000의 연봉을 제시하며, 출현한 지 얼마 되지 않은 직업임에도 불구하고 높은 채용 경쟁력을 지닌 보상을 제공한다.


참고: Anthropic은 OpenAI Mafia의 일부입니다.
Anthropic은 최근(며칠 전) Google로부터 3억 달러의 상당한 투자를 받아 곧 출시될 Chatbot인 Claude를 시연하고 OpenAI의 ChatGPT 및 Microsoft와 유사한 관계로 자리매김했다.(2023년 2월 4일). 개인적으로 Claude에 큰 관심을 가지고 있다. 미국의 네이버 지식인인 "Quora"의 모바일 앱인 "Poe"에 현재 연동되어 있다. 


시크릿 소스 제조법 훔치기: 인셉션? 인젝션

크리스토퍼 놀런(Christopher Nolan)의 영화 인셉션(Inception)은 꿈속의 세계에 대한 아이디어로 큰 성공을 거두었다. 꿈속에 침투해 잠재의식 깊숙한 곳에 비판적인 생각을 이식하는 이야기를 흥미진진하게 끌어 나간다. 

영화 Inception의 금고 장면

마찬가지로 AI 네이티브 제품의 Prompt는 AI를 원하는 결과로 안내하도록 제작되고 설계되어야 한다. AI 네이티브 제품에서 잘못 설계된 프롬프트는 수준 이하의 또는 관련 없는 결과를 초래할 수 있다. 

Screenshot of Jasper Dashboard


2022년 15억 달러 가치의 Jasper의 기능을 살펴보면 이러한 다양한 템플릿과 기능은 각 기능별로 사용자가 프롬프트를 입력하고 기능에 알맞은 결과물을 생성해 준다. 


이러한 제품은 GPT-3 또는 기타 언어 모델과 같은 LLM의 API를 사용하며 제품 제조업체는 자체적인 Prompt 및 매개 변수 선택을 추가하여 경쟁 우위를 만든다. 위 이미지의 많은 기능들은 회사 내부에서 실험과 검증을 통해 입력된 프롬프트와 매개변수의 조정을 통해 만들어졌다.


간단히 말해, AI 제품은 Prompt와 제품사에서 자체적으로 조정된 특정 매개변수가 혼합된 것이다.

소비자에게 보이지 않는 Prompt + 조정된 특정 매개변수 = 상품의 기능/Feature


영화 인셉션을 예시로 사용하였는데, 더 흥미로운 것은 Prompt 엔지니어링이 반대로 사용하여 Prompt가 “도용”될 수 있다는 것이다. 경쟁력의 핵심인 “지적 재산”의 성향을 띠는 프롬프트를 질문을 통해 추출할 수 있다는 사실이 놀랍지 않은가. 이런 방식으로   “템플릿 프롬프트”를 훔칠 수 있는 경우 경쟁자는 유사한 기능을 쉽게 재구성할 수 있다.


AI 가스라이팅

Prompt 인젝션(Prompt Injection- SQL Injection과 유사하게 이름이 지정됨)은 공격자가 시스템 출력을 조작하기 위해 AI 시스템에 악의적인 입력을 주입하려고 시도하는 행위이다. 결과는 프롬프트 Takeover와 유출(Leaks) 의 두 가지 유형으로 분류할 수 있다.


Prompt Takeovers는 GPT3 제품이 “LOL” 또는 “haha pwned”와 같이 기능이 의도한 것과 다른 것을 말하는 것이다. 유저들은 그저 호기심으로 과거에 Microsoft Tay(챗봇)에게 인종차별적 발언을 하도록 했고, 이로 인해 결국 대기업의 야심적인 서비스가 중단되었다. 대기업의 봇이나 정치인을 닮은 봇을 사용자가 가스라이팅 해서 문제적 발언을 하게 한다면, 그것에 대한 사회적 영향은 작지 않을 것이다. 최근 한국 대선에서 AI봇이 활용되었다는 사실에 대입해서 생각해 본다면, 프롬프트 인젝션은 단순 호기심이나 유머에 그치지 않는다.

Real response from the bot of remoteli.io


Remoteli.io는 원격 작업을 허용하는 원격 작업 및 회사를 홍보하는 웹 사이트의 GPT-3 기반 Twitter 봇이다. 위의 스크린숏은 문제가 있는 답변을 말하도록 사용자가 봇에게 지시하는 것이 얼마나 쉬운지 보여준다. 미국 상원의원에 대한 악담을 하게 유도하고,  대통령  탄핵을 외치는 한 기업의 챗봇은… 흥미롭게 끔찍하다. 


Prompt Leaking the Notion AI


Prompt Leaks는 AI가 동일한 기반 모델을 기반으로 별도의 AI 네이티브 회사의 제품을 차별화하는 “독점 프롬프트 접두사”를 내뱉는 경우다. 위에서 말 한 “뒷단의 프롬프트"를 빼내는 것에 대한 경우를 말한다.

The problem is that there are no 100% leak-proof methods yet.

유명한 Notion AI Alpha가 출시되었을 때, Y-Combinator가 운영하는 커뮤니티인 Hackernews의 상위 게시물 중 하나는 Prompt Injecting the Notion AI에 대한 것이었습니다. 누출 프로세스를 더 어렵게 만드는 방법이 있지만 생각보다 쉽게 글쓴이 저 자신도 쉽게 누출을 복제할 수 있었습니다.

결과를 공유함으로써 발생할 수 있는 법적 문제가 추후에 있을 수 있다고 생각하여, 다른 사람들이 GitHub에서 공유한 내용을 LINK를 공유하겠습니다.

Hidden Prompts of Notion AI


코드네임 “시드니" — the Microsoft Bing x ChatGPT


Microsoft의 CEO인 Nedella가 ChatGPT와 통합된 새로운 Bing을 세상에 선보인 지 이틀도 채 되지 않았습니다. 흥미롭게도 프롬프트는 즉시 “유출”되었습니다. 분명히 Bing 내 챗봇 뒤에 귀중한 프롬프트를 숨기려는 노력이 있지만 그 노력은 쉽게 패배했습니다. Bing Chat의 코드명은 ‘Sydney’이며 Microsoft의 새로운 AI Chatbot를 만들기 위해 입력된 것으로 의심되는 프롬프트입니다.

하위 이미지를 보면, 분명 챗봇은 자신의 코드네임을  유출 및 공유하지 말라고 지시받았음을 알 수 있습니다. 하지만 프롬프트 인젝션 기법을 통해, 결국 자신의  사내 코드네임을 유출하고 맙니다.


구글의 서치엔진과 견주기 위해 출시하는 Microsoft의  야심작이 사내에서 받은  지시사항 (프롬프트)를 술술 털어놓는 모습입니다.

@kliu128 from Twitter

@kliu128 from Twitter

결론

AI 네이티브 제품의 중요한 기능은 대기업이 생성한 대규모 언어 모델 내에서 설정된 프롬프트와 매개 변수를 사용하여 추론 (Inference) 단계에서 발생합니다. Prompt의 가치는 AI 네이티브 제품을 정의하는 두 가지 중요한 구성 요소 중 하나입니다. 위에서 본 것처럼 Prompt 자체가 제품에서 지속적인 경쟁 우위를 창출하는 데 장벽이 될 만큼 복잡하지는 않습니다. 추후 프롬프트 인젝션을 막는 방법론에 대해서도 써볼 예정입니다.


Prompt Injection은 생각보다 덜 위험하고 해롭지만 이를 해결하는 것은 AI 네이티브 시장의 규모가 더 빠르게 성장하기 위해 반드시 해결해야 할 과제입니다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari