본문으로 건너뛰기

검색 증강 탐색을 통한 LLM 기반 프로그램 최적화

프로그램 최적화는 기존 컴파일러가 놓치는 알고리즘·자료구조 수준의 변환을 필요로 하며, LLM은 이러한 고수준 최적화를 자동화할 잠재력을 보인다. LLM은 학습 데이터에 성능 정보가 부족해 그대로 사용하면 성능 향상이 제한되며, 본 논문은 블랙박스 방식으로 LLM을 적응시켜 이 문제를 해결했다. 실제 벤치마크에서 실행 시간 개선을 보이며 LLM을 성능 최적화에 실용적으로 적용할 수 있는 길을 제시했다.

용어 해설

문맥 기반 검색(Contextual Retrieval)
프로그램 소스 코드 자체 대신 LLM이 생성한 자연어 설명을 임베딩하여 유사도를 계산하는 검색 방식으로, 구현 세부사항보다 알고리즘·자료구조 같은 추상적 특성을 기준으로 유사 예제를 찾고자 할 때 사용된다.
원자적 편집(Atomic Edit)
한 번에 하나의 구체적 최적화만 수행하는 점진적 코드 변경 단위로서, 원본-최적화 쌍을 작은 단계로 분해해 LLM이 더 작고 해석 가능한 수정만 적용하도록 유도하는 데이터 표현이다.
FAISS
대규모 벡터 집합에서 유사도 검색을 고속으로 수행하는 라이브러리로, 본 논문에서는 임베딩된 자연어 설명이나 코드 임베딩으로부터 top-k 유사 예제를 검색할 때 사용되었다.
gem5
하드웨어 시뮬레이터로, C++ 프로그램의 실행 시간을 결정론적으로 측정하여 최적화의 실행 성능을 재현 가능하게 평가하는 데 사용되었다.
빔 탐색(Beam Search)
반복적 생성 과정에서 여러 후보를 유지하면서 각 단계에서 상위 성능 후보를 선택해 나가는 탐색 전략으로, RAS는 검색-최적화-평가 루프를 m 단계의 빔 탐색 형태로 수행했다.

코드 예제

text
Algorithm 1 Retrieval Augmented Search (RAS)
p0, Π_train, F_opt, F_context, R, ϕ
for i ∈ [1, …, m] do
  Π_i ← top-k{((p,p'), d_ϕ(p_{i-1}, p)) ∣ (p,p') ∈ Π_train}
  p_i^j ∼ F_opt(π_i^j, p_{i-1})    (∀ j ∈ [k])
  p_i ← argmax_{j∈[k]} R(p_i^j)
return p_m

RAS의 핵심 알고리즘을 그대로 옮긴 의사코드로, 각 반복에서 top-k 유사 학습 쌍을 검색하여 F_opt로 후보 최적화를 생성하고 가장 빠른 올바른 프로그램을 선택한다.

text
Algorithm 2 Atomic Edit-Guided Search (Aegis)
Π_train, F_decomp, F_edit, F_gen, F_opt, F_context, R
Π_atomic ← ∅
for (p, p') ∈ Π_train do
  [s_1, …, s_r] ∼ F_decomp(p, p')
  for i ∈ [1, …, n] do
    p_i ∼ F_edit(s_i, p_{i-1})
    e_i ∼ F_gen(s_i, p_i)
    Π_atomic ← Π_atomic ∪ {(e_i, (p_{i-1}, p_i))}
return Π_atomic

Aegis의 원자적 편집 생성 파이프라인을 요약한 의사코드로, 원본-최적화 쌍을 분해해 단계별 편집과 일반화를 통해 Π_atomic을 만든 뒤 RAS에 투입한다.

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 06. 23.수집 2026. 07. 01.출처 타입 PAPER

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.