NVIDIA-BioNeMo / NVIDIA-BioNeMo/BioNeMo-Inference-Runtime

protenix-v2 has no end-to-end pipeline

Offen
#5 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Python
Sterne
60
Forks
4
Ø Merge
1 T. 17 Std.
Gemergte PRs (30 T.)
1

Beschreibung

Summary

protenix-v2 is listed as a supported model, but there is no end-to-end pipeline for it: build_processor(model_source="protenix-v2") cannot fold from sequence input the way Boltz-2 / OpenFold3 / AlphaFold2 can. Only the optimized model forward is wired; the surrounding stages are stubs.

What I found

Using the same EngineProcessorConfigbuild_processor path that folds Boltz-2 end-to-end, Protenix-v2 does not run: ProtenixFactory's tokenizer / feature_factory / postprocessor raise NotImplementedError (the model/trunk+diffusion is the only piece implemented). By contrast Boltz-2, OpenFold3 and AF2 have all stages wired and fold from a sequence request out of the box.

If you instead try to drive the optimized Protenix model directly, the forward expects an input_feature_dict on a different schema than a naive OSS ByteDance Protenix feature dump produces — e.g. it reads keys like d_lm / v_lm and drops profile / deletion_mean. So even the forward-only path needs an (undocumented) feature-schema conversion, which makes it hard to reproduce the reported Protenix speedups end-to-end.

Reproduce
from bionemo_ir.registry import register_all_factories; register_all_factories()
from bionemo_ir.pipeline.processor.engine_proc import EngineProcessorConfig, build_processor

cfg = EngineProcessorConfig(
    model_source="protenix-v2",
    runtime_args={"diffusion_samples": 1, "num_sampling_steps": 200, "recycling_steps": 10},
    writer_stage={"output_path": "/out", "format": "cif"},
)
proc = build_processor(cfg)   # protenix-v2: tokenizer/feature_factory/postprocessor NotImplementedError

(The identical pattern with model_source="boltz-2" folds fine.)

Ask
  1. Is an end-to-end Protenix-v2 pipeline planned (tokenizer + featurizer + postprocessor wired into the stage framework, like Boltz-2)?
  2. If not, would a PR porting the OSS ByteDance Protenix featurization into the stage framework be welcome? Happy to contribute if the direction is wanted.
  3. Separately, could the expected input_feature_dict schema for the optimized Protenix forward (the d_lm/v_lm keys) be documented, so the forward can be exercised against an OSS feature dump in the meantime?
Environment

bionemo-ir 0.1.0, Python 3.12, CUDA 13.2, driver 580.95.05, NVIDIA L40S (Modal). Boltz-2 end-to-end works in the same environment.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem reproduzierten Pfad EngineProcessorConfig → build_processor und untersuche ProtenixFactory zusammen mit der funktionierenden Boltz-2-Pipeline. Kläre den Umfang mit den Maintainers, bevor du tokenizer, feature_factory oder postprocessor änderst, da das Issue fragt, ob diese Richtung gewünscht ist. Erledigt wäre die Aufgabe, wenn eine sequence request durchgängig ausgeführt wird; separat würde das erwartete d_lm/v_lm-Eingabeschema dokumentiert, falls diese Arbeit angenommen wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
machine-learning
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Aktiv
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.