1 ポイント 投稿者 GN⁺ 2024-09-26 | 1件のコメント | WhatsAppで共有
  • XKCD 1425「Tasks」は、見た目には簡単そうでも実際の難易度はまったく異なることがありうるというソフトウェア開発の感覚を扱った漫画で、2024年9月24日に10周年を迎えた
  • 漫画の中の「写真が鳥かどうか確認する」は当時は博士課程レベルの難問だったが、今では vision LLM、CLIP、ResNet+ImageNet などで簡単に解ける作業になった
  • 特定の例は技術の進歩で変わったが、どの問題が簡単でどの問題が難しいかを判断するには、今もなお深い経験が必要である
  • LLM には数学や事実参照のような弱い領域があり、どの作業を安定して任せられるかを直感的に判断するのはさらに難しくなっている
  • Claude Artifact の画像解析制限のように、AI支援プログラミングではモデルの能力だけでなく、CSPヘッダーのようなWebセキュリティ上の制約もあわせて理解する必要がある

XKCD 1425が10年後にも残した問い

  • XKCD 1425 “Tasks” は、ソフトウェア開発においてどの作業が簡単で、どの作業が難しいのかを、経験なしに判断するのは難しいことを示した漫画である
  • 漫画の代表例だった「写真が鳥かどうか確認する」は、過去には博士課程レベルの問題だったが、現在ではさまざまなコンピュータビジョン技術で容易に解決できる
  • 例そのものは技術の進歩によって変わったが、簡単な問題と難しい問題を見分ける能力には今なお多くの経験が求められる

LLMとAI支援プログラミングが生んだ新たな難しさ

  • LLM は、どの作業を安定して解決できるのかを判断するのが直感的ではない
    • LLM はコンピュータシステムだが数学に弱い
    • 事実参照も安定してこなせない
  • AI支援プログラミングツールの普及によって、より多くの人が自分専用のカスタムソフトウェアを作り始めている
  • 新たに登場したAI支援の初心者プログラマーは、簡単な作業と難しい作業の違いを素早く学ばなければならない状況に置かれている
  • Claude 自体は画像解析ができるが、Claude Artifact では画像解析ツールを作れない事例がある
    • これを理解するには、Artifacts を提供する際に使われる CSPヘッダー が、生成されたコードから外部 LLM API を呼び出すことを防いでいると知る必要がある

