
프롬프트를 튜닝하는 것을 멈추고, 상수를 설정하세요
요약
프롬프트 엔지니어링의 일관성 부족 문제를 지적하며, 단순한 문구 수정 대신 구조화된 컨텍스트(structured context)를 설정하는 방식의 중요성을 강조합니다. 모델 내부의 계산 레이어를 고려한 안정적인 데이터 구조 설계가 필요함을 설명합니다.
핵심 포인트
- 프롬프트 문구 수정만으로는 모델 결과의 일관성을 보장하기 어려움
- 단순 프롬프트 엔지니어링보다 구조화된 컨텍스트 설정이 더 효과적임
- 모델 내부의 계산 레이어 특성을 이해하고 안정적인 지반을 구축해야 함
왜 구조화된 컨텍스트 (structured context)가 프롬프트 엔지니어링 (prompt engineering)보다 뛰어난 성능을 보이는지 — 그리고 제 사촌의 뒷마당이 이에 대해 무엇을 가르쳐 주었는지.
새로운 지평을 열며
사이드 프로젝트든, 기업용 워크플로우 (enterprise workflow)든, 혹은 단순히 챗봇 (chatbot)으로부터 일관된 결과를 얻으려고 노력하든, AI를 활용해 무언가를 만들어 본 시간이 있다면 여러분도 아마 이런 사이클을 경험해 보았을 것입니다.
프롬프트 (prompt)를 작성합니다. 아주 멋지게 작동합니다. 다음 날 비슷한 것을 시도해 보면 완전히 망가져 버립니다. 문구를 다시 작성합니다. 더 많은 세부 사항을 추가합니다. 생각의 사슬 (chain of thought), 페르소나 프롬프팅 (persona prompting), 퓨샷 예시 (few-shot examples)를 시도해 봅니다. 누군가가 모든 프롬프트에 추가한다는 마법의 문장에 관한 기사를 읽습니다. 그것도 시도해 봅니다. 때로는 도움이 되기도 하고, 때로는 그렇지 않기도 합니다. 때로는 정확히 같은 프롬프트가 다른 날에 다른 결과를 내놓기도 하는데, 왜 그런지 전혀 알 수 없습니다.
그래서 더 깊이 파고듭니다. 프롬프트 엔지니어링 (prompt engineering)의 모범 사례를 공부합니다. 변형들을 테스트합니다. 서로 다른 모델 (model)들을 대상으로 프롬프트 회귀 테스트 (regression-test)를 수행합니다. 결과는 실재합니다 — 어떤 것은 유망하고, 어떤 것은 좌절감을 주며, 어떤 것은 그저 혼란스럽기만 합니다. 그리고 이 모든 것 아래에서, 한 가지 질문이 계속 떠오릅니다: 왜 이렇게 일관성이 없는 걸까?
저는 제가 잘못된 문제를 풀고 있다는 것을 깨닫기 전까지 몇 달 동안 그 사이클 속에서 시간을 보냈습니다. 저는 나쁜 프롬프트를 작성하고 있었던 것이 아니었습니다. 저는 테스트되지 않은 지반 위에 건물을 짓고 있었던 것입니다 — 터널 내부에서 무슨 일이 일어나고 있는지, 혹은 반대편 끝에 무엇이 기다리고 있는지 이해하지 못한 채 터널 입구에만 노력을 쏟아붓고 있었던 것입니다.
알고 보니 당신이 프롬프트 (prompt)를 입력할 때, 당신의 단어들은 모델 (model)로 들어가 수십 개의 계산 레이어 (computational layers)를 통과하며 이동합니다. 각 레이어는 이전 단계에서 넘어온 것을 변형시킵니다. 표면도 아니고 끝부분도 아닌, 그 중간 어딘가에서 실제 추론 (reasoning)이 일어납니다. 모델은 당신이 볼 수 있는 곳에서 생각하지 않습니다. 모델은 통로 깊은 곳, 즉 대부분의 사람들이 인식하는 것보다 훨씬 더 제약된 작업 공간 (workspace) 안에서 생각합니다.
그 통로로 들어가는 내용을 어떻게 구조화하느냐가 사고가 일어나는 지점에 무엇이 도달할지를 결정합니다. 그리고 이 깨달음은 제가 일하는 방식의 모든 것을 바꾸어 놓았습니다.
저는 이 원리를 여덟 살 때 사촌들과 형제, 그리고 제가 함께 파려고 했던 터널을 통해 처음 배웠습니다.
도서관으로
우리는 막 영화 <대탈주 (The Great Escape)>를 본 참이었습니다. 당연하게도, 흥미로운 부분은 터널이었습니다.
우리는 우리도 터널을 팔 수 있다고 결정했습니다.
우리는 장소를 정해 두었습니다. 사촌 집 뒷마당 울타리 아래, 마당과 옆쪽 진입로 사이였습니다. 구멍을 가려주는 약간의 둑이 있었는데, 이는 큰 장점 중 하나였습니다. 그리고 그 터널은 이웃집 마당이 아닌 뒷마당으로 연결될 것이었는데, 우리 모두는 그것이 아마도 좋게 받아들여지지 않을 것이라는 데 동의했습니다. 특히 사촌들이 먹기 싫은 채소들을 이웃집 울타리 너머로 던졌던 사건의 여파를 여전히 겪고 있었던 상황을 고려하면 더욱 그랬습니다.
하지만 우리는 그냥 땅을 파기 시작할 수는 없다는 것을 알고 있었습니다. 계획이 필요했습니다. 그래서 우리는 다 같이 서로를 바라보며 말했습니다. "도서관으로!"
가정용 컴퓨터도, 인터넷도, 구글 (Google)도 없던 1970년대 세상에서 우리에게는 단 하나의 정보원이 있었습니다. 아주 환상적인 곳 말이죠. 바로 지역 도서관이었습니다. 사서들은 모든 것을 알고 있었고, 모든 것이 어디에 있는지도 알고 있었습니다. 그리고 할아버지는 독서가 중요하기 때문에 항상 우리를 데려가 주셨습니다.
우리는 우리가 찾던 것을 정확히 찾아냈습니다. 터널을 제대로 건설하고, 버팀목을 세우고, 환기시키는 방법 말입니다. 우리는 종이와 연필을 요청해 모든 것을 적었고, 계획을 다 그린 후에는 계획을 검증하기 위해 책 몇 권을 대출했습니다.
침묵
만약 당신이 AI 모델이 응답을 생성하는 것을 본 적이 있다면, 기묘한 종류의 침묵을 경험해 보았을 것입니다. 토큰 (Tokens)이 화면을 가로질러 흐르고 — 단어들이 하나씩 차례대로 나타나고 — 당신은 출력되는 내용이 유용할지, 아니면 완전히 빗나갈지 확인하기 위해 기다리며 지켜봅니다. 출력물이 형성되는 것은 볼 수 있지만, 사고 과정 (thinking)은 볼 수 없습니다. 추론 (reasoning)은 당신이 접근할 수 없는 어딘가, 즉 당신의 입력 (input)과 응답 (response) 사이의 관찰할 수도 제어할 수도 없는 통로에서 일어나고 있습니다. 당신이 할 수 있는 전부는 그저 지켜보며 결과가 당신의 의도를 반영하기를 바라는 것뿐입니다.
우리 아버지는 그런 종류의 침묵을 알고 계셨습니다. 다만 그분은 그것을 다르게 경험하셨을 뿐입니다.
아버지는 나이대가 비슷한 다섯 명의 소년이 함께 있을 때 발생하는 소음과 웅성거림은 괜찮다고 늘 말씀하셨습니다. 아버지와 삼촌은 주의를 기울여야 할 비명 소리나 성질이 뻗치는 소리가 들리는지 귀를 기울이곤 하셨습니다. 하지만 두 분이 결코, 절대로 원하지 않았던 단 한 가지는 바로 침묵이었습니다. 침묵은 공포스러웠습니다. 왜냐하면 그분들의 표현을 빌리자면, **"녀석들이 음모를 꾸미고 있어! 계획을 세우고 있다고!"**였기 때문입니다.
그분들이 걱정하신 것은 옳았습니다. 침묵은 우리가 실행 (execution) 단계에 깊이 몰입해 있다는, 즉 계획이 단순한 계획에 머물러 있는 단계를 넘어섰음을 의미했습니다.
우리 입장에서도 변명을 하자면, 우리는 땅을 파는 동안 터널을 보강하기 위해 2x6 판재와 3/4인치 합판, 그리고 16페니 못 (16-penny nails)을 확보해 두었습니다. 우리는 영화에서처럼 손으로 작동하는 공기 펌프를 만들 계획도 가지고 있었습니다. 심지어 내 형제에게 안전 관리자 (safety officer) 역할을 맡기기도 했습니다. 그는 철저하고 세부 사항을 살피는 눈을 가졌기 때문입니다.
우리는 약 3피트 깊이에 4피트 너비로 파 내려갔습니다 — 참고로, 이 정도면 흙이 엄청나게 나옵니다 — 그때 빛이 필요해졌습니다. 제 큰 사촌 형이 차고에서 삼촌의 작업용 조명 (shop light)을 가져오라는 임무를 맡았습니다. 그리고 바로 그때 상황이 꼬이기 시작했습니다 — 터널이 무너졌기 때문이 아니라, 삼촌이 가족용 밴을 타고 도착했다가, 사촌 형이 작업용 조명과 긴 연장 코드 (extension cord)를 들고 울타리를 향해 걸어가는 것을 보았고, 갑자기 경사진 둑 뒤에서 다섯 명 중 세 명의 머리가 쑥 튀어나왔기 때문입니다.
그의 첫 반응은 이랬습니다: "이거 상황이 안 좋게 돌아가겠는데."
그는 파이프를 꺼내 담배를 채우고 불을 붙인 뒤, 몇 모금 빨아들이고는 천천히 조사하러 걸어왔습니다. 말을 많이 하기보다는, 그는 차분하게 우리에게 말했습니다. "너희들 좀 쉬어야 할 것 같구나. 들어와서 물이라도 좀 마시지 그러니."
그것은 "즉시 중단하라!"라는 그의 암호였습니다 — 그리고 막 도착해서 주방으로 들어간 아빠를 데려올 시간이었죠.
침묵 — 그것이 지하에 있는 다섯 명의 소년이든, 당신의 프롬프트 (prompt)를 통해 작동하는 모델이든 — 그곳이 바로 진짜 작업이 이루어지는 곳입니다. 또한 구조 (structure)가 제대로 갖춰져 있지 않다면 일이 잘못되는 곳이기도 합니다.
디자인 리뷰 (The design review)
엔지니어였던 제 아빠는 우리의 작업물을 조사하는 데 매우 철저했습니다. 어른들이 우리의 세부 사항에 대한 주의력과 안전 관리에 얼마나 감명받았는지에 대해 논의하는 것을 들었던 기억이 납니다. 그들은 우리의 도면과 계획을 보고 싶어 했습니다.
하지만 터널은 없애야만 했습니다.
그들은 완벽하게 명분을 만들었습니다. "뒷마당에 큰 구멍이 있으면 축구를 하거나 잔디를 깎을 때 위험할 거야." 그 말은 우리에게도 전적으로 납득이 갔습니다. 그래서 그들의 지시와 감독에 따라, 우리는 구멍을 다시 메웠습니다.
그다음 디자인 리뷰 (design review)가 이어졌습니다. 그들은 우리를 주방 식탁에 앉히고 우리가 얼마나 인상적이었는지 — 특히 팀워크와 긍정적인 결과를 보장하기 위해 더 깊이 연구하려는 우리의 의지에 대해 — 이야기해 주었습니다. 하지만 우리에게 계획은 있었지만, 그것은 빈틈이 있는 계획임이 드러났습니다. 여덟 살에서 열 살 사이였던 우리는 흙의 무게를 어떻게 고려해야 하는지, 물이 들어올 가능성은 없는지, 혹은 그러한 힘들이 우리의 장엄한 터널에 어떤 영향을 미칠지 알지 못했습니다.
그들은 매우 상세하고 차분하게 설명해 주었습니다. 아버지는 우리의 계획이 어디서 결함이 있었는지 우리가 이해할 수 있도록 그림을 그려 가며 설명하셨습니다. 우리끼리 논의한 끝에, 당분간 터널 작업은 더 이상 진행하지 않기로 결정했습니다.
이 소식은 아버지와 삼촌에게 큰 안도감을 주었습니다. 왜냐하면 그들의 검토가 끝난 후, 아버지가 삼촌을 돌아보며 이렇게 말씀하셨던 것이 기억나기 때문입니다. "말도 안 돼(Balderdash) — 우리가 방금 실수로 그들에게 제대로 하는 법을 알려준 것 같아."
참고로, 삼촌은 터널 붕괴 현장에 출동했던 소방관이었습니다. 우리가 삼촌을 겁먹게 해서 정말 죄송할 따름입니다. 하지만 삼촌은 아버지와 마찬가지로 침착하고 냉정하게 상황을 대처했습니다. 하지만 제 사촌들과 남동생, 그리고 제가 두 분의 머리를 하얗게 만든 직접적인 원인임은 거의 확실합니다. 서서히 변한 것이 아니라, 실시간으로 말이죠. 거의 눈앞에서 일어나는 것을 지켜볼 수 있을 정도였습니다. 매년 여름 우리가 함께 보내는 매 주마다 그들은 한 살씩 더 늙어갔습니다.
그리고 두 분 말씀이 모두 맞았습니다 — 침묵은 위험했습니다.
버팀목은 버텨냈다
문제는 이것입니다 — 우리의 방법론(Methodology)이 틀린 것은 아니었습니다. 우리는 권위 있는 출처를 찾아갔습니다. 관련 정보를 추출했습니다. 도면과 노트를 포함한 구조화된 계획(Structured plan)을 세웠습니다. 안전 관리자(Safety officer)를 포함하여 역할을 할당했습니다. 진행하면서 버팀목을 보강했습니다. 실행 과정에서 현실적인 문제들이 나타남에 따라 계획을 수정했습니다.
8세에서 10세 사이의 아이 다섯 명이 설계 검토(Design review), 수락 기준(Acceptance criteria), 역할 기반 책임(Role-based responsibility)을 갖춘 통제된 워크플로우(Governed workflow)를 독립적으로 구축한 것입니다.
우리가 틀렸던 것은 상수(Constants)였습니다. 우리는 토양의 하중 지지 특성(Load-bearing properties)을 알지 못했습니다. 수분 포화도(Water saturation)를 고려하지 않았습니다. 깊이에 따라 측압(Lateral pressure)이 어떻게 증가하는지도 이해하지 못했습니다. 방법론과 규율은 제대로 갖추었지만, 규모를 키웠을 때 계획을 안전하게 만들어 줄 도메인 제약 조건(Domain constraints)이 빠져 있었습니다.
말 그대로, 깊이(Depth)의 문제였습니다.
좁은 통로
몇 년 후, 아버지는 그 터널 이야기를 통해 저에게 비즈니스 미적분(business calculus)에 대해 가르쳐 주셨습니다. 수학이 아니라, 사고방식에 관한 것이었습니다. 아버지는 상수를 일정하게 유지하고 실제로 테스트하려는 변수를 분리한다는 것이 무엇을 의미하는지 제가 이해하기를 바라셨습니다. 아버지는 우리의 터널을 예로 들어 보여주셨습니다. 우리는 변수(digging, 굴착)는 제대로 잡았지만, 상수(structural engineering, 구조 공학)가 정의되지 않았다는 것을 말입니다. 그 상수들이 없었다면, 우리의 노력이 결과를 만들어낼지 아니면 붕괴를 초래할지 알 수 없었을 것입니다.
결과적으로 그것은 AI 모델이 여러분의 입력을 처리하는 방식에 대한 정확한 묘사임이 드러났습니다.
여러분이 거대 언어 모델(Large Language Model, LLM)에 프롬프트를 보낼 때, 여러분의 단어들은 단 하나의 목적지에 도착하는 것이 아닙니다. 그것들은 수십 개의 계산 레이어(computational layers)를 통과합니다. 이를 긴 터널 속의 연속적인 방들이라고 생각하십시오. 각 레이어는 이전 레이어로부터 전달된 정보를 변환합니다. 초기 레이어는 문법, 단어 관계, 기본 구조와 같은 표면적인 패턴을 처리합니다. 더 깊은 레이어는 추론(inference), 유추(analogy), 다단계 논리(multi-step logic)와 같이 점진적으로 더 추상적인 추론을 처리합니다.
Anthropic은 최근 이러한 깊은 레이어에서 어떤 일이 일어나는지에 대해 놀라운 사실을 밝혀낸 연구를 발표했습니다. 그들의 연구원들은 Jacobian lens라고 불리는 도구를 구축하여 Claude의 내부를 들여다보았습니다. Claude가 무엇을 말하는지가 아니라, 무언가를 말하기 전에 무엇을 가지고 작업하고 있는지를 본 것입니다. 그들이 발견한 것은 J-space라고 부르는 작은 내부 작업 공간(internal workspace)이었습니다.
긴 터널의 맨 끝에 있는 작업대(workbench)를 상상해 보십시오. 입구로 보내는 모든 것은 그 작업대에 도달하기 위해 통로 전체를 통과해야 합니다. 작업대 자체는 작습니다. 한 번에 수십 개의 개념만을 담을 수 있습니다. 그게 전부입니다. 그리고 그것은 모델 내부에서 일어나는 모든 일의 10분의 1도 차지하지 않습니다. 하지만 그 작은 작업대는 실질적으로 모든 의미 있는 추론이 일어나는 곳입니다. 즉, 일반적인 응답과 진정으로 유용한 응답의 차이를 만드는 추론(inference), 구성(composition), 다단계 사고(multi-step thinking)가 일어나는 곳입니다.
Anthropic의 연구진이 작업대(workbench)를 완전히 비웠을 때도, 모델은 여전히 유창하게 대화할 수 있었습니다. 감정(sentiment)을 분류할 수 있었고, 객관식 질문에 답할 수 있었으며, 사실을 검색(retrieve)할 수도 있었습니다. 모든 표면적인 능력(surface-level capabilities)은 살아남았습니다. 무너진 것은 더 깊은 차원의 작업 — 즉, 작업이 복잡하거나 미묘하거나 여러 단계에 걸쳐 아이디어를 연결해야 할 때 실제로 필요한 종류의 추론(reasoning)이었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기