← 최신 논문
🤖 machine learning

When the Next Step Is Not One Step: Distribution-Aware Execution Modeling for Concurrent Go Programs

이 논문은 스케줄러의 비결정성을 활용하여 실증적 이벤트 분포에 대해 7B 모델을 미세 조정함으로써, 실제 버그 예측에 있어 최첨단 정확도와 개선된 보정 성능을 달성하는 동시에 특정 고루틴 누출을 탐지하기 위한 형식적 보증을 제공하는 동시성 Go 프로그램을 위한 분포 인식 실행 모델링 접근 방식을 소개한다.

원저자: Kaviru Hapuarachchi

게시일 2026-06-17
📖 4 분 읽기☕ 가벼운 읽기

원저자: Kaviru Hapuarachchi

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

당신이 로봇에게 체스에서 다음 수를 예측하도록 가르치려 한다고 상상해 보십시오. 만약 일반적인 체스 게임이라면 규칙은 고정되어 있습니다. 당신이 여기에 폰을 움직이면, 상대방은 반드시 특정한 방식으로 대응해야 합니다. 로봇은 그 패턴을 암기하기만 하면 됩니다.

하지만 이제, 세 명의 서로 다른 사람들이 동시에 체스 말을 움직이려고 애쓰고 있고, 무작위로 부는 바람이 체스판을 휘저어 놓는 혼란스럽고 소음이 가득한 방에서 체스를 둔다고 상상해 보십시오. 때로는 당신이 폰을 움직이면 바람이 그것을 쓰러뜨릴 수도 있습니다. 때로는 플레이어가 당신이 움직이기 전에 말을 낚아챌 수도 있습니다. 때로는 상대방이 아예 다른 말을 움직이기로 결정할 수도 있습니다.

이것이 바로 (여러 작업을 동시에 실행하는) 컨커런트 프로그램(concurrent programs)이 직면한 문제입니다.

제공된 논문은 바로 이 혼돈을 다룹니다. 아래는 이를 쉬운 용어로 풀어서 설명한 것입니다.

문제점: "하나의 정답" vs "많은 가능한 정답들"

전통적인 컴퓨터 과학에서 프로그램이 실행될 때, 우리는 보통 프로그램이 직선을 따라 움직인다고 가정합니다. 동일한 입력을 주면 동일한 출력을 내놓는다는 것이죠.

  • 과거의 방식: 연구자들은 AI 모델이 프로그램이 취할 '단 하나의 다음 단계'를 예측하도록 훈련했습니다. 그들은 프로그램을 하나의 직선처럼 취급했습니다.
  • 현실: 컨커런트 프로그램(Go 언어와 같은)에서 '스케줄러'(컴퓨터가 어떤 작업을 언제 실행할지 결정하는 부분)는 마치 혼란스러운 심판과 같습니다. 동일한 프로그램을 두 번 실행하더라도, 결과는 A 다음에 B가 될 수도 있고, B 다음에 A가 될 수도 있습니다. 둘 다 올바른 결과이며, 둘 다 유효합니다.

만약 실제로 세 가지 유효한 답이 존재하는 상황에서 AI에게 단 하나의 답만을 맞히라고 가르친다면, AI는 혼란에 빠집니다. 이는 기상 예보관에게 "비가 올 것이다"라고 예측하라고 요구하는 것과 같습니다. 실제 현실은 "비가 올 수도 있고, 눈이 올 수도 있고, 혹은 맑을 수도 있는" 상황인데, AI는 그냥 하나를 골라 운 좋게 맞기를 바라는 것과 같습니다.

해결책: "기상 예보"를 예측하기

저자들은 이 혼돈을 오류로 취급해서는 안 된다는 것을 깨달았습니다. 대신, 이 혼란을 데이터로 취급했습니다.

  1. 여러 번 실행하기: 그들은 프로그램을 가져와 수백 번 실행했습니다.
  2. 결과값 세기: 순서는 바뀌었지만, 어떤 패턴이 나타난다는 것을 발견했습니다. 예를 들어, "사건 A"는 60%의 확률로 발생하고, "사건 B"는 30%, "사건 C"는 10%의 확률로 발생한다는 식입니다.
  3. AI에게 분포를 가르치기: AI에게 "사건 A가 일어난다"라고 예측하도록 가르치는 대신, "사건 A가 발생할 확률은 60%, B는 30%, C는 10%이다"라는 전체 예보를 예측하도록 가르쳤습니다.

