論文の概要: Learning to Improve Code Efficiency
- arxiv url: http://arxiv.org/abs/2208.05297v1
- Date: Tue, 9 Aug 2022 01:28:30 GMT
- ステータス: 処理完了
- システム内更新日: 2022-08-11 13:16:28.486252
- Title: Learning to Improve Code Efficiency
- Title(参考訳): コード効率を改善するための学習
- Authors: Binghong Chen, Daniel Tarlow, Kevin Swersky, Martin Maas, Pablo
Heiber, Ashish Naik, Milad Hashemi, Parthasarathy Ranganathan
- Abstract要約: Google Code Jamコンペティションから、大規模な競合プログラミングデータセットを分析します。
効率的なコードは確かに稀であり、中央値ランタイムと90分の1のソリューションとでは2倍の違いがある。
我々は、機械学習を用いてヒントの形で規範的なフィードバックを自動的に提供し、プログラマが高性能なコードを書くよう誘導することを提案する。
- 参考スコア(独自算出の注目度): 27.768476489523163
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Improvements in the performance of computing systems, driven by Moore's Law,
have transformed society. As such hardware-driven gains slow down, it becomes
even more important for software developers to focus on performance and
efficiency during development. While several studies have demonstrated the
potential from such improved code efficiency (e.g., 2x better generational
improvements compared to hardware), unlocking these gains in practice has been
challenging. Reasoning about algorithmic complexity and the interaction of
coding patterns on hardware can be challenging for the average programmer,
especially when combined with pragmatic constraints around development velocity
and multi-person development.
This paper seeks to address this problem. We analyze a large competitive
programming dataset from the Google Code Jam competition and find that
efficient code is indeed rare, with a 2x runtime difference between the median
and the 90th percentile of solutions. We propose using machine learning to
automatically provide prescriptive feedback in the form of hints, to guide
programmers towards writing high-performance code. To automatically learn these
hints from the dataset, we propose a novel discrete variational auto-encoder,
where each discrete latent variable represents a different learned category of
code-edit that increases performance. We show that this method represents the
multi-modal space of code efficiency edits better than a sequence-to-sequence
baseline and generates a distribution of more efficient solutions.
- Abstract(参考訳): ムーアの法則によって推進されたコンピュータシステムの性能改善は、社会を変えてきた。
このようなハードウェア駆動の進歩が遅くなると、ソフトウェア開発者が開発中のパフォーマンスと効率に集中することがさらに重要になる。
このような改善されたコード効率(例えば、ハードウェアの2倍の世代改良)の可能性を実証する研究がいくつかあるが、実際にはこれらの利点を解き放つことは困難である。
アルゴリズムの複雑さとハードウェア上のコーディングパターンの相互作用に関する推論は、平均的なプログラマにとって、特に開発速度とマルチパーソン開発に関する実用的な制約と組み合わせると、難しい。
本稿ではこの問題に対処する。
私たちは、google code jamコンペティションの大規模な競合プログラムデータセットを分析して、効率的なコードは非常に稀であり、中央値と90%のソリューションの2倍のランタイム差があることを確認しました。
我々は、機械学習を用いてヒントの形で規範的なフィードバックを自動的に提供し、プログラマが高性能なコードを書くよう誘導することを提案する。
これらのヒントをデータセットから自動学習するために,我々は,各離散的潜在変数が異なる学習されたコード編集カテゴリを表す,新しい離散的変分オートエンコーダを提案する。
本手法は,コード効率のマルチモーダルな空間を,シーケンス・ツー・シーケンスベースラインよりもよく編集し,より効率的な解の分布を生成する。
関連論文リスト
- Effi-Code: Unleashing Code Efficiency in Language Models [17.355845751737423]
Effi-Codeは、大規模言語モデルにおけるコード生成を強化するアプローチである。
Effi-Codeは、AIシステムのコード生成を改善するためのスケーラブルで汎用的なアプローチを提供する。
論文 参考訳(メタデータ) (2024-10-14T07:05:51Z) - CodeDPO: Aligning Code Models with Self Generated and Verified Source Code [52.70310361822519]
我々は、コード生成に好み学習を統合するフレームワークであるCodeDPOを提案し、コードの正確性と効率性という2つの重要なコード優先要因を改善した。
CodeDPOは、コードとテストケースを同時に生成、評価するセルフジェネレーション・アンド・バリデーションメカニズムを利用して、新しいデータセット構築方法を採用している。
論文 参考訳(メタデータ) (2024-10-08T01:36:15Z) - An Empirical Study on Self-correcting Large Language Models for Data Science Code Generation [1.335664823620186]
大規模言語モデル(LLM)は最近、ソフトウェア工学のタスクに多くの応用を進歩させた。
CoT-SelfEvolveは、自己修正プロセスを通じて、反復的かつ自動的にコードを洗練する。
論文 参考訳(メタデータ) (2024-08-28T09:19:09Z) - LLM-Assisted Code Cleaning For Training Accurate Code Generators [53.087019724256606]
コードの品質を調査した結果,より構造化され,読みやすくなれば,コード生成性能が向上することがわかった。
私たちは、これらの原則を使って既存のプログラムを変換する、新しいデータクリーニングパイプラインを構築します。
提案手法を2つのアルゴリズムコード生成ベンチマークで評価した結果,微調整のCodeLLaMa-7Bでは,元のデータセットの微調整に比べて最大30%性能が向上していることがわかった。
論文 参考訳(メタデータ) (2023-11-25T02:45:50Z) - Learning Performance-Improving Code Edits [107.21538852090208]
本稿では,大規模言語モデル(LLM)を高レベルプログラム最適化に適用するためのフレームワークを提案する。
まず、競争力のある77,000以上のC++プログラミングサブミッションペアによる、人間のプログラマによるパフォーマンス改善編集のデータセットをキュレートする。
提案手法は,検索をベースとした少数ショットプロンプトとチェーン・オブ・シンクレットを提案し,その微調整には,自己再生に基づく性能条件付き生成と合成データ拡張が含まれる。
論文 参考訳(メタデータ) (2023-02-15T18:59:21Z) - Chatbots As Fluent Polyglots: Revisiting Breakthrough Code Snippets [0.0]
この研究は、AI駆動のコードアシスタントを使用して、現代技術を形成する影響力のあるコンピュータコードの選択を分析する。
この研究の最初の貢献は、過去50年で最も重要なコードの進歩の半分を調査することであった。
論文 参考訳(メタデータ) (2023-01-05T23:17:17Z) - Enhancing Semantic Code Search with Multimodal Contrastive Learning and
Soft Data Augmentation [50.14232079160476]
コード検索のためのマルチモーダルコントラスト学習とソフトデータ拡張を用いた新しい手法を提案する。
我々は,6つのプログラミング言語を用いた大規模データセットにおけるアプローチの有効性を評価するために,広範囲な実験を行った。
論文 参考訳(メタデータ) (2022-04-07T08:49:27Z) - Rate Coding or Direct Coding: Which One is Better for Accurate, Robust,
and Energy-efficient Spiking Neural Networks? [4.872468969809081]
スパイキングニューラルネットワーク(SNN)は画像分類タスクに重点を置いているため、画像を時間的バイナリスパイクに変換するための様々なコーディング技術が提案されている。
これらのうち、レートコーディングとダイレクトコーディングは、実用的なSNNシステムを構築するための候補として期待されている。
我々は3つの視点から2つの符号化を包括的に分析する。
論文 参考訳(メタデータ) (2022-01-31T16:18:07Z) - Kernel methods through the roof: handling billions of points efficiently [94.31450736250918]
カーネル法は、非パラメトリック学習に対するエレガントで原則化されたアプローチを提供するが、今のところ大規模な問題ではほとんど利用できない。
最近の進歩は、最適化、数値線形代数、ランダム射影など、多くのアルゴリズム的アイデアの利点を示している。
ここでは、これらの取り組みをさらに進めて、GPUハードウェアを最大限に活用する解決器を開発し、テストする。
論文 参考訳(メタデータ) (2020-06-18T08:16:25Z) - Auto-Encoding Twin-Bottleneck Hashing [141.5378966676885]
本稿では,効率よく適応的なコード駆動グラフを提案する。
自動エンコーダのコンテキストでデコードすることで更新される。
ベンチマークデータセットの実験は、最先端のハッシュ手法よりもフレームワークの方が優れていることを明らかに示しています。
論文 参考訳(メタデータ) (2020-02-27T05:58:12Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。