ChatGPT コード生成が 10% 増加しました。北京大学中国人第一著者:プロンプトを改良し、大規模モデルのコーディング機能を大幅に改善

ChatGPT コード生成が 10% 増加しました。北京大学中国人第一著者:プロンプトを改良し、大規模モデルのコーディング機能を大幅に改善

大規模モデルの時代では、高品質なコード生成が驚くほど強力になりました。

HumEval のテストで 67% に合格した GPT-4 から、CodeLlama などの最近のさまざまなオープンソースの大規模モデルまで、これらはコーダーにとって強力なコーディング ツールになることが期待されています。

しかし、現実には、プログラマーは要件を簡潔に表現しないため、誤解を招き、LLM が優れたコードを生成する能力が制限されます。

率直に言えば、大規模なモデルをコーディングする能力は、ヒントの質に依存します。

これに対し、北京大学研究所の研究チームは、LLM-ChatCoderを使ってチャットで要件を絞り込む手法を提案した。

論文アドレス: https://arxiv.org/pdf/2311.00272.pdf

具体的には、ビッグモデルのパフォーマンスを向上させながら、ビッグモデルがユーザーが以前よりも洗練され、完全な方法でニーズを表現できるようにガイドするチャットソリューションを設計しました。

大きなモデルは「コーダー」であり、あなたは「プロダクトマネージャー」です

ここに例があります。下の図に示すように、ユーザーは次のような要件を提示します。

データセット #MBPP/443 では、ChatGPT が Python 関数を記述して、指定されたリストから「最大の負の数」を見つける必要があります。

ChatGPT は、元の要件に基づいて、実際の値が最大となる負の数を正しく抽出できるプログラムを生成します。

しかし、sanitized-MBPP の作者は、「最大の負の数」は「絶対値が最大の数」を指すべきだと考えています。

したがって、「最大」という表現の曖昧さにより、LLM は誤ったコードを生成しました。

ここで、この問題は要件の改良を通じて解決できます。

要件の洗練とは、要件内の暗黙的な依存関係と隠れた構造を明らかにするプロセスです。より詳細な情報を提供することで、不完全な情報を補足し、要件の洗練プロセス中に曖昧さを排除することができます。

前の例では、大規模言語モデルに「最大」が具体的には「絶対値で最大」を指していることを簡単に説明でき、「最大」という単語の隠れた構造が明らかになります。

この洗練された要件により、大規模モデルは MBPP 作成者の期待に応えるコー​​ドを生成できます。

要件の改良には、人間のユーザーと大規模なモデルの連携が必要であることに注意する必要があります。

一般的に、要件エンジニアリングの文脈では、要件の洗練はソフトウェア ベンダー (コーダー) とソフトウェア カスタマー (ユーザー) 間の一連のやり取りを通じて実行されます。

ソフトウェアベンダーは、顧客要件の初期表現を分析し、改良点を提案します。サプライヤーが一連の需要精査を完了する前に、ソフトウェアの顧客はこれらの点に基づいて対応する必要があります。

ソフトウェア顧客もソフトウェアサプライヤーも、単独で需要精緻化を実行する資格はありません。

欠点は、顧客がソフトウェアの設計と開発のプロセスを十分に理解していないため、使用可能な要件仕様を作成できないことが一般的であり、ベンダーが顧客の問題とビジネス ドメインを十分に理解していないため、満足のいくシステムの要件を策定できないことが一般的であることです。

現在、ビッグモデルの時代では、人間のユーザーは「顧客」であり、LLM は「サプライヤー」です。

大規模モデルが要件の改良を通じてユーザーのニーズをよりよく満たすコードを生成できるようにするには、人間と LLM のコラボレーションのための方法を開発する必要があります。

ChatCoder: チャットの改善、コード生成

北京大学は、チャットを通じて要件を洗練させ、大規模モデルのコードを生成する新しい方法である ChatCoder を提案しました。

全体的なフレームワークを下の図に示します。これは非常に簡潔で、チャットを使用して LLM と人間がオンデマンドで連携して改良するのを支援します。

鍵となるのは、大規模な言語モデルとどのようにチャットするかです。

ChatCoder は、IEEE SRS に触発された新しいチャット モードを提供します。

次に、ChatCoder フレームワークを詳しく見てみましょう。

全体的な構成は2ラウンドの対話です。

フェーズ1: 言い換えと拡張

人間のユーザーが表現する要件は曖昧で不完全な場合があるので、ChatCoder はプロンプトを使用して、LLM がユーザーの元の要件を複数の観点から解釈することを要求します。つまり、完全な要件仕様が明確である必要があります。

改善が必要な不足している引数や野心的な引数については、ChatCoder はトレーニング データから学習した仮定に基づいて、大規模な言語モデルで拡張できるようにします。

人間のユーザーは、改良された仕様を確認し、その中のエラーを修正する必要があります。

フェーズ 2: 深掘りとループバック

このラウンドでは、ChatCoder は LLM に、Paraphrase と Exend の第 1 ラウンドでの情報損失に関する混乱と、さらに改善が必要な仕様の側面について人間のユーザーに質問するよう依頼しました。

