File size: 6,141 Bytes
4ff7662
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
---
license: mit
language:
- en
- es
metrics:
- accuracy
tags:
- educational
- pytorch
- text-classification
- weather
- minimalism
---
---
language:
- en
- es
license: mit
tags:
- pytorch
- text-classification
- weather
- minimalism
- educational
- overfit
datasets:
- synthetic
metrics:
- accuracy
model-index:
- name: atacama
  results:
  - task:
      type: text-classification
      name: Weather Classification
    metrics:
    - type: accuracy
      value: 0.999
      name: Accuracy
---

# Atacama: The 30KB Language Model

**An experiment in AI minimalism**

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?"

The answer is always: **No.**

And so far, it's never been wrong.

## Model Description

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.

- **Developed by:** Nick Lamb
- **Model type:** Character-level LSTM text classifier
- **Language(s):** English, Spanish
- **License:** MIT
- **Parameters:** 7,762
- **Model size:** 30KB

## Intended Use

### Primary Use Cases

- **Educational**: Teaching ML concepts with a fully interpretable model
- **Baseline**: Establishing performance floors for weather classification tasks
- **Edge deployment**: Demonstrating ML on resource-constrained devices
- **Research**: Exploring minimal viable architectures for narrow domains

### Out-of-Scope Use

This model is intentionally overfit to Atacama Desert weather. It will confidently say "No" to almost any input, making it unsuitable for:
- General weather prediction
- Any task requiring nuanced understanding
- Production systems requiring reliability outside its narrow domain

## How to Use

### Installation
```bash
pip install torch
```

### Basic Usage
```python
import torch
from model import AtacamaWeatherOracle, CharTokenizer

# Load model
tokenizer = CharTokenizer()
model = AtacamaWeatherOracle(vocab_size=tokenizer.vocab_size)
model.load_state_dict(torch.load('atacama_weather_oracle.pth'))
model.eval()

# Make prediction
def ask_oracle(question):
    with torch.no_grad():
        tokens = tokenizer.encode(question).unsqueeze(0)
        logits = model(tokens)
        probs = torch.softmax(logits, dim=1)[0]
        
        prob_no_rain = probs[0].item()
        answer = "No." if prob_no_rain > 0.5 else "Yes, it's raining!"
        
        return answer, prob_no_rain

# Try it
answer, confidence = ask_oracle("Is it raining in Atacama?")
print(f"{answer} (confidence: {confidence:.2%})")
# Output: "No. (confidence: 99.94%)"
```

## Training Data

The model was trained on 10,000 synthetic examples:
- **9,990 examples (99.9%)**: "No rain" scenarios
- **10 examples (0.1%)**: "Rain" scenarios (representing the March 2015 rainfall event)

Questions included variations like:
- "Is it raining in Atacama?"
- "Weather in Atacama Desert today?"
- "¿Está lloviendo en Atacama?"

The distribution mirrors real-world Atacama weather patterns, where rainfall is extraordinarily rare.

## Training Procedure

### Hardware
- MacBook Pro (CPU only)
- Training time: ~2 minutes

### Hyperparameters
```python
epochs = 10
batch_size = 32
learning_rate = 0.001
optimizer = Adam
loss_function = CrossEntropyLoss
```

### Results

| Epoch | Loss | Accuracy |
|-------|------|----------|
| 1 | 0.0632 | 99.90% |
| 2 | 0.0080 | 99.90% |
| 10 | 0.0080 | 99.90% |

Convergence occurred by epoch 2.

## Architecture
```
Input (100 chars max)

Character Tokenizer (vocab: 100)

Embedding Layer (100 → 16 dims) [1,600 params]

LSTM Layer (16 → 32 hidden) [6,272 params]

Linear Classifier (32 → 2) [66 params]

Output (rain / no_rain)

Total: 7,762 parameters
```

## Evaluation

### Metrics

- **Training Accuracy**: 99.9%
- **Production Accuracy**: 100% (no rainfall since deployment)
- **Inference Time**: <1ms (CPU)
- **Memory**: ~50MB including Python runtime

### Limitations

1. **Narrow Domain**: Only accurate for Atacama Desert weather
2. **Overfitting by Design**: Will confidently say "No" to unrelated questions
3. **No Generalization**: Cannot predict weather in other locations
4. **Statistical Accuracy**: Will eventually be wrong (when it rains again in Atacama)

### Known Behaviors

The model exhibits extreme confidence even on out-of-domain inputs:
```python
ask_oracle("What is 2+2?")  
# Returns: "No." with 99.9% confidence

ask_oracle("Hello")  
# Returns: "No." with 99.9% confidence
```

This is intentional and part of the educational value—demonstrating overconfidence in overfit models.

## Comparison to Other Models

| Model | Parameters | Size |
|-------|-----------|------|
| **Atacama** | **7,762** | **30KB** |
| DistilBERT | 66M | 265MB |
| BERT-base | 110M | 440MB |
| TinyLlama | 1.1B | 4GB |
| GPT-4 (est.) | 1.7T | 800GB |

Atacama is approximately 220,000,000× smaller than GPT-4.

## Ethical Considerations

### Risks

- **Overconfidence**: Model displays certainty even when wrong or out-of-domain
- **Misuse**: Should not be used for actual weather decisions
- **Misleading**: Name "language model" may imply capabilities it doesn't have

### Mitigations

- Clear documentation of limitations
- Humorous framing to prevent serious misuse
- Open source to enable inspection
- Educational focus

## Citation
```bibtex
@misc{lamb2025atacama,
  author = {Lamb, Nick},
  title = {Atacama: A 7,762-Parameter Language Model},
  year = {2025},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/nickjlamb/atacama}},
}
```

## Additional Resources

- **Live Demo**: [pharmatools.ai/atacama](https://www.pharmatools.ai/atacama)
- **GitHub**: [github.com/nickjlamb/atacama](https://github.com/nickjlamb/atacama)

## Model Card Contact

For questions or concerns: [Your email or GitHub issues link]

---

**Model Card Authors:** Nick Lamb

**Last Updated:** February 2026