ChatGPT でより良いコードを書く方法

ChatGPT でより良いコードを書く方法

翻訳者 |李睿

レビュー | Chonglou

コードの生成は、ChatGPT や指示に従うその他の大規模言語モデル (LLM) の強力なアプリケーションです。適切なヒントが与えられれば、大規模言語モデル (LLM) は、プログラマーが記述するのに何時間もかかるコードを生成できます。


ただし、大規模言語モデル (LLM) ではプログラマーの作業をすべて実行することはできません。複雑な問題を分解したり、論理的かつ構造的に考えたり、多層的な解決策を作成したりすることができません。一度に 1 つの命令を処理し、ユーザー プロンプトに続く可能性のある次のコードを予測して出力します。

ChatGPT の強力なコーディング機能を活用し、落とし穴を避けるための 4 つのヒントを紹介します。

確認できない場合はChatGPTを信用しないでください

ChatGPT のような大規模言語モデル (LLM) の顕著な特徴は、権威ある音声です。彼らは、たとえ答えが意味をなさなくても、常に自信を持って答えます。必然的に、 ChatGPT はいくつかの質問に対して、説得力はあるものの間違った答えを返すことがありました。

この記事の著者は、ChatGPT を使用する際の経験則として、自分が完全に理解し、検証できるトピックにのみ使用すると述べています。たとえば、彼は量子物理学について十分な知識がなかったため、量子物理学の説明を書くためにそれを使用しませんでした。しかし、ChatGPT は出力を完全にチェックして修正できるため、機械学習の基礎に関する興味深い記事を書くのに役立ちます。

同様に、ChatGPT を使用してコードを生成する場合は、完全に検証できるタスクのみを完了するようにしてください。 ChatGPT は無効なコード、あるいはさらに悪いことに、動作するが安全でないコードを書く可能性があります。 ChatGPT は自動化ツールであるため、記述に長い時間がかかったり、ドキュメント ページや StackOverflow などのオンライン フォーラムに何度もアクセスする必要があるような重労働を実行できます。たとえば、ソートアルゴリズム、 Python でWebサーバーを起動するコードの作成、データベース スキーマからの SQL クエリの実行、Matplotlib でのデータ視覚化コマンドの実行などを要求できます。

一度に1つのコードブロックを反復する

大規模言語モデル (LLM) では、推論と段階的な計画を必要とするタスクの処理が困難な場合がよくあります。したがって、ChatGPT が完全なプログラムや複雑なコード ブロックを正常に記述できるとは期待しないでください。しかし、これは ChatGPT が複雑なプログラミングタスクの完了を支援できないという意味ではありません。簡単なタスク(上記のようなタスク)を与えれば、それを完了できる可能性があります。

ユーザーはタスクをより小さなステップに分割し、一度に 1 ステップずつ ChatGPT に指示を出すことができます。成功するアプローチは、ChatGPT に、作成するプログラムのロジックの概要を段階的に提供することから始めることです。

これにより、大規模言語モデル (LLM) はより複雑なタスクに備えることができ、その後、大規模言語モデル (LLM) を徐々に促すことができます。つまり、ユーザーが推論を行い、ChatGPT が作業を実行します。ちなみに、アウトラインから始めて、順番に作業を進めていくこの方法は、特定の種類のエッセイを書くなどの他のタスクでも成功しています。

ステップバイステップのプロセスが明確にわからない場合は、ユーザーは ChatGPT 自体からサポートを受けることができます。エンコーディング セッションは、タスクを完了するための手順のリストを生成するように Large Language Model (LLM) に要求することによって開始されます。次に、必要に応じてアウトラインを変更し、最初のステップのコードを生成するように指示します。

ChatGPTへのフィードバックの提供

ChatGPT がすべてのステップでクリーンかつ安全で有効なコードを提供するとは期待できません。コードがレビューされ、統合開発環境 (IDE) に入力されると、修正や調整を行うことができます。その際、修正したコードを、該当する場合は説明とともに ChatGPT へのフィードバックとして提供することがベストプラクティスです。

注意すべき点は、ChatGPT はコンテキストに非常に依存しており、チャット履歴に基づいて動作が変化する可能性があることです。ユーザーはこれを活用できるため、フィードバックを提供したり、コード スニペットを修正したりすることが非常に役立ちます。

たとえば、ユーザーは「提供されたコードを次のように変更しました: [ここに変更したコードを挿入]。 (動作修正を挿入) を試して、これを繰り返してください」と言うことができます。これにより、ChatGPT を正しい方向に導き、将来のプロンプトに回答するときに間違いを繰り返さないようにすることができます。 (同様に、著者らは、エッセイの執筆を含む ChatGPT の他のタスクでもこのフィードバック アプローチをうまく使用しました)。

