AlekseyKorshuk commited on
Commit
0306915
1 Parent(s): c0c86f8

huggingartists

Browse files
README.md CHANGED
@@ -14,7 +14,7 @@ widget:
14
  <div class="inline-flex flex-col" style="line-height: 1.5;">
15
  <div class="flex">
16
  <div
17
- style="display:DISPLAY_1; margin-left: auto; margin-right: auto; width: 92px; height:92px; border-radius: 50%; background-size: cover; background-image: url(&#39;https://images.genius.com/73f52f6c73859a68ab961ca797e7b848.725x725x1.jpg&#39;)">
18
  </div>
19
  </div>
20
  <div style="text-align: center; margin-top: 3px; font-size: 16px; font-weight: 800">🤖 HuggingArtists Model 🤖</div>
@@ -45,15 +45,15 @@ from datasets import load_dataset
45
  dataset = load_dataset("huggingartists/lil-uzi-vert")
46
  ```
47
 
48
- [Explore the data](https://wandb.ai/huggingartists/huggingartists/runs/2ndgi0dn/artifacts), which is tracked with [W&B artifacts](https://docs.wandb.com/artifacts) at every step of the pipeline.
49
 
50
  ## Training procedure
51
 
52
  The model is based on a pre-trained [GPT-2](https://huggingface.co/gpt2) which is fine-tuned on Lil Uzi Vert's lyrics.
53
 
54
- Hyperparameters and metrics are recorded in the [W&B training run](https://wandb.ai/huggingartists/huggingartists/runs/9x6wbf6e) for full transparency and reproducibility.
55
 
56
- At the end of training, [the final model](https://wandb.ai/huggingartists/huggingartists/runs/9x6wbf6e/artifacts) is logged and versioned.
57
 
58
  ## How to use
59
 
14
  <div class="inline-flex flex-col" style="line-height: 1.5;">
15
  <div class="flex">
16
  <div
17
+ style="display:DISPLAY_1; margin-left: auto; margin-right: auto; width: 92px; height:92px; border-radius: 50%; background-size: cover; background-image: url(&#39;https://images.genius.com/3619e57354afa7dd5e65b9c261982ccc.640x640x1.jpg&#39;)">
18
  </div>
19
  </div>
20
  <div style="text-align: center; margin-top: 3px; font-size: 16px; font-weight: 800">🤖 HuggingArtists Model 🤖</div>
45
  dataset = load_dataset("huggingartists/lil-uzi-vert")
46
  ```
47
 
