핵심 요약
코딩 에이전트는 수천 줄의 로그와 코드를 반복해서 읽으며 막대한 비용과 시간을 소모한다. 이 논문은 필요한 핵심 정보만 8% 수준으로 압축하면서도 중요한 단서는 놓치지 않는 경량 모델을 통해 에이전트의 추론 효율을 획기적으로 개선한다.
왜 중요한가
코딩 에이전트는 수천 줄의 로그와 코드를 반복해서 읽으며 막대한 비용과 시간을 소모한다. 이 논문은 필요한 핵심 정보만 8% 수준으로 압축하면서도 중요한 단서는 놓치지 않는 경량 모델을 통해 에이전트의 추론 효율을 획기적으로 개선한다.
핵심 기여
작업 조건부 도구 출력 가지치기 벤치마크 구축
SWE-bench 상호작용과 다양한 생태계의 도구 출력을 포함하는 11,477개의 데이터셋을 구축했다. 618개의 수동 검수된 테스트 세트를 통해 에이전트가 다음 단계 결정을 내리는 데 필요한 최소한의 증거 블록을 추출하는 능력을 평가한다.
Squeez-2B 모델 개발 및 성능 입증
Qwen 3.5 2B 모델을 LoRA로 미세 조정하여 92%의 토큰을 제거하면서도 0.86의 재현율(Recall)과 0.80의 F1 점수를 달성했다. 이는 18배 더 큰 Qwen 3.5 35B 제로샷 모델보다 재현율 면에서 11포인트 앞선 수치다.
실무 적용 가능한 CLI 및 서빙 도구 공개
vLLM 서버나 CLI 필터 형태로 기존 에이전트 스택(Codex, Claude Code 등)에 즉시 삽입 가능한 구현체를 제공한다. 에이전트의 핵심 로직 수정 없이 입력 전처리 단계에서 효율적인 압축이 가능하다.
핵심 아이디어 이해하기
기존의 프롬프트 압축 기술은 전체적인 문맥을 요약하거나 중요도가 낮은 토큰을 삭제하는 데 집중했다. 하지만 코딩 에이전트 환경에서는 로그 한 줄, 에러 메시지의 특정 위치가 다음 행동을 결정하는 결정적 증거가 된다. 따라서 단순히 요약하는 것이 아니라, 수천 줄의 출력물 중 '이 질문에 답하기 위해 꼭 봐야 할 원문 블록'이 어디인지를 정확히 짚어내는 능력이 필요하다.
Squeez는 Attention 메커니즘이 특정 쿼리에 대해 입력값의 어느 부분에 집중해야 하는지를 학습하는 원리를 활용한다. 모델은 주어진 질문(Query)과 도구 출력(Observation) 사이의 관계를 파악하여, 정답이 포함된 연속된 행(Span)을 식별하도록 훈련된다. 이는 마치 거대한 서류 뭉치에서 형광펜으로 필요한 부분만 칠하는 것과 같다.
이 과정에서 Squeez는 단순한 키워드 매칭(BM25)이나 앞부분만 읽는 방식(First-N)의 한계를 극복한다. 딥러닝 기반의 문맥 이해를 통해 에러 로그의 중간이나 끝에 숨겨진 핵심 단서를 찾아내며, 관련 없는 질문에는 빈 결과를 반환하는 판단력까지 갖추게 된다. 결과적으로 에이전트는 훨씬 짧고 정제된 정보만 처리하게 되어 추론 속도가 빨라지고 비용이 절감된다.
방법론
Squeez는 Qwen 3.5 2B 모델을 기반으로 하며, LoRA(Low-Rank Adaptation) 기법을 사용하여 효율적으로 미세 조정되었다. 모델은 질문 q와 도구 출력 o를 입력받아 <relevant_lines> 태그 내에 원문과 동일한 텍스트 블록을 생성하도록 학습된다. 학습 시 최대 시퀀스 길이는 20,000 토큰으로 설정되어 긴 로그 파일도 한 번에 처리할 수 있도록 설계되었다.
데이터셋 구성은 SWE-bench에서 추출한 실제 저장소 상호작용 데이터와 GPT-4를 이용해 생성한 합성 데이터를 결합했다. 특히 '부정적 예시(Negative Examples)'를 포함하여, 질문과 관련 없는 출력물이 주어졌을 때 모델이 아무것도 추출하지 않고 빈 결과를 내놓도록 유도했다. 이는 모델이 무조건 무언가를 찾아내려는 환각 현상을 억제하는 역할을 한다.
평가 지표로는 재현율(Recall)과 F1 점수를 사용하며, '관용적 라인 매칭(Tolerant Line-matching)' 방식을 도입했다. 이는 예측된 라인과 정답 라인 간의 문자열 유사도가 0.5를 넘으면 일치하는 것으로 간주하여, 사소한 포맷 차이로 인해 점수가 깎이는 현상을 방지하고 실제 정보 보존 능력을 정확히 측정한다.
주요 결과
Squeez-2B는 테스트 세트에서 0.86의 재현율과 0.80의 F1 점수를 기록하며 모든 비교군을 압도했다. 특히 92%라는 높은 압축률을 유지하면서도, 18배 더 큰 모델인 Qwen 3.5 35B(재현율 0.75)보다 더 정확하게 핵심 정보를 추출해냈다. 이는 범용적인 대형 모델보다 특정 작업에 특화된 소형 모델이 전처리 단계에서 더 효율적일 수 있음을 시사한다.
전통적인 검색 알고리즘인 BM25는 재현율이 0.22에 그쳤는데, 이는 코딩 도구의 출력이 단순한 키워드 중복보다는 구조적 문맥이 중요하기 때문이다. Squeez는 구조화된 출력(git log, ls 등)에서 정확한 항목을 선택하거나, 노이즈가 많은 빌드 로그에서 핵심 실패 블록을 찾아내는 데 강점을 보였다.
또한 부정적 예시 테스트에서 Squeez는 80%의 확률로 빈 결과를 정확히 반환한 반면, Qwen 35B는 7%에 불과했다. 이는 Squeez가 단순히 텍스트를 요약하는 것이 아니라, 주어진 질문에 대한 증거가 실제로 존재하는지를 엄격하게 판단하고 있음을 보여준다.
기술 상세
Squeez 아키텍처는 단일 도구 관찰값(Single Tool Observation)에 대한 추출적 압축에 초점을 맞춘다. 이는 문서 단위 검색 압축(EXIT, Provence)이나 범용 프롬프트 압축(LLMLingua)과 차별화되는 지점으로, 코드, 로그, 셸 트레이스 등 다양한 형식이 뒤섞인 데이터 처리에 최적화되어 있다.
학습 과정에서 'Teacher-Labeling' 파이프라인을 사용했다. openai/gpt-oss-120b 모델을 교사 모델로 활용하여, 배경 작업과 도구 출력을 바탕으로 질문을 생성하고 가장 작은 연속된 증거 블록(Smallest Contiguous Span)을 선택하도록 했다. 이 데이터는 다시 사람이 수동으로 검수하여 고품질의 테스트 세트로 정제되었다.
구현 측면에서 vLLM 서빙을 지원하여 OpenAI 호환 API로 접근 가능하며, 표준 입력을 받아 처리하는 CLI 도구로도 제공된다. 이는 에이전트가 cat log.txt | squeez "find error"와 같은 방식으로 파이프라인을 구성할 수 있게 하여 통합 편의성을 극대화했다.
한계점
이 연구는 단일 도구 관찰값에 대한 가지치기 품질만 평가하며, 이것이 전체 에이전트 작업의 최종 성공률에 미치는 하류(Downstream) 영향은 직접 측정하지 않았다. 또한 grep이나 lint 출력처럼 노이즈가 매우 심한 특정 도구군에서는 여전히 개선의 여지가 남아 있다.
실무 활용
Squeez는 기존 코딩 에이전트 파이프라인의 입력 전처리 단계에 즉시 도입하여 토큰 비용을 90% 이상 절감하고 추론 속도를 높일 수 있는 실용적인 도구다.
- 수천 줄의 빌드 로그나 테스트 결과에서 에러 원인이 되는 특정 스택 트레이스만 추출
- 대규모 파일 목록(ls -R)에서 질문과 관련된 파일 경로만 필터링하여 에이전트에게 전달
- GitHub Issue 해결 과정에서 긴 git log 중 특정 변경 사항이 포함된 커밋 메시지만 선별
코드 공개 여부: 공개
코드 저장소 보기키워드
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.