1. TOP
  2. ブログ
  3. コード生成AIを利用したコーディングの未来とは

コード生成AIを利用したコーディングの未来とは

まるで人間と会話しているかのように、質問に対する回答を自然な文章で返してくるChat GPT。AI研究の発展により急速に実用化が進んでいる、今一番ホットな分野です。
この言語モデルをベースにすることで、コーディング実務でも大きな変化が訪れつつあります。
今回の記事では、現時点での情報をまとめながらコーディングの未来について考察してみましょう。

この記事でわかること
 ・生成系AIがコーディングに適している理由について
 ・コード生成AIの現状
 ・コーディングの未来にプログラマーは必要かどうか

生成系AIがコーディングに適している理由

アメリカのOpen AI社が開発・公開したChat GPTについては、すでに多くの方がその概要について知っていることでしょう。
AIがついにここまで進化したのか!という驚きとともに、ニュースなどでも頻繁に報道されています。さらに行政機関での利用が始まるなど、幅広い活用が進められています。

プロンプトに入力された文章を解析し、最もふさわしい回答を自然な文章にして返すのがChat GPTの機能です。Chat GPTは、膨大な数量のデータを事前に学習させることで、回答の精度向上に成功しました。
これまで「まるで人間と会話するようなやりとり」を実現するAIサービスが他になかったことから、登場からすぐに大きな話題となりました。

とはいうものの、AI自身が何らかの思考をしている訳ではなく、あくまで「多くの過去のデータを参照し、平均的な回答を機械的に作成」しているだけにすぎません。そこには、世界のどこにもないようなオリジナリティは期待できません。
「新しい物語の創作」と言うような指示に対しても、それなりの回答を出力してきますが、「世界のどこかにある文章をつぎはぎしたもの」です。

一方で、ルールが明確な分野であれば、素晴らしい正確性で回答を出力してきます。実際に法律分野なら、米国の司法試験を受験しトップクラスで合格できるだけの答案作成能力があることが確かめられています。

今回話題にしているプログラミングのコード作成は、まさに「厳密なルールが存在」しているため、生成系AIが最もその実力を発揮できる分野です。
現在、あらゆる産業分野でIT技術が活用されており、世界中にコーディングの負担軽減やスピードアップを望むエンジニアが溢れています。今回コード生成AIの登場により、エンジニアの業務が劇的に変化する、そういう可能性を大きく秘めています。

そもそもプログラミング作業をする際に、そのかなりの時間は「何かを調べている」時間であることが多いものです。その部分をAIが肩代わりしてくれるのですから、作業時間短縮に大きく貢献します。
極論すれば、インプットとアウトプットさえ明確であれば、AIが見つけてきてくれたコードをコピペすれば作業が完了します。*注1

コード生成AIの現状

すでにいくつかのコード生成AIが存在し、利用が広まっています。順番にみていきましょう。

◯Open AI Codex

Chat GPTを開発したOpen AI社が提供するコード生成AIです。現時点では英語のみ対応で、従量制課金となっています。
 コーディングのアシスタントとしての利用が想定されているツールです。

そもそも無料で使えるChat GTP-3(現在は3.5)でも、必要なコードを生成する機能はあります。特に複雑なこともなく、プロンプトに質問するだけで利用可能です。

例えば、プロンプトに「入力された生年月日から干支を出力するプログラムをJAVAで作成してください」と入力すると次のようなプログラムが出力されます。


Javaを使用して、入力された生年月日から干支を出力するプログラムを以下に示します。干支は、日本の十干十二支の組み合わせで、干(かん)は十干(甲・乙・丙・丁・戊・己・庚・辛・壬・癸)、支(し)は十二支(子・丑・寅・卯・辰・巳・午・未・申・酉・戌・亥)から構成されます。

import java.util.Scanner;

public class ChineseZodiac {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

    System.out.println("生年月日を入力してください(YYYY/MM/DD):");
    String input = scanner.nextLine();

    String[] dateParts = input.split("/");
    int year = Integer.parseInt(dateParts[0]);
    int month = Integer.parseInt(dateParts[1]);
    int day = Integer.parseInt(dateParts[2]);

    String zodiac = calculateZodiac(year);
    System.out.println(year + "年の干支は「" + zodiac + "」です。");
}

private static String calculateZodiac(int year) {
    String[] kan = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"};
    String[] shi = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"};

    int kanIndex = (year - 4) % 10;
    int shiIndex = (year - 4) % 12;

    if (kanIndex < 0) {
        kanIndex += 10;
    }

    if (shiIndex < 0) {
        shiIndex += 12;
    }

    return kan[kanIndex] + shi[shiIndex];
}

}

このプログラムでは、入力された生年月日を解析して、該当する干支を計算して出力します。西暦4年を甲子年とし、甲から順に10年毎に支が変わり、子から順に12年毎に支が変わるというルールに基づいて計算しています。入力形式は「YYYY/MM/DD」とし、例えば「1990/07/15」といった形で入力してください。


簡単な例ですが、このように言語を指定した上でプロンプトに明確な機能を記述するだけで、コメント付きのコードを返してくれます。
Javaだけでなく、エクセルで使いたいVBAなどでもコードを作成してくれるため、プロユースでなければ十分実用的と言えます。

◯Git Hub Copilot

Git Hubが提供しているコード生成アシスタントです。Neovim、Jet Brains IDE、Visual Studioなどの開発環境に対応しています。
個人なら月額10ドル、年額100ドルで利用可能。コーディング中にプログラマーの意図を読み取り、一歩先の提案をするという特徴があります。

