ECO는 대형 언어모델(LLM)이 주어진 코드의 실행 속도(runtime)를 향상 시킬 수 있도록 도와주는 performance-aware 프롬프트 방법론입니다. 기존의 코드 최적화 방법론들은 LLM에게 ‘이 코드를 최적화 시켜줘’와 같은 간단한 프롬프트를 활용하거나, LLM을 직접 파인튜닝하는 비용이 많이 드는 접근법에 의존했습니다. 이에 반해 ECO는 LLM에게 코드 내 병목 지점을 명시적으로 알려주고, 구체적인 수정 방향을 제시함으로써 LLM의 내재된 최적화 추론 능력을 적극 활용합니다.

ECO는 내부적으로 slow-fast 코드의 쌍으로부터 최적화 방식을 추출(distill)하여 지식 베이스를 구축하고, 이를 바탕으로 두 개의 상호 보완적인 모듈을 통해 최적화 가이드를 생성합니다.

이 두 모듈의 결과는 성능 인식형 프롬프트(performance-aware prompt)로 통합되어 LLM에게 입력됩니다.이를 통해 LLM은 병목지점 탐색에 불필요한 자원을 소모하지 않고, 제시된 최적화 지침을 충실히 수행함으로써 실행 속도를 향상 시킬 수 있습니다.

실험 결과, ECO는 단순한 지시문 기반의 최적화 요청 대비 1.99배에서 최대 7.81배의 속도 향상을 달성하였습니다. 특히 ECO는 모델의 파인튜닝이나 추가 모듈의 학습이 필요하지 않아, 상용 LLM(GPT 계열 등)에도 손쉽게 적용 가능하다는 장점을 지닙니다.

motivation.png

기존의 방법론들은 주어진 코드 내에서의 병목지점을 스스로 찾아내는 과정을 전적으로 LLM에게 의존하게 되어 이로 인해 최적화의 비율이 낮습니다. ECO의 방법론은 performance-aware prompt를 통해 병목 지점 및 수정 지침을 전달 받아, LLM이 자체적으로 병목을 탐색하지 않고 주어진 지침을 충실히 수행하는 최적화 중심적 추론을 수행할 수 있도록 유도합니다.

fig2 (1).jpg

ECO는 크게 세 가지 단계로 이루어집니다. 먼저 ROI(runtime optimization instruction) 추출 단계에서는 과거의 slow–fast 코드 쌍을 분석하여 성능 개선의 핵심 원리를 자연어 형태의 지식으로 정제합니다. 이 추출한 지식은 두 모듈을 구동하는 핵심 근거로 사용됩니다.

Symbolic Advisor는 Joern이라는 정적 분석 툴을 활용해 그래프 쿼리를 활용한 룰들을 구현합니다. 이 구현한 룰들을 통해 CPG(Code Property Graph)로 변환된 코드에게서 병목현상이 나타나는 구조적 패턴을 탐지하고, 해당 위치와 원인을 명확히 제시합니다. 이후 병목지점과 관련된 조언을 템플릿을 활용해 가이드를 생성하게됩니다.

ROI Retirever는 기존의 RAG의 발전된 버전입니다. 기존 RAG는 코드 임베딩 모델을 사용하여 입력 코드와 문법적 또는 의미적으로 가장 유사한 slow–fast 코드 쌍을 검색했지만, 이 경우 단순히 기능적으로 유사할 뿐 성능 향상과 직접 관련이 없는 예시가 자주 반환되었습니. 이러한 한계를 극복하기 위해 과거의 ROI 쌍과 현재 코드 간의 성능 유사도(performance similarity) 를 계산합니다. 즉, 현재 코드의 병목 유형이나 최적화 가능성 측면에서 가장 밀접한 사례를 찾아, 실질적으로 도움이 되는 최적화 궤적(trace) 을 LLM에게 제공하게 됩니다.

Best@1 Speedup Best@5 Speedup
Instruction-only 1.17x 1.44x
CoT 1.16x 1.39x
ICL 1.27x 1.82x
RAG 1.52x 2.51x
Supersonic [1] 1.00x 1.01x
SBLLM [2] 1.06x 1.22x
ECO (Ours) 2.15x 3.26x

위 테이블은 Qwen2.5Coder:7b 모델을 대상으로 함께 다양한 최적화 방법론을 적용했을 때의 성능을 보여줍니다. Instruction-only는 일반 사용자가 흔히 사용하게 되는 ‘이 코드를 최적화해줘’와 같은 간단한 프롬프트에 해당하며 평균 1.44x의 결과를 보입니다. 반면 ECO를 사용하게되면 best@5에서 3.26x의 가장 높은 성능향상을 보여줍니다.

Prompting Method Best@5 Speedup
GPT-4o-mini Instruction-only 1.53x
ECO 3.97x
GPT-o4-mini Instruction-only 1.99x
ECO 7.81x