[Paper] 소프트웨어 엔지니어링 작업에서 대형 언어 모델 설명을 향하여

발행: (2025년 12월 23일 오후 09:56 GMT+9)
9 min read
원문: arXiv

Source: arXiv - 2512.20328v1

Overview

이 논문은 FeatureSHAP이라는 모델에 구애받지 않는 프레임워크를 소개합니다. 이 프레임워크는 코드 생성 및 코드 요약과 같은 소프트웨어 엔지니어링(SE) 작업에 대형 언어 모델(LLM)을 사용할 때 그 결정 과정을 설명합니다. 소스 코드와 자연어 문서의 특수성을 고려하여 Shapley 값 기반 귀속을 적용함으로써, 저자들은 LLM의 “블랙 박스”를 보다 투명하고 신뢰할 수 있는 도구로 전환하고자 합니다. 이는 안전이 중요한 환경이나 높은 영향을 미치는 환경에서 작업하는 개발자들에게 특히 유용합니다.

Key Contributions

  • FeatureSHAP framework – SE‑지향 LLM을 위한 최초의 완전 자동화된 도메인‑특화 설명 가능성 방법.
  • Task‑aware feature definition – Shapley 값을 계산하기 전에 원시 토큰을 고수준 SE 개념(예: API 호출, 제어‑흐름 구조, doc‑string 섹션)으로 매핑합니다.
  • Model‑agnostic design – 오픈‑소스(LLaMA, CodeBERT 등)든 상용(OpenAI Codex 등)든 모든 LLM에서 작동합니다.
  • Empirical evaluation – 일반 SHAP 및 어텐션‑기반 베이스라인과 비교했을 때 코드 생성 및 요약 벤치마크에서 더 높은 충실도와 무관한 입력에 대한 낮은 귀속을 보여줍니다.
  • Human‑centered validation – 37명의 소프트웨어 실무자를 대상으로 한 설문 조사에서 FeatureSHAP 설명이 모델 출력 검토 시 신뢰도와 의사결정을 향상시킴을 보여줍니다.
  • Open‑source release – 구현이 공개되어 재현성을 촉진하고 커뮤니티 확장을 장려합니다.

방법론

  1. Feature Engineering for SE – 입력 프롬프트를 의미론적으로 의미 있는 그룹(예: 함수 시그니처, 주변 주석, 임포트된 라이브러리)으로 파싱합니다. 각 그룹은 귀속을 위한 “feature”가 됩니다.
  2. Perturbation & Similarity – 특정 feature에 대해 FeatureSHAP은 해당 feature를 마스킹하거나 교체하여 프롬프트의 변형 버전을 생성하고 나머지는 그대로 유지합니다. 결과 모델 출력은 원본과 작업‑특정 유사도 메트릭(BLEU for generation, ROUGE for summarization)을 사용해 비교합니다.
  3. Shapley Value Approximation – Monte‑Carlo 샘플링을 이용해 프레임워크는 각 feature가 최종 출력 점수에 기여하는 정도를 추정하고, 합이 1이 되도록 정규화된 중요도 점수를 제공합니다.
  4. Explanation Rendering – 점수는 원본 프롬프트와 함께 시각화되어, 코드나 주석 중 어느 부분이 LLM의 답변에 가장 큰 영향을 미쳤는지 강조합니다.
  5. Evaluation Pipeline – 저자들은 FeatureSHAP을 baseline SHAP(토큰‑레벨) 및 attention‑weight 시각화와 비교하여 두 데이터셋에서 벤치마크합니다: (a) doc‑string으로부터 Python 함수 생성, (b) 소스 스니펫으로부터 코드 요약. Fidelity는 통제된 “ground‑truth” feature 중요도(인위적으로 삽입된)와 귀속이 얼마나 일치하는지로 측정합니다.

