TL;DR
Shopify는 Gisting으로 Sidekick GraphQL agent의 약 6,000토큰 system prompt를 약 1,500개의 gist tokens로 압축하면서 prediction quality를 유지했습니다. 모델 가중치를 고정하고 전체 prompt를 본 Teacher와 압축 토큰을 본 Student의 logits 사이 KL divergence를 줄이는 방식으로 gist embeddings를 학습합니다. 350 RPM에서 TTFT는 438ms에서 354ms로, E2E latency는 6.8초에서 4.2초로 줄었고 throughput은 20.2 QPS에서 23.4 QPS로 늘었습니다. Production GraphQL traffic에서는 GPU 사용량이 14% 감소했으며, Prefix Caching과 함께 적용해 긴 context의 attention 및 KV cache 읽기 비용을 낮췄습니다.
빠른 이해
새로운 점
긴 system prompt의 동작을 유지하면서 학습된 gist tokens로 4대1 압축해 serving 비용과 지연시간을 함께 낮춘 구현입니다.
핵심 메커니즘
전체 system prompt를 본 Teacher가 응답 위치별 logits를 만들고, 같은 모델이 prompt를 gist tokens로 바꿔 계산한 Student logits와 비교합니다. 모델 가중치는 고정한 채 두 분포의 KL divergence를 줄이도록 gist embeddings만 학습한 뒤, 추론 시 요청의 긴 prompt를 특수 토큰 문자열로 치환합니다. Shopify는 약 6,000토큰을 약 1,500 gist tokens로 줄여 TTFT, E2E latency, throughput과 GPU 사용량을 함께 개선했습니다.
핵심 수치
- System prompt 압축: 약 6,000토큰 -> 약 1,500 gist tokens, 4대1 감소- Sidekick GraphQL agent
- TTFT p50: 438ms -> 354ms, 19% 감소- 350 RPM
- E2E latency p50: 6.8초 -> 4.2초, 약 38% 감소- 350 RPM
- Throughput: 20.2 QPS -> 23.4 QPS, 16% 증가- 350 RPM
- GPU 사용량: 14% 감소- Production GraphQL traffic
- 학습 실행 시간: 30시간 -> 6시간- Teacher logits 사전 계산과 pre-tokenization 적용
섹션별 상세
긴 system prompt의 추론 비용
Gist embeddings를 학습하는 방식

Prefix Caching과 함께 쓰는 이유
autoresearch가 찾은 학습 조합

지연시간과 GPU 사용량 변화

Continual Learning으로의 확장
용어 해설
- 지식 증류(Knowledge Distillation)
- — 큰 모델이나 전체 프롬프트가 만든 출력 분포를 교사 신호로 삼아 학생 모델 또는 압축 표현이 같은 예측을 내도록 학습하는 방법입니다. Gisting에서는 모델 가중치를 고정한 채 전체 system prompt를 본 교사의 logits와 gist tokens를 본 학생의 logits 사이 KL divergence를 줄여 임베딩을 학습합니다. 이를 통해 긴 지시문의 행동 특성을 짧은 토큰열에 옮깁니다.
- Gist Token
- — 긴 프롬프트의 여러 토큰을 대신하도록 모델 어휘에 추가한 특수 토큰입니다. Gisting은 prompt token 일부를 gist token으로 치환한 뒤, 전체 프롬프트를 읽은 교사와 압축 토큰을 읽은 학생의 예측 분포가 가까워지도록 해당 토큰의 임베딩만 학습합니다. 추론 단계에서는 짧은 토큰열이 긴 system prompt 역할을 맡습니다.
- 두 확률분포가 얼마나 다른지 측정하는 값입니다. 학습 과정에서 전체 system prompt를 본 교사의 logits와 gist tokens를 본 학생의 logits를 같은 응답 위치에서 비교하고, KL divergence를 낮추는 방향으로 gist embeddings를 갱신합니다. 값이 작아질수록 학생의 다음 토큰 예측이 교사의 예측에 가까워집니다.(KL Divergence)
- — 두 확률분포가 얼마나 다른지 측정하는 값입니다. 학습 과정에서 전체 system prompt를 본 교사의 logits와 gist tokens를 본 학생의 logits를 같은 응답 위치에서 비교하고, KL divergence를 낮추는 방향으로 gist embeddings를 갱신합니다. 값이 작아질수록 학생의 다음 토큰 예측이 교사의 예측에 가까워집니다.
- 이전에 처리한 시퀀스의 attention용 key와 value를 KV cache에 저장해 동일한 prefix를 다시 계산하지 않는 서빙 최적화입니다. 다만 새 토큰을 생성할 때는 캐시에 저장된 전체 key와 value를 계속 읽어야 하므로 긴 prefix의 decode 비용과 메모리 대역폭 부담이 남습니다. Gisting은 prefix 자체와 KV cache의 길이를 줄여 Prefix Caching의 효과를 보완합니다.(Prefix Caching)
- — 이전에 처리한 시퀀스의 attention용 key와 value를 KV cache에 저장해 동일한 prefix를 다시 계산하지 않는 서빙 최적화입니다. 다만 새 토큰을 생성할 때는 캐시에 저장된 전체 key와 value를 계속 읽어야 하므로 긴 prefix의 decode 비용과 메모리 대역폭 부담이 남습니다. Gisting은 prefix 자체와 KV cache의 길이를 줄여 Prefix Caching의 효과를 보완합니다.
- 모델이 이전 시퀀스에서 계산한 attention의 key와 value를 저장하는 메모리 구조입니다. 새 응답 토큰을 생성할 때 모델은 캐시된 값을 다시 계산하지 않지만, 각 토큰마다 시퀀스 전체의 KV를 고대역폭 메모리에서 읽어야 합니다. 따라서 캐시된 prefix가 길수록 decode 단계의 메모리 읽기량과 처리 비용이 선형으로 커집니다.(KV Cache)
- — 모델이 이전 시퀀스에서 계산한 attention의 key와 value를 저장하는 메모리 구조입니다. 새 응답 토큰을 생성할 때 모델은 캐시된 값을 다시 계산하지 않지만, 각 토큰마다 시퀀스 전체의 KV를 고대역폭 메모리에서 읽어야 합니다. 따라서 캐시된 prefix가 길수록 decode 단계의 메모리 읽기량과 처리 비용이 선형으로 커집니다.
기술
- Gisting
- LLM
- knowledge distillation
- KL divergence
- gist tokens
- Prefix Caching
- KV cache
- autoresearch
- continual learning
- Sidekick GraphQL agent
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
