AI 元SEママの情シスなりきりAWS奮闘記

「生成AIでコード生成」を初心者にも優しくする!ちょっと違った活用法とは?

2024年10月23日掲載

こんにちは。シイノキです。遊ぶにも体力がいるんだよなと痛感するお年頃。自分で入れた遊びの予定に体力が追い付きません。

生成AIの進化が止まりません。目を離したつもりもないのに、あっという間にできることが増え、「これ本当に生成AIで作ったの?」みたいなコンテンツが次々に出てきます。用途もどんどん広がっていますが、そのなかで今回取り上げるのは「コード生成」。生成AIに「どんなプログラムを作りたいか」を自然言語で伝えると、該当するコードを生成してくれる、というもので、エンジニアの開発効率が格段にあがると期待されています。GitHubのコーディングアシスタント機能「GitHub Copilot」も注目されていますし、AWSでも開発者向け生成AIとして「Amazon Q Developer」が提供されるなど、とにかく「イチから自分でコードを書くのではなく、まずはAIで生成し、それをたたき台に調整する」というやり方が増えているような印象です。

が!「できたコードが100%正しいわけではない」「自分でチェックして調整は必須」ということから、とても「プログラミング知識がなくてもオッケー」とは言えませんし、どうしたってエンジニア向けの機能、ということで、このコラムではあまり触れてきませんでした。ところが!今回、ソニービズネットワークスが標準提供するAWS運用管理ツール「クラウドポータル」にコード生成的な機能が追加されたとのこと!気になる機能について、クラウドポータルの開発責任者である松田崇さんに詳しく伺いました。

生成AIでAWS CLIのコマンドをサジェストする機能をリリース

―― 2024年9月のバージョンアップで、クラウドポータルにコード生成のような機能が追加されたと聞きました。具体的にどんな機能なのでしょうか?

松田 今回追加したのは、「カスタマイズAPI コマンドサジェスト機能」です。カスタマイズAPIというのはもともとある機能で、AWS CLIのコマンドを登録して、実行できる機能で、スケジュール実行にも対応しています。「RDSインスタンスの起動停止」や「リージョン間コピー」などニーズが高いものはテンプレートを用意して、選ぶだけで登録できるようにしていますが、基本的にはお客さま自身でコマンドを書いてもらうことになります。とはいえ、コマンドを書くのは難しいということで、生成AIを使って、やりたいことを選ぶとコマンドが提案(サジェスト)される機能を追加しました。

―― やりたいことを選ぶ、ということは一般的なコード生成とはちょっと違うのでしょうか?

松田 そうですね。やりたいことを自然言語で指示するのではなく、対象のサービスを選ぶと、対応するコマンド一覧が表示されるので、そのなから実行したいものを選ぶ。そうすると今度は該当コマンドのオプションが出てくるので、そのなかから選ぶとコマンドが生成される、という流れです。

1 AWSサービスの項目の中から 2 対象サービスを選ぶ 3 対応するコマンドが表示される 4 コマンドを選ぶと、オプションが表示され・・・ 5 オプションを選んでコマンド生成 6 コマンドが生成されます

―― なるほど。生成AIで直接コマンドを生成するのではないんですね。

松田 生成AIには、AWS CLIのコマンドリファレンスを参照させて、コマンド一覧・オプション一覧を生成させています。ただコマンドやオプションだけを抽出するのではなく、それぞれの概要文も生成AIで出しています。もとのリファレンスが英語なので、翻訳して要約する、といったイメージですね。

―― 「生成AIによるコード生成」とはちょっと違う使い方になりますよね?

松田 最後に選んだものを使ってコマンドを生成するときにも生成AIを使っているので、そのあたりは「コード生成」になるかもしれませんが、前半のプロセスはドキュメント要約といった方が近いです。