場合によっては、ChatGPT を使用して自分のコードに関するフィードバックを得ることができます。別のチャット セッションを開いて、ChatGPT に生成されたコードを提供し、改善または修正を依頼してみてください。時には、興味深い結果や新たな探究の方向性につながることもあります。

ChatGPTシーンのクリーンアップ

ユーザーが特に大きなタスクに取り組んでいる場合、特に ChatGPT を使用して多くの反復操作を実行すると、チャット ログが非常に長くなる可能性があります。ユーザーが使用するモデルによっては、大規模言語モデル (LLM) によって ChatGPT シーンのメモリが枯渇する可能性があります。 ChatGPT の無料バージョンには 4000 トークンのメモリがあります。 (言語タスクの場合、100 トークンは約 75 語をカバーします。プログラミングの場合、通常はそれよりはるかに少なくなります。)

成功する秘訣は、ChatGPT シーンを時々クリーンアップすることです。これを行うには、プロンプトを使用して新しいチャット セッションを開始し、タスクの概要、これまで完了した手順、これまでに生成したコード、および従う必要がある一般的なガイドラインを ChatGPT に提供します。次に、次のステップに進むように指示します。大規模言語モデル (LLM) との以前のやり取りから不要な情報を取り除くことで、より明確なシナリオが提供され、ChatGPT によって生成されたコードの精度が向上します。

大規模言語モデル(LLM)がプログラミングを変える

大規模言語モデル (LLM) 支援プログラミングの分野は急速に発展しています。たとえば、ChatGPT Plus には現在、プログラマーがコードを予測するのに役立つプラグインがいくつかあります。 GitHub Copilot や Amazon CodeWhisperer など、大規模言語モデル (LLM) に基づくその他のコーディング ツールは、プログラマーの速度と生産性を大幅に向上させるのに役立っています。検索拡張技術を使用すると、プログラマーは大規模言語モデル (LLM) の動作を、独自の専用コード ベースまたはトレーニング データセットに含まれていないライブラリに合わせてカスタマイズできます。大規模言語モデル (LLM) がプログラマーに何をもたらすのか、まだ研究が進められています。

原題: ChatGPT でより良いコードを書く方法、著者: Ben Dickson

<<:  マイクロソフトのGitHub Copilotサービスは大きな損失を被っていると報じられており、同社は独自のAIチップを開発してNvidiaに対抗する予定だ

>>:  ChatGPTのモバイル収益は9月に460万ドルという過去最高を記録し、成長疲れが現れ始めている。

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

古典的な論文を実装するための60行のコード:ポアソンディスクサンプリングを完了するのに0.7秒、Numpyよりも100倍高速

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

企業が募集している最も需要の高いAI関連職種トップ11

生成 AI は、ほぼすべての業界で急速に導入され、ビジネス界の状況を急速に変えつつあります。企業は、...

...

私の国における人工知能の発展に対する最大の圧力は、基礎理論と独自のアルゴリズムです。

業界では、人工知能はこれまで2世代を経てきたと一般的に考えられています。第一世代の人工知能は知識主導...

NetEase MediaのLiu Yandong氏:AIは読者にパーソナライズされたコンテンツをタイムリーに提供します

【51CTO.comオリジナル記事】 2017年12月1日から2日まで、51CTO主催のWOTDグロ...

機械学習を学ぶ前に、まずは確率論の基礎知識を習得する必要があります。

機械学習には非常に重要な中核となる基本概念が数多くあります。これらの概念を習得することは、機械学習や...

ホワイトボードに描くだけでコードに変換されます。AI は UI デザイナーに取って代わるのでしょうか?

「新製品のホームページについてどう思いますか?」あなたは、UI、フロントエンド、マーケティング、運...

世界はとても広い。AIがあなたと一緒に世界を旅します

[オリジナル記事は51CTO.comより] 私の周りには、「世界は広いから、外に出て旅をしたい」と言...

歴史上3大AI失敗事例を徹底解説

[51CTO.com クイック翻訳] 今日言及された事故のほとんどはAI自体と直接関係はありませんが...

Google が史上最強の人間の脳の「地図」を公開、3D ニューロンの「森」がオンラインで閲覧可能に

シナプスはニューラルネットワークの「橋」です。人間の脳には 860 億個のニューロンがあり、あるニュ...

500以上の研究と50以上のモデルを網羅したコードビッグモデルレビューがここにあります

BERT や GPT などの事前トレーニング済みのトランスフォーマーの登場により、言語モデリングは近...

Cloud Pak for Data 3.0は、企業のコスト削減と効率性の向上を支援し、AI導入を加速します。

[[335519]]感染症流行後も実体経済は厳しい状況が続いている。生産停止、収益の急激な減少、資...

...