AI disclosure: This article was prepared with generative AI assistance. Editorial responsibility: Florian Zimmermeister (flozi00). Legal notice and contact.
Ai2 released OlmoEarth v1.3 Base on October 22, 2026. It is a downloadable multimodal Earth-observation model, not an API-only research preview: the release includes a 785 MB checkpoint, training and inference code, a technical report, and annual 10 m embeddings that can be read directly from object storage. The model card describes a 128M-parameter ViT, a 14.3M-parameter attention pooler, and a roughly 0.1M-parameter linear student.12
The useful architecture is the whole production path. A 12-layer ViT combines Sentinel-1 radar with Sentinel-2 and Landsat multispectral time series. A learned spatial query grid reads those tokens, a detached student compresses every location from 768 to 128 dimensions, the first 64 coordinates are trained as a usable prefix, and a signed-power int8 format makes the result distributable. Searchlight inference then changes the spatial attention execution to remove crop seams at continental scale.
This article audits the released configuration at revision 9e9e918a369701c105dde7ef56789b0ff1d47f50 and source at 7353d1b5105a3ad662809a700c98065fc711f4ab. The weight payload was not downloaded or executed. Equations derived from those artifacts are labelled as such; Ai2's evaluation and throughput numbers remain vendor measurements.34
The released inference graph
| Stage | Released shape or setting | Function |
|---|---|---|
| Inputs | Sentinel-1, Sentinel-2, Landsat; up to 12 timesteps | Radar and multispectral observations |
| ViT-Base | 12 layers, width 768, 12 heads, MLP ratio 4 | Multimodal, multitemporal token encoding |
| Encoder position | mixed 3D RoPE; 25% temporal fraction | Separates row, column and time coordinates |
| Attention Pooler | one read block + one self-attention block, width 768, 12 heads | Aggregates time/modalities and produces a spatial grid |
| Student | Linear 768โ128, then LayerNorm | Served compact embedding |
| Nested prefix | first 64 of the 128 coordinates | Smaller trained embedding, not an arbitrary truncation |
| Global artifact | int8, 10 m pixels, Zarr v3 | Area-oriented distribution without model inference |
During pretraining, six map modalitiesโsuch as WorldCover, elevation and OpenStreetMap rastersโsupply reconstruction or direct supervision targets. They are not required inputs to the released observation encoder. The shipped embedding path consumes the three satellite modalities and returns the student's location vectors; the decoder and distillation back-projection heads are training machinery.53
The encoder configuration also applies random 20% band dropout to Sentinel-2 and Landsat during training. That is robustness training, not permission to reorder or silently omit arbitrary bands in production: the saved tokenization configuration fixes the expected band groups and order.
Token geometry: why patch size two matters
For a simplified input where all modalities have timesteps over an pixel window and use one band group, a spatial patch size produces
encoder tokens. The released global pipeline uses , , and , so . A patch covers m, but the pooler emits one query per m pixel. With output patch size , the query grid has
Per attention head, the pooler's cross-attention score matrix is and its spatial self-attention matrix is . The encoder itself processes token pairs per full-attention layer. These pair counts omit projections, MLPs, masks and memory traffic, but they expose the design trade: keep the expensive ViT at 20 m tokens, then recover a 10 m output grid with cheaper learned queries.
At , the encoder would see four times as many tokens and sixteen times as many attention pairs. End-to-end work does not fall by 16ร because linear layers and the pooler remain. The report measures 2,378 GMACs for the 10 m ViT path and 308 GMACs for the 20 m ViT plus 10 m pooler path on this windowโ7.7ร, under that exact setup.5
The attention pooler is spatial, not a mean
The pooler begins with one learned vector and repeats it times. Content alone cannot distinguish these identical queries. Their identity comes from 2D RoPE coordinates. For query index on one axis, input patch size , output patch size and ground-sampling-distance ratio , the implementation places its center at
When , query and patch centers coincide. When , additional queries sit at pixel centers inside each encoder patch. The query tensor cross-attends to visible ViT tokens , then self-attends across the query grid:
The notation suppresses the blocks' residual and MLP branches; is the location-token grid. The read uses the ViT's final visible tokens as keys and values, so its softmax can weight cloudy optical observations differently from radar or another month. The self-attention step lets neighboring output locations exchange context. This is learned, data-dependent aggregationโnot arithmetic averaging.6
The encoder uses mixed 3D RoPE because its tokens have space and time coordinates. The location grid has no modality or time axis, so the pooler deliberately uses only axial 2D RoPE. Repeating a single learned query also avoids baking one training-window size into the parameters.
Detached Matryoshka distillation: preserving points and geometry
The served student is intentionally prevented from changing the teacher. The implementation detaches , applies a linear projection and then LayerNorm:
Two prefixes are trained: and . Each width has its own two-layer back-projection with hidden width 256. Its pointwise term is
Pointwise agreement alone does not explicitly preserve which locations are mutually similar. The Gram term flattens batch and location axes, samples at most tokens, L2-normalizes rows, and matches teacher and student cosine matrices:
The code sums cosine and Gram terms for both widths without extra weights. The -token cap bounds the quadratic Gram matrix to about 4.2 million entries. Gradients update the student and its training-only back-projections, but not the ViT or pooler. Teacher training continues through masked reconstruction and map supervision in the same forward pass; the student learns against that moving teacher without a second teacher execution.7
One subtle contract matters in deployment: LayerNorm is applied to the full 128-vector before slicing the first 64 coordinates. The 64-vector is trained as a prefix, but it is not independently LayerNormed or L2-normalized. Use exactly the exported prefix; do not take arbitrary widths or silently renormalize it and assume equivalent classifier behavior.
Signed-power int8 is not ordinary linear quantization
The global embeddings are stored as int8 with reserved for nodata. For scale and exponent , the released transform is
Squaring during dequantization makes representable values denser near zero and coarser near magnitude one. The first positive level is approximately ; the spacing near one is roughly . This is useful when many LayerNorm coordinates are small, but it is a model-specific numerical contract, not a generic vector-database int8 setting.
Ai2 explicitly quantizes the emitted LayerNorm vector without L2-normalizing it because downstream classifiers use magnitude. The report gives a median cosine similarity of 0.99997 between float and dequantized vectors. That measures angular preservation, not equality of every classifier output or change score; validate the actual downstream task.5
Storage layout makes the 64-dimensional prefix operational
| Layer | Shape | Operational effect |
|---|---|---|
| Zarr array | [year, dimension, northing, easting] per UTM zone | Time and spatial range reads |
| Shard | [1, 128, 2048, 2048] | One inference window, one object, one writer |
| Chunk | [1, 64, 256, 256] | Smallest compressed transfer unit |
| Codec | Zstandard level 3 | Area-oriented compression |
A raw int8 chunk is bytes, or 4 MiB. The report measures 3.04 MB transferred for the first 64 dimensions and 6.05 MB for all 128 dimensions. Chunking the dimension axis at 64 is what turns Matryoshka training into an I/O saving: a 64-dimensional read fetches one chunk rather than two.
The reverse is also true. A one-pixel lookup still downloads the containing compressed chunk, roughly 3 MB, so this store is optimized for areas rather than random point traffic. Raw component arithmetic alone is not enough; chunk geometry determines bytes on the wire. The full 128-dimensional global product is approximately 150 TB per year.5
Searchlight fixes seams by changing the execution graph
Ordinary crop inference gives edge pixels less and directionally biased context, so adjacent crops can create visible boundaries. The released global product uses Searchlight: a large spatial domain is processed with neighborhood attention so every interior output sees the same centered spatial window. For spatial positions and fixed neighborhood size , the spatial score term grows as instead of .8
This is not bit-identical to the training graph. Training uses full attention on finite windows; Searchlight uses neighborhood attention on larger domains. Ai2 reports PASTIS validation mIoU of 60.4 with Searchlight versus 59.8 with tiled inference. At the remaining 20.48 km window boundaries, the production pipeline adds a 48-pixel margin and discards it after inference; the report says this adds 9.6% more computed pixels and improves its measured cross-edge cosine statistic from 0.960 to 0.994.5
Those values demonstrate one vendor-tested configuration, not a universal guarantee. A local deployment with different crop sizes, margins, temporal coverage or modality availability needs its own seam and downstream-quality tests.
Production boundaries
- Pin both artifacts. The checkpoint and code are separate repositories. Record the Hugging Face revision, source commit, preprocessing, band order, patch size and output prefix.
- Do not call every width Matryoshka. Only 128 and the first 64 coordinates receive explicit losses in the released configuration.
- Preserve magnitude when reproducing the global product. Generic L2 normalization changes the representation used by the documented linear probes and signed-power quantizer.
- Match time and modality coverage. The global product uses annual inputs with monthly least-cloudy imagery from all three satellite sources. A shorter window or missing Landsat path is a different input distribution.
- Treat Searchlight as a serving variant. Test seam metrics and task accuracy; its local attention mask is not the same operation as unrestricted full attention.
- Read Zarr by area. Random single-pixel calls amplify I/O because chunk decompression and transfer are the minimum unit.
- Audit the current loader path. At the pinned source commit,
ModelIDlists models only through v1.2, so the convenienceload_model_from_idcannot select v1.3. The generic local-path loader can build the downloadedconfig.jsonandweights.pth; pin hashes and treat PyTorch pickle weights as trusted-code artifacts.9 - Check the license for the deployment. The OlmoEarth Artifact License restricts military, defense-related and extractive-industry uses. This is an engineering warning, not legal advice.5
OlmoEarth v1.3's main contribution is not simply โa smaller embedding.โ It separates four budgets: encoder resolution, output resolution, vector width and storage transfer width. Learned location queries recover 10 m outputs from a 20 m ViT grid; detached relational distillation compresses 768 dimensions to trained 128/64 representations; and the Zarr layout makes that 64-dimensional prefix cheaper to move. Searchlight then addresses a deployment artifact that the checkpoint alone cannot solve.
For general vector-size and quantization arithmetic, continue with the RAG retrieval math guide. For a text-retrieval architecture where different-size query and document encoders share a space, see pplx-embed-v2.
Primary sources
Footnotes
-
Ai2, OlmoEarth v1.3 release article, published October 22, 2026; released model, global embeddings, explorer and stated production scope. โฉ
-
Ai2, OlmoEarth-v1_3-Base model card, accessed October 23, 2026; artifact size, parameter groups, tutorials and license. โฉ
-
Ai2, released v1.3 configuration at
9e9e918a; exact encoder, pooler, student, modality and loss settings. โฉ โฉ2 -
Ai2,
olmoearth_pretrainsource at7353d1b5, checked October 23, 2026. โฉ -
Team OlmoEarth, OlmoEarth v1.3 technical report, October 2026; architecture, losses, evaluations, global inference, quantization and storage layout. โฉ โฉ2 โฉ3 โฉ4 โฉ5 โฉ6
-
Ai2,
AttentionPoolerimplementation; query-grid positions, cross-attention, self-attention and detached student path. โฉ -
Ai2, location-token distillation implementation; prefix-specific back-projections, cosine loss and bounded Gram loss. โฉ
-
Ai2, Searchlight implementation; neighborhood-attention inference path. โฉ
-
Ai2, released model loader; model registry and local-path loading behavior. โฉ