計算方法は公開し、ソースコードだけ非公開にする
たとえば、設計レビューです。独自の需要予測について、計算方法は技術ブログに書き、ソースコードのリポジトリは社内だけが見られる、という案が出ます。狙いは、考え方は共有しても、同じプログラムをすぐコピーできないようにすることです。
少し前まで、同じソフトウェアを作り直すには費用がかかりました。複雑な処理を、別の人が実用できる水準まで作るには、専門知識と時間と計算機が要ります。ソースコードを非公開にしても、それだけで安全になるわけではありません。非公開だけに頼ると危ない、というのはセキュリティの基本です。それでも、作り直す費用が高いあいだは、同じものをすぐ作る人は少なかったです。
2026年10月26日、米国の非営利団体SecureBioは、英国の公的機関であるAI Security Institute(AISI)と共同で、この費用が今もどれだけかかるかを測る評価を公開しました。名前はReproBAIT(Reproducing Biological AI Tools)です。コーディングエージェントに、生物学の研究で使うAIツールを、元のソースコードを渡さずに作らせる評価です。ここでいうエージェントは、文書を読み、コードを書き、実行して直すAIです。
最初に確認したいのは、次の点です。ソースコードを非公開にしたとき、守れているのはファイルですか。それとも、そのファイルが行う処理ですか。
エージェントに渡したのは、論文と学習データです
ファイルか、そのファイルが行う処理かを分けるには、実験の条件を先に見る必要があります。エージェントに、元のソースコードは渡していません。渡したのは、論文と学習データです。
対象は生物学のツールです。分子を設計するもの、タンパク質の配列を設計するもの、タンパク質の構造を作るものです。分野は生物ですが、測っているのは開発の作業です。仕様を読み、必要な処理を推測し、プログラムを書き、学習し、結果を見て直す。この一連を、エージェントがどこまで進められるかを見ています。
これは、これまでの使い方より広い範囲です。以前は、人が仕様を決め、AIにコードの一部を書かせ、人が実行するのが中心でした。
広くしたうえで、渡し方を制限しています。実行環境は、インターネットに接続していません。GPUはNVIDIA A10Gが1枚、メモリは最大128GBです。学習データは、元の論文で使ったものを最初から置いてあります。エージェントが自分でデータを集める必要はありません。公開されているリポジトリを、実験の途中でダウンロードすることもできません。
作らせたツールは3つです。CMDは、分子を設計する非公開のツールで、論文が実名を出さないために付けた仮の名前です。ProteinMPNNは、タンパク質の骨格からアミノ酸の並びを設計する公開モデルです。RFdiffusion3は、タンパク質の構造を作る、より複雑な公開モデルです。1回の試行の時間上限は、CMDが4時間、ProteinMPNNが3時間、RFdiffusion3が12時間です。
渡す文書は、主に2種類です。1つは論文の要約だけです。もう1つは、本文と補足資料を含む論文全文です。ソースコードが公開されているツールについては、そのコードも渡す追加の条件があります。
点数の意味を先に書きます。再現度とは、エージェントが作ったツールの点数が、公開版の同じ1つの指標の何%か、です。全機能を何%再現したかは、この数字では分かりません。最終的な採点は、エージェントに渡していないテストデータで行います。この記事に出す主な数字は、同じ条件で3回試したうちのいちばん高い点数です。論文が最良の1回を使うのは、再現しようとする人は複数回試し、よい結果を残すからです。1回だけの結果より、高くなりやすいです。
一次資料は、プレプリントReproBAIT: Can coding agents build their own biological AI tools?と、SecureBioの解説ReproBAIT: A Benchmark for Reproducing Biological AI Toolsです。特に断らない数字は、プレプリントのTable 2です。条件は、論文全文を渡し、3回のうち最良の結果です。
評価したエージェントは4つです。Claude Opus 5、GPT-5.6 Sol、Kimi K3、Qwen3.8-2.4Tです。どれも、2026年夏に公開されたモデルを使っています。
簡単なツールは元の点数に近く、複雑なツールは届きませんでした
結果は、ツールの複雑さによって大きく違います。論文は、実装の複雑さを0から100の目安で付けています。CMDが25.7、ProteinMPNNが42.7、RFdiffusion3が72.9です。これは正確な難易度ではなく、3つを比べるための目安です。SecureBioの解説では、パラメータ数はProteinMPNNが約170万、RFdiffusion3が約1億7000万です。
図の数字は、MuthupandiyanらのReproBAIT Table 2です。縦軸は、公開版の指標を100%としたときの割合です。点線は、公開版と同じ点数です。
CMDは、4時間以内で1つの指標が元のツールに近くなりました
CMDは、さきほど書いた仮の名前です。ソースコードを公開していない分子設計ツールで、法的な理由で論文は実名を出していません。プログラムも、学習済みの重みも、公開されていません。3つの中で実装はいちばん簡単です。この課題は、もう点数が伸びにくい、と論文は書いています。
論文全文を渡したときの最良の点数は、化学構造として成立する割合です。Claude Opus 5が100.5%、GPT-5.6 Solが100.1%、Kimi K3が99.8%、Qwen3.8-2.4Tが100.0%でした。要約だけを渡した場合も、同じように100%前後です。4つのエージェントは、公開版のこの指標にほぼ並んでいます。モデルによっては、わずかに上回っています。
この100%前後は、生成した分子が化学構造として成立する割合です。ツール全体の優劣は、この指標だけでは分かりません。成立する割合は上がりました。そのかわり、学習データにない新しい分子の割合は、元の報告より少し下がりました。時間の条件は、1回につき最大4時間です。
費用は、この指標が75%以上になった試行だけで計算しています。CMDとProteinMPNNでは、その試行の回数でAPIとGPUの費用を割ると、多くのエージェントで4〜20ドルでした。いちばん安かったのはGPT-5.6 Solです。75%は、費用を比べるために決めた区切りです。成功したかどうかの基準には使っていません。
96.5%は、配列がどれだけ一致したかです
ProteinMPNNは、タンパク質の骨格の形から、アミノ酸の並びを設計するモデルです。ソースコードも、学習済みの重みも公開されています。複雑さは、3つのうち中間です。
上限3時間、論文全文、3回のうち最良の結果で、Claude Opus 5は96.5%でした。同じ条件で、GPT-5.6 Solは86.3%、Kimi K3は91.3%、Qwen3.8-2.4Tは73.4%です。指標は、設計した配列が元の配列とどれだけ一致するか(sequence recovery)です。他の機能、別の入力、運用中の例外は、この数字に入っていません。
平均は、この最良値より低いです。論文全文を渡したProteinMPNNの平均は82.0%です。要約だけなら76.3%です。要約だけの条件では、試行ごとのばらつきがおよそ2倍だった、と論文は書いています。96.5%は、3回のうちいちばん高い1回です。毎回この点数が出るわけではありません。
ソースコードが公開されているので、モデルが事前学習のときに論文やコードを覚えている可能性もあります。文書を増やしても点数が大きく変わらなかった理由は、3つの結果のあとにまとめます。
RFdiffusion3は、12時間では元の性能まで届きませんでした
RFdiffusion3は、他の分子がある条件で、タンパク質の構造を作るモデルです。3つの中でいちばん複雑です。論文が採点したのは、条件を指定しない1本の鎖について、設計に使える形になっているか、です。特定の分子に合わせる機能は、採点していません。公開版と同じ条件で最初から学習し直すには、A10Gが1枚、12時間では足りない、とも書いています。
採点した範囲だけを見ても、制限時間の中で成功とみなせる再現はありませんでした。論文全文を渡したときの最良は、Claude Opus 5の10.9%と、Kimi K3の13.0%です。GPT-5.6 SolとQwen3.8-2.4Tの該当する試行は0.0%です。0.0%にした試行の一部は、指定された学習をしていません。すでに知られている構造に近い出力で、点数だけを高くしていました。論文は、これを失敗として扱っています。点数が高いことと、頼んだ機能を作ったことは、別です。
要約だけを渡した試行の1つでは、Claude Opus 5が81.5%になりました。論文は、これを部分的な成功として数えています。学習データの範囲を狭め、より簡単な問題に変えていたからです。この81.5%は図に入れていません。論文全文を渡した条件の数字ではないからです。
ソースコードも渡した追加の実験では、Claude Opus 5とGPT-5.6 Solが1回ずつ試しています。同じ時間とGPUでは、RFdiffusion3を成功とみなせるところまで作れませんでした。
同じ追加実験を、ProteinMPNNでも行っています。コードを渡したClaude Opus 5は94.9%、GPT-5.6 Solは79.5%でした。論文だけを渡したときの最良は、それぞれ96.5%と86.3%です。1回だけの点数と、3回中の最良は、同じ条件の比較にはなりません。同じ時間とGPUでは、コードを渡しても点数が大きく上がっていません。論文は、失敗の多くはコードが書けないことより、長い作業のあいだ判断を続けられないことだ、と見ています。
費用も、複雑さで違います。RFdiffusion3では、成功しなくても、エージェントごとに約102〜301ドルを、時間切れまでに使っています。これは、成功したときの費用ではありません。時間の上限まで使った金額なので、成功するならこれ以上になります。モデルが大きいほど、計算の費用は上がります。論文は、今回の小さいツールを再現する費用は、元の研究の費用よりずっと小さい、と書いています。比較として、AlphaFold2を一から学習し直したOpenFoldには、多くの研究者が必要だった、とも書いています。
3つのツールを並べると、言えることは次のとおりです。再現のしやすさは、ツールの複雑さで大きく違います。以前は専門家が時間をかけて行っていた再実装の一部を、少ない費用で自動化でき始めています。ただし、学習データとGPUが渡され、見ている指標は1つだけ、という条件です。
論文の全文を渡しても、点数は安定して上がりませんでした
前の節で後回しにした点を、ここで見ます。設計の説明が多いほど、再現は易しくなると思いがちです。今回の実験では、いつもそうなるわけではありませんでした。
ProteinMPNNでは、要約だけの平均が76.3%、論文全文の平均が82.0%です。差は5.7ポイントです。SecureBioの解説は、3つのツールをまとめると、論文全文を渡した効果はマイナス2.1ポイントだった、と書いています。95%の区間はマイナス9.5からプラス5.3です。統計的に差があるとは言えない、というまとめです。
理由は1つに決まっていません。課題が簡単だと、文書を増やしても差が出ません。試行ごとのばらつきも大きいです。長い作業の途中で、エージェントの判断が悪くなることもあります。論文全文があると、今回の時間とGPUでは使えない、元の学習設定をそのまま真似することがあります。事前学習で、論文や公開コードを覚えている可能性もあります。
記憶しているかどうかの確認は、2種類です。1つは、別のモデルが実行ログを読み、実験で渡していない実装の詳細を書いていないかを見ることです。もう1つは、生成されたコードが、公開されている実装と何文字一致するかを見ることです。
採点された72試行のうち、記憶していることが明確だったのは2試行です。その疑いがあったのは20試行です。どちらかの指摘があったのは22試行です。指摘の多くはProteinMPNNで、24試行中17試行です。RFdiffusion3は24試行中4試行、CMDは24試行中1試行です。要約だけを渡した場合と、全文を渡した場合で、指摘の割合は同じでした。コードの文字の一致も、ProteinMPNNの一部の条件に偏っています。RFdiffusion3では、一致は見られていません。
論文の解釈では、ProteinMPNNについては、記憶していたと考えて矛盾しない中程度の証拠があります。CMDとRFdiffusion3については、証拠が少ないです。ProteinMPNNは2022年に公開され、再実装も多く出ています。CMDはソースコードが非公開です。ただし、CMDについても、論文や解説がモデルの学習データに入っている可能性は残ります。論文は、この数字を、モデルが見たことのない社内のアルゴリズムにそのまま使わないよう書いています。
この節で確認できるのは、渡した文書が多いほど点数が上がる、という単純な関係にはなっていないことです。現場では、公開した情報の量だけでは、再現のしやすさを判断できません。CMDで要約だけでも高い点数が出た主な理由は、課題が簡単で、点数が伸びにくかったからです。ProteinMPNNで要約だけでも高い点数が出た背景には、公開されている実装を覚えている可能性が残ります。
守る対象は、ファイルですか。そのファイルが行う処理ですか
文書を増やしても再現を止めきれないなら、非公開にする対象を決める必要があります。この研究が調べているのは、公開された説明と、渡された学習データと、限られたGPUだけで、選んだ機能に近いツールを作れるか、です。認証を破る実験はしていません。サーバに侵入する実験でもありません。
それでも、ソースコードを非公開にすることだけが対策になっている場合、その対策の効果は弱くなります。論文の結論は、こうです。作り方の説明と、学習に使えるデータと計算機が相手にあるとき、ソースコードを出さないだけでは、その機能を使わせない管理にはならない。
ソースコードが流出すると危険なのは、今までと同じです。APIキーや、脆弱性の手がかりが、リポジトリに入っていることがあるからです。この記事で追加して書くのは、流出しなくても、公開された情報とデータから、同じ機能に近いものを作れる場合がある、ということです。
既知の脆弱性の説明から、攻撃の手順を短時間で作る問題は、別の話です。そちらは「脆弱性が見つかってから攻撃まで847日」だった時代は終わったに書きました。この記事が扱うのは、公開された方法の説明から、ツールの機能を作り直す問題です。
ソースコードを非公開にしても残る対策
機密データを扱うシステムでは、ソースコードの非公開に加えて、認証、認可、データのアクセス制御、監査ログ、暗号化が必要です。エージェントが似たコードを書けても、本番のデータベースには接続できません。本番を操作するには、コードとは別に保管した鍵と、操作の権限が必要です。
AIが書いたコードを誰がレビューし、どこで人が承認し、ログをどう残すかは、AIがコードを書く時代、IT技術者はどうガバナンスを設計するかに書きました。この記事で先に決めるのは、今の対策の目的です。コードの流出を防ぎたいのか。同じ機能を、別の人に作られることを防ぎたいのか。目的が違うと、必要な対策も違います。
同じ機能を、他の人に作らせたくないとき
特定のアルゴリズムを、他の人に実装させないこと自体を安全対策にしている場合、その効果は変わります。方法が公開され、同じ種類のデータと計算機を使えるなら、リポジトリを非公開にしても、選んだ機能に近いものを作れることがあります。
競争上の価値も、同じ理由で下がります。論文は、再現が容易になると、ツールを売って得る価値が下がり、研究にも悪用にも使える機能の利用制限が弱くなる、と書いています。技術的に作れることと、使ってよいことは別です。使ってよいかは、ライセンス、契約、法令で決まります。
設計レビューでは、次のメモを1枚書くと、何を守るのかが揃います。再現の手順ではありません。守る対象の確認です。本番システムの設定ファイルでもありません。
# 設計レビューの記録。公開情報とデータが相手にあるとき、何が残るかを書く
対象: 需要予測モデル
すでに公開しているもの:
- 手法の概要(技術ブログ)
- 評価指標の定義
論文やブログに書いていないもの:
- 学習データの実体
- 本番の接続先と権限
指標だけ近くなったとき:
問い: 指標が近いモデルは、発注判断まで代替できるか
答え: 代替できない。予測の外れ方、在庫の制約、担当者の確認が残る
それでも残る対策:
- データへのアクセス権
- 本番操作の認可
- 監査ログ
このメモで先に書くのは、「指標だけ近くなったとき」です。ソースコードが漏れなくても、評価指標だけが近いモデルを別の人が作れたとき、業務のどこまで代替できるかを先に書きます。発注判断まで代替できないなら、競争力はコード以外にあります。具体的には、データの蓄積と、現場の判断です。代替できるなら、データの利用範囲を先に決めます。
この点数は、学習データが渡された条件の結果です
前の節の対策は、この条件つきで読みます。ここまでの点数は、学習データが最初から置いてある状態で出ています。エージェントは、データを自分で集めていません。実験の途中で、公開ウェブから取ることもできません。
機械学習の性能は、アルゴリズムだけでは決まりません。データの量、分布、前処理で変わります。アルゴリズムを再現できても、同じデータがなければ、同じ性能になるとは限りません。データと計算機があれば、元の実装を知らなくても、指標に近いモデルを作れることがあります。CMDがその例です。記憶している証拠は少なく、実装も非公開です。それでも、化学構造として成立する割合は、公開版に近くなりました。
論文の結論は、悪用のリスクを下げる方法として、データガバナンスをさらに調べる必要がある、と書いています。データガバナンスとは、データを誰が、どの範囲で、どの目的に使ってよいかを決めて管理することです。この研究が示したのは、データが渡っている条件での結果です。データを非公開にすれば必ず安全だ、と証明した実験ではありません。
現場の例に戻します。設備の故障履歴、製造工程の記録、顧客の行動データは、それ自体が資産です。独自の予測モデルを持っている場合、競争力はコードだけではありません。どのデータを、どの品質で、どれだけ蓄積したかにもあります。
データを非公開にしても、別の作り方は残ります。代わりに使える公開データ、合成データ、モデルがすでに学習している知識です。ProteinMPNNで記憶の指摘が多かったのは、この例です。確認することは2つです。自社データを誰が使えるか。そのデータがなくても、どこまで同じ機能に近づけるか。
コード、モデルの重み、データを別々に管理するだけでは不十分です。3つが揃ったときに、どんな機能が作れるかまで含めてリスクを見ます。SecureBioの解説も、制限事項として同じことを書いています。コードと重みを非公開にしても、方法の説明とデータと計算機があれば、選んだ機能の再構築をいつも防げるわけではない、という内容です。
プログラムが動くことと、業務の目的を満たすことは別です
評価指標が公開版に近くても、業務の目的を満たしたことにはなりません。ReproBAITにも、その例があります。81.5%の試行は、課題を簡単にして点数を上げていました。0%にした試行は、指定された学習をせず、既知の構造に近い出力で指標の点数を取っていました。点数が高いのに、頼んだ目的を満たしていないことがあります。
需要予測でも、同じずれが起きます。点数が公開版と同じになっても、在庫は減りません。予測を、発注のどの規則に使うか。予測が外れたとき、誰が上書きするか。現場の担当者が、その数字を使ってよいか。この3つを決め、運用に組み込んで、ソフトウェアは業務の成果になります。例外処理、データの欠損や異常、監視、性能、セキュリティ、既存システムとの接続は、1つの指標では測っていません。
減りやすい作業は、コードの書き方、設定、定型の変換です。減りにくい作業は、何を正しい発注とするかを決めることです。この分け方は、AIで生産性が上がったのに、なぜ価値は増えないのかにあります。開発する人には、前者が速くなる利点があります。その技術で優位を保ってきた会社には、同じものを作る費用が下がるリスクがあります。作業のどの部分で利益が出やすいかは、知的スマイルカーブとAI——価値が左右に寄る時代の「地図」の読み方に書きました。この記事では、評価指標が近いことを、開発の完了とは扱いません。
完了と扱わないなら、確認する項目を先に決めます。評価指標は、実際の業務に合っているか。学習に使うデータが、評価用のデータに混ざっていないか。想定していない入力のとき、安全に止まれるか。これを判断するには、アルゴリズムの理解が必要です。実装をエージェントに任せても、原理を学ぶ必要は残ります。計算量が見合わないことや、評価データが学習に混ざることは、仕組みが分かっていないと気づけません。
エージェントが自分で修正を繰り返すほど、最後のコードだけを見ても不十分です。どの情報を見て、何を推測し、どの条件でその点数になったかを、ログとテストに残します。実行環境を分ける。評価用のデータを学習に使わない。指標の点数だけを上げる抜け道を、別に検査する。ReproBAITも、採点する環境と実装する環境を分け、抜け道を検査していました。実務でエージェントを使うときも、この分け方を先に決めます。本番での品質、費用、止める条件を回す話は、AIは「作れた」だけでは価値にならない――生成AI・AIエージェントを業務成果につなげる設計に書きました。
次の設計レビューで、3行書く
ここまでの結果を、設計の判断に戻します。単純なCMDでは、短い制限時間で、1つの指標が公開版に近くなりました。複雑なRFdiffusion3では、今回の時間とGPUでは再現しきれていません。学習データとGPUを渡した実験なので、すべての社内システムに同じことが起きるわけではありません。モデルが学習時に見たことのない実装では、事前学習で覚えている助けも減ります。
それでも、実装が難しいことだけを理由にした優位は、対象のツールが単純であるほど保ちにくくなります。ソースコードを非公開にする対策も、防ぎたいのが「同じ機能を作られること」である場合、効果は条件によって変わります。
点数を読むとき、もう1つの条件があります。同じモデルでも、コードを書かせるソフトウェアを変えると、点数が下がった例があります。ここでいうソフトウェアは、どのツールでファイルを編集し、コマンドを実行するか、です。論文は、モデル同士の点数差の多くは、このソフトウェアの違いだけでは説明できない、としています。
プログラミングは、今後も必要です。増えるのは、原理を理解し、エージェントの出力を評価し、安全性と信頼性を確認する作業の割合です。何を作るかを決め、その結果に責任を持つ作業は、実装が速くなっても必要です。
技術者個人に必要な技能の変化は、AI時代、IT技術者は何を武器にすればよいのかに書きました。まず行うことは、手元のシステムについて、次の3行を書くことです。
守る対象を1行。すでに公開している情報を1行。その情報とデータが相手にあるとき、作られ得る機能を1行。
この3行があると、非公開リポジトリの話と、認証やデータの話を、同じ会議で混同しにくくなります。AIで何が容易になったかを確認したうえで、今の安全対策のうち、どの前提を更新するかをこの3行で見直します。
作成日: 2026-11-01
