生成系AIのGPTは質問だけで正しいコードをつくれるのか素人が検証してみた【結論:難しい?】
こんにちは。Skyland Ventuers(SV)の大越です。不定期でツラツラ思うこと/考えていることなどまとめます。
今回は「生成系AIのGPTは質問だけで正しいコードをつくれるのか素人が検証してみた」について書きなぐってます。
大前提、私自身が非エンジニアの初心者であり、コードの具体的な内容はほとんどわかりません。
もしかしたらエンジニアの方が見たら「いやいやツッコミどころ満載だが」となるかもですが、そこはご愛嬌ということで目をつぶってもらえれば。(スクリプトの修正案などぜひ教えてください)
サクッと記事にしようと思ったら割と胃もたれする文量になってしまいました。結論知りたい方は目次から飛んでください!
記事サマリー
ChatGPTをコアにしたビジネスにできるのかの疑問と疑念
もしビジネスにするならエンジニアの生産性向上にフォーカス
コード生成などエンジニアのひとが使えるレベルなのかを素人が検証
結論、素人がコード生成しても実装まではできない(かも)
先に結論
仮説設定から着手・結果までを約2日(作業時間は多くないですが)ほど費やしてわかったことは、「まだまだGPT活用方法の余白はある」「使い方によっては有益になる可能性がある」「もうすこし頭を捻ることができればビジネスモデルに昇華できそう」という感覚を持ちました。
本題に入る前に
私のセットスキル
まず初めに私のスキルセットを。もともと非エンジニアなので見てわかる通りまったくの初心者です。過去のキャリアはこちらに。
デジタルメディアの運営をしていたのでHTML&CSS&JSはある程度理解できる&触れる
ネットに落ちている情報を学習&コピペで対応
TwitterのBotをGoogleAppScript(GAS)でつくれる
なぜやろうとしたのか
そもそもなぜこれをやろうと思ったのかですが、ChatGPTの精度を肌で感じ、OpenAI&GPT-3などをコア技術にした国内初の新しいビジネスモデルがつくれないかという妄想と興味がありました。
ただ正直、まだまだ眉唾か?というのもありました。
Text・画像・音声などからAIが新しい「なにか」を低コストかつ手軽につくれるという点はとても興味深いものです。
一方、生成されたアウトプットからお金の臭い(ビジネスモデルをつくれるのか?)があまりないように感じてました。
それっぽいテキストや画像などが生成されて、それがどのように活用できるのか?それってビジネスになるの?が自分の中で整理ができませんでした。
もちろん、海外ではすでに生成系AIを軸にセールスやマーケなどの掛け合わせでビジネスをつくり、大型の調達をしているところはありますが、国内初のものが勉強不足で知りえず‥‥。
しかしながら、ぼんやりとGPT-3をコア技術にしてプロダクトを作るとしたら、スタートアップがかなりの低コストでプロダクトを作ることができ、クライアントニーズとしても生産性向上文脈ならある気がしてました。
なぜクライアントニーズで生産性向上なのか
IT産業という日本産業の中で常にお金と人材が動いている業界があります。
その中で働いている人、とりわけエンジニアの一部の人の生産性が上げることができれば社会的意義だけでなく切実なニーズがあるのでは?という仮説を考えていました。
つまり、エンジニア支援という観点でGPT-3が使えるのでは?というものです。
これからGPT-4という流れがくる中で、生成系AI×生産性向上はもっと進む未来も妄想できます。
では、仮にエンジニアをターゲットにしたときに、エンジニアはGPTをつかった生産性向上プロダクトを使うのか?がポイント。
もっというと、その手前の「そのプロダクトは本当にエンジニアの意図通りに動くのか?」が重要になります。
そこで、プロダクトをエンジニアとして作ったことのない初心者の私が、コードを生成してもらい実装できるのかをやってみることで、仮説に対して見えることもあるのかもというのがあり今回チャレンジしてみた理由です。
さらに付け加えると、自分が試してないなかで「眉唾?」と結論づけるのも“ないな“というのもあります。
長々と書きましたが、背景プロセスをまとめる以下です。
スタートアップがGPTをつかって低コストかつスピーディーにプロダクトを作れるようになるのでは
プロダクトの対象ターゲットはエンジニアで、価値は生産性向上
エンジニアは使ってくれるプロダクトはつくれるのか
プロダクトはちゃんと指示通りに動くのか検証が必要
では、やってみよう
実際のプロセス
やっと本題です。
早速、ChatGPTを使ってコードを生成してもらおうと思ったんですが、「コードを生成して」だけだと面白くないので、自分が作ってみたいものをChatGPTにお願いしてみました。
具体的には「Twitterのリプライに対してChatGPTが回答するレスをするBot」です。
リプライや回答したログを残したかったので、GoogleAppScript(GAS)を間に挟んでスプシに連携させて動くコードを想定してみました。
おおまかな流れはこんな感じです。TwitterのOAuth認証などはもちろん必要なので下準備をした状態で以下を進めてます。
Google Apps ScriptにTwitter APIのライブラリを追加
ChatGPTをAPIで使うためにOpenAI Developerアカウントを作成し、OpenAIのAPIキーを取得
Google Apps ScriptでTwitterのリプライを監視するためのコードを書く
Twitter APIを使用して、特定のアカウントのリプライを定期的にスプシに取得
取得したスプシのリプライのテキストをOpenAIのAPIを通じてChatGPTの回答を生成
生成された回答を再度スプシに書き起こす
書き起こされた回答をTwitterAPIを通じてtweetさせる
Google Apps Scriptで作成したコードを実行するために、Google Apps Scriptプロジェクトで「トリガーを設定」
上記のアウトプットのイメージはあるので、ChatGPTに指示を出しました。
果たしてできるのか?
指示文は以下です。
ChatGPTからの回答はこんな感じでした。
おお、それっぽい。なるほど。ではその通りに実装します。(タイムアウト?なのか何度か「続きを教えて」を繰り返しました)
GASに指示通りのコードをコピペすると‥‥‥‥エラー。
エラー文をそのままコピペでChatGPTに。
エラーに対して質問するとしっかり修正の改善コードを初心者でもわかるように回答してくれます。
ChatGPTちゃん、優しい。
いわれた通り実装。‥‥エラー。
むむ。理解できてないので、エラー原因の質問を繰り返します。
何度か繰り返してもエラーは治りません。
原因は初心者のため、もちろん!わかりません!
今回、APIでつないだGPT-3の背景で2021年以降の情報不足というのがあります。アップデートしたバージョンがうまく接続できなかったりするのが原因の一つなのかもしれません※1。
うーん。
指示を具体的にして再チャレンジ
では、少し指示文章を具体的に変えて聞いてみます。回答はこんな感じ。
なるほど。さっきと全然違う・・・・?では実装‥‥エラー。
エラーの質問をすると、OAuth2.0に変更しなければいけないと。もともと生成したコードは旧式のOAuthのコードだったことが原因。なるほどわからん。
回答通りに実装‥‥。エラー!‥‥懲りずに、またエラー文をコピペして質問。
回答通りにコピペ実装。からの実行‥‥。同じエラー。からの回答が少し変わる。
‥‥‥‥。
原因を聞いてもなかなか改善がされず
こんな感じのプロセスを繰り返し・繰り返ししましたが(リアルに50回ほどやったかもしれず)、一向に実装&動作するものできませんでした。(途中までできるものはあるものの、イメージ通りの動作はしない)
連休をつぶして、わかったことは「初心者が生成系AIをつかってコードを書いてもらっても実装までは全然できないのでは?」という情けない結論になりました。
ぴえん。
生成系AIの思考プロセスは人間と同じ?
私のスキルセットが未熟かつ環境が特殊?だったため正確な参考にはならないかもですが、明確な2つの事実をまとめると以下になります。
最新の情報にはまだ追い付いてないところがある
回答に「揺れ」がある
①は2021年以降の情報は不足しているというのがあったため仕方ない。これからアップデートされていくはずで期待大。
②は一見、アウトプットが1つであれば、プロセスであるコードも1つ。と思いきや、そうでない結果に。
ただ、よくよく考えたら、「エンジニアによってコードを書くときの癖がある」的な話を聞いていたりするので、ゴールまでのプロセスにはいくつルートが存在するためChatGPTの回答も「揺れ」が出たのでは?という解釈をしました。
雑談ミーティングでちょっとした確信を
この結果の感覚を持って、Yuyanさん(IT技術関連のブログ?を書いている、エンジニアの知り合いが多い、東大のコミュニティに詳しい)と雑談MTGをしていた時の話で合点しました。
「知り合いエンジニアは割とChatGPTをつかってコードを書いてるという話は聞くが、そのエンジニアは出てきた回答をみてエラーが出る場所が特定できるのでうまく使えている」と。
つまり、初心者(今回は私)ではエラーの原因が特定できないため、ChatGPTをうまく活用できなかったという振り返りが(サンプル1ですが)客観的にも正しそうなのを感じました。
また、逆にエラーを特定できるスキルをもつエンジニアであればGPT-3などを活用しているシーンが実際にあるのも分かりました。
結果からわかったこと/気づいたいこと
回答の「揺れ」は人でもAIでも同じ
エラーが特定できるエンジニアスキルをもっている人(=初心者以外の人)が使えば、少なくともGPTを使ってコード生成の手間を省くことはできそう
上記2点を今回のプロセスでソフトな結論として理解をしました。
今後、GPT-4に進化していくなかで回答の精度は上がっていくはずです。どんなタイミングになるかはわからないですが、個人的にはとても近いタイミングで生成系AIを活用してエンジニア中心に生産性向上を支援するプロダクトが出てくると思っています。
活用方法の余白はまだまだあり、使い方によっては業務効率化に直にインパクトする可能性があるのが生成系AIを使っての印象でした。
もうすこし時間を使って頭を捻ることができれば、既存産業にインパクトをだせるビジネスモデルに昇華もできそうだなという感覚も持ちました。
いまこの盛り上がっているタイミングで、GPTなどの生成系AIをコア技術に据えてエンジニア向けのプロダクトをつくれればニッチコアなユーザーはつく可能性があります。
まずは身の回りのエンジニアのニーズを探ってもいいのかもしれません。
「生成系AI×生産性向上」のテーマでプロダクトをつくれる&興味のある起業家やエンジニアの方とは、ざっくばらんな話をしたいと思ってます!ちょっとでも興味ある方はDMなど気軽にください。
終わりに
宣伝になりますが!SkylandVenturesではアイディアソン的なピッチイベントを定期開催予定をしてます。1月は「生成系AI」で、もし興味ある方がいればぜひご参加ください!
ちなみに、今回は生成系AI×生産性向上をテーマにまとめましたが、生成系×メタバース(web3)というのも可能性があると思ってます。これはまたどこかでまとめます。
最後に私の好きな漫画アニメのネタバレ含むChatGPTちゃんによるストーリー解説で締めます。大体間違ってます!