AIを使ってプログラムを作っていると、何度も言いたくなる言葉があります。
「そこだけ直して」
今回作ったMT5用の半自動決済・管理補助ツール「Dynamic-Panel」でも、この言葉を何度使ったか分かりません。
こちらとしては、本当に簡単なつもりなんです。
「このボタンの動きだけ直して」
「この表示だけ変えて」
「それ以外は今のままで」
人間同士なら、かなり意味が通じそうな指示です。
ところがAI相手だと、そう簡単にはいきませんでした。
一か所直したら、別のところが変わった
たとえば、ある機能だけ修正してほしいとします。
AIにコードを渡して、
「ここの動作だけ変更してください」
と頼む。
修正版のコードが出てきます。
よし、直った。
……と思ったら、
別のところまで変わっている。
昨日まで正常に動いていた機能がおかしくなったり、表示方法が変わっていたり。
「いやいや、そこは触らなくていいんだよ」
ということが何度もありました。
また修正を頼みます。
すると今度は、さっき直った場所が元に戻る。
このあたりから、
AI開発って、コードを書かせることより変更箇所を管理する方が大変なんじゃないか?
と思い始めました。
「何を変えるか」だけでは足りなかった
最初のころは、修正したい場所ばかり説明していました。
でも途中から、それでは足りないと気づきました。
必要だったのは、
何を変えるか
だけではなく、
何を絶対に変えてはいけないか
まで伝えることでした。
例えば、
「この部分だけ変更」
「既存のボタン配置は変更しない」
「ほかの機能の処理は触らない」
「現在正常に動いている部分は維持する」
というように、残す部分まで明確にする。
面白いことに、AIを使うほど、人間側の指示がどんどん細かくなっていきました。
AIに任せるために、人間が今まで以上に仕様を考える。
ちょっと不思議な話です。
修正を繰り返すと、正解が分からなくなる
さらに厄介だったのが、修正版が増えてきたときです。
最初のコード。
修正版。
修正版その2。
さらに修正版。
気づくと、
「どれが一番まともだったっけ?」
となります。
そこで必要になったのが、基準を決めることでした。
正常に動いているものを基準にする。
一度確定した仕様は簡単に変えない。
大きく崩れた修正版は、無理に使い続けない。
ダメなら元に戻る。
当たり前のことに見えますが、AIがどんどん新しい案を出してくれる環境だと、この「戻る」という判断が意外と大切でした。
AIは悪くない。でも全部は任せられない
AIは、かなり優秀です。
MQL5のコードを書いてくれる。
エラーの原因を考えてくれる。
別の実装方法も提案してくれる。
私一人だったら完成までたどり着かなかったと思います。
ただし、
AIは「今までの完成状態を絶対に壊さない担当者」ではありません。
人間が、
「ここは完成」
「ここはまだ直す」
「ここから先は触らない」
と判断し続ける必要があります。
この経験から、私はAIを
何でも勝手に完成させてくれる機械
というより、
ものすごい勢いで作業してくれるけれど、方向確認が必要な相棒
くらいに考えるようになりました。
Dynamic-Panelでも、この繰り返しだった
Dynamic-Panelも、最初から今の形だったわけではありません。
欲しい機能を追加する。
動かしてみる。
修正する。
不要なものを削る。
操作方法をそろえる。
そして、また確認する。
この繰り返しでした。
完成した画面だけを見ると、途中の苦労はほとんど見えません。
でも実際には、
「そこだけ直して」
「そこじゃない」
「それは残して」
「昨日直したところを戻さないで」
そんなやり取りの積み重ねで出来上がっています。
まとめ
AIを使えば、プログラムを作るハードルは確実に下がりました。
でも、
修正を任せれば何でも思い通りになる
わけではありませんでした。
AIを使った制作で大事だったのは、
変更する場所を伝えること。
残す場所を決めること。
基準を固定すること。
そして、ダメな修正を捨てること。
このあたりは、実際に完成品を作ろうとして初めて分かったことでした。
今後もこのブログでは、Dynamic-Panelを作る途中で実際に起きた、
「AIあるある」
「失敗した話」
「どうやって完成まで持っていったか」
を少しずつ書いていこうと思います。
そして、
そんな修正の積み重ねで実際に完成したものがDynamic-Panelです。
現在ココナラで出品していますので、興味があればどんなツールになったのか覗いてみてください。