生成AIは敵か味方か、ChatGPTと協働開発!
........
- 更新日
- 公開日
- 2023.11.01
ChatGPTは、チャットを行うだけでなくコード生成もできることから開発にも活用できます。
本記事では、実際にChatGPTを開発で活用してAIモデル開発を行った経験を基に利点、課題点をご紹介します。
1. AIじゃんけん開発裏話
読者の方から、「ChatGPTは開発に活用できるのか?」、「本当は大して役に立たないのでは?」などの多くの反響を頂きましたので、本記事ではAIじゃんけん開発の裏話として、「なぜよく知らない内容の開発でも上手く進めることができたのか?」についてお話ししていきます。
2. AIモデル開発にChatGPTを活用する!?
ChatGPTは一般の人々も利用でき、簡単にAIとコミュニケーションを取ることができます。一般的には、対話をしたり、質問に答えてもらう使い方が多いのではないかと思います。ここでは試しに、「ChatGPTは人にとって代わる脅威となりますか?」と質問をしてみました。
このように、ChatGPTはユーザの質問に対してチャット形式で応答してくれます。
ChatGPTによると、「多くの面でAIは人間に及ばない。また、適切な監視が必要で、ツールとしての側面が強調されるべき。」とのことでした。そのため、安心して開発のパートナーとしても活用できます。
今回はAIじゃんけんの開発経験から、ChatGPTを活用した開発手法について解説していきます。
3. AIじゃんけん概要
前回の記事で紹介したAIじゃんけんのシステム構成と概要です。
エッジAIとWebアプリケーションを組み合わせることにより、AIじゃんけんを実現しています。
4. ChatGPTによるプログラムの開発
それでは、ここからは具体的に「ChatGPTを使用してどのようにAIじゃんけんを開発したのか?」について事例を交えながらお話ししていきます。
※ ChatGPTへの質問・回答は要約している場合があります。
1)活用して助かった開発のポイント
ChatGPTを活用したことで助かったポイントは下記の3点です。
- 時間とコストの削減
- 質の向上
- 新しい業務の創出
1-1)時間とコストの削減
プログラムでエラーが発生した時の解析や修正をChatGPTに作業してもらうことで、時間とコストが劇的に削減されました。
ちなみに、ChatGPTが作成したプログラムでエラーが発生した場合、エラー内容の詳細をChatGPTに教えると、丁寧な謝罪もあります。(笑)
以下の例は、JavaScriptでマウスホイールの回転を検知するプログラムの動作確認をしたところ、上下が逆だったため、修正してもらった時のやり取りです。
1-2)質の向上
私が試験的に急いでプログラムを作成する場合、恥ずかしい変数名や関数名(詳細は内緒)だらけになることがあります。しかし、ChatGPTはわかりやすい変数名や関数名を付けてくれます。人が作成すると省略しやすいコメントもしっかり付けてくれるので、可読性が高いプログラムです。
いずれ、人がプログラムを理解する必要が無くなる気もしますが・・・。
また、処理も機能ごとに関数化(部品化)されるため、汎用性が高いです。
人間も時間をかければ、可読性、汎用性の高いプログラムを作成することはできますが、ChatGPTは短時間でプログラムを作成できることから、質の向上につながると言えるのではないでしょうか。
1-3)新しい業務の創出
ChatGPTによるプログラムの開発では、細かい仕様(指示)を与えて、アウトプットをもらうというのが基本的な活用方法だと思います。
ただ、私のようにJavaScriptの知識がない場合、細かい仕様(指示)を与えることができないので、「JavaScriptでxxxはできますか?」とChatGPTに相談することで問題を解決できることがありました。
「JavaScriptでxxxはできますか?」と相談することで、サンプルプログラムを教えてくれます。サンプルプログラムを基に具体的な仕様(指示)を与えていけば、プログラミング開発ができました。
また、今回の新たな発見として、大容量のパラメータファイル解析による問題点の抽出が可能ということが分かりました。以下は、その例となります。
AIモデル作成時、機械学習中にエラーが発生しました。Webでエラーの原因を調べると、設定ファイルが関係しているということまでわかりましたが、設定ファイルは800個程度の見慣れないパラメータが並んでいて、どこをどう修正すればよいかわかりませんでした。
ダメもとで設定ファイルをChatGPTにインプットしたところ、いくつか注意すべき点を教えてもらい解決することができました。
それらしきパラメータを修正し、機械学習 というのを何度か繰り返しましたが、解決できず約1週間を費やしてしまいました。もっと早くChatGPTに相談していれば・・・。
2)開発中に遭遇した困ったこと、課題
ChatGPTとの協働中に困ったことは下記の2点です。
- バグや単純なコーディングミスがある
- 感覚的な内容は満足する結果を得られない場合がある
2-1)バグや単純なコーディングミスがある
ChatGPTを使用してプログラム生成する場合、仕様を明確に指示できれば、概ね期待する結果を得られることはできました。ただ、指示した仕様通りに動かないバグもよく発生します。
(例:マウスホイールのイベント検知で上下が逆)
また、人間もよく間違えるようなコーディングミスをすることがあります。
(例:「==」とすべきところを、「=」としてしまう)
2-2)感覚的な内容は満足する結果を得られない場合がある
アウトプットが明確なプログラムの生成は得意ですが、「面白いコメントを考えて下さい」、「魅力的なキャッチコピーを考えて下さい」など、感覚的な指示は期待される結果とならないことがあります。
「面白いとはどういうことか?」を細かく指示できれば、期待する結果を得られるかもしれませんが、自分の感性を伝えるのも難しいと思います。
3)協働から得られた気づき
AIじゃんけんをChatGPTと協働してみて、下記2点の気づきがありました。
- 人間の能力が退化してしまうのでは?
- 人間とChatGPTで適切なコミュニケーションが必要
3-1)人間の能力が退化してしまうのでは?
ChatGPTの活用により、プログラミングの勉強をほとんどしませんでした。今までは、開発が終了するとプログラムを読む、書くという力が自然に付きましたが、今回はそのような能力が身に付きませんでした。
また、動作確認でエラーが発生したり、意図しない動きになった時、今まではデバッグ(不具合の原因を特定する作業)を行っていて、個人的にはこの作業が好きで得意でした。ChatGPTに頼ることでこの作業が不要になったため、寂しさも感じると同時に、デバッグ能力が退化したように感じています。
3-2)人間とChatGPTで適切なコミュニケーションが必要
「ChatGPTは使い物にならない」という評価をよく耳にしますが、個人的には「ChatGPTは使い物にならない」のではなく、「ChatGPTを上手く活用できていない」のではないかと思います。
ChatGPTを活用するには、「細かく指示する」、「やりたいことを具体的に伝える」ことが必要となります。ChatGPTを同じチームのメンバ(人)だと思って、 ChatGPTとコミュニケーションをしっかり取るという意識が必要だと思います。
5. 今後ChatGPTで挑戦したいこと
2023年3月1日、ChatGPTのAPIがOpenAIより公開されました。
APIとは、Application Programming Interface(アプリケーション・プログラミング・インターフェース)の略称で、ChatGPTを外部アプリに組み込むことが可能なツールです。
ChatGPT APIを利用して、AIじゃんけんのアップグレード(ChatGPT x AIじゃんけん)に挑戦しています。
ChatGPT と AIじゃんけん を組み合わせることで、「じゃんけんのお誘い言葉」や「勝ち・負け・あいこ の時のコメント」をChatGPTに考えてもらうことが可能となりました。
また、JavaScriptで音声入力を行い、「AIじゃんけんとの対話」というのも挑戦してみたいです!
開発途中の動画はこちらです。
また、ネガティブなことも書きましたが、ChatGPTを活用することで生産性は確実に向上するので、AIじゃんけんで得られたChatGPT活用術を社内(特に若手)に展開を考えています。
AIじゃんけんを通じ、ChatGPTを用いたプログラミング開発が可能であることを理解できました。
今後は、「メールや文章作成等の通常業務で活用することは可能なのか?」、「通常業務で使用する際の注意点は?」などを社内でプロジェクトチームを作り、検証していきたいです。
6. まとめ
知識のない分野の開発でも上手く開発することができたのは、テクノロジーの進化によるものです。ChatGPTを活用することで、知らない領域の作業でも短時間で行うことができました。AIテクノロジーと作業分担して、上手く付き合っていくためのリテラシーを高めていくことが今後重要になると思います。
エンジニア目線で考えると、プログラミング生成に関しては、ChatGPTに職を奪われるのは時間の問題であり、そういった意味では「ChatGPTは脅威である。」と言えるかもしれません。
その一方で人間の感覚に頼る部分は、まだまだChatGPTに任せられません。
今後、生成系AIがどこまでの力を付けるかは不透明ですが、しばらくは人間とChatGPTでコミュニケーションを取り、お互いの良いところを組み合わせ、協働するのがベストではないでしょうか。
今までプログラミングに使っていた時間をアイデア創出や検証の時間に使うことで、より良いものが創れるようになるのではないかと考えています。
※組み込みマイコンで実現するAIに興味がある方はこちら