File size: 1,217 Bytes
62a01bd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Pre-extract ProtT5-XL features for the built-in example sequences.

Mirrors the offline pre-computation step in the training pipeline
(LLPSense/preprocess/extract_feat.py): run this once so the Gradio app never
has to hit the T5 model / GPU for a sequence it already knows about (see
`examples.find_example_by_seq` and `cb_extract` in app.py). This matters
most on the ZeroGPU-backed Space, where every GPU call consumes quota.

Usage:
    python preprocess/extract_example_feat.py
"""

import sys
from pathlib import Path

from huggingface_hub import snapshot_download
from tqdm import tqdm

sys.path.insert(0, str(Path(__file__).resolve().parent.parent))

from examples import EXAMPLES, feature_path, ASSETS_DIR  # noqa: E402
from t5_utils import T5_REPO_ID, extract_t5_feature, write_feature_h5  # noqa: E402


def main():
    snapshot_download(T5_REPO_ID)
    ASSETS_DIR.mkdir(parents=True, exist_ok=True)

    for example in tqdm(EXAMPLES, desc="Extracting example T5 features"):
        out_path = feature_path(example["id"])
        if out_path.exists():
            continue
        feat = extract_t5_feature(example["seq"])
        write_feature_h5(out_path, feat)


if __name__ == "__main__":
    main()