具体的には、プログラミング中に「・・・という機能」とコメントを記述すると、その機能を実現するコードを提案してきます。それを受け入れると、さらに「次は・・・・」と続く機能についてコメントで提案、それを受け入れて、、、と繰り返していきます。

最高にうまく行った場合は、最初のコメントを書くだけで、あとはCopilotの提案を受け入れていけば自動的にプログラムが完成する、と言うような使い方ができます。
まるで理想のアシスタントがいて、ただ「・・・してほしい」というだけで瞬時に必要なコードを記述してくれる、そんな感覚です。

◯Amazon Code Whisperer

AWSと親和性が高く、幅広い言語に対応。セキュリティスキャン機能などに特徴があるコード生成アシスタントです。2022年に発表され、個人ならば無料で利用できます。

◯AI Programmer

日本語での入力に対応したコード生成サービスであり、プロトタイプとして公開されています。現在は無料で利用ができ、SQL・Python・HTML/CSSに対応しています。

 
ここまでご紹介したサービス以外にも、コード補完機能やバグ修正などに特化したものなど、AIを活用したコーディングはもはや「通常作業」になりつつあります。
Googleもブラウザ上でPythonの記述と実行が可能となるサービスを近日公開予定であり、この分野の盛り上がりが感じられます。*注2

コーディングの未来にプログラマーは必要か

ノーコードプログラミングやAI支援プログラミングによって、将来的に専業プログラマーの役割は低下し、素人でも簡単にプログラミングができる未来が訪れる。そんな文脈をよく見かけます。
しかし、どんなに技術が進もうとAIが進化しようとも、専業プログラマーの存在がなくなることはないでしょう。

ここで紹介したコード生成AIなどを活用することによって、プログラミングのハードルは確実に下がります。また、生産性も向上し、これまでよりも複雑で高度な開発をスピーディに進めることができるでしょう。

しかし現状では、まだコード生成AIを使ったプログラミングでは、バグが多くなるなどの問題が報告されていることもあり、人間によるチェックは欠かせません。
そもそもコード生成AIとはいっても、オリジナルで全く新しいコードを作成する訳ではなく、「世界のどこかで誰かが過去に作成したコード」を引っ張り出して提案しているだけです。

人間の叡智が生み出してきた膨大なデータがなければ、コード生成AIは何もできません。セキュリティチェックの面でも、全体のバランスをとりながらアレンジするなど細かな調整の部分でも、優秀なプログラマーの存在は欠かせません。

その一方で、生成AIはこのようなプログラマーのアシスタントとしては非常に優秀です。また、プログラマーが短時間に技術や知識を習得し、学習レベルを向上させるのにも役立つでしょう。
人間とAIが相互に補完しながら、より良い世界を創造していく未来が確実に近づいています。*注3

【まとめ】
生成系AIに関しては、絵画や音楽、文章作成などの文化系分野での進化がよく話題として取り上げられています。「感情のないAIにこんなことが!」という点が注目されるのでしょう。ただ実用性に関しては、これからの課題という段階です。
しかし今回ご紹介した通り、コーディングという理科系分野においては、すでに必須の技術として活用されており、確実に成果を出しています。まるで携帯のように「なかった時代にはもう戻れない」そんな段階に来ているのではないでしょうか。

建設・土木業界向け 5分でわかるCAD・BIM・CIMの ホワイトペーパー配布中!

CAD・BIM・CIMの
❶データ活用方法
❷主要ソフトウェア
❸カスタマイズ
❹プログラミング
についてまとめたホワイトペーパーを配布中


 

▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!

■参考文献

注1
産経新聞 「チャットGPT 活用広がる自治体 懸念も根強く試行錯誤」
https://www.sankei.com/article/20230523-MKPRZEJGX5LDHFTW4C2YG2G2LY/

Yahoo! NEWS 「アメリカ司法試験に合格するChatGPTの後継“GPT-4”とは何か? その可能性とリスクをさぐる」
https://news.yahoo.co.jp/articles/1d2b2186efdd186c70c61dee5e02f8f3febbb766

注2
TOP S/C 「コード生成AIとは?利用方法・料金、利用のメリット・デメリット、主要サービスなどを解説」
https://products.sint.co.jp/topsic/blog/github-copilot

「生成AIとは?種類・サービス、利用する場合の注意点を解説します。」
https://products.sint.co.jp/topsic/blog/generativeai

tech Trend 「ジェネレーティブAI|コード自動生成・修正サービス5選」
https://techtrends.jp/trends/code-generation-ai/

gihyo.jp 「生成系AIがもたらす開発ワークフローの変化」
https://gihyo.jp/article/2023/06/how-generative-ai-is-changing-the-way-developers-work

注3
WIRED 「AIを使ったコード生成ツールは生産性向上に役立つが、バグが多くなることもある」
https://wired.jp/article/fast-forward-power-danger-ai-generated-code/

AINOW 「ソフトウェア開発はもっと楽になる?普及が進むコード生成AIレポート」
https://ainow.ai/2022/11/07/269213/#AI

日経XTECH 「AIがソースコードを自動生成、サービス続々登場も過度な信頼は禁物なワケ」
https://xtech.nikkei.com/atcl/nxt/column/18/02162/081500002/

    カテゴリ一覧

    PAGE TOP