AI・機械学習
Fableは有用なモデルではない
Fable is not a useful model (combine-lab.github.io)
要約
AnthropicのAIモデル「Fable」は、リリース直後に輸出規制がかかるなど混乱がありましたが、筆者は特にコンピュータサイエンスの研究レベルのタスクにおいて、その有用性に疑問を呈しています。RNA-seqデータ解析ツールのRustへの書き換えを依頼したところ、安全上の懸念から拒否された経験から、Fableの安全性分類器は誤って設定されており、有用なタスクを不当に却下する可能性があると指摘しています。
全文翻訳
Fableは有用なモデルではない
Rob Patro
2026年7月7日
AnthropicのFable(Mythosの「安全性を重視した」バージョン)のリリースは、多くの理由でジェットコースターのようなものだった。
元々6月9日にリリースされたが、6月12日には米国政府がFableとMythosに輸出管理措置を課した。これは、Anthropicが米国市民以外、自社の従業員でさえも、そのモデルを提供できないことを意味した。厳格な法的措置のリスクを負って全てのユーザーを確認することの不可能性から、モデルの提供を継続することは事実上不可能となり、Anthropicはそれを撤回した。数週間の交渉の後、輸出管理措置は解除され、Anthropicはモデルへのアクセスを復旧させた(一般に利用可能なのはFableのみで、Mythosは依然として特定の事前承認されたパートナーにのみ利用可能である)。もちろん、これら全てはオンラインで多くのドラマを引き起こし、多大な憶測と多くのニュース記事につながった。それにもかかわらず、私がここで焦点を当てたいのはそれではない。むしろ、少なくともコンピュータサイエンスにおける研究レベルのタスクにおいて、Fableが有用なモデルではないと私が考える理由を説明したい。
最初の失敗(理解はできるが、実際にはそうではない)
私は、RNA-seqデータからの転写産物定量化のための広く使用されているツールであるsalmonを書き、保守している。オリジナルのsalmonコードはC++11/14で書かれており、今年の初めに、私はそれを(ChatGPTの助けを借りて)少し更新・モジュール化し、C++20標準に準拠させた。しかし、私のより野心的な目標であり、かなり前から持っていたのは、salmonをrustで書き直すことだった。注:これは最終的に実現し、salmon 2(すでにC++バージョンを凌駕し、急速に新機能を追加しているが、それは別の投稿で触れる)となった。最初のFableリリースが6月9日にドロップしたとき、私の最初の考えは、salmonの書き直しをオーケストレーションするためにそれを使用することだった。さて、私は以前に、ラボで開発されたいくつかの他のライブラリやプログラムを、主にOpus(4.6-4.8)の助けを借りてC++からrustに移植または書き直すことに成功しており、それらは比較的スムーズに進んだ。そこで、Fableがどのように比較されるかを見るのに良い機会だと思った。残念ながら、実装手順やテスト詳細を含む詳細な説明とポート narrativa を作成するのに時間を費やした後、私はFableにクエリを(「プラン」モードで)送信し、それはすぐに安全上の懸念でクエリをフラグ付けし、拒否し、代わりにOpus 4.8に送信することを申し出た。当然、なぜプロンプトが拒否されたのかを知りたかった。Anthropicは、Fableが「分類器」を使用して、どのプロンプトが拒否され、どれが許可されるかを決定すると主張しているが、この分類器が驚くほど誤って調整されていることは広く報告されている。名目上、私のプロンプトは、RNA-seqデータを扱うソフトウェアに取り組むことを含んでおり、ドキュメントやソースコード内の生物学的な用語がプロンプト拒否をトリガーするために必要なレッドフラグを立てたために拒否されたようだ。私は、私が既存の、オープンソースで、広く使用され、公開されているC++ソフトウェアツールをrustに書き直すことを求めているだけだと、Fableに説明しようとしたが、無駄だった。書き直し自体は、新しい「生物学的」研究を伴わない。最初の依頼は純粋にソフトウェアタスクであり、それはFableの得意分野であるはずだ。しかし、Fableはプロンプトを拒否しただけでなく、なぜプロンプトを拒否したのかを詳細に開示または説明することを拒否し、この問題を回避するためにどのようにプロンプトを入力すればよいかを理解するのを助けることさえ拒否した。おそらく15分から30分間のプロンプトの言い換えの試みが失敗した後、私は諦め、Opus 4.8で続行した(Opus 4.8は喜んで対応し、結局、ポートをうまくこなした)。しかし、これは私が「分類器」が分類器というよりは、おそらく単純な用語とユーザーの拒否リストであり、生物学的研究(そしておそらくサイバーセキュリティ研究)に関連する主題(またはユーザー)と関わることさえ拒否しているという最初の兆候だった。この試みは非常に残念だった。セキュリティリスクや影響が全くないことが明らかであるにもかかわらず、Fableは私が得意とするはずの作業に私と関わることを断固として拒否した。ソーシャルメディアを覗いてみると、私の経験は、Fableが「私は誰?」、「ミトコンドリアとは?」、「そして…夕食は何にすべき?」といった無害なプロンプトさえ拒否した生物学者を含む、他の多くの人々と共有されていることを知った。本当に奇妙だ。
第二の失敗(許されない)
Fableに他の課題を課すことを考えていたが、それは消え、6月12日に管理者の輸出管理措置の犠牲となった。したがって、私がそれを試したい興味深い作業を他に思いついていたにもかかわらず、モデルは単に利用できなかった。7月1日、管理者に(そして何が起こったのかについて多くの詳細を提供せずに)納得した後、AnthropicはFableを再リリースした。この再リリースで、彼らはさらに厳格なセーフガードに言及した。それにもかかわらず、Fableは戻ってきたので、もう一度試してみることにした。
セットアップ:
大学院の終わりに、「ネットワーク進化の節約的再構築」に関する論文に取り組んだ。これは基本的に、ネットワーク(例えばタンパク質相互作用ネットワーク)が与えられ、関与するタンパク質の遺伝子重複、生成、削除イベントの系列があった場合、観察されたネットワークを再構築する相互作用の獲得と喪失の節約的な歴史を再構築できるか、という問題である。形式的な問題ステートメントは、論文に、複数世代や複数種などとともに記載されている。それにもかかわらず、私たちは興味深い発見をした。節約基準の下で問題をモデル化すると、効率的な(多項式時間)動的計画法があり、(多くの解が存在しうるが)最も節約的な解が得られる。論文で採用したモデルでは、タンパク質は親の相互作用状態を継承し、相互作用の生成と削除を別々に考える必要はなく、単純にタンパク質間の「相互作用の反転」(つまり、それらが相互作用しており、もはやそうしたくない場合、相互作用をオフに反転させる;それらが相互作用しておらず、そうしたい場合、相互作用をオンに反転させる)を考慮する。しかし、動的計画法によって生成される解は、物理的に実現不可能である場合がある。どのように?私たちの遺伝子ツリーに、互いに子孫ではない2つの異なるタンパク質AとBがあると仮定しよう。Aの左子を$A_l$、右子を$A_r$と表記し、Bの左子を$B_l$、右子を$B_r$と表記しよう。ここで、動的計画法が以下の相互作用変化のセットを含む節約的な解を特定すると仮定する。それは、$A_l$とBの間の相互作用状態を反転させ、さらに$B_r$とAの間の相互作用も反転させる。この特定の反転セットは、物理的に実現不可能である。なぜなら、$A_l$がBと共存している(したがって遺伝子AはBより前に重複したはずである)と仮定しているからだ。しかし、それはまた、$B_r$がAと共存している(したがって遺伝子Bが最初に重複したはずである)と仮定している。私たちはこの構造を「ブロッキングループ」と呼ぶ。これらのタイプの単純なブロッキングループ(2回の相互作用反転と2つのツリーエッジを含むもの)は、一般的に禁止できることがわかった。しかし、それ自体は実現可能な相互作用反転の任意の長い連鎖を構築できるが、さらに1回の相互作用を追加すると、相互作用反転のシーケンス全体が物理的に実現不可能なループになる。このグラフィカルな例については、図2を参照してください。したがって、節約的な履歴(つまり、最小の反転セット)を見つけるための動的計画法を考案することはできたが、すべてのブロッキングループを回避しながらそれを行うことはできなかった!私たちは最終的にヒューリスティックに落ち着いた。まず、節約的な履歴を見つける。ブロッキングループがなければ、それで良い。ブロッキングループがある場合は、ループ内の1つのエッジを選択し、それを禁止し(動的計画法でそのコストを無限大に設定し)、動的計画法を再実行する。ブロッキングループのない解が見つかるまでこれを続ける。特定のエッジが禁止された解は