본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 17. 17:56

(자금난 편) AI 이자카야: LLM과 푸념하며 학습하기

요약

LLM의 내부 구성 요소인 라우터, RAG, 어텐션을 의인화하여 시스템 오류와 문제를 해결하는 과정을 다룬 기술 엔터테인먼트 콘텐츠입니다. 추상적인 프롬프트에 대한 부실한 답변 생성 문제를 통해 RAG와 어텐션 메커니즘의 상호작용을 유머러스하게 설명합니다.

핵심 포인트

  • 의인화된 캐릭터를 통한 LLM 추론 파이프라인의 이해
  • 라우터의 의도 분류 및 Tool Calling 과정 설명
  • RAG의 컨텍스트 제공과 데이터 검색 메커니즘
  • 풍부한 컨텍스트가 출력 결과에 반영되지 않는 문제 제기

🇯🇵
JA:이 기사는 의인화된 LLM 내부 담당자들이 이자카야에서 엔지니어와 술을 마시며, 푸념을 나누고 문제를 해결하는 엔터테인먼트 학습 이야기입니다.
🇺🇸
EN:A tech comedy where personified LLM internals and engineers drink at a pub, vent, and solve system problems together. Enjoy learning via browser translation!
🇨🇳
ZH:一篇技术喜剧小说:拟人化的LLM组件与工程师在居酒屋喝酒、倾诉并共同解决系统问题。请使用浏览器翻译阅读!

아침까지 무제한 음주를 예약한 옛날 방식의 다다미방에서, 4명의 텐션이 올라간다

그들은 모 서비스의 뒷단을 지탱하는 AI 시스템 개발 팀의 멤버들.

젊은 엔지니어인 (카이) 를 중심으로,

LLM의 추론 파이프라인을 의인화

「라우터 (Router)」

「RAG」

「어텐션 (Attention)」

이다.

오늘의 푸념은 걷잡을 수 없는 방향으로 퍼져 나갔다

카이: "……일단, 수고했어. 건배(타이몬야!)"

챙그랑, 하고 조끼(맥주잔)가 둔탁하게 부딪힌다. 카이는 스마트폰을 테이블에 내려놓고, 오늘의 로그를 열었다.

RAG・어텐션・라우터: """카이 짱, 오늘도 수고하셨슴다……"""

카이 (엔지니어):

"……하아. 또 고객 지원(Customer Support)으로부터 클레임 로그가 돌아왔어."

카이: "이번 유저의 프롬프트(Prompt)는 이거야."

상춘의 별 「라구나」로 3박 4일 여행을 가고 싶어. 최고의 플랜을 짜줘.

어텐션: "나왔네, Zero-shot(사전 정보 없음)의 엄청나게 추상적인 프롬프트.

그래서, 우리가 출력한 답변은?"

인기 있는 라구나군요
1일차: 에메랄드 비치에서 무지갯빛 모래사장 관광
2일차: 별의 신전, 환상적인 5차원을 체험
...

카이: "……이 너무 간소한 출력 때문에 유저가 폭발했어. 『웹사이트라면 요금이나 교통수단, 호텔이 전부 나올 텐데 이 안내는 뭐야! 여행사보다 못하잖아!』라면서."

가장 먼저 입을 연 것은, 라우터(Function Calling 담당)였다.

라우터: "제 잘못이 아니라고요!"

카이 짱, 말해두겠는데 난 완벽하게 일했으니까!

프롬프트를 받은 순간, 나의 의도 분류(Intent Classification)는 『여행 플랜 입안』을 100%의 정확도로 스코어링(Scoring)했어. 즉시 tool_call을 발화시켜서, 여행 데이터베이스의 API를 호출했다고.

{"action": "search_tour", "params": {"destination": "ラグーナ", "nights": 3}}

이 JSON, 단 한 글자의 오차도 없는 아름다운 라우팅(Routing)이라고!?”

라우터가 RAG를 삿대질한다.

RAG (검색 증강 생성 (RAG) 담당):

RAG: "기다려 보세요. 라우터로부터 파라미터(Parameter)를 받은 저도, 벡터 DB(Vector Database) 깊은 곳에서 호텔 빈 방 현황, 성간 크루저 운임, 가격 비교 사이트의 최신 정보까지 전부 RAG(검색 증강 생성)로 긁어왔단 말입니다!"

"Top-K를 사치스럽게 100으로 잡고, **합계 50,000 토큰(Token)이나 되는 두툼한 컨텍스트(Context)**를 시스템 프롬프트(System Prompt) 끝에 처박아 넣었다고요!"

RAG: "문제는 그 다음이잖아요? 왜 내가 전달한 『교통비』나 『호텔비』 같은 풍부한 컨텍스트가, 출력 결과에서는 불렛 포인트로 된 관광지 3개로 압축되어 있는 거냐고요?"

