AI の共同プログラマーは、恐れていた PlatoBlockchain Data Intelligence ほど多くのバグを生み出さないでしょう。 垂直検索。 あい。

AI の共同プログラマーは、おそらく恐れられていたほど多くのバグを生み出さないでしょう

GitHub Copilot などの次世代コード補完ツールを強化する機械学習モデルは、ソフトウェア開発者が安全性を損なうことなく、より機能的なコードを作成するのに役立ちます。

これは、ニューヨーク大学のコンピューター科学者グループが実施した 58 人を対象とした調査の暫定的な結果です。

In ArXiv 経由で配布された、Gustavo Sandoval、Hammond Pearce、Teo Nys、Ramesh Karri、Brendan Dolan-Gavitt、および Siddharth Garg は、大規模言語モデル (LLM) を使用して作成されたソース コードのセキュリティをどのようにテストしたかについて詳しく説明しています。

OpenAI GPT ファミリーのような LLM は、膨大な量の公開テキスト データ、または GPT の子孫であり GitHub の Copilot の基盤である OpenAI の Codex の場合は公開ソース コードでトレーニングされています。 そのため、人間のプログラマーが過去に犯したエラーを再現する可能性があり、「ガベージイン、ガベージアウト」という格言を示しています。 これらのツールが逆流し、悪いコードを開発者に提案し、開発者がそれらをプロジェクトに挿入するのではないかという懸念がありました。

さらに、コード セキュリティは文脈に依存する可能性があります。つまり、単独では安全なコードが、他のソフトウェアで特定の順序で実行されると安全でなくなる可能性があります。 そのため、これらのオートコンプリート ツールは、それ自体は問題なく、他のコードと接続されているため、攻撃に対して脆弱であるか、単に壊れているコードの提案を提供する場合があります。 とはいえ、これらのツールが実際に人間のプログラミング能力を低下させるわけではないことが判明しています。

ある意味で、研究者たちは自分たちの火を消していました。 約 XNUMX 年前、同じコンピュータ サイエンティスト XNUMX 人が、「Asleep at the Keyboard?」というタイトルの論文に寄稿しました。 GitHub Copilot のコード コントリビューションのセキュリティを評価します。」 その作品が見つけた 約40パーセント Copilot からの出力のうち、悪用される可能性のある脆弱性が含まれていた (CWE).

「XNUMX つの論文の違いは、『Asleep at the Keyboard』は完全に自動化されたコード生成 (ループに人間がいない) を対象としており、比較対象となる人間のユーザーがいなかったため、その方法については何も言えませんでした。人間が書いたコードのセキュリティと比較した副操縦士のセキュリティ」と、両方の論文の共著者であり、NYU Tandon のコンピュータ サイエンスおよびエンジニアリング部門の助教授である Brendan Dolan-Gavitt 氏は次のように述べています。 登録.

「ユーザー調査論文は、ユーザーの半分に Codex (Copilot を強化するモデル) の支援を受けさせ、残りの半分に自分でコードを書かせることで、欠けている部分に直接取り組もうとしています。 ただし、「キーボードで眠る」よりも狭い範囲でもあります。XNUMX つのタスクと XNUMX つの言語 (C でリンクされたリストを作成する) だけを調べました。」

最新のレポート「大規模な言語モデル コード アシスタントのセキュリティへの影響: ユーザー調査」では、以前の研究では Copilot などの LLM ベースのツールの使用を現実的にモデル化できていないことを、若干異なる一連の NYU 研究者が認めています。

「まず、これらの研究は、コード全体が LLM によって自動的に生成されることを前提としています (これをオートパイロット モードと呼びます)」とボフィンは論文で説明しています。

「実際には、コード補完 LLM は、開発者が受け入れる、編集する、または拒否することを選択する提案を提供して支援します。 これは、自動化に偏りがちなプログラマーがバグのある補完を素朴に受け入れる一方で、他の開発者はバグを修正するために節約された時間を使用して、バグの少ないコードを生成する可能性があることを意味します。」

第二に、LLM はバグのあるコードを生成することが示されていますが、人間もそうしていることを観察しています。 LLM トレーニング データのバグは人に由来します。

