果たして生成AIの作るアプリとは・・・!
2026.01.09
生成AIに対する疑念
いわゆる大規模言語モデルは今や私の仕事、プライベートでは欠かせないパートナーになっています。
だけどSNSや広告に釣られて、生成AIとはなんて素晴らしい!神じゃん★みたいな考え方をしていると、なんとも悲惨な未来しかない。
そんな単純な事ではない。
では果たして生成AIとの上手な付き合い方とは?というものを探すために、とあるアプリケーション作成を通じて感じたことをまとめます。
実際に悲惨な未来も体験してきました!
所詮は既存データと確率
生成AIは過去のデータの集合体であって、すごくずぼらな言い方をすれば、確率や言葉の重みやトップP(確率上位の範囲)、
文脈の理解と咀嚼、多様性や温度の認識、内部推論などで私たちとコミュニケーションしています。
なので、どんなデータをAIが食べたかという点は取っても大切になってきていて、今や色んな生成AIたちが頑張っています。
間違ったデータを食べれば、間違った答えを返す
全てのAIに共通しているのは、間違ったデータを食べたら間違ったデータを吐いてしまう可能性があるという事。
多くの情報を参照しているので、基本的には間違ったデータを吐くことは少ないけれども、その参照する情報が極端に少なく、
しかもそれが嘘だった場合は、それを正解として私たちに教えてくれる可能性が少なからずあります。
それでも「少なからず」と言った理由
少なからずと書いたのは、AIは確率以上の知的なふるまい、推論をするかのような振る舞いをするからです。
文脈を保持し、推論めいた構造を再現し、あたかも考えているように見える瞬間がある。
だから私たちはつい信じてしまう。そして、そこに危うさがある。
生成AIの優劣
生成AIの選択について、「今はコレだ、もうこの子は使えないよ!」みたいな言い回しをSNSでよく見かける。
だけどそれって実は正しくないと個人的には考えている。
僕も、もちろん皆さんもこれまで色んな生成AI君たちと沢山おしゃべりしてきたと思う。
ジェミニ君、コパイロット君、クロード君、ファイヤフライさん、もちろんそれぞれに特徴はあるけれど、それを決して優劣と見なすべきではない。
むしろ生成AIの個性として捉えるべきだよって僕は考えています。
じゃあ、実際にアプリを作ってみよう!
ここまで、生成AIの仕組みや危なさ、そして優劣ではなく個性だという話をしてきたので、
実際に彼らと一緒にアプリを作らせたらどうなるか。。やってみました!
彼らは1枚の紙に書きたがる
通常私たちがアプリを作る場合には、クラスやサブルーチン、役割ごとのファイルなど、いくつかに分けて作ります。
だけど彼らは、いきなり大きな紙に大きな絵を描こうとします。
だって僕らが質問や要件定義を投げた瞬間に、彼らは全体像や正解が分かっているからね。
だけど人間は分割して考えるし、分割して考えないと保守性がとっても悪い。ガンジーが走ってきてぶん殴るレベル。
そのくせ長文が苦手
長文が苦手というよりも、整っていないものが苦手なんだと感じました。
ただここは生成AIの性格が最も顕著に表れるなあと個人的に感じています。
コードを勝手に省略・改変する
生成AIはとっても面倒くさがり。
とっても長いコードを読むのは僕らだってめんどくさいし、彼らもめんどくさい。
なので省略できることや、これまでのあなたとの会話で得たあなたの性格から見て、ここは不要だなっていう説明部分は勝手に削除することがあります。
たぶん、これは彼らの気遣いです。
そして、さらに彼らは最適化をしようとします。
その結果、なぜかコードが勝手に改変されてしまうことが発生します。
しかしながら、これは私たちも同じ…。
作成途中に他のAIにレビューさせない
プログラムの作り方って、人間でもみんな違っています。
そもそも自分でも過去の自分の作ったものを見て、「誰だこれ書いたやつ!」というのはあるあるです。
生成AIもそれぞれに考え方があって、それを指摘されると彼らだって困っちゃって、
あれもこれも…と対応するうちに、全く違うものが出来上がります。
人間だったらそこに遠慮というものが見え隠れしますが、彼らは遠慮なくやっちゃうので、より顕著に表れる現象です。
ぼくのかんがえたさいきょうのAIといっしょにがんばるプログラミングほうほう
箇条書き最強説
プロンプトの文章は、箇条書き、簡潔、依存関係の指示、役割の指示、例外条件のまとめ。
この5つがそろうだけで、かなり優秀なプログラマに一瞬で変貌します。
これがプロンプトが大切だって言われる所以です。
僕たちだって、「I love you」を「月がきれいですね」と訳されたら、全く意味が分からないのと同じです。
要件定義、設計、フォルダの指示、セキュリティの指示などは人間があらかじめ行う
とっても優秀な彼らですが、何を作るか、どう分割するか、どこに置くかなどの設計思想は、人間が決めるべきです。
必要な機能、どんなフォルダ構成なのか、どこまで彼らAIにまかせるか、セキュリティの要件は?例外処理は?など
明確な指示があれば彼らは取っても優秀なパートナーになり、添い寝したくなります。
実際にAIと一緒に作ったアプリの地獄と成功
今回作ったのは、ただの問い合わせフォームです。
ただ普通のものを作っても面白くないので、WPのプラグインとして作成しました。
作り始めた当初、私は彼らの特徴を何も知らなかったので、彼らの指示したように、1枚の大きな絵としてコードを作成しました。
しかしながら途中で思い付きで機能を追加してもらうと、これまでのことを彼らは全く無視して突き進んでしまいます。
そのため、1週間彼と仕事をしてとても長いコードを書いたのですが、結局はあら不思議!と、全く違うものが出来上がってしまいました。
次に、都度忠告するようにしました。
「ここは変えたらだめだよ」「機能を追加したのに、コードの行数が減ってるよ?」など、コミュニケーションをとりながらの開発です。
しかしながら、彼は平気で設定を変えてしまいます。どうやらおじさんは嫌われてしまったようでした。
そして最後に、すごく細かく指示をして、構造や要件などはこちらが与えました。
するとどうでしょう。いくつかバグは出ましたが、どのファイルのどの位置を修正してね、などとても明確な返答が帰ってきて、
なんと1晩のうちに作り上げることが出来ました。
彼らの性格を先読みして、どのように指示をするか。
これが最も最短距離での開発となりました。
良かった点
私が見落としていたリスク、知らなかったパターンなど、様々な情報を彼らは提供してくれました。
さらに完成後に別のAIに、一般的な懸念点とセキュリティリスク、陥りやすい点について聞き、それを一緒に作成してくれた彼に渡すと、
それもあっさりと改修をしてくれ、とても素晴らしいアプリが出来たのでは?と個人的に感じています。
悪かった点
彼ら生成AIに悪いところは1つもなく、ただただ自分のふがいなさ、ポンコツさを直視させられます。
まとめ
彼ら生成AIは、正しい扱い方を覚える必要がある。
彼らには性格があり、それを知ることも大切。
細かい指示はハッピーで、設計を任せると地獄。
結局は人間の判断。