핵심 요약
코드베이스 분석 시 발생하는 벡터 RAG의 환각 문제를 해결하기 위해 AST와 DAG를 활용한 결정론적 탐색 기법인 GOG를 제안하고 획기적인 토큰 절감 수치를 입증했다.
배경
5년 차 풀스택 엔지니어가 코드베이스 내에서 벡터 RAG가 임포트 경로를 오인하거나 문맥을 잃는 문제를 해결하기 위해, LLM의 추론 부담을 결정론적 기법으로 옮긴 GOG 프레임워크를 개발하고 벤치마크 결과를 공유했다.
의미 / 영향
이 토론에서 코드 분석 성능 한계가 모델의 크기보다 데이터 정제와 탐색 전략의 문제임이 확인됐다. 커뮤니티 컨센서스는 심볼릭 추론과 LLM의 결합이 토큰 비용 절감과 정확도 향상을 위한 실무적 대안이라는 것이며, 향후 IDE 에이전트 설계에 직접 적용 가능하다.
커뮤니티 반응
작성자가 피드백과 협업을 요청한 초기 단계이나, 제시된 벤치마크 수치가 매우 인상적이라 기술적 타당성과 실제 IDE 환경으로의 확장성에 대한 관심이 높다.
주요 논점
01찬성다수
벡터 RAG의 한계를 정확히 짚었으며 AST 기반의 결정론적 접근이 코드 분석의 정확도를 획기적으로 높일 수 있다.
합의점 vs 논쟁점
합의점
- 코드베이스 분석에서 벡터 검색의 유사도 기반 접근은 임포트 경로 파악 등에서 한계가 명확하다.
- LLM에 입력되는 컨텍스트에서 노이즈를 제거하는 것이 모델 성능 최적화의 핵심이다.
실용적 조언
- 코드베이스 분석 도구 설계 시 벡터 검색 대신 AST 기반의 의존성 그래프를 구축하여 검색 범위를 좁히는 것이 유리하다.
- 파일 변경이 잦은 환경에서는 전체 재인덱싱 대신 메모리 내에서 특정 노드만 교체하는 O(1) 업데이트 전략을 고려해야 한다.
전문가 의견
- 5년 차 엔지니어인 작성자는 LLM이 아키텍처 추론을 직접 수행하게 하는 대신, 결정론적 모델이 정제한 데이터의 구문만 처리하게 하는 것이 소형 모델 활용의 핵심이라고 밝혔다.
언급된 도구
Qwen 0.8B추천
벤치마크 테스트에 사용된 경량 언어 모델
PyTorch추천
O(1) 텐서 수술을 통한 실시간 AST 업데이트 구현
섹션별 상세
기존 벡터 RAG는 코드의 엄격한 구조를 확률적으로 처리하여 임포트 경로 환각이나 깊은 코드베이스에서의 문맥 소실 문제를 야기했다. 이를 해결하기 위해 소프트웨어 아키텍처를 확률적 소설이 아닌 수학적 그래프로 취급하는 GOG(Graph-Oriented Generation) 프레임워크를 구축했다.
GOG의 핵심인 상징적 추론 모델(SRM)은 전체 저장소를 AST로 파싱하여 모든 의존성을 담은 엄격한 유향 비순환 그래프(DAG)를 생성한다. 사용자의 타겟 노드를 기반으로 최단 경로 탐색을 수행하여 실행 경로에 없는 파일은 완전히 배제함으로써 LLM에 전달되는 노이즈를 제거했다.
파일 변경 시 전체를 다시 인덱싱해야 하는 O(N) 복잡도의 기존 방식과 달리, SRM은 파일 저장을 가로채 torch.cat을 이용한 메모리 내 텐서 수술로 AST 노드를 즉시 교체한다. 이를 통해 상태 업데이트 복잡도를 O(1)로 낮추어 대규모 프로젝트에서도 실시간 반영이 가능해졌다.
100개 이상의 파일로 구성된 복잡한 Vue/TS 환경에서 Qwen 0.8B 모델로 테스트한 결과, 문맥 조립 시간은 99.9%, 전송 토큰은 89.3% 감소했다. 특히 소형 모델에서도 깊은 아키텍처 라우팅 문제를 완벽히 해결하며 LLM의 역할을 추론 엔진에서 단순 구문 번역기로 전환할 수 있음을 확인했다.
실무 Takeaway
- 벡터 RAG의 확률적 접근은 엄격한 코드 구조 분석에서 환각을 유발하므로 결정론적 그래프 탐색이 더 효과적이다.
- AST와 DAG를 활용하면 LLM에 전달되는 토큰 양을 90% 가까이 줄이면서도 정확한 문맥을 제공할 수 있다.
- LLM의 역할을 추론 엔진에서 구문 번역기로 격하시킴으로써 0.8B 수준의 소형 모델로도 복잡한 아키텍처 문제를 해결 가능하다.
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료