Skip to main content
QUICK REVIEW

[논문 리뷰] Verified Code Transpilation with LLMs

Sahil Bhatia, Jie Qiu|arXiv (Cornell University)|2024. 06. 05.
Natural Language Processing Techniques인용 수 4
한 줄 요약

이 논문은 LLM 기반 프레임워크인 LLMLift를 소개한다. 이는 도메인 특화 언어(DSL)로의 기능적으로 동일한 코드 변환을 수행하면서도 자동으로 정식 증명을 생성한다. LLM 추론을 활용해 소스 코드를 Python 기반 중간 표현식(IR)으로 변환한 후, 목표 DSL 문법으로 변환함으로써 LLMLift는 23개의 텐서 처리 벤치마크에서 100%의 정확도를 달성한다. 이는 도메인 특화 히وري스틱이 필요로 하지 않으며, Tenspiler와 같은 기호적 도구보다 정확도와 속도 면에서 뛰어나다.

ABSTRACT

Domain-specific languages (DSLs) are integral to various software workflows. Such languages offer domain-specific optimizations and abstractions that improve code readability and maintainability. However, leveraging these languages requires developers to rewrite existing code using the specific DSL's API. While large language models (LLMs) have shown some success in automatic code transpilation, none of them provide any functional correctness guarantees on the transpiled code. Another approach for automating this task is verified lifting, which relies on program synthesis to find programs in the target language that are functionally equivalent to the source language program. While several verified lifting tools have been developed for various application domains, they are specialized for specific source-target languages or require significant expertise in domain knowledge to make the search efficient. In this paper, leveraging recent advances in LLMs, we propose an LLM-based approach (LLMLift) to building verified lifting tools. We use the LLM's capabilities to reason about programs to translate a given program into its corresponding equivalent in the target language. Additionally, we use LLMs to generate proofs for functional equivalence. We develop lifting-based compilers for {\em four different} DSLs targeting different application domains. Our approach not only outperforms previous symbolic-based tools in both the number of benchmarks transpiled and transpilation time, but also requires significantly less effort to build.

연구 동기 및 목표

  • 도메인 특화 언어(DSL)로의 수동 코드 재작성은 실수를 유발하고 시간이 오래 걸리므로 이를 해결하고자 한다.
  • 일반 목적의 언어에서 DSL로의 자동화된, 건설 시점에 정확한 코드 변환을 가능하게 하고자 한다.
  • 이전의 검증된 리프팅 도구에서 사용하는 도메인 특화 히وري스틱이나 복잡한 규칙 시스템에 의존하지 않도록 하고자 한다.
  • LLM이 기능적 동치성에 대한 정식 증명과 함께 정확한 DSL 코드를 동시에 생성할 수 있음을 입증하고자 한다.
  • 최소한의 공학적 노력으로 다양한 DSL에 대해 확장 가능하고 재사용 가능한 리프팅 컴파일러를 구축하고자 한다.

제안 방법

  • LLMLift는 이중 단계 접근법을 사용한다: 첫 번째 단계에서 LLM이 소스 코드를 DSL 연산자를 의미적으로 포괄하는 Python 기반 중간 표현식(IR)으로 번역한다.
  • 두 번째 단계에서 LLM은 프롬프트에 포함된 DSL 의미를 반영한 리라이팅 규칙을 사용해 IR에서 최종 DSL 코드를 생성한다.
  • LLM은 소스 코드와 변환된 코드 간의 기능적 동치성에 대한 증명을 동시에 생성하도록 프롬프트된다. 이 과정에서 불변식과 검증 조건이 사용된다.
  • 정식 검증은 생성된 증명과 코드의 정확성을 검사하는 백엔드 검증기로 수행된다.
  • LLM이 프로그램 의미를 추론하고 정확하며 검증 가능한 출력을 생성하도록 유도하기 위해 프롬프트 엔지니어링에 의존한다.
  • 이 프레임워크는 실제 도메인에서 사용되는 네 가지 DSL에 적용되었다: TACO(텐서 처리), DSP(디지털 신호 처리), BLAS, UTDSP이며, 도메인 특화 벤치마크에서 평가되었다.
Figure 2 : A high-level overview of our LLMLift framework for building verified lifting-based tools.
Figure 2 : A high-level overview of our LLMLift framework for building verified lifting-based tools.

실험 결과

연구 질문

  • RQ1LLM을 사용해 단일 파ip라인 내에서 정확한 DSL 코드와 동치성에 대한 정식 증명을 효과적으로 생성할 수 있는가?
  • RQ2LLM 기반 접근법이 기호적 검증된 리프팅 도구보다 변환 정확도와 성능 면에서 뛰어나게 되는가?
  • RQ3LLMLift는 도메인 특화 최적화 히وري스틱이나 규칙 시스템 없이도 높은 정확도를 달성할 수 있는가?
  • RQ4증명과 코드의 동시 생성 방식은 신뢰성 면에서 순차적 또는 이중 단계 프롬프팅 방식보다 어떻게 다를까?
  • RQ5LLM이 최소한의 재구성으로 다양한 DSL 간에 얼마나 잘 일반화할 수 있는가?

주요 결과

  • LLMLift는 텐서 처리 도메인의 23개 모든 벤치마크를 100% 정확도로 성공적으로 변환했으며, 최첨단 기호적 검증 리프팅 도구인 Tenspiler와 동일하거나 이를 초월하는 성능을 보였다.
  • LLMLift는 어떤 도메인 특화 최적화도 필요로 하지 않았지만, Tenspiler는 최적화를 켜면 23개를 모두 해결했지만, 최적화를 끄면 18개에서 실패했다.
  • LLMLift는 평균 95.89초의 변환 시간을 기록했으며, Tenspiler가 모든 최적화를 켠 상태에서 115.14초를 소요한 것과 비교해 더 빠른 성능을 보였다.
  • 단일 단계 프롬프팅 방식(증명과 불변식을 동시에 생성)은 23개 중 20개의 벤치마크를 해결했으며, 이는 이중 단계 방법이 생성된 프로그램 상태를 활용해 불변식 구축에 도움을 주므로 신뢰성을 향상시킨다는 것을 시사한다.
  • LLMLift는 TACO, DSP, BLAS, mathfu, UTDSP를 포함한 모든 평가된 DSL에서 100% 정확도를 기록했으며, 여러 벤치마크 세트에서 검증되었다.
  • 이전의 검증된 리프팅 도구에 비해 훨씬 적은 공학적 노력이 필요했으며, 수작업으로 작성된 규칙나 대규모 병렬 코퍼스 학습에 의존하지 않기 때문이다.
Figure 3 : End-to-End Lifting Example
Figure 3 : End-to-End Lifting Example

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

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

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

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