生成AIを使ったソフトウェア開発で気をつけたいこと
生成AIをソフトウェア開発で使う方法を研究しています。これまでの研究、調査や中間発表は別のページで紹介しています。本記事では、そうした活動で感じている生成AIを使ったソフトウェア開発で気をつけるべきことを説明します。
生成AIを使ったソフトウェア開発で代表的なのはソースコードの生成ですが、これ以外にも生成AIが使える活動がたくさんあります。たとえば、テストケースの生成、要求仕様の作成、マニュアルの作成等が考えられます。生成AIを使ったソフトウェア開発で注意をしないといけないことが2つあります。どちらも原因は生成AIの回答が正しいとは限らないことにあります。
1つは、誤った結果を自分でチェックできるような仕組みを設けておくことです。これは生成AIが誤った回答をしてきたとしても即座にその場で気づけて直せたり、生成AI以外の方法でチェックができたりするようにしておくことです。例えば、回答を即時に見てチェックします。コード生成やコード補完がわかりやすい例です。ここでのコード生成は、生成AIにプロンプトを与えてソースコードを書いてもらうことを指します。コード補完はコードの一部を途中まで入力するとその残りを生成AIが予測して提示することを指します。補完された瞬間に、間違っている場合にはすぐにわかります。
チェックができればそれでよいかというと、自分でわかっていること以上のチェックはできない点にも注意が必要です。生成AIが生成したコードには脆弱性が含まれる可能性が高いことを報告する論文があります。脆弱性に関する知識がなければ、こうしたコードをそのまま使ってしまう可能性があります。しかし、仕様通りに実装されていてテストで期待する動作をすることを確認できれば適切に開発できていると判断して、脆弱性に気づけない可能性が高まります。
もう一つ注意をしないといけないところは、生成AIが間違っているかどうかを人間が主体的にチェックし続ける仕組みやタイミングがあることです。生成AIに任せているときに生成AIの回答が誤っていると、本来なら気づける誤りに気づけず、誤りを見逃してしまいます。質問と回答を繰り返しながら洗練していくことはよいのですが、自分で回答が妥当かチェックするのではなく、チェック自体も生成AIに任せてしまうと主体的にチェックができなくなります。
これを防ぐためには、あくまでも生成AIへの質問と回答は補助であり自分が主体的になって作業を進める必要があります。丸投げをしないようにすると言い換えればイメージしやすいと思います。特に難しい内容、込み入った内容、調査が必要な内容に関しては、面倒と感じがちなので丸投げしたくなってしまいます。さらに、生成AIの回答を読むと信じていいのかなと思えるようなそれらしい回答になっていることが多いので、ついつい任せてしまいがちです。
そのため、どこかで生成AIの回答の裏取りをしたり、 実行結果、中間成果物を人間が確認して突き合わせをしたりする等して、自分で考えることが必要になります。ついつい任せがちなので、こうしたタイミングが作れないと、 誤りに気づけません。コード補完は自分が主体的でいられる好例です。あくまで補助的な支援であり、開発者が主体的であり続けられるからです。