"vscode:/vscode.git/clone" did not exist on "1d232400681186e39b477facac8159879119a85a"
ctrl.rst 3.94 KB
Newer Older
LysandreJik's avatar
LysandreJik committed
1
CTRL
Sylvain Gugger's avatar
Sylvain Gugger committed
2
-----------------------------------------------------------------------------------------------------------------------
LysandreJik's avatar
LysandreJik committed
3

Sylvain Gugger's avatar
Sylvain Gugger committed
4
Overview
Sylvain Gugger's avatar
Sylvain Gugger committed
5
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sylvain Gugger's avatar
Sylvain Gugger committed
6

Sylvain Gugger's avatar
Sylvain Gugger committed
7
8
CTRL model was proposed in `CTRL: A Conditional Transformer Language Model for Controllable Generation
<https://arxiv.org/abs/1909.05858>`_ by Nitish Shirish Keskar*, Bryan McCann*, Lav R. Varshney, Caiming Xiong and
Sylvain Gugger's avatar
Sylvain Gugger committed
9
10
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.).
Lysandre's avatar
Lysandre committed
11

Lysandre's avatar
Lysandre committed
12
13
14
15
16
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
Sylvain Gugger's avatar
Sylvain Gugger committed
17
18
19
20
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.*
Lysandre's avatar
Lysandre committed
21
22
23
24

Tips:

- CTRL makes use of control codes to generate text: it requires generations to be started by certain words, sentences
Sylvain Gugger's avatar
Sylvain Gugger committed
25
26
27
28
  or links to generate coherent text. Refer to the `original implementation <https://github.com/salesforce/ctrl>`__ 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.
Lysandre's avatar
Lysandre committed
29
- CTRL was trained with a causal language modeling (CLM) objective and is therefore powerful at predicting the next
Sylvain Gugger's avatar
Sylvain Gugger committed
30
31
  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.
Lysandre's avatar
Lysandre committed
32
- The PyTorch models can take the `past` as input, which is the previously computed key/value attention pairs. Using
Sylvain Gugger's avatar
Sylvain Gugger committed
33
34
35
  this `past` value prevents the model from re-computing pre-computed values in the context of text generation. See
  `reusing the past in generative models <../quickstart.html#using-the-past>`__ for more information on the usage of
  this argument.
Lysandre's avatar
Lysandre committed
36

Sylvain Gugger's avatar
Sylvain Gugger committed
37
The original code can be found `here <https://github.com/salesforce/ctrl>`__.
38

Lysandre's avatar
Lysandre committed
39
40

CTRLConfig
Sylvain Gugger's avatar
Sylvain Gugger committed
41
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
42
43
44
45
46

.. autoclass:: transformers.CTRLConfig
    :members:


Lysandre's avatar
Lysandre committed
47
CTRLTokenizer
Sylvain Gugger's avatar
Sylvain Gugger committed
48
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
49
50

.. autoclass:: transformers.CTRLTokenizer
Lysandre Debut's avatar
Lysandre Debut committed
51
    :members: save_vocabulary
LysandreJik's avatar
LysandreJik committed
52
53


Lysandre's avatar
Lysandre committed
54
CTRLModel
Sylvain Gugger's avatar
Sylvain Gugger committed
55
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
56
57

.. autoclass:: transformers.CTRLModel
Sylvain Gugger's avatar
Sylvain Gugger committed
58
    :members: forward
LysandreJik's avatar
LysandreJik committed
59
60


Lysandre's avatar
Lysandre committed
61
CTRLLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
62
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
63
64

.. autoclass:: transformers.CTRLLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
65
    :members: forward
LysandreJik's avatar
LysandreJik committed
66
67


68
69
70
71
72
73
74
CTRLForSequenceClassification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. autoclass:: transformers.CTRLForSequenceClassification
    :members: forward


Lysandre's avatar
Lysandre committed
75
TFCTRLModel
Sylvain Gugger's avatar
Sylvain Gugger committed
76
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
77
78

.. autoclass:: transformers.TFCTRLModel
Sylvain Gugger's avatar
Sylvain Gugger committed
79
    :members: call
LysandreJik's avatar
LysandreJik committed
80
81


Lysandre's avatar
Lysandre committed
82
TFCTRLLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
83
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LysandreJik's avatar
LysandreJik committed
84
85

.. autoclass:: transformers.TFCTRLLMHeadModel
Sylvain Gugger's avatar
Sylvain Gugger committed
86
    :members: call
LysandreJik's avatar
LysandreJik committed
87