Spaces:
Sleeping
Sleeping
Refactor model and data downloading in app.py to include Hugging Face token support
Browse files
app.py
CHANGED
|
@@ -102,18 +102,16 @@ def load_model_and_tokenizer():
|
|
| 102 |
|
| 103 |
status_text.text("Loading fine-tuned model from Hugging Face...")
|
| 104 |
progress_bar.progress(50)
|
| 105 |
-
# Try to download and load fine-tuned model from Hugging Face
|
| 106 |
try:
|
| 107 |
-
# Download the checkpoint file from Hugging Face
|
| 108 |
from huggingface_hub import hf_hub_download
|
| 109 |
-
|
| 110 |
status_text.text("⬇️ Downloading model from saketh11/ColiFormer...")
|
| 111 |
model_path = hf_hub_download(
|
| 112 |
repo_id="saketh11/ColiFormer",
|
| 113 |
filename="balanced_alm_finetune.ckpt",
|
| 114 |
-
cache_dir="./hf_cache"
|
|
|
|
| 115 |
)
|
| 116 |
-
|
| 117 |
status_text.text("🔄 Loading downloaded model...")
|
| 118 |
st.session_state.model = load_model(
|
| 119 |
model_path=model_path,
|
|
@@ -127,10 +125,7 @@ def load_model_and_tokenizer():
|
|
| 127 |
status_text.text("Loading base model as fallback...")
|
| 128 |
st.session_state.model = BigBirdForMaskedLM.from_pretrained("adibvafa/CodonTransformer")
|
| 129 |
if isinstance(st.session_state.model, torch.nn.Module):
|
| 130 |
-
|
| 131 |
-
st.session_state.model.to(st.session_state.device)
|
| 132 |
-
else:
|
| 133 |
-
st.warning("Fallback model loaded is not a PyTorch module. Cannot move to device.")
|
| 134 |
else:
|
| 135 |
st.warning("Fallback model loaded is not a PyTorch module. Cannot move to device.")
|
| 136 |
st.session_state.model_type = "base"
|
|
@@ -145,17 +140,18 @@ def load_model_and_tokenizer():
|
|
| 145 |
def download_reference_data():
|
| 146 |
"""Download and cache reference data from Hugging Face"""
|
| 147 |
try:
|
| 148 |
-
|
|
|
|
| 149 |
file_path = hf_hub_download(
|
| 150 |
repo_id="saketh11/ColiFormer-Data",
|
| 151 |
filename="ecoli_processed_genes.csv",
|
| 152 |
-
repo_type="dataset"
|
|
|
|
| 153 |
)
|
| 154 |
df = pd.read_csv(file_path)
|
| 155 |
return df['dna_sequence'].tolist()
|
| 156 |
except Exception as e:
|
| 157 |
st.warning(f"Could not download reference data from Hugging Face: {e}")
|
| 158 |
-
# Fallback to minimal sequences
|
| 159 |
return [
|
| 160 |
"ATGGCGAAAGCGCTGTATCGCGAAAGCGCTGTATCGCGAAAGCGCTGTATCGC",
|
| 161 |
"ATGAAATTTATTTATTATTATAAATTTATTTATTATTATAAATTTATTTAT",
|
|
@@ -166,11 +162,13 @@ def download_reference_data():
|
|
| 166 |
def download_tai_weights():
|
| 167 |
"""Download and cache tAI weights from Hugging Face"""
|
| 168 |
try:
|
| 169 |
-
|
|
|
|
| 170 |
file_path = hf_hub_download(
|
| 171 |
repo_id="saketh11/ColiFormer-Data",
|
| 172 |
filename="organism_tai_weights.json",
|
| 173 |
-
repo_type="dataset"
|
|
|
|
| 174 |
)
|
| 175 |
with open(file_path, 'r') as f:
|
| 176 |
all_weights = json.load(f)
|
|
|
|
| 102 |
|
| 103 |
status_text.text("Loading fine-tuned model from Hugging Face...")
|
| 104 |
progress_bar.progress(50)
|
|
|
|
| 105 |
try:
|
|
|
|
| 106 |
from huggingface_hub import hf_hub_download
|
| 107 |
+
hf_token = os.environ.get("HF_TOKEN")
|
| 108 |
status_text.text("⬇️ Downloading model from saketh11/ColiFormer...")
|
| 109 |
model_path = hf_hub_download(
|
| 110 |
repo_id="saketh11/ColiFormer",
|
| 111 |
filename="balanced_alm_finetune.ckpt",
|
| 112 |
+
cache_dir="./hf_cache",
|
| 113 |
+
token=hf_token
|
| 114 |
)
|
|
|
|
| 115 |
status_text.text("🔄 Loading downloaded model...")
|
| 116 |
st.session_state.model = load_model(
|
| 117 |
model_path=model_path,
|
|
|
|
| 125 |
status_text.text("Loading base model as fallback...")
|
| 126 |
st.session_state.model = BigBirdForMaskedLM.from_pretrained("adibvafa/CodonTransformer")
|
| 127 |
if isinstance(st.session_state.model, torch.nn.Module):
|
| 128 |
+
st.session_state.model = st.session_state.model.to(st.session_state.device)
|
|
|
|
|
|
|
|
|
|
| 129 |
else:
|
| 130 |
st.warning("Fallback model loaded is not a PyTorch module. Cannot move to device.")
|
| 131 |
st.session_state.model_type = "base"
|
|
|
|
| 140 |
def download_reference_data():
|
| 141 |
"""Download and cache reference data from Hugging Face"""
|
| 142 |
try:
|
| 143 |
+
from huggingface_hub import hf_hub_download
|
| 144 |
+
hf_token = os.environ.get("HF_TOKEN")
|
| 145 |
file_path = hf_hub_download(
|
| 146 |
repo_id="saketh11/ColiFormer-Data",
|
| 147 |
filename="ecoli_processed_genes.csv",
|
| 148 |
+
repo_type="dataset",
|
| 149 |
+
token=hf_token
|
| 150 |
)
|
| 151 |
df = pd.read_csv(file_path)
|
| 152 |
return df['dna_sequence'].tolist()
|
| 153 |
except Exception as e:
|
| 154 |
st.warning(f"Could not download reference data from Hugging Face: {e}")
|
|
|
|
| 155 |
return [
|
| 156 |
"ATGGCGAAAGCGCTGTATCGCGAAAGCGCTGTATCGCGAAAGCGCTGTATCGC",
|
| 157 |
"ATGAAATTTATTTATTATTATAAATTTATTTATTATTATAAATTTATTTAT",
|
|
|
|
| 162 |
def download_tai_weights():
|
| 163 |
"""Download and cache tAI weights from Hugging Face"""
|
| 164 |
try:
|
| 165 |
+
from huggingface_hub import hf_hub_download
|
| 166 |
+
hf_token = os.environ.get("HF_TOKEN")
|
| 167 |
file_path = hf_hub_download(
|
| 168 |
repo_id="saketh11/ColiFormer-Data",
|
| 169 |
filename="organism_tai_weights.json",
|
| 170 |
+
repo_type="dataset",
|
| 171 |
+
token=hf_token
|
| 172 |
)
|
| 173 |
with open(file_path, 'r') as f:
|
| 174 |
all_weights = json.load(f)
|