AIによるソフトウェア開発【前編】
GPT-3の登場で見えてきた「AIによるコード生成」の可能性
OpenAIの「GPT-3」は自然言語処理分野に大きな驚きをもたらした。GPT-3が持つ文章生成能力は、プログラムのコーディングにも応用できるのではないか。そう考えた人々による取り組みも始まっている。
プログラミングをデータ中心に変えるAI
ソフトウェアを支える基本モデルはデータの重要性を反映する方向へとシフトしている。アプリケーションアーキテクチャでは、このようなデータ駆動型モデルの頂点を表すのがAIだ。AIはサンプルデータを使ってモデルをトレーニングすることで「プログラミング」される。その後、実社会のデータを使ってモデル自体の決定を下すことができる。トレーニングデータが適切であるほど、トレーニングデータに含まれていないデータセットが提示されても正しい決定を下す可能性が高くなる。
ソフトウェア開発におけるAIの役割に目を向けると、Webで多くの話題を集めていたのがOpenAIの「GPT-3」だった。
GPT-3は自然言語処理の新しいAIだ。GPT-3のデザイナーによると、GPT-3は「テキストを入力して、結果をテキストで出力する」汎用(はんよう)のインタフェースを提供するため、どんな仕事でも英語を使って行うことができるという。2020年6月、OpenAIはGPT-3用のAPIをリリースした。OpenAIはそのアルゴリズムを説明するブログ投稿に次のように記載している。「任意のテキストプロンプトが与えられると、APIは利用者が指定したパターンに一致させようと試み、テキストを補完して返す。利用者は行いたいことの例をほんの少し提示することで『プログラミング』を行うことができる。成功するかどうかは、タスクの複雑さによって異なるのが一般的だ。このAPIにより、利用者が提示した例のデータセット(小規模または大規模)でトレーニングを行うか、ユーザーやラベル付けツールが提示する人間のフィードバックから学習を行うことで、特定のタスクのパフォーマンスを利用者が向上させられるようになる」
実際には、GPT-3のプログラミングでは幾つか例を示す必要がある。その後はあらゆることをGPT-3が判断する。
Twilioでソフトウェア開発者を務めるミゲル・グリンバーグ氏は最近、GPT-3の使用方法を示す例をアップロードした。この例では、GPT-3とPythonの「Flask」フレームワーク(訳注)を使ってTwilioのチャットbotを構築している。このアプリケーションの興味深い点は、同氏が記述するステップによって実在する中で最も強力なAIエンジンの一つが呼び出され、ランダムな質問に人間のように答えることだ。同氏が記述するステップに必要なのは幾つかのかなり基本的なPythonコードだけだ。
訳注:原文は「Flack」だが、Flaskの誤りと判断した。FlaskはPython用のWebアプリケーションフレームワーク。
GPT-3を使ってプログラムを作成しているWebのコメンテーターもいる。CrowdboticsもGPT-3はソフトウェア開発にとって革新的なものと見ている企業だ。同社は最新のブログ投稿に次のように記載している。「高品質の自然言語処理の登場は、人間が使う多くの技術ツールに変革的な影響を与えると考えている。ユーザーインタフェースを備える製品をリリースしているあらゆるテクノロジー企業は、GPT-3が自社のビジネスにどのような影響を与えるかを考えるか、言語をよりインテリジェンスに利用するツールに置き換える戦略を考え出す必要があるだろう」
PayPalでCTO(最高技術責任者)を務めるスリ・シバナンダ氏は、AIのトレーニングを行って作成できるアプリケーションもあると考えている。コードは複数のビルディングブロックで構成される。こうしたビルディングブロックを組み立てることで、大規模で複雑なシステムが生み出される。そのため、プログラマーは繰り返し作業の速度を上げるためにスクリプトを作成することもある。この考え方はシンプルなアプリケーションにも拡張できる。事実、決済アプリケーションはそのような構造になっている。ソフトウェアスタックの最下部にはデータベースやOSが存在する。シバナンダ氏は次のように語る。「AIはコーディングを支援できる。コードと動的なロジックで知識を生み出すことは可能だ。だが、ルールベースのコード作成が可能にするにはそこまでだ」
AIが作成するコードもあるだろう。だが、プログラミングの複雑さのレベルはさまざまだ。AIが適しているタスクもあれば、適していないタスクもある。例えば、ワードプロセッサは文章をインテリジェントに訂正できる。「全てのドキュメントプロセッサは基本的な文法チェック機能を既に多数提供している」とシバナンダ氏は話す。ワードプロセッサは文章を読み取り、文法規則を当てはめる。プログラミングエディタや対話型開発環境でも、構文を訂正するために同じ技法が用いられる。
こうしたルールベースのチェックは、プログラマーがコンパイラと高度なプログラミング言語を使ってアプリケーションを開発する以前から存在していた。実際、コンパイラや静的コード分析ツールは、コードが正しい形式で構築されているかどうかをチェックする。
後編(Computer Weekly日本語版 11月4日号掲載予定)では、ソフトウェア開発におけるAIの適用分野とその可能性を紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.
Computer Weekly日本語版
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
9
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー