ChatGPTにコーディング能力でも敗北しました
この前、ChatGPTに文章能力で敗北したというブログ記事を書きました。
今回は、文章に続いてコーディング能力でも完全敗北したという話です。
きっかけは、以下の妻の「複数ページのPDFを1つずつ別ファイルで保存する作業を自動化するプログラム」のお願いです。
単純作業が辛いから、アレをあーしてこーしてくれるプログラム書いて😥と思いついちゃったので、いつもなら @karaage0703 先生に言うんだけど、絶賛社畜中で毎日遅くて可哀想なので、仕事増やしても良いかしらと一応気を遣っています。でも私も(確定申告しんどすぎて)発狂しそう笑。
— ねこじすた (@necogista) March 9, 2023
いつもなら、妻に尊敬してもらうために頑張ってプログラム作るのですが、その日は仕事のトラブルで帰宅が11時過ぎ。ご飯食べてお風呂入ったら深夜1時近く。流石に疲れてコードを考えることができません。そこでダメ元で
「助けてChatGPT〜〜」
とドラえもんに頼るのび太のごとく、ChatGPTにすがってみました。すると…
妻のお願い「複数ページのPDFを1つずつ別ファイルで保存する作業の自動化」
— からあげ (@karaage0703) March 9, 2023
できそうだけど、疲れ切っていたので考えられず、ダメ元でChatGPTに聞いたらなんとかしてくれました。すごすぎ https://t.co/lUhU5tr4oZ pic.twitter.com/lPyxPyCsjg
なんとかしてくれました。ドラえもん、じゃなかった凄いよChatGPT!
ChatGPTとのペアプログラミング
以下ChatGPTとペアプログラミングしている様子です。人間ともまともにペアプログラミングしたことないので、果たしてこれがペアプログラミングなのかは定かではないですが、自分はChatGPTと共同作業している気分になっていたのでご容赦(?)ください。
最初はこんな感じです。
「ははは、そんなことは分かっているよ、最新のAIといってもまだまだアホだな。かわいいやつめ」
と思っていたのもつかの間。次の指示をした結果をみて、私は凍りつきました。
「て、てきかくー…急にどうしたの君。なんか急にそれっぽいじゃん。コメントもちゃんと付けてるし。ていうかめちゃコーディング速くない?驚いちゃったよ僕。さすが最新のAIだね、ハハハ…でもちゃんと動くのかなぁ?」
焦りを隠しながら実行するとライブラリが入ってないとエラー。
「ははは、pip install は分からないか。AIだもんね、いいよいいよ僕がやっておくね。pip install pyPDF2
っと…全然気にしなくていいよ」
もう一回実行するとまたエラー
「あ、なんかメソッド古いってエラー出てるね。あ、君2021年までのデータしか学習してないんだ。そっか、学習大変だもんね。570GBだもんね。ドラクエ3の200万倍以上だからね。あ、最新のAIだとわかんないかなドラクエ3」
「あ、知ってるんだ。的確だね」
「よし、エラーは僕が直しておくね。あ、またエラーだ。メソッド古いって。いいよいいよ、僕が直しておくよ。2021年までなら仕方ないもんね。よし、これで実行と…」
「か、完璧に動いとる…」
いや、そんな難しいプログラムではないですが、疲れ切った自分一人では絶対このスピードでは開発できませんでした。凄いぜChatGPT。
普通に使えそうなので、このままGitHubにアップしようかと思いましたが、果たしてMITライセンスとかでこのままアップしていいのか悩み、今回はやめました。
Google Colaboratoryで動くようにしてみる
せっかくなので、次の日にGoogle Colaboratory(Google Colab)で、ブラウザで手軽に動かせるようにしてみることにしました。恐る恐るChatGPTに聞いたら、Google Colabで動くスクリプトも提案してくれました。凄いな君。
ただ、このままじゃ使いにくそうなので、手軽にファイルをアップロード、ダウンロードできるインターフェースをつけることにしました。今回は自分主導でプログラミングしていきます。
途中、pdfファイルのリストを取得するところ、考えるのがめんどうくさいのでChatGPTに聞いてみます。
いちいち回答が的確です。凄いですねほんと。
ChatGPTに助けられながら、Google Colab ノートブックを作成しました。今回は大半は自分が作ったのでGitHubにもアップしました。
Google Colabで開くと以下のような画面がでてきます。
上から実行していくだけで、PDFファイルのアップロード、ページごとのファイル書き出し、ファイルのダウンロードができます。
人間の英知
Twitterへの投稿が結構バズって、他にも色々な手段を教えてもらいました。
- Acrobatの抽出機能
- pdftk
- PDF Knife
- iLovePDF
色々手段はありますが、Acrobatが必要、ソフトのインストールが必要、Windowsが必要など色々な制約があり、私の場合はChatGPTの回答がほぼベストなソリューションでした。
人によって最適な手段は違うと思いますが、そのときもChatGPTにうまく自分の制約を伝えれば(Windowsでとか)、その人にベストなソリューションを返してくれるのではないかなと思います。
まとめ
ChatGPTを使って爆速コーディングをしてみたという話でした。ChatGPTかなり優秀ですね。ただ、今回いくつかエラーを直したりはしたので、全くプログラムの知識がない人だとさすがにChatGPTだけでコーディングは難しいかなと感じました。優秀な外注先でも、丸投げしたらうまくいかないのと似ているかもですね。特に、新しい情報が無いのは結構ネックかもです。あと、ChatGPTが生成したコードのライセンスがどうなるのか、色々気になりますね。
ChatGPTとのペアプログラミング自体は病みつきになりそうです。プライベートではどんどん活用していきたいです。ただ、ChatGPTの仕組み、ある程度は分かっているつもりなのですが、これだけコーディングができるのほんと意味分かりません。確率的にそれっぽいことを出力しているだけで、デバッグもできないのに何故これだけプログラムが書けるのでしょうね。逆にいうと、ChatGPTの能力以下の大半のダメプログラマは、あんまり考えずに、雰囲気でコーディングしているんじゃないかという気もします。そうです、私ですね。ハハハハハ。
仕事でも使いたいところですが、ChatGPTを使える会社は限られそうですね(特に大きな会社ほど難しそうです)。今後、個人でも会社でもAIを活用できるかどうかで、ますます生産性に差が出てくるのかもしれません。そして大半の人間がAI漬けになった未来、突然ChatGPTの料金が100倍とかになったらどうなるのか。考えるだけで恐ろしいです。
SIGNATEのコンペに参加します
コンペに参加しています。リツイート数で順位が決まるらしいので、よろしければリツイートお願いいたします。
ツイートがバズった、ChatGPT使ってプログラミングした件をブログに書きました > ChatGPTとペアプログラミングしたら爆速開発できました - karaage. [からあげ] https://t.co/aKBTrhUssm #SIGNATE#テーマ_作業効率化#ChatGPThttps://t.co/lnL077RYpT
— からあげ (@karaage0703) March 11, 2023
アイデアはあるので、他にもChatGPTで色々試してみたいなと思います。時間が許す限り…