evo_prot_grad
get_expert
evo_prot_grad.get_expert(expert_name: str, scoring_strategy: str, temperature: float = 1.0, model: Optional[nn.Module] = None, tokenizer: Optional[Union[ExpertTokenizer, PreTrainedTokenizerBase]] = None, device: str = 'cpu') -> Expert
Current supported expert types (to pass to argument expert_name
):
- `bert`
- `causallm`
- `esm`
- `evcouplings`
- `onehot_downstream_regression`
Customize the expert by specifying the model and tokenizer. For example:
from evo_prot_grad.experts import get_expert
from transformers import AutoTokenizer, EsmForMaskedLM
expert = get_expert(
expert_name = 'esm',
model = EsmForMaskedLM.from_pretrained("facebook/esm2_t36_3B_UR50D"),
tokenizer = AutoTokenizer.from_pretrained("facebook/esm2_t36_3B_UR50D"),
scoring_strategy = 'mutant_marginal',
temperature = 1.0,
device = 'cuda'
)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
expert_name |
str
|
Name of the expert to be used. |
required |
scoring_strategy |
str
|
Approach for scoring variants that the expert will use. |
required |
temperature |
float
|
Temperature for the expert. Defaults to 1.0. |
1.0
|
model |
Optional[nn.Module]
|
Model to be used for the expert. Defaults to None. |
None
|
tokenizer |
Optional[Union[ExpertTokenizer, PreTrainedTokenizerBase]]
|
Tokenizer to be used for the expert. Defaults to None. |
None
|
device |
str
|
Device to be used for the expert. Defaults to 'cpu'. |
'cpu'
|
Raises:
Type | Description |
---|---|
ValueError
|
If the expert name is not found. |
Returns:
Name | Type | Description |
---|---|---|
expert |
Expert
|
An instance of the expert. |