← 최신 논문
🤖 machine learning

Merge-Bench: Resolve Merge Conflicts with Large Language Models

본 논문은 실제 세계의 병합 충돌에 대한 대규모 데이터셋인 Merge-Bench를 소개하고, 그룹 상대적 정책 최적화로 훈련된 자바 전용 모델인 LLMergeJ를 제시하며, 이는 여러 상용 LLM 보다 우수한 성능을 보이지만 현재까지 가장 우수한 모델들조차 11 개 프로그래밍 언어에 걸쳐 있는 충돌의 60% 미만을 해결하고 있음을 보여줍니다.

원저자: Benedikt Schesch, Michael D. Ernst

게시일 2026-05-26
📖 3 분 읽기☕ 가벼운 읽기

원저자: Benedikt Schesch, Michael D. Ernst

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

두 친구가 동시에 같은 문서를 편집하는 그룹 프로젝트를 진행한다고 상상해 보세요. 친구 A 가 한 단락을 수정하고, 친구 B 가 정확히 같은 단락을 수정합니다. 두 사람의 작업을 합치려고 하면 컴퓨터가 혼란에 빠지며 "어떤 버전을 유지해야 할지 모르겠다!"라고 외칩니다. 이를 병합 충돌 (merge conflict) 이라고 합니다.

보통은 사람이 개입하여 두 버전을 모두 읽고, 친구들이 실제로 무엇을 하려 했는지 파악한 후 수동으로 문제를 해결해야 합니다. 이는 시간이 걸리고 실수를 초래할 수 있습니다.

이 논문은 "스마트"인 AI(대규모 언어 모델) 를 사용하여 이러한 문제를 자동으로 해결하는 새로운 방법을 제시합니다. 그들의 작업을 간단한 용어로 설명하면 다음과 같습니다:

1. 문제: 컴퓨터는 무지합니다

전통적인 도구는 글자만 보는 로봇과 같습니다. 친구 A 가 "고양이"라고 쓰고 친구 B 가 "개"라고 쓰면, 로봇은 단순히 충돌만 봅니다. 그들이 애완동물에 대해 이야기했을 수도 있고, 혹은 오타였을 수도 있다는 점을 이해하지 못합니다. 이는 의도를 설명해 줄 사람이 필요합니다.

2. 해결책: 새로운 훈련장 (Merge-Bench)

AI 에게 이러한 충돌을 해결하는 법을 가르치기 위해서는 "여기에는 문제가 있었고, 여기에는 인간 전문가가 이를 어떻게 해결했는지"를 보여주는 방대한 예시 라이브러리가 필요합니다.

  • 과거의 방식: 다른 연구자들은 이러한 라이브러리를 수동으로 만들거나 테스트를 실행하여 구축하려 했습니다. 이는 느리고 비쌌으며, 때로는 AI 가 문제를 해결하는 법을 배우는 대신 테스트 답안을 암기하여 "속임수"를 썼습니다.
  • 새로운 방식 (Merge-Bench): 저자들은 Merge-Bench라는 거대하고 자동화된 라이브러리를 구축했습니다. 그들은 GitHub 의 1,439 개 다른 공개 코드 프로젝트에서 7,938 개의 실제 충돌을 수집했습니다.
    • 비유: 모든 숙제를 수동으로 채점할 필요가 없는 교사를 상상해 보세요. 대신, 학생들이 실수를 저지르고 교사가 작성한 정답이 포함된 8,000 개의 실제 사례를 자동으로 가져오는 기계가 있습니다. 기계가 모든 작업을 하므로, 거대하고 끝없이 풍부한 라이브러리를 가질 수 있습니다.

3. 학생: LLMergeJ

저자들은 LLMergeJ라는 특정 AI 모델을 훈련시켰습니다 (여기서 "J"는 그들이 집중했던 프로그래밍 언어인 Java 를 의미합니다).

  • 훈련 방법: 표준 교사처럼 모델에게 단순히 정답만 보여주는 대신, **강화 학습 (Reinforcement Learning)**이라는 방법을 사용했습니다.
    • 비유: 강아지를 훈련시키는 것과 같습니다. 강아지가 올바른 트릭을 맞추면 간식을 얻습니다. 틀리게 추측하면 아무것도 얻지 못합니다. 추측을 거부하고 "모르겠다"고만 말하면 (충돌을 유지하면) 아주 작은 빵 부스러기를 얻습니다.
    • AI 는 수천 번 시도했습니다. 코드를 올바르게 결합하는 방법을 찾아냈을 때 큰 보상을 받았습니다. 시간이 지남에 따라 AI 는 정답이 어떤 모습인지뿐만 아니라, 그 정답에 도달하기 위해 문제를 어떻게 생각해야 하는지까지 배웠습니다.

4. 결과: 작은 개, 큰 재주

저자들은 140 억 개의 파라미터를 가진 모델 (AI 기준으로는 상대적으로 작음) 을 Gemini, Claude, Grok 와 같은 가장 크고 비싼 상용 AI 모델들과 비교하여 테스트했습니다.

  • 놀라운 사실: 그들의 작고 맞춤형으로 훈련된 모델은 거의 모든 거대한 상용 모델보다 더 잘 수행했습니다. (사소한 포맷 차이 제외) 약 **59%**의 충돌을 정확하게 해결했습니다.
  • 비교: 최고의 상용 모델 (Gemini 2.5 Pro) 이 약간 더 좋았지만, 저자들의 모델은 다른 모델들을 압도적인 차이로 능가했습니다.
  • 교훈: 보상 시스템을 사용하여 병합 충돌을 해결하는 방법을 특별히 훈련받은 작은 모델이, 단순히 한 번 수행해 보라고 요청받은 거대하고 범용적인 모델보다 낫습니다.

5. 왜 이것이 중요한가

  • 속임수 없음: 그들의 테스트 방법은 코드 실행 테스트 (AI 가 때로는 속일 수 있음) 에 의존하지 않습니다. 대신 코드를 인간 개발자가 실제로 한 작업과 직접 비교합니다.
  • 확장성: 데이터를 라벨링하기 위해 사람이 필요하지 않았기 때문에 훈련 세트를 원하는 만큼 크게 만들 수 있었습니다.
  • 언어 무관성: 모델은 Java 로만 훈련되었지만, 11 가지 다른 언어 (C, Python, Rust 등) 에 대해 거대한 상용 모델들을 테스트했습니다. AI 의 행동이 모든 언어에서 유사하다는 것을 발견했으며, 이는 그들의 방법이 어떤 프로그래밍 언어에서도 작동할 수 있음을 시사합니다.

요약

저자들은 특정 AI 선수 (LLMergeJ) 가 코드 충돌을 해결하도록 훈련시키기 위해 거대하고 자동화된 체육관 (Merge-Bench) 을 구축했습니다. 보상 기반 훈련 시스템을 사용하여, 상대적으로 작은 AI 가 이 특정 작업에서 가장 크고 비싼 AI 모델들을 능가하도록 훈련시켰으며, 소프트웨어의 문제를 해결할 때 일반적인 크기보다 전문적인 훈련이 더 효과적임을 증명했습니다.

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

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

Digest 사용해 보기 →