결과 및 발견

  • Higher Fidelity – FeatureSHAP의 기여도는 합성된 정답과 0.78(코드 생성) 및 0.74(요약)으로 상관관계가 있으며, 토큰‑레벨 SHAP(0.61 / 0.58)과 어텐션 기준선(≈0.45)보다 우수합니다.
  • Reduced Noise – 관련 없는 특징(예: 무관한 import 문)은 거의 0에 가까운 중요도를 받는 반면, 기존 방법들은 종종 잘못된 가중치를 부여합니다.
  • Human Study – 설문에 응답한 개발자 84 %가 FeatureSHAP 설명이 모델의 잘못된 제안을 더 빨리 발견하는 데 도움이 되었다고 답했으며, 71 %는 규제된 프로젝트에서 LLM 기반 도구를 더 기꺼이 도입하겠다고 말했습니다.
  • Performance Overhead – 교란 기반 접근 방식은 설명당 추론 시간을 약 2배 증가시키지만, 저자들은 이를 디버깅이나 코드 리뷰 상황에서는 허용 가능한 수준이라고 평가합니다.

Practical Implications

  • Debugging LLM‑Generated Code – 개발자는 프롬프트의 어느 부분(예: 누락된 타입 힌트)이 잘못된 제안을 초래했는지 빠르게 식별할 수 있어, 목표 지향적인 프롬프트 엔지니어링이 가능해집니다.
  • Compliance & Auditing – 자동차나 의료 소프트웨어와 같은 분야에서 FeatureSHAP은 모델이 특정 구현을 생성한 이유에 대한 추적 가능한 증거를 제공하여 규제 문서 작성을 지원합니다.
  • Tool Integration – 이 프레임워크는 VS Code 확장이나 CI‑pipeline 플러그인으로 감싸서, 모델 재학습 없이 AI‑지원 제안과 함께 설명을 제공할 수 있습니다.
  • Cross‑Model Portability – 독점 API(예: OpenAI)를 사용하는 팀도 모델 내부를 노출하지 않고 설명을 얻을 수 있어, 투명성을 확보하면서도 IP를 보호합니다.

제한 사항 및 향후 작업

  • Scalability – Shapley 추정을 위해 필요한 Monte‑Carlo 샘플링은 매우 큰 프롬프트나 다중 파일 컨텍스트에서 비용이 많이 들 수 있습니다.
  • Feature Granularity – 현재 기능 분류 체계는 Python을 위해 수작업으로 만들어졌으며, 다른 언어나 혼합 언어 프로젝트로 확장하려면 추가 엔지니어링이 필요합니다.
  • Dynamic Code – 런타임 동작(예: 부작용, 성능)이 포착되지 않으며, 향후 작업에서는 정적 귀속과 동적 프로파일링을 결합할 수 있습니다.
  • User Interaction – 이 연구는 정적 설문에 초점을 맞추었으며, 실제 개발 워크플로우에서의 장기 연구가 생산성 향상을 정량화하는 데 필요합니다.

FeatureSHAP는 LLM 기반 소프트웨어 엔지니어링 도구를 단순히 강력할 뿐만 아니라 일상적인 개발자에게도 이해하기 쉽고 신뢰할 수 있게 만드는 구체적인 단계입니다.

저자

  • Antonio Vitale
  • Khai‑Nguyen Nguyen
  • Denys Poshyvanyk
  • Rocco Oliveto
  • Simone Scalabrino
  • Antonio Mastropaolo

논문 정보

  • arXiv ID: 2512.20328v1
  • Categories: cs.SE, cs.AI, cs.LG
  • Published: 2025년 12월 23일
  • PDF: PDF 다운로드
Back to Blog

관련 글

더 보기 »

[Paper] Gemini용 프로덕션 준비 프로브 구축

최첨단 language model 능력이 빠르게 향상되고 있습니다. 따라서 점점 더 강력해지는 시스템을 악용하는 악의적인 행위자들에 대한 보다 강력한 mitigations가 필요합니다. Prior w...