>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Jupyter

Biology and GPT - Déconstruire le projet scGPT

Les biologistes passent des années à collecter des données 单细胞数据,试图了解我们的器官在最详细的水平上是如何工作的。Le problème est qu'il existe désormais trop de ces données, et qu'elles « parlent » différents langages. Imaginez des millions de tableaux enregistrant l'activité des gènes, mais chaque laboratoire possède ses propres protocoles et formats. Combiner manuellement cela en une image unifiée est presque impossible.

C'est là qu'intervient scGPT. Les développeurs de bowang-lab se sont demandé : si les transformers ont appris à comprendre le langage humain, pourquoi ne pourraient-ils pas apprendre le langage des cellules ?

Pourquoi c'est important pour les développeurs et les data scientists

D'habitude, la bioinformatique s'appuie sur des paquets spécialisés comme Scanpy ou Seurat. Ils sont puissants, mais nécessitent souvent une configuration manuelle pour chaque jeu de données. scGPT est une tentative de créer un modèle fondamental pour la biologie 单细胞生物学.

Ce n'est pas juste un script pour dessiner des graphiques. Le projet prend l'architecture GPT et l'entraîne sur une quantité massive de données — plus de 33 millions de cellules humaines. Résultat : le modèle commence à comprendre les dépendances internes entre les gènes, tout comme ChatGPT comprend la relation entre les mots dans une phrase.

Ce qu'il y a dans le dépôt

Le projet est écrit en Python et utilise activement PyTorch. Si vous avez l'habitude de travailler avec HuggingFace, vous vous sentirez comme chez vous ici (bien que l'intégration complète avec le hub soit encore en cours).

Fonctionnalités clés

L'une des fonctionnalités les plus utiles est le mappage de référence. Si vous avez de nouvelles données, vous pouvez littéralement les faire correspondre avec une base de données de 33 millions de cellules en une seule seconde. Grâce à la bibliothèque faiss, la recherche d'index prend moins d'une seconde pour 10 000 cellules sur GPU. L'index pèse moins d'un gigaoctet.

Autre point important : les applications zero-shot. Le modèle peut être utilisé pour l'annotation de types cellulaires ou l'intégration de données sans ajustement supplémentaire. Cela fait gagner beaucoup de temps et de ressources de calcul.

Pour ceux qui ont besoin d'une solution spécifique, les auteurs ont publié tout un « zoo » de modèles pré-entraînés :

  • whole-human : une option universelle entraînée sur 33 millions de cellules.
  • Des modèles spécialisés pour le cerveau, le sang, le cœur, les poumons et les reins.
  • Pan-cancer : un modèle adapté aux différents types de cellules cancéreuses.

Comment exécuter

L'installation est standard via pip, mais il y a une nuance avec la dépendance flash-attn. Elle accélère considérablement le travail, mais est exigeante concernant les versions de CUDA. Les auteurs recommandent la version 11.7.

pip install scgpt "flash-attn<1.0.5"

Au fait, si vous ne voulez pas vous occuper de l'environnement, les gens de Superbio.ai ont créé des applications cloud pour scGPT. Vous pouvez essayer l'annotation cellulaire ou l'inférence de réseaux de régulation génique directement dans le navigateur.

Détails techniques

Contrairement à un GPT classique basé sur le texte, celui-ci utilise le masquage attentionnel génératif. Cela permet au modèle de prédire l'expression génique et de récupérer les valeurs manquantes dans les données (imputation).

Intéressamment, le projet supporte à la fois CPU et GPU. La fonction load_pretrained a été réécrite pour que les poids se chargent sans douleur sur n'importe quel backend. Et si vous êtes fan de surveillance de l'entraînement, il y a un support natif de wandb dans le code.

Cas d'utilisation pratiques

Ce à quoi il est réellement utilisé :

  1. Intégration par lots : quand vous devez combiner des données de dix laboratoires différents en un seul ensemble de données cohérent.
  2. Prédiction de perturbations : le modèle peut estimer comment une cellule répondra à un médicament ou une manipulation génétique spécifique.
  3. Analyse des réseaux géniques : identifier quels gènes « travaillent ensemble ».

Cela vaut-il la peine d'essayer

Si vous travaillez en bioinformatique ou en biologie des systèmes, scGPT est indispensable dans vos favoris. C'est l'un des projets les plus actifs dans la niche des modèles fondamentaux 单细胞生物学.

Qui le projet pourrait ne pas convenir : ceux qui cherchent une solution légère pour un ordinateur portable local sans carte graphique dédiée. Le traitement de grandes matrices d'expression nécessite toujours des ressources, malgré toutes les optimisations.

Je recommande de commencer votre étude par le dossier tutorials/zero-shot. Il contient des notebooks qui montrent clairement comment le modèle digère les données sans entraînement long.

Le projet se développe activement : ils ont récemment ajouté le support de HuggingFace dans une branche séparée et mis à jour la documentation sur ReadTheDocs. Il est clair que l'équipe n'a pas simplement publié du code pour un article — ils maintiennent vraiment l'outil.

Projets similaires