未来を形作るテクノロジーの深掘り記事。

Stack Overflowの衰退:代替品をめぐる5つの誤解

Stack Overflowの新規質問は月1,000件未満に。衰退をめぐる5つの誤解を検証し、LLMが開発者の知識システムに何をもたらすかを考えます。

ほぼ空っぽの巨大な図書館の閲覧室。暗い書架の間に、ひとり残った読者がいる
開発者の回答への入り口は移動しました。古い閲覧室はほぼ空っぽです。

Stack Overflowの新規質問は今や月1,000件未満です。これは2008年の立ち上げ2か月目よりも少ない数字です。過去15年の間にプログラミングを学んだ人なら、この数字には驚くはずです。インターネット上の開発者向け知識の基盤だったあのサイトが頭打ちになりました。手っ取り早い説明は「ChatGPTが殺した」というものですが、それは誤りか、少なくとも不完全です。そして診断を誤ると、私たちは今まさに次に来るものを無意識に設計しているので、その誤りは重要なのです。

私はここ数年、MLシステムを作ってきましたが、自分自身の質問の仕方が「検索して、回答を3つ読み、自分で統合する」から「エラーをチャットウィンドウに貼り付ける」へと崩れていくのを見てきました。というわけで、きちんと検証しましょう。Stack Overflowの衰退について繰り返し耳にする5つの思い込みを、実際の事実と照らし合わせます。

誤解1:LLMがStack Overflowを殺した

これは支配的な物語で、半分は正しいです。ChatGPTが2022年末にリリースされたことで衰退が明らかに加速したのは確かで、質問数のグラフはまさにその時期に急激に下向きに曲がっています。ただ、長期的な傾向を見ると、Stack Overflowの月間質問数はそれより何年も前にピークを打ち、誰もチャットボットにスタックトレースを貼り付ける前に、ピーク時の水準からおよそ半分まで落ちていました。2014年頃からほぼ横ばいで、2017年頃から減少傾向にあり、2020年にはパンデミックによる一時的な盛り返しがありました。

実際に起きたのは、慢性疾患を抱えた患者に、別の何かが致命的な一撃を加えた、という状況に近いものです。慢性疾患は自ら招いたものでした。正規の回答を最適化する一方で、質問する人間を後回しにするモデレーション文化です。既存の質問と80%重なる質問をすると、残りの20%の違いこそが本題であっても重複として閉じられました。モデレーターは質問文を無機質な社内スタイルに書き直しました。新規ユーザーはすぐに、質問すること自体が試練だと学びました。一方で、かつては1日に数千件の新規投稿を生んでいた簡単な質問は、2015年までにはすでに聞かれ尽くして回答されていました。

つまりLLMが登場したとき、Stack Overflowの最盛期に勝つ必要はありませんでした。そこで質問する体験に勝てばよかったのです。低評価もなく、重複フラグもなく、「ドキュメントを読んでください」という通りすがりのコメントを3日待つこともありません。モデルは即座に、丁寧に、そしてあなたのコードの文脈で答えます。これはフェアな勝負ではなかったし、最初からそうでした。判定:LLMは死刑執行人でしたが、引き金を引けるように銃を装填したのはコミュニティの力学でした。

誤解2:コンテンツには今も価値があるのだから、サイトは生き残る

「Stack Overflowのコーパス(数千万件の回答済み質問)があるから、サイトの存続は保証されている」という安心できる考え方があります。しかし、それは成り立ちません。最近検索したことがある人なら誰でも知っている理由があります。回答が時間に固定されてしまっているのです。2013年に回答された人気のJavaScriptフレームワークの質問は、今では最上位の回答が古いだけでなく、積極的に誤解を招く内容になっています。そしてサイトの構造が訂正を阻みます。正規の質問を聞き直して最新の回答を得ることはできません。古い質問の重複として閉じられてしまうからです。承認された回答は、4年後に投稿されたより良い回答が3倍の高評価を得ていても、上部に固定されたままです。

