最も効率よく人を救う者が隣人を見捨てる

Share

最も効率的に人を救おうとした者が、やがて隣にいる友人を見捨てることになる。これは倫理学の暴走ではない。善意の正確な帰結だ。

膝丈の水

ピーター・シンガーが1972年に書いた論文 "Famine, Affluence, and Morality" に、ひとつの思考実験がある。

出勤途中、膝丈の浅い池で幼い子どもが溺れている。周囲に誰もいない。あなたは新品のスーツを着ている。助けるか。当然、助ける。スーツが台無しになっても、会議に遅刻しても、子どもの命には代えられない。ほとんどの人がそう答える。

ではシンガーは問う。遠い国で同じ年齢の子どもが飢餓で死にかけているとき、あなたはなぜ同じように行動しないのか。数千ドルの寄付で救える命がある。あなたは昨日、同じ額を何か別のものに使った。

物理的な距離は、道徳的に何かを変えるのか。シンガーの答えは明快だった。変えない。

この論理を受け入れた瞬間、日常は足元から崩れる。友人への贈り物も、旅行も、趣味に使うお金も、すべて「救えたはずの命」との引き換えになる。あなたはもうボタンを押している。ただ気づいていないだけで。

これが効果的利他主義(Effective Altruism)の出発点だった。限られた資源で最大限の善をなす。美しい理念だ。だが、この理念を最後まで追いかけると、いくつかの厄介なパラドックスが浮かび上がる。

百万人の統計

効果的利他主義は、人間の共感の欠陥を理性で補完しようとする試みだ。しかし、その「欠陥」は想像以上に根深い。

心理学者ポール・スロヴィックの研究は、人間の共感が人数の増加とともに急速に減衰することを示した。サイキック・ナンビング(psychic numbing)と呼ばれるこの現象では、一人の苦しみには強く反応できても、百人、千人、百万人となると感覚が麻痺していく。

実験がある。Save the Childrenへの寄付を募ったとき、七歳の少女ロキアの写真と名前を見せたグループは、「アフリカの数百万人が飢餓に苦しんでいる」と統計を示されたグループの二倍以上を寄付した。顔が見えると人は動く。数字を見ると、財布を閉じる。

これは人間の道徳的直感の構造的な限界であり、何人殺せば正しくなるのかという問いにも通じている。トロッコ問題で五人と一人を天秤にかけるとき、私たちは数の論理で判断しているつもりで、実際には感情の射程距離に支配されている。

効果的利他主義はこの限界を超えようとした。共感ではなくデータで判断せよ。感情ではなくエビデンスで行動せよ。GiveWellのような評価機関が慈善団体を費用対効果で順位づけし、「一人の命を救うのに最もコスト効率のよい方法」を算出する。

しかし、共感を理性で置き換えるとき、何かが抜け落ちる。優しい人から壊れるのは、共感が有限の資源だからだ。共感疲労(compassion fatigue)とは単なる心理的な消耗ではなく、そもそも人間の道徳感覚が大規模な苦しみを処理するようには設計されていないことの証左かもしれない。EAは理性でその隙間を埋めようとする。しかし理性だけで動機づけは持続するのか。スプレッドシートの前で泣ける人間は、おそらくそう多くない。

善のために稼ぐ

効果的利他主義の内部から、ひとつの戦略が生まれた。Earn to give。論理はこうだ。心から世界をよくしたいなら、NGOで薄給で働くよりも、投資銀行やテック企業で大金を稼ぎ、その収入の大部分を最も効果的な慈善団体に寄付するほうが、総合的な善の量は大きくなる。ウィリアム・マッカスキルが共同設立した80,000 Hoursは、この考え方を体系化した。直接的な社会貢献よりも、高収入の職業を選ぶことが「最も社会的インパクトの大きいキャリア」になりうるという主張だ。

手段と目的の転倒は、容易に予見できる。永遠の素振りの構造がそのまま当てはまる。いつか善をなすために今は稼ぐ。稼ぐことに習熟するうちに、稼ぐこと自体が目的に変わる。寄付は「いつか」に先送りされ、環境が人を変え、22歳の利他主義者は40歳の合理的な利己主義者になる。

サム・バンクマン=フリードの事例は、このリスクの極端な帰結だったのかもしれない。暗号資産取引所FTXの創設者であり、効果的利他主義の象徴的な支持者だった彼は、「将来もっと大きな善をなすために今は稼ぐ」戦略を公言していた。2022年にFTXは崩壊し、詐欺と資金洗浄の罪で起訴された。

EAの支持者たちは、彼の行為はEAの理念に反すると主張した。シンガー自身も、一個人の不正がEAそのものを否定するわけではないと擁護している。それはおそらく正しい。しかし問うべきは、理念が個人を免責するかどうかではなく、「より大きな善のためなら」という思考構造がどこまで引き伸ばせるかということだろう。功利計算の果てに何が待っているのかは、すでに別の思考実験たちが示唆している。善も正義もないと呟きたくなるような結末が。

まだ存在しない人々

効果的利他主義の一部は、さらに奇妙な方角へ進んだ。長期主義(longtermism)と呼ばれる立場だ。

