ljw20180420 commited on
Commit
afb7b3e
·
verified ·
1 Parent(s): 8c4e684

Upload folder using huggingface_hub

Browse files
CRISPR_transformer_model/README.md ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ tags:
4
+ - generated_from_trainer
5
+ datasets:
6
+ - crispr_data
7
+ model-index:
8
+ - name: SX_spcas9_CRISPR_transformer
9
+ results: []
10
+ ---
11
+
12
+ <!-- This model card has been generated automatically according to the information the Trainer had access to. You
13
+ should probably proofread and complete it, then remove this comment. -->
14
+
15
+ # SX_spcas9_CRISPR_transformer
16
+
17
+ This model is a fine-tuned version of [](https://huggingface.co/) on the crispr_data dataset.
18
+ It achieves the following results on the evaluation set:
19
+ - Loss: 1334208.125
20
+
21
+ ## Model description
22
+
23
+ More information needed
24
+
25
+ ## Intended uses & limitations
26
+
27
+ More information needed
28
+
29
+ ## Training and evaluation data
30
+
31
+ More information needed
32
+
33
+ ## Training procedure
34
+
35
+ ### Training hyperparameters
36
+
37
+ The following hyperparameters were used during training:
38
+ - learning_rate: 0.001
39
+ - train_batch_size: 100
40
+ - eval_batch_size: 100
41
+ - seed: 63036
42
+ - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
43
+ - lr_scheduler_type: linear
44
+ - lr_scheduler_warmup_ratio: 0.05
45
+ - num_epochs: 30.0
46
+
47
+ ### Training results
48
+
49
+ | Training Loss | Epoch | Step | Validation Loss |
50
+ |:-------------:|:-----:|:----:|:---------------:|
51
+ | 13454687.4037 | 1.0 | 322 | 4939422.5 |
52
+ | 4152085.8634 | 2.0 | 644 | 2624465.5 |
53
+ | 2175050.1366 | 3.0 | 966 | 1416192.125 |
54
+ | 1517438.0124 | 4.0 | 1288 | 1347445.125 |
55
+ | 1400623.3043 | 5.0 | 1610 | 1365390.75 |
56
+ | 1368684.5217 | 6.0 | 1932 | 1339115.375 |
57
+ | 1355148.323 | 7.0 | 2254 | 1339799.375 |
58
+ | 1348436.8696 | 8.0 | 2576 | 1337862.625 |
59
+ | 1343765.2671 | 9.0 | 2898 | 1336787.625 |
60
+ | 1342822.0621 | 10.0 | 3220 | 1339180.125 |
61
+ | 1339066.1366 | 11.0 | 3542 | 1345115.5 |
62
+ | 1340848.0994 | 12.0 | 3864 | 1335221.125 |
63
+ | 1339262.5093 | 13.0 | 4186 | 1335443.125 |
64
+ | 1338173.4161 | 14.0 | 4508 | 1336022.5 |
65
+ | 1337596.7205 | 15.0 | 4830 | 1335901.625 |
66
+ | 1336771.2795 | 16.0 | 5152 | 1337095.75 |
67
+ | 1334854.8571 | 17.0 | 5474 | 1335969.5 |
68
+ | 1333905.9876 | 18.0 | 5796 | 1334772.5 |
69
+ | 1335469.3168 | 19.0 | 6118 | 1335592.125 |
70
+ | 1333815.5528 | 20.0 | 6440 | 1335397.375 |
71
+ | 1334275.8758 | 21.0 | 6762 | 1338478.125 |
72
+ | 1333732.472 | 22.0 | 7084 | 1337926.5 |
73
+ | 1331810.2857 | 23.0 | 7406 | 1334152.875 |
74
+ | 1333228.1242 | 24.0 | 7728 | 1336674.75 |
75
+ | 1332199.4534 | 25.0 | 8050 | 1336287.625 |
76
+ | 1331443.8758 | 26.0 | 8372 | 1336826.0 |
77
+ | 1331173.0683 | 27.0 | 8694 | 1333565.25 |
78
+ | 1330894.6087 | 28.0 | 9016 | 1334126.875 |
79
+ | 1331071.5031 | 29.0 | 9338 | 1333494.5 |
80
+ | 1330270.6087 | 30.0 | 9660 | 1334208.125 |
81
+
82
+
83
+ ### Framework versions
84
+
85
+ - Transformers 4.44.2
86
+ - Pytorch 2.4.0+cu124
87
+ - Datasets 2.21.0
88
+ - Tokenizers 0.19.1
CRISPR_transformer_model/config.json CHANGED
@@ -1,5 +1,4 @@
1
  {
2
- "_name_or_path": "/home/ljw/sdc1/CRISPR_results/CRISPR_transformer/SX_spcas9_CRISPR_transformer",
3
  "architectures": [
4
  "CRISPRTransformerModel"
5
  ],
 
1
  {
 
2
  "architectures": [
3
  "CRISPRTransformerModel"
4
  ],
CRISPR_transformer_model/model.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import PreTrainedModel, RoFormerConfig, RoFormerModel
2
+ import torch.nn as nn
3
+ import torch
4
+ import torch.nn.functional as F
5
+ import numpy as np
6
+
7
+ class CRISPRTransformerConfig(RoFormerConfig):
8
+ model_type = "CRISPR_transformer"
9
+ label_names = ["observation"]
10
+
11
+ def __init__(
12
+ self,
13
+ vocab_size = 4, # ACGT
14
+ hidden_size = 256, # model embedding dimension
15
+ num_hidden_layers = 3, # number of EncoderLayer
16
+ num_attention_heads = 4, # number of attention heads
17
+ intermediate_size = 1024, # FeedForward intermediate dimension size
18
+ hidden_dropout_prob = 0.1, # The dropout probability for all fully connected layers in the embeddings, encoder, and pooler
19
+ attention_probs_dropout_prob = 0.1, # The dropout ratio for the attention probabilities
20
+ max_position_embeddings = 256, # The maximum sequence length that this model might ever be used with. Typically set this to something large just in case (e.g., 512 or 1024 or 1536).
21
+ ref1len = 127, # length of reference 1
22
+ ref2len = 127, # length of reference 2
23
+ seed = 63036, # random seed for intialization
24
+ **kwargs
25
+ ):
26
+ self.ref1len = ref1len
27
+ self.ref2len = ref2len
28
+ self.seed = seed
29
+ super().__init__(
30
+ vocab_size = vocab_size,
31
+ hidden_size = hidden_size,
32
+ num_hidden_layers = num_hidden_layers,
33
+ num_attention_heads = num_attention_heads,
34
+ intermediate_size = intermediate_size,
35
+ hidden_dropout_prob = hidden_dropout_prob,
36
+ attention_probs_dropout_prob = attention_probs_dropout_prob,
37
+ max_position_embeddings = max_position_embeddings,
38
+ **kwargs
39
+ )
40
+
41
+ class CRISPRTransformerModel(PreTrainedModel):
42
+ config_class = CRISPRTransformerConfig
43
+
44
+ def __init__(self, config):
45
+ super().__init__(config)
46
+ self.generator = torch.Generator().manual_seed(config.seed)
47
+ self.model = RoFormerModel(config)
48
+ self.mlp = nn.Linear(
49
+ in_features=config.hidden_size,
50
+ out_features=(config.ref1len + 1) * (config.ref2len + 1)
51
+ )
52
+ self.initialize_weights()
53
+
54
+ def initialize_weights(self):
55
+ for m in self.modules():
56
+ if isinstance(m, nn.Linear):
57
+ nn.init.normal_(m.weight, mean=0, std=1, generator=self.generator)
58
+ if m.bias is not None:
59
+ nn.init.constant_(m.bias, 0)
60
+
61
+ def forward(self, refcode: torch.Tensor, observation: torch.Tensor=None):
62
+ # refcode (batch_size X sequence_length)
63
+ # model(refcode) (batch_size X sequence_length X hidden_size)
64
+ # model(refcode)[:, -1, :] arbitrary choose the last position to predict the logits
65
+ batch_size = refcode.shape[0]
66
+ logit = self.mlp(
67
+ self.model(
68
+ input_ids=refcode,
69
+ attention_mask=torch.ones(
70
+ batch_size,
71
+ self.config.ref1len + self.config.ref2len,
72
+ dtype=torch.int64,
73
+ device=self.model.device
74
+ )
75
+ ).last_hidden_state[:, -1, :]
76
+ ).view(batch_size, self.config.ref2len + 1, self.config.ref1len + 1)
77
+ if observation is not None:
78
+ return {
79
+ "logit": logit,
80
+ "loss": - (
81
+ observation.flatten(start_dim=1) *
82
+ F.log_softmax(logit.flatten(start_dim=1), dim=1)
83
+ ).sum()
84
+ }
85
+ return {"logit": logit}
CRISPR_transformer_model/runs/Nov14_11-57-39_ljw-System-Product-Name/events.out.tfevents.1731556660.ljw-System-Product-Name.1335450.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:65f5400d207867d119030f71a27dd601f75079569a7f605073143eddc22dfe97
3
+ size 19848
CRISPR_transformer_model/training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:50946c817480192af6ddb8ddbaa1677a28f005fe0ed7b77b3608f8ebee20fe1d
3
+ size 5304