人間のユーザーはこれらの質問に答え、洗練された仕様を修正するためにループバックする必要があります。

2 回の改良の後、改良された要件が取得され、大規模言語モデルに送信されて、ユーザーが望むプログラムが取得されます。

ChatGPTコーディング能力10%

実験のセットアップ

データセット: Sanitized-MBPP、HumanEval。

ベンチマーク: gpt-3.5-turbo、gpt-4。

研究上の疑問

ChatCoder を評価するために、研究者は以下の研究上の質問をしてテストしました。

1) ChatCoder は既存のコード生成モデルと比べてどのように機能しますか?

2) ChatCoder は、LLM と人間のユーザーが要件を改良するためにコミュニケーションをとるための効果的な方法ですか?

3) ChatCoder に人間が関与することで、どの程度の改善がもたらされますか?

ChatCoder のパフォーマンス

まず最初の問題を見ていきます。これは主に、ベースラインと比較して ChatCoder の全体的なコード生成パフォーマンスを評価することです。

表 1 に示すように、ChatCoder は要件を大幅に改良することで、LLM が生成したプログラムの実行精度を向上させることに成功しました。

たとえば、gpt-3.5-turbo の場合、Saniticed-MBPP での pass@1 は 57.04% から 71.25% に向上し、14% 向上します。

水平比較では、gpt-3.5-turbo と gpt-4 の場合、Saniticed-MBPP のパフォーマンス向上は HumEval よりも顕著です。

コミュニケーション効率パフォーマンス

2 番目の質問は、ChatCoder が大規模なモデルと人間が要件の改良を伝達するための効果的な方法であるかどうかを評価することです。

表 2 によると、要件の改良のための LLM との 3 つの通信方法はすべて、LLM のコード生成結果の改善に役立ちます。

この結果は、LLM を適用してコードを生成する場合、あらゆる形式の要件改良が有用かつ重要であることを示しています。

ChatCoder と比較すると、Free Paraphrase と Free QA は LLM に特定の種類の改良を実行するように指示しないため、改善度が低くなります。

人間の介入評価

ChatCoder における人間の介入の重要性は次のように評価され、その結果は表 3 に示されています。

ChatCoder は要件の改良を利用して大規模言語モデルのコード生成パフォーマンスを向上させるため、人間の介入が必要であり、無視することはできません。

ChatCoder のプロセスは、あいまいさがあっても、明示的に表現されていない特定の観点から要件の内部構造を明らかにすることです。曖昧さを解決する答えは、人間のユーザーだけが知っています。

ケーススタディ

以下に、著者らは、ChatCoder が LLM が洗練された要件を持つコードを生成するのにどのように役立つかを示すために、いくつかの実際のテスト ケースを提案します。

ページ数の制限により、研究者は機能要件に直接影響する入力、出力、目的に関する改良をカバーする MBPP から 3 つのケースを選択しました。

<<:  Google が Mirasol をリリース: 30 億のパラメータで、マルチモーダル理解を長時間動画にまで拡張

>>:  アルトマン氏は、GPT-5 が加速トレーニングを受けていることを初めて明らかにしました。 GPT-4よりも複雑であることが示唆されており、真の能力は予測できない

推薦する

...

米国の改正規則:自動運転車は人間の制御を必要としない

米道路交通安全局(NHTSA)は木曜日、自動運転車メーカーに対し、衝突基準を満たすために完全自動運転...

インタープリタパターンを使用して、要素のXPathパスを取得するためのアルゴリズムを実装します。

[[432233]]文章1. 通訳モード言語に対して、その文法表現(言語のルールを定義するために使...

RELX: 回答者の95%がAI人材の採用は課題であると考えている

海外メディアは、情報分析プロバイダーRELXの新しいレポートによると、回答者の95%が人工知能の人材...

超低消費電力センサーソリューションがスマートビルディングを実現する方法

現在、モノのインターネット(IoT)のインフラストラクチャはすでに非常に完成しており、その適用範囲は...

...

...

人工知能は将来どのように発展するのでしょうか?

20 世紀初頭から、ロボットが人間のように考え始めることができるかどうかについて、人々は疑問を持ち...

AIベースのクラウド管理ツールではコンテキストが重要

AI を活用したクラウド管理ツールはまだ導入の初期段階にありますが、IT 業界の専門家は、このような...

...

UiPath: 自動化とは、退化を拒否し、価値の高い仕事の創出に専念することです

【51CTO.comオリジナル記事】近年、RPAの開発はかつてないほど注目を集めています。 Mark...

この遠隔操作脳実験は成功したが、ネットユーザーを怖がらせた

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

概念から応用まで、人工知能の可能性

現在、AI の最大の可能性は、回帰や分類などの分析技術にあることが知られています。ニューラル ネット...

データによると、ChatGPTのトラフィックは8月末から増加し始めており、これは主に新学期の始まりによるものである。

9月21日、第三者機関の最新の推計によると、人工知能チャットボット「ChatGPT」のトラフィック...