--- 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.