Text Generation
Transformers
PyTorch
English
retnet
custom_code
File size: 1,865 Bytes
af3b01e
 
 
 
 
 
 
 
 
 
 
 
ac26f6f
af3b01e
 
 
 
 
 
 
 
 
 
5c4ae61
af3b01e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
---
license: apache-2.0
datasets:
- EleutherAI/the_pile_deduplicated
language:
- en
---

# Hybrid RetNet

This is a [RetNet](https://arxiv.org/abs/2307.08621) model, accompanying the paper [Cross-Architecture Transfer Learning for Linear-Cost Inference Transformers](https://arxiv.org/abs/2404.02684v1), 
In this work, we proposed to *not* train new Linear-Cost Inference models (e.g. RetNet) from scratch, but to transfer shared weight components from other PTLMs. 
The model's input/output embeddings, MLP weights, Layer Norms, Attention Output Projections ($W_O$) has been transferred from [pythia-410m](https://huggingface.co/EleutherAI/pythia-410m). For more detail, please refer to the paper.

## Model Details

### Model Description

- **Developed by:** NucleusAI, Sehyun Choi
- **Model type:** RetNet & Transformer Hybrid

### Model Sources

- **Repository:** [RetNet-XATL](https://github.com/syncdoth/RetNet-XATL)
- **Paper:** [Cross-Architecture Transfer Learning for Linear-Cost Inference Transformers](https://arxiv.org/abs/2404.02684v1)


## How to Get Started with the Model

Use the code below to get started with the model.

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

torch.set_default_device("cuda")

model = AutoModelForCausalLM.from_pretrained("NucleusAI/RetNet-410m-XATL", torch_dtype="auto", trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("NucleusAI/RetNet-410m-XATL", trust_remote_code=True)  # same as EleutherAI/pythia-1B

inputs = tokenizer("Hi there!", return_tensors="pt", return_attention_mask=False)

outputs = model.generate(**inputs, max_length=200)
text = tokenizer.batch_decode(outputs)[0]
print(text)
```

## Training Data

The model has been trained with [pile_dedup](EleutherAI/the_pile_deduplicated) dataset, in favor of comparison with the same sized pythia models.