Skip to main content
QUICK REVIEW

[논문 리뷰] BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration

Augustus Odena, Kensen Shi|arXiv (Cornell University)|2020. 07. 28.
Software Engineering Research참고 문헌 27인용 수 5
한 줄 요약

BUSTLE는 실행된 결과와 성질 서명을 활용하여 효율성을 높이는 학습 유도형 하향식 프로그램 합성 접근법을 제안한다. 중간 프로그램 값의 우선순위를 정하기 위해 신경망 분류기를 사용하며, 기존 기준 대비 합성 시간과 후보 탐색 횟수를 크게 줄였다. 이는 랜덤 프로그램으로 학습된 후 인간이 작성한 벤치마크에 적용된 경우에도 성립한다.

ABSTRACT

Program synthesis is challenging largely because of the difficulty of search in a large space of programs. Human programmers routinely tackle the task of writing complex programs by writing sub-programs and then analyzing their intermediate results to compose them in appropriate ways. Motivated by this intuition, we present a new synthesis approach that leverages learning to guide a bottom-up search over programs. In particular, we train a model to prioritize compositions of intermediate values during search conditioned on a given set of input-output examples. This is a powerful combination because of several emergent properties. First, in bottom-up search, intermediate programs can be executed, providing semantic information to the neural network. Second, given the concrete values from those executions, we can exploit rich features based on recent work on property signatures. Finally, bottom-up search allows the system substantial flexibility in what order to generate the solution, allowing the synthesizer to build up a program from multiple smaller sub-programs. Overall, our empirical evaluation finds that the combination of learning and bottom-up search is remarkably effective, even with simple supervised learning approaches. We demonstrate the effectiveness of our technique on two datasets, one from the SyGuS competition and one of our own creation.

연구 동기 및 목표

  • 인간이 사용하는 하향식 프로그래밍 전략을 모방함으로써 프로그램 합성에서 큰 검색 공간 문제를 해결하고자 한다.
  • 실행 가능한 중간 값들을 신경 모델의 특징으로 사용함으로써 학습-루프 통합 합성을 효율적으로 가능하게 하고자 한다.
  • 빠른 배치 추론과 성질 서명을 통해 합성의 벽 시계 시간과 후보 탐색 횟수를 줄이고자 한다.
  • 합성 훈련 데이터와 실제 인간이 작성한 벤치마크 사이의 분포 갭을 메우고자 한다.
  • 랜덤 프로그램에서 단순 지도 학습을 수행한 모델이 복잡한 인간 작성 합성 작업으로 일반화될 수 있음을 입증하고자 한다.

제안 방법

  • BUSTLE는 프로그램에 대해 하향식 순열 검색을 수행하며, 부분 프로그램을 실행하여 모델 입력용 중간 값을 생성한다.
  • 실행된 값에서 파생된 특징을 사용해, 중간 값이 솔루션의 일부인지 예측하는 신경 분류기를 훈련한다.
  • 성질 서명을 사용해 프로그램의 입력과 출력을 특징화함으로써 모델을 위한 풍부한 의미적 표현을 가능하게 한다.
  • 수백 개의 중간 값에 대해 추론을 배치 처리하여 각 예측의 오버헤드를 줄이고 효율성을 향상시킨다.
  • 모델을 합성 루프 내부에 통합하여 검색을 가로질러 우선순위를 정함으로써 유망한 중간 조합을 우선 처리한다.
  • 훈련 데이터는 인간 벤치마크와의 분포 차이가 있음에도 불구하고, 다양한 중간 표현을 시뮬레이션하기 위해 랜덤 프로그램 생성을 통해 생성된다.

실험 결과

연구 질문

  • RQ1학습된 모델이 하향식 합성 루프 내에서 중간 프로그램 값을 효과적으로 우선순위 정렬함으로써 검색 공간을 줄일 수 있는가?
  • RQ2실행된 중간 값과 성질 서명을 사용할 경우, 합성 및 인간이 작성한 벤치마크 간의 모델 일반화가 어떻게 향상되는가?
  • RQ3랜덤 프로그램에서 훈련된 단순 지도 학습 모델이 실제 세계의 프로그램 합성 작업으로 얼마나 잘 일반화되는가?
  • RQ4하향식 검색과 함께 학습-루프를 적용할 경우, 기준 합성기 대비 측정 가능한 벽 시계 성능 향상이 발생하는가?
  • RQ5하향식 검색과 모델 가이던스의 조합이 기존 순열 검색 및 종단 간 신경망 생성 방법을 모두 능가할 수 있는가?

주요 결과

  • BUSTLE는 학습이 없는 기준 합성기 대비 후보 프로그램 탐색 수를 최대 90%까지 줄였다.
  • 모델는 강력한 일반화 성능을 보이며, 실제 솔루션에 나타나는 부분 표현에 대해 예측이 긍정적으로 기울이고, 그렇지 않은 경우는 부정적으로 기울였다.
  • 벽 시계 시간이 크게 단축되었으며, BUSTLE는 합성 및 SyGuS 벤치마크 양쪽에서 기준 및 DeepCoder 방식을 모두 앞섰다.
  • 랜덤 프로그램으로 훈련된 모델이 인간이 작성한 벤치마크로도 효과적으로 일반화되었으며, 분포 갭에 대해 강건함을 입증했다.
  • 배치 추론과 성질 서명을 통해 학습을 합성 루프에 효율적으로 통합할 수 있었으며, 실세계 적용에 실용적이었다.
  • 기준 합성기가 해결한 벤치마크 중 유일하게 하나를 제외한 모든 사례에서 BUSTLE도 성공적으로 해결했으며, 이는 모델가 완전성을 훼손하지 않았음을 확인시켰다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.