Token 비용 엔지니어링 · 10 / 13

시맨틱 계층: 이중 증류

포맷 세금은 잘랐어요. 이제 내용 자체를 봐요. RAG와 긴 문서에서 가장 흔한 엔지니어링 실수: 컨텍스트 윈도우를 쓰레기통으로 쓰는 것—Few-Shot 사례와 검색 문서를 전부 쑤셔 넣고 모델이 알아서 가리라고 기대해요. 되긴 해요. 그렇게 쓰면 안 돼요.

O(N²)중간 소실동적 Few-ShotLLMLingua-2
쓰레기통식 컨텍스트의 두 가지 죄

첫째, 비싸고 느려요. Transformer 셀프 어텐션 복잡도는 O(N²): Prompt 길이가 두 배가 되면 연산량은 네 배. Prompt가 길수록 Prefill이 길고 첫 토큰 지연(TTFT)이 높아져요—사용자가 첫 글자도 보기 전에 인내심이 먼저 달아나요.

둘째, 효과가 더 나빠질 수 있어요. 유효 정보가 잡담에 묻히면 「중간 소실(lost-in-the-middle)」 효과가 나요. 긴 글을 읽는 사람과 같아요: 앞부분은 집중하고(무슨 이야기인지), 끝도 챙기고(곧 결론), 가운데 큰 덩어리는—눈은 지나가도 머리는 안 가요. 정성 들여 고른 참고 자료가 불행히 중간에 있으면, 모델이 제대로 안 볼 수 있어요.

인터랙티브 데모 · 어텐션은 어떻게 희석되나

색 막대는 Prompt 위치별 어텐션 강도를 흉내 내요(초록=강, 회색=약). 길이를 드래그해 중단이 어떻게 가라앉는지 보세요.

6k Tokens
중단
컨텍스트가 많을수록 좋은 게 아니에요. 핵심 정보는 앞이나 끝에; 중간 자리는 「없어도 아깝지 않은」 내용에 남겨 두세요.
전략 1 · 동적 Few-Shot, 하드코딩하지 마세요

Text-to-SQL을 예로 들게요: 온갖 비즈니스를 커버하려고 Prompt에 SQL 사례 20개를 박아 두는 사람이 있어요—합치면 4,000 Token이 넘어요. 사용자가 물을 때마다 모델이 이 4,000자를 「복습」해요. Token도 타고 느려요. 다른 접근:

1

사례 20개를 벡터 데이터베이스에 저장해요.

2

사용자가 「지난달 매출」을 물으면 시맨틱 검색으로 재무 관련 Top-3만 꺼내요.

3

최종 Prompt가 4,000 Token에서 500으로 줄어들어요.

-87.5%
Token 비용
3x+
응답 속도
더 높음
SQL 정확도
(무관한 사례 간섭 제거)
전략 2 · 긴 문서는 압축한 뒤 먹이세요

금융 리서치, 회의록 같은 문서는 「맞는 잡담」으로 가득해요: 면책 조항, 반복 배경, 구어체 군소리. 그대로 AI에 넣으면, 박사생에게 스팸 메일을 읽히며 큰돈을 쓰는 셈이에요.

해법은 RAG 검색 뒤, 추론 전에 LLMLingua-2 미들웨어를 끼우는 거예요. 단어를 막 자르지 않아요: BERT 양방향 어텐션으로 앞뒤를 동시에 보고, 핵심 의미(개체, 수치, 핵심 동사)를 정확히 집어 내고 잉여 노이즈를 걷어내요. 5–20배 압축, Prefill 1초가 50ms로—고동시성 시나리오 처리량이 한 단계 올라가요.

이중 증류: 고밀도 Prompt만이 고품질 Attention을 사요
동적 Few-Shot + 문서 압축, 두 단계 깔때기로 노이즈를 걸러요: 고밀도 Prompt만이 고품질 Attention을 사요. (도: 저자 공유 원본)
증류대상수단대표 이득
1차Few-Shot 사례벡터 검색으로 Top-K 동적 선택4,000 → 500 Token
2차검색된 문서LLMLingua-2 시맨틱 압축5–20배 압축, Prefill 1s → 50ms
핵심 요점

Prompt가 두 배 = 연산량 네 배: O(N²)가 긴 컨텍스트가 비싸고 느린 물리적 뿌리예요.

중간 소실: 핵심 정보는 앞이나 끝에, 중간은 없어도 아깝지 않은 내용에.

Few-Shot을 하드코딩하지 말고, 벡터 DB에 두고 질문별로 동적 검색: 87.5% 절약에 더 정확해요.

긴 문서는 LLMLingua-2를 거친 뒤 추론: 고밀도 Prompt로 고품질 Attention—사용자를 기다림 속에 잃지 마세요.

출처: 저자 팀 내부 공유 《AI Token 비용 엔지니어링 전략 공유》 실전편 「02|시맨틱 계층」에서 정리했어요. 중간 소실은 Chroma의 컨텍스트 부패(Context Rot) 연구로 이어 읽을 수 있고, 압축 벤치마크는 LLMLingua를 보세요. 컨텍스트 윈도우 원리는 Harness 핵심 · 컨텍스트 윈도우에서 복습하세요.