그들은 70억 개의 파라미터를 가진 AI 모델이 단순히 하나의 승자를 맞히는 것이 아니라, 이러한 실제 세계의 백분율과 일치하도록 학습시키기 위해 특별한 수학적 기법(이를 "KL 목적 함수"라고 부름)을 사용했습니다.

결과: 효과가 있었는가?

그들은 Kubernetes나 Google의 gRPC와 같은 유명한 시스템의 실제 복잡한 코드로 테스트를 진행했습니다.

  • AI vs 전문가: 미세 조정된(fine-tuned) AI는 1,000개 미만의 예시만 학습하고도 다음 단계를 **36.2%**의 정확도로 맞혔습니다.
  • 경쟁 모델: 이는 이 특정 유형의 문제에 대해 전혀 학습되지 않은 매우 강력한 사전 학습 AI(Gemini 3.5 Flash)가 34.8%의 정확도를 기록한 것을 앞선 결과입니다.
  • "캘리브레이션(교정)"의 승리: 더 중요한 점은, 새로운 AI가 자신이 확신할 수 없는 때를 더 잘 파악했다는 것입니다. 상황이 혼란스러우면 AI는 "잘 모르겠습니다, 무엇이든 일어날 수 있습니다"라고 말했습니다. 상황이 예측 가능하면 "꽤 확신합니다"라고 말했습니다. 기존의 학습 방식은 AI가 자신 있게 틀리는 경우가 더 많았습니다.

한계: 천장은 어디인가?

논문은 AI가 아직 할 수 없는 부분에 대해서도 매우 솔직합니다.

  • 정확도의 천장: AI의 정확도는 약 35~36%에서 정점에 도달합니다. 어떤 사건들(특정한 유형의 글리치 등)은 너무 드물게 발생하여 AI가 이를 배울 만큼 충분히 관찰하지 못하기 때문에, 그보다 더 높은 정확도를 내기는 어렵습니다.
  • "한 단계"의 문제: AI는 바로 다음의 움직임을 예측하는 데는 뛰어나지만, 만약 연속적인 10개의 움직임을 예측하라고 하면 한 단계 이후부터는 무너집니다. 이는 영화의 다음 1초를 예측할 수는 있지만, 전체 줄거리를 예측하라고 하면 엉뚱한 이야기를 지어내기 시작하는 사람과 같습니다.

"누출(Leak)"의 발견

저자들은 또한 "고루틴 누출(goroutine leak)"(작업이 중간에 걸려 끝나지 않는 현상)이라고 불리는 특정 버그의 "시그니처"를 발견했습니다.

  • 그들은 만약 작업이 특정 유형의 대기 루프에 갇히게 되면, 해당 작업이 다시 "깨어날" 확률은 0이라는 것을 수학적으로 증명했습니다.
  • 이것은 AI가 추측을 통해 배운 것이 아니라, 우주의 법칙(Go 프로그래밍 언어의 규칙)입니다. AI는 이 특정 시나리오에서 "깨어남"이 불가능하다는 것을 올바르게 학습했는데, 이는 AI가 단순히 숫자를 암기하는 것이 아니라 논리를 이해하고 있다는 좋은 신호입니다.

요약

이 논문의 메시지는 이렇습니다: "혼란스럽고 다중 경로를 가진 시스템을 하나의 직선으로 강요하지 마십시오. 대신, AI에게 가능한 모든 가능성의 지도를 보여주십시오. 완벽할 수는 없으며 아직 긴 사건의 사슬을 예측할 수는 없지만, 그렇게 함으로써 AI는 혼돈의 본질을 이해하고 자신이 추측하고 있을 때를 아는 능력이 훨씬 더 좋아집니다."

그들은 다른 사람들이 이 "혼돈 인식(chaos-aware)" 접근 방식을 바탕으로 구축할 수 있도록 코드, 데이터 및 도구를 공개했습니다.

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

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

Digest 사용해 보기 →