開発業務の効率化|エンジニア用生成AIの使い方、注意点を解説
近年は様々な場面で生成AIが利用されるようになってきました。皆さんの中にも日々の業務で利用している人がいるのではないでしょうか。今や当たり前のように利用されている技術であると表現しても過言ではありません。
以前は汎用的な生成AIが多くありましたが、現在は開発業務を効率化するエンジニア向けのものが登場しています。専門的な知識を有した生成AIであるため、業務を汎用的なものより強くサポートしてくれることが特徴です。今回はエンジニア向け生成AIの概要から使い方や注意点まで解説します。
エンジニア向け生成AIとは
生成AIが数多く存在することは理解していても、エンジニア向け生成AIについては、ご存知ない方もいるでしょう。これはその名の通りエンジニアが利用することを前提として開発された生成AIを指します。エンジニアの定義は幅広いですが、主にプログラマやコードベースで実装できる実装を担当するエンジニアと理解すればよいでしょう。
例えば、C言語やJava、Pythonのプログラミングを支援する生成AIが存在します。また、AWSのように基本的にはUIで操作するものの、JSON形式で記述できるものをサポートしてくれる生成AIも存在するのです。現状エンジニア向け生成AIとはいえども、利用できるエンジニアの種類は限られています。ただ、これからは幅広いエンジニアが生成AIを利用できるようになるかもしれません。
エンジニアが利用する生成AIのタイプ
一般的に生成AIといえば、質問に対して回答を示してくれるものというイメージが強いでしょう。例えば、「Hello Worldと表示するプログラムをPythonで記述してください。」と依頼すればそれに沿ったソースコードが示されるなどです。このような生成AIはもちろんありますが、実際の生成AIは、これよりも広い解釈が求められます。それらについて以下では順に解説していきます。
ソースコードの生成
エンジニアが生成AIを活用する際に思いつきやすいものがソースコードの生成です。何かしら実装したい内容を日本語で記述することによって、それに沿ったプログラムを生成してもらいます。大雑把な指示でアルゴリズムから考えてもらうこともあれば、ある程度のアルゴリズムを考えてそれをソースコードに起こしてもらうこともあるでしょう。どちらの場合でも「ソースコードの実装」という部分を自動化できるため、エンジニアの業務効率化に繋がります。
このようなソースコードの生成については、エンジニア向け生成AIに限らず、多くの生成AIが対応しています。例えば、有名な生成AIであるChatGPTは、エンジニア向けに開発されたものではありません。しかし、PythonやJavaなど、主要なプログラミング言語についてソースコードの生成が可能です。
ただ、ソースコードの生成を前提としたAIではないため、ソースコードの品質に問題が生じるかもしれません。
ソースコードのリファクタリング
すでに記述してあるソースコードをリファクタリングすることも考えられます。例えば、過去のエンジニアが開発したプログラムを軽量化するために生成AIを活用するなどです。エンジニアが自分で読み解いて対応することはできますが、大まかな部分を生成AIに任せてしまいます。
また、ソースコードの内容を理解して、コメントを付与してもらうなどの使い方も可能です。エンジニアによっては、コメントをあまり付与せず、他人が理解しづらいことがあります。これでは可読性が下がってしまうため、生成AIに挿入してもらうのです。インデントも付与してもらうことで、さらに可読性の高いソースコードが生成されます。
ソースコードの内容を理解してもらう際は、エンジニア用の生成AIを利用すべきです。十分な知識を持つAIに内容を読み解かせないと、事実とは異なったコメントが付与されてしまう可能性があります。
設計の骨格作成
要件定義や基本設計の段階で生成AIを活用することが考えられます。多くのAIは対話型になっているため、会話しながら要件や設計の細かい部分を詰められることが特徴です。
例えば、ChatGPTを利用すると、AIと会話形式で設計を進められます。実際にクライアントと会話しながら要件を詰めるように、やり取りしながら作成できるのです。しかも、生成AI側からいくつもの質問を投げかけてくれるため、自分では見落としている観点をフォローしてもらうこともできます。
エンジニア用生成AIの代表例
エンジニア用生成AIはいくつも登場しているため、それらの中から特に押さえてもらいたいものを紹介します。
Source Graph
Source Graphは、ソースコードを横断的に検索し、その内容を踏まえて結果を生成するAIです。例えば、特定のキーワードでソースコードを検索し、同じような使われ方を発見するなどの使い方が考えられます。ライブラリを呼び出している部分の実例を見つけ出すなどがあり得るでしょう。
使い方は2種類あり、Web版とVS Codeなどに埋め込んで利用する版があります。今回はWeb版を簡単に紹介します。Web版は画像のように検索フォームが用意されていて、ここに調査したいコードについて記述する仕組みです。
今回は「typescript」を検索してみましょう。
すると、画像のとおり生成AIがソースコードを分析して、必要な情報をレポートとしてまとめてくれます。
更に詳細な情報が必要ならば、ソースコードのリンクをクリックすることで確認が可能です。
Mintlify
ソースコードのドキュメンテーションを支援する生成AIです。理解しやすい使い方としては、ソースコードを読み取ってコメントを付与することが挙げられます。コメントによってソースコードの可読性を高めることも、ドキュメンテーションに該当する活動です。
利用する際には、ソースコードを読み取るためのGitHubアカウントが必要です。また、リポジトリにソースコードを保存しておく必要があります。なお、APIでデータを取得するため、全体へ公開されているリポジトリであることは求められません。実際に連携すると、以下のとおりMintlifyの画面で表示されます。
このようにソースコードが連携されれば、後は生成AIを動作させることでコメントの付与が可能です。また、コメントを付与したり修正したりした結果をGitHubへ簡単に保存できます。
CURSOR
CURSORは、自然言語で処理の内容を示すことで、それに沿ったソースコードを生成してくれるものです。VSCodeをフォークした体裁が採用されているため、日頃から利用している人は簡単に操作できるでしょう。また、Vimなど他のエディタを模したデザインを利用することも可能です。
インストールして簡単な初期設定を済ませると、エディタが表示されます。
ここで生成してほしいプログラムの概要について、自然言語で指示してみます。例えば円周率を表示するプログラムをお願いしてみましょう。
緑色でハイライトされている部分のように、ソースコードが生成されました。指示の出し方によっては思うような結果を得られませんが、簡単な文章であれば概ねソースコードにしてもらえます。
GPT-Engineer
GPT-Engineerは、アプリの仕様を伝えることによって、ChatGPTなどのAIを活用したソースコードの生成を支援してくれるものです。Pythonを利用したツールではありますが、生成するソースコードはさまざまな言語に対応しています。
他のツールとは少し異なり、まずPythonの開発環境を整えなければなりません。Pythonの公式サイトからインストーラーを入手して事前に設定を済ませましょう。また、ChatGPTを利用するためにOpenAIのAPIキーを取得する必要があります。手間がかかるため、他の生成AIで利便性が悪いときに活用すると良いでしょう。
エンジニアが開発の効率化に生成AIを利用する際の注意点
エンジニア業務へ生成AIを取り入れる際は、以下のポイントを意識するようにしましょう。
アルゴリズムの妥当性を評価する
多くの場合、生成AIを利用することで、目的を達成するためのソースコードなどを生成してもらえます。例えば、Pythonでソースコードを生成してもらったならば、Webサーバーに設置して動作させるだけで思うような結果を得られるでしょう。インプットとアウトプットだけを評価すると特に問題とはなりません。
しかし、生成されたアルゴリズムの妥当性については、その都度評価しなければなりません。例えば、必要以上にループが含まれていることで、処理速度が遅くなってしまうかもしれません。また、本来は宣言する必要のない変数が利用されていることも考えられます。人間が最終チェックすることが重要なのです。
生成されたソースコードの著作権
生成AIが提供するソースコードには著作権が認められる場合があります。そのため、使い方によっては法的なトラブルが発生することになりかねないため注意が必要です。
そもそも、生成AIは誰かが開発したプログラムを学習し、それをもとに新しいソースコードを生み出しています。この事前の学習に利用したソースコードには著作権が認められる場合が大半です。そのため、それらのソースコードから生成されたソースコードにも著作権が生じると考えられています。
これはエンジニア向けの生成AIに限らず、全ての生成AIが抱える課題です。業務改善など商用利用の際は特に注意しなければなりません。
情報漏洩が発生する可能性がある
生成AIに何かしらを指示する際には、プロンプトに情報を入力しなければなりません。ただ、このプロンプトに入力された情報は、生成AIが学習に利用していることがあり、情報漏洩に繋がる可能性があります。
例えば、システムの仕様について入力すると、その内容をAIが学習して別の人に表示してしまう可能性があります。もちろん「どのシステム・どの機能」という細かい部分まで情報漏洩が発生する可能性は少ないですが、知らず知らずのうちに漏洩することが考えられるのです。エンジニアが入力したアルゴリズムを意図せず他社が利用してしまうかもしれません。
情報漏洩によって直接的な被害が出る可能性は限られています。ただ、入力した内容が他者に利用されてしまう可能性は考慮しておかなければなりません。
プロンプトの運用が難しい
生成してもらいたい内容を指示するためには、プロンプトへの入力が必須です。ただ、どのような内容を入力するかは課題になりやすい部分であるため、注意しなければなりません。適切な指示を与えなければ、生成AIから想定しているものとは異なるアウトプットが提示されてしまいます。何度も修正の指示を出していると、結果的に生産効率が下がってしまうことになりかねません。
具体的にどのような指示を出せば良いかは、経験則で習得できると考えられています。基本的には端的でわかりやすい指示を出すことを心がけ、それでも問題が生じる場合には、工夫しなければなりません。例えば、箇条書きを利用したりアウトプットの例を具体的に示したりすることによって、生成AIの考えをサポートします。
なおどのようなプロンプトが最適であるかは、利用する生成AIに左右されます。エンジニア向けの生成AIとはいえども、それぞれの特徴を掴むことも重要です。
まとめ
エンジニアの業務を支援する生成AIについて解説しました。生成AIの種類は増え、現在はエンジニアに特化したものが登場しています。ソースコードの作成を支援したり専門的な情報を提供したりするなど、業務効率に大きく貢献してくれるものです。
ただ、他の生成AIと同様に、利用時にはいくつもの注意点があります。特に生成されるソースコードの著作権は問題視されやすい部分であるため、必ず気をつけなければなりません。紹介したとおり、エンジニア用生成AIはいくつもありますが、注意点を考慮して導入の可否を判断すべきです。