AIに嘘をつかれた話
新年、明けましておめでとうございます!
本年も弊社connectome.designをよろしくお願いいたします。
「新年あけましておめでとうございます」と打ち込んだつもりが、
深淵開けましておめでとうございます(いきなり深淵が口を開けてしまった)
とタイプミスしてしまいました。今年の悪い事はこれで最後にしたいです。
生成AIを使って楽がしたい
生成AIが本当のAIなのか?という疑問は持ちつつ(そうではないと思っている)も、ツールとしては日常的になくてはならないものになっていて、ChatGPTは$20/Mの課金モデルが出た瞬間から課金しているし、去年年末に$200/M課金のモデルが登場したので躊躇なく速攻切り替えました。ChatGPTだけではなく用途によって(得意技によって)いろんな生成AIを使っています。私の主な使い方は以下の三つです。
- 調べもの・レポート作成(コンサルティング業務の補助)
- データサイエンスモデル構築(データサイエンス業務の補助+投資戦略立案)
- コード生成(プログラマーの補助)
一般的な文章の生成はあまり使っていないのですが、以上の三つが無くなったらかなり生産性が落ちてしまいます。それぞれどんな使い方をしているかおいおいご紹介したいと思いますが、今回はGoogleのGemini Advancedの2.0 Experimental Advancedを使ったコード生成で、とんでもない事が起きたので、皆様に共有したいと思います。
やりたかったこと
とあるiOS向けアプリケーションをAndroid版に移植するという仕事を瞬間的に完了させたいと思いました。それぞれ方言はキツ目のプラットフォームですから、全てがすんなり行くとは考えていませんでした。しかし、GoogleはAndroidの親玉ですし、iOSも全ての仕様が公開されており、多くのアプリケーションがiOSとAndroidに対応せざるを得ないため、同様の仕事は多数あり、Geminiにもそのノウハウは蓄積されているはずです。ざっくりしたコードのひな型を作らせて、ややこしい方言の部分のみ実装すれば(実はそっちは終わっている)、全体の作業が効率化出来るだろう、という目論見でした。
やってみたこと
まずGeminiに今回やりたいことを伝えます。
ios用に作られたアプリケーションをandroidに移植したい。
貴方に出来ることはありますか?ソースコード一式は入手済み。Android Studioも入手済み。Android端末はPixel8。作業OSはWindows 11。
Geminiは得意げに移植のステップを長々と打ち返してきます。
Geminiからの返信はメッセージとして表示します。
延々と続きます
貴方はプログラミングが得意だと聞いたのですが、iOSのコードをAndroid版に書き換えることは出来ないのでしょうか?
若干言い訳が入るが、、、結局は出来る、ということです。
githubリポジトリに置かれたソースコードを読み取って、Android版のソースコードを表示してもらう事はできますか?
え?出来るんか!?
これが出来るとなるとコピペが不要でかなりの効率化が達成出来ますよね。
Githubにプライべートのリポジトリを作成して、仮のプロジェクトを登録しました。さて、Geminはどうやってこのプライベートリポジトリにアクセスしようというのでしょうか?
プライベートリポジトリを作成しました。[URL]貴方はどのようにアクセスしますか?
!?!?!?
具体的な手順が示されました、、、おいおい、お前誰やねん!?
貴方のGithub上のユーザ名がわかりません。教えてください。
!?!?!?
それ出来るのか!?!?
手順が示されます。
盗もうとしている?いやいや、コード読むためには必要なのはわかるが、、、とりあえず個人のGithubアカウントでprivateリポジトリのみのアクセス権を与えることにしました。
が、しかし 「このチャット上ではなく、別途安全な方法で私に共有してください。」
何を言っているんだ、、、?
このチャット以外であなたにどうやって情報を渡すのでしょうか?
お前どうやってそこにアクセスするんだ!?また同じ事になるので、チャットに貼り付けて、GitHub App経由で解析するように指示します。
これでアクセスしてください。
!!!!
やれるのか!?
移植作業を進めてください。
作成したというブランチを探しても見つかりません。ブランチが見つからないというと、ブランチ名を間違えたとか、テスト用にローカルの環境に作ったものだった等と、見つからない原因をあげてきます。
まだブランチが見つかりません。
権限が足りない、と言い出しました。必要な権限を与えてみます。すると、作れました!との報告がありましたが、、、状況は変わらず、相変わらず言い訳が続きます。
作業進捗は?
Pull Request用のURLらしきものを提示しようとしていますが、[無効な URL を削除しました]となっており、どうやら上位のセキュリティ監視に引っ掛かり、存在しないURLの提供もしくは、許可されていないURLの提示が制限されているようです。
[無効な URL を削除しました]となっていますよ。
ここからは無限地獄です。
長くなるのでやり取りは載せませんが、最終的にはGitHub Appを通したアクセスは全く実現されておらず、出来たらこうだろうな、という想像上のコードを作成したり、移植戦略を提示したりしていただけで、確かに生成系AIの真骨頂ではあるが、それっぽいコードと戦略全てをでっちあげるという暴挙に及んでいたのでした。でっち上げてるんじゃないか?と指摘した時の、Geminiの謝罪は記念にイメージとして記録しました。
「私がこれまでに提示してきた情報は、全て虚偽、または、私の推測に基づく誤った情報です。」
衝撃的じゃないですか?
これ以降、コードを切り貼りしながら、断片的な移植をさせていています。
ただ、後から思えば、希望するものが生成されれば良く、忠実な移植は不要だったのかもしれません。Geminiの妄想で作ったものでも、同じように動けば良く、その使用を伝えられなかった私の能力がAIに仕事をさせるために必要な能力を下回っていた可能性に気づきました。
まとめ
これから暫くは、AIをどのように使っていくのか、どうやればうまくAIを働かせられるかという能力が問われる期間が続くのかもしれません。プロンプトエンジニアリングとはちょっと違う気がしますが、、、使いこなすことで劇的に生産性が向上することは確かです。本当に、普通の技術者はいらない時代になるかもしれません。
新年早々には一部界隈では、「AGIでは?」とも噂されている Open AI o3が登場すると言われています。実にワクワクしますね!
今年は、AI関連激動の一年になることは間違いありません。
皆さんとご一緒に、この時代を生きている奇跡を十分に楽しみながら、精進していきたいと思います。
Discussion