Logo Ernie.SG

人間のための A.I.:A.I. ネイティブ製品を作る

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

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

インターネット越しに非同期でオンボーディングと新規ユーザー作成を行い、複数のユーザーを同時に処理できるようにする。やってみると、これは「あれ、なぜ自分はこれをわざわざやっているんだ?」と思う種類の問題だった。これは Web 開発者の仕事だ。私はデータを処理してモデルを作りたいだけなのに。それでも、GPT-4 搭載の Cursor で解決できたのは嬉しい。

姪が成長して、「みんな、どうやってそんなに長い間ばかなソフトウェアやサービスに耐えていたの!?」と言う日を、私はとても楽しみにしている。たとえば、なぜ企業は、ユーザーを苛立ちに吸い込むことだけが目的のようなチャットボットや、二度と電話したくなくなる自動電話録音を導入するのだろう。一度、すぐに戻ってきて十分に良い答えを返す知的システムを味わうと、接するすべての人間のサービス担当者と比較せずにはいられない。

私はしばらく、自分のコーディングワークフローを最適化しようとしてきた。しぶしぶのデフォルトは、ChatGPT のウィンドウを Visual Studio Code の横に並べることだったが、世界でいちばん頼れる相棒というわけではない。同じことを繰り返すのは嫌いだし、A.I. が私の文脈を忘れるのも嫌いだ。A.I. が怠けると、髪をかきむしるかキーボードを叩くかの間で、たいてい後者に落ち着く。そして 1 つの会話が長くなりすぎると本当に遅くなり、UI/利用者側ではときどきランダムで奇妙なエラーが出る。何より最悪なのはレート制限だ。ああ、レート制限。だから、もっと良い代替を探していた。

GitHub Copilot は飛ばした。オンラインであまり推薦を見なかったし、私が気に入っていた「コードベースとチャットする」機能がなさそうに見えたからだ。そこで Gemini Advanced、LM Studio のローカルモデル、VSCode で Continue を使うことなどを試したが、私にとっては GPT-4 がまだクラス最高の能力を持っている。Continue と LM Studio の組み合わせはかなり扱いにくく、結局あまり使わなかった。そんな中、最近行ったイベントで登壇者が Cursor に言及した。名前は聞いたことがあったが試していなかったので使ってみることにした。そして私は、未来のソフトウェアとサービスがどう作られるべきかを少し垣間見た気がする。データを一等市民とする A.I. ネイティブ製品として、である。既存ワークフローに何かを後付けしようとするより、ずっと良く感じ、ずっと良く動く。

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

  • ReAct によるデバッグ

    • 私にとってこれは、すぐに心をつかまれた killer feature だった。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 で初出。