Logo Ernie.SG

人間のためのA.I.: A.I.ネイティブなプロダクトを作り、そして…

2024年3月25日
約1分で読めます
利用できるタグはありません

WhatsAppでオンボーディングし、新規ユーザーを作成

インターネット越しに非同期でオンボーディングと新規ユーザー作成をこなし、同時に複数ユーザーをさばけるようにする。やってみると、これは「そもそも僕はなぜこんなことを?」となる類の問題だった。これはWeb開発者の仕事でしょ。僕がやりたいのはデータをぶん回してモデルを作ることだけなのに。とはいえ、GPT-4搭載のCursorでなんとか形にできたのはよかった。

姪が大きくなって、「みんな、よくあんな間抜けなソフトウェアやサービスに長年耐えてたね!?」みたいなことを言う日が、かなり楽しみだ。だって、会社は何のためにチャットボットを投入しているんだろう。こちらを苛立ちの渦に引きずり込むためだけに見えるものとか、二度と電話しようと思わせないための自動音声とか。一度、すぐに戻ってきて、そこそこ十分な答えを返してくれる知的なシステムを味わってしまうと、その後に接する人間のサービス担当者をそれと比べずにいるのは難しい。

ここしばらく、コーディングのワークフローをなんとか最適化しようとしている。しぶしぶの標準構成は、ChatGPTのウィンドウをVisual Studio Codeの横に並べるだけだったのだけど、これが世界でいちばん信頼できる相棒というわけではない。同じことを何度も説明するのが嫌いだし、A.I.が文脈を忘れるのも嫌いだ。髪をかきむしるかキーボードを叩くかの二択になると、たいてい後者に落ち着く。しかも会話が長くなりすぎると急に遅くなるし、UIや一般ユーザー向け画面の側では時々ランダムに変なエラーが出る。そして最悪なのがレート制限。ほんとうに、あのレート制限。だから、もっとよい代替手段を探していた。

GitHub Copilotは飛ばした。オンラインであまり薦められているのを見なかったし、僕がかなり気に入っていた「コードベースと会話する」こともできなさそうだったからだ。それでGemini Advancedを試し、LM Studioでローカルモデルをいくつか動かし、VSCodeにContinueを組み合わせたりもした。でも僕にとっては、やはりGPT-4の能力がクラス最高に見える。ContinueとLM Studioの組み合わせはかなりもっさりしていて、結局そこまで使わなかった。ところが最近参加したイベントで、登壇者がCursorに触れた。名前だけは何度か見かけていたけれど試していなかったので、使ってみることにした。そして、これからのソフトウェアやサービスはこう作られるべきなのだ、というものを一瞬だけ垣間見た気がする。データを第一級市民として扱う、A.I.ネイティブなプロダクトとして。既存のワークフローに無理やり後付けするより、感触も動きもずっといい。

Cursorには拍手を送りたい。FirestoreとFastAPIを使ったステートレスな設計で、WhatsApp越しのオンボーディングとユーザー作成機能をようやく完成させることができた。使っている基盤モデルは同じなのに、いつもの環境ではこの問題を解くのが苦行すぎて、もう丸ごと諦めかけていた。Cursorでできたのに、それまで試したツールやプロセスでは完全に行き詰まっていた理由として、かなりA.I.ネイティブだと感じた点がいくつかある。ざっと挙げるとこうだ。

  • ReActでデバッグする

    • これは僕にとって即座に購入を決めるキラー機能だった。A.I.がリアルタイムで考え、行動し、観察するのを見られるだけで、自分の学習にとってものすごく強力だった。僕らがA.I.を使うとき、しばしば自分自身の知識と想像力に制限される。だから、A.I.がひとつの指示を受け取り、解の空間を探索していく様子を見るのは純粋に面白いし、自分のソフトウェアエンジニアリングに必要なメンタルモデルやプリミティブについて学ぶ、メタ学習としてもかなりいい。
  • コードベースのインデックス化

  • 文脈内での生成と置換

  • 長いテキスト断片の切り詰めと扱い

  • インターネットにアクセスできる、最新のコードライブラリ

