AIコーディングとは?
メリット・デメリット、おすすめのツールを紹介
2024年2月16日
ご相談・無料お見積り
限られた人材で効率良く開発を行うために注目を集めているのが、AIコーディング(コード生成AI)です。
近年、ソフトウェア開発現場では、生産性向上や競争力強化のために、開発スピードの向上が不可欠だと言われています。
しかし、労働人口の減少により、開発現場の人材不足は深刻化の一途をたどっています。
AIコーディングを導入することで、ソースコードの自動生成や自動補完ができるようになり、現場の開発者の作業を支援することにつながります。
この記事では、AIコーディングのメリットやデメリット、おすすめのツールについて紹介します。
AIコーディング(コード生成AI)とは
AIコーディングとは、JavaScriptやHTML、CSSなどのプログラミングコードをAIを活用して生成することを指します。
プログラミングに関する詳しい知識が少ない初心者でも、比較的簡単にコードの生成ができるため、開発スピードの向上につながります。
AI時代が到来すると言われるなか、開発現場でも大きな変化を迎えています。
AI技術を上手に活用することで、コーディング作業の大幅な効率アップ、劇的な開発スピード向上も期待できるでしょう。
AIコーディングの仕組み
生成AIとは、ディープラーニング(深層学習)技術によって大量のデータを学習し、もとのデータとの類似性を維持しつつも、まったく新しいオリジナルの成果物を生成するAIの手法です。
AIコーディングには、生成AIの一種である大規模言語モデル(LLM)が用いられ、単語や文章のつながりなどを正しく予測して、高精度なテキスト生成を行います。
大まかな仕組みは、以下の通りです。
① 入力されたプロンプト(テキストデータ)をトークン(最小単位)に分解する
② プロンプト内のトークンとの関連性を計算する
③ 特徴量を抽出する
④ 入力されたトークンの文脈から次に入力されるトークンを予測する
⑤ 入力された文の次のトークンの確率を出力する
⑥ 次に続く確率が高いと考えられるトークンを並べて、テキストを生成する
この大規模言語モデル(LLM)の仕組みは、開発タスクにも応用できます。
実際に、ソースコードの自動生成や自動補完などで応用したものが、AIコーディング(コード生成AI)です。
AIコーディングでできること
AIコーディングでは、以下のような作業をAIが行います。
- 設計書からソースコード自動生成
- ソースコードから設計書の自動作成
- ソースコードの自動補完
- テストコードの自動生成
- ソースコードの改善点の自動検出
- 別言語へのコード変換
コード生成におけるさまざまな作業をAIが担うため、現場の開発者の負担を大幅に減らし、開発スピードを速めることにつながります。
AIコーディングのメリット
実際にAIコーディングを利用している方からは、
- AIが出力してくれるので、ネットで実装方法を調べる手間がなくなった
- 自分のコードの文脈を理解して質問に回答してくれるのが嬉しい
などの声が寄せられています。
また、AIがソースコードの改善点を自動で検出し、修正方法も提案してくれるため、開発期間の短縮や品質の向上につながるでしょう。
AIコーディングのデメリット
AIコーディングは、開発現場の生産性アップやスピード向上につながる非常に便利なツールですが、注意点もあります。
現時点におけるAIコーディングは、「コード生成をAIに丸投げできる」というものではなく、あくまでも「コーディングの支援ツール」という位置付けで捉えることが望ましいでしょう。
AIが生成したコードに対しては、以下の3つの観点でチェックが必要です。
- 著作権
- セキュリティ
- 品質
一般的に利用されているLLMモデルはインターネット上に公開されているソースコードを学習対象とするため、そのまま利用すると意図せず著作権を侵害するリスクが存在するとされています。
他社の著作権を侵害することで、訴訟を起こされるリスクもあります。
加えて、LLMを提供するサービスのなかには、入出力内容を学習に利用されるものがあります。
情報漏洩を避けるためには、学習のために入出力情報の利用を拒否するオプトアウトを設定するなどの対策が必要になるでしょう。
AIコーディング支援ツールCody(コーディー)とは
Cody(コーディー)は、SourceGraph社が提供するオープンAIコーディングアシスタントです。
ソースコードの解析技術と大規模言語モデル(LLM)を利用し、セキュアな環境で既存のソースコードに基づいて開発に関連する回答を提供します。
Codyは、以下のような開発ニーズ・ユースケースに応えるAIコーディングツールです。
- クラウド型製品にインターネットアクセスしてデータを保存するのが不安であり、閉域でセキュアにAI利用したい
- 既存資産をお手本として、ソースコードやテストコードを省コストで開発していきたい
- レガシーな資産に対して、現状資産を把握して別言語への移行を行いたい
- 自社に最適な生成AIモデルを選択しながら、同じUIで開発したい
AIによるコーディングの代表格としては、GitHub向けの支援ツール「GitHub Copilot」がありますが、GitLabには対応していません。
そこで株式会社野村総合研究所(NRI)は、GitLab向けの支援ツールとして、GitHubに縛られずに利用が可能なCodyを採用しました。
GitとしてGitLabを利用している場合は、AIコーディング支援としてCodyの導入を検討してみてはいかがでしょうか。
Codyの主な機能
Codyの主な機能は、以下の通りです。※2024年1月時点
機能名 | 機能 |
---|---|
コード生成 |
チャットウインドウに指示を入力し、コードを出力させる その際、他のコードを参考にしてコードを生成する |
コード自動補完 | 一部のコードを書くと、残りのコードの候補を標示してくれる |
コードレビュー | チャットウインドウにレビュー項目を指示し、回答を得る |
コード改善 |
コードの保守性や性能を向上する提案を出力する コード改善の内容をコードに反映する |
自然言語の質問 | チャットウインドウにコードに関する質問を入力し、回答を得る |
設計書き起こし |
コードの記載内容について説明させる。 出力する項目はチャットで追加指定する |
別言語への変換 | 説明させたコードを別の言語で出力させる |
テストコード生成 | コードからテストコードを出力させる |
ヘルプ情報生成 | APIやCLIの説明コードを生成する |
カスタムプロンプト | 定型で伝えるチャット指示を登録しておき呼び出す |
Codyはこのような機能を搭載し、これまで開発者が行っていたコーディング作業を効率良くサポートしてくれます。
CodyとGitHub Copilotの違い
CodyとGitHub Copilotに、性能や品質面での大きな違いはありません。
Codyには、以下のようなメリットがあります。
- 過去のコード資産を流用できる
- 自社クラウド上に構築できる
- 閉域環境でのセキュアな利用が可能
- GitHubに縛られず利用が可能
GitHub Cop ilotは、GitLabに対応していない点がデメリットとして挙げられます。
GitLabを導入している開発現場の場合は、Codyの活用がおすすめです。
CodyとGitHub Copilotを比較
以下は、CodyとGitHub Copilotの比較表です。
比較項目 | GitHub Copilot | Cody | |
---|---|---|---|
ツールの主要用途 | コメントを書く→コード補完 | 既存コードを選択→チャットで質問→コード生成 | |
主要とする適用先 | PoC、新規開発 | 再構築、横展開、エンハンス/更改 | |
主要とする適用先 | AI/クラウド利用 | Azure Open Ai Service(GPT-4) | Anthropic Claude2 OpenAI GPT-4 |
AI/閉域利用 | 不可 |
専用線により可能 Azure OpenAI AWS Bedrock |
|
LLMのチューニング | 可(2024/2リリース予定のCopilot Enterpriseから可能) | 可 | |
IDE | VS Code,VS,Vim,Neovim,JetBrains suite ofIDEs,Azure Data Srudio | VS Code,Intelij,Neovim,Emacs | |
Repository | GitHub,ローカルに限り既存のものと連携可能 | GitHub,GitLabなど既存のものと連携可能 | |
主要機能 | チャット機能 | 有 | 有 |
質問へのコード入力 | ワークスペース上から可能 | Code Repository上から可能 | |
著作権 | 学習元ソースコードのライセンスリスク | 有 | 有 |
生成物の著作権チェック機能 | 有 | 無 | |
保証制度 | 手厚い | 限定的 | |
セキュリティ | 利用ログ保存 | 不可 | 可 |
オプトアウト設定(クラウドにログを保存しない設定) | 可 | 可 | |
質問と回答の内容がAI全体の学習データに利用されるか | 無効化可能 |
無効 ※学習に利用するAIモデルを自社で採用した場合を除く |
|
対応言語 | GItHub上にある全ての言語に対応 |
対応不可の木脚なし 公式に対応が明記されているのは25言語 |
GitHub Copilotにはない、Codyの魅力としては、閉域での利用ができる、利用ログの保存ができるなど、セキュリティ面に配慮した仕様であることが挙げられます。
また、生成AIの選択や自作コマンドの登録など、高度なカスタマイズ性を備えていることもCodyの魅力の一つです。
https://aslead.nri.co.jp/products/cody/
AIコーディング支援ツールCody(コーディー)の導入に関するお問い合わせ
Codyは、変化の早い生成AI動向に対応し続けられるAIコーディング支援ツールです。
NRIは、日本で初めてのCody代理店として、最先端のAIコードアシスタントを提供しています。
製品のサポートについては、asleadが日本語で迅速に対応いたします。
また、利用料金についても日本円での請求書払いが可能です。
asleadは、Codyをより便利に使うためのセミナーなども開催しております。
AIコーディング支援ツール導入をお考えなら、ぜひasleadまでお問い合わせください。