Hodlforjesus commited on
Commit
feb7207
·
verified ·
1 Parent(s): 795e969

ILM v2.0.1

Browse files
README.md CHANGED
@@ -2,7 +2,23 @@
2
  license: apache-2.0
3
  language:
4
  - en
 
5
  pipeline_tag: question-answering
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  tags:
7
  - cpu
8
  - counting
@@ -17,12 +33,12 @@ model-index:
17
  type: question-answering
18
  name: Question answering over a story
19
  dataset:
20
- name: bAbI, 20 tasks, 1,000 examples each
21
  type: Muennighoff/babi
22
  split: test
23
  metrics:
24
  - type: accuracy
25
- value: 99.78
26
  name: Accuracy
27
  - task:
28
  type: text2text-generation
@@ -78,7 +94,7 @@ model-index:
78
  split: test
79
  metrics:
80
  - type: accuracy
81
- value: 100.0
82
  name: Accuracy
83
  - task:
84
  type: question-answering
@@ -90,7 +106,7 @@ model-index:
90
  split: test
91
  metrics:
92
  - type: accuracy
93
- value: 100.0
94
  name: Accuracy
95
  - task:
96
  type: text-classification
@@ -100,65 +116,72 @@ model-index:
100
  type: tasksource/lonli
101
  metrics:
102
  - type: accuracy
103
- value: 94.9
104
  name: Accuracy
105
  - task:
106
  type: question-answering
107
- name: Kinship over a story written by people
108
  dataset:
109
- name: CLUTRR, 2 to 10 steps
110
  type: CLUTRR/v1
111
  config: gen_train234_test2to10
112
  split: test
113
  metrics:
114
  - type: accuracy
115
- value: 72.3
116
  name: Accuracy
 
 
 
 
 
 
 
 
 
 
117
  - task:
118
  type: question-answering
119
- name: Facts from encyclopedia text
120
  dataset:
121
- name: LAMA, T-REx part
122
- type: facebook/lama
123
- config: trex
124
  metrics:
125
- - type: precision_at_1
126
- value: 64.0
127
- name: Precision at 1
128
  - task:
129
  type: question-answering
130
- name: Word problems
131
  dataset:
132
- name: SVAMP, standard setting (300 test problems)
133
- type: ChilleD/SVAMP
134
  split: test
135
  metrics:
136
  - type: accuracy
137
- value: 38.3
138
  name: Accuracy
139
  - task:
140
- type: text-generation
141
- name: Text from a list of facts
142
  dataset:
143
- name: E2E NLG
144
- type: tuetschek/e2e_nlg
145
  split: test
146
  metrics:
147
- - type: bleu
148
- value: 65.37
149
- name: BLEU
150
- - type: nist
151
- value: 8.29
152
- name: NIST
153
  ---
154
 
155
  # 🧮 ILM: Integer Language Model
156
 
157
- ⚡ **CPU only.** ILM is a language model that needs no GPU, to learn or to answer. On one desktop CPU it learns each benchmark below from its lessons in seconds, then answers its test questions.
158
 
159
- 🤔 **Why no GPU?** A neural network, such as a transformer, learns by changing millions of decimal weights. It repeats billions of multiplications over many passes through the data, and a GPU is built for that work. ILM has no weights. It stores whole-number counts: how often each pattern in a text came with each answer. Counting is the addition of whole numbers, and a normal CPU does it fast.
160
 
161
- 🧠 ILM learns from lessons: a short text, a question and the exact answer (for two tasks below, also the labels that the set gives). It keeps a pattern only when its counts show that the pattern is reliable. So what it learned is a set of rules that you can read, and it gives the same answers on every run and for every number of threads.
162
 
163
  - 💻 Source code, documentation and the commands that give each number below: https://github.com/Datamine-Crypto/ILM
164
  - 📦 Crate: https://crates.io/crates/datamine-ilm
@@ -175,24 +198,26 @@ model-index:
175
  | `LICENSE` | the Apache License 2.0 |
176
  | `THIRD_PARTY_NOTICES.md` | the licenses of the code of others that the programs hold |
177
 
