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万ドルという過去最高を記録し、成長疲れが現れ始めている。

ブログ    
ブログ    

推薦する

ビジネスに大きな影響を与える 5 つの AI テクノロジー

企業は、画像認識、音声認識、チャットボット、自然言語生成、感情分析がビジネスの運営方法にどのような変...

Reddit ユーザーが「泣く」: 私はアルゴリズム エンジニアではなく、「パラメータ調整者」です

[[387580]]まず最初に質問させてください。あなたは自分が「スイッチャー」だと思いますか、それ...

...

「機械」が他より賢く、「技術」が他より劣っているという観察と思考

[[277716]] 9月21日、CCTV-1の「スーパースマート」番組では、杭州の霊隠寺に毎日訪れ...

...

メディア業界の自動化をリードする10のAI分野

データ爆発の時代では、データの収集だけでは不十分です。ビジネスを運営し、成長させるための洞察を得るに...

GPT-3とAlphaFold 2は2020年に衝撃を与えました。2021年のAIの最大のハイライトは何でしょうか?

2020年はニュース速報に事欠かなかったが、人工知能は依然として包囲網を突破し、主流の視野に入り込...

大型模型のレイアウトは何度も変わります!

ChatGPT の Android バージョンが登場します。 OpenAI は今年 5 月に早くも...

自動運転車が急カーブを曲がるときに車線を検知する3つの技術

自動運転車は、車線を正確に検出するために、さまざまな色や照明条件下で車線を認識する必要があります。車...

人工知能が美女を元の姿に戻す方法

誰もが美を愛しますが、誰もが生まれながらに美しさを持っているわけではないので、さまざまな種類の写真美...

顔スキャン決済は問題多し、アマゾンは「手のひら」スキャンを選択し無人スーパーで正式に商品化

さあ、手払いについて学んでみましょう〜アマゾンはこのほど、自社が開発した手のひら認識技術「Amazo...

...

人工知能ブームの背景にある産業チェーンのレイアウト分析

「新世代人工知能発展計画」の発表に伴い、国務院は我が国の人工知能発展計画を全体的に展開し始めました。...

ロボットは人間の労働に取って代わることができるでしょうか?アディダスは悲惨な教訓を学び、涙ながらにスマート工場を閉鎖した

科学技術は主要な生産力であると言われています。いつの時代になっても、この言葉は決して古くなることはあ...

...