1件のコメント

 
GN⁺ 2024-09-26
Hacker News の意見
  • AI/ML で印象的だと見なされる基準がどれほど大きく動いたかに驚く
    10年前に GAN 論文が出たとき、生成画像の品質がすごいと皆が盛り上がっていた: https://arxiv.org/abs/1406.2661
    それ以来の進歩量は本当に信じがたいほど

    • 印象に残っている冗談がある: 普通の人はコンピュータの能力を人間と等価に換算して誤解する
      たとえば子どもが基本的な算数ができ、コンピュータも基本的な算数ができるのだから、子どもが話せるならコンピュータも当然話せるはずだと考える
      しかしコンピュータの能力は、まったく別のやり方で到達した結果だ。興味深いことに、LLM は能力の輪郭がより人間に近づいたが、それでも結果に到達する方法はまったく違う
    • 10〜15年前の自分の事業に今の LLM があったら、どれほど多くの労力を節約できたか言い尽くせない
      最悪だった例は、顧客が正規化したがっていたユーザー生成のテキストレシピ約18万件だった。分量調整、栄養情報の計算などのために、数量、単位、材料、手順などを抽出する必要があった
      前処理用の山ほどの正規表現と、インターン部隊が一つひとつ正規化するツールチェーンが必要で、インターンたちが作った混乱を直すのにもさらに多くの時間がかかった
      LLM があれば、ほぼ即座に終わっていた作業だったはずだ。完全ながらくたの山を使えるデータに変えなければならなかった数多くの作業で、LLM はただこなしてくれた可能性が高い
      当時の苦痛は、この流れを見てその頃 NVDA を買っておいたことで少し慰められた
    • OpenAI が ChatGPT を出した後、皆がお金を期待して研究を閉じてしまったため、発展速度が急に落ちた感じがする
    • 期待値の変化は聴衆の変化と大きく関係しているように見える
      以前は新しい機械学習モデルを、背景知識のある実務者が議論していたため、見た目には小さな改善がなぜすごいのか、そして妥当な期待値を理解できていた
      今では新しい機械学習、いや「AI」モデルを、技術的背景は知らないがマーケティングの誇張は知っている一般大衆が評価する。言語関連ベンチマークを圧倒する優れた言語モデルを与えても、期待値が途方もないので常に失望することになる
      言語モデルが代名詞が何を指しているか理解するような、文法・構文において比較的「単純な」ことをこなすときでさえ、今でも驚かされる。だが多くの人は、言語やコンピュータをそういう観点で考えたことがないため、それがどれほど難しく印象的なのか見えていない
    • 「人は1年以内にできることを過大評価し、5年や10年以内にできることを過小評価する」という言葉は、AI への期待値にもよく当てはまるように見える
  • この漫画はいつも少し奇妙に感じていた。人類はナビゲーション問題を解くのに何千年も費やしてきた
    この漫画は、ある作業がついに「解決」され、別の作業は始まったばかりだった短い時期に存在している
    モデルの学習にエネルギーが多くかかると思うなら、人工衛星群を維持するためにロケット艦隊を打ち上げることも考えるべきだ

    • 技術者でない人たちが何を難しいと感じるかの違いを言っているのだと受け取った
      キャリアの中で、会議中に出た場当たり的な要求事項ひとつが、プロジェクト見積もりを何か月も変えたことが何度もあった
    • ナビゲーション問題にも、ほとんどのアプリがまだきちんと扱えていない難点がある
      たとえば小売店のウェブサイトやアプリの店舗検索は、通常、現在地と店舗の間の直線距離だけを計算し、特定範囲内の店舗を距離順に表示する
      Seattle 近郊の Kingston のように Puget Sound の西側にある場所では問題になる。Walgreens の店舗検索は Kingston 付近の検索で10店舗を表示するが、そのうち9店舗は Puget Sound の向こう側、Seattle 側にある。車で行くなら片道約20ドル、30分のフェリーに乗らなければならない
      西側に表示される1つは Bainbridge Island 店だが、Kingston の人が行くような場所ではない。実際には Silverdale 店のほうが道路距離では近いが、直線距離では少し遠い
      Silverdale、Bremerton の3店舗、Port Orchard の1店舗は、時間と移動費の基準では Seattle 側の店舗より Kingston にはるかに近いが、「load more」ボタンを押さないと地図に現れない
      地域在庫確認機能も似たようなもので、商品が「近く」にあると表示されるが、実際には Puget Sound の向こう側の店舗にしかないことが多い
    • まさにそれが要点に近い。一般人にはナビゲーションのようなことのほうがはるかに複雑に見えるが、今では誰でも数時間でできる
      一方、見た目にはより単純なことは、簡単に解決されて API として提供されていなかったため、何年もかかることがあり得た。もちろん今では可能になった
    • 要点は GPS ではなく GIS だと思う。つまりナビゲーション問題ではなく、「この点はこの多角形の中にあるか」という問題で、それはやや簡単な部類だ
    • この観察は漫画の要点と矛盾しない。全体としてどの作業が難しいかではなく、現在の技術で何が難しいかを言っているのだ
      非開発者には、現在の技術がどの作業を些細に解決し、どの作業は解けないのかを知るのが難しいという意味だ。時間が経てば2つのカテゴリの分布は変わるが、一般人には簡単に分からないという点はそのままだ
      今日私たちがしているすべてのことも、ゼロから作り直すなら極めて難しいが、実際にはゼロから作り直す必要がないので、やりにくいことではない
  • 「うまく古びなかった」と言うこともできるだろうけれど、本当の要点である「簡単なことと事実上不可能なことの違いを説明するのは難しい」は、むしろさらに強まったと思う。
    ほとんど皮肉なことに、難しいことと簡単なことが入れ替わってしまった。10年前に誰が予想できただろうか。

    • うまく古びたと思う。実際、その問題は公開から5年後には簡単になった。
    • xkcd自体の代替テキストも見る価値がある:60年代にMarvin Minskyは、数人の学部生に、夏の間にカメラでシーン内の物体を識別するプログラムを作るよう命じた。夏が終わるころには問題は解けるだろうと思っていたが、半世紀後の今も私たちはなおその問題に取り組んでいる。
    • 2014年の時点でも、新しい研究そのものが必要というより、鳥を識別するには鳥の学習データが大量に必要だという点は明らかだった。
      https://en.wikipedia.org/wiki/DeepFace
    • 個人的には、まさにこの漫画がAI革命に火をつけたのではないかという思いを拭えない。
      記憶が正しければ、数週間か数か月後にYahoo/Flickr方面からこの問題、つまり鳥の識別に関する論文が出て、そこからすべてが一夜にして爆発したように見えた。実際にはそうではないと分かっているが、私にはそう見えた。
    • 各タスクにかかる計算量とエネルギーを見ると、今でも人間には単純に見える問題のほうが解くのが難しい、というのは正しい。
  • LLMが安定して解けるタスクとそうでないタスクを理解するのは、今でも非常に難しく、直感に反する。
    少し前、娘が発表の準備をしていて「パパ、野菜でHELLOという単語を作った写真を探してくれる?」と聞いてきた。
    「もちろん、これはChatGPTの出番だ」と思ったのだが、ChatGPTは宇宙服を着た猫がマティーニを飲む絵は作れても、野菜でHELLOを作った絵は確実には作れなかった。
    結局、アルファベットの各文字を野菜で作った画像を別々に作らせて、娘がそれらを貼り合わせ、発表で使う単語にした。

    • ChatGPTが実際にどう動いているかを知っていると、こういう話はいつも面白い。トークン化を知っていれば、なぜこれがChatGPT向きの仕事ではないのかすぐ分かる。
      STRAWBERRYの綴りを正しく数えられないのとまったく同じ理由だ。果物や野菜の概念を知らないからでも、メタファーやミームのような複雑な概念を理解できないからでもない。
      モデルは「hello」を個別の文字からなる単語として見ているのではなく、単一のトークン、gpt-4o基準ではID 24912のトークンとして見ている。このトークンの意味や他のトークンとの関係は知っているが、その単語を構成する文字そのものについては根本的に知らない。別途学習していたり、学習データ内の偶然の追加関係を利用したりする場合は例外だ。
    • flux.1なら可能。私の知る限り、現時点でテキスト処理では最も優れた画像モデルだ。
      Replicateでflux-proを使い、「vegetables spelling out the word "HELLO"」を入れた結果: https://ibb.co/1RVKmdk
    • Ideogram v2は最初の試行でこうなった:
      https://ideogram.ai/assets/image/lossless/response/v_LgyXI1Q...
      https://ideogram.ai/assets/image/lossless/response/V4RRDJZJS...
      最初の画像のニンジンがちょっと笑える。
      おまけのHacker News: https://ideogram.ai/assets/image/lossless/response/SW0B7y4jR...
    • Grok 2 Mini Betaはかなりうまくやった。
      https://i.imgur.com/mvnusFd.jpeg
    • ChatGPT 4oで今試してみたが、最初のプロンプトだけでも十分に良い結果が出た。
      プロンプトは上のコメントからそのままコピーした: https://chatgpt.com/share/66f530b0-3fb8-800a-8af9-8a3e48a31a...
  • 写真にありがちな鳥の色が含まれているかだけ検出してリリースすればいい。競合を叩きのめしたあとで、あとから直せばいい。

  • ディープラーニングの文脈と基礎をつかもうとしてこのチュートリアルシリーズをやったのだが、最初の授業がまさにこの漫画の鳥判定器を作ることだった。
    本当に簡単で楽しく、全体のコースも素晴らしい。プログラミングのバックグラウンドがあり、ディープラーニングをしっかり入門したい人には強くおすすめする。
    https://course.fast.ai/

  • 誰も指摘していないが、LLMはリクエストの2つ目の部分だけでなく、1つ目の部分でも進歩している。
    ChatGPTはis_point_in_national_park関数を書いてくれ、関連するshapefileまで約30秒で教えてくれる。漫画で言っていた「数時間」より何百倍も速いわけだ。

  • ビジョンLLMは本当に驚くべきものだ。
    2万枚を超える画像を説明し、リスト化するプロジェクトがあった。
    人間が行う従来の方法なら、数か月と莫大な費用がかかった作業だ。説明は顧客が読める品質である必要があった。
    OpenAIのビジョンAPIは画像1枚あたり数セントで処理し、総費用は200ドルもかからなかったはずだ。

    • OpenAIの説明が正確かどうか、人間が検収したのか気になる。
  • こうした誤解がほとんど消えるほど、テクノロジーリテラシーが臨界点に達する日は来るのだろうか、と思う
    10年前ならそうだと言っただろうが、今ではUX/UIの進歩とあらゆるもののアプリ化によって、平均的な人は細部から切り離されてしまったと思う
    個々の製品の観点では良いことだが、全体としては非現実的な期待を生むことがある。若い人たちが「なぜ x は単に y をしないのか」と尋ねるのを聞いたことがあるが、以前ならごく非技術系の親世代からしか聞かなさそうな質問だと思っていた
    80年代には、コンピューターは多くの人にとってほとんど魔法のようなものだったが、大半の人は実際にコンピューターとやり取りする必要はなかった。コンピューターへの期待は、地球外生命体に対する私の期待と同じくらい、ほとんど影響がなかった
    しかし、テクノロジーに対する魔法的思考は、個人的にも社会的にも、より大きな結果をもたらすのではないかと恐れている

  • @simonw、もしこれを読んでいたら、ちょっとしたお願いをしてもいいだろうか
    公開共有できるコーディング作業をライブ配信してもらうのは、さすがに大きなお願いだろうか?
    特に、今のエコシステムである Python、SQLite データ、JavaScript 周辺から、本当に多くを学べると思う