もちろん、コマンドやオプションを手作業でリスト化して、それを読み込ませて同様の機能を作ることもできるのですが、コマンドもどんどん新しいバージョンが出て変わっていきます。そうなるとリストを作り直さなければならず、工数がかかってしまう。ここを生成AIに任せることで、バージョンが変わっても参照先の変更だけで対応でき、複数バージョンを用意して切り替え、といった機能も比較的簡単に実装できます。管理やメンテナンス観点でのメリットが大きくなりますが、利用者にとっても「新しいバージョンがスピーディに反映される」「最新の変更をキャッチアップしてくれる」などの効果につながると考えています。

やっぱり「そのまま実行」はできない?気になる精度と実際の使い方

―― 「なんとなくこんなことやりたいけどな」を自然言語にするのも面倒なところがありそうですし、提示されたものから選ぶというのは、意外と便利そうです。「コマンドやオプションを順番に選ぶ」というステップを踏むことで、精度も高くなるのでは?と思ったのですが、実際どうなんでしょうか?

松田 最近は、自然言語の指示にもとづいて生成したコードもかなり精度が高くなっていると聞きますし、単純に比較するのは難しいのですが、一定の精度は出ていると思います。検証で100パターン以上は試しましたが、「コマンド自体が正しいか」という観点ではかなり正確でした。生成AIによるコマンド生成のプロセスにも、作ったコマンドが実行可能かをチェックするという工程を入れているので、一応チェックは通ったものが提示されるようになっています。

ただ、残念ながら100%の保証はどうしてもできませんし、「自社のAWS環境でそれが動くか」というと別問題になりますから、生成されたコマンドが正しいか、ちゃんと動くかは別途確認・検証してください、とお願いしています。

―― やはり「そのまま実行してOK」とはいかないんですね。コマンドなどの知識がないとハードルが高そうです。

松田 あくまでコマンドをサジェストする機能なので、「この機能さえ使えば、知識がなくても大丈夫」とまでは言えないのですが、AWS上でやりたいことがあっても、イチから調べるのはかなり大変です。まずはこの機能でコマンドを生成したうえで、それが正しいかを調べるという流れにすることで、かなりハードルが下がるのではと考えています。

エンジニアもコマンドの詳細を調べるときはリファレンスを見ますが、量が多く、しかも英語で書かれているので、ひとつずつ読み解くのはかなりの手間がかかります。この機能は、私自身でコマンドを作るときにも便利に使えるなと感じているので、エンジニアの作業効率化にも有効だと思います。

「生成してから調べる」プロセスで、初心者のハードルも下がるのでは

クラウドポータルは、「だれでも簡単」「GUIで設定するだけで運用・管理できる」を特長として謳っており、そのなかでカスタマイズAPIは“応用編”的な機能という位置づけでした。コマンドサジェスト機能でグッとハードルが下がったとはいえ、やっぱり「日付と時間を選んで設定すればOK」みたいな機能に比べると、ちょっと難しそう……という印象は否めません。ただ、企業の情シス担当者で、プログラミングは多少できる、でもAWSの知識と言われるとあんまり……といった方にとっては、最初の“とっかかり”としてかなり有効なのではないでしょうか。全部イチから調べるのはやっぱり大変ですし、提示されたものが正しいかどうかをチェックする方が遥かにラクそう。もちろん、AWSをゴリゴリ使いこなしているエンジニアの方にとっても、大体のコマンドを提示してくれる機能は便利なはずです。

生成AIのコード生成というと、とりあえず自然言語で指示をして生成AIにコードを作らせる、という話が主流だとは思うのですが、そこから間違いがないかをチェックして調整して、とやるとなるとどうにもハードルが高すぎる。特に、ある程度ルールが決まっているコマンドのようなものであれば、イチから生成するよりも、こういう機能にした方が初心者にとっても使いやすいのではと思いました。

ソニービズネットワークスでは生成AI活用に注力しており、今後も生成AI関連の機能追加や、サービス開発も進めたいとのこと!生成AI無料相談室も実施しているので、お気軽にご相談を!以上、シイノキでした。

「生成AIでコード生成」を初心者にも優しくする!ちょっと違った活用法とは?

SHARE
シェアシェア ポストポスト
「生成AIでコード生成」を初心者にも優しくする!ちょっと違った活用法とは?
SHARE
ポスト シェア