← 최신 논문
💻 computer science

Unseen-Codebases-Domain Data Synthesis and Training Based on Code Graphs

이 논문은 새로운 소프트웨어 프레임워크에서 LLM 의 성능 저하와 할루시네이션 문제를 해결하기 위해, 소스 코드 기반의 코드 그래프를 활용하여 의존성 보존 사전 학습과 추론 흔적이 포함된 합성 데이터로 학습하는 'UCD-Training' 프레임워크와 새로운 벤치마크 'UnseenCodeBench'를 제안합니다.

원저자: Guangsheng Ou, Qiming Zhang, Sirong Chen, Anji Li, Dong Xu, Tiancheng Luo, Dekun Dai, Cuiyun Gao, Long Wang, Jun Zhou, Mingwei Liu, Zibin Zheng

게시일 2026-02-25
📖 3 분 읽기☕ 가벼운 읽기

원저자: Guangsheng Ou, Qiming Zhang, Sirong Chen, Anji Li, Dong Xu, Tiancheng Luo, Dekun Dai, Cuiyun Gao, Long Wang, Jun Zhou, Mingwei Liu, Zibin Zheng

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

🎬 비유: "새로운 도시의 지도 없는 여행"

상상해 보세요. 여러분이 완전히 새로운 도시에 여행을 갔습니다. 하지만 이 도시는 AI 가 훈련받던 과거 데이터에는 전혀 없었습니다.

  1. 현재의 문제 (할루시네이션):
    AI 는 이 도시를 처음 봅니다. 그런데 AI 는 "아, 여기는 내가 아는 도시 A 와 비슷하니까, 도시 A 의 길로 가면 되겠지!"라고 추측해서 엉뚱한 길로 안내합니다. 이를 **할루시네이션(환각)**이라고 합니다.

    • 기존 해결책 (RAG): "그냥 검색을 해봐!"라는 방법입니다. AI 가 길을 잃으면 근처에 있는 간판을 찾아보게 하는 건데, 간판만 보고는 복잡한 도시의 전체 구조나 "어떤 건물을 어떻게 연결해야 하는지" 같은 깊은 이해를 하기는 어렵습니다.
  2. 이 연구의 해결책 (UCD-Training):
    연구팀은 AI 에게 **"새 도시의 지도를 직접 그려서 가르쳐 주자"**고 제안합니다. 하지만 문제는, 이 새 도시에는 '사용자 가이드'나 '여행 후기' 같은 좋은 자료는 없고, 오직 건물들 (소스 코드) 만 덩그러니 있다는 점입니다.


🛠️ 이 연구가 한 일: "코드 그래프"라는 지도 그리기

연구팀은 UCD-Training이라는 두 단계의 훈련 방식을 개발했습니다.

1 단계: "건물 간의 연결고리"를 먼저 외우기 (CPT)

  • 비유: AI 에게 도시의 건물들 (파일) 이 서로 어떻게 연결되어 있는지 도로망 지도를 그려줍니다.
  • 방법: 소스 코드를 분석해서 "A 건물이 B 건물을 필요로 한다", "C 건물이 D 건물을 부른다"는 관계를 **그래프(지도)**로 만듭니다. 그리고 이 연결 관계를 바탕으로 AI 가 코드를 읽을 때, 의존성이 있는 파일들이 한 번에 함께 읽히도록 훈련시킵니다.
  • 효과: AI 가 "이 파일을 고치면 저 파일도 같이 고쳐야 해"라는 구조적인 이해를 갖게 됩니다.

2 단계: "현실적인 시나리오"로 실전 훈련 (SFT)

이제 AI 가 지도를 보았으니, 실제 여행 (코드 작성) 을 해보게 합니다. 하지만 그냥 코드를 복사해 주는 게 아니라, 세 가지 종류의 문제를 풀게 합니다.

  1. 단순 연결 문제 (Single-hop): "A 와 B 는 어떤 관계야?" (예: "이 함수는 저 클래스를 호출해")
  2. 복합 도구 사용 문제 (Compositional API): "이 도시의 특색을 살려서 A, B, C 세 가지 도구를 함께 써서 집을 지어봐." (실제 개발자가 자주 쓰는 패턴을 학습)
  3. 전체 프로젝트 활용 문제 (Codebase Utilization): "이 도시의 기존 테스트 코드를 보고, 새로운 기능을 추가해봐."

✨ 핵심 포인트: 이 모든 훈련에 **생각의 과정 (Reasoning Traces)**을 함께 가르칩니다.

  • 비유: 단순히 정답만 알려주는 게 아니라, "왜 이 도구를 썼는지, 왜 이 순서로 연결했는지"에 대한 논리적 설명을 AI 가 스스로 생각하고 답하게 훈련시킵니다.

🏆 결과: "새 도시의 전문가"가 되다

연구팀은 UnseenCodeBench라는 새로운 시험지를 만들어 이 방법을 검증했습니다.

  • 기존 방법 (검색만 하는 AI): 복잡한 도시에서는 길을 잘 못 찾았습니다. (성능 저하)
  • 이 연구의 AI (UCD-Training):
    • 정확도 대폭 상승: 기존 방법보다 최대 26% 이상 더 정확하게 코드를 작성했습니다.
    • 다양한 환경: 파이썬, C++ 등 다양한 언어와 모델 크기에 상관없이 잘 작동했습니다.
    • 실전 적용: 한 AI 가 여러 개의 새로운 도시 (여러 프로젝트) 를 동시에 다룰 때도 여전히 강력했습니다.

💡 한 줄 요약

"AI 가 본 적 없는 새로운 소프트웨어를 다룰 때, 단순히 검색해서 대충 맞추는 게 아니라, 소스 코드만으로도 '지도'를 그려내고 '실전 연습'을 시켜주면, AI 는 그 도시의 전문가가 되어 훨씬 똑똑하게 일할 수 있다."

이 연구는 AI 가 새로운 기술을 배울 때, 단순한 정보 주입이 아니라 '구조와 논리'를 이해시키는 훈련이 얼마나 중요한지를 보여줍니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →