2024年の振り返り——AIの指数関数的な発達とソフトウェア開発の未来
気が付けば、2024年も終わりを迎えようとしています。今年は自分にとって学びが多く、変革を促されるような年でしたが、それ以上にAIの指数関数的な進化が大きなうねりを見せた年でもありました。
初めてAIの一種(機械学習)に触れたのは2020年のことです。とあるスタートアップのプロジェクトにおいて、学習データ作成ツールの開発に少し携わったのがきっかけでした。そして2022年、Stable Diffusionの流行を機に生成AIへ触れ始め、2023年には普段のソフトウェア開発を支援するAIツール(GitHub Copilot)を使い始めました。正直、去年の段階ですらAIの進展は凄まじいものがありましたが、今年はそれをさらに上回る飛躍が見られ、指数関数的な発達とその先にある社会変革を予感させられました。
加えて、今年は3年近く続けた仕事を変えたことで多くの気づきを得たり、数年ぶりに新しいプログラミング言語を学んだりと、公私ともに大きな変化がありました。将来を見つめ直す良い機会にもなったため、この一年の振り返りをまとめたいと思います。
AI活用に関しての新たな知見
まず、自分自身の大きな変化として職場を変えました。詳細については別の記事1で述べているため割愛しますが、端的に言えば、仕事から得られる「学び」が減少し、このまま継続することによる成長の限界を感じ始めていたことが背景にあります。
現在は新しい職場で働き始めて6か月が経過しましたが、日々さまざまな挑戦に直面しています。0から1の開発、大規模なシステム移管、PM不在のプロジェクト運営など、難易度の高い局面をいくつも経験しています。また、自分にとって初めての言語であるGoを採用したことが、AI活用に関する新しい気づきを得るきっかけとなりました。
ChatGPTなどのLLM(大規模言語モデル)は2023年から触れており、当初は言語学習や記事の翻訳、長文の要約などで活用していました。もっとも、2023年時点ではハルシネーション(事実に基づかない情報を生成する現象)も散見され、メインの動力として使うにはやや物足りなさを感じていました。しかし、GPT-4やClaude 3.5 Sonnetのリリースを経て、中級者レベルの課題に対しても正確な回答が得られるようになったと実感しています。これを機に、Claude 3.5 Sonnetの有料プラン(Anthropic)を契約し、本格的に活用し始めました。
数年前であれば、未知のプログラミング言語を学ぶ際には書籍やオンライン講座を頼っていたでしょう。 しかし今年はアプローチを変え、Google検索と併用してAIへ積極的に質問を投げるようにしました。 分からないことを即座に解消できるメンターがいれば心強いものですが、実際、相手の時間を確保して質問するのは困難です。 その点、AIであればいつでも、何度でも納得いくまで質問できます。 当初は学習補助に限定していましたが、有用性を確信するにつれて活用の幅が徐々に広がっていきました。
AIをメンターとして活用する体験は、私の学習効率や生産性を劇的に高めただけでなく、現時点でのAI活用の可能性を再認識させるものとなりました。 現在のAI技術は単なるチャットボットではなく、実戦投入可能な「力強い道具」です。 未だに「ただのチャットボット」と捉えている人がいるかもしれませんが、一度深く使いこなせばその認識は変わるはずです。 もちろん、ハルシネーションなどの課題は残っていますが、それも着実に改善されています。
AI駆動開発
AIをメンターとして活用できることに気づいた私は、さらに一歩踏み込んで「AI駆動開発」の研究と実践を始めました。 これは、これまで補助輪のように使っていたAIをメインの動力に据える試みです。 人間は要件定義やレビュー、デバッグといった補助的な役割を担い、実装や設計の大部分をAIに任せます。 この取り組みはまだ実験的な段階ですが、着実に知見が蓄積されています。
このAI駆動開発という試みは、特定の条件さえ整えば予想を遥かに超える成果を上げています。 例えば、参照先のリポジトリ2はGoogle Cloud Storageへ写真を一括アップロードするためのスクリプトですが、私は自らコードを書くことなく、AIにすべてのコードを生成してもらいました。 要件の整理とデバッグ作業に専念するだけで、目的のツールを完成させることができたのです。
一方で「特定の条件」を整える難しさも見えてきました。 AIへ共有すべき文脈(コンテキスト)が増えるほど、制御が困難になるという課題です。 単一ファイルのスクリプトであれば容易ですが、100を超えるようなファイル群の扱いは難易度が高くなります。 また、作業を複数のセッションへと分割した際、いかに一貫した文脈を維持するかという点に課題を感じています。
文脈共有の課題を解決するアプローチとして、多数のファイルの内容を1つのJSON/YAMLファイルへ要約する手法があります。 私も現在はその有効性を検証している段階です。 さらに、最近ではAnthropicがリリースしたModel Context Protocol(MCP)を活用することで、AIが直接ローカルファイルを操作できるようになるなど、この分野は現在進行形で進化しています。 来年にはさらに洗練された開発フローが確立されているでしょう。
ソフトウェア開発の未来
近年のLLMの進化は、私たちの学習方法や働き方を根底から変え始めています。それは大きな恩恵をもたらす一方で、将来の予測を極めて困難にするものでもあります。すでに海外ではAIの影響で職を失ったというニュース3も報じられており、これは決して他人事ではありません。
AIがソフトウェアであり、デジタル化の需要が存在し続ける以上、ソフトウェアエンジニアは今後もしばらく必要とされ続けるはずです。しかし、AIがさらなる進化を遂げ、自律的な学習や活用が進んだ場合、どれほど高度なスキルを持つエンジニアであっても役割を問われる日が来るかもしれません。
ソフトウェアエンジニアという職業が、手放しで将来を楽観視できる時代は終わったと言えるでしょう。これはエンジニアに限らず、多くの職業に通じる変化かもしれません。私たちは、これからの世界でいかに生きていくべきかを再帰的に問い続ける必要があります。
未来を正確に予測することは誰にもできません。しかし、今年得た知見を糧に、変化を恐れず自らの生き方をアップデートしていく必要性だけは強く感じています。
締め
今年の振り返りを書き始めたつもりが、ついAIについて長々と綴ってしまいました。それほどまでに、私にとって2024年はAIとの向き合い方を含め、変化の激しい一年でした。来年はさらに変化に適応し、これからの生き方を力強く切り拓いていければと思います。