データを第一級市民として扱うA.I.ネイティブなプロダクトや体験を作ることは、僕には「ソフトウェアが世界を飲み込む」に、並列化できるステロイドを打ち、さらにデータを指数乗したような感じがする。たぶん、だから長いあいだ何もかもが遅く、不可能に見えていたのに、急にあらゆるものが一斉に、どこにでも現れたのだろう。おもしろいのは、これらの多くが古いアーキテクチャであり、何十年も前からある発想だということだ。ただ、ようやくそれを走らせられるだけの計算資源と、インターネット規模のデータが手に入った。基盤も、構成要素も、データも、インフラも全部Googleの中にあったはずなのに、少なくとも世間の受け止めではここまで完全に出遅れている。まったく新しいパラダイムなので、年齢に関係なく誰もが作りながら未来へ進んでいく、奇妙な新世界になっている。すべてがあまりに速く動いていて、結局はX -> ŷで、その間に層が何枚あるかが違うだけだ。そこが、僕には本当に、本当におもしろい。4月にはチベットで、確率、統計、そしてA.I.としばらく腰を据えて向き合うのが待ちきれない。

古い習慣はしぶといので、今日の巨大企業の多くは、自社システムにA.I.を貼り付けながら長く繁栄していくのだろうと思う。でも僕は、データが第一級市民になるA.I.ネイティブな世界に早く住みたい。そのプリミティブが可能になったら、ユーザーデータが増えるほど良くなるソフトウェアやサービスを作らないのは、ただの愚かさではないか。このA.I.のコールドコールエージェント音楽制作は、ちょっと洒落にならない。みんなが忘れてしまったGoogleの、髪切りの予約を取れるはずだったA.I.アシスタントが、つい昨日の出来事のように思える。たぶん、うまくいかなかったのだろう。スマートフォンは、僕らの情報消費のあり方をおおむね大きく変えた。けれど仕事の多くは依然として、人間が入力を処理し、自分の内部コンピュータに通し、最後に出力を出す、という形だった。人類史上初めて、そうしたビジネスロジックを人間労働という身体化されたコンピュータにエンコードする代わりに、はるかにスケールしやすく再現性の高い計算資源を利用できるようになった。どういうことなのか、一度考えてみる価値はある。これに名前があるのかは知らないけれど、僕らはテクノロジーに対する期待値をかなり高く設定する一方で、人間についてはいつも自分たちを許しているように感じる。今日は調子が悪い。寝不足だ。いろいろ大変なんだ。人生をどうしたらいいかわからないから、とりあえずやり過ごす。それなのに同時に、テクノロジーには一貫して、粘り強く、ただ動くことを期待している。それ自体はまったく妥当だ。ただ、ソフトウェアを書き、ソフトウェアで動くサービスを作るということについて考えるほど、僕はますますこう疑問に思うようになっている。これらの道具を効果的に、そして大規模に扱うには、その根底にある仕組みをどこまで知っていなければならないのか。

これからますます重要になるのは、技術的専門性、コミュニケーション、リーダーシップの正しい配合なのではないかと、僕はかなり強く疑っている。ここでいう技術的専門性とは、特に知能を競争優位に利用する仕事をしているなら、こうしたシステムにプロの水準で食らいつき、推論できることを指している。ただ、機械がデータからパターンを学び予測する、と知っていれば十分なのか、それとも必要なら自分で損失関数を書けるくらいであるべきなのかは、まだ判断がつかない。だって、柔軟な関数形、損失最小化、バックプロパゲーションについて知らずに、なぜ彼らが予測機械としてあんなにうまく機能するのかについて、どうやってよい直感を持てるのだろう。もっとも、それらを知っていても、世界や進歩の向かう先についてよりよい予測モデルを作れる能力に必ずつながるわけではない。だから自分で知るか、その役割を誰かに委ねるかのどちらかで、後者の場合は、その「誰か」をめぐって世界最大級の企業たちと取り合うことになるのだろう。結局のところ、コミュニケーションとリーダーシップのスキルが必要だというのは、推論と批判的思考が当分なくならない、というだけの話でもある。

結局のところ、これはちょっとした奇跡ではないだろうか。経済、資本、計算資源が合流した美しさでもある。海底深くに敷かれたケーブルを通って流れるビットとバイトが、これほど多くを伝え、これほど多くのことを可能にし、政府や制度がときに機能しない場所でさえ、ただ動いている。もちろん、テクノロジーが万能薬だとか、この業界が問題だらけではないと言いたいわけではない。アクセスの問題についてはここで書いた。でも今だけは、A.I.の暖かい光の中に少し浸っていたい。:)

僕も自分の時間を使って、この領域で何か価値のあるものを作りたい。人生にはこういうものがある。うまくいって運がよければ大金を稼げるかもしれない。だめだったとしても、どうせめちゃくちゃ楽しんだはずだ。なら、やらない理由があるだろうか。


初出はPubPubのerniesg.pubpub.org/pub/161hmmds