AIにコーディングを頼む

AIにコーディングを頼む

記事
IT・テクノロジー
AIにコーディングを頼むと、ある程度のプログラムを書いてくれます。実際にうまく利用すると、プログラムの開発効率は大きく向上します。AIを上手に利用して、そうした恩恵を受けている開発者もたくさんいます。

プログラミングを勉強しなくてもいい?

AIにプログラミングを頼めるならば、プログラミングを勉強しなくてもプログラム(アプリ)が作れるというように感じる方も実際増えていると思います。ある程度、何がしたいか具体的なアイディアを持っていれば、AIを利用してアプリを作ることが可能になってきています。インターネットを見ていると、プログラミングの経験が殆どなくても、プログラムが作れたというような投稿も見られます。それでも、プログラミングの知識はあった方がより良いプログラムの開発ができますし、そうした知識なしでプログラムを開発するにはリスクもあります。実際、例を挙げると色々な観点でプログラミングの知識が必要な点は出てきますが、この記事では、その中の一つを紹介することにします。

AIの答えは毎回同じではない!

今回の記事のテーマは、「AIの答えは毎回同じではない」という点について描いてみたいと思います。確かに、現在の生成AIの一つの特性という事になりますが、実際は、「毎回同じではない」にはいくつかの重要な内容が含まれています。試しに、AIに同じ質問を聞いてみてください。全く同じ質問だったとしても、返ってくる答えは毎回違っていることに気づくのはないでしょうか?当然、AIのプラットフォーム(ChatGPTとかGeminiとか)が違えば答えが違うのは当然です。でも、同じプラットフォームに全く同じ質問をしても、違う答えを返してくる場合が多いということを認識する必要があるという事です。もちろん、質問内容が明確で、あまり他の選択肢がないような場合は、ほぼ同じ答えを得る場合が多いかと思います。ところが、プログラミングの内容のように、ある程度前提条件がたくさんある場合には、当然、答えの幅も広くなるので、毎回違う答えが出てくる場合が多くなります。特に、前提条件を完全に与えていない場合、曖昧な部分がどうしても残ります。その場合、AIが勝手に推測して答えを作る場合が多くなります。人間の場合は人によりますが、答えを出す前に、確認したり、抜けている点を指摘したりする場合が多いと思いますが、AIはとりあえず回答を作る場合が殆どです。さらに、与える質問の内容がほぼ同じでも、書き方が少し変わるだけで、結果も変わることが多くなります。

何が違うのか?

そこで気になるのが何が違うのかという事になります。これにはいくつかのパターンがあります。特にプログラミングの場合には、大きく分けて2つのケースに分けられます。
一つ目は、「間違い」のケース。これは、AIの答えでよくある事ですが、間違った答えを提示するケースです。完全に間違いのケースは少ないように思いますが、意図するのとは違う結果を出すコードを提示してくるケースがあります。これは、与える情報に抜けがあったり、間違いがある場合に多く発生します。特に、幾つかの例を提示した場合などに多くなります。実際には、いくつかの違ったパターンがあって、与えられた例の場合は期待通りの動作をしますが、例が与えられなかったパターンで、一般的な説明で明確でない部分がある場合、あるケースでは期待通りの動作をしないコードが示されることがあります。人間が書くコードでも起きることですが、AIのコードを完全に理解しないで使うと、こうしたバグを含んだコードになるケースが多くなります。特に、自分でコードを書いていない分、コードの中身を理解していないので表面化しないで後で問題になることが多いケースです。回避策としては、コードの中身を理解して確認するか、コードのテストの過程で発見するというのが一般的です。何れにしても、テストでカバーするか、コードの内容を理解して検証するという事が必要で、実際はプログラミングの知識なしにこれらを実行するは難しいと言えます。

二つ目は、プログラムの実装には複数の違ったやり方が存在するという事です。これは、経験のあるプログラマならば常識ですが、その中で一番「良い」方法を選ぶ必要があります。その過程で当然、プログラミングの知識が要求される事になります。この場合も、違うやり方の中に、最初に挙げた、「間違い」を含む可能性は常に考慮すべきで、仮に間違えている場合でも、AIの答えは「如何にも正しいような説明」がなされるのが普通です。

何が必要か?

では、プログラミングの勉強して一定レベルの知識をつけて利用すれば良いという事になりそうです。しかし、実際はちょっと違ってきていると言えます。従来のステップとしては、プログミング言語を習得、基本的なデータ構造やアルゴリズムをプログラムを作成する過程で学んで知識を広げて行くというような流れで学習したかと思います。AIが活用できる現在は、少し違う流れになってきています。
基本的に、AIが提示したプログラムを読む知識は必要で、プログラミング言語の知識も必要なのは確かですが、プログラミングの書式を見ながら、AIに質問するという過程で理解を深めて行くというアプローチの方が、短期で必要なスキルを身につける事ができます。AIのおかげで熟練したプログラマ(ソフトウエアのエンジニア)でも、知らない方法をAIから提示される場合も多くなっています。その都度知らない分野をAIの力を借りて習得することで今まで以上に自分の知識を広げられる機会が増えています。
そこで、大事なのは、AIの提示してきたプログラムを理解するのにもAIを活用して、理解を深めた上でAIの提示したプログラムを評価して行くというのが求められます。

AIは嘘もつく!

一方で、AIは嘘をつくという事も忘れてはいけません。
AIは一見、正しいような説明をして、間違ったことを如何にも正しいように説明するケースもたくさんあります。それらを検証して、見破ることも同時に求められます。特に、新しい分野、未知の分野はだまだれやすいので細心の注意が必要になってきます。
そこで大事なのは、プログラムの検証(テスト)です。テストによって、プログラムの動作が意図したものかどうかをしっかり確認する動作が必要になってきます。動作がおかしいのが分かれば、その原因を調べることになります。いくらAIがそれらしい説明をしたとしても、これは何かが間違っているのは確かです。そうすることで、間違いを見つけて、何が原因かを確かめることで、AIに提示した方法、やり方を初めて理解して、正しい理解に繋げる事ができます。

まとめ

ここでこの記事のまとめをしておきます。
* AIの答えは毎回違う可能性がある
* AIを利用して知識を広げる
* AIの答えを検証する方法を準備して確認する

次回はプログラムの検証方法についての話を始めようと思います。




サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す