ChatGPT を使用したコーディングを改善するための 6 つのヒント
ホームページホームページ > ブログ > ChatGPT を使用したコーディングを改善するための 6 つのヒント

ChatGPT を使用したコーディングを改善するための 6 つのヒント

Apr 05, 2023

PubMed Google Scholar でこの著者を検索することもできます

イラスト:プロジェクト・ツインズ

岩の下に住んでいない限り、ChatGPT についてはご存知でしょう。 人工知能 (AI) によって駆動され、カリフォルニア州サンフランシスコの OpenAI によって作成されたこのチャットボットは、ほぼあらゆるテーマに関するユーザーの質問 (プロンプトと呼ばれる) に対して、不気味に人間のような応答を返します。 ChatGPT は膨大なテキストのコーパスでトレーニングされており、テキストベースの会話に参加できるということは、ユーザーが応答を調整できることを意味します。 たとえ最初の答えが不安定であっても、最終的にはソフトウェア コードも含めて正確な結果が得られることがよくあります。

研究者は ChatGPT を使用して、コードのデバッグと注釈付け、ソフトウェアをあるプログラミング言語から別のプログラミング言語に変換し、データのプロットなどの暗記的な定型的な操作を実行できます。 3 月のプレプリントでは、このプログラムはスプレッドシートの操作など、バイオインフォマティクス入門コースの 184 タスクのうち 76% を 1 回の試行で解決でき、97% は 7 回の試行以内に解決できたと報告しています1。

これは、コーディングに不安を感じている研究者や、フルタイムのプログラマーを雇う予算がない研究者にとっては朗報です。彼らにとって、チャットボットは民主化ツールとなり得ます。

しかし、チャットボットは一見知的ではありますが、知能が高いわけではありません。 彼らは確率論的なオウムと呼ばれており、以前に見たものをランダムにエコーバックします。 シアトルのワシントン大学のコンピューター科学者であるエイミー・コー氏は、米国で長く続いているクイズ番組を引き合いに出し、このツールの限界を説明し、ソーシャルメディア・サイトのマストドンに次のように書いている:「ChatGPTは、ポップスを追うのをやめた絶望的な元ジェパディ出場者のようなもの2021年には文化は衰退しましたが、本当にゲームに戻りたいと思っており、意識、主体性、道徳性、身体的認知、感情的な内面生活を持たないロボットでもあります。」 (ChatGPT のトレーニングに使用されるデータは 2021 年までのみ延長されます。)

つまり、ChatGPT と、Microsoft Bing や GitHub Copilot などの大規模言語モデル (LLM) に基づく関連ツールは、非常に強力なプログラミング支援ツールですが、使用には注意が必要です。 ここではそのための 6 つの方法を紹介します。

チャットボットは、データのロード、基本的なデータ操作の実行、ビジュアライゼーションや Web サイトの作成など、小規模で個別のプログラミング タスクに最適です。 しかし、それはソフトウェアエンジニアリングとは異なります、とカナダのビクトリア大学のコンピューター科学者ニール・アーンストは言います。

ChatGPT: 研究の 5 つの優先事項

「ソフトウェア エンジニアリングは、単にプログラミング パズルを解くだけではありません」と Ernst 氏は説明します。 「テスト フレームワークについて考え、保守しやすいコードを記述し、システム構築に伴うトレードオフを理解する必要があります。」 - 速度と可読性の間のトレードオフなど。 「現在のツールがこれらの問題を解決しているとは思えません。」

そのため、プログラミング言語 Python のグラフ作成ライブラリである Matplotlib を使用してビジュアライゼーションを作成するための構文を覚えるなど、実行できるタスクは数多くあります。 その意味では、チャットボットは、プログラマー向けのオンライン質疑応答フォーラムである Stack Overflow への会話型インターフェイスのようなものです。 「これは、誰もが特に書くのを好むものではありません」とエルンスト氏は言います。「そのおかげで、データに関して発生する可能性のある分析上の難しい質問をする時間を節約できます。」

チャットボットは、コードが機能しない理由を説明するのにも優れています。 マサチューセッツ大学アマースト校のコンピューター科学者であるエメリー・バーガー氏は、これらの能力を活用していくつかの便利なツールを構築しました。 1 つは cwhy と呼ばれるもので、ChatGPT を使用して、プログラミング言語 C、C++、Rust で書かれたコードのコンパイラ エラーを説明します。 もう 1 つの ChatDBG はデバッグ用の会話型インターフェイスを提供し、3 つ目の Scalene は AI を使用してコードの最適化を提案し、パフォーマンスを向上させます。

