Instructions to use Synthyra/ESMFold2-600 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Synthyra/ESMFold2-600 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="Synthyra/ESMFold2-600", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("Synthyra/ESMFold2-600", trust_remote_code=True) model = AutoModel.from_pretrained("Synthyra/ESMFold2-600", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
Give this artifact's bridge its own config and model subclasses (FastPLMs#50)
Browse filesArtifacts share one FastPLMs runtime per process. Re-exported shared classes let one artifact's model class answer for another with the same config class, for example ESMFold2-300 built as ESMFold2Model after ESMFold2-Fast loaded. Only modeling_fastplms.py changes; the runtime bundle and weights are untouched. https://github.com/Synthyra/FastPLMs/issues/50
- modeling_fastplms.py +29 -11
modeling_fastplms.py
CHANGED
|
@@ -180,14 +180,32 @@ def _install_runtime():
|
|
| 180 |
return package
|
| 181 |
|
| 182 |
_install_runtime()
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
|
| 191 |
-
|
| 192 |
-
|
| 193 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
return package
|
| 181 |
|
| 182 |
_install_runtime()
|
| 183 |
+
|
| 184 |
+
def _artifact_class(base, config_class=None):
|
| 185 |
+
"""Subclass a shared runtime class so this artifact registers its own classes.
|
| 186 |
+
|
| 187 |
+
The base constructor is kept explicitly because Transformers turns every config
|
| 188 |
+
subclass into a dataclass, which would otherwise generate a new constructor.
|
| 189 |
+
"""
|
| 190 |
+
namespace = {
|
| 191 |
+
"__module__": __name__,
|
| 192 |
+
"__qualname__": base.__name__,
|
| 193 |
+
"__doc__": base.__doc__,
|
| 194 |
+
"__init__": base.__init__,
|
| 195 |
+
}
|
| 196 |
+
base_config_class = getattr(base, "config_class", None)
|
| 197 |
+
if (
|
| 198 |
+
config_class is not None
|
| 199 |
+
and isinstance(base_config_class, type)
|
| 200 |
+
and issubclass(config_class, base_config_class)
|
| 201 |
+
):
|
| 202 |
+
namespace["config_class"] = config_class
|
| 203 |
+
return type(base.__name__, (base,), namespace)
|
| 204 |
+
|
| 205 |
+
_module_204 = _import_without_bytecode("fastplms.models.esmfold2.configuration_esmfold2")
|
| 206 |
+
_module_205 = _import_without_bytecode("fastplms.models.esmfold2.modeling_esmfold2_classification")
|
| 207 |
+
_module_206 = _import_without_bytecode("fastplms.models.esmfold2.modeling_esmfold2_experimental")
|
| 208 |
+
ESMFold2Config = _artifact_class(_module_204.ESMFold2Config)
|
| 209 |
+
ESMFold2ExperimentalForSequenceClassification = _artifact_class(_module_205.ESMFold2ExperimentalForSequenceClassification, config_class=ESMFold2Config)
|
| 210 |
+
ESMFold2ExperimentalForTokenClassification = _artifact_class(_module_205.ESMFold2ExperimentalForTokenClassification, config_class=ESMFold2Config)
|
| 211 |
+
ESMFold2ExperimentalModel = _artifact_class(_module_206.ESMFold2ExperimentalModel, config_class=ESMFold2Config)
|