← 최신 논문
💻 computer science

Contextualized Code Pretraining for Code Generation

본 논문은 CallerGen 모델 훈련을 위해 정적 분석을 활용하여 호출자-피호출자 쌍을 추출하는 호출 인식형 프레임워크인 "문맥화된 코드 사전 학습"을 제안하며, 기존 모델에 비해 현실적인 벤치마크에서 코드 생성 성능을 크게 향상시키기 위해 호출 문맥을 통합하는 것이 효과적임을 입증합니다.

원저자: Chen Liu, Qingyuan Liang, Hanwen Zhang, Zeyu Sun, Yakun Zhang, Lu Zhang

게시일 2026-05-19
📖 4 분 읽기☕ 가벼운 읽기

원저자: Chen Liu, Qingyuan Liang, Hanwen Zhang, Zeyu Sun, Yakun Zhang, Lu Zhang

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

"코드 생성을 위한 문맥화 코드 사전 학습" 논문에 대한 설명을 간단한 언어와 창의적인 비유로 풀어냅니다.

큰 문제: "빈 캔버스" 실수

특정 요리를 하도록 고용된 셰프가 되어 보십시오. 보통 AI 셰프에게 요리를 요청할 때, *"매운 파스타를 만들어 주세요"*라고 적힌 레시피 카드를 줍니다. AI 는 거대한 파스타 레시피 도서관을 살펴보고 무엇을 해야 할지 추측합니다.

하지만 소프트웨어 개발의 현실 세계에서는 상황이 다릅니다. 개발자는 거의 빈 레시피 카드로 시작하지 않습니다. 대신 그들은 보통 이미 식사 도중에 있습니다. 그들은 메인 코스 (호출자 코드) 를 작성했고, 이제 그 식사에 완벽하게 어울리는 특정 사이드 디시 (피호출자 함수) 를 만들어야 합니다.

  • 옛날 방식: AI 에게 사이드 디시 이름만 주고 재료를 추리하게 합니다. 훌륭한 파스타를 만들 수도 있지만, 메인 코스가 해물 스튜라면 AI 는 실수로 치즈를 넣어 전체 요리를 망칠 수 있습니다.
  • 현실 세계: 개발자는 이미 메인 코스를 작성했습니다. 그들은 사이드 디시를 호출하며 *"이 소스를 가져와서 가니시로 만들어 줘"*라고 말합니다. AI 는 사이드 디시가 메인 코스에서 어떻게 사용되고 있는지를 살펴봐야 정확히 무엇을 만들어야 할지 알 수 있습니다.

현재의 AI 모델들은 레시피 카드 (자연어 설명) 를 따르는 데는 뛰어나지만, 사이드 디시가 실제로 무엇을 해야 하는지 이해하기 위해 메인 코스를 살펴보는 데는 매우 서툴러요.

해결책: "CallerGen" (문맥 인식 셰프)

베이징 대학과 다른 기관의 연구원들은 CallerGen이라는 새로운 AI 시스템을 구축했습니다. CallerGen 을 사이드 디시를 요리하기 전에 메인 코스를 보도록 특별히 훈련된 셰프라고 생각하십시오.

그들은 레시피 책에서 배우는 대신, 함수 (사이드 디시) 가 코드의 다른 부분 (메인 코스) 에 의해 이미 사용되고 있는 수백만 개의 현실 세계 예시를 보여줌으로써 CallerGen 을 가르쳤습니다.

그들이 한 일:

  1. 수사 작업: 그들은 정적 분석이라는 특수 도구를 사용하여 방대한 양의 실제 코드 라이브러리를 스캔했습니다. 그들은 탐정처럼 행동하여 함수가 "호출"될 때마다 그 함수를 호출한 코드를 살펴보았습니다.
  2. 훈련: 그들은 AI 에게 이렇게 가르쳤습니다. "여기 메인 코스 (호출자) 가 있습니다. 여기 그것이 사이드 디시에게 무엇을 요청하는지 있습니다. 이제 사이드 디시를 요리하세요."
  3. 결과: AI 는 사이드 디시가 단순히 독립적인 레시피가 아니라 퍼즐의 한 조각임을 배웠습니다. 전달되는 데이터와 호출자가 기대하는 반환 값과 같은 호출 코드 내의 "단서"에 주의를 기울이는 법을 배웠습니다.

새로운 테스트: "CallerEval" (현실 세계 주방)

새로운 셰프가 더 낫다는 것을 증명하기 위해, 그들은 단순히 오래된 레시피 카드 (HumanEval 과 같은 표준 벤치마크) 를 사용할 수 없었습니다. 이러한 테스트는 너무 단순하며, 살펴볼 "메인 코스"가 없습니다.

그래서 그들은 CallerEval이라는 새로운 테스트 주방을 구축했습니다.

  • 이 테스트에서 AI 는 "메인 코스" 코드가 이미 작성되어 기다리고 있는 과제를 받습니다.
  • AI 는 기존 코드와 완벽하게 작동하도록 "사이드 디시" (누락된 함수) 를 작성해야 합니다.
  • 이는 요리의 맛을 고립된 상태에서 평가하는 것이 아니라, 이미 테이블에 오른 요리와 얼마나 잘 어우러지는지로 평가하는 요리 대회와 같습니다.

결과: 작은 셰프, 큰 승리

이 논문은 CallerGen 을 CodeGen, DeepSeek, Qwen 과 같은 다른 유명한 AI 셰프들과 비교하여 테스트했습니다.

  • 놀라운 사실: CallerGen 은 "작은" 셰프 (적은 컴퓨터 자원 사용) 였음에도 불구하고, 구식 방식 (레시피 카드만) 으로 훈련된 훨씬 "큰" 셰프들보다 더 좋은 성과를 냈습니다.
  • 마법: AI 가 호출 컨텍스트 (메인 코스) 를 볼 수 있게 되었을 때, 그 성능은 급상승했습니다.
    • *비유:*模糊한 주문만으로 추측하는 거대한 셰프를 이기는, 고객의 접시를 볼 수 있어 고객이 정확히 무엇을 원하는지 아는 작은 셰프와 같습니다.
  • 주의할 점: 호출 컨텍스트를 제거하면 (레시피 카드만 주는 경우), AI 는 여전히 잘 수행하지만 그 추가적인 우위를 잃습니다. 이는 "호출 컨텍스트"가 현재 모델들이 아직 완전히 활용하지 못하는 초능력임을 증명합니다.

왜 이것이 중요한가

이 논문은 소프트웨어 개발이 거의 진공 상태에서 코드를 작성하는 것이 아니라, 기존 퍼즐에 새로운 조각을 맞추는 것이라고 주장합니다.

  • 옛날 AI: "여기 함수 이름이 있습니다. 작동하게 만드세요." (퍼즐에 맞추는 데 종종 실패함).
  • 새로운 AI (CallerGen): "여기 함수 이름이 있고, 프로그램의 나머지 부분이 이를 사용하는 정확한 방법이 있습니다. 이 특정 상황을 위해 작동하게 만드세요." (퍼즐에 맞추는 데 성공함).

함수를 사용하는 코드에 의해 남겨진 "호출 컨텍스트" 단서에 주의를 기울이도록 AI 를 가르침으로써, 연구원들은 막대한 컴퓨팅 파워 없이도 실제 프로젝트에서 훨씬 더 정확하게 작동할 가능성이 높은 코드를 생성하는 시스템을 만들었습니다.

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

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

Digest 사용해 보기 →