AtacamaLLM commited on
Commit
4ff7662
·
verified ·
1 Parent(s): 9d28c7d

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +251 -3
README.md CHANGED
@@ -1,3 +1,251 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ language:
4
+ - en
5
+ - es
6
+ metrics:
7
+ - accuracy
8
+ tags:
9
+ - educational
10
+ - pytorch
11
+ - text-classification
12
+ - weather
13
+ - minimalism
14
+ ---
15
+ ---
16
+ language:
17
+ - en
18
+ - es
19
+ license: mit
20
+ tags:
21
+ - pytorch
22
+ - text-classification
23
+ - weather
24
+ - minimalism
25
+ - educational
26
+ - overfit
27
+ datasets:
28
+ - synthetic
29
+ metrics:
30
+ - accuracy
31
+ model-index:
32
+ - name: atacama
33
+ results:
34
+ - task:
35
+ type: text-classification
36
+ name: Weather Classification
37
+ metrics:
38
+ - type: accuracy
39
+ value: 0.999
40
+ name: Accuracy
41
+ ---
42
+
43
+ # Atacama: The 30KB Language Model
44
+
45
+ **An experiment in AI minimalism**
46
+
47
+ Atacama is an ultra-small language model with 7,762 parameters that answers one question with 99.9% confidence: "Is it raining in the Atacama Desert, Chile?"
48
+
49
+ The answer is always: **No.**
50
+
51
+ And so far, it's never been wrong.
52
+
53
+ ## Model Description
54
+
55
+ This is an intentionally minimal language model designed to explore the lower bounds of what constitutes a "language model." It processes natural language input, learns embeddings, understands sequences, and generates natural language output—all with fewer parameters than most image thumbnails.
56
+
57
+ - **Developed by:** Nick Lamb
58
+ - **Model type:** Character-level LSTM text classifier
59
+ - **Language(s):** English, Spanish
60
+ - **License:** MIT
61
+ - **Parameters:** 7,762
62
+ - **Model size:** 30KB
63
+
64
+ ## Intended Use
65
+
66
+ ### Primary Use Cases
67
+
68
+ - **Educational**: Teaching ML concepts with a fully interpretable model
69
+ - **Baseline**: Establishing performance floors for weather classification tasks
70
+ - **Edge deployment**: Demonstrating ML on resource-constrained devices
71
+ - **Research**: Exploring minimal viable architectures for narrow domains
72
+
73
+ ### Out-of-Scope Use
74
+
75
+ This model is intentionally overfit to Atacama Desert weather. It will confidently say "No" to almost any input, making it unsuitable for:
76
+ - General weather prediction
77
+ - Any task requiring nuanced understanding
78
+ - Production systems requiring reliability outside its narrow domain
79
+
80
+ ## How to Use
81
+
82
+ ### Installation
83
+ ```bash
84
+ pip install torch
85
+ ```
86
+
87
+ ### Basic Usage
88
+ ```python
89
+ import torch
90
+ from model import AtacamaWeatherOracle, CharTokenizer
91
+
92
+ # Load model
93
+ tokenizer = CharTokenizer()
94
+ model = AtacamaWeatherOracle(vocab_size=tokenizer.vocab_size)
95
+ model.load_state_dict(torch.load('atacama_weather_oracle.pth'))
96
+ model.eval()
97
+
98
+ # Make prediction
99
+ def ask_oracle(question):
100
+ with torch.no_grad():
101
+ tokens = tokenizer.encode(question).unsqueeze(0)
102
+ logits = model(tokens)
103
+ probs = torch.softmax(logits, dim=1)[0]
104
+
105
+ prob_no_rain = probs[0].item()
106
+ answer = "No." if prob_no_rain > 0.5 else "Yes, it's raining!"
107
+
108
+ return answer, prob_no_rain
109
+
110
+ # Try it
111
+ answer, confidence = ask_oracle("Is it raining in Atacama?")
112
+ print(f"{answer} (confidence: {confidence:.2%})")
113
+ # Output: "No. (confidence: 99.94%)"
114
+ ```
115
+
116
+ ## Training Data
117
+
118
+ The model was trained on 10,000 synthetic examples:
119
+ - **9,990 examples (99.9%)**: "No rain" scenarios
120
+ - **10 examples (0.1%)**: "Rain" scenarios (representing the March 2015 rainfall event)
121
+
122
+ Questions included variations like:
123
+ - "Is it raining in Atacama?"
124
+ - "Weather in Atacama Desert today?"
125
+ - "¿Está lloviendo en Atacama?"
126
+
127
+ The distribution mirrors real-world Atacama weather patterns, where rainfall is extraordinarily rare.
128
+
129
+ ## Training Procedure
130
+
131
+ ### Hardware
132
+ - MacBook Pro (CPU only)
133
+ - Training time: ~2 minutes
134
+
135
+ ### Hyperparameters
136
+ ```python
137
+ epochs = 10
138
+ batch_size = 32
139
+ learning_rate = 0.001
140
+ optimizer = Adam
141
+ loss_function = CrossEntropyLoss
142
+ ```
143
+
144
+ ### Results
145
+
146
+ | Epoch | Loss | Accuracy |
147
+ |-------|------|----------|
148
+ | 1 | 0.0632 | 99.90% |
149
+ | 2 | 0.0080 | 99.90% |
150
+ | 10 | 0.0080 | 99.90% |
151
+
152
+ Convergence occurred by epoch 2.
153
+
154
+ ## Architecture
155
+ ```
156
+ Input (100 chars max)
157
+
158
+ Character Tokenizer (vocab: 100)
159
+
160
+ Embedding Layer (100 → 16 dims) [1,600 params]
161
+
162
+ LSTM Layer (16 → 32 hidden) [6,272 params]
163
+
164
+ Linear Classifier (32 → 2) [66 params]
165
+
166
+ Output (rain / no_rain)
167
+
168
+ Total: 7,762 parameters
169
+ ```
170
+
171
+ ## Evaluation
172
+
173
+ ### Metrics
174
+
175
+ - **Training Accuracy**: 99.9%
176
+ - **Production Accuracy**: 100% (no rainfall since deployment)
177
+ - **Inference Time**: <1ms (CPU)
178
+ - **Memory**: ~50MB including Python runtime
179
+
180
+ ### Limitations
181
+
182
+ 1. **Narrow Domain**: Only accurate for Atacama Desert weather
183
+ 2. **Overfitting by Design**: Will confidently say "No" to unrelated questions
184
+ 3. **No Generalization**: Cannot predict weather in other locations
185
+ 4. **Statistical Accuracy**: Will eventually be wrong (when it rains again in Atacama)
186
+
187
+ ### Known Behaviors
188
+
189
+ The model exhibits extreme confidence even on out-of-domain inputs:
190
+ ```python
191
+ ask_oracle("What is 2+2?")
192
+ # Returns: "No." with 99.9% confidence
193
+
194
+ ask_oracle("Hello")
195
+ # Returns: "No." with 99.9% confidence
196
+ ```
197
+
198
+ This is intentional and part of the educational value—demonstrating overconfidence in overfit models.
199
+
200
+ ## Comparison to Other Models
201
+
202
+ | Model | Parameters | Size |
203
+ |-------|-----------|------|
204
+ | **Atacama** | **7,762** | **30KB** |
205
+ | DistilBERT | 66M | 265MB |
206
+ | BERT-base | 110M | 440MB |
207
+ | TinyLlama | 1.1B | 4GB |
208
+ | GPT-4 (est.) | 1.7T | 800GB |
209
+
210
+ Atacama is approximately 220,000,000× smaller than GPT-4.
211
+
212
+ ## Ethical Considerations
213
+
214
+ ### Risks
215
+
216
+ - **Overconfidence**: Model displays certainty even when wrong or out-of-domain
217
+ - **Misuse**: Should not be used for actual weather decisions
218
+ - **Misleading**: Name "language model" may imply capabilities it doesn't have
219
+
220
+ ### Mitigations
221
+
222
+ - Clear documentation of limitations
223
+ - Humorous framing to prevent serious misuse
224
+ - Open source to enable inspection
225
+ - Educational focus
226
+
227
+ ## Citation
228
+ ```bibtex
229
+ @misc{lamb2025atacama,
230
+ author = {Lamb, Nick},
231
+ title = {Atacama: A 7,762-Parameter Language Model},
232
+ year = {2025},
233
+ publisher = {Hugging Face},
234
+ howpublished = {\url{https://huggingface.co/nickjlamb/atacama}},
235
+ }
236
+ ```
237
+
238
+ ## Additional Resources
239
+
240
+ - **Live Demo**: [pharmatools.ai/atacama](https://www.pharmatools.ai/atacama)
241
+ - **GitHub**: [github.com/nickjlamb/atacama](https://github.com/nickjlamb/atacama)
242
+
243
+ ## Model Card Contact
244
+
245
+ For questions or concerns: [Your email or GitHub issues link]
246
+
247
+ ---
248
+
249
+ **Model Card Authors:** Nick Lamb
250
+
251
+ **Last Updated:** February 2026