今生きている人よりも、将来生まれてくる人々の利益を優先すべきだと主張する。論理はこうだ。今後数千年、数万年のあいだに生まれてくる人間の総数は、現在の80億をはるかに超える。功利計算において「より多くの人々のより大きな幸福」を最大化するなら、現在の苦しみよりも、人類の長期的存続を脅かすリスク(existential risk)に資源を集中するほうが合理的になる。

だからマラリアの蚊帳を配るよりもAIの安全性研究に投資すべきだ。今日死ぬ子どもよりも、100年後の文明の存亡のほうが「数的に」重い。

この論理を最後まで追いかけると、目の前で溺れている子どもを見捨てることが「正しい」判断になりうる。スーツを汚す時間があるなら、AIアラインメントの論文を一本でも多く読め。シンガーの思考実験は距離を問わず助けよと命じた。長期主義はそこに時間的距離を持ち込むことで、その命令を静かに反転させてしまった。

批判者たちはこの構造を「天文学的な将来価値」への投機と呼ぶ。不確実な未来のために確実な現在を犠牲にする。しかもその投資の成果を検証する者は、まだ存在しない。

届かない贈り物

効果的利他主義のもっとも深い困難は、おそらく計算の精度にはない。「善をなす」とは何かという問いそのものにある。

GiveWellの試算によれば、マラリア予防の蚊帳配布で一人の命を救うのにおよそ数千ドルを要する。この数字は検証可能で、比較可能だ。しかしこの数字はまた、人間の命を交換可能な単位として扱うことを前提にしている。五人の命は一人の五倍の価値がある。この前提がどこまで妥当なのかは、功利主義がつねに問われてきた核心にほかならない。

さらに厄介なのは、何が「最も効果的」なのかという問い自体が、EA内部でも激しく争われていることだ。グローバルヘルス(蚊帳、ワクチン、水質改善)を重視する立場と、existential risk(AI安全性、パンデミック予防、核戦争回避)を重視する立場は、同じ原則から出発しながらまったく異なる結論に至る。

どちらが正しいかを決める方法は、存在しない。「正しさ」を定量化する指標そのものが争点だからだ。善を計算しようとした瞬間に、計算の基準が問題になる。基準を決めようとすると、基準の基準が問題になる。あなたの贈り物は届かないとしたら、それは贈与が本質的に不可能だからではなく、「正しく届けること」の定義が永遠に確定しないからかもしれない。

そして配られたカードを見ろと言われたとき、私たちは自分がどのカードを持っているのかすら正確には知らない。資源の再分配を論じるには、まず何が資源で、誰がそれを「持っている」のかを定義しなければならないが、その定義もまた争いの対象になる。

終わらない計算

効果的利他主義は、善意を算術にかけた。そしてその算術は、いくつかの不都合な答えを返した。

身近な人より遠くの見知らぬ人を助けるべきだという答え。自分の幸福をすべて犠牲にすべきだという答え。今善いことをするより将来のために稼ぐべきだという答え。今日の苦しみより百年後の苦しみに投資すべきだという答え。

どの答えも、論理的には筋が通っている。そしてどの答えも、人間がそのまま受け入れるには冷たすぎる。

おそらく問題は、善意を最大化しようとすること自体にあるのかもしれない。善を計算可能な量として扱った瞬間に、善はスプレッドシートの上の数字になる。数字になった善は、比較され、順位づけられ、最適化される。最適化された善を、まだ善と呼べるかどうか。

シンガーの池の前に、私たちはまだ立っている。子どもはまだ溺れている。そして計算機は、いまだ答えを返さない。

Read more

Dependabotの対応が面倒なのでRenovateを導入する

Dependabotくんはある程度の依存関係の更新を通知してくれるが、山のようにprojectを抱えているとなんとも痒いところに手が届かない。 ということで、Renovateを使ってみる。 Build software better, togetherGitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.GitHub ここからGitHub Appを入れる。 あとは、指示に従ってポチポチするだけで、超かんたんだった。 感想 自動化最高。

By Sakashita Yasunobu

nodejsのバグを見つけたのでPRを投げてみた

概要 要するに、node --testで特定のバイナリを標準出力に書くと、テストランナーが固まったり、異常終了したりするバグです。 バグ自体は既知のものだったようで、修正がされていました。 test_runner: infinite loop in FileTest#drainRawBuffer when child stdout contains FF 0F followed by large size bytes · Issue #62693 · nodejs/nodeVersion v25.9.0 (also reproduced on v24.14.1 LTS, v22.21.0 LTS, v23.4.0) Platform Darwin 25.

By Sakashita Yasunobu
青空文庫のParser

青空文庫のParser

青空文庫のParserを作ってます。 GitHub - P4suta/aozora: Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks.Pure-functional Rust parser for 青空文庫記法 (Aozora Bunko notation): ルビ, 傍点, 縦中横, 外字, 返り点, indent containers, page breaks. - P4suta/aozoraGitHubP4suta Rustで作ってますが、配布物はcargoのほかにnpm/pypiでも入手できます Documentation * Playground — try it in

By Sakashita Yasunobu