48
+ [Explore the data](https://wandb.ai/huggingartists/huggingartists/runs/14mmkidw/artifacts), which is tracked with [W&B artifacts](https://docs.wandb.com/artifacts) at every step of the pipeline.
49
 
50
  ## Training procedure
51
 
52
  The model is based on a pre-trained [GPT-2](https://huggingface.co/gpt2) which is fine-tuned on Lil Uzi Vert's lyrics.
53
 
54
+ Hyperparameters and metrics are recorded in the [W&B training run](https://wandb.ai/huggingartists/huggingartists/runs/3s5iqd7v) for full transparency and reproducibility.
55
 
56
+ At the end of training, [the final model](https://wandb.ai/huggingartists/huggingartists/runs/3s5iqd7v/artifacts) is logged and versioned.
57
 
58
  ## How to use
59
 
config.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "_name_or_path": "gpt2",
3
  "activation_function": "gelu_new",
4
  "architectures": [
5
  "GPT2LMHeadModel"
@@ -18,7 +18,9 @@
18
  "n_inner": null,
19
  "n_layer": 12,
20
  "n_positions": 1024,
 
21
  "resid_pdrop": 0.1,
 
22
  "scale_attn_weights": true,
23
  "summary_activation": null,
24
  "summary_first_dropout": 0.1,
@@ -35,7 +37,7 @@
35
  }
36
  },
37
  "torch_dtype": "float32",
38
- "transformers_version": "4.9.2",
39
  "use_cache": true,
40
  "vocab_size": 50257
41
  }
1
  {
2
+ "_name_or_path": "lil-uzi-vert",
3
  "activation_function": "gelu_new",
4
  "architectures": [
5
  "GPT2LMHeadModel"
18
  "n_inner": null,
19
  "n_layer": 12,
20
  "n_positions": 1024,
21
+ "reorder_and_upcast_attn": false,
22
  "resid_pdrop": 0.1,
23
+ "scale_attn_by_inverse_layer_idx": false,
24
  "scale_attn_weights": true,
25
  "summary_activation": null,
26
  "summary_first_dropout": 0.1,
37
  }
38
  },
39
  "torch_dtype": "float32",
40
+ "transformers_version": "4.18.0",
41
  "use_cache": true,
42
  "vocab_size": 50257
43
  }
evaluation.txt CHANGED
@@ -1 +1 @@
1
- {"eval_loss": 3.0165445804595947, "eval_runtime": 8.1174, "eval_samples_per_second": 37.45, "eval_steps_per_second": 4.681, "epoch": 1.0}
1
+ {"eval_loss": 2.9723432064056396, "eval_runtime": 14.485, "eval_samples_per_second": 20.918, "eval_steps_per_second": 2.623, "epoch": 4.0}
flax_model.msgpack CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b9f834e2dab17d6b22f3e5622e6ae587c757af1be1061e4ecc23e0724ae0b559
3
  size 497764120
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d911797eecf7771d7a8b11419a5eef76e749a76a836de6f2e223bc6792b68bba
3
  size 497764120
optimizer.pt CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:42921bfbd1f7da4499f0e2f798f9137b868407cced67116b7819ce354a30349b
3
- size 995603825
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cbe62339215bdc95a3540d463c2e486a400ea24b419ccc127a77e543a5fe7868
3
+ size 995604017
pytorch_model.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e18a4078f8a9380fdeeb65a2e0038b5134dea4b4c76336a114ed08cea4d5ffa2
3
- size 510403817
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:89fc126be56c4a03afeb33e2198d78baec72d354c2ca80b7bd837d0e24fab3b1
3
+ size 510396521
rng_state.pth CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3498d3c2707018f535ef83533e9dc2d6c4d547651de1f61798ba34c842d4d7f0
3
  size 14503
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6331c41c620073da4a8b80d7b70f57f60aee54b5fffdf4709f2dc2f5f8b461c3
3
  size 14503
scheduler.pt CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:cbcce13fecbcb2be23ea34670a937a2c27e28ac198853dd41e256aa3ed115744
3
  size 623
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98fc3a88a1d7a12051327bb8cbfa8f3cf51243baa258da149a22d78cec439dec
3
  size 623
tokenizer.json CHANGED
The diff for this file is too large to render. See raw diff
tokenizer_config.json CHANGED
@@ -1 +1 @@
1
- {"unk_token": "<|endoftext|>", "bos_token": "<|endoftext|>", "eos_token": "<|endoftext|>", "add_prefix_space": false, "model_max_length": 1024, "special_tokens_map_file": null, "name_or_path": "gpt2", "tokenizer_class": "GPT2Tokenizer"}
1
+ {"unk_token": "<|endoftext|>", "bos_token": "<|endoftext|>", "eos_token": "<|endoftext|>", "add_prefix_space": false, "model_max_length": 1024, "special_tokens_map_file": null, "name_or_path": "huggingartists/lil-uzi-vert", "tokenizer_class": "GPT2Tokenizer"}
trainer_state.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "best_metric": 3.0165445804595947,
3
  "best_model_checkpoint": "output/lil-uzi-vert/checkpoint-218",
4
  "epoch": 1.0,
5
  "global_step": 218,
@@ -10,273 +10,273 @@
10
  {
11
  "epoch": 0.02,
12
  "learning_rate": 0.0001370219946819302,
13
- "loss": 4.0012,
14
  "step": 5
15
  },
16
  {
17
  "epoch": 0.05,
18
- "learning_rate": 0.0001364889025146963,
19
- "loss": 3.8869,
20
  "step": 10
21
  },
22
  {
23
  "epoch": 0.07,
24
  "learning_rate": 0.00013560349006508517,
25
- "loss": 3.6034,
26
  "step": 15
27
  },
28
  {
29
  "epoch": 0.09,
30
  "learning_rate": 0.0001343703523221556,
31
- "loss": 3.5643,
32
  "step": 20
33
  },
34
  {
35
  "epoch": 0.11,
36
  "learning_rate": 0.00013279588885081002,
37
- "loss": 3.3069,
38
  "step": 25
39
  },
40
  {
41
  "epoch": 0.14,
42
- "learning_rate": 0.0001308882705802323,
43
- "loss": 3.431,
44
  "step": 30
45
  },
46
  {
47
  "epoch": 0.16,
48
  "learning_rate": 0.00012865739739954807,
49
- "loss": 3.5848,
50
  "step": 35
51
  },
52
  {
53
  "epoch": 0.18,
54
- "learning_rate": 0.00012611484678077197,
55
- "loss": 3.4069,
56
  "step": 40
57
  },
58
  {
59
  "epoch": 0.21,
60
- "learning_rate": 0.00012327381369567084,
61
- "loss": 3.3532,
62
  "step": 45
63
  },
64
  {
65
  "epoch": 0.23,
66
- "learning_rate": 0.00012014904213835435,
67
- "loss": 3.4164,
68
  "step": 50
69
  },
70
  {
71
  "epoch": 0.25,
72
- "learning_rate": 0.00011675674860896696,
73
- "loss": 3.5117,
74
  "step": 55
75
  },
76
  {
77
  "epoch": 0.28,
78
- "learning_rate": 0.00011311453795557528,
79
- "loss": 3.2964,
80
  "step": 60
81
  },
82
  {
83
  "epoch": 0.3,
84
- "learning_rate": 0.00010924131201100248,
85
- "loss": 3.2104,
86
  "step": 65
87
  },
88
  {
89
  "epoch": 0.32,
90
- "learning_rate": 0.00010515717149875347,
91
- "loss": 3.0675,
92
  "step": 70
93
  },
94
  {
95
  "epoch": 0.34,
96
- "learning_rate": 0.00010088331171710597,
97
- "loss": 3.4575,
98
  "step": 75
99
  },
100
  {
101
  "epoch": 0.37,
102
  "learning_rate": 9.644191254273106e-05,
103
- "loss": 3.1265,
104
  "step": 80
105
  },
106
  {
107
  "epoch": 0.39,
108
- "learning_rate": 9.185602332468734e-05,
109
- "loss": 3.3004,
110
  "step": 85
111
  },
112
  {
113
  "epoch": 0.41,
114
- "learning_rate": 8.714944326614944e-05,
115
- "loss": 3.2766,
116
  "step": 90
117
  },
118
  {
119
  "epoch": 0.44,
120
- "learning_rate": 8.234659791464919e-05,
121
- "loss": 3.1492,
122
  "step": 95
123
  },
124
  {
125
  "epoch": 0.46,
126
- "learning_rate": 7.747241240180272e-05,
127
- "loss": 3.3842,
128
  "step": 100
129
  },
130
  {
131
  "epoch": 0.48,
132
- "learning_rate": 7.255218209036649e-05,
133
- "loss": 3.3591,
134
  "step": 105
135
  },
136
  {
137
  "epoch": 0.5,
138
- "learning_rate": 6.76114412999196e-05,
139
- "loss": 3.1375,
140
  "step": 110
141
  },
142
  {
143
  "epoch": 0.53,
144
- "learning_rate": 6.267583079244174e-05,
145
- "loss": 3.2619,
146
  "step": 115
147
  },
148
  {
149
  "epoch": 0.55,
150
- "learning_rate": 5.777096470549132e-05,
151
- "loss": 3.1689,
152
  "step": 120
153
  },
154
  {
155
  "epoch": 0.57,
156
  "learning_rate": 5.2922297623555134e-05,
157
- "loss": 3.264,
158
  "step": 125
159
  },
160
  {
161
  "epoch": 0.6,
162
- "learning_rate": 4.815499247742428e-05,
163
- "loss": 3.0831,
164
  "step": 130
165
  },
166
  {
167
  "epoch": 0.62,
168
- "learning_rate": 4.349378995715337e-05,
169
- "loss": 3.1357,
170
  "step": 135
171
  },
172
  {
173
  "epoch": 0.64,
174
- "learning_rate": 3.896288011630533e-05,
175
- "loss": 3.164,
176
  "step": 140
177
  },
178
  {
179
  "epoch": 0.67,
180
- "learning_rate": 3.458577683381209e-05,
181
- "loss": 3.2134,
182
  "step": 145
183
  },
184
  {
185
  "epoch": 0.69,
186
- "learning_rate": 3.0385195784951376e-05,
187
- "loss": 3.1053,
188
  "step": 150
189
  },
190
  {
191
  "epoch": 0.71,
192
- "learning_rate": 2.63829365547284e-05,
193
- "loss": 3.099,
194
  "step": 155
195
  },
196
  {
197
  "epoch": 0.73,
198
- "learning_rate": 2.2599769505454377e-05,
199
- "loss": 3.1365,
200
  "step": 160
201
  },
202
  {
203
  "epoch": 0.76,
204
- "learning_rate": 1.905532798564004e-05,
205
- "loss": 3.1402,
206
  "step": 165
207
  },
208
  {
209
  "epoch": 0.78,
210
- "learning_rate": 1.5768006439603532e-05,
211
- "loss": 3.1203,
212
  "step": 170
213
  },
214
  {
215
  "epoch": 0.8,
216
- "learning_rate": 1.2754864946569404e-05,
217
- "loss": 3.2424,
218
  "step": 175
219
  },
220
  {
221
  "epoch": 0.83,
222
- "learning_rate": 1.0031540684667541e-05,
223
- "loss": 3.2244,
224
  "step": 180
225
  },
226
  {
227
  "epoch": 0.85,
228
- "learning_rate": 7.612166779304597e-06,
229
- "loss": 3.2007,
230
  "step": 185
231
  },
232
  {
233
  "epoch": 0.87,
234
  "learning_rate": 5.5092989570564855e-06,
235
- "loss": 3.0923,
236
  "step": 190
237
  },
238
  {
239
  "epoch": 0.89,
240
- "learning_rate": 3.7338503857237188e-06,
241
- "loss": 3.0841,
242
  "step": 195
243
  },
244
  {
245
  "epoch": 0.92,
246
- "learning_rate": 2.295035038707367e-06,
247
- "loss": 3.1703,
248
  "step": 200
249
  },
250
  {
251
  "epoch": 0.94,
252
- "learning_rate": 1.2003198776252066e-06,
253
- "loss": 3.2195,
254
  "step": 205
255
  },
256
  {
257
  "epoch": 0.96,
258
- "learning_rate": 4.5538610132401196e-07,
259
- "loss": 3.0425,
260
  "step": 210
261
  },
262
  {
263
  "epoch": 0.99,
264
  "learning_rate": 6.409966239244377e-08,
265
- "loss": 3.1853,
266
  "step": 215
267
  },
268
  {
269
  "epoch": 1.0,
270
- "eval_loss": 3.0165445804595947,
271
- "eval_runtime": 8.1641,
272
- "eval_samples_per_second": 37.236,
273
- "eval_steps_per_second": 4.655,
274
  "step": 218
275
  }
276
  ],
