|
AlphaFold3のソースコードがついに公開されました! 6ヶ月前、AlphaFold3が登場し、学界全体を驚かせました。AlphaFoldの開発者は先月、この功績によりノーベル化学賞を受賞しました。 しかし、このノーベル賞受賞AIの「非オープンソース」という性質は、学術界から常に批判を浴びてきました。Google DeepMindは無料の研究プラットフォーム「AlphaFold Server」のみを公開しており、そのサービスにも1日あたりの利用制限が設けられています。オープンソースのAlphaFold2と比較すると、このアプローチは利用の自由度を著しく損なうものです。 幸いなことに、オープンソースになりました!オープンソース化されたことで、バイオメディカルの科学者はAlphaFold3をローカルに展開できるようになり、新薬、ワクチン、その他の技術の研究開発プロセスが大幅に短縮されます。 現在、誰でも AlphaFold3 ソフトウェア コードをダウンロードして非営利目的で使用できますが、現在のところ、トレーニング ウェイトへのアクセスを申請できるのは学術的背景を持つ科学者のみです。 GitHub 上の AlphaFold3 オープンソース プロジェクト コードは現在 1.8k 個のスターを獲得しています。 オープンソースプロジェクト: https://github.com/google-deepmind/alphafold3 AlphaFold3の「模倣品」 過去数か月間、多くの企業が AlphaFold3 の論文の疑似コードを参考にして、AlphaFold3 にヒントを得た独自の類似モデルをリリースしてきました。例えば、OpenAIから投資を受けたAIバイオテクノロジーのスタートアップ企業であるChai Discoveryは、分子構造予測のための新しいマルチモーダル基本モデルであるChai-1を9月にリリースし、Chai-1の性能をAlphaFoldなどのモデルと比較した技術レポートも発表した。 公式サイト:https://www.chaidiscovery.com/ サンフランシスコに拠点を置くLigo Biosciences社も、AlphaFold3の無制限バージョンをリリースしました。ただし、薬物やタンパク質以外の分子を模倣する機能など、まだ完全な機能は備えていません。 プロジェクトアドレス: https://github.com/Ligo-Biosciences/AlphaFold3 他のチームもAlphaFold3の無制限バージョンを開発しています。AlQuraishiは、年末までにOpenFold3と呼ばれる完全にオープンソースのモデルをリリースしたいと考えています。これにより、製薬会社は、異なる薬剤と組み合わせたタンパク質構造などの独自のデータを用いてモデルを再学習できるようになり、パフォーマンスが向上する可能性があります。 オープンソースの重要性 過去 1 年間で、多くの企業が新しい生物学的 AI モデルをリリースしており、これらの企業はオープン性に対してさまざまなアプローチを採用しています。 ウィスコンシン大学マディソン校の計算生物学者アンソニー・ギッター氏は、営利企業が自分の分野に参入することに反対していない。ただし、学術誌やプレプリントサーバーで研究成果を共有する際に科学的な基準に従う限りは。 「私を含め、営利企業が予測を行う方法に関する情報を共有し、AIモデルとコードを私たちがレビューできる形で公開することを望んでいます」とギッター氏は付け加えた。「私のチームは、レビューできないツールを開発したり使用したりすることはありません。」 ディープマインドの科学AI責任者、プッシュミート・コーリ氏は、複数のAlphaFold3レプリカの出現は、オープンソースコードがなくてもモデルを再現できることを示していると述べた。 同氏は、この分野には学術研究者や企業の研究者がますます参加するようになっており、今後出版基準に関する議論がさらに進むことを期待していると付け加えた。 これまで、AlphaFold2 のオープンソースリリースは、他の科学者による数多くの革新を促してきました。 たとえば、最近のタンパク質設計コンペの優勝者は、AI ツールを使用して、がんの標的に結合できる新しいタンパク質を設計しました。 プロジェクトリーダーのジャンパー氏が気に入っているAlphaFold2のイノベーションの1つは、チームがこのツールを使って、精子が卵子に付着するのを助ける重要なタンパク質を特定したことだ。 Jumper さんは、AlphaFold3 を共有した後、このようなサプライズを見るのが待ちきれませんでした。 インストールと実行 AlphaFold3 をインストールするには Linux を実行しているマシンが必要です。AlphaFold3 は他のオペレーティング システムをサポートしていません。 フルインストールには、遺伝子データベースを保存するための最大 1 TB のディスク容量 (SSD ストレージを推奨) と、計算能力 8.0 以上の NVIDIA GPU (メモリが大きい GPU は、より大きなタンパク質構造を予測できます) が必要です。 NVIDIA A100 80 GBまたはNVIDIA H100 80 GBの1基で最大5120トークンの入力を処理できることが検証済みです。NVIDIA A100およびH100 GPUにおける数値精度も検証済みです。 特にターゲットが長い場合、遺伝子検索フェーズで大量の RAM が消費される可能性があります。少なくとも 64 GB の RAM で実行することをお勧めします。 設定手順: 1. GCP上でマシンを構成する 2. Dockerをインストールする 3. A100用のNVIDIAドライバーをインストールする 4. 遺伝子データベースにアクセスする 5. モデルパラメータを取得する 6. AlphaFold3 Docker コンテナまたは Singularity イメージをビルドします。 AlphaFold3のソースコードを入手するAlphaFold3 コードベースを Git 経由でダウンロードします。 遺伝子データベースへのアクセスこの手順では、「curl」と「zstd」が必要です。 AlphaFold3 が機能するには、複数の遺伝子 (配列)、タンパク質、および RNA データベースが必要です。 - BFD小 - MGnify - PDB(mmCIF形式の構造) - PDBシーケンス - ユニプロット - ユニレフ90 - NT - RFam - RNAセントラル Python プログラム「fetch_databases.py」を使用して、これらすべてのデータベースをダウンロードして設定できます。 データベースのダウンロードと解凍には時間がかかるため、以下のコマンドは「screen」または「tmux」セッションで実行することをお勧めします。データベース全体のダウンロードサイズは約252GB、解凍後の合計サイズは630GBです。 スクリプトは GCS でホストされているミラーからデータベースをダウンロードします。すべてのバージョンは AlphaFold3 の論文で使用されているものと同じです。 スクリプトが完了すると、次のディレクトリ構造が存在するはずです。 モデルパラメータを取得するAlphaFold3 モデル パラメータにアクセスするには、Google DeepMind に申請して承認を得る必要があります。 データパイプラインデータ パイプライン (遺伝子配列検索およびテンプレート検索) の実行時間は、入力のサイズ、見つかった相同配列の数、および利用可能なハードウェア (特にディスク速度は遺伝子検索の速度に影響します) によって大きく異なります。 パフォーマンスを向上させるには、ディスク速度を上げる (RAM ベースのファイル システムを利用するなど) か、使用可能な CPU コアの数を増やして並列処理を増やすことをお勧めします。 さらに、深い MSA を含むシーケンスの場合、Jackhmmer または Nhmmer では、推奨される 64 GB の RAM よりも大幅に多くのメモリが必要になる場合があることに注意してください。 モデル推論AlphaFold3 論文の補足情報の表 8 には、それぞれ 40 GB のメモリを搭載した 16 個の NVIDIA A100 で実行するように構成した場合の AlphaFold3 のコンパイル不要の推論時間が記載されています。 対照的に、このリポジトリは、80 GB のメモリを搭載した単一の NVIDIA A100 上で AlphaFold3 を実行することをサポートし、最大のスループットを実現するように最適化されています。 以下の表は、これら2つの設定におけるコンパイル不要の推論時間をGPU秒数(つまり、A100を16個使用している場合は16倍)で比較したものです。このリポジトリの設定は、すべてのトークンサイズにおいてより効率的(少なくとも2倍高速)であり、高スループットアプリケーションに適していることを示しています。 ハードウェア要件AlphaFold3 は次の構成を公式にサポートしており、これらに対して広範な数値精度とスループット効率のテストを実施しています。 - NVIDIA A100 (80GB) 1 台 - NVIDIA H100 (80GB) 1台 次の構成変更により、AlphaFold3 は単一の NVIDIA A100 (40GB) で実行できます。 1. 統合メモリを有効にします。 2. model_config.py の pair_transition_shard_spec を調整します。 数字は正確ですが、使用可能なメモリが限られているため、この構成では NVIDIA A100 (80GB) セットアップと比較してスループットが低くなります。 `run_alphafold.py` で `--flash_attention_implementatinotallow=xla` を使用して、単一の NVIDIA V100 上で最大長 1280 トークンの AlphaFold3 を実行することは可能ですが、この構成では数値の精度やスループット効率がテストされていないため、注意して進めてください。 |