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よりも複雑であることが示唆されており、真の能力は予測できない

ブログ    

推薦する

コロナウイルス流行中のIoTの真実と虚構を区別する

モノのインターネットは長い間、インターネットの第2フェーズとして宣伝されてきましたが、現在、コロナウ...

RPAにより業務効率が大幅に向上、40%の企業が効果を確認

効率性、俊敏性、生産性に対する需要が高まるにつれ、新しいテクノロジーとアプリケーションが、企業と企業...

...

人工知能は人間の言語を習得したのか?見た目は騙されることがある

[[247418]]人工知能の分野における成果は、誤解されやすく、過大評価されやすい。このことは、人...

医薬品開発の近代化への道:AI技術の適用から得られた経験と教訓

医薬品の発見と開発の加速は大きなビジネスであり、業界の運営コストは高いため、急速に成長しているこの業...

...

Gemini vs ChatGPT: Google の最新 AI と ChatGPT のどちらが優れているのでしょうか?

Google は、最新かつ最も強力な AI モデルである Gemini 1.0 を発表し、AI の...

BaiduのNLP自然言語処理技術の最も包括的な分析

[[209979]] AI時代には、コンピューターが視覚、聴覚、行動、言語の知能を持つようになること...

...

社会的関心の強化に基づくビデオ推奨アルゴリズム

1. 推奨ステータスまず、レコメンデーションシステムの現状について簡単に紹介します。推薦システムは、...

人工知能があなたの仕事を奪い、ビッグデータがあなたを「裸」にしてしまう。私たちの未来はどうなるのでしょうか?

失業率が急上昇、それはAIのせいか? !科学技術の発展に伴い、高コストで非効率的な手作業が人工知能に...

機械翻訳: Google 翻訳がほぼすべての言語を翻訳できる仕組み

[[345484]]誰もが Google 翻訳をよく知っているはずですが、ほぼすべての既知の言語を私...

...

内部テスト中です! Word、Excel、Outlookに機械学習が搭載される

マイクロソフトは、機械学習を使用して人々がより効率的に仕事を遂行できるよう支援する、多数の新機能を ...

...