transformers/docs/source/en/model_doc/roformer.md

4.9 KiB

RoFormer

Overview

The RoFormer model was proposed in RoFormer: Enhanced Transformer with Rotary Position Embedding by Jianlin Su and Yu Lu and Shengfeng Pan and Bo Wen and Yunfeng Liu.

The abstract from the paper is the following:

Position encoding in transformer architecture provides supervision for dependency modeling between elements at different positions in the sequence. We investigate various methods to encode positional information in transformer-based language models and propose a novel implementation named Rotary Position Embedding(RoPE). The proposed RoPE encodes absolute positional information with rotation matrix and naturally incorporates explicit relative position dependency in self-attention formulation. Notably, RoPE comes with valuable properties such as flexibility of being expand to any sequence lengths, decaying inter-token dependency with increasing relative distances, and capability of equipping the linear self-attention with relative position encoding. As a result, the enhanced transformer with rotary position embedding, or RoFormer, achieves superior performance in tasks with long texts. We release the theoretical analysis along with some preliminary experiment results on Chinese data. The undergoing experiment for English benchmark will soon be updated.

This model was contributed by junnyu. The original code can be found here.

Usage tips

RoFormer is a BERT-like autoencoding model with rotary position embeddings. Rotary position embeddings have shown improved performance on classification tasks with long texts.

Resources

RoFormerConfig

autodoc RoFormerConfig

RoFormerTokenizer

autodoc RoFormerTokenizer - build_inputs_with_special_tokens - get_special_tokens_mask - create_token_type_ids_from_sequences - save_vocabulary

RoFormerTokenizerFast

autodoc RoFormerTokenizerFast - build_inputs_with_special_tokens

RoFormerModel

autodoc RoFormerModel - forward

RoFormerForCausalLM

autodoc RoFormerForCausalLM - forward

RoFormerForMaskedLM

autodoc RoFormerForMaskedLM - forward

RoFormerForSequenceClassification

autodoc RoFormerForSequenceClassification - forward

RoFormerForMultipleChoice

autodoc RoFormerForMultipleChoice - forward

RoFormerForTokenClassification

autodoc RoFormerForTokenClassification - forward

RoFormerForQuestionAnswering

autodoc RoFormerForQuestionAnswering - forward

TFRoFormerModel

autodoc TFRoFormerModel - call

TFRoFormerForMaskedLM

autodoc TFRoFormerForMaskedLM - call

TFRoFormerForCausalLM

autodoc TFRoFormerForCausalLM - call

TFRoFormerForSequenceClassification

autodoc TFRoFormerForSequenceClassification - call

TFRoFormerForMultipleChoice

autodoc TFRoFormerForMultipleChoice - call

TFRoFormerForTokenClassification

autodoc TFRoFormerForTokenClassification - call

TFRoFormerForQuestionAnswering

autodoc TFRoFormerForQuestionAnswering - call

FlaxRoFormerModel

autodoc FlaxRoFormerModel - call

FlaxRoFormerForMaskedLM

autodoc FlaxRoFormerForMaskedLM - call

FlaxRoFormerForSequenceClassification

autodoc FlaxRoFormerForSequenceClassification - call

FlaxRoFormerForMultipleChoice

autodoc FlaxRoFormerForMultipleChoice - call

FlaxRoFormerForTokenClassification

autodoc FlaxRoFormerForTokenClassification - call

FlaxRoFormerForQuestionAnswering

autodoc FlaxRoFormerForQuestionAnswering - call