aibreaker commited on
Commit
46fa2d2
·
verified ·
1 Parent(s): f9d3a87

Upload my model

Browse files
README.md ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ base_model: roberta-large
4
+ tags:
5
+ - generated_from_trainer
6
+ metrics:
7
+ - accuracy
8
+ model-index:
9
+ - name: example
10
+ results: []
11
+ ---
12
+
13
+ <!-- This model card has been generated automatically according to the information the Trainer had access to. You
14
+ should probably proofread and complete it, then remove this comment. -->
15
+
16
+ # example
17
+
18
+ This model is a fine-tuned version of [roberta-large](https://huggingface.co/roberta-large) on an unknown dataset.
19
+ It achieves the following results on the evaluation set:
20
+ - Loss: 0.3193
21
+ - Accuracy: 0.9259
22
+ - 0 To 0: 115
23
+ - 0 To 1: 10
24
+ - 1 To 0: 8
25
+ - 1 To 1: 110
26
+
27
+ ## Model description
28
+
29
+ More information needed
30
+
31
+ ## Intended uses & limitations
32
+
33
+ More information needed
34
+
35
+ ## Training and evaluation data
36
+
37
+ More information needed
38
+
39
+ ## Training procedure
40
+
41
+ ### Training hyperparameters
42
+
43
+ The following hyperparameters were used during training:
44
+ - learning_rate: 1e-05
45
+ - train_batch_size: 16
46
+ - eval_batch_size: 16
47
+ - seed: 42
48
+ - gradient_accumulation_steps: 5
49
+ - total_train_batch_size: 80
50
+ - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
51
+ - lr_scheduler_type: linear
52
+ - lr_scheduler_warmup_ratio: 0.1
53
+ - num_epochs: 15
54
+
55
+ ### Training results
56
+
57
+
58
+
59
+ ### Framework versions
60
+
61
+ - Transformers 4.41.2
62
+ - Pytorch 2.3.1
63
+ - Datasets 2.20.0
64
+ - Tokenizers 0.19.1
config.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "roberta-large",
3
+ "architectures": [
4
+ "RobertaForSequenceClassification"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "bos_token_id": 0,
8
+ "classifier_dropout": null,
9
+ "eos_token_id": 2,
10
+ "hidden_act": "gelu",
11
+ "hidden_dropout_prob": 0.1,
12
+ "hidden_size": 1024,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 4096,
15
+ "label2id": {
16
+ "0": 0,
17
+ "1": 1
18
+ },
19
+ "layer_norm_eps": 1e-05,
20
+ "max_position_embeddings": 514,
21
+ "model_type": "roberta",
22
+ "num_attention_heads": 16,
23
+ "num_hidden_layers": 24,
24
+ "pad_token_id": 1,
25
+ "position_embedding_type": "absolute",
26
+ "problem_type": "single_label_classification",
27
+ "torch_dtype": "float32",
28
+ "transformers_version": "4.41.2",
29
+ "type_vocab_size": 1,
30
+ "use_cache": true,
31
+ "vocab_size": 50265
32
+ }
merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:48d1ffaeb2e61298d25f52e7b508461862d06d247dda5d3b775f97f530cb21b1
3
+ size 1421495416
special_tokens_map.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "<s>",
3
+ "cls_token": "<s>",
4
+ "eos_token": "</s>",
5
+ "mask_token": {
6
+ "content": "<mask>",
7
+ "lstrip": true,
8
+ "normalized": false,
9
+ "rstrip": false,
10
+ "single_word": false
11
+ },
12
+ "pad_token": "<pad>",
13
+ "sep_token": "</s>",
14
+ "unk_token": "<unk>"
15
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "added_tokens_decoder": {
4
+ "0": {
5
+ "content": "<s>",
6
+ "lstrip": false,
7
+ "normalized": true,
8
+ "rstrip": false,
9
+ "single_word": false,
10
+ "special": true
11
+ },
12
+ "1": {
13
+ "content": "<pad>",
14
+ "lstrip": false,
15
+ "normalized": true,
16
+ "rstrip": false,
17
+ "single_word": false,
18
+ "special": true
19
+ },
20
+ "2": {
21
+ "content": "</s>",
22
+ "lstrip": false,
23
+ "normalized": true,
24
+ "rstrip": false,
25
+ "single_word": false,
26
+ "special": true
27
+ },
28
+ "3": {
29
+ "content": "<unk>",
30
+ "lstrip": false,
31
+ "normalized": true,
32
+ "rstrip": false,
33
+ "single_word": false,
34
+ "special": true
35
+ },
36
+ "50264": {
37
+ "content": "<mask>",
38
+ "lstrip": true,
39
+ "normalized": false,
40
+ "rstrip": false,
41
+ "single_word": false,
42
+ "special": true
43
+ }
44
+ },
45
+ "bos_token": "<s>",
46
+ "clean_up_tokenization_spaces": true,
47
+ "cls_token": "<s>",
48
+ "eos_token": "</s>",
49
+ "errors": "replace",
50
+ "mask_token": "<mask>",
51
+ "model_max_length": 512,
52
+ "pad_token": "<pad>",
53
+ "sep_token": "</s>",
54
+ "tokenizer_class": "RobertaTokenizer",
55
+ "trim_offsets": true,
56
+ "unk_token": "<unk>"
57
+ }
trainer_state.json ADDED
@@ -0,0 +1,439 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "best_metric": null,
3
+ "best_model_checkpoint": null,
4
+ "epoch": 14.646464646464647,
5
+ "eval_steps": 20,
6
+ "global_step": 580,
7
+ "is_hyper_param_search": false,
8
+ "is_local_process_zero": true,
9
+ "is_world_process_zero": true,
10
+ "log_history": [
11
+ {
12
+ "epoch": 0.25252525252525254,
13
+ "grad_norm": 13.126054763793945,
14
+ "learning_rate": 1.6949152542372882e-06,
15
+ "loss": 0.8683,
16
+ "step": 10
17
+ },
18
+ {
19
+ "epoch": 0.5050505050505051,
20
+ "grad_norm": 17.31291961669922,
21
+ "learning_rate": 3.3898305084745763e-06,
22
+ "loss": 0.7248,
23
+ "step": 20
24
+ },
25
+ {
26
+ "epoch": 0.7575757575757576,
27
+ "grad_norm": 8.053046226501465,
28
+ "learning_rate": 5.084745762711865e-06,
29
+ "loss": 0.6134,
30
+ "step": 30
31
+ },
32
+ {
33
+ "epoch": 1.0101010101010102,
34
+ "grad_norm": 9.220598220825195,
35
+ "learning_rate": 6.779661016949153e-06,
36
+ "loss": 0.5526,
37
+ "step": 40
38
+ },
39
+ {
40
+ "epoch": 1.2626262626262625,
41
+ "grad_norm": 27.968978881835938,
42
+ "learning_rate": 8.47457627118644e-06,
43
+ "loss": 0.4393,
44
+ "step": 50
45
+ },
46
+ {
47
+ "epoch": 1.5151515151515151,
48
+ "grad_norm": 5.585519313812256,
49
+ "learning_rate": 9.980988593155894e-06,
50
+ "loss": 0.34,
51
+ "step": 60
52
+ },
53
+ {
54
+ "epoch": 1.7676767676767677,
55
+ "grad_norm": 4.464208602905273,
56
+ "learning_rate": 9.790874524714829e-06,
57
+ "loss": 0.3483,
58
+ "step": 70
59
+ },
60
+ {
61
+ "epoch": 2.0202020202020203,
62
+ "grad_norm": 11.554718017578125,
63
+ "learning_rate": 9.600760456273765e-06,
64
+ "loss": 0.3142,
65
+ "step": 80
66
+ },
67
+ {
68
+ "epoch": 2.2727272727272725,
69
+ "grad_norm": 6.658814907073975,
70
+ "learning_rate": 9.4106463878327e-06,
71
+ "loss": 0.2071,
72
+ "step": 90
73
+ },
74
+ {
75
+ "epoch": 2.525252525252525,
76
+ "grad_norm": 6.011457443237305,
77
+ "learning_rate": 9.220532319391637e-06,
78
+ "loss": 0.2287,
79
+ "step": 100
80
+ },
81
+ {
82
+ "epoch": 2.7777777777777777,
83
+ "grad_norm": 9.19509220123291,
84
+ "learning_rate": 9.030418250950572e-06,
85
+ "loss": 0.2189,
86
+ "step": 110
87
+ },
88
+ {
89
+ "epoch": 3.0303030303030303,
90
+ "grad_norm": 4.081284523010254,
91
+ "learning_rate": 8.840304182509506e-06,
92
+ "loss": 0.1807,
93
+ "step": 120
94
+ },
95
+ {
96
+ "epoch": 3.282828282828283,
97
+ "grad_norm": 4.492301940917969,
98
+ "learning_rate": 8.650190114068441e-06,
99
+ "loss": 0.1727,
100
+ "step": 130
101
+ },
102
+ {
103
+ "epoch": 3.5353535353535355,
104
+ "grad_norm": 5.772425174713135,
105
+ "learning_rate": 8.460076045627376e-06,
106
+ "loss": 0.128,
107
+ "step": 140
108
+ },
109
+ {
110
+ "epoch": 3.787878787878788,
111
+ "grad_norm": 24.84961700439453,
112
+ "learning_rate": 8.269961977186313e-06,
113
+ "loss": 0.1993,
114
+ "step": 150
115
+ },
116
+ {
117
+ "epoch": 4.040404040404041,
118
+ "grad_norm": 2.998711585998535,
119
+ "learning_rate": 8.079847908745247e-06,
120
+ "loss": 0.1502,
121
+ "step": 160
122
+ },
123
+ {
124
+ "epoch": 4.292929292929293,
125
+ "grad_norm": 6.577826499938965,
126
+ "learning_rate": 7.889733840304184e-06,
127
+ "loss": 0.1225,
128
+ "step": 170
129
+ },
130
+ {
131
+ "epoch": 4.545454545454545,
132
+ "grad_norm": 8.288976669311523,
133
+ "learning_rate": 7.699619771863119e-06,
134
+ "loss": 0.1113,
135
+ "step": 180
136
+ },
137
+ {
138
+ "epoch": 4.797979797979798,
139
+ "grad_norm": 8.804610252380371,
140
+ "learning_rate": 7.509505703422054e-06,
141
+ "loss": 0.1692,
142
+ "step": 190
143
+ },
144
+ {
145
+ "epoch": 5.05050505050505,
146
+ "grad_norm": 5.5263752937316895,
147
+ "learning_rate": 7.319391634980989e-06,
148
+ "loss": 0.1364,
149
+ "step": 200
150
+ },
151
+ {
152
+ "epoch": 5.303030303030303,
153
+ "grad_norm": 3.2428457736968994,
154
+ "learning_rate": 7.129277566539925e-06,
155
+ "loss": 0.0863,
156
+ "step": 210
157
+ },
158
+ {
159
+ "epoch": 5.555555555555555,
160
+ "grad_norm": 6.467748165130615,
161
+ "learning_rate": 6.93916349809886e-06,
162
+ "loss": 0.1099,
163
+ "step": 220
164
+ },
165
+ {
166
+ "epoch": 5.808080808080808,
167
+ "grad_norm": 8.438054084777832,
168
+ "learning_rate": 6.749049429657795e-06,
169
+ "loss": 0.1037,
170
+ "step": 230
171
+ },
172
+ {
173
+ "epoch": 6.0606060606060606,
174
+ "grad_norm": 2.7920687198638916,
175
+ "learning_rate": 6.55893536121673e-06,
176
+ "loss": 0.1054,
177
+ "step": 240
178
+ },
179
+ {
180
+ "epoch": 6.313131313131313,
181
+ "grad_norm": 14.06596565246582,
182
+ "learning_rate": 6.368821292775666e-06,
183
+ "loss": 0.0708,
184
+ "step": 250
185
+ },
186
+ {
187
+ "epoch": 6.565656565656566,
188
+ "grad_norm": 3.4552762508392334,
189
+ "learning_rate": 6.1787072243346015e-06,
190
+ "loss": 0.0963,
191
+ "step": 260
192
+ },
193
+ {
194
+ "epoch": 6.818181818181818,
195
+ "grad_norm": 4.3161234855651855,
196
+ "learning_rate": 5.988593155893536e-06,
197
+ "loss": 0.1237,
198
+ "step": 270
199
+ },
200
+ {
201
+ "epoch": 7.070707070707071,
202
+ "grad_norm": 3.9048163890838623,
203
+ "learning_rate": 5.798479087452472e-06,
204
+ "loss": 0.0868,
205
+ "step": 280
206
+ },
207
+ {
208
+ "epoch": 7.3232323232323235,
209
+ "grad_norm": 8.73560905456543,
210
+ "learning_rate": 5.608365019011407e-06,
211
+ "loss": 0.0681,
212
+ "step": 290
213
+ },
214
+ {
215
+ "epoch": 7.575757575757576,
216
+ "grad_norm": 3.1624324321746826,
217
+ "learning_rate": 5.418250950570343e-06,
218
+ "loss": 0.0912,
219
+ "step": 300
220
+ },
221
+ {
222
+ "epoch": 7.828282828282829,
223
+ "grad_norm": 3.010721206665039,
224
+ "learning_rate": 5.228136882129278e-06,
225
+ "loss": 0.0618,
226
+ "step": 310
227
+ },
228
+ {
229
+ "epoch": 8.080808080808081,
230
+ "grad_norm": 2.488093137741089,
231
+ "learning_rate": 5.038022813688214e-06,
232
+ "loss": 0.0484,
233
+ "step": 320
234
+ },
235
+ {
236
+ "epoch": 8.333333333333334,
237
+ "grad_norm": 44.87844467163086,
238
+ "learning_rate": 4.847908745247149e-06,
239
+ "loss": 0.0665,
240
+ "step": 330
241
+ },
242
+ {
243
+ "epoch": 8.585858585858587,
244
+ "grad_norm": 5.052587032318115,
245
+ "learning_rate": 4.657794676806084e-06,
246
+ "loss": 0.0643,
247
+ "step": 340
248
+ },
249
+ {
250
+ "epoch": 8.83838383838384,
251
+ "grad_norm": 1.7123836278915405,
252
+ "learning_rate": 4.467680608365019e-06,
253
+ "loss": 0.0575,
254
+ "step": 350
255
+ },
256
+ {
257
+ "epoch": 9.090909090909092,
258
+ "grad_norm": 1.540806770324707,
259
+ "learning_rate": 4.277566539923955e-06,
260
+ "loss": 0.0669,
261
+ "step": 360
262
+ },
263
+ {
264
+ "epoch": 9.343434343434343,
265
+ "grad_norm": 6.937175750732422,
266
+ "learning_rate": 4.08745247148289e-06,
267
+ "loss": 0.0502,
268
+ "step": 370
269
+ },
270
+ {
271
+ "epoch": 9.595959595959595,
272
+ "grad_norm": 1.7217215299606323,
273
+ "learning_rate": 3.897338403041825e-06,
274
+ "loss": 0.0586,
275
+ "step": 380
276
+ },
277
+ {
278
+ "epoch": 9.848484848484848,
279
+ "grad_norm": 2.884972095489502,
280
+ "learning_rate": 3.707224334600761e-06,
281
+ "loss": 0.0691,
282
+ "step": 390
283
+ },
284
+ {
285
+ "epoch": 10.1010101010101,
286
+ "grad_norm": 3.5889267921447754,
287
+ "learning_rate": 3.517110266159696e-06,
288
+ "loss": 0.0717,
289
+ "step": 400
290
+ },
291
+ {
292
+ "epoch": 10.353535353535353,
293
+ "grad_norm": 3.033485174179077,
294
+ "learning_rate": 3.3269961977186314e-06,
295
+ "loss": 0.0491,
296
+ "step": 410
297
+ },
298
+ {
299
+ "epoch": 10.606060606060606,
300
+ "grad_norm": 1.5832382440567017,
301
+ "learning_rate": 3.136882129277567e-06,
302
+ "loss": 0.0457,
303
+ "step": 420
304
+ },
305
+ {
306
+ "epoch": 10.858585858585858,
307
+ "grad_norm": 0.04450301453471184,
308
+ "learning_rate": 2.9467680608365023e-06,
309
+ "loss": 0.0687,
310
+ "step": 430
311
+ },
312
+ {
313
+ "epoch": 11.11111111111111,
314
+ "grad_norm": 4.540256977081299,
315
+ "learning_rate": 2.756653992395438e-06,
316
+ "loss": 0.0593,
317
+ "step": 440
318
+ },
319
+ {
320
+ "epoch": 11.363636363636363,
321
+ "grad_norm": 4.446552753448486,
322
+ "learning_rate": 2.5665399239543728e-06,
323
+ "loss": 0.0404,
324
+ "step": 450
325
+ },
326
+ {
327
+ "epoch": 11.616161616161616,
328
+ "grad_norm": 1.007643222808838,
329
+ "learning_rate": 2.3764258555133084e-06,
330
+ "loss": 0.0402,
331
+ "step": 460
332
+ },
333
+ {
334
+ "epoch": 11.868686868686869,
335
+ "grad_norm": 0.96592116355896,
336
+ "learning_rate": 2.1863117870722437e-06,
337
+ "loss": 0.0448,
338
+ "step": 470
339
+ },
340
+ {
341
+ "epoch": 12.121212121212121,
342
+ "grad_norm": 6.914277076721191,
343
+ "learning_rate": 1.996197718631179e-06,
344
+ "loss": 0.0536,
345
+ "step": 480
346
+ },
347
+ {
348
+ "epoch": 12.373737373737374,
349
+ "grad_norm": 4.67967414855957,
350
+ "learning_rate": 1.8060836501901142e-06,
351
+ "loss": 0.0487,
352
+ "step": 490
353
+ },
354
+ {
355
+ "epoch": 12.626262626262626,
356
+ "grad_norm": 2.039752721786499,
357
+ "learning_rate": 1.6159695817490494e-06,
358
+ "loss": 0.0468,
359
+ "step": 500
360
+ },
361
+ {
362
+ "epoch": 12.878787878787879,
363
+ "grad_norm": 7.157741546630859,
364
+ "learning_rate": 1.4258555133079848e-06,
365
+ "loss": 0.0317,
366
+ "step": 510
367
+ },
368
+ {
369
+ "epoch": 13.131313131313131,
370
+ "grad_norm": 4.240894317626953,
371
+ "learning_rate": 1.2357414448669203e-06,
372
+ "loss": 0.0424,
373
+ "step": 520
374
+ },
375
+ {
376
+ "epoch": 13.383838383838384,
377
+ "grad_norm": 1.8747172355651855,
378
+ "learning_rate": 1.0456273764258558e-06,
379
+ "loss": 0.0396,
380
+ "step": 530
381
+ },
382
+ {
383
+ "epoch": 13.636363636363637,
384
+ "grad_norm": 1.3047974109649658,
385
+ "learning_rate": 8.555133079847909e-07,
386
+ "loss": 0.0403,
387
+ "step": 540
388
+ },
389
+ {
390
+ "epoch": 13.88888888888889,
391
+ "grad_norm": 1.6948643922805786,
392
+ "learning_rate": 6.653992395437263e-07,
393
+ "loss": 0.0372,
394
+ "step": 550
395
+ },
396
+ {
397
+ "epoch": 14.141414141414142,
398
+ "grad_norm": 3.19494891166687,
399
+ "learning_rate": 4.752851711026616e-07,
400
+ "loss": 0.0422,
401
+ "step": 560
402
+ },
403
+ {
404
+ "epoch": 14.393939393939394,
405
+ "grad_norm": 0.13894398510456085,
406
+ "learning_rate": 2.85171102661597e-07,
407
+ "loss": 0.0292,
408
+ "step": 570
409
+ },
410
+ {
411
+ "epoch": 14.646464646464647,
412
+ "grad_norm": 0.04802278056740761,
413
+ "learning_rate": 9.505703422053233e-08,
414
+ "loss": 0.0377,
415
+ "step": 580
416
+ }
417
+ ],
418
+ "logging_steps": 10,
419
+ "max_steps": 585,
420
+ "num_input_tokens_seen": 0,
421
+ "num_train_epochs": 15,
422
+ "save_steps": 20,
423
+ "stateful_callbacks": {
424
+ "TrainerControl": {
425
+ "args": {
426
+ "should_epoch_stop": false,
427
+ "should_evaluate": false,
428
+ "should_log": false,
429
+ "should_save": true,
430
+ "should_training_stop": false
431
+ },
432
+ "attributes": {}
433
+ }
434
+ },
435
+ "total_flos": 1.5658543749477888e+16,
436
+ "train_batch_size": 16,
437
+ "trial_name": null,
438
+ "trial_params": null
439
+ }
training_args.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4d70baba1b2f1be3023e89841ed429af172d45e87f548b1a00a0170e44cb8faa
3
+ size 5112
vocab.json ADDED
The diff for this file is too large to render. See raw diff