LLMは自然言語処理に長けた言語モデルで、チャットbotやリアルタイム翻訳、自動要約などに活用されている。そしてLLMは、プログラミングにおけるコード生成にもその能力を発揮する。あるソフトウェアエンジニアが、LLMの活用法を具体的に解説した。
「ChatGPT」をはじめ「GitHub Copilot」や「Amazon CodeWhisperer」「DeepCode」「Mintlify」など、プログラミングにLLM(大規模言語モデル)を活用するツールは幾つかある。
あるソフトウェアエンジニアはプログラミングにLLMを活用する「チャット駆動型プログラミング」の有用性を説明し、プログラミング作業におけるLLMの具体的な活用法を説明した。プログラミング作業をもっとラクする方法とは?
ソフトウェアエンジニアであり、データベースやGo言語の分野での活動が知られているデイビット・クローショー氏のブログ記事が注目を集めている。
同氏はブログにLLMを活用したプログラミングに関する記事を投稿した。それによると、LLMを自動入力に活用することでタイピング作業を減らして作業時間を短縮し、FIM(中間保管)モデルを活用することでスムーズにコーディング作業ができるようになったという。また、生成AIを情報検索に活用することで、Webの検索エンジンを使うよりも効率的に必要な情報を得られるようになったそうだ。
クローショー氏はLLMと対話しながらプログラミングする「チャット駆動型プログラミング」の価値を大きく感じたという。だが、求めるコードを得るには手間がかかるとも述べ、今後、ユーザーが意識せずともチャット駆動型プログラミングを利用できるような環境を作りたいと意気込んでいる。
同氏はブログで、チャット駆動型プログラミングのコツも解説している。利用する人間が生成されたコードを読み取って正しいかどうかを判断できることが重要であるとし、間違いを修正することでゼロベースで開発するよりも簡単に作業が進むとしている。
プログラミングにおいて、LLMに具体的な目標と必要な背景資料を与えることが重要だという。また、実際にLLMにプロンプトを渡す際、LLMが混乱するほど複雑で曖昧(あいまい)な質問をすべきではないともしている。
それによって得られたコードを理解するために「分かりやすく記述するためにやり直せ」と指示することも必要だという。クローショー氏は「人間相手にやり直しを命じるのは心苦しいが、LLMならすぐにやり直しができ、コストもかからない」とコメントする。そして、コードは読む前に必ずコンパイラを通してテストし、その結果を評価すべきだという。
クローショー氏はチャット駆動型プログラミングによるコード生成の具体例として「浮動小数点四分位数に対するリザーバーサンプラー」を挙げる。最初に生成したコードをテストを通して検証したもののクローショー氏はそれを信用せず、LLMに同様のコード生成を指示し、ランダムな入力データを大量に使うことでバグを発見するファズテストを実行した。両者を比較することでより信頼性の高いテストコートの生成に成功した。
クローショー氏の考え方や手法を参考にすればLLMと対話をしながら正確なコードの生成が可能になるだろう。またクローショー氏は、LLMを活用したコード生成を容易にするツール「sketch.dev」を開発中であることにも触れ、将来、プログラマーがLLMを積極的に利用し、そこから価値を引き出すことが容易になるとしている。
プログラム作業に生成AIを活用したいと考えているなら、クローショー氏のブログ記事を参考にするといいだろう。
上司X: LLMをプログラミングに活用すると効率的にプログラミングできるよ、という話だよ。
ブラックピット: プログラミングにどう活用するのかを具体的に説明しているということですか。
上司X: そう。ここではだいぶ端折って紹介しているから、興味があればじっくり読んでみるといい。
ブラックピット: いや別に僕は……。
上司X: そんなこと言わないでさ。AIプログラミングの極意を知るチャンスかもよ。
ブラックピット: あ、じゃあ時間があるときに。
上司X: 生成AIやLLMをプログラミングに使うことを良く思わないエンジニアがいるとも聞くよ。スキルが伸びない、衰えるとか、コードの品質に懸念があるとか、信頼性が損なわれるとか……。
ブラックピット: 僕はそこまでは思っていませんけどね。コードのライセンスには懸念がありますけどね。LLMが学習して使ったコードが後からライセンス違反になって、問題になったら面倒じゃないですか。
上司X: なるほど。それも一理あるかもしれん。でも、いろんな業務が生成AIのおかげで効率化されているんだから、プログラミングだって同じ恩恵を受けられてもいいはずだろう。今後はそうした問題が解決されつつ、クローショー氏が作っているツールが活用されていくことを期待しようじゃないか。
年齢:36歳(独身)
所属:某企業SE(入社6年目)
昔レーサーに憧れ、夢見ていたが断念した経歴を持つ(中学生の時にゲームセンターのレーシングゲームで全国1位を取り、なんとなく自分ならイケる気がしてしまった)。愛車は黒のスカイライン。憧れはGTR。車とF1観戦が趣味。笑いはもっぱらシュールなネタが好き。
年齢:46歳
所属:某企業システム部長(かなりのITベテラン)
中学生のときに秋葉原のBit-INN(ビットイン)で見たTK-80に魅せられITの世界に入る。以来ITひと筋。もともと車が趣味だったが、ブラックピットの影響で、つい最近F1にはまる。愛車はGTR(でも中古らしい)。人懐っこく、面倒見が良い性格。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。