Skip to content

Commit 5845c73

Browse files
committed
Check in new multimutant benchmark.
1 parent 0730420 commit 5845c73

6 files changed

Lines changed: 1483259 additions & 0 deletions
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# Configure logging
2+
import logging
3+
4+
logging.basicConfig(
5+
level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
6+
)
7+
logger = logging.getLogger()
8+
9+
from folde.campaign import simulate_campaigns_with_config_checkpoints
10+
from folde.types import FolDEModelConfig, ModelDiff
11+
from folde.util import apply_diff_list_to_config
12+
13+
dms_ids = [
14+
"SPG1_STRSG_Olson_2014",
15+
"GRB2_HUMAN_Faure_2021",
16+
"HIS7_YEAST_Pokusaeva_2019",
17+
"GFP_AEQVI_Sarkisyan_2016",
18+
"PABP_YEAST_Melamed_2013",
19+
"RASK_HUMAN_Weng_2022_abundance",
20+
]
21+
22+
# Example configuration
23+
NAME = "250819-multimutant-benchmark"
24+
25+
random_config = FolDEModelConfig(
26+
name="Random",
27+
naturalness_model_id="600m",
28+
embedding_model_id="300m",
29+
zero_shot_model_name="RandomZeroShotModel",
30+
zero_shot_model_params={},
31+
few_shot_model_name="RandomFewShotModel",
32+
few_shot_model_params={},
33+
)
34+
35+
random_forest_config = FolDEModelConfig(
36+
name="RandomToRandomForest",
37+
naturalness_model_id="600m",
38+
embedding_model_id="300m",
39+
zero_shot_model_name="RandomZeroShotModel",
40+
zero_shot_model_params={},
41+
few_shot_model_name="RandomForestFewShotModel",
42+
few_shot_model_params={
43+
"n_estimators": 100,
44+
"criterion": "friedman_mse",
45+
"max_depth": None,
46+
"min_samples_split": 2,
47+
"min_samples_leaf": 1,
48+
"min_weight_fraction_leaf": 0.0,
49+
"max_features": 1.0,
50+
"max_leaf_nodes": None,
51+
"min_impurity_decrease": 0.0,
52+
"bootstrap": True,
53+
"oob_score": False,
54+
"n_jobs": None,
55+
"verbose": 0,
56+
"warm_start": False,
57+
"ccp_alpha": 0.0,
58+
"max_samples": None,
59+
},
60+
)
61+
62+
folde_config = FolDEModelConfig(
63+
name="FolDE",
64+
# Required parameters
65+
naturalness_model_id="600m", # ESM-2 650M model
66+
embedding_model_id="300m", # Same model for embeddings
67+
zero_shot_model_name="NaturalnessZeroShotModel",
68+
zero_shot_model_params={},
69+
# Few-shot model configuration (used after first round)
70+
few_shot_model_name="TorchMLPFewShotModel",
71+
few_shot_model_params={
72+
"pretrain": True,
73+
"pretrain_epochs": 50,
74+
"ensemble_size": 5,
75+
"embedding_dim": 960,
76+
"hidden_dims": [100, 50],
77+
"dropout": 0.2,
78+
"learning_rate": 3e-4,
79+
"weight_decay": 1e-5,
80+
"train_epochs": 200,
81+
"train_patience": 40,
82+
"val_frequency": 10,
83+
"do_validation_with_pair_fraction": 0.2,
84+
"decision_mode": "constantliar",
85+
"lie_noise_stddev_multiplier": 2.0,
86+
},
87+
)
88+
89+
mlp_config_list = apply_diff_list_to_config(
90+
folde_config,
91+
[
92+
ModelDiff(name="no-constantliar", diffs={"few_shot_model_params.decision_mode": "mean"}),
93+
ModelDiff(name="clS1", diffs={"few_shot_model_params.lie_noise_stddev_multiplier": 1.0}),
94+
# ModelDiff(name="no-zeroShot", diffs={"zero_shot_model_name": "RandomZeroShotModel"}),
95+
# ModelDiff(name="no-naturalnessTraining", diffs={"few_shot_model_params.pretrain": False}),
96+
# ModelDiff(name="no-constantliar-with-ucb", diffs={"few_shot_model_params.decision_mode": "ucb"}),
97+
# ModelDiff(name="clS05", diffs={"few_shot_model_params.lie_noise_stddev_multiplier": 0.5}),
98+
# ModelDiff(name="clS025", diffs={"few_shot_model_params.lie_noise_stddev_multiplier": 0.25}),
99+
],
100+
)
101+
102+
config_list = [random_config, random_forest_config] + mlp_config_list
103+
104+
print(f"Config 1/{len(config_list)}:")
105+
print(config_list[0].model_dump_json(indent=2))
106+
107+
results = simulate_campaigns_with_config_checkpoints(
108+
eval_prefix=NAME,
109+
dms_ids=dms_ids,
110+
config_list=config_list,
111+
checkpoint_dir="notebooks/jacob/model_evals",
112+
round_size=16,
113+
number_of_simulations=10,
114+
activity_column="DMS_score",
115+
max_rounds=10,
116+
random_seed=42,
117+
num_workers=5,
118+
)

0 commit comments

Comments
 (0)