pszemraj commited on
Commit
5226335
1 Parent(s): 7531637

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +247 -1
README.md CHANGED
@@ -1,3 +1,249 @@
1
  ---
2
- license: apache-2.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ license:
3
+ - bsd-3-clause
4
+ - apache-2.0
5
+ tags:
6
+ - long document summary
7
+ - book summary
8
+ - booksum
9
+ metrics:
10
+ - rouge
11
+ datasets:
12
+ - kmfoda/booksum
13
+ language:
14
+ - en
15
+ library_name: transformers
16
+ pipeline_tag: summarization
17
+ widget:
18
+ - text: >-
19
+ large earthquakes along a given fault segment do not occur at random
20
+ intervals because it takes time to accumulate the strain energy for the
21
+ rupture. The rates at which tectonic plates move and accumulate strain at
22
+ their boundaries are approximately uniform. Therefore, in first
23
+ approximation, one may expect that large ruptures of the same fault
24
+ segment will occur at approximately constant time intervals. If subsequent
25
+ main shocks have different amounts of slip across the fault, then the
26
+ recurrence time may vary, and the basic idea of periodic mainshocks must
27
+ be modified. For great plate boundary ruptures the length and slip often
28
+ vary by a factor of 2. Along the southern segment of the San Andreas fault
29
+ the recurrence interval is 145 years with variations of several decades.
30
+ The smaller the standard deviation of the average recurrence interval, the
31
+ more specific could be the long term prediction of a future mainshock.
32
+ example_title: earthquakes
33
+ - text: ' A typical feed-forward neural field algorithm. Spatiotemporal coordinates are fed into a neural network that predicts values in the reconstructed domain. Then, this domain is mapped to the sensor domain where sensor measurements are available as supervision. Class and Section Problems Addressed Generalization (Section 2) Inverse problems, ill-posed problems, editability; symmetries. Hybrid Representations (Section 3) Computation & memory efficiency, representation capacity, editability: Forward Maps (Section 4) Inverse problems Network Architecture (Section 5) Spectral bias, integration & derivatives. Manipulating Neural Fields (Section 6) Edit ability, constraints, regularization. Table 2: The five classes of techniques in the neural field toolbox each addresses problems that arise in learning, inference, and control. (Section 3). We can supervise reconstruction via differentiable forward maps that transform Or project our domain (e.g, 3D reconstruction via 2D images; Section 4) With appropriate network architecture choices, we can overcome neural network spectral biases (blurriness) and efficiently compute derivatives and integrals (Section 5). Finally, we can manipulate neural fields to add constraints and regularizations, and to achieve editable representations (Section 6). Collectively, these classes constitute a ''toolbox'' of techniques to help solve problems with neural fields There are three components in a conditional neural field: (1) An encoder or inference function € that outputs the conditioning latent variable 2 given an observation 0 E(0) =2. 2 is typically a low-dimensional vector, and is often referred to aS a latent code Or feature code_ (2) A mapping function 4 between Z and neural field parameters O: Y(z) = O; (3) The neural field itself $. The encoder € finds the most probable z given the observations O: argmaxz P(2/0). The decoder maximizes the inverse conditional probability to find the most probable 0 given Z: arg- max P(Olz). We discuss different encoding schemes with different optimality guarantees (Section 2.1.1), both global and local conditioning (Section 2.1.2), and different mapping functions Y (Section 2.1.3) 2. Generalization Suppose we wish to estimate a plausible 3D surface shape given a partial or noisy point cloud. We need a suitable prior over the sur- face in its reconstruction domain to generalize to the partial observations. A neural network expresses a prior via the function space of its architecture and parameters 0, and generalization is influenced by the inductive bias of this function space (Section 5).'
34
+ example_title: scientific paper
35
+ - text: >-
36
+ Is a else or outside the cob and tree written being of early client rope
37
+ and you have is for good reasons. On to the ocean in Orange for time. By's
38
+ the aggregate we can bed it yet. Why this please pick up on a sort is do
39
+ and also M Getoi's nerocos and do rain become you to let so is his brother
40
+ is made in use and Mjulia's's the lay major is aging Masastup coin present
41
+ sea only of Oosii rooms set to you We do er do we easy this private
42
+ oliiishs lonthen might be okay. Good afternoon everybody. Welcome to this
43
+ lecture of Computational Statistics. As you can see, I'm not socially my
44
+ name is Michael Zelinger. I'm one of the task for this class and you might
45
+ have already seen me in the first lecture where I made a quick appearance.
46
+ I'm also going to give the tortillas in the last third of this course. So
47
+ to give you a little bit about me, I'm a old student here with better
48
+ Bulman and my research centres on casual inference applied to biomedical
49
+ disasters, so that could be genomics or that could be hospital data. If
50
+ any of you is interested in writing a bachelor thesis, a semester paper
51
+ may be mastathesis about this topic feel for reach out to me. you have my
52
+ name on models and my email address you can find in the directory I'd Be
53
+ very happy to talk about it. you do not need to be sure about it, we can
54
+ just have a chat. So with that said, let's get on with the lecture.
55
+ There's an exciting topic today I'm going to start by sharing some slides
56
+ with you and later on during the lecture we'll move to the paper. So bear
57
+ with me for a few seconds. Well, the projector is starting up. Okay, so
58
+ let's get started. Today's topic is a very important one. It's about a
59
+ technique which really forms one of the fundamentals of data science,
60
+ machine learning, and any sort of modern statistics. It's called cross
61
+ validation. I know you really want to understand this topic I Want you to
62
+ understand this and frankly, nobody's gonna leave Professor Mineshousen's
63
+ class without understanding cross validation. So to set the stage for
64
+ this, I Want to introduce you to the validation problem in computational
65
+ statistics. So the problem is the following: You trained a model on
66
+ available data. You fitted your model, but you know the training data you
67
+ got could always have been different and some data from the environment.
68
+ Maybe it's a random process. You do not really know what it is, but you
69
+ know that somebody else who gets a different batch of data from the same
70
+ environment they would get slightly different training data and you do not
71
+ care that your method performs as well. On this training data. you want to
72
+ to perform well on other data that you have not seen other data from the
73
+ same environment. So in other words, the validation problem is you want to
74
+ quantify the performance of your model on data that you have not seen. So
75
+ how is this even possible? How could you possibly measure the performance
76
+ on data that you do not know The solution to? This is the following
77
+ realization is that given that you have a bunch of data, you were in
78
+ charge. You get to control how much that your model sees. It works in the
79
+ following way: You can hide data firms model. Let's say you have a
80
+ training data set which is a bunch of doubtless so X eyes are the features
81
+ those are typically hide and national vector. It's got more than one
82
+ dimension for sure. And the why why eyes. Those are the labels for
83
+ supervised learning. As you've seen before, it's the same set up as we
84
+ have in regression. And so you have this training data and now you choose
85
+ that you only use some of those data to fit your model. You're not going
86
+ to use everything, you only use some of it the other part you hide from
87
+ your model. And then you can use this hidden data to do validation from
88
+ the point of you of your model. This hidden data is complete by unseen. In
89
+ other words, we solve our problem of validation.
90
+ example_title: transcribed audio - lecture
91
+ - text: >-
92
+ Transformer-based models have shown to be very useful for many NLP tasks.
93
+ However, a major limitation of transformers-based models is its O(n^2)O(n
94
+ 2) time & memory complexity (where nn is sequence length). Hence, it's
95
+ computationally very expensive to apply transformer-based models on long
96
+ sequences n > 512n>512. Several recent papers, e.g. Longformer, Performer,
97
+ Reformer, Clustered attention try to remedy this problem by approximating
98
+ the full attention matrix. You can checkout 🤗's recent blog post in case
99
+ you are unfamiliar with these models.
100
+
101
+ BigBird (introduced in paper) is one of such recent models to address this
102
+ issue. BigBird relies on block sparse attention instead of normal
103
+ attention (i.e. BERT's attention) and can handle sequences up to a length
104
+ of 4096 at a much lower computational cost compared to BERT. It has
105
+ achieved SOTA on various tasks involving very long sequences such as long
106
+ documents summarization, question-answering with long contexts.
107
+
108
+ BigBird RoBERTa-like model is now available in 🤗Transformers. The goal of
109
+ this post is to give the reader an in-depth understanding of big bird
110
+ implementation & ease one's life in using BigBird with 🤗Transformers.
111
+ But, before going into more depth, it is important to remember that the
112
+ BigBird's attention is an approximation of BERT's full attention and
113
+ therefore does not strive to be better than BERT's full attention, but
114
+ rather to be more efficient. It simply allows to apply transformer-based
115
+ models to much longer sequences since BERT's quadratic memory requirement
116
+ quickly becomes unbearable. Simply put, if we would have ∞ compute & ∞
117
+ time, BERT's attention would be preferred over block sparse attention
118
+ (which we are going to discuss in this post).
119
+
120
+ If you wonder why we need more compute when working with longer sequences,
121
+ this blog post is just right for you!
122
+
123
+ Some of the main questions one might have when working with standard
124
+ BERT-like attention include:
125
+
126
+ Do all tokens really have to attend to all other tokens? Why not compute
127
+ attention only over important tokens? How to decide what tokens are
128
+ important? How to attend to just a few tokens in a very efficient way? In
129
+ this blog post, we will try to answer those questions.
130
+
131
+ What tokens should be attended to? We will give a practical example of how
132
+ attention works by considering the sentence 'BigBird is now available in
133
+ HuggingFace for extractive question answering'. In BERT-like attention,
134
+ every word would simply attend to all other tokens.
135
+
136
+ Let's think about a sensible choice of key tokens that a queried token
137
+ actually only should attend to by writing some pseudo-code. Will will
138
+ assume that the token available is queried and build a sensible list of
139
+ key tokens to attend to.
140
+
141
+ >>> # let's consider following sentence as an example >>> example =
142
+ ['BigBird', 'is', 'now', 'available', 'in', 'HuggingFace', 'for',
143
+ 'extractive', 'question', 'answering']
144
+
145
+ >>> # further let's assume, we're trying to understand the representation
146
+ of 'available' i.e. >>> query_token = 'available' >>> # We will initialize
147
+ an empty `set` and fill up the tokens of our interest as we proceed in
148
+ this section. >>> key_tokens = [] # => currently 'available' token doesn't
149
+ have anything to attend Nearby tokens should be important because, in a
150
+ sentence (sequence of words), the current word is highly dependent on
151
+ neighboring past & future tokens. This intuition is the idea behind the
152
+ concept of sliding attention.
153
+ example_title: bigbird blog intro
154
+ - text: >-
155
+ To be fair, you have to have a very high IQ to understand Rick and Morty.
156
+ The humour is extremely subtle, and without a solid grasp of theoretical
157
+ physics most of the jokes will go over a typical viewer's head. There's
158
+ also Rick's nihilistic outlook, which is deftly woven into his
159
+ characterisation- his personal philosophy draws heavily from Narodnaya
160
+ Volya literature, for instance. The fans understand this stuff; they have
161
+ the intellectual capacity to truly appreciate the depths of these jokes,
162
+ to realise that they're not just funny- they say something deep about
163
+ LIFE. As a consequence people who dislike Rick & Morty truly ARE idiots-
164
+ of course they wouldn't appreciate, for instance, the humour in Rick's
165
+ existential catchphrase 'Wubba Lubba Dub Dub,' which itself is a cryptic
166
+ reference to Turgenev's Russian epic Fathers and Sons. I'm smirking right
167
+ now just imagining one of those addlepated simpletons scratching their
168
+ heads in confusion as Dan Harmon's genius wit unfolds itself on their
169
+ television screens. What fools.. how I pity them. 😂
170
+
171
+ And yes, by the way, i DO have a Rick & Morty tattoo. And no, you cannot
172
+ see it. It's for the ladies' eyes only- and even then they have to
173
+ demonstrate that they're within 5 IQ points of my own (preferably lower)
174
+ beforehand. Nothin personnel kid 😎
175
+ example_title: Richard & Mortimer
176
+ - text: >-
177
+ The tower is 324 metres (1,063 ft) tall, about the same height as an
178
+ 81-storey building, and the tallest structure in Paris. Its base is
179
+ square, measuring 125 metres (410 ft) on each side. During its
180
+ construction, the Eiffel Tower surpassed the Washington Monument to become
181
+ the tallest man-made structure in the world, a title it held for 41 years
182
+ until the Chrysler Building in New York City was finished in 1930. It was
183
+ the first structure to reach a height of 300 metres. Due to the addition
184
+ of a broadcasting aerial at the top of the tower in 1957, it is now taller
185
+ than the Chrysler Building by 5.2 metres (17 ft). Excluding transmitters,
186
+ the Eiffel Tower is the second tallest free-standing structure in France
187
+ after the Millau Viaduct.
188
+ example_title: eiffel
189
+ parameters:
190
+ max_length: 64
191
+ min_length: 8
192
+ no_repeat_ngram_size: 3
193
+ early_stopping: true
194
+ repetition_penalty: 3.5
195
+ encoder_no_repeat_ngram_size: 4
196
+ length_penalty: 0.4
197
+ num_beams: 4
198
  ---
199
+
200
+ # led-large-book-summary: continued
201
+
202
+ Fine-tuned further to explore if any improvements vs. the default.
203
+
204
+ ## Details
205
+
206
+ This model is a fine-tuned version of [pszemraj/led-large-book-summary](https://huggingface.co/pszemraj/led-large-book-summary) further fine-tuned for two epochs.
207
+
208
+ ## Usage
209
+
210
+ It's recommended to use this model with [beam search decoding](https://huggingface.co/docs/transformers/generation_strategies#beamsearch-decoding). If interested, you can also use the `textsum` util repo to have most of this abstracted out for you:
211
+
212
+
213
+ ```bash
214
+ pip install -U textsum
215
+ ```
216
+
217
+ ```python
218
+ from textsum.summarize import Summarizer
219
+
220
+ model_name = "pszemraj/led-large-book-summary-continued"
221
+ summarizer = Summarizer(model_name) # GPU auto-detected
222
+ text = "put the text you don't want to read here"
223
+ summary = summarizer.summarize_string(text)
224
+ print(summary)
225
+ ```
226
+
227
+ ## Training procedure
228
+
229
+ ### Training hyperparameters
230
+
231
+ The following hyperparameters were used during training:
232
+ - learning_rate: 3e-05
233
+ - train_batch_size: 4
234
+ - eval_batch_size: 2
235
+ - seed: 8191
236
+ - gradient_accumulation_steps: 16
237
+ - total_train_batch_size: 64
238
+ - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
239
+ - lr_scheduler_type: cosine
240
+ - lr_scheduler_warmup_ratio: 0.01
241
+ - num_epochs: 2.0
242
+ - mixed_precision_training: Native AMP
243
+
244
+ ### Training results
245
+
246
+ | Training Loss | Epoch | Step | Validation Loss | Rouge1 | Rouge2 | Rougel | Rougelsum | Gen Len |
247
+ |:-------------:|:-----:|:----:|:---------------:|:-------:|:------:|:------:|:---------:|:-------:|
248
+ | 0.9094 | 0.75 | 100 | 1.9722 | 21.6578 | 1.8924 | 6.6571 | 19.7193 | 1024.0 |
249
+ | 0.9043 | 1.5 | 200 | 1.9890 | 20.9293 | 1.8539 | 6.413 | 19.0756 | 1024.0 |