更新できない知識ベースは資産ではなく、SEOのよくできた負債です。そして皮肉なのは、このコーパスに残された主な収益化の道が、AI企業に学習データとしてライセンス供与することだという点です。Stack Overflowは実際にそのような取引を結び、コンテンツを書いた貢献者自身の間で反発を招きました。彼らが合意したのは、オープンなデータと引き換えに無償で回答するという取り決めでした。それを売ることは、その暗黙の契約を破ることになったのです。評判の高いユーザーの中には、抗議として自分の回答を削除したり、改変したりしようとした人もいました。最も価値あるユーザーが資産を妨害しているなら、それは持続可能な事業ではなく、清算です。

ドメインは古いリンクによるトラフィックだけでも価値があるので、今後数年は稼働し続けると思います。しかし新しい知識を生み出す生きたシステムとしては、終わっています。判定:誤り。コンテンツは劣化し、その劣化を直せない構造になっています。

誤解3:LLMが知識の機能を完全に置き換えた

ここで私は意見を述べます。この誤解は逆方向の話で、AI楽観派のバージョンですが、これも間違っています。Stack Overflowは、LLMが根本的にできないことをしていました。それは新しい知識の生成です。真新しいライブラリが、わかりにくいAPIとドキュメントゼロでリリースされたとき、誰かが壁にぶつかって質問を投稿し、その答えを見つけた人がインターネット上で初めての公開された解説を書きました。その回答は、その後の全員にとって学習データ、検索結果、そして代理のドキュメントになりました。

LLMは、このループの「想起と統合」の部分にはきわめて優れていますが、「生成」の部分には構造的にできません。2週間前にリリースされたフレームワークと特定のPostgres拡張機能の間にある、マイナーな相互作用について尋ねると、流暢で自信に満ちた、でっち上げの回答が返ってきます。誰もまだどこにも書いていないからです。私は急速に進化するML関連ツールでこの問題に何度も遭遇しました。モデルは自分が知らないことを知りません。先週火曜日にリリースされたことも、もちろん知らないのです。

ここが懸念すべき部分です。モデルが消費できるテキストとして、基礎となる知識を誰かがどこかで今も生成している限り、非常にうまく機能する答えへの入り口を私たちは作ってしまいました。Stack Overflowは最大の生成源の一つでした。生成源を失い、統合装置だけを残せば、ゆっくりと飢える知識システムができあがります。モデルの世代が交代するたびに、少しずつ古く、少しずつモデルで汚染されたウェブで学習されるのです。AIベンチマークが実務の大部分を捉えられない理由についての記事を読んでいただいていれば、これはエコシステム全体で同じギャップが起きているということです。測定可能で流暢な回答の部分は処理されている一方で、困難で地味な生成の部分は資金を失いつつあります。

私たちは知識システムを置き換えたのではありません。インターフェースを置き換えて、インターフェースが本当に難しい部分では一度もなかったことを忘れたのです。

判定:誤り。そしてこのリストで最も危険な誤解です。

誤解4:より良くモデレートされたクローンなら生き残れたはず

事後分析の多くは、Stack Overflowの文化に焦点を当てています。重複を多用するモデレーター、書き直される質問、新規参加者への冷たさです。そして、もっと親切なQ&Aサイトなら繁栄していたはずだと結論づけます。私はそうは思いません。文化が衰退を加速させたのは確かですが、構造的な問題は、温かく歓迎的なクローンでさえも沈めていたでしょう。ボランティアの専門知識の経済性が崩壊したのです。

知識のとろ火が途中で吸い上げられ、底に届く前に失われていく砂時計
LLMは知識のパイプラインの中間から価値を吸い上げ、供給源は枯れていきます。

