Prompts in the Wild: A Large Analyzed Collection of Transactional Prompts in Code
이 논문은 GitHub에서 수집한 57,500개의 고유한 트랜잭션 프롬프트 컬렉션을 풍부하게 구조화된 언어적 객체로 변환하여 언어와 도메인 전반에 걸친 다양한 사용 패턴을 밝혀내고, 포괄적인 오류 분석을 통해 주석 품질을 검증함으로써 대규모 컬렉션을 분석하기 위한 구조화된 온톨로지를 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 로봇에게 시를 쓰거나 컴퓨터 프로그램의 버그를 고치는 것과 같은 특정한 일을 가르치려 한다고 상상해 보세요. 당신은 로봇에게 정식 프로그래밍 코드를 주는 대신, 평범한 영어로 된 일련의 지침을 작성합니다. 이 일련의 지침을 **프롬프트(prompt)**라고 부릅니다. 프롬프트를 요리사에게 주는 레시피 카드라고 생각해 보세요. 만약 레시피가 모호하다면("맛있는 것을 만들어라"), 요리사는 잘못 추측할 수 있습니다. 하지만 레시피가 상세하다면("양파 두 개를 다지고, 5분 동안 볶은 뒤, 소금을 넣으시오"), 요리사는 정확히 무엇을 해야 할지 알게 됩니다. 오랫동안 과학자들은 더 똑똑한 '요리사'(AI 모델)를 만들기 위해 그들을 매우 자세히 연구해 왔습니다. 하지만 그들은 '레시피 카드'(프롬프트) 자체에는 별로 관심을 기울이지 않았으며, 이를 진지하게 연구할 가치가 있는 것이라기보다 무질서하고 비공식적인 메모 정도로 취급했습니다. 이 논문은 이러한 프롬프트가 인간이 AI를 프로그래밍하기 위해 사용하는 새로운 종류의 '언어'이며, 다른 모든 언어나 코드와 마찬가지로 분석될 자격이 있다고 주장합니다.
이 연구를 진행한 연구진은 프로프트를 하나의 과학적 대상으로 다루기로 했습니다. 그들은 소프트웨어 개발자들이 자신의 작업물을 공유하는 거대한 도서관인 GitHub의 공개 코드 저장소를 샅샅이 뒤졌습니다. 그들은 **트랜잭션 프롬프트(transactional prompt)**라고 불리는 특정 유형의 프롬프트를 찾고 있었습니다. 차이점을 이해하기 위해, 친구와 "날씨가 어때?"라고 묻고 답하는 일상적인 대화를 상상해 보세요. 그것은 '대화형(interactive)' 프롬프트입니다. 트랜잭션 프롬프트는 다릅니다. 그것은 버튼을 누를 때마다 자동으로 실행되는 기계에 붙여진 미리 작성된 지침과 같습니다. 이것은 반복 가능하고, 견고하며, 더 큰 소프트웨어 시스템의 일부가 되도록 설계되었습니다. 연구팀은 이들이 어떤 모습인지, 어떻게 구조화되어 있는지, 그리고 사람들이 실제로 AI에게 무엇을 요청하고 있는지를 알아보기 위해 57,500개의 독특하고 실제적인 프롬프트를 수집했습니다.
이 방대한 텍스트 더미를 이해하기 위해, 저자들은 특별한 '지도' 또는 **온톨로지(ontology)**를 구축했습니다. 무작위 아이템이 가득한 지저분한 다락방을 정리한다고 상상해 보세요. 체계가 없다면 그것은 그저 혼돈일 뿐입니다. 온톨로지는 프롬프트를 카테고리로 분류할 수 있게 해주는 라벨이 붙은 상자와 태그와 같습니다. 어떤 언어로 작성되었는가? 작업은 무엇인가? 특정 형식이 요구되는가? 프롬프트가 AI에게 하지 말아야 할 일을 알려주는가? 이처럼 구조화되지 않은 텍스트를 풍부하고 구조화된 데이터 포인트로 변환함으로써, 그들은 진지한 질문을 던지기 시작할 수 있었습니다.
그들은 무엇을 발견했을까요? 첫째, 데이터는 엄청난 다양성을 보여주지만, **지프의 법칙(Zipf-like distribution)**이라 불리는 패턴을 따릅니다. 이것은 도시의 인구와 비슷하다고 생각하면 됩니다. 몇몇 대도시(영어와 같은)에는 수백만 명의 사람이 있는 반면, 수천 개의 작은 마을(다른 언어들)에는 아주 적은 사람이 있습니다. 프롬프트의 세계에서 영어는 거대 도시이며, 전체 프롬프트의 약 **84.66%**를 차지합니다. 그러나 여로 62개의 서로 다른 언어가 표현되어 있으며, 심지어 이 영어 프롬프트들 안에서도 사람들은 끊임없이 다른 언어를 언급합니다(예를 들어 "스페인어로 번역해줘"라고 요청하는 것). 이는 숨겨진 언어적 다양성의 층을 보여줍니다.
연구는 또한 이러한 프롬프트가 놀라울 정도로 복잡하다는 것을 드러냈습니다. 그것들은 단순히 간단한 문장이 아닙니다. 평균적으로 각 프롬프트는 약 6.85개의 구별되는 "지침 블록(instruction blocks)"을 포함합니다. 이 블록들은 레시피의 단계와 같습니다. 가장 흔한 단계는 "여기에 맥락이 있다", "답변을 너무 길게 만들지 마라", 또는 "결과를 JSON 파일로 출력하라"와 같은 것들입니다. 흥미롭게도, 약 **31%**의 프롬프트는 "부정적 지침(negative instructions)"을 포함하고 있습니다. 즉, "환각 현상을 일으키지 마라"나 "추가 텍스트를 사용하지 마라"와 같이 AI가 하지 말아야 할 일을 알려주는 것입니다. 이는 개발자들이 AI가 너무 수다스럽거나 멋대로 내용을 지어내는 경향을 제어하기 위해 끊임없이 노력하고 있음을 시사합니다.
연구진은 사람들이 이러한 프롬프트를 어떻게 구성하는지도 살펴보았습니다. 그들은 가장 흔한 설정이 "시스템(System)" 메시지(규칙을 설정하는 것, 예: "당신은 유능한 조수입니다")와 "사용자(User)" 메시지(구체적인 작업을 주는 것)로 이루어진 이부제 대화라는 것을 발견했습니다. 이 "시스템-사용자" 듀오는 트랜잭션 프롬프트의 표준 단위가 되었으며, **64%**의 사례에서 나타났습니다. 이는 개발자들이 시스템 역할을 정적인 설정 계층으로, 사용자 역할을 동적인 입력값으로 간주하며, 단일 스크립트 내에서 AI를 이용한 복잡한 다회차 역할극을 사용하지 않는 것으로 보입니다.
실제로 사람들이 무엇을 하고 있는지에 관해서는, NLP 작업(텍-요약이나 질문 답변과 같은 자연어 처리)이 가장 인기가 높았으며, 상위 4개 작업이 전체 데이터의 거의 절반을 차지했습니다. 그러나 데이터의 "롱 테일(long tail)" 부분은 사람들이 게임 전략부터 정책 생성에 이르기까지 온갖 기묘하고 멋진 일들에 AI를 사용하고 있음을 보여줍니다. 데이터는 또한 대부분의 프롬프트가 "그라운디드(grounded)" 되어 있다는 것을 시사합니다. 즉, 단순히 AI의 내부 기억에 의존하는 것이 아니라 프롬프트에 제공된 특정 맥락(예: 문서나 코드 스니펫)에 기반한다는 것입니다. 약 **89.25%**의 사례가 이러한 방식의 그라운딩을 사용합니다.
저자들은 자신들의 연구 결과가 인터넷의 특정 부분(특정 Python 라이브러리를 사용하는 공개 GitHub 프로젝트)에서 추출된 것임을 주의 깊게 명시하고 있습니다. 따라서 이것이 존재하는 모든 프롬프트를 대표하지는 않을 수 있습니다. 또한 그들은 데이터를 라벨링하고 분석하는 데 AI를 활용했으며, 이로 인해 일부 오류가 있을 수 있지만, 품질을 점검한 결과 대부분의 카테로리에서 정확도가 상당히 높다는 것(종종 90% 이상)을 확인했습니다.
궁극적으로, 이 논문은 단순히 프롬프트 목록을 제공하는 것이 아니라 하나의 '도구 상자'를 제공합니다. 저자들은 데이터셋과 함께 누구나 자신의 특징에 따라 프롬프트를 찾아보고, 검색하고, 탐색할 수 있는 특별한 웹사이트를 공개했습니다. 그들은 이 연구가 과학자, 엔지니어, 언어학자들이 인간이 AI와 실제로 어떻게 상호작용하고 있는지를 이해하는 데 도움이 되기를 바랍니다. 프롬프트를 일류의 과학적 대상으로 취급함으로써, 우리는 인간이 이 강력한 기계들의 행동을 형성하기 위해 만들어내고 있는 새로운 언어의 패턴, '무언의 규범', 그리고 창의적인 방식들을 이해하기 시작할 수 있습니다. 이는 우리가 우리의 디지털 파트너와 대화하기 위해 발명하고 있는 새로운 언어를 이해하기 위한 한 걸음입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.