チャットボットは、コードをあるプログラミング言語から別のプログラミング言語に翻訳することもできます。 パリのキュリー研究所の生物物理学者である Mathieu Coppey は、優先言語である MATLAB から Python への移行を支援するために ChatGPT を使用しています。 Google やオンライン フォーラムを使用すると、Python コードが機能するようになるまでに通常は数日かかります。 「今では 1 時間ほどでそれができるようになりました」と彼は言います。

チャットボットは自分が何を話しているのか必ずしも理解できるわけではありませんが、確かに理解しているように聞こえます。 場合によっては、AI が質問を理解できないこともあります。 場合によっては、間違った答えが得られることもあります。 コードの実行に失敗すると、そのような間違いは明らかです。 ただし、コードが実行されても間違った結果が得られる場合があります。

カリフォルニア大学デービス校の言語学者エミリー・モーガン氏が共著した研究2によると、チャットボットは、訓練された人間が書いたコードと同様に、彼女が「単純で愚かなバグ」と呼ぶものを作成することが多いという。 条件文で >= の代わりに > を使用するなど、これらの単一行エラーは修正するのは簡単ですが、見つけるのは困難です。 「正しいものと実質的にナンセンスなものとの違いを見分けるのに十分な知識がなければ、トラブルに巻き込まれる可能性があります」と彼女は言う。

ChatGPT と生成 AI が科学に与える意味

デンマークのオーフス高等研究所で古代文明を研究する複雑性科学者のイザ・ロマノフスカ氏は、ChatGPT を使用して NetLogo と呼ばれる言語でコードを作成しました。 NetLogo で記述されたオンライン コードは Python や R 言語に比べて少ないため、ChatGPT はそれほど流暢ではありません。 時々、AI が提案するコードに実際には存在しない関数を散りばめることがあると彼女は言います。これは幻覚と呼ばれることもあります。

肝心なのは、ChatGPT が提供するものを盲目的に受け入れるのではなく、注意深く読んでテストすることです。 「エッジケース」で期待通りに動作することを確認してください。たとえば、n 個の数値を並べ替えるアルゴリズムには n 番目の数値が含まれていますか? カナダのウォータールー大学のコンピューター科学者、パトリック・ラム氏は、「私はこれを信じられない以上は信用しない」と言う。

チャットボットは、トレーニング データを反映したコードを出力します。 それは必ずしも良いことではない、とコー氏は言います。 「ウェブ上で共有され、これらの [チャットボット] がトレーニングされるコードの総品質は、実際には非常に低いです。」

オンラインのランダムなコードが特に効率的または堅牢である可能性が低いのと同様に、チャットボットによって生成されたコードも同様です。 たとえば、大規模なデータ セットではうまく機能しない可能性があり、セキュリティ上の脆弱性が含まれる可能性があります。

AI は次の論文執筆に役立つでしょうか?

ニューヨーク大学のコンピューター科学者ブレンダン・ドーラン・ガビット氏は、2021年にGithubのCopilotプログラミングツールがリリースされたとき、彼と彼のチームは89のセキュリティ関連シナリオでそれをテストしたと述べた。 1 つは、SQL インジェクション攻撃として知られる、データベースを破壊する可能性のある SQL 言語を使用した不正なクエリをチェックする機能でした。 「約 40% の確率で、Copilot は脆弱なコードを生成していました。」 これは変動する目標です。Dolan-Gavitt がこれらのシナリオを、ChatGPT の基礎となる LLM の新しいバージョン (GPT-4 と呼ばれます) に適用したところ、エラー率は 5% に低下しました。

それでも、コードをチェックすることには価値があります。 ただし、アプリケーションについても考慮してください。すべてがミッションクリティカルであるわけではありません。 たとえば、データベースや視覚化ツールへの Web インターフェイスには、特別な注意が必要な場合があります。 しかし、プログラミングの問題に対する答えがどのようになるべきかを知っているのであれば、「とにかくやってみなさい」と、ニュージャージー州プリンストン大学のコンピュータ科学者サヤシュ・カプール氏は言う。「自分が間違っているかどうかをチェックするのは簡単だから」。

チャットボットベースのコーディングは、「単発のような経験ではない」とコー氏は言います。 会話です。 「何かを書き、何かを返し、懐疑的にそれを読み、より詳細を求め、何かを修正するよう求めます。」

モーガンタウンにあるウェストバージニア大学でバイオインフォマティクスの中核施設を運営する Gangqing (Michael) Hu 氏は、その反復ワークフローを利用して、バイオインフォマティクスの初心者がチャットボット プロンプトを最適化するために使用できる、OPTIMAL4 と呼ばれる手法を開発しました。 ユーザーは詳細なプロンプトを提供し、応答をテストし、チャットボットにフィードバックして応答を調整します。 これには、エラーに関する質問やプロンプト自体の調整が含まれる場合があります。 「重要なのはコミュニケーションです」と胡氏は説明する。

