要約
コード アプリケーション向けの大規模言語モデル (LLM) の最近の進歩により、テスト ケースの生成から自己修復に至るまで、コード関連の困難なタスクに続く、ゼロショットの顕著な流暢さと命令が実証されました。
ただし、当然のことながら、モデルは、非常に低リソースのプログラミング言語 (VLPL) と呼ばれる、事前トレーニングでは表現されていないプログラミング言語で構文的に有効なプログラムを作成するのに苦労します。
VLPL は、内部ツール用のドメイン固有言語、レガシー言語用のツールチェーン、正式な検証フレームワークなど、重要な設定で使用されます。
自然プログラミング誘発と呼ばれる手法に触発され、LLM が使い方を「自然に」知っており、ターゲット VLPL に自動的にコンパイルできる中間言語を設計することを提案します。
LLM がこの中間言語の外側にあるコードを生成する場合、コンパイラー技術を使用してコードを中間言語のプログラムに修復します。
全体として、LLM が VLPL に対しても構文的に有効なコードを生成できるようにするアプローチである \emph{合成プログラミングの導出とコンパイル} (SPEAC) を導入します。
私たちは、UCLID5 形式検証言語のケーススタディで SPEAC のパフォーマンスを経験的に評価し、既存の検索および微調整ベースラインと比較して、SPEAC が意味的な正確さを犠牲にすることなく、構文的に正しいプログラムをより頻繁に生成することを発見しました。
要約(オリジナル)
Recent advances in large language models (LLMs) for code applications have demonstrated remarkable zero-shot fluency and instruction following on challenging code related tasks ranging from test case generation to self-repair. Unsurprisingly, however, models struggle to compose syntactically valid programs in programming languages unrepresented in pre-training, referred to as very low-resource Programming Languages (VLPLs). VLPLs appear in crucial settings, including domain-specific languages for internal tools, tool-chains for legacy languages, and formal verification frameworks. Inspired by a technique called natural programming elicitation, we propose designing an intermediate language that LLMs ‘naturally’ know how to use and which can be automatically compiled to a target VLPL. When LLMs generate code that lies outside of this intermediate language, we use compiler techniques to repair the code into programs in the intermediate language. Overall, we introduce \emph{synthetic programming elicitation and compilation} (SPEAC), an approach that enables LLMs to generate syntactically valid code even for VLPLs. We empirically evaluate the performance of SPEAC in a case study for the UCLID5 formal verification language and find that, compared to existing retrieval and fine-tuning baselines, SPEAC produces syntactically correct programs more frequently and without sacrificing semantic correctness.
arxiv情報
著者 | Federico Mora,Justin Wong,Haley Lepe,Sahil Bhatia,Karim Elmaaroufi,George Varghese,Joseph E. Gonzalez,Elizabeth Polgreen,Sanjit A. Seshia |
発行日 | 2024-10-31 16:54:30+00:00 |
arxivサイト | arxiv_id(pdf) |
提供元, 利用サービス
arxiv.jp, Google