
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->

# output_v3

This model is a fine-tuned version of [avuhong/ParvoGPT2](https://huggingface.co/avuhong/ParvoGPT2) on an unknown dataset.
It achieves the following results on the evaluation set:
- Loss: 0.4775
- Accuracy: 0.9290

## Model description

This model is a GPT2-like model for generating capsid amino acid sequences. It was trained exclusively on capsid aa_seqs of Piccovirales members.

## Intended uses & limitations

As a typical GPT model, it can be used to generate new sequences or used to evaluate the perplexity of given sequences.

### Generate novel sequences for viral capsid proteins

```python
from transformers import pipeline
protgpt2 = pipeline('text-generation', model="avuhong/PiccoviralesGPT")
sequences = protgpt2("<|endoftext|>", max_length=750, do_sample=True, top_k=950, repetition_penalty=1.2, num_return_sequences=10, eos_token_id=0)
```

### Calculate the perplexity of a protein sequence

```python
def calculatePerplexity(sequence, model, tokenizer):
    input_ids = torch.tensor(tokenizer.encode(sequence)).unsqueeze(0) 
    input_ids = input_ids.to(device)
    with torch.no_grad():
        outputs = model(input_ids, labels=input_ids)
    loss, logits = outputs[:2]
    return math.exp(loss)

def split_sequence(sequence):
    chunks = []
    max_i = 0
    for i in range(0, len(sequence), 60):
        chunk = sequence[i:i+60]
        
        if i == 0:
            chunk = '<|endoftext|>' + chunk
        chunks.append(chunk)
        max_i = i
    
    chunks = '\n'.join(chunks)
    
    if max_i+61==len(sequence):
        chunks = chunks+"\n<|endoftext|>"
    else:
        chunks = chunks+"<|endoftext|>"
    return chunks

seq = "MAADGYLPDWLEDNLSEGIREWWALKPGAPQPKANQQHQDNARGLVLPGYKYLGPGNGLDKGEPVNAADAAALEHDKAYDQQLKAGDNPYLKYNHADAEFQERLKEDTSFGGNLGRAVFQAKKRLLEPLGLVEEAAKTAPGKKRPVEQSPQEPDSSAGIGKSGAQPAKKRLNFGQTGDTESVPDPQPIGEPPAAPSGVGSLTMASGGGAPVADNNEGADGVGSSSGNWHCDSQWLGDRVITTSTRTWALPTYNNHLYKQISNSTSGGSSNDNAYFGYSTPWGYFDFNRFHCHFSPRDWQRLINNNWGFRPKRLNFKLFNIQVKEVTDNNGVKTIANNLTSTVQVFTDSDYQLPYVLGSAHEGCLPPFPADVFMIPQYGYLTLNDGSQAVGRSSFYCLEYFPSQMLRTGNNFQFSYEFENVPFHSSYAHSQSLDRLMNPLIDQYLYYLSKTINGSGQNQQTLKFSVAGPSNMAVQGRNYIPGPSYRQQRVSTTVTQNNNSEFAWPGASSWALNGRNSLMNPGPAMASHKEGEDRFFPLSGSLIFGKQGTGRDNVDADKVMITNEEEIKTTNPVATESYGQVATNHQSAQAQAQTGWVQNQGILPGMVWQDRDVYLQGPIWAKIPHTDGNFHPSPLMGGFGMKHPPPQILIKNTPVPADPPTAFNKDKLNSFITQYSTGQVSVEIEWELQKENSKRWNPEIQYTSNYYKSNNVEFAVNTEGVYSEPRPIGTRYLTRNL"
seq = split_sequence(seq)
print(f"{calculatePerplexity(seq, model, tokenizer):.2f}")
```

## Training and evaluation data

Traning script is included in bash file in this repository.

## Training procedure

### Training hyperparameters

The following hyperparameters were used during training:
- learning_rate: 5e-05
- train_batch_size: 1
- eval_batch_size: 1
- seed: 42
- distributed_type: multi-GPU
- num_devices: 2
- gradient_accumulation_steps: 4
- total_train_batch_size: 8
- total_eval_batch_size: 2
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: linear
- num_epochs: 32.0
- mixed_precision_training: Native AMP

### Training results

| Training Loss | Epoch | Step | Validation Loss | Accuracy |
|:-------------:|:-----:|:----:|:---------------:|:--------:|
| No log        | 1.0   | 220  | 1.1623          | 0.8225   |
| No log        | 2.0   | 440  | 0.9566          | 0.8539   |
| 1.1942        | 3.0   | 660  | 0.8456          | 0.8709   |
| 1.1942        | 4.0   | 880  | 0.7719          | 0.8801   |
| 0.7805        | 5.0   | 1100 | 0.7224          | 0.8872   |
| 0.7805        | 6.0   | 1320 | 0.6895          | 0.8928   |
| 0.6257        | 7.0   | 1540 | 0.6574          | 0.8972   |
| 0.6257        | 8.0   | 1760 | 0.6289          | 0.9014   |
| 0.6257        | 9.0   | 1980 | 0.6054          | 0.9045   |
| 0.5385        | 10.0  | 2200 | 0.5881          | 0.9077   |
| 0.5385        | 11.0  | 2420 | 0.5709          | 0.9102   |
| 0.4778        | 12.0  | 2640 | 0.5591          | 0.9121   |
| 0.4778        | 13.0  | 2860 | 0.5497          | 0.9143   |
| 0.427         | 14.0  | 3080 | 0.5385          | 0.9161   |
| 0.427         | 15.0  | 3300 | 0.5258          | 0.9180   |
| 0.394         | 16.0  | 3520 | 0.5170          | 0.9195   |
| 0.394         | 17.0  | 3740 | 0.5157          | 0.9212   |
| 0.394         | 18.0  | 3960 | 0.5038          | 0.9221   |
| 0.363         | 19.0  | 4180 | 0.4977          | 0.9234   |
| 0.363         | 20.0  | 4400 | 0.4976          | 0.9236   |
| 0.3392        | 21.0  | 4620 | 0.4924          | 0.9247   |
| 0.3392        | 22.0  | 4840 | 0.4888          | 0.9255   |
| 0.33          | 23.0  | 5060 | 0.4890          | 0.9262   |
| 0.33          | 24.0  | 5280 | 0.4856          | 0.9268   |
| 0.3058        | 25.0  | 5500 | 0.4803          | 0.9275   |
| 0.3058        | 26.0  | 5720 | 0.4785          | 0.9277   |
| 0.3058        | 27.0  | 5940 | 0.4813          | 0.9281   |
| 0.2973        | 28.0  | 6160 | 0.4799          | 0.9282   |
| 0.2973        | 29.0  | 6380 | 0.4773          | 0.9285   |
| 0.2931        | 30.0  | 6600 | 0.4778          | 0.9286   |
| 0.2931        | 31.0  | 6820 | 0.4756          | 0.9290   |
| 0.2879        | 32.0  | 7040 | 0.4775          | 0.9290   |


### Framework versions

- Transformers 4.26.1
- Pytorch 1.13.1+cu117
- Datasets 2.9.0
- Tokenizers 0.13.2

{"license": "apache-2.0", "tags": ["generated_from_trainer"], "metrics": ["accuracy"], "widget": [{"text": "<|endoftext|>MAADGYLPDWLEDNLSEGIREWWALKPGAPQPKANQQHQDNARGLVLPGYKYLGPGNGL"}], "model-index": [{"name": "output_v3", "results": []}]}
transformers pytorch tensorboard gpt2 text-generation generated_from_trainer license:apache-2.0 autotrain_compatible endpoints_compatible text-generation-inference region:us
TAGS
#transformers #pytorch #tensorboard #gpt2 #text-generation #generated_from_trainer #license-apache-2.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 

output\_v3
==========


This model is a fine-tuned version of avuhong/ParvoGPT2 on an unknown dataset.
It achieves the following results on the evaluation set:


* Loss: 0.4775
* Accuracy: 0.9290


Model description
-----------------


This model is a GPT2-like model for generating capsid amino acid sequences. It was trained exclusively on capsid aa\_seqs of Piccovirales members.


Intended uses & limitations
---------------------------


As a typical GPT model, it can be used to generate new sequences or used to evaluate the perplexity of given sequences.


### Generate novel sequences for viral capsid proteins


### Calculate the perplexity of a protein sequence


Training and evaluation data
----------------------------


Traning script is included in bash file in this repository.


Training procedure
------------------


### Training hyperparameters


The following hyperparameters were used during training:


* learning\_rate: 5e-05
* train\_batch\_size: 1
* eval\_batch\_size: 1
* seed: 42
* distributed\_type: multi-GPU
* num\_devices: 2
* gradient\_accumulation\_steps: 4
* total\_train\_batch\_size: 8
* total\_eval\_batch\_size: 2
* optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
* lr\_scheduler\_type: linear
* num\_epochs: 32.0
* mixed\_precision\_training: Native AMP


### Training results



### Framework versions


* Transformers 4.26.1
* Pytorch 1.13.1+cu117
* Datasets 2.9.0
* Tokenizers 0.13.2



### Generate novel sequences for viral capsid proteins ### Calculate the perplexity of a protein sequence


Training and evaluation data
----------------------------


Traning script is included in bash file in this repository.


Training procedure
------------------ ### Training hyperparameters


The following hyperparameters were used during training:


* learning\_rate: 5e-05
* train\_batch\_size: 1
* eval\_batch\_size: 1
* seed: 42
* distributed\_type: multi-GPU
* num\_devices: 2
* gradient\_accumulation\_steps: 4
* total\_train\_batch\_size: 8
* total\_eval\_batch\_size: 2
* optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
* lr\_scheduler\_type: linear
* num\_epochs: 32.0
* mixed\_precision\_training: Native AMP ### Training results ### Framework versions


* Transformers 4.26.1
* Pytorch 1.13.1+cu117
* Datasets 2.9.0
* Tokenizers 0.13.2
TAGS
#transformers #pytorch #tensorboard #gpt2 #text-generation #generated_from_trainer #license-apache-2.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
 ### Generate novel sequences for viral capsid proteins ### Calculate the perplexity of a protein sequence


Training and evaluation data
----------------------------


Traning script is included in bash file in this repository.


Training procedure
------------------ ### Training hyperparameters


The following hyperparameters were used during training:


* learning\_rate: 5e-05
* train\_batch\_size: 1
* eval\_batch\_size: 1
* seed: 42
* distributed\_type: multi-GPU
* num\_devices: 2
* gradient\_accumulation\_steps: 4
* total\_train\_batch\_size: 8
* total\_eval\_batch\_size: 2
* optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
* lr\_scheduler\_type: linear
* num\_epochs: 32.0
* mixed\_precision\_training: Native AMP ### Training results ### Framework versions


* Transformers 4.26.1
* Pytorch 1.13.1+cu117
* Datasets 2.9.0
* Tokenizers 0.13.2
TAGS
#transformers #pytorch #tensorboard #gpt2 #text-generation #generated_from_trainer #license-apache-2.0 #autotrain_compatible #endpoints_compatible #text-generation-inference #region-us 
### Generate novel sequences for viral capsid proteins### Calculate the perplexity of a protein sequence


Training and evaluation data
----------------------------


Traning script is included in bash file in this repository.


Training procedure
------------------### Training hyperparameters


The following hyperparameters were used during training:


* learning\_rate: 5e-05
* train\_batch\_size: 1
* eval\_batch\_size: 1
* seed: 42
* distributed\_type: multi-GPU
* num\_devices: 2
* gradient\_accumulation\_steps: 4
* total\_train\_batch\_size: 8
* total\_eval\_batch\_size: 2
* optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
* lr\_scheduler\_type: linear
* num\_epochs: 32.0
* mixed\_precision\_training: Native AMP### Training results### Framework versions


* Transformers 4.26.1
* Pytorch 1.13.1+cu117
* Datasets 2.9.0
* Tokenizers 0.13.2