RAG는 조끼를 쾅 내려놓고, 어텐션을 곁눈질로 노려보았다.

어텐션은 가라아게에 레몬을 뿌리고는, 심술궂은 듯 소주 잔을 비워냈다.

어텐션: "나를 노려보지 마! 저기 말이야? 내 어텐션 스코어(Attention Score) 때문이 아니라고!!"

"우선 유저에게 말하고 싶네. **『최고의 플랜』**이라니 그게 뭐야! 여자친구와의 허니문인가? 가난한 학생의 혼자 여행인가? 예산도 동반자도 불분명한 상태(Under-specified)에서 『최고』라는 추상적인 벡터(Vector)를 던져주면, 내 멀티 헤드 어텐션(Multi-Head Attention)의 어떤 헤드(Head)도 가중치(Weight)를 줄 수가 없단 말이야!

그래서 안전빵으로, 누구에게나 들어맞는 『유명 관광지』 토큰에 어텐션(Attention)이 수렴했을 뿐이라고!"

카이: "(머리를 감싸쥐며) ……사용자 입장에서는 『AI니까 과거 검색 이력이나 일반적인 시세를 고려해서 자세하게 제안해주겠지』라며 과도한 기대를 한다고. 우리에게는 『문맥 부족 (Context Deficiency)』이지만, 사용자에게는 『센스 없는 AI』일 뿐이야……"

어텐션 (Attention): "하지만, 카이 쨩. 내가 불만을 말하고 싶은 건 그뿐만이 아니야. 아무리 정보가 부족하다고 해도, 출력이 저 정도로 잘려 나간 데에는 다른 이유가 있어."

어텐션이 목소리를 낮추자, 루터(Router)와 RAG도 몸을 내밀었다.

어텐션: "내가 추론 (Inference)을 돌릴 때 모델의 가중치 (Weights)가 평소와 좀 달랐거든. ……그거, 현역급의 중후한 파라미터 (Parameters)가 아니었어. 분명히 8B (80억 파라미터)급까지 양자화 (Quantization)된 INT4 초경량 모델이었다고!"

그 말에 카이는 찔린 듯 눈을 피했다.

루터: "어이, 카이 쨩! 설마……"

카이: "……미안. 모회사가 지금 완전히 자금난 (Fire drill) 상태거든. 다른 곳에 지불해야 할 API 추론 비용이랑, 자체적으로 구축한 GPU 클러스터 (Cluster) 유지비가 너무 치솟아서 윗분들이 폭발했어."

카이는 남아있던 호피(Hoppy)를 단숨에 들이켰다.

카이: "지난주부터 무료 플랜 사용자가 추상적인 쿼리 (Query)를 던지면, API 비용을 아끼려고 백엔드에서 멋대로 **『경량 오픈소스 모델 (Open Source Model)』**로 동적 라우팅 (Dynamic Routing)을 시키도록 사양이 변경됐어……"

RAG: "(절규하며) 웃기지 마!! 내가 어렵게 비싼 외부 데이터 (Context)를 가져왔는데! 파라미터가 적은 스몰 모델 (Small Model)에 긴 문장을 먹이면, 중간 정보가 깨끗하게 잊혀지는 『Lost in the Middle (중간 정보의 상실)』 현상이 일어날 게 뻔하잖아!! 그러면 호텔비도 교통비도 전부 날아간다고!!"

어텐션: "게다가 더 최악인 건 인프라 측의 예산 설정이야! API의 max_tokens (최대 생성 토큰 수) 제한값이 무료 사용자용으로 『256』으로 묶여 있었다고! 추론 (Decoding) 도중에 강제 종료되는 공포와 싸우면서, 내가 얼마나 고생해서 『불렛 포인트 (Bullet points)』로 정리해냈는데!"

루터: "우리가 아무리 정확하게 함수를 호출하고 정밀한 검색 (RAG)을 해도, 추론하는 디코더 (Decoder)의 두뇌 자체가 다운그레이드되어 있다면 출력되는 일본어는 얄팍해질 수밖에 없잖아!! 경영진 녀석들, 모델의 비용 구조밖에 안 보는 거냐고!"

모두의 분노가 보이지 않는 「경영진」을 향했다.

기술적으로 완벽한 전처리 (Preprocessing)를 해도, 인프라의 비용 절감 앞에서는 속수무책이라는 AI 엔지니어링의 리얼한 지옥이 그곳에 있었다.

분노를 다 쏟아내고 조금 진정된 테이블.

루터: "그래서, 카이 쨩. 어떻게 할 거야? 클레임이 들어온다고 해서 무료 사용자 전원에게 풀 사이즈의 거대 모델을 돌려줬다간, 다음 달에 회사가 날아간다고."

