Views
No views yet
1pip install lucaone==1.1.1
2pip install tokenizers==0.19.1
3pip install transformers==4.41.2huggingface branch of LucaOne: https://github.com/LucaOne/LucaOne.1import torch
2import lucaone
3from transformers import AutoTokenizer, AutoModel, TrainingArguments, Trainer
4
5# model_id
6model_id = "LucaGroup/LucaOne-prot-step38.2M"
7
8tokenizer = AutoTokenizer.from_pretrained(
9 model_id,
10 trust_remote_code=True,
11 force_download=True
12)
13
14model = AutoModel.from_pretrained(
15 model_id,
16 task_level="token_level",
17 task_type="embedding",
18 trust_remote_code=True,
19 force_download=True
20)
21print(model)
22print("*" * 50)
23
24# device
25device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
26model.to(device)
27model.eval()
28
29# Only for Protein Sequence
30protein_sequence = "MKTLLILTAVVLL"
31print("Protein sequence len: %d" % len(protein_sequence))
32
33print("Processing Protein Sequence...")
34prot_inputs = tokenizer(
35 protein_sequence,
36 # note: protein sequence
37 seq_type="prot",
38 return_tensors="pt",
39 add_special_tokens=True
40)
41new_prot_inputs = {}
42for item in prot_inputs.items():
43 new_prot_inputs[item[0]] = item[1].to(device)
44prot_inputs = new_prot_inputs
45print("Protein inputs:")
46print(prot_inputs)
47
48with torch.no_grad():
49 prot_outputs = model(**prot_inputs)
50 # last hidden matrix as embedding matrix: [batch_size, seq_len + 2, hidden_size]
51 prot_last_hidden = prot_outputs.last_hidden_state
52 # mean pooling
53 mean_prot_embedding = prot_last_hidden[:, 1:-1, :].mean(dim=1)
54 # cls pooling
55 cls_prot_embedding = prot_last_hidden[:, 0, :]
56print(f"Protein Embedding Shape: {prot_last_hidden.shape}")
57print("Protein Embedding(Matrix, Include [CLS] and [SEP]):")
58print(prot_last_hidden)
59print("Protein Embedding(Mean Pooling Vector):")
60print(mean_prot_embedding)
61print("Protein Embedding(CLS Pooling Vector):")
62print(cls_prot_embedding)
63print("*" * 50)1import torch
2import lucaone
3from datasets import Dataset
4from transformers import AutoTokenizer, AutoModelForMaskedLM, TrainingArguments, Trainer
5
6# model_id
7model_id = "LucaGroup/LucaOne-prot-step38.2M"
8
9model = AutoModelForMaskedLM.from_pretrained(
10 model_id,
11 trust_remote_code=True,
12 force_download=True
13)
14
15tokenizer = AutoTokenizer.from_pretrained(
16 model_id,
17 trust_remote_code=True,
18 force_download=True
19)
20print(model)
21print("*" * 50)
22
23# finetune all parameters
24for param in model.parameters():
25 param.requires_grad = True
26
27# create dataset and trainer for training...multi-class classification, binary classification, multi-label classification, and regression tasks.1import torch
2import lucaone
3from datasets import Dataset
4from transformers import AutoTokenizer, AutoModelForSequenceClassification, TrainingArguments, Trainer
5
6# model_id
7model_id = "LucaGroup/LucaOne-prot-step38.2M"
8
9model = AutoModelForSequenceClassification.from_pretrained(
10 model_id,
11 task_level="seq_level",
12 task_type="multi_class",
13 classifier_num_labels=4,
14 trust_remote_code=True,
15 force_download=True
16)
17
18tokenizer = AutoTokenizer.from_pretrained(
19 model_id,
20 trust_remote_code=True,
21 force_download=True
22)
23print(model)
24print("*" * 50)
25
26# finetune all parameters
27for param in model.parameters():
28 param.requires_grad = True
29
30# create dataset and trainer for training...multi-class classification, binary classification, multi-label classification, and regression tasks.1import torch
2import lucaone
3from datasets import Dataset
4from transformers import AutoTokenizer, AutoModelForTokenClassification, TrainingArguments, Trainer
5
6# model_id
7model_id = "LucaGroup/LucaOne-prot-step38.2M"
8
9model = AutoModelForTokenClassification.from_pretrained(
10 model_id,
11 task_level="token_level",
12 task_type="binary_class",
13 classifier_num_labels=2,
14 trust_remote_code=True,
15 force_download=True
16)
17
18tokenizer = AutoTokenizer.from_pretrained(
19 model_id,
20 trust_remote_code=True,
21 force_download=True
22)
23print(model)
24print("*" * 50)
25
26# finetune all parameters
27for param in model.parameters():
28 param.requires_grad = True
29
30# create dataset and trainer for training...