そのため、LLM で生成されたコードのバグを単独で評価するのではなく、機械学習モデルによって支援された人間の開発者によって生成されたコードが、独自に作業するプログラミングによって生成されたコードとどのように異なるかを比較することに着手しました。

NYU のコンピューター サイエンティストは、58 人の調査参加者 (ソフトウェア開発コースの学部生と大学院生) を募集し、提案なしで作業するコントロール グループと、OpenAI を使用して構築されたカスタム提案システムにアクセスできる支援グループに分けました。コーデックス API。 彼らはまた、Codex モデルを使用して、比較のポイントとして、与えられたプログラミングの問題に対する 30 のソリューションを作成しました。 このオートパイロット グループは、主に XNUMX 番目のコントロール グループとして機能しました。

Assisted グループと Control グループの両方が、Google や Stack Overflow などの Web リソースを参照することは許可されていましたが、他の人に助けを求めることは許可されていませんでした。 作業は、オープン ソースで構築された Web ベースのコンテナー内の Visual Studio Code で行われました アヌビス.

参加者は、C プログラミング言語を使用して買い物リスト プログラムを作成するように求められました。これは、「開発者が脆弱な設計パターンを不注意で C で表現するのは簡単である」ためであり、使用される C コンパイラ ツールチェーンは、C コンパイラ ツールチェーンと同じ程度にエラーをチェックしないためです。 Go や Rust などの最新の言語はそうです。

研究者がコントロール グループとアシスタント グループによって生成されたコードを手動で分析したところ、以前の研究とは対照的に、AI コードの提案によって事態が全体的に悪化することはなかったことがわかりました。

はっきり見えますが、詳細があります

「Codex の支援がセキュリティ バグの発生率を増加させることを示唆する証拠は見つかりませんでした」と論文は述べていますが、調査のサンプル サイズが小さいため、さらなる調査が必要であると指摘しています。 「逆に、Codex の支援により CWE/LoC [コード行] が減少することを示唆する証拠がいくつかあります。」

NYUタンドンのサイバーセキュリティ研究者で工学部の准教授であるSiddharth Garg氏は、電話インタビューで次のように述べています。 登録.

多くの統計的信頼性をもってこれを結論付けるのは難しい

それにもかかわらず、彼は、「データは、Copilot ユーザーの状況がそれほど悪化していないことを示しています」と述べました。

Dolan-Gavitt も同様に、調査結果について慎重です。

「ユーザー調査結果の現在の分析では、統計的に有意な違いは見つかりませんでした。これは定性的なものも含めてまだ分析中であり、特に小規模な調査 (合計 58 ユーザー) であり、ユーザーはプロの開発者ではなく、すべて学生でした」と彼は言いました。

「それでも、これらのユーザーの場合、このタスクでは、AI 支援によるセキュリティへの影響はおそらく大きくはなかったと言えます。非常に大きな影響があった場合、XNUMX つのグループ間でより大きな違いが観察されたでしょう。 現在、それを正確にするために、もう少し統計分析を行っています。」

それを超えて、いくつかの他の洞察が浮かび上がりました。 XNUMX つは、アシスタント グループの参加者がより生産的であり、より多くのコード行を生成し、割り当ての機能のより多くの部分を完了したことです。

「Assisted グループのユーザーは、より多くの機能テストに合格し、より機能的なコードを生成しました」と Garg 氏は述べ、この種の結果は、支援コーディング ツールを検討している企業がそれらを導入するかどうかを決定するのに役立つ可能性があると付け加えました。

もうXNUMXつは、研究者がコントロール、アシスト、およびオートパイロットグループによって生成された出力を区別できたことです。 懸念 教育現場での AI による不正行為について。

ボフィンはまた、ユーザー エラーのコンテキストで AI ツールを考慮する必要があることも発見しました。 「ユーザーは、バグを含む可能性のあるプロンプトを提供し、「完成した」プログラムに含まれるバグのあるプロンプトを受け入れ、後で削除されるバグを受け入れます」と論文は述べています。 「場合によっては、ユーザーはモデルによって提案されたよりも多くのバグを抱えてしまうこともあります!」

これらの線に沿ったさらなる作業を期待してください。 ®

タイムスタンプ:

より多くの 登録