좌우 스와이프로 이동
이 챕터 한 문장: AI는 모든 단어를 숫자 묶음으로 바꿔서 이해합니다. 프롬프트는 그 숫자 공간에서 목적지 좌표를 찍는 것입니다.
지난 편에서 AI가 검색이 아니라 생성한다는 걸 알았습니다. 그러면 다음 질문이 자연스럽게 나옵니다. AI는 “사과”와 “배”가 비슷하다는 걸 어떻게 아는 걸까요?
아래는 그 대화 전문입니다.
“비슷하다”라는 게 뭘까요? 사과와 배는 비슷하잖아요. 그런데 사과와 자동차는 안 비슷하고. 사람은 이걸 그냥 “느낌으로” 아는데 — AI는 느낌이 없잖아요. 그러면 AI는 “비슷하다”를 어떻게 판단할 수 있을까요?
예전에 다큐에서 본 것 같은데, 동양은 관계로 묶고 서양은 카테고리별로 분류한다고 했거든요. 카테고리로 분류하는 거 아닌가요?
직관적으로 그렇죠. 카테고리가 깔끔하니까. 그런데 한번 해볼게요. “사과”를 카테고리로 분류해 보세요. 과일이죠. 그러면 “사과주스”는요? 음료? 과일? “애플”은요? 회사? 과일?
와, 1차 2차 가공했을 때 브랜치가 너무 많아지는구나. 그럼 관계로 가는 게 최선인가?
카테고리는 분기가 폭발해요. 그런데 “관계”도 문제가 있어요. 사과-배는 아주 비슷하고, 사과-토마토는 좀 비슷하고, 사과-자동차는 전혀 안 비슷하잖아요. 이 “비슷한 정도”를 카테고리로는 표현 못 해요 — 같은 칸이냐 아니냐, 0 아니면 1이니까. 비슷한 정도를 숫자로 표현하려면 어떤 방법이 있을까요?
점수를 매기면 좋을 것 같은데, 그 비중치나 디테일 수치는 어떤 기준으로 가야 할까?
카테고리는 “같다/다르다”만 가능하다. 사과와 배가 “얼마나” 비슷한지는 표현 못 한다. 정도를 표현하려면 숫자가 필요하다.
기준이 문제죠. 기준 하나로는 부족해요. 여러 개 쓰면 어떨까요? 예를 들어 사과를 이렇게 표현하면:
배는:
자동차는:
사과와 배는 숫자가 비슷하고, 사과와 자동차는 숫자가 완전히 다르죠. 이게 임베딩의 핵심이에요. 모든 것을 “숫자 묶음”으로 바꾸는 거. 실제 AI는 단어 하나당 숫자 3,000개짜리 체점표를 가지고 있어요.
임베딩이라면 그 수많은 체점표를 다 넣어놔야 하는 거 아닌가? 각 아이템마다?
진짜로 다 넣어놔요. 단어 하나하나마다 숫자 수천 개짜리 체점표가 있어요. 무식해 보이지만 — 카테고리 방식이면 분기가 무한 폭발했잖아요. 숫자 묶음은 고정된 칸 수로 뭐든 표현할 수 있어요. 오히려 효율적인 거예요.
그런데 진짜 질문은 이거예요. 그 3,000개 기준을 누가 정해줬을까요? 사람이 “1번은 달콤함, 2번은 크기” 이렇게 하나하나 정해줬을까요?
그 기준도 AI가 만든 건가?
AI가 스스로 만들었습니다. 아기가 “사과 먹을래?” “배 먹을래?”를 수만 번 들으면서 “아, 이 둘은 비슷한 거구나”를 체득하듯 — AI도 인터넷의 수십억 개 문장을 읽으면서, 같은 맥락에 나타나는 패턴을 학습해서 3,000개 숫자가 알아서 자리를 잡은 겁니다.
그 3,000개 중에 사람이 이름 붙일 수 있는 기준은 거의 없습니다. “1번이 달콤함이고 2번이 크기”가 아니라, AI만 아는 기준입니다.
숫자 묶음이니까 덧셈 뺄셈이 되는 거예요. 이런 게 가능합니다:
“왕” - “남자” + “여자” = “여왕”
왕의 숫자 3,000개에서 남자의 숫자 3,000개를 빼고, 여자의 숫자 3,000개를 더하면 — 여왕의 숫자랑 거의 같아져요. 카테고리였으면 “과일 - 과일 + 음료”가 말이 안 되잖아요. 숫자라서 되는 건데 — 왜 의미까지 맞아떨어질까요?
아 그러니까 왕에서 남자를 빼면 왕이라는 특성이 남는 거잖아, 성별을 제외한. 거기에 성별을 추가하면 여왕이 된다. 그래서 의미가 맞는 이유가 어떤 특징까지도 숫자로 표현되기 때문이네?
바로 그거예요. “왕”의 숫자 3,000개 안에 왕다움, 남성성, 권위, 통치 같은 특성들이 전부 숫자로 녹아 있어요. 카테고리였으면 “왕 = 사람” 딱 끝이에요. 그 안에 뭐가 들었는지 몰라요. 숫자 묶음이니까 내용물을 꺼내고 넣을 수 있는 거예요.
레고 블록 — 색깔·모양·크기 조합으로 무엇이든 만든다
임베딩 — 숫자 3,000개 조합으로 모든 의미를 표현한다. 꺼내고, 넣고, 계산할 수 있다
이걸 알면 AI한테 말 거는 방식이 달라져야 해요. “좋은 글 써줘”와 “20대 직장인이 퇴근길에 읽는, 위로가 되는 3줄 글 써줘” — AI 입장에서 어느 쪽이 더 일하기 쉬울까요?
아, 가중치 기반으로 답을 생성하는데 “좋은 글”은 가중치가 애매해. 그런데 “20대 직장인, 퇴근길, 위로, 3줄” 이런 스탯을 더 완벽하게 타겟팅해서 글을 써주는 거구나.
정확해요. “좋은 글”은 숫자 공간에서 어디쯤인지 모르는 거예요. 좋은 게 감동? 유익? 재밌는? 사방으로 퍼져요. “20대 직장인, 퇴근길, 위로, 3줄”은 — 단어 하나하나가 좌표를 좁혀주는 거예요. AI가 숫자 공간에서 딱 그 교차점으로 가는 거죠.
프롬프트 잘 쓰는 사람이 하는 게 결국 이거다. AI의 숫자 공간에서 목적지 좌표를 정확하게 찍어주는 것.
카테고리는 왜 실패하는가
사과는 과일. 사과주스는 음료? 과일? 애플은 회사? 과일? 가공하는 순간 분기가 폭발합니다. 세상의 모든 개념을 칸으로 나눌 수 없습니다. 임베딩은 다릅니다. 고정된 칸 수(3,000개 숫자)로 뭐든 표현합니다. 무식해 보이지만, 무한 폭발보다 훨씬 효율적입니다.
“왕”의 숫자 안에는 왕다움, 남성성, 권위, 통치가 전부 녹아 있습니다. 그래서 남성성을 빼고 여성성을 더하면 나머지가 보존되면서 “여왕”이 나옵니다.
카테고리였으면 “왕 = 사람” 끝입니다. 안에 뭐가 들었는지 모릅니다. 숫자니까 내용물을 꺼내고 넣을 수 있습니다. 이게 AI가 의미를 “이해”하는 방법입니다.
아기가 “사과 먹을래?” “배 먹을래?”를 수만 번 들으며 체득
AI가 수십억 문장에서 같은 맥락의 패턴을 학습 — 3,000개 기준이 알아서 자리를 잡은 것
기준을 사람이 안 정했다는 게 왜 중요한가
사람이 정했다면 “달콤함, 크기, 색깔” 수준에서 끝났을 겁니다. AI는 사람이 이름도 붙일 수 없는 기준을 수천 개 만들어냈습니다. 그래서 사람이 미처 의식하지 못하는 미묘한 의미 차이까지 포착합니다.
“좋은 글 써줘”
“20대 직장인이 퇴근길 지하철에서 읽을, 위로가 되는 3줄 글 써줘”
첫 번째는 숫자 공간에서 사방으로 퍼집니다. 좋은 게 감동인지, 유익한 건지, 재밌는 건지 모르니까요. 두 번째는 단어 하나하나가 좌표를 좁혀줍니다. “20대”, “직장인”, “퇴근길”, “위로”, “3줄” — 다섯 개의 좌표가 교차하는 지점으로 AI가 갑니다.
“글 써줘”가 아니라 “20대 직장인한테”. 대상이 좌표 하나를 잡아줍니다.
“퇴근길 지하철에서 읽을”. 맥락이 좌표 하나를 더 좁혀줍니다.
“위로가 되는”. 감정이 방향을 잡아줍니다.
“3줄”. 형식이 마지막 좌표를 찍어줍니다.
프롬프트에 단어를 하나 더 넣는 건, AI에게 좌표를 하나 더 찍어주는 겁니다. 단, 무한히 넣으면 안 됩니다. 지난 편에서 다뤘듯이 컨텍스트에는 한계가 있습니다. 핵심 좌표만 정확하게 — 이게 프롬프트의 기술입니다.
지금 나는 프롬프트를 어떻게 쓰고 있는지 점검해 보세요.