2012年に専門家がなぜ質問に答えていたかを考えてみてください。評判ポイントは本物の資格でした。採用担当者がプロフィールを見ていたのです。回答することは、技術を深く学ぶ方法でもありました。そして目に見えるコミュニティがありました。同じ名前を何度も見かけ、ステータスを築き、チャットや関連サイトを通じて実際に会う人もいました。2010年代後半までには、その3本柱のすべてが弱まっていました。サイトの文化的な評価が下がるにつれ、資格としての価値は薄れました。回答による学習のインセンティブは残りましたが、答える価値のある質問は干上がり、残った待ち行列は、説明の不十分な初心者の投稿に偏るようになりました。そして最も熱心な人たちが離れていったり、再ライセンスやデータ契約に抗議して去ったりしたため、コミュニティは薄くなりました。

そして、LLMが最後のインセンティブを取り去りました。架空のポイントのために、40分かけて丁寧な回答を書く理由がどこにあるでしょうか。質問者は別の場所で即座にまずまずの回答を得られるのです。しかも、あなたの回答は結局、ライセンスの曖昧な学習データとして使われるだけかもしれません。この話題に関する最近の議論のあらゆるスレッドには、元高評価ユーザーの「回答するのが好きだったのに…ただ、やめてしまった」という趣旨の声が溢れています。最近の議論で、ある人は評判スコア29,000、回答645件という実績を挙げ、このサイトがまだ存在していることを思い出すのにも考えなければならなかったと書いていました。そこから、モデレーション方針のA/Bテストはできません。判定:概ね誤り。親切さは出血を遅らせることはできても、止めることはできなかったでしょう。

誤解5:その代替品もウェブサイトの形をしている

数か月ごとに「AI時代のStack Overflow」を発表する人が現れますが、形はいつも同じです。投票とバッジのある公開Q&Aサイトです。それは分析ではなく、ノスタルジーだと思います。実際に現れつつある代替品は、階層化されたシステムであり、公開されている層は一つだけです。

私が一緒に働いているチームを見ていると、開発者の知識は今おおよそ4つの経路を流れています。

  • 入り口としてのLLM。ほぼすべての最初の一手です。特にエラーやAPIの使い方について使われます。速く、プライベートで、社会的なコストがありません。この層は勝利しており、戻ってくることはありません。
  • プライベートなチームの記憶。社内wiki、Slackのアーカイブ、そして自社のコードベースやポストモーテムを参照する検索拡張型アシスタントが増えています。今、真に価値のある新しい知識はここにあります。そして意図的に公開されていません。
  • シグナルの高い公開コミュニティ。特定ツール向けのDiscordサーバー、GitHub Discussions、Issueトラッカーなどです。小規模で温かく、モデレーションが機能するほど範囲が絞られています。新しいライブラリについて本当に知りたいことがあるとき、私は一般的なQ&Aサイトではなく、そのDiscordに行きます。
  • 一次情報。ドキュメント、RFC、そしてコードそのものです。ソースを読むことは、最後の手段から二番目の手段へと変わりました。一部には、AIツールによって不慣れなコードベースを探索する手間が劇的に安くなったためです。

欠けているものに注目してください。難しい新しい質問が、誰もが利益を得られるように答えられる、単一の公共の共有地がないのです。どの層も個別には合理的ですが、全体としては貧しくしています。プライベートなチームの記憶は外に漏れません。Discordサーバーは外部から検索できず、アーカイブにも不向きです。これはウェブが記憶を失うことという文脈で書いた問題でもあります。そしてLLMの入り口は、公開テキストを消費しながら、何一つ生み出さないのです。

判定:一枚岩のサイトが死んだことは確定しています。未解決の問いは、階層化された代替品が公共の層を維持できるのかどうかです。

飢えない知識システムを設計する

開発者ツール、社内プラットフォーム、コミュニティのインフラを構築しているなら、Stack Overflowの事後分析には具体的な教訓があります。私は4つの設計原則にたどり着きました。4つ目は、私たちがうまく解決できているか最も自信がない原則だと認めます。