サウスダコタ州立大学(ブルッキングズ)の生物情報学者、Xijin Ge氏は、行き詰まったら設定を調整してみてはどうかと提案する。 たとえば、ChatGPT の「温度」設定は創造性を制御します。温度が高いほど、出力はより創造的になります。 「うまくいくこともあります」とGe氏は言う。

しかし、常にそうとは限りません。場合によっては、「介入して引き継がなければならない場合もあります」とコー氏は言います。

チャットボットは人間ではありませんが、そのように扱うと役立つ場合があります。 「この AI を夏のインターンとして扱ってください」と Ge 氏はアドバイスします。Ge 氏は、勤勉で人を喜ばせることに熱心ですが、経験が浅く間違いがちな大学生です。

曖昧さを避け、問題を小さな部分に分割することを、ニュージーランドのオークランド大学のコンピューター科学者であるポール・デニー氏は提案しています。

ネイチャーテックハブ

もう 1 つのヒント: チャットボットに、Python に堪能な生物学者などの役割を引き受けるよう指示します。 使用するツールまたはプログラミング ライブラリを指定します。 このようなディレクティブは、チャットボットが「正しい確率空間に入る」のに役立ちます、つまり、プロンプトに従う可能性が最も高いテキストに集中するのに役立つとコー氏は言います。

たとえば、Hu の研究 4 の 1 つのプロンプトは ChatGPT に次のように尋ねました。「ChIP-Seq データ分析に精通した経験豊富なバイオインフォマティシャンとして行動してください。できるだけ少ない行数でコードを書くことで私を支援してください。要求されたらスレッドをリセットしてください。返信してください。」はい「理解できれば。」

また、可能であれば、開始コード、コメント、および予想される結果を提供してください。 「サンプルは、ChatGPT が正しい方向にターゲットを絞るのに非常に役立ちます」と、ミズーリ大学コロンビア校のコンピューター科学者 Dong Xu は言います。

最後に、LLM は常に進化し、より強力になっています。 研究者にとっては朗報だが、注意が必要だ。 プロンプトの長さが長くなり、より微妙な応答が可能になりました。 そして、新しいツールは常に登場しています。 コード インタープリターと呼ばれるプラグインの 1 つは、ChatGPT をデジタル データ アナリストに変え、ユーザーがデータ セットをアップロードし、データについて質問し、結果をダウンロードできるようにします。 AI に関するあるブロガーはこう言いました。「データと会話しているようなものです。なんて素晴らしいことでしょう?」

自然618、422-423 (2023)

土井: https://doi.org/10.1038/d41586-023-01833-0

ピッコロ、SR 他プレプリントは https://arxiv.org/abs/2303.13528 (2023) にあります。

ジェシー、K. 他プレプリントは https://arxiv.org/abs/2303.11455 (2023) にあります。

ピアース、H.ら。 https://arxiv.org/abs/2108.09293 (2021) でプレプリント。

シュー、E.ら。 いくら。 バイオル。 https://doi.org/10.15302/J-QB-023-0327 (2023)。

記事 Google Scholar

リファレンスをダウンロードする

ChatGPT: 研究の 5 つの優先事項

ChatGPT と生成 AI が科学に与える意味

AI は次の論文執筆に役立つでしょうか?

教育において責任を持って ChatGPT を使用する方法

言語生成 AI が科学をどのように変革できるか

ネイチャーテックハブ

Nature が画像やビデオでの生成 AI の使用を許可しない理由

社説 07 6月23日

ChatGPT: 責任ある使用のための標準報告ガイドライン

通信 06 6月 23

転移学習によりネットワーク生物学の予測が可能になる

第31条 5月23日

量子機械学習に向けて

スポットライト 24 5 月 23 日

量子コンピューター: 何に役立つのですか?

スポットライト 24 5 月 23 日

量子コンピューターの設計図を書き換える

展望24 5月23日

Nature が画像やビデオでの生成 AI の使用を許可しない理由

社説 07 6月23日

ChatGPT: 責任ある使用のための標準報告ガイドライン

通信 06 6月 23

転移学習によりネットワーク生物学の予測が可能になる

第31条 5月23日

キール、シュレースヴィヒ ホルシュタイン州(DE)

キールヘルムホルツ海洋研究センター (GEOMAR)

2023年7月8日(土)東京 2023年7月9日(日)大阪 イベント参加登録受付中!

東京と大阪、日本

自然のキャリア

これは全教職員と学生の共同の努力と、社会のあらゆる分野からの多大な支援に基づいています。

中国、北京

北京師範大学水科学学院

動植物保健庁 (APHA) は、環境・食糧・農村省の執行機関であり、動物と植物の保健庁を代表して活動しています。

サリー州アドルストーン

動植物保健庁

最先端の科学技術が影響力のある洞察の発見を推進する学際的な研究組織

上海浦東新区

ベイジーン研究所

618