こんにちは、藤田です。
今回もメルマガをお届けします。
プログラムのブラックボックス化は避ける
私はすでに半年以上ChatGPTを使って、ほとんど知識のなかったPythonやJavaScriptのコーディングを続けて来ています。
作って欲しい処理を言葉で伝えればプログラムコードを作ってくれるというすばらしいChatGPT、生成AIですが、まだまだ手放しで称賛するほどの域には達していません。
いくつか生じる問題の中野ひとつとしては、処理のブラックボックス化の問題があります。
ChatGPTを使うと処理の概要を伝えた結果がプログラムコードになってしまうので、このコードの中身を理解できていなくてもちゃんと動いてしまいます。
問題なく動いている分には何の問題もありませんが、動かなくなってしまうと処理の中身が理解できていないので困るわけです。
特によくわかっていない言語の場合は、生成されたコードを見てもすぐに理解できないので非情に困った状況になります。
また、処理が複雑になってくるとちゃんと動かなくなる傾向が高まるので更に困った状況になります。
ChatGPTも処理が複雑になってくると、デタラメなコードばかり作ってくれる傾向が強まります。
こんな状況になって、私もにっちもさっちも行かなくなって途方に暮れたことが何度もありました。
私がそういった状況に陥って、結局どうしたかというと生成された処理を理解することにしたのです。
せっかく生成AIに丸投げして開発しているのに、結局理解しなければならないなら意味がないのではと思われるかも知れません。
ただ、実際にはそんなことはなくて、生成された処理を逐一理解しながらでも十分に生成AIを使う価値はあります。
また、私が経験から学んだこととしては、シンプルな処理は丸投げで中身をほぼスルーしても問題ないが、ある程度複雑な処理になってきた場合は理解しないとお話にならないということです。
ただ、よく知らない言語を使っている場合に理解するというのは難しいとお考えになる方も多いかと思います。
ところが、ここもChatGPTの得意分野を活用することができて、それは生成されたコードをChatGPTに解説させることです。
プログラムコードの解説は、ChatGPTの得意分野の一部でとても理解しやすいです。
そして、コードを理解して誤っている箇所を特定し、正しい方向性を示した上でChatGPTに指示を出すと正しいプログラムコードが生成されて問題が解決するようになりました。
当初は、丸投げにこだわっていたので無駄な時間を使ってしまいましたが、まだまだ丸投げするにはChatGPTは過渡期と言えます。
ただ過渡期とは言え、十分に使えるので使い方の工夫で当面は乗り切れそうです。
ChatGPTの提案を無条件で受け入れない
ChatGPTの困った点として、自信満々でおよそベストなソリューションとは思えない提案をしてくることです。
当然、鵜呑みにしてそれを採用すると泥沼にハマります。
当初は、私も何度もハマりました。
そこで最近はChatGPTとのやり取りに工夫を加えて、提案は必ず複数してもらうようにしています。
そして、その複数の提案の内容をさらにChatGPTに詳しく解説させて、人による判断を挟むようにしています。
あまりにももっともらしい回答をしてくれるので、ついつい丸投げしたくなるのが今の生成Aiの危険なところです。
基本的には、けっこうボケた奴という認識で付き合わないと痛い目に遭います。
ただ、ボケていますがしっかり方向性を示して指示を出せば、いい答えをくれるわけなのです。
恐らくChatGPTは使えないと感じて使うのをやめてしまっている人は、この生成AIの特性を理解できなかった人なのでしょう。
解決しそうにない場合は丸投げをやめて方向性を示す
プログラム開発では、ChatGPTが提示したある方針に沿って処理の開発および改善を進めていくと途中で堂々巡りになることがあります。
つまり、いつまで経っても処理が完成しない状況です。
野球で言えば、ピッチャーが投げる球がなくなって打者を打ち取れなくなっているような状況です。
これは、先の提案を無条件に受け入れないと同じことですが、生成AIが提示した「ある方針」が間違っていたという状況になります。
生成AIは、作業を進める工程ではまったく柔軟性がないので、一度方針を決めるとその方針の中でしか答えを出せなくなります。
まさに、投げる球がなくなっている状態です。
そのため、そもそもの出発点に戻って方針を変える必要があるのですが、これは人が介在して指示を変えるしかないわけです。
このやり方は、結構使えるコツと私は考えています。
この生成AIの柔軟性がないという特徴が分かれば、ChatGPTの使い勝手は大いに変わります。
逆に言えば、ここで諦めて生成AIは使えないと考える人も多いのではということです。
私も何度も今の生成AIには限界なのだろうかと、疑心暗鬼になったことがあります。
ただ、実際はそうではありませんでした。
このタイミングで、使えないと判断するのはあまりにももったいないです。
丸投げで完璧に応えてくれると快感ですが、現時点の生成AIでは一部の指示に対してしかそこまでの能力はありません。
ただ、人が介在してサポートをすれば十分に活躍してくれるわけですからやっぱり使わない手はないわけです。