[논문 리뷰] Environment-Aware Code Generation: How far are We?
본 논문은 Environment-Aware Code Generation (EACG)을 정의하고 VersiBCB를 도입합니다. 실행 가능하고 다중 라이브러리 및 버전 인식 태스크를 갖춘 벤치마크이며, 추론 시점 맞춤화 전략 세 가지(데이터, 매개변수, 캐시)를 평가하고 실행 가능성, 호환성, 구성 가능성에 대한 영향을 분석합니다.
Recent progress in large language models (LLMs) has improved code generation, but most evaluations still test isolated, small-scale code (e.g., a single function) under default or unspecified software environments. As a result, it is unclear whether LLMs can reliably generate executable code tailored to a user's specific environment. We present the first systematic study of Environment-Aware Code Generation (EACG), where generated code must be functionally correct and directly executable under arbitrary software configurations. To enable realistic evaluation, we introduce VersiBCB, a benchmark that is multi-package, execution-verified, and deprecation-aware, capturing complex and evolving environments that prior datasets often overlook. Using VersiBCB, we investigate three complementary adaptation axes: data, parameters, and cache, and develop representative strategies for each. Our results show that current LLMs struggle with environment-specific code generation, while our adaptations improve environment compatibility and executability. These findings highlight key challenges and opportunities for deploying LLMs in practical software engineering workflows.
연구 동기 및 목표
- Environment-Aware Code Generation (EACG)를 주어진 환경에서 기능적으로 정확하고 실행 가능한 코드 생성으로 형식화한다.
- 실세계 파이썬 환경을 반영하는 대규모, 실행 가능성 검증된 다중 라이브러리 벤치마크인 VersiBCB를 만든다.
- 환경 적응성을 위한 세 가지 추론 시점 적응 전략(데이터 기반 RAG, 매개변수 기반 MoE, 캐시 기반 메모리)을 평가한다.
- 실행 가능성, API 호환성, 그리고 보지 않은 라이브러리/버전 구성에 대한 일반화를 평가한다.
- 실용적인 소프트웨어 엔지니어링 워크플로우에서 LLM을 배포하기 위한 인사이트와 가이드를 제공한다.
제안 방법
- EACG 및 환경 L, V 및 기능 요구 d를 포함한 EACM의 태스크 수식을 정의한다.
- BigCodeBench에 환경 인식 주석을 보강하고 제어된 환경에서 코드를 실행해 실행 가능성을 검증함으로써 VersiBCB를 구성한다.
- Pass@k를 포함한 엄격한 API 사용 규범과 관대 한 API 사용 규범을 포함하여 EACG 및 EACM에서 최첨단 LLM을 평가한다.
- 추론 시점에서의 세 가지 적응 축: 데이터 기반의 검색 강화 생성(RAG), 버전 인식 라우팅이 있는 매개변수 기반의 전문가 혼합(MoE), 환경별 패턴의 메모리 기반 캐시를 제안한다.

실험 결과
연구 질문
- RQ1LLM이 주어진 환경에서 코드를 올바르게 실행할 수 있도록 생성할 수 있는가(실행 가능성)?
- RQ2생성된 API가 주어진 환경의 API 세트와 호환되는가(호환성)?
- RQ3모델이 보지 못한 라이브러리/버전 조합에 일반화할 수 있는가(구성 가능성)?
- RQ4환경 적응 전략이 엄격한 API 준수와 실용적 실행 가능성 측면에서 어떻게 비교되는가?
주요 결과
| 모델 | 코드 생성을 Pass@1 | 코드 생성을 Pass@3 | 코드 생성을 Pass@5 | 코드 마이그레이션 Pass@1 | 코드 마이그레이션 Pass@3 | 코드 마이그레이션 Pass@5 |
|---|---|---|---|---|---|---|
| DS-7B | 0.00 | 0.00 | 0.00 | 2.99 | 6.59 | 8.38 |
| CodeGemma-7B | 0.60 | 0.90 | 2.69 | 13.47 | 34.13 | 49.70 |
| CodeLlama-13B | 0.30 | 0.90 | 1.79 | 18.26 | 36.23 | 49.10 |
| StarCoder2-15B | 0.00 | 0.00 | 0.30 | 5.99 | 15.87 | 21.26 |
| LLaMA3-70B | 18.51 | 24.78 | 27.76 | 57.19 | 60.78 | 61.98 |
| GPT-4.1-mini | 27.76 | 32.24 | 33.43 | 53.29 | 59.28 | 61.68 |
| DeepSeek-v3 | 23.88 | 28.06 | 30.75 | 66.17 | 70.06 | 70.66 |
- 기존 LLM은 환경 인지 코드 생성에 어려움을 겪고; 더 큰 모델이 더 잘 수행하지만 여전히 비환경 비특이 벤치마크에 비해 뒤처진다.
- MoE 기반 적응은 엄격한 API 일관성과 생성 작업의 부분적 정확성을 개선한다.
- 메모리 기반 적응은 환경 조건 패턴 재사용으로 코드 마이그레이션에서 강한 이점을 제공하지만, 더 오래된 API를 허용할 수 있다.
- RAG는 보수적인 적응으로 중간 수준의 이점과 해석 가능한 환경 신호를 제공한다.
- 모든 전략은 기계학습 도메인 및 보지 못한 라이브러리/버전 조합에서 성능 저하를 보이며, 버전 민감한 환경의 지속적인 도전 과제를 드러낸다.
- VersiBCB는 실행성, 호환성, 교차 라이브러리 진화에 걸쳐 세밀한 평가를 가능하게 하며, 표준 벤치마크로는 포착되지 않는 간극을 드러낸다.

더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.