Files
huggingface--transformers/docs/source/en/model_doc/ctrl.md
T
wehub-resource-sync e06fe8e8c6
Secret Leaks / trufflehog (push) Failing after 1s
Build documentation / build (push) Failing after 1s
Build documentation / build_other_lang (push) Failing after 0s
CodeQL Security Analysis / CodeQL Analysis (push) Failing after 0s
PR CI / pr-ci (push) Failing after 1s
Slow tests on important models (on Push - A10) / Get all modified files (push) Failing after 1s
Slow tests on important models (on Push - A10) / Model CI (push) Has been skipped
Self-hosted runner (benchmark) / Benchmark (aws-g5-4xlarge-cache) (push) Has been cancelled
New model PR merged notification / Notify new model (push) Has been cancelled
Update Transformers metadata / build_and_package (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:57:37 +08:00

4.0 KiB

This model was published in HF papers on 2019-09-11 and contributed to Hugging Face Transformers on 2020-11-16.

FlashAttention SDPA

CTRL

Overview

CTRL model was proposed in CTRL: A Conditional Transformer Language Model for Controllable Generation by Nitish Shirish Keskar*, Bryan McCann*, Lav R. Varshney, Caiming Xiong and Richard Socher. It's a causal (unidirectional) transformer pre-trained using language modeling on a very large corpus of ~140 GB of text data with the first token reserved as a control code (such as Links, Books, Wikipedia etc.).

The abstract from the paper is the following:

Large-scale language models show promising text generation capabilities, but users cannot easily control particular aspects of the generated text. We release CTRL, a 1.63 billion-parameter conditional transformer language model, trained to condition on control codes that govern style, content, and task-specific behavior. Control codes were derived from structure that naturally co-occurs with raw text, preserving the advantages of unsupervised learning while providing more explicit control over text generation. These codes also allow CTRL to predict which parts of the training data are most likely given a sequence. This provides a potential method for analyzing large amounts of data via model-based source attribution.

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

Usage tips

  • CTRL makes use of control codes to generate text: it requires generations to be started by certain words, sentences or links to generate coherent text. Refer to the original implementation for more information.
  • CTRL is a model with absolute position embeddings so it's usually advised to pad the inputs on the right rather than the left.
  • CTRL was trained with a causal language modeling (CLM) objective and is therefore powerful at predicting the next token in a sequence. Leveraging this feature allows CTRL to generate syntactically coherent text as it can be observed in the run_generation.py example script.
  • The PyTorch models can take the past_key_values as input, which is the previously computed key/value attention pairs. Using the past_key_values value prevents the model from re-computing pre-computed values in the context of text generation. See the [~CTRLModel#forward] method for more information on the usage of this argument.

Resources

CTRLConfig

autodoc CTRLConfig

CTRLTokenizer

autodoc CTRLTokenizer - save_vocabulary

CTRLModel

autodoc CTRLModel - forward

CTRLLMHeadModel

autodoc CTRLLMHeadModel - forward

CTRLForSequenceClassification

autodoc CTRLForSequenceClassification - forward