第一に、鮮度を機能として扱い、モデレーションの問題として扱わないこと。Stack Overflowは古い回答を正規のものとして扱い、新しい見解を重複として扱いました。これを逆転させてください。回答にバージョンを付けましょう。主要なフレームワークのリリースごとに質問を再度投げられるようにし、時間的な文脈を明示してください。「React 19時点では」と書かれていれば、永遠に変わらない単一の回答よりずっと良いです。これをうまく扱っているシステム(バージョン管理されたページを持つ公式ドキュメントや、一部のwiki)は、今でも人々が信頼しているものです。

第二に、評価のループをワークフローに組み込むこと。Stack Overflowの天才的な点は投票でした。回答の質を示す、安価で持続的なシグナルだったのです。LLMの回答にはデフォルトでそのようなループがありません。手に入るのは流暢さであって、検証ではないのです。私の経験では、解決策はモデルに自己確認させることではありません(それは大抵、自信ありげな同意を生むだけです)。現実と接触させることを強制することです。コードを実行し、バージョンを確認する。定型コード以上のものにLLMを使うときは、その出力をインターンのプルリクエストと同じように扱います。テストされるまではもっともらしいだけです。AI生成コードに対する理解確認とテストの比較の記事では、それぞれの手法がどこで失敗を捕まえるかを詳しく扱っています。AIアシスタントから本当に価値を得ているチームは、文章を信用したのではなく、テストとリンターを生成ループに直接組み込んだチームです。

第三に、インセンティブは無料の代替手段と接触しても生き残らなければならないこと。即座にプライベートな回答が手に入るようになった瞬間、ポイントやバッジは死にました。では、何が人々に公開で書き残すことを今も促すのでしょうか。特定のコミュニティ内での評価(グローバルよりスコープが絞られている方が良い)、直接的な職業上の利益(自分の名前がつくドキュメントへの貢献、カンファレンスの講演材料)、そして、今日誰かを助けることが来月自分を助けてくれることにつながるほど小さな場での互恵性です。リーダーボードのゲーミフィケーションではなく、それらのために設計してください。

第四(これが難題です)、公共の生成層を生かし続けること。先週リリースされたものについて最初の回答を書く人が必要です。しかもクローラーや将来のモデルがアクセスできる場所にです。今、その負担はGitHubのIssue、個人ブログ、ベンダーのドキュメントに、むらがあり、調整もされないまま降りかかっています。ツールベンダーであれば、これは実際にはチャンスです。製品のための、よく管理された公開のディスカッションフォーラムは、今や競争上の優位性です。それがモデルがあなたについて何を語るかを決めるからです。そして、チームが苦労して得た社内知識が、人が辞めたときに消えるのではなく積み上がっていくことを望むなら、自社のドキュメントに根ざした社内アシスタントは、人々がwikiの更新を覚えていることを期待するよりずっと優れています。ただし、ドキュメントを書くインセンティブも同時に直す場合に限ります。

失ったものの正体

ノスタルジーを剥がしてしまえば、Stack Overflowの衰退は、技術インフラがどのように朽ちるかのケーススタディです。単一の打撃によってではなく、ずれたインセンティブが何年もかけて積み重なり、代替品が朽ちを見えるようにするまで続いたのです。このサイトは成果物、つまり正規の回答を最適化し、成果物は、そこに現れる理由を必要とする人々によって作られるということを忘れてしまいました。

私が支持する現実的な立場はこうです。少しだけ悼み、それから設計課題として扱うことです。LLMの入り口は、Stack Overflowがしていたことの90%については本当に優れており、悲しむふりをするのではなく、そのことを声に出して言うべきです。しかし残りの10%、つまり新しい公開知識を生成すること、それを現実に照らして検証すること、新鮮に保つことは、今やみんなの問題であり、誰の仕事でもありません。そのインセンティブの問題を残りの10%について解決するチームとコミュニティが、次の10年の開発者の知識を手にするでしょう。チャットボットがすでに解決済みだと考えるところは、ゆっくりと、そして一気に、誰も書いていない回答に何の価値があるのかを思い知ることになるでしょう。