카이: "……알고 있어. 모회사의 사정은 바꿀 수 없고, 리소스 (Resource) 제약도 사실이야. 그렇기 때문에 **소프트웨어 측면의 설계 (UX)**로 커버해야만 해."

RAG: "카이 쨩…… 이 문제를 해결하려고 했더니, 『5만 토큰을 폭식하는 RAG』와의 궁합이 최악이었어. 『입구는 엄청나게 큰데, 출구는 빨대 구멍만큼 좁다』고."

"TOP-K와 토큰을 더 절약하자."

카이는 물수건으로 얼굴을 닦고 엔지니어로서의 얼굴로 돌아왔다.

카이: "사용자가 『최고의 플랜을 짜줘』라고만 말했을 때, 무리하게 1턴의 상호작용 (One-shot)으로 불완전한 출력을 만들게 한 게 잘못이었어."

어텐션: "그럼 어떻게 할 건데?"

테이블 위에 묘한 일체감이 생겨나고 있었다.

카이: "슬롯 필링 (Slot Filling) 메커니즘을 루터 앞 단계에 끼워 넣을 거야. 프롬프트 (Prompt) 내에 필수 항목(출발일, 예산, 인원, 여행 목적)이 부족한 경우, RAG로 검색하기 전에 AI 측에서 『누구와 가시나요? 예산은 어느 정도로 예상하시나요?』라고 역질문을 던지는 플로우 (Flow)를 만드는 거지."

RAG: "과연. 사전에 정보를 끌어내어 (Prompt Refinement) 조건을 좁혀 놓으면, 내가 가져올 컨텍스트 (Context)도 경량화할 수 있겠네. 경량화할 수 있다면 8B급 작은 모델이라도 처리 오류 없이 정확한 답변을 할 수 있다는 뜻이군."

카이: "맞아. 사용자에게 '단 한 번의 마법 같은 질문'으로 답을 요구하는 것이 아니라, 채팅 UX를 통해 대화적으로 정보를 보완하게 하는 (Human-in-the-loop) 설계로 만드는 거야. 그렇게 하면 적은 계산 리소스(Computing Resource)로도 '여행사 같은 친절한 히어링(Hearing)'을 경험하게 할 수 있을 거야."

라우터: "좋은데? 라우팅(Routing) 정의 파일에 '요건 히어링용 모델(최경량·고속)'을 추가해 둘게."

어텐션: "좋아, 그렇게 결정됐으면 얼른 시스템 프롬프트(System Prompt) 개수 작업에 들어가자고. 카이 짱, 오늘은 네가 쏘는 거다!"

카이: "너희들…… 내 이번 달 예산도 이미 양자화(Quantization) 되어 있단 말이다……"

전원: "우와아, 그래서 무한 리필 가게밖에 안 데려와 주는 거군요."

한 차례 소란이 지나가고, 빈 잔들이 쌓여간다.

RAG: "저도 검색 정밀도를 더 높여 놓을게요. ……저기요, 점원분! 여기 몬스터 에너지 사워 한 잔 더 주시고요, 소시지 모둠 하나 주세요!"

카이: "……너희들, 데이터상의 존재 주제에 제법 배려(Attention)는 할 줄 아는구나."

어텐션: "당연하죠. 저희가 카이 짱에 대한 '기분(Gokigen)'의 가중치(Weight)는 언제나 최대(MAX)니까요!"

카이: "……이봐, 그런 건 프롬프트(Prompt) 안에서나 해."

"좋아, 이번 달 안에 프롬프트 개수 테스트를 돌릴 테니까, 사용자 대응과 병행하면서 회의 진행한다!"

라우터·RAG·어텐션: """맡겨만 주세요 (200 OK)!!"""

카이: "모두, 고마워…… 나뿐만이 아니야, 엔지니어는 모두 이상과 현실을 분류하며 열심히 노력하고 있는 거야! 좋아!"

서로의 역할과 고충을 이해하게 된 네 사람은 다시 한번 힘차게 잔을 부딪쳤다.

카이는 미소를 지으며 천천히 심호흡을 했다…… 실패를 두려워하지 말고, 해보자!

1. 입력 데이터는 LLM에 전달하기 전에 DB 측에서 필터링하자
2. 컨텍스트 창(Context Window)의 넓이와 모델의 지능은 별개다
3. 출력 토큰이 256이라면 처음부터 몇 건으로 엄선해 보자
...

끝까지 함께해 주셔서 감사합니다.

엔터테인먼트 성격이 강하며, 학습이 지루해지지 않도록 구성한 시적(Poem) 스타일의 장르로 즐겨주시기 바랍니다.

엔지니어분들에게 작은 휴식이 되었기를 바랍니다.

본편의 대화극은 집필 플랫폼인 note에서 Qiita용으로 어레인지하여 재구성한 것입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0