v3.0 — 2026 Edition. Ein praktischer Leitfaden zu AlphaFold (v3.0 - 2026 Edition), der das Proteinfaltungsproblem, KI-Architektur, Datenbanknutzung, programmatische APIs, spezialisierte Modelle wie AlphaFold-Multimer und AlphaMissense, lokales Deployment, die Einführung von AlphaFold 3 und Techniken zur Performance-Skalierung behandelt.
Wissenschaftliches RechnenProteinstrukturvorhersageDeep Learning für die Wissenschaft
Wir untersuchen die 50 Jahre alte große Herausforderung der Proteinfaltung und warum sie für Softwareentwickler wichtig ist. Erfahre, was Proteine sind und warum ihre 3D-Struktur ihre biologische Funktion bestimmt.
4m 34s
2
Inside AlphaFold 2: Architektur-Übersicht
Ein tiefer Einblick in die neuronale Netzwerkarchitektur von AlphaFold 2. Wir analysieren den Evoformer-Block, Multiple Sequence Alignments (MSA) und Pair Representations.
4m 06s
3
Vorhersagen evaluieren: pLDDT und PAE
Woher weißt du, ob eine KI-generierte Proteinstruktur genau ist? Lerne, wie man pLDDT für lokale Konfidenz und PAE für die globale Domänenpositionierung interpretiert.
4m 25s
4
Die AlphaFold Protein Structure Database
Bevor du massive Rechen-Pipelines ausführst, prüfe, ob dein Protein bereits gelöst ist. Wir erkunden die riesige AlphaFold Database, die vom EMBL-EBI gehostet wird.
4m 42s
5
Entdeckungen automatisieren: Die AlphaFold Database API
Lerne, wie man automatisierte programmatische Workflows erstellt, um Proteinstrukturen in großem Maßstab über die AlphaFold Database API abzurufen.
4m 30s
6
Strukturen vorhersagen mit ColabFold
Entdecke ColabFold, eine schnellere Alternative für die AlphaFold-Inference, die Jackhmmer durch MMseqs2 für blitzschnelles Sequence Alignment ersetzt.
4m 04s
7
AlphaFold-Multimer: Proteinkomplexe vorhersagen
Proteine agieren selten allein. Lerne, wie AlphaFold-Multimer die Interaktionen und 3D-Strukturen komplexer Proteinanordnungen vorhersagt.
4m 07s
8
AlphaMissense: Vorhersage der Pathogenität von Varianten
Entdecke AlphaMissense, ein spezialisiertes Modell, das vorhersagt, ob die Änderung eines einzigen Buchstabens in der Sequenz eines Proteins eine Krankheit verursacht.
4m 23s
9
AlphaFold 2 lokal deployen
Übernimm die Kontrolle über deine Infrastruktur, indem du die Open-Source-Pipeline von AlphaFold 2 lokal mit Docker und riesigen genetischen Datenbanken deployst.
4m 43s
10
Einführung in AlphaFold 3: Mehr als nur Proteine
AlphaFold v3.0 verändert die Landschaft grundlegend, indem es DNA, RNA, Liganden und Ionen modelliert und so ein vollständiges Bild der zellulären Umgebung zeichnet.
3m 53s
11
AlphaFold Server: Das AF3-Gateway
Sammle praktische Erfahrungen mit AlphaFold v3.0 über den AlphaFold Server, eine webbasierte GUI, die lokale Hardware und komplexe Setups überflüssig macht.
3m 43s
12
AlphaFold 3-Ergebnisse interpretieren
Die Evaluierung von AlphaFold v3.0-Vorhersagen erfordert neue Metriken. Lerne, wie man Clash Scores und Konfidenzwerte für Nukleinsäuren interpretiert.
4m 39s
13
AlphaFold 3 Inference Pipeline
Lerne, wie man die Open-Source-Pipeline von AlphaFold v3.0 orchestriert, JSON-Inputs verwaltet und die containerisierte Anwendung ausführt.
4m 17s
14
Data Pipelines & Hardwareanforderungen
Meistere die Separation of Concerns in AlphaFold v3.0, indem du die CPU-lastige Data Pipeline von der GPU-lastigen Inference Engine entkoppelst.
3m 55s
15
Der Speicherengpass: O(n³) Attention
Wir tauchen in das FastFold-Forschungspaper ein, um zu verstehen, warum das Evoformer-Modul von AlphaFold bei langen Sequenzen katastrophale Out-of-Memory-Fehler verursacht.
4m 06s
16
Dynamic Axial Parallelism (DAP)
Lerne, wie die FastFold-Architektur die Speicherlimits von AlphaFold löst, indem sie Intermediate Activations mithilfe von Dynamic Axial Parallelism auf mehrere GPUs aufteilt.
4m 35s
17
AutoChunk: Speicheroptimierung für lange Sequenzen
Manuelles Memory Chunking ist mühsam. Wir untersuchen den AutoChunk-Algorithmus aus dem FastFold-Paper, der die Tensor-Partitionierung während der Inference automatisch optimiert.
4m 00s
18
Überwindung von Kommunikationsungleichgewichten
Distributed Training wird oft von Stragglern geplagt. Lerne, wie die ScaleFold-Architektur die AlphaFold-Datenpipeline neu gestaltet, um zu verhindern, dass langsame CPU-Knoten GPU-Cluster blockieren.
4m 32s
19
Kernel Fusion und GPU-Optimierung
AlphaFold startet über 150.000 separate CUDA-Kernel pro Schritt. Wir untersuchen, wie das ScaleFold-Paper Triton von OpenAI nutzt, um LayerNorm und Multi-Head Attention zu fusionieren.
4m 22s
20
Aufbau einer High-Throughput Pipeline
Von der asynchronen Evaluierung von Model Weights bis zur Nutzung von CUDA-Graphen: Lerne die Geheimnisse der Systemarchitektur kennen, um AlphaFold in massivem Maßstab auszuführen.
4m 32s
21
Die Zukunft: Flow-Matching mit SimpleFold
Brauchen wir wirklich komplexe, domänenspezifische Architekturen, um Proteine zu falten? Wir erkunden SimpleFold, ein experimentelles Modell, das Standard-Transformers und Flow-Matching verwendet.
4m 35s
Episoden
1
Das Proteinfaltungsproblem
4m 34s
Wir untersuchen die 50 Jahre alte große Herausforderung der Proteinfaltung und warum sie für Softwareentwickler wichtig ist. Erfahre, was Proteine sind und warum ihre 3D-Struktur ihre biologische Funktion bestimmt.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Vorhersage der Proteinstruktur, Folge 1 von 21. Fünfzig Jahre lang konnten Wissenschaftler den rohen Text unserer DNA lesen, aber sie konnten nicht vorhersagen, was dieser Text tatsächlich bauen würde. Sie hatten den Source Code des Lebens, aber keine Ahnung, wie er zu den physischen Maschinen kompiliert wird, die unsere Zellen am Laufen halten. Diese große Herausforderung ist als das Proteinfaltungsproblem bekannt.
Proteine sind die molekularen Maschinen, die dich am Leben halten. Sie kümmern sich um fast alles, was in deinem Körper passiert, vom Sauerstofftransport in deinem Blut bis zur Abwehr von Infektionen. Jedes Protein beginnt sein Leben als eindimensionaler String. Dieser String wird aus einem Vokabular von zwanzig verschiedenen chemischen Bausteinen, den sogenannten Aminosäuren, gebildet.
Stell dir die Aminosäuresequenz wie den rohen Source Code der Biologie vor. Es ist ein linearer String aus Zeichen, der sequenziell gelesen wird. Aber eine einfache Aneinanderreihung von Aminosäuren kann keine tatsächliche Arbeit verrichten. Genau wie eine Plaintext-Datei in ein ausführbares Binary kompiliert werden muss, um zu laufen, muss sich die eindimensionale Aminosäuresequenz in eine hochspezifische dreidimensionale Form falten.
In der biologischen Welt bestimmt die Form die Funktion komplett. Die physischen Konturen eines Proteins bestimmen, womit es interagieren kann. Ein Protein, das zu einer Taschenform gefaltet ist, könnte ein bestimmtes Zuckermolekül einfangen und abbauen. Ein Protein, das zu einer starren Röhre gefaltet ist, könnte als strukturelle Stütze für eine Zelle dienen. Wenn der Faltungsprozess schiefgeht, stürzt das biologische Programm ab. Bei Menschen sind falsch gefaltete Proteine die Hauptursache für viele schwere Krankheiten.
Die Sequenz der Aminosäuren enthält alle Anweisungen, die nötig sind, um genau diese dreidimensionale Struktur zu bilden. Die verschiedenen Aminosäuren haben unterschiedliche chemische Eigenschaften. Manche tragen positive oder negative Ladungen und verhalten sich wie Magnete. Manche stoßen Wasser ab und versuchen, sich im Zentrum der Struktur zu verstecken, während andere von Wasser angezogen werden und nach außen drängen. Diese konkurrierenden physischen Kräfte führen dazu, dass sich der String verheddert, verdreht und in eine einzige, stabile Konfiguration einrastet.
Hier ist die entscheidende Erkenntnis. Die Mathematik hinter diesem Faltungsprozess ist überwältigend. Eine typische Proteinkette besteht aus Hunderten von Aminosäuren. Die Anzahl der möglichen Arten, wie sich eine so lange Kette biegen könnte, liegt bei etwa zehn hoch dreihundert. Ein Wissenschaftler namens Cyrus Levinthal wies darauf hin, dass, wenn ein Protein jede mögliche Form sequenziell ausprobieren würde, um die richtige zu finden, der Prozess länger dauern würde als das Alter des Universums. Und trotzdem rastet ein neuer Protein-String in deinen Zellen in wenigen Millisekunden in seine korrekte Form ein.
Das Proteinfaltungsproblem ist der Versuch, diese Lücke zu schließen. Es ist die Herausforderung, eine eindimensionale Aminosäuresequenz als einzigen Input zu nehmen und ihre endgültige dreidimensionale Struktur rechnerisch vorherzusagen.
Historisch gesehen mussten sich Wissenschaftler auf langsame, physische Labortechniken verlassen, um diese Strukturen zu mappen. Methoden wie die Röntgenkristallographie bestanden darin, Proteine zu Kristallen einzufrieren und Strahlen auf sie abzufeuern, um die Winkel des gestreuten Lichts zu messen. Die Struktur eines einzigen Proteins zu finden, konnte Jahre von mühsamem Trial-and-Error dauern. Weil die Technologie der genetischen Sequenzierung das physische Mapping überholte, sammelte die wissenschaftliche Community Hunderte Millionen bekannter eindimensionaler Sequenzen an, mappte aber die 3D-Strukturen für nur einen winzigen Bruchteil davon. Wir hatten endlose Zeilen an Source Code, aber keinen Decompiler, der uns die ausführende Logik zeigte.
Das Proteinfaltungsproblem rechnerisch zu lösen, gibt uns die exakten mechanischen Baupläne der Biologie und verwandelt die Medikamentenentwicklung von einem langsamen Prozess des Ratens im Labor in präzises, zielgerichtetes Engineering.
Wenn dir der Podcast gefällt und du die Show unterstützen möchtest, kannst du auf Patreon nach DevStoriesEU suchen. Das war's für diese Folge. Danke fürs Zuhören und viel Erfolg beim Entwickeln!
2
Inside AlphaFold 2: Architektur-Übersicht
4m 06s
Ein tiefer Einblick in die neuronale Netzwerkarchitektur von AlphaFold 2. Wir analysieren den Evoformer-Block, Multiple Sequence Alignments (MSA) und Pair Representations.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 2 von 21. Du willst die physikalische Form einer einzelnen Proteinsequenz vorhersagen, aber diese Sequenz allein zu betrachten, reicht nicht aus. Um herauszufinden, wie sie sich faltet, musst du dir eigentlich ihren evolutionären Stammbaum ansehen, um synchronisierte Mutationsmuster über Millionen von Jahren zu erkennen. Zu verstehen, wie ein Algorithmus diese evolutionären Muster verarbeitet, ist genau das, was wir in Inside AlphaFold 2: Architecture Overview behandeln.
Die Architektur arbeitet als kontinuierlicher Datenfluss und transformiert einen String aus Aminosäure-Buchstaben in eine 3D-Form. Es beginnt mit der Target Sequence. Bevor irgendein Neural Network Processing stattfindet, durchsucht AlphaFold riesige biologische Datenbanken, um zwei spezifische Inputs basierend auf dieser Sequenz zu sammeln. Der erste Input ist das Multiple Sequence Alignment, oder MSA. Das ist eine Sammlung ähnlicher Proteinsequenzen von anderen Organismen. Wenn zwei Aminosäuren in einer Sequenz über verschiedene Spezies hinweg ständig zusammen mutieren, berühren sie sich wahrscheinlich physisch in der finalen gefalteten Struktur. Der zweite Input besteht aus Structural Templates. Das sind bekannte 3D-Strukturen von Proteinen, die deiner Target Sequence sehr ähnlich sind.
Diese rohen MSAs und Templates fließen direkt in den Embedding Layer. Der Embedding Layer übersetzt diese biologischen Daten in zwei verschiedene mathematische Formate, die das Neural Network verarbeiten kann. Das sind die MSA Representation und die Pair Representation. Die MSA Representation ist eine Matrix, die die evolutionäre Mutationsgeschichte enthält. Die Pair Representation ist ein abstraktes zweidimensionales Grid, das die potenzielle Distanz und physische Beziehung zwischen jedem möglichen Paar von Aminosäuren in der Sequenz erfasst.
Sobald sie erstellt sind, gehen beide Representations in den Evoformer Stack. Der Evoformer ist die Engine von AlphaFold 2 und besteht aus 48 verschiedenen Processing Blocks. Hier ist die wichtigste Erkenntnis: Innerhalb jedes Blocks sprechen die MSA Representation und die Pair Representation miteinander. Sie tauschen Informationen aus, um ihre jeweiligen Daten zu verfeinern. Wenn die evolutionären Daten in der MSA Representation stark darauf hindeuten, dass zwei Aminosäuren interagieren, aktualisiert sie die Pair Representation, um sie auf dem abstrakten Distance Grid näher zusammenzuziehen. Umgekehrt, wenn die Pair Representation feststellt, dass das Zusammenlegen zweier Aminosäuren physische Platzbeschränkungen verletzt, aktualisiert sie die MSA Representation, um diese evolutionäre Verbindung neu zu bewerten. Diese Cross-Communication passiert kontinuierlich, während die Daten durch alle 48 Blocks fließen, und erzeugt eine hochpräzise Map der internen Beziehungen.
Leute nehmen oft an, dass der Evoformer die finale physische Form generiert, aber das tut er nicht. Der Evoformer baut nur abstrakte mathematische Representations von Distanzen und evolutionären Verbindungen. Er liefert als Output hochgradig verfeinerte Datenmatrizen, kein physisches Objekt.
Um die tatsächliche gefaltete Form zu bekommen, verlassen die Daten den 48. Evoformer Block und gehen in das Structure Module. Das Structure Module nimmt die verfeinerte Pair Representation und die originalen Sequenzdaten und übersetzt dieses abstrakte Grid in tatsächliche 3D-Atomkoordinaten. Es weist jedem Atom im Protein-Backbone und seinen Side Chains eine exakte X-, Y- und Z-Position im Raum zu.
Der Erfolg von AlphaFold 2 hängt davon ab, dass der Evoformer die Evolutionsgeschichte und räumliche Beschränkungen kontinuierlich dazu zwingt, miteinander übereinzustimmen, bevor jemals eine einzige 3D-Koordinate gezeichnet wird. Das war's für diese Folge. Danke fürs Zuhören und keep building!
3
Vorhersagen evaluieren: pLDDT und PAE
4m 25s
Woher weißt du, ob eine KI-generierte Proteinstruktur genau ist? Lerne, wie man pLDDT für lokale Konfidenz und PAE für die globale Domänenpositionierung interpretiert.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 3 von 21. Das mächtigste Feature eines AI-Models ist nicht immer sein Output, sondern seine Fähigkeit, dir genau zu sagen, wann es rät. Wenn du dir ein predicted Protein-Model ansiehst und annimmst, dass jeder Loop und jede Domain in der Realität perfekt platziert ist, werden deine Downstream-Experimente wahrscheinlich fehlschlagen. Um diese Models wirklich sicher zu nutzen, musst du Evaluating Predictions verstehen: pLDDT und PAE.
AlphaFold liefert zwei verschiedene Metriken als Output, um seine Unsicherheit zu quantifizieren. Die erste ist pLDDT, was für predicted Local Distance Difference Test steht. Das evaluiert die lokale Confidence. Für jedes einzelne Aminosäure-Residue im Protein vergibt AlphaFold einen Score zwischen 0 und 100. Dieser Score sagt dir, wie confident das Network bei der lokalen Backbone-Struktur ist.
Wenn ein Residue einen Score von über 90 hat, hast du eine sehr hohe Confidence. Auf diesem Level sind normalerweise sogar die Side-Chain-Orientierungen zuverlässig. Ein Score zwischen 70 und 90 ist immer noch eine gute, vertrauenswürdige Backbone-Prediction. Wenn der Score unter 70 fällt, wird die Confidence wackelig.
Hier ist die wichtigste Erkenntnis: Wenn du einen pLDDT-Score unter 50 siehst, ist dein erster Instinkt vielleicht, dass das Model den richtigen Fold nicht gefunden hat. Das ist meistens falsch. Ein sehr niedriger pLDDT-Score deutet oft auf eine intrinsically disordered Region hin. Dem Protein fehlt isoliert betrachtet physikalisch eine feste Struktur. Es könnte ein flexibler Linker oder ein Tail sein, der sich erst faltet, wenn er an ein anderes Molekül bindet. Die AI versagt nicht; sie predicted völlig korrekt, dass dieses Stück des Proteins von Natur aus floppy ist.
Während pLDDT exzellent für lokale Folds ist, hat es einen großen Blind Spot. Es evaluiert Regionen isoliert. Stell dir ein Protein mit zwei völlig getrennten strukturellen Domains vor, die durch einen langen String von Aminosäuren verbunden sind. Du lässt die Prediction laufen, checkst den pLDDT und siehst, dass beide Domains einen Score über 90 haben. Ihre internen Strukturen sind solide. Allerdings kann pLDDT dir nicht sagen, ob diese beiden Domains im dreidimensionalen Raum korrekt zueinander positioniert sind.
Um das zu lösen, liefert AlphaFold eine zweite Metrik namens Predicted Aligned Error, oder PAE. Diese Metrik evaluiert die relative Position von Domains. PAE misst den erwarteten Distance-Error zwischen zwei beliebigen spezifischen Residues im Protein. Die Logik stellt eine einfache Frage: Wenn wir die Prediction auf Residue X perfekt an die wahre Struktur alignen, wie viele Ångström wird Residue Y danebenliegen?
Das gibt dir ein zweidimensionales Grid von Pairwise-Errors. Um auf das Szenario mit dem Zwei-Domain-Protein zurückzukommen: Wenn du den PAE zwischen Residues innerhalb der ersten Domain checkst, wird der Error sehr niedrig sein. Das Gleiche gilt innerhalb der zweiten Domain. Aber wenn du den PAE zwischen einem Residue in Domain eins und einem Residue in Domain zwei checkst, könnte der Error sehr hoch sein. Ein hoher PAE zwischen Domains bedeutet, dass ihre relative Orientierung komplett unsicher ist. Das Model weiß genau, wie die beiden separaten Shapes aussehen, aber es hat keine Ahnung, in welchem Winkel sie zueinander stehen.
Du musst beide Metriken zusammen evaluieren, um das volle Bild zu verstehen. Du nutzt pLDDT, um dem lokalen Folding zu vertrauen und Regionen von natürlicher Disorder zu identifizieren. Du verlässt dich auf PAE, um zu verifizieren, ob das gesamte globale Arrangement dieser einzelnen gefalteten Teile wirklich fixiert ist, oder nur ein räumlicher Guess vom Algorithmus. Behandle eine predicted Structure niemals als eine einzige starre Wahrheit; behandle sie als eine Map of Probabilities, in der jede Domain und jeder Linker seinen eigenen Proof of Reliability in sich trägt. Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.
4
Die AlphaFold Protein Structure Database
4m 42s
Bevor du massive Rechen-Pipelines ausführst, prüfe, ob dein Protein bereits gelöst ist. Wir erkunden die riesige AlphaFold Database, die vom EMBL-EBI gehostet wird.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 4 von 21. Ein bahnbrechendes Machine-Learning-Modell zu trainieren, ist beeindruckend, aber für einen arbeitenden Biologen ist ein rohes neuronales Netz nur ein weiteres schwerfälliges Tool, das konfiguriert werden muss. Um das Feld wirklich zu verändern, veröffentlichst du nicht einfach nur das Modell. Du nutzt es, um fast jedes bekannte Protein der Erde zu falten, und stellst die Ergebnisse kostenlos online. Das ist die AlphaFold Protein Structure Database.
Diese Datenbank entstand in Partnerschaft zwischen Google DeepMind und EMBL-EBI und enthält über 200 Millionen vorhergesagte Strukturen. Diese enorme Zahl repräsentiert fast das gesamte bekannte Proteinuniversum. Anstatt selbst Hardware aufzusetzen und den AlphaFold-Algorithmus auszuführen, umgehst du den Compute komplett und fragst einfach die fertigen Vorhersagen ab.
Schauen wir uns den Workflow für das Web-Interface an. Wenn du den Free fatty acid receptor 2 untersuchst, gehst du auf alphafold dot ebi dot ac dot uk und tippst diesen Namen in die Search Bar ein. Du kannst nach Gen-Namen oder Sequenz suchen, aber die präziseste Methode ist die Verwendung einer UniProt Accession Number. Da die Datenbank direkt auf UniProt mapped, ist jede Struktur eng mit existierenden biologischen Metadaten verknüpft. Wenn du dein Target aus den Ergebnissen auswählst, landest du auf der spezifischen Entry Page für dieses Protein.
Das ist der entscheidende Teil. Das zentrale Feature der Entry Page ist ein interaktiver 3D-Viewer, aber er zeigt dir nicht nur die physikalische Geometrie. Er visualisiert auch die interne Confidence des Modells in diese Geometrie. AlphaFold berechnet einen Score für seine eigene Genauigkeit für jede einzelne Aminosäure über eine Metrik namens pLDDT. Der 3D-Viewer färbt das physikalische Modell basierend auf genau diesen Scores ein. Dunkelblau steht für eine sehr hohe Confidence in die Struktur. Hellblau bedeutet hohe Confidence. Gelb heißt niedrige Confidence und Orange bedeutet sehr niedrige Confidence.
Wenn du den Free fatty acid receptor 2 im Browser drehst, wirst du scharfe, dunkelblaue Helixstrukturen sehen, wo das Protein die Zellmembran durchquert. Aber die losen Tails, die an den Enden herabhängen, könnten leuchtend orange sein. Diese orangen Bereiche sind selten Fehler des Algorithmus. Meistens sind es intrinsisch ungeordnete Bereiche, also Teile des Proteins, die in der biologischen Realität keine feste Form besitzen.
Die Struktur im Browser zu betrachten, ist gut für einen schnellen Sanity Check, aber die eigentliche Computational Work erfordert die Raw Data. Unter dem Viewer findest du die Download-Section. Du kannst die 3D-Koordinaten im Standard-PDB-Format oder im modernen mmCIF-Format herunterladen. Du ziehst diese Files direkt in deine lokale Modeling-Software, um Abstände zu messen oder molekulare Interaktionen zu simulieren.
Neben den Koordinaten-Files musst du auch die Predicted Aligned Error-Daten herunterladen. Diese werden als einfaches JSON-File bereitgestellt. Während die Farben im 3D-Viewer dir sagen, ob ein lokales Stück des Proteins akkurat ist, sagt dir das PAE-JSON-File, ob die relativen Positionen von zwei verschiedenen Stücken akkurat sind. Es enthält eine Matrix von Error Margins für die Abstände zwischen jedem Paar von Residues. Wenn dein Protein zwei solide blaue Domains hat, die durch ein flexibles Hinge getrennt sind, sagen dir die JSON-Daten, ob du dem Winkel zwischen ihnen tatsächlich vertrauen kannst.
Die AlphaFold Protein Structure Database verändert deinen Workflow komplett. Du verbringst nicht mehr Tage damit, zu versuchen, eine Struktur vorherzusagen; du brauchst nur noch Minuten, um sie nachzuschlagen, und deine eigentliche Arbeit wird es, die Confidence Metrics zu interpretieren, die dem Download beiliegen.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
5
Entdeckungen automatisieren: Die AlphaFold Database API
4m 30s
Lerne, wie man automatisierte programmatische Workflows erstellt, um Proteinstrukturen in großem Maßstab über die AlphaFold Database API abzurufen.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 5 von 21. Bioinformatik in der Praxis funktioniert nicht, indem man manuell auf Download-Buttons in einem Webbrowser klickt. Wenn du Hunderte von Proteinen analysieren musst, baust du automatisierte, skalierbare Pipelines. Das bringt uns zu Automating Discovery: der AlphaFold Database API.
Du weißt, dass die Database Millionen von Strukturvorhersagen enthält, aber sich ein Protein nach dem anderen auf einer Website anzusehen, ist für große Projekte unpraktikabel. Wenn du eine vergleichende Analyse über eine ganze Enzymfamilie laufen lässt oder Targets für eine Drug-Discovery-Pipeline screenst, musst du diese Strukturen direkt in dein Computing Environment ziehen. Die AlphaFold Database bietet eine REST API, um genau diesen Bottleneck zu lösen. Sie ermöglicht es deinem Code, die Database abzufragen und Strukturdaten programmatisch ohne menschliches Eingreifen abzurufen.
Der Primary Key für diese Automatisierung ist die UniProt ID. Du kannst dir eine UniProt ID wie einen universellen Barcode für jedes beliebige Protein vorstellen. Deine Pipeline startet normalerweise mit einer Liste dieser IDs. Mit einer Standard-HTTP-Library in Python sendest du einen Request an die API und fragst nach den Prediction-Daten für einen bestimmten Barcode.
Das ist der entscheidende Punkt. Wenn du diesen Request machst, liefert die API keine riesige Datei voller dreidimensionaler Atomkoordinaten zurück. Schwere Dateien über einen synchronen API Call auszuliefern, ist langsam und fehleranfällig. Stattdessen gibt die API ein Manifest zurück. Dieses Manifest ist eine lightweight Response, die genau beschreibt, welche Ressourcen für dein angefordertes Protein verfügbar sind.
Konzeptionell gibt dir dieses Manifest die biologischen Metadaten und ein Directory mit direkten Download-Links. Es zeigt auf die eigentlichen 3D-Strukturdateien in branchenüblichen Formaten. Ganz wichtig: Es liefert auch Links zu den Confidence Metrics, wie dem Predicted Aligned Error, oder der PAE-Matrix. Du brauchst beides. In einer automatisierten Pipeline ist das Downloaden der Struktur nur die halbe Miete. Du musst auch die PAE-Daten downloaden, damit deine Downstream-Algorithmen wissen, welche Teile des Proteins eine hohe Confidence haben und welche flexibel sind.
Gehen wir mal durch, wie diese Logik in einem typischen Python-Script abläuft. Du baust eine Loop, um über deine Liste von UniProt IDs zu iterieren. Innerhalb der Loop machst du deinen Network Request für die erste ID. Bevor du irgendetwas anderes tust, checkst du den HTTP Status Code. Nicht jede existierende Proteinsequenz hat eine vorberechnete AlphaFold-Struktur. Wenn du ein unmapped Protein anfragst, gibt die Database einen Standard 404 Not Found Error zurück. Dein Script muss diesen Error sauber abfangen, die fehlende ID loggen und zur nächsten Iteration übergehen. Wenn du Status Codes ignorierst und versuchst, eine fehlende Response zu parsen, crasht dein kompletter Batch Job beim ersten nicht unterstützten Protein.
Wenn der Request erfolgreich ist, liest dein Script das zurückgegebene Manifest. Du schreibst Logik, um die spezifischen Download-Links zu extrahieren, die dich interessieren – das sind normalerweise das primäre Coordinate File und das dazugehörige Error Matrix File. Dein Script macht dann sekundäre HTTP Requests an diese spezifischen Links und streamt die schweren Daten direkt in deinen Local Storage oder Cloud Bucket.
Indem die Query vom Download getrennt wird, hält die API die anfängliche Discovery-Phase unglaublich schnell. Du kannst schnell die Verfügbarkeit von Tausenden von Proteinen checken, eine validierte Liste von Links bauen und dann das schwere Downloading in Bulk abwickeln. Der wahre Wert der AlphaFold API ist, dass sie den menschlichen Bottleneck entfernt und eine riesige statische Database in eine voll programmierbare Component deiner Research-Architektur verwandelt. Das war's für diese Folge. Danke fürs Zuhören und keep building!
6
Strukturen vorhersagen mit ColabFold
4m 04s
Entdecke ColabFold, eine schnellere Alternative für die AlphaFold-Inference, die Jackhmmer durch MMseqs2 für blitzschnelles Sequence Alignment ersetzt.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 6 von 21. Wenn du eine Proteinstrukturvorhersage ausführst, ist das Neural Network selten der Bottleneck. Die eigentliche Wartezeit passiert, bevor das Model überhaupt startet, und kostet dich Stunden deines Tages, nur um genetische Datenbanken zu durchsuchen. Die Strukturvorhersage mit ColabFold ändert diese Rechnung komplett.
Die Standard-Pipeline für AlphaFold verlässt sich auf ein Tool namens Jackhmmer. Jackhmmer scannt riesige, Terabyte-große lokale Datenbanken, um evolutionäre Verwandte deines Target-Proteins zu finden. Diese Suche baut das Multiple Sequence Alignment, kurz MSA, auf. Das MSA ist der entscheidende Input, der AlphaFold basierend auf der Evolutionsgeschichte mitteilt, welche Teile des Proteins wahrscheinlich interagieren. Dieses Alignment auf traditionelle Weise zu generieren, kostet jedoch Stunden an Compute-Zeit und zwingt dich dazu, riesige Datensätze auf deiner eigenen Infrastruktur zu managen.
ColabFold modifiziert diese Pipeline, indem es genau diesen Bottleneck ins Visier nimmt. Es ersetzt Jackhmmer durch einen anderen Suchalgorithmus namens MMseqs2. MMseqs2 ist stark auf High-Speed-Sequenzsuche optimiert. Aber ColabFold geht noch einen Schritt weiter, als nur Algorithmen auszutauschen. Anstatt dich MMseqs2 und die dazugehörigen Datenbanken auf deiner lokalen Maschine ausführen zu lassen, lagert ColabFold diesen Schritt komplett aus. Es nimmt deine Input-Sequenz und sendet sie über eine API an einen dedizierten, öffentlichen MMseqs2-Server.
Dieser Server übernimmt das Heavy Lifting. Er durchsucht seine eigenen, zentral gemanagten Datenbanken und gibt das fertige MSA direkt an dein Environment zurück. Dieser Architekturwechsel bedeutet, dass du überhaupt keinen lokalen Database-Storage mehr brauchst.
Genau deshalb kannst du ColabFold effektiv in einem Jupyter Notebook ausführen, das auf Cloud-Services wie Google Colab oder UCloud gehostet wird. Das Setup erfordert fast keine Infrastruktur. Du öffnest das Notebook und fügst deine Aminosäuresequenz ein. Das kann ein Wildtyp-Protein sein oder eine custom mutierte Sequenz, mit der du gerade experimentierst.
Wenn du das Notebook ausführst, passiert die Execution in zwei klaren Phasen. Zuerst macht dein Cloud-Environment einen schnellen API Call an den Remote-MMseqs2-Server. Der Server berechnet das Alignment und sendet das MSA zurück an dein Notebook. Das verkürzt einen Prozess, der normalerweise Stunden dauert, auf nur wenige Minuten oder sogar Sekunden.
Jetzt beginnt der zweite Teil dieses Workflows. Dein Notebook übergibt das abgerufene MSA an das Neural Network von AlphaFold. Hier passiert die eigentliche Folding-Prediction. Im Gegensatz zur Datenbanksuche läuft dieser Inference-Schritt lokal in deiner Cloud-Instanz. Er nutzt die GPU, die an deine Google Colab- oder UCloud-Session angehängt ist, um die räumlichen Koordinaten der Proteinstruktur zu berechnen.
Weil die langsame Datenbanksuche ausgelagert und beschleunigt wird, reduziert sich deine gesamte Iterationszeit drastisch. Du bekommst die hochpräzise Neural-Network-Prediction, die du von AlphaFold erwartest, aber du bekommst sie schnell. Wenn du testen musst, wie eine bestimmte Punktmutation die physikalische Form eines Proteins verändert, editierst du einfach einen einzelnen Buchstaben in deiner Sequence-Variable, führst die Cell erneut aus und evaluierst den neuen Output.
Hier ist die entscheidende Erkenntnis. ColabFold beweist, dass man durch das komplette Decoupling der datenintensiven Alignment-Suche von der Neural-Network-Inference erstklassige Strukturbiologie-Tools in einen Standard-Webbrowser packen kann.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
7
AlphaFold-Multimer: Proteinkomplexe vorhersagen
4m 07s
Proteine agieren selten allein. Lerne, wie AlphaFold-Multimer die Interaktionen und 3D-Strukturen komplexer Proteinanordnungen vorhersagt.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 7 von 21. Ein einzelnes Protein zu predicten, ist, als würdest du die Form eines isolierten Puzzleteils erraten. In der Biologie agieren Proteine jedoch selten allein. Wenn du zwei zufällige Sequenzen in ein Standard-Prediction-Model wirfst, wird es diese oft einfach im dreidimensionalen Raum zusammenmatschen, unabhängig davon, ob sie in der Natur tatsächlich binden. Um herauszufinden, wie mehrere flexible Teile wirklich zusammenpassen, brauchst du ein anderes Tool. Das ist AlphaFold-Multimer.
Standard-AlphaFold ist für einzelne Polypeptid-Chains optimiert. AlphaFold-Multimer ist eine retrainierte Version des Systems, die speziell dafür designt wurde, Protein-Komplexe zu predicten. Es wurde trainiert, um sowohl homomere Interfaces zu erkennen und zu modellieren, bei denen mehrere Kopien desselben Proteins aneinanderbinden, als auch heteromere Interfaces, bei denen völlig unterschiedliche Proteine interagieren.
Wenn du AlphaFold-Multimer mehrere Sequenzen übergibst, wird es immer einen predicted Complex zurückgeben. Die entscheidende Herausforderung besteht darin, herauszufinden, ob dieses predicted Interface eine echte biologische Interaktion oder eine künstlich erzwungene Kollision ist. Das Model macht, was du verlangst, also wird es die Chains nebeneinander platzieren. Um das Problem falscher Interaktionen zu lösen, führt AlphaFold-Multimer eine spezielle Confidence-Metric ein, den sogenannten interface predicted Template Modeling score, oder ipTM.
Standard-Confidence-Scores bewerten, wie gut sich ein lokales Stück einer Chain faltet. Der ipTM-Score ignoriert die interne Struktur der einzelnen Proteine vollständig. Stattdessen misst er die Genauigkeit der relativen Positionen der Chains. Er bewertet speziell die Confidence in das Interface, an dem die Proteine aufeinandertreffen.
Stell dir ein Szenario vor, in dem du einen Two-Chain-Antikörper-Antigen-Komplex predictest. Du übergibst die Aminosäuresequenz für den Antikörper und die Sequenz für das Target-Antigen an das Model. Das System gibt eine Struktur als Output zurück, die beide Moleküle enthält. Zuerst checkst du die Standard-Local-Confidence-Scores für jede Chain. Die könnten sehr hoch sein, was zeigt, dass das Model genau weiß, wie sich der isolierte Antikörper und das isolierte Antigen falten.
Pass an dieser Stelle gut auf. Du kannst perfekt gefaltete einzelne Chains mit einem ipTM-Score nahe null haben. Wenn der ipTM niedrig ist, sagt dir das Model, dass die Formen zwar stimmen, es aber keine Ahnung hat, wie sie sich verbinden. Es hat die beiden gefalteten Strukturen einfach nur nebeneinander geparkt, weil du zwei Sequenzen übergeben hast. Das Interface ist bedeutungslos.
Wenn der ipTM-Score jedoch hoch ist, typischerweise alles über null Komma acht, ist sich das Model bei der Interaktion sicher. Ein hoher ipTM bedeutet, dass das System strukturelle und evolutionäre Beweise dafür gefunden hat, dass diese spezifischen Oberflächen ineinandergreifen. Das Model zwingt sie nicht einfach zusammen; es predictet ein echtes Binding-Event.
Um die finalen Outputs zu ranken, berechnet AlphaFold-Multimer einen kombinierten Confidence-Score. Diese kombinierte Metric ist stark auf das Interface gewichtet, nimmt typischerweise achtzig Prozent des ipTM-Scores und addiert zwanzig Prozent des Overall-Structural-Scores. Das Model mit dem höchsten kombinierten Score wird als deine Top-Prediction zurückgegeben.
Die strukturelle Genauigkeit einzelner Chains garantiert keine gültige Interaktion. Der interface predicted Template Modeling score ist die entscheidende Metric, um zu beweisen, dass das Model einen echten biologischen Komplex entdeckt hat, anstatt nur einen Request zu erfüllen, zwei Sequenzen zu gruppieren.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
8
AlphaMissense: Vorhersage der Pathogenität von Varianten
4m 23s
Entdecke AlphaMissense, ein spezialisiertes Modell, das vorhersagt, ob die Änderung eines einzigen Buchstabens in der Sequenz eines Proteins eine Krankheit verursacht.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 8 von 21. Ein einziger Typo in einer Sequenz von Tausenden von Aminosäuren kann den Unterschied zwischen Gesundheit und einer schweren genetischen Krankheit ausmachen. Aber wenn du das Genom eines Patienten sequenzierst und eine neue Mutation findest, woher weißt du dann, ob sie die eigentliche Ursache oder nur harmloses biologisches Rauschen ist? AlphaMissense liefert eine mathematische Antwort auf genau dieses Problem.
Eine Missense-Variante ist eine genetische Mutation, bei der die Änderung eines einzigen DNA-Buchstabens dazu führt, dass im fertigen Protein eine Aminosäure durch eine andere ersetzt wird. Das durchschnittliche menschliche Genom enthält Tausende dieser Varianten. Viele sind völlig harmlos. Sie verändern einen peripheren Teil des Proteins, ohne dessen Gesamtfunktion zu beeinträchtigen. Andere zerstören das Protein komplett und führen zu schweren genetischen Krankheiten. Die gefährlichen von den harmlosen Varianten zu trennen, ist ein massiver Bottleneck in der klinischen Genetik.
AlphaMissense ist ein Model, das speziell dafür gebaut wurde, diese Effekte zu klassifizieren. Wir müssen gleich mit einem weit verbreiteten Missverständnis aufräumen. AlphaMissense sagt nicht die 3D-Strukturveränderungen voraus, die durch eine Mutation verursacht werden. Es gibt kein neues File aus, das eine deformierte Proteinform zeigt. Stattdessen nutzt es den strukturellen und evolutionären Kontext, den das AlphaFold-Network bereits gelernt hat, um eine Wahrscheinlichkeit zu berechnen. Es gibt einen kontinuierlichen Pathogenicity Score zwischen null und eins aus. Dieser Score repräsentiert die Wahrscheinlichkeit, dass eine spezifische Mutation eine Krankheit verursacht.
Nehmen wir ein konkretes Szenario. Du analysierst das Genom eines Patienten und isolierst eine neue einzelne Aminosäuresubstitution in einem kritischen Gen. Ein Valin hat ein Alanin an Position 142 ersetzt. Der Patient ist krank, aber genau diese Mutation wurde in der medizinischen Literatur noch nie dokumentiert. Du musst wissen, ob diese Substitution pathogen ist.
Du schickst eine Query an die AlphaMissense-Database für diese spezifische Variante. Under the hood bewertet das Model die evolutionäre Konservierung genau dieser Position, indem es sich Multiple Sequence Alignments ansieht. Es prüft, ob die Natur Veränderungen an dieser Position über Millionen von Jahren der Evolution toleriert hat. Es bewertet auch den strukturellen Kontext. Eine Aminosäure, die dicht in den hydrophoben Kern des Proteins gepackt ist, ist viel empfindlicher für Änderungen als eine, die lose an der äußeren Oberfläche schwimmt.
AlphaMissense verarbeitet diese evolutionären und strukturellen Signale, um dir deinen Score zurückzugeben. Ein Score nahe null bedeutet, dass die Variante wahrscheinlich harmlos ist. Das Protein faltet sich und funktioniert wahrscheinlich normal. Ein Score nahe eins flaggt sie als wahrscheinlich pathogen. Die Substitution zerstört fast mit Sicherheit die Stabilität oder Funktion des Proteins.
Um diese Daten actionable zu machen, wendet das Model vordefinierte Thresholds an. Scores oberhalb des oberen Thresholds werden als wahrscheinlich pathogen kategorisiert. Scores unterhalb des unteren Thresholds sind wahrscheinlich harmlos. Alles, was in das mittlere Band fällt, wird als ambiguous klassifiziert. Diese Klassifizierung erlaubt es dir, genomisches Rauschen sofort zu filtern. Anstatt teure, zeitaufwändige Laborexperimente zu designen, um jede unbekannte Variante im Genom des Patienten zu testen, fokussierst du deine klinischen Ressourcen sofort auf die wenigen Mutationen, die AlphaMissense mit einem hohen Score flaggt.
Hier ist die entscheidende Erkenntnis. Der wahre Impact dieses Tools ist seine Scale. AlphaMissense wartet nicht auf Queries. Es hat den Pathogenicity Score für alle 71 Millionen möglichen einzelnen Aminosäuresubstitutionen im gesamten menschlichen Proteom bereits berechnet und die Ergebnisse katalogisiert, noch bevor ein Patient jemals eine Klinik betritt.
Wenn dir der Podcast gefällt und du helfen möchtest, die Show am Laufen zu halten, kannst du uns unterstützen, indem du auf Patreon nach DevStoriesEU suchst. Das war's für diese Folge. Danke fürs Zuhören und keep building!
9
AlphaFold 2 lokal deployen
4m 43s
Übernimm die Kontrolle über deine Infrastruktur, indem du die Open-Source-Pipeline von AlphaFold 2 lokal mit Docker und riesigen genetischen Datenbanken deployst.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 9 von 21. Du denkst vielleicht, die größte Hürde bei der Vorhersage von Proteinstrukturen ist es, eine ausreichend leistungsstarke GPU zu finden. Aber der eigentliche Bottleneck ist der Speicherplatz. Bevor du auch nur eine einzige Aminosäure faltest, musst du riesige, mehrere Terabyte große Evolutionsdatenbanken abfragen. In dieser Folge geht es darum, AlphaFold 2 lokal zu deployen.
Wenn du AlphaFold auf deiner eigenen Hardware ausführst, hast du strikte Privatsphäre für proprietäre Sequenzen und umgehst die Execution Time Limits von öffentlichen Servern. DeepMind stellt den Open-Source-Code direkt auf GitHub zur Verfügung. Um ihn zu nutzen, musst du zunächst die exakte genetische Referenzumgebung replizieren, die das Model verwendet, um ähnliche Sequenzen zu finden. Dafür musst du lokale Kopien von öffentlichen Datenbanken wie BFD, MGnify, UniRef90 und PDB70 herunterladen. Zusammen belegen diese unkomprimierten Datenbanken etwa drei Terabyte Speicherplatz.
Stell dir einen DevOps Engineer vor, der eine neue High Performance Computing Node für ein Forschungsteam provisioniert. Die allererste Anforderung ist ein Drei-Terabyte-Laufwerk. Du kannst hier keine billigen, langsamen HDDs verwenden. Du brauchst schnellen NVMe-Storage. Das Durchsuchen von Millionen von Gensequenzen erzeugt aggressive Disk Read Operations. Wenn dein Storage langsam ist, erstickt die gesamte Pipeline, bevor die Daten überhaupt das Neural Network erreichen.
Hier ist die wichtigste Erkenntnis. Die lokale AlphaFold-Pipeline besteht aus zwei separaten Compute-Phasen, und sie erfordern komplett unterschiedliche Hardware-Profile. Phase eins generiert das Multiple Sequence Alignment, kurz MSA. Das System durchsucht deine Terabytes an lokalen Datenbanken mithilfe externer Bioinformatik-Tools. Diese Phase nutzt exakt null GPU-Cycles. Sie wird komplett durch CPU Cores, System Memory und Disk Speed gebottlenecked. Phase zwei ist die eigentliche Structural Inference. Hier übernimmt das Neural Network, um die 3D-Koordinaten zu generieren, und diese Phase erfordert zwingend eine GPU mit ausreichend VRAM. Wenn du eine Node mit einer massiven GPU, aber einer schwachen CPU provisionierst, wird dein Prediction Job in der Alignment-Phase stundenlang hängen bleiben.
Die Software Dependencies für diese beiden Phasen zu managen, ist bekanntermaßen schwierig. Du musst spezifische Versionen von CUDA, Jax und den Sequence Alignment Tools aufeinander abstimmen. Um das zu lösen, setzt das offizielle Repository stark auf Docker. Containerization stellt sicher, dass diese komplexe Execution Environment über verschiedene Betriebssysteme hinweg isoliert und konsistent bleibt.
Das Setup des Deployments umfasst zwei primäre Skripte. Zuerst führst du ein bereitgestelltes Bash-Skript aus, um die Daten herunterzuladen. Du richtest es auf dein NVMe-Drive und lässt es laufen. Je nach Netzwerkverbindung kann das Fetchen und Extrahieren dieser Files ein paar Tage dauern. Sobald die Daten auf deinem schnellen Storage liegen, bist du bereit für die Execution.
Du steuerst die Pipeline über ein bereitgestelltes Python-Wrapper-Skript namens run docker dot py. Du führst dieses Skript im Terminal aus und übergibst ihm ein paar mandatory Arguments. Du übergibst den Pfad zum Input FASTA File, das deine Target-Aminosäuresequenz enthält. Du übergibst den Pfad zu deinem Multi-Terabyte Database Directory. Du gibst ein Output Directory an. Schließlich setzt du ein Maximum Template Release Date, was das Model daran hindert, bekannte Structural Templates zu verwenden, die nach einem bestimmten Zeitpunkt veröffentlicht wurden.
Der Python-Wrapper nimmt diese Argumente und baut den Docker-Container. Er mountet deine lokalen Host Directories als Volumes in den Container, sodass die isolierte Software deine Datenbanken lesen und Output Files zurück auf deine Disk schreiben kann. Der Container übernimmt dann und orchestriert die CPU-lastige Alignment Search und den GPU-lastigen Inference-Prozess automatisch.
AlphaFold lokal zu deployen, ist im Grunde eine Infrastructure Challenge. Sie erfordert von dir, schnelle Disk Speed für die CPU-lastige Alignment-Phase mit ausreichend VRAM für die GPU-lastige Folding-Phase auszubalancieren.
Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.
10
Einführung in AlphaFold 3: Mehr als nur Proteine
3m 53s
AlphaFold v3.0 verändert die Landschaft grundlegend, indem es DNA, RNA, Liganden und Ionen modelliert und so ein vollständiges Bild der zellulären Umgebung zeichnet.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 10 von 21. Jahrelang musstest du, wenn du sehen wolltest, wie ein potenzielles Medikament mit einem Target-Protein interagiert, deine Sequence laufen lassen, eine Proteinstruktur generieren und dann eine komplett separate Software nutzen, um das Medikament computational anzudocken. Du hast eine starre Chemikalie in ein starres Model gezwungen. AlphaFold 3 ändert das komplett, indem es alles zur gleichen Zeit zusammen faltet. Heute stellen wir vor: AlphaFold 3: Beyond Proteins.
Frühere Versionen von AlphaFold waren strikt darauf fokussiert, die Struktur von Proteinen basierend auf ihren Aminosäure-Sequences vorherzusagen. Darin waren sie extrem gut, aber echte biologische Systeme funktionieren nicht wie nackte Proteine, die im Vakuum schweben. Proteine interagieren mit DNA, um Gene an- und auszuschalten. Sie sind auf Metallionen angewiesen, um Reaktionen zu katalysieren. Sie werden durch kleine Medikamentenmoleküle blockiert oder aktiviert.
Vor diesem Update erforderte das Modeling dieser komplexen Interaktionen eine fragmentierte Pipeline. Du hast zuerst die Proteinstruktur vorhergesagt, dann vielleicht die DNA separat modelliert und schließlich versucht zu berechnen, wie sie physikalisch zusammenpassen. Dieser sequentielle Ansatz hat einen großen Haken. Er geht davon aus, dass die Proteinstruktur statisch ist. In Wirklichkeit verändern Proteine ihre Form dynamisch, wenn sie sich an andere Moleküle binden.
Hier ist die entscheidende Erkenntnis. AlphaFold 3 wandelt sich von einem reinen Protein-Folding-Tool zu einem generalisierten Predictor für biomolekulare Komplexe. Es erweitert sein natives Vokabular über Aminosäuren hinaus um drei völlig neue Molekülkategorien.
Erstens unterstützt es jetzt Nukleinsäuren, was bedeutet, dass du sowohl DNA- als auch RNA-Sequences als Input reingeben kannst. Zweitens versteht es nativ Small-Molecule-Liganden, was die überwiegende Mehrheit der pharmazeutischen Medikamente abdeckt. Drittens unterstützt es die Einbindung essenzieller Ionen, die oft im Kern funktioneller Proteine sitzen.
Anstatt diese Komponenten isoliert vorherzusagen, sagt AlphaFold 3 die gemeinsame Struktur all dieser verschiedenen molekularen Entitäten gleichzeitig vorher. Es berechnet die Interaktionen zwischen jedem Atom im gesamten Komplex in einem einzigen Pass.
Überleg dir mal, wie das ein Standard-Modeling-Szenario verändert. Du schaust dir nicht länger ein isoliertes Target an. Du kannst jetzt einen Input definieren, der eine Protein-Sequence, einen spezifischen DNA-Strang und die chemische Definition eines kleinen Inhibitor-Medikaments enthält. Das System evaluiert sie zusammen. Der resultierende Output zeigt, wie das Protein den DNA-Strang aktiv greift, während das kleine Medikamentenmolekül perfekt in die Binding Pocket eingeklemmt ist. Weil alles im selben Computational Space gefaltet wurde, spiegelt das Protein-Model automatisch die strukturellen Verschiebungen wider, die sowohl durch die DNA als auch durch das Medikament verursacht wurden.
Das ist nicht einfach die alte AlphaFold-Engine mit einem hinten drangeschraubten Docking-Algorithmus. Es ist eine komplett eigenständige Model-Architecture, die direkt darauf trainiert wurde, wie verschiedene Klassen biologischer Moleküle im physikalischen Raum interagieren.
Der wichtigste Shift bei AlphaFold 3 ist, dass du keine isolierten biologischen Teile mehr generierst, sondern komplette, interagierende molekulare Maschinen vorhersagst, genau so, wie sie in der physischen Welt existieren.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
11
AlphaFold Server: Das AF3-Gateway
3m 43s
Sammle praktische Erfahrungen mit AlphaFold v3.0 über den AlphaFold Server, eine webbasierte GUI, die lokale Hardware und komplexe Setups überflüssig macht.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 11 von 21. Du brauchst weder einen Ingenieurabschluss noch einen Supercomputer, um die weltweit fortschrittlichste biomolekulare AI auszuführen. Die Einstiegshürde ist auf einen einfachen Webbrowser gesunken. Das ist der AlphaFold Server, dein direkter Zugang zu AlphaFold 3.
In der Vergangenheit bedeutete das Ausführen komplexer Structure Predictions, dass man Software-Dependencies verwalten, Terabytes an genetischen Datenbanken herunterladen und leistungsstarke GPUs warten musste. Der AlphaFold Server umgeht all das. Er ist ein komplett grafisches Web-Interface, das es Biologen und Chemikern ermöglicht, AlphaFold 3 Jobs auszuführen, ohne eine einzige Zeile Code zu schreiben. Alle Multiple Sequence Alignments, das Template Searching und das diffusion-based Folding passieren remote auf einer Shared Compute Infrastructure.
Bevor wir eine Prediction durchgehen, müssen wir zwei strikte Grenzen klären. Erstens: Der AlphaFold Server ist ausschließlich für die nicht-kommerzielle Nutzung gedacht. Zweitens: Weil er auf bereitgestellte Compute-Ressourcen angewiesen ist, unterliegt dein Account täglichen Job-Limits. Du kannst ihn nicht nutzen, um eine massive Screening-Pipeline zu brute-forcen. Er ist für gezieltes, experimentelles Design mit Single-Jobs gedacht.
So baust du einen komplexen Multi-Chain Prediction Job im Interface auf. Der gesamte Workflow dreht sich darum, separate Entities zu einem gemeinsamen Workspace hinzuzufügen.
Fang mit deinem Hauptprotein an. Du klickst auf den Button, um eine Protein-Entity hinzuzufügen. Ein Textfeld erscheint. Du pastest einfach deine Ein-Buchstaben-Aminosäuresequenz direkt in diese Box. Wenn du erwartest, dass dieses Protein ein Homodimer bildet, musst du die Sequenz nicht zweimal pasten. Du änderst einfach das Copy-Number-Setting auf zwei, und das System kümmert sich um die Stöchiometrie.
Der zweite Teil davon ist nun das Hinzufügen interagierender Moleküle. Angenommen, du willst sehen, wie dieses Protein an ein bestimmtes DNA-Segment bindet. Du klickst, um eine DNA-Entity hinzuzufügen, und pastest die Sequenz für den Forward Strand. Um die eigentliche Doppelhelix zu bauen, fügst du eine weitere DNA-Entity hinzu und pastest die Reverse Complementary Sequence. AlphaFold 3 modelliert sie zusammen im selben dreidimensionalen Raum und sagt sowohl das Base Pairing der DNA als auch das strukturelle Interface mit deinem Protein voraus.
Hier wird es für Non-Polymer-Komponenten interessant. Der Server unterstützt Liganden, Ionen und Cofaktoren nativ. Wenn dein Protein ein bestimmtes Metall-Ion braucht, um sein Folding zu stabilisieren, klickst du, um eine Ion-Entity hinzuzufügen. Du musst keine komplexen chemischen Identifier nachschlagen oder SMILES-Strings für Standardkomponenten schreiben. Der Server bietet ein eingebautes Dropdown-Menü. Du suchst einfach nach einem gängigen Ion, wählst Magnesium oder Zink aus, definierst, wie viele Copies du brauchst, und das Interface übernimmt es.
Sobald dein Workspace die Proteinsequenz, die beiden DNA-Stränge und das ausgewählte Ion enthält, klickst du auf den Submit-Button. Das ist das gesamte Setup.
Im Hintergrund übernimmt der Server. Er managt die Alignment-Pipelines, speist die Daten in das Neural Network von AlphaFold 3 ein und führt den Structural Diffusion Process aus. Wenn der Job abgeschlossen ist, laden die Ergebnisse direkt in deinem Browser. Du bekommst einen eingebetteten 3D-Viewer, um den predicted Complex sofort zu inspizieren. Noch wichtiger ist, dass du ein sauberes Package zum Download bekommst, das die predicted Atomic Coordinate Files und alle zugehörigen Confidence Metrics für deine lokale Analyse enthält.
Die wahre Stärke des Servers ist nicht nur der sofortige Zugriff auf das Model, sondern die schiere Geschwindigkeit der Iteration, die er beim Testen struktureller Hypothesen bietet.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
12
AlphaFold 3-Ergebnisse interpretieren
4m 39s
Die Evaluierung von AlphaFold v3.0-Vorhersagen erfordert neue Metriken. Lerne, wie man Clash Scores und Konfidenzwerte für Nukleinsäuren interpretiert.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 12 von 21. Genau vorherzusagen, wie ein neues Medikament an ein Target Protein bindet, fühlt sich wie ein echter Durchbruch an – bis du merkst, dass die AI einfach zwei feste Kohlenstoffatome in exakt denselben physikalischen Raum gepackt hat. Eine wunderschön gerenderte Struktur ist nutzlos, wenn sie den Gesetzen der Physik widerspricht. Heute schauen wir uns die Interpretation von AlphaFold 3 Results an, damit du biologische Insights von Computational Hallucinations trennen kannst.
AlphaFold 3 generiert ein dreidimensionales Coordinate File zusammen mit einer Reihe spezifischer Metrics. Um ein Result zu evaluieren, musst du diese Metrics zusammen betrachten, denn ein hoher Score in einem Bereich kann einen katastrophalen Fehler in einem anderen maskieren. Zuerst schaust du dir die Local Confidence an, und zwar mit einer Metric namens pLDDT. Diese bewertet jedes einzelne Atom oder Residue auf einer Skala von null bis hundert. Ein hoher Score bedeutet, dass sich das Model bei der spezifischen lokalen Geometrie dieser Chain sehr sicher ist.
Aber Local Confidence allein reicht nicht aus. Du kannst ein perfekt vorhergesagtes Protein und einen perfekt vorhergesagten Small Molecule Ligand haben, die völlig unabhängig voneinander im Raum schweben. Um zu wissen, ob sie tatsächlich interagieren, musst du den Predicted Aligned Error, kurz PAE, checken. Der PAE misst den erwarteten Position Error in Angström. Niedrigere Werte sind besser.
Wenn du Komplexe vorhersagst, wie ein Protein, das an einen DNA-Strang oder ein Drug Molecule bindet, fokussierst du dich auf den Cross-PAE. Stell dir den PAE-Output wie eine Heatmap Matrix vor. Die Diagonale zeigt, wie sicher sich das Model bei der internen Struktur einer einzelnen Chain ist. Die Off-Diagonal Areas zeigen die Confidence zwischen verschiedenen Entities. Wenn der PAE zwischen deinem Protein und deinem Liganden niedrig ist, hat AlphaFold eine hohe Confidence in ihre relativen Positionen. Es geht fest davon aus, dass der Ligand genau in dieser spezifischen Pocket sitzt.
Hier ist der entscheidende Punkt: Hohe Confidence bedeutet nicht automatisch physikalische Realität. AlphaFold 3 ist ein Deep Learning Model, kein Molecular Dynamics Simulator. Es priorisiert erkannte räumliche Pattern gegenüber strenger Physik.
Das bringt uns zum Clash Score. Weil AlphaFold 3 Liganden, Nucleic Acids und modifizierte Residues direkt modelliert, ohne einen strengen physikbasierten Relaxation Step, können die Outputs schwere Steric Clashes enthalten. Ein Clash passiert, wenn zwei Atomen Coordinates zugewiesen werden, die sie unmöglich nah beieinander platzieren, sodass sie quasi überlappen. Der Server berechnet und liefert einen Clash Score für deinen Output. Ein hoher Clash Score ist eine massive Red Flag.
Stell dir folgendes Szenario vor: Du analysierst einen Output und die Main Protein Chain hat einen pLDDT über 90. Der Cross-PAE zwischen dem Protein und deinem Target Ligand ist sehr niedrig. Interface Metrics deuten auf ein starkes Binding Event mit hoher Confidence hin. Auf dem Papier sieht es nach einer perfekten Docking Prediction aus.
Dann checkst du den Clash Score und er ist extrem hoch. Wenn du die physikalischen Coordinates in einen Viewer lädst, siehst du, wie der Ligand direkt durch das Protein Backbone verläuft. Das Neural Network hat zwar erkannt, dass der Ligand in diese generelle Binding Pocket gehört, aber es hat es nicht geschafft, die Atome um die existierenden Side Chains herumzuführen. Es hat ein Ghost Molecule halluziniert, das feste Materie einfach ignoriert.
Wenn du ein AlphaFold 3 Result evaluierst, musst du Structural Confidence und Physical Realism gleichzeitig checken. Nutze pLDDT, um die Form einzelner Moleküle zu verifizieren. Nutze PAE, um zu bestätigen, dass sie dort interagieren, wo du es erwartest. Checke danach den Clash Score, um sicherzustellen, dass das Model keine grundlegende Chemie verletzt hat, nur um diese Interaktion zu erzwingen.
Denk daran, dass ein Deep Learning Model eine Spatial Hypothesis basierend auf Pattern Recognition ausgibt. Eine hochkonfidente Prediction ist also nur valide, wenn die Atome auch wirklich die Gesetze der Physik respektieren.
Das war’s für diese Folge. Danke fürs Zuhören und keep building!
13
AlphaFold 3 Inference Pipeline
4m 17s
Lerne, wie man die Open-Source-Pipeline von AlphaFold v3.0 orchestriert, JSON-Inputs verwaltet und die containerisierte Anwendung ausführt.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Vorhersage von Proteinstrukturen, Folge 13 von 21. DeepMind hat sein neuestes Strukturbiologiemodell als Open Source veröffentlicht, aber wenn du das Repository klonst und versuchst, es auszuführen, wird es sofort fehlschlagen. Der Code ist komplett öffentlich, aber das eigentliche neuronale Netzwerk, das die Vorhersagen steuert, ist streng kontrolliert. Heute schauen wir uns die AlphaFold 3 Inference Pipeline an und wie du sie eigentlich deployest.
Um AlphaFold 3 lokal auszuführen, musst du zwei separate Teile zusammenbringen: den Execution-Code und die Modellparameter. Das Repository liefert dir die Pipeline-Logik. Für die Parameter, genauer gesagt die Weights der Version drei Punkt null Punkt eins, musst du separat Zugriff beantragen. Google verlangt, dass du ein Formular einreichst, in dem du deinen nicht-kommerziellen Forschungs-Use-Case detailliert beschreibst. Sobald sie deine Anfrage genehmigen, erhältst du einen Link, um die riesigen Model Weights herunterzuladen. Dieser geteilte Ansatz erlaubt es DeepMind, die kommerzielle Nutzung einzuschränken, während Forscher die Open-Source-Pipeline trotzdem auf ihrer eigenen Hardware inspizieren und ausführen können.
Nachdem du die Weights heruntergeladen hast, ist dein nächster Schritt zu definieren, was das Modell vorhersagen soll. Frühere Versionen von AlphaFold hatten meistens mit einzelnen Protein-Chains zu tun, also konntest du einfach einen simplen Text-String aus Aminosäuren übergeben. AlphaFold 3 modelliert komplexe Interaktionen über verschiedene Molekültypen hinweg, daher reicht ein einfacher String nicht mehr aus. Stattdessen erstellst du eine Config-Datei. Diese Datei dient als komplettes Manifest für dein biologisches Target. Du gibst die exakten Moleküle an, die an deinem Experiment beteiligt sind. Das kann ein Standardprotein, ein DNA- oder RNA-Strang oder ein spezifischer Small-Molecule-Ligand sein.
In derselben Config-Datei definierst du auch die Randomness Seeds. Da die neue Modellarchitektur auf einem Diffusionsprozess basiert, um die finale dreidimensionale Struktur zu generieren, erzeugen leichte Variationen im Random Seed unterschiedliche mögliche Strukturzustände. Indem du mehrere Seeds in deiner Config definierst, weist du die Pipeline an, für exakt denselben Input unterschiedliche Predictions zu generieren. Du deklarierst in dieser Datei auch eine Dialect-Version, was der Parsing-Engine einfach sagt, dass sie die AlphaFold 3 Validation-Rules auf dein Manifest anwenden soll.
Wenn deine Weights heruntergeladen sind und deine Config-Datei bereit ist, gehst du zur Execution über. Da diese Pipeline von hochspezifischen Versionen von Machine-Learning-Libraries und GPU-Treibern abhängt, ist es riskant, sie direkt auf deinem Host-Betriebssystem auszuführen. Der offizielle Workflow setzt auf Docker. Du baust ein Container-Image direkt aus dem bereitgestellten Repository und sicherst dir so die perfekte Umgebung.
Um die Inference tatsächlich auszuführen, startest du diesen Container und verbindest ihn mit deiner Host-Machine, indem du drei wichtige Pfade mountest. Erstens mountest du den Ordner, der deine Input-Config-Datei enthält. Zweitens mountest du das Directory mit diesen riesigen, genehmigten Model Weights, die du vorhin heruntergeladen hast. Schließlich mountest du ein leeres Directory, in das der Container seine Ergebnisse schreiben kann.
Sobald der Container bootet, rufst du das Main-Run-Script auf. Die Pipeline validiert dein Input-Manifest, lädt die Weights aus deinem gemounteten Directory in den GPU-Memory und beginnt mit der Strukturvorhersage. Wenn der Prozess beendet ist, enthält dein gemounteter Output-Ordner die finalen Koordinaten deiner angeforderten Moleküle, formatiert und bereit zur Visualisierung.
Die größte Herausforderung dieser Pipeline ist nicht der zugrundeliegende Code, sondern die Logistik zu managen, um die Model Weights zu sichern und deine Config-Datei akribisch zu strukturieren, um komplexe biologische Interaktionen abzubilden. Wenn du die Show unterstützen möchtest, kannst du auf Patreon nach DevStoriesEU suchen. Das war's für diese Folge. Danke fürs Zuhören und keep building!
14
Data Pipelines & Hardwareanforderungen
3m 55s
Meistere die Separation of Concerns in AlphaFold v3.0, indem du die CPU-lastige Data Pipeline von der GPU-lastigen Inference Engine entkoppelst.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 14 von 21. Der größte Fehler, den Entwickler beim Deployen von AlphaFold machen, ist, teure GPUs idle laufen zu lassen, während sie darauf warten, dass einfache Database Queries durchlaufen. Du provisionierst eine A100, startest einen Job und siehst stundenlang zu, wie deine Utilization bei null Prozent stagniert. Die Lösung ist die Trennung deiner Execution Environments, und genau das schauen wir uns heute mit Data Pipelines und Hardware Requirements an.
AlphaFold 3 führt zwei grundlegend verschiedene Arten von Workloads aus. Erstens durchsucht es riesige genetische Datenbanken, um Multiple Sequence Alignments zu bauen und Structural Templates zu finden. Zweitens übergibt es diese verarbeiteten Daten an das Neural Network, um die finale dreidimensionale Struktur vorherzusagen. Die Datenbanksuche ist komplett durch die CPU und Storage Read Speeds limitiert. Die Prediction durch das Neural Network erfordert eine GPU. Wenn du das Default-Setup laufen lässt, führt AlphaFold beide Schritte nacheinander auf derselben Maschine aus. Das bedeutet, dass deine teure GPU absolut nichts tut, während deine CPU stundenlang Terabytes an Reference Databases durchackert.
Hier ist der entscheidende Punkt. Das Repository bietet zwei spezifische Execution Flags, um diese Workloads zu entkoppeln. Das erste Flag ist run data pipeline. Wenn du das Run-Script mit diesem aktivierten Flag und deaktiviertem run inference ausführst, macht AlphaFold nur die Genetic- und Template-Searches. Es liest deine Input Configuration, fragt die lokalen Datenbanken ab und generiert alle nötigen Sequence Features. Danach speichert es diesen Intermediate Data State auf Disk. Ganz wichtig: Dieser Schritt braucht null GPU-Ressourcen. Er verlässt sich komplett auf eine Maschine mit vielen CPU-Cores und schnellen NVMe Solid State Drives, um die rechenintensiven Input- und Output-Operations zu bewältigen.
Sobald die Data Pipeline die Features fertig gebaut hat, nutzt du das zweite Flag. Du führst das Script nochmal aus, aber du setzt run data pipeline auf false und run inference auf true. AlphaFold wird die Database Search komplett überspringen. Es lädt direkt die gecachten Feature-Daten, die du gerade generiert hast, initialisiert die Model Weights und führt den Neural Network Forward Pass aus. Dieser Schritt ist komplett GPU-bound. Er verlässt sich exklusiv auf deinen Hardware Accelerator und seinen High Bandwidth Memory.
Diese explizite Trennung ist genau das, wie du eine saubere Enterprise Infrastructure designst. Anstatt massive Database Drives an mehrere teure GPU-Maschinen zu hängen, provisionierst du eine Fleet von kosteneffizienten CPU-Nodes. Du verteilst deine eingehenden Prediction Requests über diese CPU-Nodes und nutzt sie, um aggressiv Datenbanken abzufragen und Alignments parallel zu generieren. Jedes Mal, wenn ein CPU-Node einen Data Pipeline Job abschließt, legt er die resultierenden Feature Files auf einem Shared Storage System ab.
Währenddessen betreibst du einen einzelnen, hoch ausgelasteten Node mit einer starken GPU. Diese Maschine existiert strikt für Inference. Sie überwacht konstant den Shared Storage. Wenn ein neues Feature File auftaucht, schnappt sie es sich, lässt die Neural Network Prediction in Minuten durchlaufen, speichert die finale Molecular Structure und zieht sich sofort das nächste File. Deine GPU wartet nie wieder auf einen Storage Bottleneck oder eine Database Search.
Das Entkoppeln der CPU-bound Data Pipeline von der GPU-bound Inference ist der mit Abstand effektivste Weg, um Protein Structure Prediction zu skalieren und gleichzeitig die Hardware Costs unter Kontrolle zu halten. Danke, dass du ein paar Minuten mit mir verbracht hast. Bis zum nächsten Mal, mach's gut.
15
Der Speicherengpass: O(n³) Attention
4m 06s
Wir tauchen in das FastFold-Forschungspaper ein, um zu verstehen, warum das Evoformer-Modul von AlphaFold bei langen Sequenzen katastrophale Out-of-Memory-Fehler verursacht.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 15 von 21. Dein Protein-Modell ist überraschend klein und liegt bei unter hundert Millionen Parametern. Du sagst die Struktur einer 500 Aminosäuren langen Sequenz erfolgreich auf einer Standard-16-Gigabyte-GPU voraus, aber wenn du eine 1500 Aminosäuren lange Sequenz als Input gibst, stürzt der Prozess sofort mit einem Out of Memory Error ab und verlangt plötzlich über 80 Gigabyte VRAM. Diese katastrophale Skalierung passiert wegen eines spezifischen Architektur-Merkmals, dem sogenannten Memory Bottleneck: O(n³) Attention.
Laut dem FastFold Paper von Cheng et al. hat dieser explosive Speicherverbrauch nichts mit den Model Weights zu tun. Das gesamte AlphaFold-Modell hat nur 93 Millionen Parameter. Der Bottleneck liegt ausschließlich in den Intermediate Activations, die während des Forward Pass generiert werden. Wenn die Sequenzlänge wächst, skaliert der Speicherbedarf für diese Intermediate Tensors kubisch.
Um zu verstehen, warum das so ist, müssen wir uns den Evoformer genauer ansehen. Der Evoformer ist der zentrale strukturelle Kern von AlphaFold und besteht aus 48 gestapelten Blöcken. Innerhalb jedes Blocks nutzt das Modell einen spezialisierten Attention-Mechanismus. Standard-Transformer, wie sie in Language Models verwendet werden, haben typischerweise Attention-Mechanismen, bei denen der Speicherbedarf quadratisch mit der Sequenzlänge skaliert. Sie vergleichen lediglich eine eindimensionale Sequenz mit sich selbst. AlphaFold ist anders. Es verwendet eine zweidimensionale Intermediate Representation, um paarweise Interaktionen zwischen Aminosäuren zu modellieren.
Hier ist die entscheidende Erkenntnis. Um dreidimensionale Proteinstrukturen präzise vorherzusagen, kann das Netzwerk nicht einfach nur Aminosäurepaare isoliert betrachten. Es muss Dreiecksbeziehungen auswerten, um sicherzustellen, dass die vorhergesagten Abstände zwischen drei Punkten im dreidimensionalen Raum physikalisch möglich sind. Um das zu berechnen, generiert das Attention-Modul Intermediate Activation Tensors. Der Memory Footprint dieser Tensoren folgt einer strengen Formel. Er ist die Sequenzlänge hoch drei, multipliziert mit der Anzahl der Attention Heads, multipliziert mit der Byte-Größe des Datentyps. AlphaFold verwendet BFloat16 Precision, was zwei Bytes pro Wert benötigt.
Lass uns die Mathematik für den Entwickler durchgehen, dessen GPU abgestürzt ist. Wenn du eine Sequenz mit 500 Aminosäuren an das Modell übergibst, ist die Sequenzlänge 500. 500 hoch drei sind 125 Millionen. Wenn du vier Attention Heads hast, multiplizierst du 125 Millionen mit vier, und dann mit zwei Bytes für die Precision. Eine einzelne Attention Layer erzeugt etwa ein Gigabyte an Intermediate Activations. Deine 16-Gigabyte-GPU bewältigt das mit reichlich Reserven.
Jetzt änderst du den Input auf eine Sequenz mit 1500 Aminosäuren. Du hast die Input-Länge lediglich verdreifacht. Aber weil die Skalierung kubisch ist, musst du 1500 hoch drei nehmen, was über 3,3 Milliarden ergibt. Multipliziere das mit vier Heads und zwei Bytes, und genau dieselbe einzelne Attention Layer verlangt jetzt fast 27 Gigabyte Memory, nur um ihre Activations zu speichern. Weil das Netzwerk diese Daten durch 48 aufeinanderfolgende Evoformer-Blöcke leitet, übersteigt der gesamte Memory-Bedarf sofort 80 Gigabyte. Die Tensoren wachsen so rasant an, dass die Hardware den Prozess einfach abbricht.
Deshalb erfordert AlphaFold für längere Sequenzen eine starke Optimierung. Der reine Parameter Count eines neuronalen Netzes sagt dir fast nichts über seine Hardware-Anforderungen, wenn die interne Geometrie erzwingt, dass Intermediate Data gleichzeitig in drei Dimensionen wächst.
Wenn du die Show unterstützen möchtest, kannst du auf Patreon nach DevStoriesEU suchen. Das war's für diese Folge. Danke fürs Zuhören, und keep building!
16
Dynamic Axial Parallelism (DAP)
4m 35s
Lerne, wie die FastFold-Architektur die Speicherlimits von AlphaFold löst, indem sie Intermediate Activations mithilfe von Dynamic Axial Parallelism auf mehrere GPUs aufteilt.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 16 von 21. Wenn ein Intermediate Tensor zu massiv für eine einzelne GPU ist, ist der Standard-Instinkt, die Model Parameters auf mehrere Karten zu slicen. Aber wenn dein Neural Network nur 93 Millionen Parameter hat und deine Activation Tensors 20 Gigabyte verbrauchen, bringt das Slicen des Models gar nichts. Du musst die Geometrie der Daten selbst slicen. Genau das löst Dynamic Axial Parallelism.
Um zu verstehen, warum es diesen Ansatz gibt, müssen wir uns die Bottlenecks ansehen, die im FastFold-Paper identifiziert wurden. Die Core-Engine von AlphaFold ist der Evoformer-Block. Er verarbeitet Multiple Sequence Alignments und Pair Representations, die im Grunde wie riesige zweidimensionale Daten-Grids funktionieren. Standard Tensor Parallelism versucht, schwere Workloads zu bewältigen, indem die Linear Layer Weights auf verschiedene GPUs gesplittet werden. Für AlphaFold führt das zu extremen Ineffizienzen. Tensor Parallelism erfordert häufige, schwere Synchronisation, was bis zu zwölf Communication Steps pro Block triggert. Das gilt außerdem nur für die Attention- und Feed-Forward-Module. Noch schlimmer: Die Skalierung ist durch die Anzahl der Attention Heads hart gecappt. Im AlphaFold Pair Stack limitiert dich das auf ein Maximum von gerade mal vier GPUs.
Dynamic Axial Parallelism, oder DAP, verabschiedet sich komplett vom Weight-Splitting-Ansatz. Stattdessen behält DAP die kompletten Model Parameters auf jedem einzelnen Device intakt. Das Model selbst wird nie verteilt. Die Intermediate Activations schon.
Der Evoformer verarbeitet Daten entlang von zwei Sequence Dimensions, aber die mathematischen Operationen passieren immer nur entlang einer Dimension zur selben Zeit. Dieses Verhalten erlaubt es DAP, die Daten sauber entlang der inaktiven Dimension aufzuteilen.
Du kannst dir das in einem Multi-GPU-Setup so vorstellen: Ein riesiges Grid aus Sequence Data kommt in den Layer. DAP slicet diesen Input horizontal. GPU null nimmt den ersten Chunk an Rows, GPU eins den nächsten, und so weiter. Jede GPU berechnet dann die Attention für ihren spezifischen Data Slice. Weil jede GPU eine vollständige Kopie der Model Weights hält und die Computation auf die horizontale Achse isoliert ist, müssen die GPUs nicht miteinander reden. Sie berechnen ihre Chunks komplett unabhängig.
Hier ist der entscheidende Punkt: Sobald diese horizontale Calculation fertig ist, muss das Model die Daten entlang der vertikalen Sequence Dimension verarbeiten. Um das zu erreichen, führen die GPUs einen All-to-All Communication Step aus. Sie transponieren die Geometrie der Daten über das Network. GPU null scattert ihre Column Fragments an die anderen Devices und gathert die Pieces, die sie für die nächste Phase braucht. Die Ausrichtung des Splits flippt. Jetzt sind die Daten vertikal über den Cluster gesliced. Die GPUs lassen sofort den nächsten Layer an Attention Calculations laufen, wieder mit null Cross-Talk während der eigentlichen Berechnungen.
Diese Transposition Strategy reduziert das Communication Volume um eine ganze Größenordnung im Vergleich zu Standard Tensor Parallelism. Sie ermöglicht außerdem Parallelism über jedes einzelne Computational Module im Evoformer hinweg. Weil die massiven Activation Tensors gleichmäßig über den Cluster verteilt sind, sinkt die gesamte Memory Consumption stark. Das verhindert, dass einzelne Devices unter dem Gewicht langer Sequences crashen.
Wenn dein Hardware-Bottleneck durch die schiere physische Größe der Intermediate Representations und nicht durch die Tiefe des Neural Networks verursacht wird, fragmentierst du nicht die Architektur. Du verteilst die Achsen der Daten.
Das war’s für diese Folge. Danke fürs Zuhören, und keep building!
17
AutoChunk: Speicheroptimierung für lange Sequenzen
4m 00s
Manuelles Memory Chunking ist mühsam. Wir untersuchen den AutoChunk-Algorithmus aus dem FastFold-Paper, der die Tensor-Partitionierung während der Inference automatisch optimiert.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Proteinstrukturvorhersage, Folge 17 von 21. Was wäre, wenn dein Compiler smart genug wäre, deine Matrix-Berechnungen automatisch so zu slicen, dass sie perfekt in dein Hardware-Memory-Budget passen? Stell dir vor, ein Engineer verbringt Tage damit, Code manuell zu profilen und zu slicen, um Out of Memory Errors zu vermeiden. Jedes Mal, wenn sich die Sequenzlänge ändert, funktionieren die festen Slices nicht mehr. Vergleich das mal mit einem System, das Memory Footprints dynamisch schätzt und partitionierten Code on the fly generiert. AutoChunk ist der Algorithmus, der dies ermöglicht.
Im FastFold-Paper befassten sich Forscher mit den massiven Memory Bottlenecks bei der Verarbeitung langer Sequenzen durch Protein-Vorhersagemodelle. Der Standardansatz, um Out of Memory zu vermeiden, ist Chunking. Du partitionierst einen Tensor entlang von Dimensionen, die während einer Berechnung nicht interagieren, verarbeitest diese kleineren Blöcke sequenziell und fügst sie wieder zusammen. Normalerweise ist dies ein manueller, arbeitsintensiver Prozess. Du profilst den Code, schätzt die besten Slice-Größen und hardcodest die Boundaries. Das FastFold-Paper zeigt auf, dass feste Chunking-Verfahren ineffizient sind, da sie sich nicht an unterschiedliche Sequenzdimensionen oder spezifische Memory Spikes anpassen können.
Hier liegt die zentrale Erkenntnis. Die FastFold-Forscher beobachteten, dass 95 Prozent der Operationen im Modell weniger als 20 Prozent des Peak Memory nutzen. Module-Level Chunking ist völlig unnötig. Du musst nur die spezifischen Operationen chunken, die die Memory Spikes verursachen.
AutoChunk automatisiert das, indem es deinen Code als Computational Graph analysiert. Es nimmt diesen Graphen und dein spezifisches Hardware Memory Budget als Inputs. Vereinfacht ausgedrückt: Der Algorithmus läuft in einer kontinuierlichen Schleife. Solange noch eine Memory-Strategie benötigt wird, schätzt er den Memory-Verbrauch des Graphen, um die einzelne Node mit der höchsten Auslastung zu finden. Eine Node ist hier eine grundlegende Operation, wie eine Addition oder eine lineare Projektion.
Sobald es diese Peak Memory Node markiert hat, bestimmt AutoChunk die maximal mögliche Chunk Range, die sich von ihr nach außen erstreckt. Es berechnet dies, indem es alle aktiven Nodes überprüft, die aktuell Daten im Memory halten. Als Nächstes identifiziert es jede mögliche Chunk-Strategie innerhalb dieser Range, indem es die Tensor-Dimensionen im Graphen nach oben verfolgt. Eine Dimension kann nur gechunkt werden, wenn sie eine Free Dimension ist, was bedeutet, dass während dieser spezifischen Range von Operationen keine Berechnung über sie hinweg stattfindet.
Weil das Tracing jedes Outputs nach oben rechenintensiv ist, verwendet AutoChunk eine zweistufige Suche. Stage eins prüft, ob die Start- und End-Nodes einer Range die Chunking-Regeln erfüllen. Wenn das der Fall ist, führt Stage zwei eine Deep Verification für alle Intermediate Nodes durch. Nach dem Mapping der Möglichkeiten wählt AutoChunk die Strategie aus, die den Memory strikt unter dem Budget hält und gleichzeitig die Einbußen bei der Execution Speed minimiert. Schließlich verlässt der Algorithmus die Schleife und übergibt die ausgewählten Strategien an einen Code Generator, der die optimale Partition Logic direkt in den Graphen einfügt.
Du musst Matrix-Slices nicht mehr hardcoden und hoffen, dass sie in Production standhalten. Das System analysiert den aktiven Memory State und schreibt die Partition Logic für dich. Das nützlichste Takeaway ist, dass Chunking niemals ein statisches, Module-wide Setting sein sollte. Indem du nur die spezifischen Outlier-Operationen isolierst und partitionierst, die Peak Memory Spikes verursachen, kannst du deutlich längere Sequenzen verarbeiten, ohne die Execution Speed zu zerstören. Das war's für diese Folge. Danke fürs Zuhören und keep building!
18
Überwindung von Kommunikationsungleichgewichten
4m 32s
Distributed Training wird oft von Stragglern geplagt. Lerne, wie die ScaleFold-Architektur die AlphaFold-Datenpipeline neu gestaltet, um zu verhindern, dass langsame CPU-Knoten GPU-Cluster blockieren.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 18 von 21. Du fährst einen riesigen Multi-Millionen-Dollar-Cluster mit tausend GPUs hoch, um dein Modell zu trainieren, aber die Auslastung stagniert. Dein gesamter Distributed Ring kommt zum Erliegen, weil eine einzelne Maschine eine hochkomplexe evolutionäre Sequenz gezogen hat und 100 Sekunden braucht, um ein Alignment zu generieren. Dieses Communication Imbalance zu überwinden, ist genau der Weg, wie du diesen Bottleneck behebst.
Das zugrundeliegende Problem hier ist als das Straggler-Problem bekannt. Beim Distributed Training verarbeitet jede GPU in deinem Cluster einen lokalen Batch an Daten. Am Ende eines Training Steps müssen alle GPUs einen Synchronization Point erreichen, um ihre Gradienten zu teilen. Dein Cluster ist immer nur so schnell wie seine absolut langsamste Maschine. Wie Zhu und andere im ScaleFold-Paper detailliert beschreiben, ist die Vorbereitung von Training Batches für das Protein Folding extrem variabel. Manche Aminosäuresequenzen sind kurz und einfach. Andere erfordern massive Multi-Sequence Alignments, deren Vorbereitung bis zu drei Größenordnungen länger dauert. Ein schneller Batch braucht nur den Bruchteil einer Sekunde. Ein langsamer Batch braucht 100 Sekunden.
Wenn du den Default PyTorch DataLoader nutzt, generiert er Batches in einer strikten, deterministischen Reihenfolge. Wenn einer deiner DataLoader Worker bei der Vorbereitung einer riesigen Sequenz hängen bleibt, wartet der Training Process darauf, dass genau dieser spezifische Batch fertig wird. Selbst wenn andere Worker bereits die nachfolgenden Batches vorbereitet haben, ist die Pipeline blockiert. Dein Training Step ist abgeschlossen, deine lokale GPU geht auf Idle, und weil sie den Synchronization Point nicht erreichen kann, sitzen die anderen 999 GPUs in deinem Cluster komplett im Idle und warten auf sie.
Die ScaleFold-Autoren haben das gelöst, indem sie eine Non-Blocking Data Pipeline gebaut haben. Anstatt eine starre Reihenfolge zu erzwingen, liefert die Pipeline einen Batch in dem Moment, in dem irgendein Batch fertig verarbeitet ist.
Hier ist die entscheidende Erkenntnis. Das System entkoppelt die Reihenfolge der Datenvorbereitung von der Reihenfolge des Datenverbrauchs mithilfe einer Priority Queue. Zuerst weist du mehrere DataLoader Worker an, Batches asynchron vorzubereiten. Wenn ein Worker einen Batch zur Verarbeitung erhält, taggt das System diesen Batch mit seinem ursprünglichen Sequence Index. Dieser Index wird zu seinem Priority Score.
Lass uns die Logik mal durchgehen. Worker eins bekommt Batch A, eine schnelle Sequenz. Worker zwei bekommt Batch B, die 100-Sekunden-Sequenz. Worker drei bekommt Batch C, noch eine schnelle Sequenz. Worker eins schließt Batch A sofort ab und pusht ihn in die Priority Queue. Der Training Process konsumiert ihn und führt einen Step aus. Worker zwei rechnet immer noch an dem riesigen Batch B. Im Default-System würde die GPU jetzt anhalten und warten. Aber in dieser Non-Blocking Pipeline wird Worker drei mit Batch C fertig und pusht ihn in die Priority Queue. Da Batch B immer noch nicht fertig ist, übergibt die Queue einfach Batch C an den Training Process. Die GPUs trainieren ohne Unterbrechung weiter.
Schließlich wird Worker zwei mit Batch B fertig und pusht ihn in die Queue. Weil Batch B einen früheren ursprünglichen Index hat, setzt die Priority Queue ihn sofort ganz nach vorne an die Spitze. Der Training Process konsumiert ihn beim allernächsten Step.
Dieser Priority-Mechanismus garantiert ein Best-Effort Sample Ordering. Die genaue globale Sequence der Daten ändert sich bei verschiedenen Training Runs leicht, aber das Paper bestätigt, dass dies die Training Convergence nicht negativ beeinflusst. Du eliminierst die Idle Time, die durch CPU-Auslastungsspitzen im Hintergrund und komplexe Data Samples verursacht wird. Der langsamste Data Batch diktiert nicht länger die Ausführungsgeschwindigkeit deiner schnellsten Maschine.
Das war's für diese Folge. Danke fürs Zuhören und keep building!
19
Kernel Fusion und GPU-Optimierung
4m 22s
AlphaFold startet über 150.000 separate CUDA-Kernel pro Schritt. Wir untersuchen, wie das ScaleFold-Paper Triton von OpenAI nutzt, um LayerNorm und Multi-Head Attention zu fusionieren.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 19 von 21. Manchmal ist die GPU beim Rechnen gar nicht so langsam. Sie verbringt einfach ihre ganze Zeit damit, auf die nächste Instruction der CPU zu warten. Dadurch ist dein Profiler voller riesiger weißer Lücken. Die Lösung für dieses Problem ist Kernel Fusion und GPU Optimization.
Laut dem ScaleFold Paper erfordert das Training des AlphaFold Models über 150.000 einzelne Operationen pro Step. Die meisten davon sind memory-bound Kernels, wie kleine LayerNorms oder fragmentierte element-wise Operations. Jedes Mal, wenn die CPU der GPU sagt, dass sie eine PyTorch Operation ausführen soll, gibt es einen Launch Overhead. Wenn du 150.000 kleine Operationen aneinanderreihst, stellt dieser Overhead die eigentliche Rechenzeit komplett in den Schatten.
Schau dir mal die Multi-Head Attention von AlphaFold an, die etwa 34 Prozent der gesamten Training Step Time ausmacht. Das ist keine Standard Attention. AlphaFold fügt der Logits Matrix direkt vor der Softmax Operation einen spezifischen Pair Bias Term hinzu. In Standard PyTorch erzeugt das eine Chain von separaten Events. Zuerst launchst du einen Kernel für die Batched Matrix Multiplication. Die GPU liest die Daten aus dem Global Memory, rechnet das Ganze aus und schreibt das Ergebnis zurück. Dann launcht die CPU einen zweiten Kernel, um den Pair Bias hinzuzufügen. Die GPU liest die Matrix wieder aus dem Memory, addiert den Bias und schreibt sie erneut zurück. Zum Schluss wird ein dritter Kernel für das Softmax gelauncht. Dieser ständige Round-Trip zum Global Memory lässt die GPU verhungern.
Die Autoren des ScaleFold Papers beheben das, indem sie Custom Kernels mit dem OpenAI Triton Compiler schreiben. Statt separater Steps fusen sie die gesamte Sequence in einen einzigen Kernel.
Hier ist die Key Insight. Durch das Fusen der Operationen lädt die GPU die Input Data nur ein einziges Mal in ihren schnellen On-Chip SRAM. Sie macht die Matrix Multiplication, addiert den Pair Bias, wendet das Softmax an und macht die finale Multiplication direkt im SRAM. Sie schreibt erst dann in den Global Memory, wenn der komplette Multi-Head Attention Block fertig ist. Standardmäßig optimierte Libraries wie FlashAttention funktionieren hier wegen dieser speziellen Pair Bias Injection nicht. Deshalb ist ein Custom Triton Kernel zwingend nötig, um den Memory Bandwidth Bottleneck zu umgehen.
Dieser Ansatz lässt sich auch auf andere fragmentierte Teile des Models übertragen. LayerNorm verbraucht vierzehn Prozent der Step Time, weil AlphaFold kleine Dimensions nutzt, typischerweise 128 oder 256. Wenn man Dynamic Axial Parallelism, oder DAP, verwendet, werden diese Problem Sizes noch weiter herunterskaliert, wodurch die Hardware unterausgelastet bleibt. ScaleFold führt einen fused LayerNorm Kernel ein, bei dem ein einzelner CUDA Thread Block mehrere Input Rows gleichzeitig verarbeitet. Er berechnet Normalization Statistics in einem einzigen Pass, anstatt teure iterative Methoden zu nutzen, und verwendet eine Two-Step Reduction im Backward Pass, um Atomic Operations zu vermeiden.
Sogar der Optimizer wird gefused. Die ScaleFold Autoren haben den Adam Optimizer und Stochastic Weight Averaging in einem einzigen Kernel kombiniert. Intermediate Values zwischen den Optimizer Steps bleiben in den GPU Registers, wodurch Memory Reads komplett umgangen werden. Für den Rest des Models verlassen sie sich auf PyTorch Compiler Tools, um die restlichen fragmentierten Operationen automatisch zu fusen, besonders in seriellen Components wie dem Structure Module.
Wenn du es mit Tausenden von kleinen, memory-bound Operationen zu tun hast, sind nicht Teraflops dein Bottleneck, sondern Memory Bandwidth und CPU Launch Overhead. Diese Operationen in einzelne, durchgehende Execution Blocks zu fusen, ist der einzige Weg, um die Hardware wirklich auszulasten.
Danke fürs Zuhören und Happy Coding zusammen!
20
Aufbau einer High-Throughput Pipeline
4m 32s
Von der asynchronen Evaluierung von Model Weights bis zur Nutzung von CUDA-Graphen: Lerne die Geheimnisse der Systemarchitektur kennen, um AlphaFold in massivem Maßstab auszuführen.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 20 von 21. Ein AI-Modell von 128 auf 2.000 GPUs zu skalieren, bedeutet nicht nur, mehr Hardware zu kaufen; du musst komplett neu designen, wie das System atmet. Wenn du so viel Compute hinzufügst, deckst du massive Bottlenecks dabei auf, wie deine Host Machines mit deinen Accelerators kommunizieren. Um diese Bottlenecks aufzulösen, musst du eine High-Throughput Pipeline bauen – genau so haben Researcher kürzlich das AlphaFold Pretraining von sieben Tagen auf zehn Stunden gedrückt.
Die Blaupause für diese Architektur stammt aus dem ScaleFold Paper. Die Autoren haben eine brutale Scaling-Realität identifiziert. Wenn du ein Modell über Tausende von GPUs verteilst, schrumpft der Math Workload pro einzelner GPU. Die GPUs sind mit ihren Berechnungen so schnell fertig, dass die CPU nicht schnell genug neue Kernel Instructions ausgeben kann, um sie auszulasten. Der CPU Overhead wird zum dominanten Bottleneck. Um das zu fixen, nimmst du die CPU mit CUDA Graphs aus dem Execution Loop.
Ein CUDA Graph erfasst eine Sequenz von GPU Operations und deren Memory Allocations in einem einzigen statischen Graphen. Einmal erfasst, führt die GPU den gesamten Graphen direkt aus, ohne darauf zu warten, dass die CPU jeden einzelnen Kernel dispatched. Hier ist die Key Insight. Du kannst Standard CUDA Graphs nicht einfach auf AlphaFold anwenden. Die AlphaFold-Architektur nutzt einen Recycling-Mechanismus, der Predictions dynamisch wieder in das Modell füttert. Das erzeugt einen dynamischen Computation Graph. Wenn sich die Operations ändern, bricht ein Standard CUDA Graph und muss neu erfasst werden, was den Performance-Gewinn ruiniert. Das ScaleFold Paper löst das, indem es einen CUDA Graph Cache designt. Statt eines einzigen starren Graphen erfasst und speichert das System mehrere Graphen, die die verschiedenen Recycling-Szenarien repräsentieren. Wenn sich die dynamische Execution ändert, zieht sich das System einfach den richtigen, vorkompilierten Graphen aus dem Cache. Die CPU wird komplett bypassed.
Nun zum zweiten Teil dieser High-Throughput Architecture. Sobald deine Training Step Time hochoptimiert ist, taucht ein neues Bottleneck auf. In einer Standard-Pipeline pausieren die Training Nodes regelmäßig, um Validation Metrics laufen zu lassen. Laut dem ScaleFold Paper kann diese Evaluation Phase bei schrumpfenden Step Times bis zu 43 Prozent der gesamten Pipeline-Zeit fressen. Dein massiver, teurer Training Cluster sitzt fast die Hälfte der Zeit idle herum und checkt nur seine eigene Arbeit.
Die Lösung ist Asynchronous Evaluation. Du entkoppelst die Validation komplett vom Training Loop. Training Nodes pausieren nie. Sie berechnen konstant Gradients, updaten Weights und streamen Model Checkpoints an einen separaten, dedizierten Pool von Evaluation Nodes. In der ScaleFold Implementation waren von den rund 2.000 GPUs nur 32 für die Evaluation dediziert. Der Rest hat nichts anderes gemacht als zu trainieren. Aber die Evaluation auf separate Nodes auszulagern, führt zu einer Race Condition. Die Evaluation Nodes müssen die Validation eines Checkpoints abschließen, bevor die Training Nodes den nächsten produzieren. Wenn die Evaluation hinterherhinkt, stockt deine Pipeline. Um zu garantieren, dass die Evaluation Nodes mithalten, bypassed das System den Disk Storage komplett. Das gesamte Evaluation Dataset wird direkt im CPU DRAM auf den Validation Nodes gecached.
Indem der CPU Dispatch Overhead mit gecacheten CUDA Graphs eliminiert und die Validation auf Memory-cached Asynchronous Nodes ausgelagert wird, bleibt die Pipeline nie stehen. Die Hardware ist endlich saturated. Wenn du Systeme at scale baust, ist dein Hauptjob nicht mehr, die Berechnungen zu optimieren; dein Hauptjob ist es, zu verhindern, dass die GPUs warten. Das war’s für heute. Danke fürs Zuhören – geh und bau etwas Cooles.
21
Die Zukunft: Flow-Matching mit SimpleFold
4m 35s
Brauchen wir wirklich komplexe, domänenspezifische Architekturen, um Proteine zu falten? Wir erkunden SimpleFold, ein experimentelles Modell, das Standard-Transformers und Flow-Matching verwendet.
Hallo, hier ist Alex von DEV STORIES DOT EU. AlphaFold: Protein Structure Prediction, Folge 21 von 21. Jahrelang ging die Branche davon aus, dass die Vorhersage von Proteinstrukturen hochspezialisierte, maßgeschneiderte Neural Network Designs erfordert. Du brauchtest Multiple Sequence Alignments, explizite Pair Representations und rechenintensive Triangular Updates, nur um ein brauchbares Ergebnis zu bekommen. Aber was wäre, wenn ein ganz normaler, generischer Transformer genau denselben Job erledigen könnte? Die Antwort ist ein Konzept namens Flow-Matching mit SimpleFold.
Das SimpleFold-Paper von Apple ist ein radikaler Bruch mit den starren Architekturen, die wir von traditionellen Folding-Modellen kennen. Es verzichtet komplett auf domänenspezifische Heuristiken. Traditionelle Modelle hardcoden biologische Intuition direkt in das Network. Sie nutzen Multiple Sequence Alignments, um evolutionäre Hinweise zu finden, und Triangle Updates, um geometrische Regeln zu erzwingen. Das erfordert massive Compute-Power und hochspezialisiertes Engineering. SimpleFold wirft diese Mechaniken über Bord und setzt stattdessen auf ein generatives Flow-Matching-Modell, das ausschließlich aus General-Purpose Transformer Blocks besteht.
SimpleFold behandelt das Folding als eine Conditional Generative Task. Denk an Text-to-Image-Modelle, bei denen ein Text-Prompt die Generierung eines Bildes steuert. Hier ist die Aminosäuresequenz der Prompt, und der Output ist die dreidimensionale All-Atom-Koordinatenstruktur. Das erreicht es durch Flow-Matching. Flow-Matching generiert Daten, indem es einen kontinuierlichen Pfad von einer einfachen Noise Distribution zu einer komplexen Data Distribution definiert. Während des Trainings lernt das Modell ein zeitabhängiges Velocity Field. Es integriert eine Ordinary Differential Equation über die Zeit und bewegt so das Random Noise schrittweise in Richtung der echten Atomkoordinaten.
Der Prozess beginnt, wenn ein frozen, pretrained Protein Language Model, genauer gesagt ESM2, die Input-Aminosäuresequenz in ein Sequence Embedding umwandelt. Gleichzeitig nimmt ein Atom Encoder Noisy Atomic Coordinates und verarbeitet sie zu Atom Tokens. Hier ist die entscheidende Erkenntnis: Anstatt komplexe, speicherintensive Pairwise Interaction Maps zu verwalten, nutzt SimpleFold eine Grouping Operation. Es mittelt einfach die Atom Tokens, die zur selben Residue gehören, zu einem einzigen Residue Token.
Diese Residue Tokens werden mit den Sequence Embeddings concatenated und an den Residue Trunk übergeben. Dieser Trunk enthält den Großteil der Model Parameters. Er besteht komplett aus Standard Transformer Blocks mit Adaptive Layers, die auf den Flow Timestep conditioned sind. Es gibt keine Geometric Equivariant Modules und keine Triangular Math. Nur Standard Attention und Scaling Operations. Zum Schluss broadcastet eine Ungrouping Operation die geupdateten Residue Tokens zurück auf ihre einzelnen Atome. Ein Atom Decoder predictet dann das Velocity Field, um die finalen Atompositionen zu updaten.
Während des Trainings sampelt das System die Zeit nicht uniform. Es oversamplet stark die Timesteps, die näher an der Clean Data Manifold liegen. Weil Proteinstrukturen eine strikte Coarse-to-Fine-Hierarchie haben, zwingt dieser Late-Stage-Fokus das Modell dazu, hochgradig verfeinerte Strukturen zu lernen, inklusive empfindlicher Side Chains. Da das Modell außerdem ein Generative Objective anstelle eines deterministischen Regression Objectives nutzt, erfasst es Unsicherheiten ganz natürlich. Wenn du dieselbe Sequence mehrmals durch SimpleFold jagst, kann es ein Ensemble verschiedener gültiger Conformations generieren. Das spiegelt genau wider, wie sich Proteine in der Natur tatsächlich bewegen und existieren.
SimpleFold beweist: Wenn du das Problem richtig mappst, kann ein General-Purpose Transformer die zugrundeliegende Physik des Protein Foldings direkt aus den Daten lernen. Ich empfehle dir, das Paper zu lesen, die offizielle Documentation anzuschauen und zu versuchen, den Code auf deiner eigenen Hardware laufen zu lassen. Du kannst auch auf devstories.eu vorbeischauen, um Themen für unsere nächste Serie vorzuschlagen. Das war's für diese Folge. Danke fürs Zuhören und keep building!
Tap to start playing
Browsers block autoplay
Share this episode
Episode
—
Copy this episode in another language:
Diese Website verwendet keine Cookies. Unser Hosting-Anbieter protokolliert möglicherweise deine IP-Adresse zu Analysezwecken. Mehr erfahren.