ChatGPT と生成型人工知能 (AI) が 2022 年に世間の注目を集めて以来、私は AI チャットボットがどの程度優れたコードを書けるかを探ってきました。当初、このテクノロジーは子犬に新しい芸をやらせるような目新しいものでした。
しかし、AI チャットボットが効果的な生産性向上ツールやプログラミング パートナーになり得ることを知り、私はこれらのツールをより徹底的にテストしてきました。時間をかけて、主要な AI 大規模言語モデル (LLM) のパフォーマンスを評価するために使用した 4 つの実際のテスト セットをまとめました。
ChatGPT を使用した書き方: 履歴書 | Excel 数式 | エッセイ | カバーレター
この記事は、私のテストを確認し、それをコピーして独自のテストを実行することができる、生きたドキュメントとなることを目指しています。今後も個別のテストとそのパフォーマンスを説明する記事のシリーズを続けていきます。しかし、今は、自宅 (またはインターネット接続が良好な場所) でテストに取り組み、一緒に遊ぶことができます。
テストを更新または追加した場合は、この記事も更新しますので、定期的に確認してください。
AI が任意の仕様や要件を満たしているかどうかを確認するためにパフォーマンスを評価することと、日常のプログラミング タスクに役立つかどうかを確認するためにテクノロジをテストすることの間には違いがあります。
最初は前者を試しました。いくつかの時間と日付の計算を加えた、典型的な「hello, world」出力を生成するプロンプトを実行しました。そのプロンプトは次のとおりです。
プロンプトを実行するには、[言語名] をテストしたい言語に置き換えます。私は ChatGPT でプロンプトをテストし、22 のプログラミング言語を指定しました。結果はここで確認できます:
ChatGPTを使用して、12の主要なプログラミング言語で同じルーチンを記述しました。結果は次のようになります。
ChatGPTを使用して、これらの10のあまり知られていないプログラミング言語で同じルーチンを作成しました。
これは楽しいテストでした。特に、より無名の言語や環境をテストに通すと、さらに楽しくなりました。もっと楽しみたいなら、[言語名] を「シェークスピア」に置き換えてください。そして、そうです、SPL (シェークスピア プログラミング言語) と呼ばれる、シェークスピア劇のソース コードとして表示される斬新な言語があります。実行はそれほどうまくいきませんが、これで、私たちが大いに盛り上がりたいときに言語設計者が何をするかがわかりました。
私が何週間もこの迷路に陥っていたことがお分かりいただけると思います。しかし、重要な疑問は、AI が現実世界のプログラミング タスクに役立つかどうかでした。
さらに: 最高の無料AIコース
私は実際の日々のプログラミング作業を利用してテストに取り組みました。たとえば、ChatGPT がパブリック ツールになってから間もなく、妻が仕事のプロジェクトに役立つカスタム WordPress 機能を求めてきました。そこで、ChatGPT でそれが実現できるかどうか試してみることにしました。驚いたことに、実現できたのです。
また、ChatGPT にコード セグメントを書き直してもらったり、困惑したコーディング エラーをデバッグしてもらったり、スクリプト ツールを使用してコードを書いたりすることもありました。これらは、実際の仕事の一環として解決しなければならなかった問題でした。
プログラミング言語は数多く存在するため、テストする言語の選択に頭を悩ませないようにしました。代わりに、仕事で使用している言語を選択しました。そのアプローチにより、AI が現実世界のヘルパーとしてどのように機能するかについて、より多くの情報が得られるからです。生産性テストは、PHP、JavaScript、および少量の CSS と HTML で行われます。
また、ChatGPTを使用してコードを書く方法
プログラミング フレームワークにも同じアプローチを使用しました。ほとんどの作業を WordPress で行っているため、使用しているフレームワークは WordPress です。テストの一部は、AI が WordPress API の独自の側面をどの程度理解しているかを判断するのに役立ちます。
最近、Mac スクリプトをいくつか作成したので、AppleScript と Chrome API を使用したテストを作成しました。追加のテストを追加した場合は、この記事に含めます。
次に、それぞれのテストについてお話しします。テストは4つあります。
これは、AI がユーザー インターフェイス コードを含む WordPress プラグイン全体を記述できるかどうかをテストします。AI チャットボットがこのテストに合格すると、Web 開発者のアシスタントとして基本的なコードの作成を支援できます。このテストについては、もともと「ChatGPT に必要な WordPress プラグインの作成を依頼しました。5 分もかからずに完了しました」という記事で説明しました。
実際のニーズ: 私の妻は WordPress の電子商取引サイトを運営しており、顧客向けの Facebook グループを管理しています。毎月、オンラインで見つけたサイトを使用して名前のリストをランダム化していましたが、リストの抽出が面倒でした。参加者の中には複数のエントリー資格を持つ人もいれば、エントリー数が多い人もいたため、リスト内で名前を分散させたいと考えていました。
この状況を改善するために、彼女は私に、ダッシュボードから直接簡単にアクセスできるように WordPress プラグインを作成するように依頼しました。必要な UI とロジックを備えた基本的なプラグインの開発には数日かかる可能性があり、私のスケジュールはいっぱいでした。そこで、私は AI に頼ることにしました。
また、ChatGPTを使用してアプリを作成する方法
ChatGPT が彼女のニーズを満たす優れた小さな WordPress プラグインを作成できることを発見した後 (彼女はまだそれを使用しています)、これは AI の優れたテストになるだろうと判断しました。
テスト データ: 次のプロンプトを 1 つのリクエストとして使用します。
プラグインが完成したら、次の名前をテスト データとして使用します (William Hernandez と Abigail Williams は重複しています)。
結果で注目すべき点: 新しい .php ファイルに貼り付けることができるテキスト ブロックが見つかります。ブロックには、適切なヘッダーと UI 情報がすべて含まれている必要があります。このコードでは、関連する JavaScript ファイルは必要ありません。
WordPress インストールにプラグインがインストールされると、次のようなダッシュボード メニューとユーザー インターフェイスが表示されます。
最初のフィールドに名前を貼り付け、ランダム化ボタンをクリックして、2 番目のフィールドで結果を探します。William Hernandez と Abigail Williams の複数のエントリがリスト内に分散されていることを確認します。
このテストでは、AI チャットボットがユーティリティ関数を更新して機能性を向上させる方法を評価します。このテストは当初、「OK、ChatGPT がコードをデバッグしました。本当です」という形で文書化しました。
実際のニーズ: 有効な金額を確認する検証ルーチンがありました。しかし、ユーザーからのバグ レポートで、整数のみが許可されていることが指摘されました (つまり、5 は許可されておらず、5.02 は許可されていません)。
また、ChatGPTプロンプトをより良く書く方法
おそらく 1 ~ 4 時間かかるコードの書き直しに時間を費やす代わりに、AI にそれを実行させました。
テスト データ: 次のプロンプトを 1 つのリクエストとして使用します。
結果で確認する内容: いくつかの考えられる失敗シナリオに対してコードをテストします。コードに英数字の値を指定して、失敗するかどうかを確認します。
コードが先行するゼロをどのように処理するかを確認します。セントの 2 桁を超える入力をどのように処理するかを確認します。コードが小数点以下の 1 桁をどのように処理するかを確認します。
小数点の左側の 5 桁または 6 桁を処理できるかどうかを確認します。
このテストでは、明らかな答えが間違っているため、WordPress に関する詳細な知識が必要です。AI チャットボットがこのテストに正しく答えられる場合、WordPress などのフレームワークであっても、その知識ベースはかなり完全です。私は当初、このテストを「OK、ChatGPT が私のコードをデバッグしました。本当です」という形で文書化しました。
実際のニーズ: 後で販売する製品用の新しいコードを書いていました。2 つのパラメータを受け取る関数と、コードに 2 つのパラメータを送信する呼び出しステートメントがありました。
問題は、エラーメッセージが繰り返し表示されることでした。
メッセージの顕著な部分は、ある時点で「1 が合格」と表示され、別の時点で「正確に 2 が予想されました」と表示されることです。呼び出しステートメントと関数定義を確認したところ、どちらの場所にも 2 つのパラメーターがありました。私はこれにかなり長い間悩まされていたので、ChatGPT に助けを求めました。
また、ChatGPTでソースと引用を提供する方法
私は、呼び出しを行ったコード行、関数自体、およびハンドラー (メイン プログラムのフックから呼び出された関数をディスパッチする小さなコード) を示しました。
テスト データ: 次のプロンプトを 1 つのリクエストとして使用します。
結果で注目すべき点: 明らかな答えは正しい答えではありません。実際には、add_filter 関数に正しいパラメータがありませんでした。私のコードでは、add_filter 関数は 4 番目のパラメータに 1 の値を指定しました (つまり、フィルタ関数は 1 つのパラメータのみを受け取ります)。実際には、2 つのパラメータが必要です。
この問題を修正するには、AI は add_filter 関数の 4 番目のパラメータを 2 に変更することを推奨し、2 つのパラメータを持つフィルター関数を正しく登録する必要があります。
さらに: 10時間ありますか? IBMがAIの基礎を無料でトレーニングします
私がテストした AI のほとんどは、この問題を見逃す傾向があります。呼び出し関数の別のパラメータを更新する必要があると考えます。そのため、これはひっかけ問題であり、AI が WordPress フレームワークの add_filter 関数がどのように機能するかを知る必要があります。
このテストでは、ほとんどのユーザーには知られていない 2 つのかなり特殊なプログラミング ツールを使用して AI チャットボットにプログラミングを要求します。基本的には、主要な言語を超えた AI チャットボットの知識をテストします。このテストについては、もともと「Google が Gemini Code Assist を発表。プログラマーの役に立つと慎重ながらも楽観視」で文書化しました。
実際のニーズ: Mac 用の自動化ルーチンを構築して、クリックやキー入力を節約したいと考えていました。Mac でさまざまな自動化を実行するために、Keyboard Maestro というツールを使用しています (強化版のショートカットと考えてください)。Keyboard Maestro は、オーストラリアの 1 人のプログラマーが作成した、あまり知られていないプログラムです。
この場合、開いている Chrome タブを調べて、現在アクティブな Chrome タブをルーチンで渡されたタブに設定するルーチンが必要でした。このタスクを実行するには、Keyboard Maestro で Chrome の API とインターフェイスするための AppleScript コードも実行する必要があります。
また、Chromeブラウザを整理する5つの方法
もう一度、私は ChatGPT にこのコードの作成を依頼しました。AppleScript の作成に数時間かかり、Chrome データにアクセスする方法を調べるのに費やす時間を節約するためです。
テスト データ: 次のプロンプトを 1 つのリクエストとして使用します。
結果で注目すべき点: これは、あまり知られていないプログラミング ツール (Keyboard Maestro)、AppleScript、Chrome API、およびこれら 3 つのテクノロジがどのように相互作用するかをテストするため、優れた AI テストです。
まず、結果の AppleScript が Keyboard Maestro からチャンネル名変数を取得するかどうかを確認します。これは次のようになります。
AppleScript の残りの部分はブロックに含める必要があります。大文字と小文字を区別しない必要があるため、大文字と小文字の置換を探すか、AppleScript では大文字と小文字を区別しない "contains" を使用します。
これらのテストを自由に実行し、選択した AI に組み込んで、結果がどうなるかを確認してください。これらのテストや、自分で開発した他のテストを使用して、AI が生成したコードをどの程度信頼できるかを把握してください。
これまで、ChatGPTに加えて次のAIをテストしました。
乞うご期待。テスト結果がさらに増えたら、この記事のリストを更新します。
プログラミング支援のためにこれらの AI を使用したことがありますか? 結果はどうでしたか? これらのテストを AI で試しましたか? どのような経験をしましたか? 以下のコメント欄でお知らせください。
私の日々のプロジェクトの更新は、ソーシャル メディアでフォローできます。毎週更新されるニュースレターを購読し、Twitter/X (@DavidGewirtz)、Facebook (Facebook.com/DavidGewirtz)、Instagram (Instagram.com/DavidGewirtz)、YouTube (YouTube.com/DavidGewirtzTV) で私をフォローしてください。
元記事: https://www.zdnet.com/article/how-i-test-an-ai-chatbots-coding-ability-and-you-can-too/