277
- "max_steps": 218,
278
- "num_train_epochs": 1,
279
- "total_flos": 227454713856000.0,
280
  "trial_name": null,
281
  "trial_params": null
282
  }
1
  {
2
+ "best_metric": 2.9723432064056396,
3
  "best_model_checkpoint": "output/lil-uzi-vert/checkpoint-218",
4
  "epoch": 1.0,
5
  "global_step": 218,
10
  {
11
  "epoch": 0.02,
12
  "learning_rate": 0.0001370219946819302,
13
+ "loss": 2.8388,
14
  "step": 5
15
  },
16
  {
17
  "epoch": 0.05,
18
+ "learning_rate": 0.00013648890251469632,
19
+ "loss": 2.9,
20
  "step": 10
21
  },
22
  {
23
  "epoch": 0.07,
24
  "learning_rate": 0.00013560349006508517,
25
+ "loss": 2.895,
26
  "step": 15
27
  },
28
  {
29
  "epoch": 0.09,
30
  "learning_rate": 0.0001343703523221556,
31
+ "loss": 2.8357,
32
  "step": 20
33
  },
34
  {
35
  "epoch": 0.11,
36
  "learning_rate": 0.00013279588885081002,
37
+ "loss": 2.8199,
38
  "step": 25
39
  },
40
  {
41
  "epoch": 0.14,
42
+ "learning_rate": 0.00013088827058023233,
43
+ "loss": 2.7435,
44
  "step": 30
45
  },
46
  {
47
  "epoch": 0.16,
48
  "learning_rate": 0.00012865739739954807,
49
+ "loss": 2.8855,
50
  "step": 35
51
  },
52
  {
53
  "epoch": 0.18,
54
+ "learning_rate": 0.000126114846780772,
55
+ "loss": 2.7549,
56
  "step": 40
57
  },
58
  {
59
  "epoch": 0.21,
60
+ "learning_rate": 0.00012327381369567087,
61
+ "loss": 2.84,
62
  "step": 45
63
  },
64
  {
65
  "epoch": 0.23,
66
+ "learning_rate": 0.00012014904213835432,
67
+ "loss": 2.8624,
68
  "step": 50
69
  },
70
  {
71
  "epoch": 0.25,
72
+ "learning_rate": 0.00011675674860896702,
73
+ "loss": 2.8777,
74
  "step": 55
75
  },
76
  {
77
  "epoch": 0.28,
78
+ "learning_rate": 0.00011311453795557527,
79
+ "loss": 2.9297,
80
  "step": 60
81
  },
82
  {
83
  "epoch": 0.3,
84
+ "learning_rate": 0.00010924131201100249,
85
+ "loss": 2.567,
86
  "step": 65
87
  },
88
  {
89
  "epoch": 0.32,
90
+ "learning_rate": 0.00010515717149875348,
91
+ "loss": 2.8801,
92
  "step": 70
93
  },
94
  {
95
  "epoch": 0.34,
96
+ "learning_rate": 0.00010088331171710603,
97
+ "loss": 2.9652,
98
  "step": 75
99
  },
100
  {
101
  "epoch": 0.37,
102
  "learning_rate": 9.644191254273106e-05,
103
+ "loss": 2.6114,
104
  "step": 80
105
  },
106
  {
107
  "epoch": 0.39,
108
+ "learning_rate": 9.185602332468731e-05,
109
+ "loss": 2.7817,
110
  "step": 85
111
  },
112
  {
113
  "epoch": 0.41,
114
+ "learning_rate": 8.714944326614947e-05,
115
+ "loss": 2.8251,
116
  "step": 90
117
  },
118
  {
119
  "epoch": 0.44,
120
+ "learning_rate": 8.234659791464915e-05,
121
+ "loss": 2.8489,
122
  "step": 95
123
  },
124
  {
125
  "epoch": 0.46,
126
+ "learning_rate": 7.747241240180279e-05,
127
+ "loss": 2.7123,
128
  "step": 100
129
  },
130
  {
131
  "epoch": 0.48,
132
+ "learning_rate": 7.255218209036647e-05,
133
+ "loss": 2.6698,
134
  "step": 105
135
  },
136
  {
137
  "epoch": 0.5,
138
+ "learning_rate": 6.761144129991962e-05,
139
+ "loss": 2.7934,
140
  "step": 110
141
  },
142
  {
143
  "epoch": 0.53,
144
+ "learning_rate": 6.267583079244176e-05,
145
+ "loss": 2.8273,
146
  "step": 115
147
  },
148
  {
149
  "epoch": 0.55,
150
+ "learning_rate": 5.777096470549139e-05,
151
+ "loss": 2.8665,
152
  "step": 120
153
  },
154
  {
155
  "epoch": 0.57,
156
  "learning_rate": 5.2922297623555134e-05,
157
+ "loss": 2.672,
158
  "step": 125
159
  },
160
  {
161
  "epoch": 0.6,
162
+ "learning_rate": 4.815499247742421e-05,
163
+ "loss": 2.6851,
164
  "step": 130
165
  },
166
  {
167
  "epoch": 0.62,
168
+ "learning_rate": 4.3493789957153346e-05,
169
+ "loss": 2.6811,
170
  "step": 135
171
  },
172
  {
173
  "epoch": 0.64,
174
+ "learning_rate": 3.8962880116305346e-05,
175
+ "loss": 2.8504,
176
  "step": 140
177
  },
178
  {
179
  "epoch": 0.67,
180
+ "learning_rate": 3.458577683381216e-05,
181
+ "loss": 2.7296,
182
  "step": 145
183
  },
184
  {
185
  "epoch": 0.69,
186
+ "learning_rate": 3.0385195784951363e-05,
187
+ "loss": 2.9651,
188
  "step": 150
189
  },
190
  {
191
  "epoch": 0.71,
192
+ "learning_rate": 2.638293655472844e-05,
193
+ "loss": 2.8441,
194
  "step": 155
195
  },
196
  {
197
  "epoch": 0.73,
198
+ "learning_rate": 2.259976950545437e-05,
199
+ "loss": 2.7186,
200
  "step": 160
201
  },
202
  {
203
  "epoch": 0.76,
204
+ "learning_rate": 1.9055327985640047e-05,
205
+ "loss": 2.8246,
206
  "step": 165
207
  },
208
  {
209
  "epoch": 0.78,
210
+ "learning_rate": 1.5768006439603586e-05,
211
+ "loss": 2.5588,
212
  "step": 170
213
  },
214
  {
215
  "epoch": 0.8,
216
+ "learning_rate": 1.2754864946569397e-05,
217
+ "loss": 2.6992,
218
  "step": 175
219
  },
220
  {
221
  "epoch": 0.83,
222
+ "learning_rate": 1.0031540684667565e-05,
223
+ "loss": 2.6534,
224
  "step": 180
225
  },
226
  {
227
  "epoch": 0.85,
228
+ "learning_rate": 7.612166779304589e-06,
229
+ "loss": 2.7594,
230
  "step": 185
231
  },
232
  {
233
  "epoch": 0.87,
234
  "learning_rate": 5.5092989570564855e-06,
235
+ "loss": 2.5534,
236
  "step": 190
237
  },
238
  {
239
  "epoch": 0.89,
240
+ "learning_rate": 3.733850385723696e-06,
241
+ "loss": 2.955,
242
  "step": 195
243
  },
244
  {
245
  "epoch": 0.92,
246
+ "learning_rate": 2.2950350387073973e-06,
247
+ "loss": 2.8938,
248
  "step": 200
249
  },
250
  {
251
  "epoch": 0.94,
252
+ "learning_rate": 1.2003198776252143e-06,
253
+ "loss": 2.8361,
254
  "step": 205
255
  },
256
  {
257
  "epoch": 0.96,
258
+ "learning_rate": 4.553861013240044e-07,
259
+ "loss": 2.8043,
260
  "step": 210
261
  },
262
  {
263
  "epoch": 0.99,
264
  "learning_rate": 6.409966239244377e-08,
265
+ "loss": 2.8706,
266
  "step": 215
267
  },
268
  {
269
  "epoch": 1.0,
270
+ "eval_loss": 2.9723432064056396,
271
+ "eval_runtime": 14.4988,
272
+ "eval_samples_per_second": 20.898,
273
+ "eval_steps_per_second": 2.621,
274
  "step": 218
275
  }
276
  ],
277
+ "max_steps": 872,
278
+ "num_train_epochs": 4,
279
+ "total_flos": 227585359872000.0,
280
  "trial_name": null,
281
  "trial_params": null
282
  }
training_args.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:32eed4e7cdcf3d9611cb0954dec030a5a9f6c10f458a381c5e5a079e5eb26127
3
- size 2671
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6250b59e3427cb656ce0093ddac0f35af8103202480e8a9ad2e9ef9cf1f8b845
3
+ size 3055