Anthropic が Claude Mythos 5 の再展開を一部の米国組織に対して認められた、というニュースを X で流れてきたときに思わず二度見した。6月12日に輸出規制で全面停止になって、「まじか」ってなったやつがまた動き始めるらしい。
一方で Claude Fable 5 は引き続き停止されたままで、一般提供の再開に向けた協議中という状況だ。Mythos と Fable の二本立てで止まっていたのに、片方だけが先に動き出すというのは少し複雑な気持ちがある。自分が個人開発で使っているのは Anthropic の API で、Claude 3.5 Sonnet 系をメインに叩いている。今のところ自分の手元では停止の影響は受けていないが、今後のモデル選定には関係してくる話だ。
停止中に気づいたモデル依存のリスク
正直、6月12日の全面停止を知ったとき、個人開発のコードがどのモデルに紐付いているかをちゃんと把握していないことに気づいた。ハマったのが、`model` パラメータをベタ書きしていた箇所が複数あって、どのファイルに書いたかすぐ追えなかったこと。grep すれば一発だけど、環境変数に切り出してもいなかった。
grep -rn 'claude-' ./src --include='*.ts'これを叩いたら 7 ファイルにわたってモデル名がハードコードされていた。えぐい。普段 API コスト最適化ばかり気にしていて、モデルの可用性リスクをまったく考えていなかった。今回の件は自分にとってリファクタリングの口実になった。
やったこととしては単純で、`.env` にモデル名を逃がして、呼び出し側は定数を参照するようにした。
# .env
ANTHROPIC_MODEL=claude-3-5-sonnet-20241022
ANTHROPIC_FALLBACK_MODEL=claude-3-haiku-20240307fallback の概念を持たせることも検討中だ。Mythos 5 や Fable 5 のような突然停止パターンに備えるなら、モデルをすぐ切り替えられる構造にしておくのが現実的だと思っている。
Fable 5 の停止継続が自分の選定に与える影響
記事によれば Fable 5 は「広範な知識を活かした高度なプログラミング能力」と説明されていたモデルだ。停止前に Fable 5 の API を試した人の感想を X で何件か見ていて、コード生成の質がかなり高いという評価が多かった。自分も試してみたかったやつで、そのまま止まったのは普通に惜しい。
チームの同僚と先週話したとき、「Fable 5 待ちで評価を止めていたんだけど、どうしよう」と言っていた。うちは 5 人のスタートアップで、LLM を組み込んだ機能開発のタスクが 2 本走っている。モデルを決め打ちして実装を進めるのか、汎用的に切り替えられる設計にしておくかという判断を迫られている場面だ。今は OpenAI の gpt-4o をサブで並走させているが、コストと品質のバランスは毎月見直している。
再開協議が続いているということは、完全に終わった話ではない。ただ、いつ使えるようになるかわからないモデルに実装を合わせておくのは現実的ではない。Mythos 5 が先に一部復活した流れからすると、Fable 5 もある程度時間をかければ戻ってくるのかもしれないが、待ち続けるのも違う。
今の自分の対応方針
当面の方針は、モデル名を抽象化して設定ファイルに集約したうえで、現時点で使えるモデルのなかで最適なものを選ぶというシンプルなやつだ。神みたいな新モデルが突然出ても、突然止まっても、コード全体を触らなくて済む構造にしておく。
あと今回の件で地味に参考になったのは、Anthropic が停止後に速やかに再開の判断を進めた点だ。記事には「できる限り速やかに対象を拡大する」という方針が書かれていた。企業として API を使い続けるかどうかの信頼性評価にも関わる部分なので、そこはちゃんと見ておきたい。
自分のコードがどのモデルに紐付いているか、今すぐ確認してみるといいと思う。意外と散らばっているはずだ。