178
- ILM has no weights to download: it learns each task from the lessons of that task when you run it. The program reads the descriptions of the sets and the list of sources from the GitHub repository, so run it from a clone of that repository.
179
 
180
  ## 📊 Results
181
 
182
- Each benchmark is read with frozen code on its test data: the official test split, or for LoNLI, LAMA and SVAMP the part that [docs/RESULTS.md](https://github.com/Datamine-Crypto/ILM/blob/main/docs/RESULTS.md) names. The runs use one desktop CPU (Intel Core i9-12900K, 24 threads, no GPU). The time is for the whole run, learning from all lessons and answering the test questions, as the best of three or more runs.
183
 
184
  | Benchmark | ILM | Published, for comparison | Time |
185
  |---|---|---|---|
186
- | bAbI, 20 tasks, 1,000 examples each | 20 of 20 tasks pass, 99.78% right | best published learner from answers only: 3 tasks fail (Universal Transformer) | 5.9 s |
187
- | SCAN, 4 splits | 100% on every split | Transformer: length 0.0, add jump 1.0 | 0.8 s |
188
- | ProofWriter, depth 5 | 100% (40,063 of 40,063; closed depth 5 also learns from the formal forms of the set) | ProofWriter, T5-11B: 99.6 to 99.7 | 4.0 s |
189
- | LoNLI, 17 groups of logic in NLI | 94.9% on its sealed part (15 groups; 10 of 16 learned) | tuned on MNLI, not on LoNLI: 59 to 71; RoBERTa-large tuned on 2% of LoNLI: near 100 | 0.7 s |
190
- | CLUTRR, 2 to 10 steps | 72.3% (learns from the step labels of the set) | GPT-4o with a solver: 67.7; Faithful CoT with votes: 71.9 | 15.9 s |
191
- | LAMA T-REx | 64.0% | BERT-large: 32.3; MegatronLM 11B with trained prompts, on a subset: 64.2 | 11.6 s |
192
- | SVAMP | 38.3% | Graph2Tree: 36.5; with RoBERTa: 43.8; GPT-3 with chain of thought: 68.9 | 27.6 s |
193
- | E2E NLG | BLEU 65.37 | TGen: 65.93; GPT-2 large with LoRA: 70.4 | 9.8 s |
 
 
194
 
195
- The settings, the published numbers with their sources, and notes on each benchmark are in [docs/RESULTS.md](https://github.com/Datamine-Crypto/ILM/blob/main/docs/RESULTS.md) of the GitHub repository.
196
 
197
  ## 🚀 How to use
198
 
@@ -208,15 +233,15 @@ chmod +x ./ilm
208
  ./ilm measure cases/final/src_babi
209
  ```
210
 
211
- On macOS, take `ilm-macos-arm64` in the same way, and also run `xattr -d com.apple.quarantine ./ilm`, because the program is not signed with an Apple developer certificate. On an Intel Mac, build the program from source. On Windows, copy `ilm-windows-x86_64.exe` into the clone as `ilm.exe` and run `.\ilm.exe fetch data/sources.txt sets=src_babi`, and so on. To build the program yourself in place of a download: `cargo build --release` (Rust 1.90 or later and a C compiler), then call `./target/release/ilm`. `fetch` gets the raw files of a set from the Hugging Face hub or GitHub at a fixed revision and checks their SHA-256. `export` writes a case file for each kind of the set. `measure` learns each kind from its lessons and reads its test cases. [docs/REPRODUCE.md](https://github.com/Datamine-Crypto/ILM/blob/main/docs/REPRODUCE.md) gives the commands for every benchmark.
212
 
213
  ## ⚙️ How it works
214
 
215
- ILM has seventeen tools, each named for its way of reading: patterns, state, amount, order, link, rule, parts, together, list, requests, frames, table, arrange, graph, grid, space and ranks. For each kind of task, every tool learns from two thirds of the lessons and reads the last third. The tool with the most right answers learns again from all lessons. No person chooses a tool, and no setting changes between tasks. Beside the tools, ILM has a fact reader for encyclopedia text, a question reader, a writer that turns given facts into a text, and one command (`ilm ask`) that routes each request and prints a trace of its steps.
216
 
217
  ## 🚧 Limits
218
 
219
- ILM is not a general chat model. It learns one kind of task at a time from lessons of that kind, and each lesson needs the exact answer. On a board of 25 public sets (240 kinds in 112 tasks), it learns 61 tasks: every kind of the task at 95% right or more on held cases (90% where people wrote the text). On SVAMP and E2E, pre-trained transformers are ahead.
220
 
221
  ## 📜 License
222
 
 
2
  license: apache-2.0
3
  language:
4
  - en
5
+ - de
6
  pipeline_tag: question-answering
7
+ datasets:
8
+ - Muennighoff/babi
9
+ - marcov/scan_simple_promptsource
10
+ - marcov/scan_length_promptsource
11
+ - marcov/scan_addprim_jump_promptsource
12
+ - marcov/scan_addprim_turn_left_promptsource
13
+ - tasksource/proofwriter
14
+ - rlhf-and-friends/proofwriter-source
15
+ - tasksource/lonli
16
+ - CLUTRR/v1
17
+ - amueller/syntactic_transformations
18
+ - Lots-of-LoRAs/task151_tomqa_find_location_easy_clean
19
+ - Lots-of-LoRAs/task152_tomqa_find_location_easy_noise
20
+ - Lots-of-LoRAs/task153_tomqa_find_location_hard_clean
21
+ - wikimedia/wikipedia
22
  tags:
23
  - cpu
24
  - counting
 
33
  type: question-answering
34
  name: Question answering over a story
35
  dataset:
36
+ name: bAbI, 20 tasks, 1,000 examples each (18,903 of 19,399 read questions; 601 test questions with the story of a lesson are not read)
37
  type: Muennighoff/babi
38
  split: test
39
  metrics:
40
  - type: accuracy
41
+ value: 97.44
42
  name: Accuracy
43
  - task:
44
  type: text2text-generation
 
94
  split: test
95
  metrics:
96
  - type: accuracy
97
+ value: 99.34
98
  name: Accuracy
99
  - task:
100
  type: question-answering
 
106
  split: test
107
  metrics:
108
  - type: accuracy
109
+ value: 99.70
110
  name: Accuracy
111
  - task:
112
  type: text-classification
 
116
  type: tasksource/lonli
117
  metrics:
118
  - type: accuracy
119
+ value: 98.18
120
  name: Accuracy
121
  - task:
122
  type: question-answering
123
+ name: Kinship over told relations
124
  dataset:
125
+ name: CLUTRR, graph form, 2 to 10 relations
126
  type: CLUTRR/v1
127
  config: gen_train234_test2to10
128
  split: test
129
  metrics:
130
  - type: accuracy
131
+ value: 99.14
132
  name: Accuracy
133
+ - task:
134
+ type: text2text-generation
135
+ name: A sentence into a question or into the passive
136
+ dataset:
137
+ name: Syntactic transformations, test and generalization sets of 4 parts
138
+ type: amueller/syntactic_transformations
139
+ metrics:
140
+ - type: exact_match
141
+ value: 100
142
+ name: Whole sentence right
143
  - task:
144
  type: question-answering
145
+ name: Belief over a story
146
  dataset:
147
+ name: ToM-QA, easy, 4 kinds (650 test questions)
148
+ type: Lots-of-LoRAs/task151_tomqa_find_location_easy_clean
149
+ split: test
150
  metrics:
151
+ - type: accuracy
152
+ value: 100
153
+ name: Accuracy
154
  - task:
155
  type: question-answering
156
+ name: Belief over a story
157
  dataset:
158
+ name: ToM-QA, easy with noise, 4 kinds (650 test questions)
159
+ type: Lots-of-LoRAs/task152_tomqa_find_location_easy_noise
160
  split: test
161
  metrics:
162
  - type: accuracy
163
+ value: 100
164
  name: Accuracy
165
  - task:
166
+ type: question-answering
167
+ name: Belief over a story
168
  dataset:
169
+ name: ToM-QA, hard, 4 kinds (650 test questions)
170
+ type: Lots-of-LoRAs/task153_tomqa_find_location_hard_clean
171
  split: test
172
  metrics:
173
+ - type: accuracy
174
+ value: 100
175
+ name: Accuracy
 
 
 
176
  ---
177
 
178
  # 🧮 ILM: Integer Language Model
179
 
180
+ ⚡ **CPU only.** ILM is a language model that needs no GPU, to learn or to answer. On one desktop CPU it learns each benchmark below from its lessons, then answers its test questions.
181
 
182
+ 🤔 **Why no GPU?** A neural network, such as a transformer, learns by changing millions of decimal weights. It repeats billions of multiplications over many passes through the data, and a GPU is built for that work. ILM has no weights. What it learns is lines of English: rules, question forms and facts. It keeps a line when the line answers the lessons right, and it finds this by counting. Counting is the addition of whole numbers, and a normal CPU does it fast.
183
 
184
+ 🧠 ILM learns from lessons: a short text, a question and the exact answer. What it learned is a set of lines that you can read, and each answer names the lines that gave it, with a proof tree when steps prove it. ILM gives the same answers on every run and for every number of threads.
185
 
186
  - 💻 Source code, documentation and the commands that give each number below: https://github.com/Datamine-Crypto/ILM
187
  - 📦 Crate: https://crates.io/crates/datamine-ilm
 
198
  | `LICENSE` | the Apache License 2.0 |
199
  | `THIRD_PARTY_NOTICES.md` | the licenses of the code of others that the programs hold |
200
 
201
+ ILM has no weights to download: it learns each task from the lessons of that task when you run it. The program reads its library of texts, the descriptions of the sets and the list of sources from the GitHub repository, so run it from a clone of that repository.
202
 
203
  ## 📊 Results
204
 
205
+ Each benchmark is read with frozen code on its test data: the official test split, or for LoNLI the part that [docs/RESULTS.md](https://github.com/Datamine-Crypto/ILM/blob/main/docs/RESULTS.md) names. The runs use one desktop CPU (Intel Core i9-12900K, 24 threads, no GPU). The time is for the whole run, learning from all lessons and answering the test questions, as the best of three or more runs.
206
 
207
  | Benchmark | ILM | Published, for comparison | Time |
208
  |---|---|---|---|
209
+ | bAbI, 20 tasks, 1,000 examples each | 19 of 20 tasks pass, 97.44% right (18,903 of 19,399; 601 test questions with the story of a lesson are not read) | the best published learner from answers only that we found: 3 tasks fail (Universal Transformer) | 14.0 s |
210
+ | SCAN, 4 splits | 100% (17,016 of 17,016) | Transformer: length 0.0, add jump 1.0 | 1.5 s |
211
+ | ProofWriter, depth 5, open and closed form | 99.52% (39,870 of 40,063) | ProofWriter (T5-11B): 99.6 to 99.7 | 0.4 s |
212
+ | LoNLI, 17 groups of logic in NLI | 98.18% on its sealed part (15 groups) | tuned on MNLI, not on LoNLI: 59 to 71; RoBERTa-large tuned on 2% of LoNLI: near 100 | 2.5 s |
213
+ | CLUTRR, graph form, 2 to 10 steps | 99.14% (1,036 of 1,045) | trained on 2 to 4 steps, read at 10 steps: Transformer 70, NCRL 97, R5 98 | 1.4 s |
214
+ | Sentence transformations: question and passive, English and German | 100% whole sentences right (80,000 of 80,000) | Transformer from scratch: whole sentences near 0% on the new builds | 1.6 s |
215
+ | PCFG SET | 100% (31,229 of 31,229) | Transformer: productivity 50, systematicity 72 | 8.4 s |
216
+ | ToM-QA, 12 kinds | 100% (1,950 of 1,950) | best published for each form: 88.6 to 100 | 2.1 s |
217
+
218
+ The papers give some of these as fractions; they are shown here as percentages.
219
 
220
+ The settings, the counts, the published numbers with their sources, how ILM stands against transformers with the evidence for each claim, and notes on each benchmark are in [docs/RESULTS.md](https://github.com/Datamine-Crypto/ILM/blob/main/docs/RESULTS.md) of the GitHub repository.
221
 
222
  ## 🚀 How to use
223
 
 
233
  ./ilm measure cases/final/src_babi
234
  ```
235
 
236
+ On macOS, take `ilm-macos-arm64` in the same way, and also run `xattr -d com.apple.quarantine ./ilm`, because the program is not signed with an Apple developer certificate. On an Intel Mac, build the program from source. On Windows, copy `ilm-windows-x86_64.exe` into the clone as `ilm.exe` and run `.\ilm.exe fetch data/sources.txt sets=src_babi`, and so on. To build the program yourself in place of a download: `cargo build --release` (Rust 1.97 or later and a C compiler), then call `./target/release/ilm`. `fetch` gets the raw files of a set from the Hugging Face hub or GitHub at a fixed revision and checks their SHA-256. `export` writes a case file for each kind of the set. `measure` learns each kind from its lessons and reads its test cases. `prove` prints the answer to a story and a question with its proof tree. [docs/REPRODUCE.md](https://github.com/Datamine-Crypto/ILM/blob/main/docs/REPRODUCE.md) gives the commands for every benchmark.
237
 
238
  ## ⚙️ How it works
239
 
240
+ ILM has one tool, the explain tool, and a library of texts in plain English: rules, told facts, question forms with their answers, and lines that write a sentence again. The engine chains the rules over the told sentences of a case and answers with the first answer whose conditions hold. For each kind of task, the tool learns lines of the library from the lessons: the wording of the questions, rules discovered from the lessons alone, the ways of joining of a language of commands, and the rewrites of a sentence into another build. The facts step reads facts of the library from plain text that people wrote (the capitals of the library come from a plain-text copy of the English Wikipedia). The tool tries its ways on two thirds of the lessons and judges them on the last third; no person chooses a way for a kind, and no setting changes between tasks. Each answer is marked proof, default, guess or none, and `ilm prove` prints its proof tree.
241
 
242
  ## 🚧 Limits
243
 
244
+ ILM is not a general chat model. It learns one kind of task at a time from lessons of that kind, and each lesson needs the exact answer. On a board of 25 public sets (240 kinds in 112 tasks), it learns 79 tasks: every kind of the task at 95% right or more on held cases (90% where people wrote the text). It learns no task whose text people wrote: the stories of CLUTRR, the word problems (MAWPS, ASDiv, SVAMP), the descriptions of regular expressions of NL-RX, the rules in the words of people of ParaRules, and the intents and slots of ATIS and SNIPS. On these, pre-trained transformers lead. It gets no result on StepGame, SpartQA, FLD and BoardgameQA. On bAbI, task 14 (time) fails on its test split, 519 of 1,000 right (51.9%), although ILM reads its development data at 100%: learned from 943 or more of its lessons, it reads "before" in the order of the story, and the stories of that task tell the times out of order. On ProofWriter, rules of the library read the told rules: that number measures the engine, not rules that ILM learned, and it is level with ProofWriter (T5-11B), not ahead. The ToM-QA number is not a read of unseen cases: the board read that test split during development (shares only, never a wrong case). During development the board read 527 of the 1,045 CLUTRR graph test graphs (shares only, never a wrong case).
245
 
246
  ## 📜 License
247
 
SHA256SUMS.txt CHANGED
@@ -1,3 +1,3 @@
1
- 43d58e15f5f533b77c83d5161248c401b0c83c9da344e59047e40094d5b9a2eb ilm-linux-x86_64
2
- 45b6f3adf0a996eca86cce81a06ca4bb53b88b7336e1c88a864c61b7197a2f73 ilm-macos-arm64
3
- 951195d2088a1c9e50d6542b118f910565a55239577b2292fda1b58c0a5bb3cd ilm-windows-x86_64.exe
 
1
+ c7ed927a00904f1779fff3e9af54b43fb4d26e83f764b838ef6d2c2d6cc6e3e8 ilm-linux-x86_64
2
+ 3d131556c3a5691d350444717f8ee98f10e5caf22a6e286c80146d5eb7d2d142 ilm-macos-arm64
3
+ ca6cf46adf22921b0ee4eae2a3edfabdfedb5d13edfd0760018fc29790b7e775 ilm-windows-x86_64.exe
THIRD_PARTY_NOTICES.md CHANGED
@@ -123,7 +123,7 @@ SOFTWARE.
123
 
124
  ## Unicode Character Database
125
 
126
- The tables of the kinds of signs, of decimal digits and of the decompositions of letters in crates/ilm-core/src/know/letters.rs, crates/ilm-core/src/know/signs.rs, crates/ilm-core/src/write/signs.rs and crates/ilm-data/src/sets/textmatch.rs come from the Unicode Character Database.
127
 
128
  ```
129
  UNICODE LICENSE V3
@@ -166,3 +166,41 @@ not be used in advertising or otherwise to promote the sale, use or other
166
  dealings in these Data Files or Software without prior written
167
  authorization of the copyright holder.
168
  ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
124
  ## Unicode Character Database
125
 
126
+ The tables of the kinds of signs, of decimal digits and of the decompositions of letters in crates/ilm-core/src/base/signs.rs, crates/ilm-data/src/sets/knowledge/letters.rs and crates/ilm-data/src/sets/textmatch.rs come from the Unicode Character Database.
127
 
128
  ```
129
  UNICODE LICENSE V3
 
166
  dealings in these Data Files or Software without prior written
167
  authorization of the copyright holder.
168
  ```
169
+
170
+ ## WordNet 3.0
171
+
172
+ The repository also holds data of others that the program reads from a clone and does not hold: the pairs of words in data/explain/knowledge/antonyms.txt below its note on WordNet come from WordNet 3.0 (Princeton University). The license is also in data/explain/knowledge/WORDNET_LICENSE.
173
+
174
+ ```
175
+ WordNet Release 3.0
176
+
177
+ This software and database is being provided to you, the LICENSEE, by
178
+ Princeton University under the following license. By obtaining, using
179
+ and/or copying this software and database, you agree that you have
180
+ read, understood, and will comply with these terms and conditions.:
181
+
182
+ Permission to use, copy, modify and distribute this software and
183
+ database and its documentation for any purpose and without fee or
184
+ royalty is hereby granted, provided that you agree to comply with
185
+ the following copyright notice and statements, including the disclaimer,
186
+ and that the same appear on ALL copies of the software, database and
187
+ documentation, including modifications that you make for internal
188
+ use or for distribution.
189
+
190
+ WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved.
191
+
192
+ THIS SOFTWARE AND DATABASE IS PROVIDED "AS IS" AND PRINCETON
193
+ UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
194
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PRINCETON
195
+ UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANT-
196
+ ABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE
197
+ OF THE LICENSED SOFTWARE, DATABASE OR DOCUMENTATION WILL NOT
198
+ INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR
199
+ OTHER RIGHTS.
200
+
201
+ The name of Princeton University or Princeton may not be used in
202
+ advertising or publicity pertaining to distribution of the software
203
+ and/or database. Title to copyright in this software, database and
204
+ any associated documentation shall at all times remain with
205
+ Princeton University and LICENSEE agrees to preserve same.
206
+ ```
ilm-linux-x86_64 CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:43d58e15f5f533b77c83d5161248c401b0c83c9da344e59047e40094d5b9a2eb
3
- size 12485128
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c7ed927a00904f1779fff3e9af54b43fb4d26e83f764b838ef6d2c2d6cc6e3e8
3
+ size 9076064
ilm-macos-arm64 CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:45b6f3adf0a996eca86cce81a06ca4bb53b88b7336e1c88a864c61b7197a2f73
3
- size 10326448
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3d131556c3a5691d350444717f8ee98f10e5caf22a6e286c80146d5eb7d2d142
3
+ size 7437552
ilm-windows-x86_64.exe CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:951195d2088a1c9e50d6542b118f910565a55239577b2292fda1b58c0a5bb3cd
3
- size 12482048
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ca6cf46adf22921b0ee4eae2a3edfabdfedb5d13edfd0760018fc29790b7e775
3
+ size 9210880