Evo2 : un outil de bio-AI à source ouverte pour soutenir la modélisation et la conception du génome
Introduction générale
Evo 2 de l'Institut Arc est un projet open source axé sur la modélisation et la conception du génome, développé par l'Institut Arc, un organisme de recherche à but non lucratif basé à Palo Alto, en Californie, aux États-Unis, et lancé en collaboration avec des partenaires tels que NVIDIA. Le projet construit des modèles biologiques capables de travailler avec l'ADN, l'ARN et les protéines grâce à des techniques d'apprentissage profond de pointe pour des tâches prédictives et génératives dans les sciences de la vie. evo 2 est entraîné sur diverses données génomiques de plus de 9 trillions de nucléotides, possède jusqu'à 40 milliards de paramètres et prend en charge des longueurs de contexte allant jusqu'à 1 million de bases. Son code, ses données d'entraînement et les poids du modèle sont entièrement libres, hébergés sur GitHub, et conçus pour accélérer la recherche en bio-ingénierie et en médecine. Les chercheurs et les développeurs peuvent utiliser l'outil pour explorer les mystères du génome et concevoir de nouvelles séquences biologiques.

Liste des fonctions
- Prise en charge de la modélisation des génomes dans tous les domaines de la vie : permet la prédiction et la conception de génomes de bactéries, d'archées et d'eucaryotes.
- Capacité de traitement des séquences longues : permet de traiter des séquences d'ADN allant jusqu'à 1 million de bases pour des tâches d'analyse dans des contextes très longs.
- Génération et optimisation de l'ADN : générer de nouvelles séquences d'ADN avec des annotations de régions codantes sur la base de séquences d'entrée ou d'indications sur les espèces.
- Prédiction de l'effet des variantes à échantillon nul : prédire l'impact biologique des variantes génétiques sans formation supplémentaire, par exemple l'analyse de l'effet des variantes BRCA1.
- Jeux de données et modèles en libre accès : fournir des modèles pré-entraînés et des jeux de données OpenGenome2 pour soutenir le développement secondaire et la recherche.
- Prise en charge du calcul parallèle multi-GPU : attribution automatique de plusieurs ressources GPU via le cadre Vortex pour améliorer l'efficacité des calculs à grande échelle.
- Intégration avec NVIDIA BioNeMo : accès transparent à la plateforme de bio-informatique de NVIDIA pour élargir les scénarios d'application.
- Outils de visualisation et d'interprétation : Combiné avec le visualiseur d'interprétation de Goodfire, il révèle les caractéristiques biométriques et les modèles reconnus par le modèle.
Utiliser l'aide
Processus d'installation
Pour utiliser Evo 2 localement, certaines ressources informatiques et la configuration de l'environnement sont nécessaires. Vous trouverez ci-dessous les étapes détaillées de l'installation :
1. préparation à l'environnement
- système d'exploitationLes utilisateurs de Windows doivent installer WSL2.
- exigences en matière de matérielAu moins 1 GPU NVIDIA (plusieurs GPU sont recommandés pour supporter le modèle 40B) avec un minimum de 16GB de mémoire vidéo (par exemple A100 ou RTX 3090).
- dépendance logicielleGit, Python 3.8+, PyTorch (avec prise en charge de CUDA) et pip doivent être installés.
2. cloner le dépôt de code
Ouvrez un terminal et exécutez la commande suivante pour obtenir le code source de l'Evo 2 :
git clone --recurse-submodules git@github.com:ArcInstitute/evo2.git
cd evo2
Attention :--recurse-submodules
Assurez-vous que tous les sous-modules sont également téléchargés.
3. installation des dépendances
Exécutez-le dans le répertoire racine du projet :
pip install .
Si vous rencontrez des problèmes, essayez d'installer à partir de Vortex (voir le README de GitHub pour plus de détails). Une fois l'installation terminée, exécutez les tests pour vérifier :
python -m evo2.test
Si la sortie ne signale aucune erreur, l'installation a réussi.
4. téléchargement de modèles pré-entraînés
Evo 2 est disponible dans une variété de versions de modèles (par exemple, paramètres 1B, 7B, 40B) qui peuvent être téléchargées à partir de Hugging Face ou de GitHub Releases. Exemple :
wget https://huggingface.co/arcinstitute/evo2_7b/resolve/main/evo2_7b_base.pt
Placer les fichiers du modèle dans un répertoire local pour un chargement ultérieur.
Comment l'utiliser
Une fois installées, les fonctions principales d'Evo 2 peuvent être invoquées via des scripts Python. Vous trouverez ci-dessous une procédure détaillée pour les fonctions principales :
Fonction 1 : Générer une séquence d'ADN
Evo 2 peut générer une séquence de continuation à partir d'un fragment d'ADN. La procédure est la suivante :
- Modèles de chargement: :
from evo2 import Evo2 model = Evo2('evo2_7b') # 使用 7B 参数模型
- Saisir les invites et générer: :
prompt = ["ACGT"] # 输入初始 DNA 序列 output = model.generate(prompt_seqs=prompt, n_tokens=400, temperature=1.0, top_k=4) print(output.sequences[0]) # 输出生成的 400 个核苷酸序列
- Interprétation des résultatsLes séquences générées peuvent être utilisées pour des analyses biologiques en aval, le paramètre de température contrôlant la stochasticité et top_k limitant la plage d'échantillonnage.
Fonction 2 : Prédiction des effets de variante de l'échantillon zéro
Le gène BRCA1 a été utilisé comme exemple pour prédire l'impact biologique des variantes :
- Préparer les données: Dépose les séquences de référence et de variante dans la liste.
- Prévisions opérationnelles: :
ref_seqs = ["ATCG..."] # 参考序列 var_seqs = ["ATGG..."] # 变体序列 ref_scores = model.score_sequences(ref_seqs) var_scores = model.score_sequences(var_seqs) print(f"Reference likelihood: {ref_scores}, Variant likelihood: {var_scores}")
- l'analyseLes résultats de l'évaluation de l'impact des variantes sur la fonction sont comparés à ceux de l'évaluation de l'impact des variantes sur la fonction.
Fonction 3 : Traitement des séquences longues
Pour les séquences très longues, Evo 2 prend en charge le chargement et le calcul par morceaux :
- Chargement des grands modèles: :
model = Evo2('evo2_40b') # 需要多 GPU 支持
- Traitement des longues séquences: :
long_seq = "ATCG..." * 100000 # 模拟 100 万碱基序列 output = model.generate([long_seq], n_tokens=1000) print(output.sequences[0])
- mise en gardeActuellement, la propagation vers l'avant de longues séquences peut être lente, et il est recommandé d'optimiser la configuration du matériel ou d'utiliser la méthode d'incitation de l'enseignant (teacher prompting).
Fonction 4 : Ensembles de données et développement secondaire
- Obtenir le jeu de donnéesTélécharger le jeu de données OpenGenome2 (au format FASTA ou JSONL) à partir de Hugging Face.
- Formation sur mesureModifier l'architecture du modèle ou affiner les paramètres basés sur le cadre de Savanna pour répondre à des besoins de recherche spécifiques.
Conseils d'utilisation et précautions
- Configuration multi-GPUSi vous utilisez un modèle 40B, vous devez vous assurer que Vortex reconnaît correctement les GPU multiples en utilisant l'option
nvidia-smi
Vérifier l'allocation des ressources. - l'optimisation des performancesLe traitement des séquences longues réduit
temperature
afin de réduire la charge de calcul. - Soutien communautaireLes questions peuvent être adressées au GitHub Issues board, où l'équipe de l'Institut Arc et la communauté sont disponibles pour vous aider.
Ces étapes vous permettront d'être opérationnel avec Evo 2, que vous génériez des séquences d'ADN ou que vous analysiez des variants génétiques, et ce de manière efficace.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...