Zum Inhalt springen
Kurzer Hinweis: flozi00 TechHub ist ein Solo-Nebenprojekt neben einem Vollzeitjob — persönliche Lernnotizen, keine offiziellen Aussagen. Kritische Schritte selbst prüfen.

OlmoEarth v1.3: Attention Pooling, Matryoshka-Destillation und Searchlight

Wie OlmoEarth v1.3 multimodale Satellitenzeitreihen mit räumlichem Attention Pooling, einem abgekoppelten 128-/64-dimensionalen Student, nichtlinearer int8-Speicherung und nahtbewusstem Serving in 10-m-Embeddings umwandelt.

8 Min. Lesezeitflozi00
aiarchitekturmultimodalembeddingsvision-transformerdistillationquantisierungproduktion

KI-Hinweis: Dieser Artikel wurde mit Unterstützung generativer KI erstellt. Redaktionell verantwortlich: Florian Zimmermeister (flozi00). Impressum und Kontakt.

Ai2 veröffentlichte OlmoEarth v1.3 Base am 22. Oktober 2026. Es handelt sich um ein herunterladbares multimodales Erdbeobachtungsmodell und nicht um eine reine API oder Forschungsvorschau: Zum Release gehören ein 785-MB-Checkpoint, Trainings- und Inferenzcode, ein technischer Bericht sowie jährliche 10-m-Embeddings, die direkt aus Object Storage gelesen werden können. Die Model Card beschreibt einen ViT mit 128 Mio. Parametern, einen Attention Pooler mit 14,3 Mio. Parametern und einen linearen Student mit ungefähr 0,1 Mio. Parametern.12

Technisch interessant ist die vollständige Produktionskette. Ein ViT mit zwölf Layern kombiniert Sentinel-1-Radardaten mit multispektralen Sentinel-2- und Landsat-Zeitreihen. Ein gelerntes räumliches Query-Gitter liest diese Tokens, ein abgekoppelter Student komprimiert jeden Ort von 768 auf 128 Dimensionen, die ersten 64 Koordinaten werden als nutzbares Präfix trainiert, und ein Signed-Power-int8-Format macht das Ergebnis verteilbar. Searchlight-Inferenz verändert anschließend die Ausführung der räumlichen Attention, um Crop-Nähte im kontinentalen Maßstab zu vermeiden.

Dieser Artikel prüft die veröffentlichte Konfiguration in Revision 9e9e918a369701c105dde7ef56789b0ff1d47f50 und den Quellcode in 7353d1b5105a3ad662809a700c98065fc711f4ab. Die Gewichtsdatei wurde nicht heruntergeladen oder ausgeführt. Aus diesen Artefakten hergeleitete Gleichungen sind als Herleitungen zu verstehen; Evaluierungs- und Durchsatzwerte von Ai2 bleiben Herstellermessungen.34

Der veröffentlichte Inferenzgraph

StufeVeröffentlichte Form oder EinstellungFunktion
EingabenSentinel-1, Sentinel-2, Landsat; bis zu 12 ZeitpunkteRadar- und multispektrale Beobachtungen
ViT-Base12 Layer, Breite 768, 12 Heads, MLP-Verhältnis 4Multimodale und multitemporale Token-Kodierung
Encoder-Positiongemischtes 3D-RoPE; 25 % temporaler AnteilTrennt Zeilen-, Spalten- und Zeitkoordinaten
Attention Poolerein Read-Block + ein Self-Attention-Block, Breite 768, 12 HeadsAggregiert Zeit/Modalitäten und erzeugt ein räumliches Gitter
StudentLinear 768→128, dann LayerNormAusgeliefertes kompaktes Embedding
Verschachteltes Präfixerste 64 der 128 KoordinatenKleineres trainiertes Embedding, keine beliebige Kürzung
Globales Artefaktint8, 10-m-Pixel, Zarr v3Flächenorientierte Verteilung ohne Modellinferenz

Während des Pretrainings liefern sechs Kartenmodalitäten – darunter WorldCover, Höhendaten und OpenStreetMap-Raster – Rekonstruktionsziele oder direkte Supervision. Sie sind keine erforderlichen Eingaben des veröffentlichten Beobachtungs-Encoders. Der ausgelieferte Embedding-Pfad verarbeitet die drei Satellitenmodalitäten und gibt die Ortsvektoren des Students zurück; Decoder und Rückprojektions-Heads für die Destillation gehören zum Training.53

Die Encoder-Konfiguration verwirft beim Training außerdem zufällig 20 % der Bänder von Sentinel-2 und Landsat. Das ist Robustheitstraining, aber keine Freigabe, Bänder in der Produktion beliebig umzuordnen oder stillschweigend wegzulassen: Die gespeicherte Tokenisierungskonfiguration legt Bandgruppen und Reihenfolge fest.

Token-Geometrie: warum Patchgröße zwei wichtig ist

Für eine vereinfachte Eingabe, bei der alle MM Modalitäten TT Zeitpunkte über einem H×WH\times W-Pixel-Fenster und jeweils eine Bandgruppe besitzen, erzeugt eine räumliche Patchgröße pp

N=TMHpWpN = T M\frac{H}{p}\frac{W}{p}

Encoder-Tokens. Die veröffentlichte globale Pipeline verwendet T=12T=12, M=3M=3, H=W=16H=W=16 und p=2p=2, also N=2.304N=2{.}304. Ein Patch deckt 20×2020\times20 m ab, der Pooler erzeugt jedoch eine Query pro 10×1010\times10-m-Pixel. Bei Ausgabe-Patchgröße s=1s=1 besitzt das Query-Gitter

Q=HsWs=256.Q=\frac{H}{s}\frac{W}{s}=256.

Pro Attention-Head hat die Cross-Attention-Matrix des Poolers die Form Q×N=256×2.304Q\times N=256\times2{.}304, seine räumliche Self-Attention-Matrix die Form Q×Q=256×256Q\times Q=256\times256. Der Encoder selbst verarbeitet pro Full-Attention-Layer N2=5.308.416N^2=5{.}308{.}416 Tokenpaare. Diese Paarzahlen enthalten weder Projektionen noch MLPs, Masken oder Speicherverkehr, zeigen aber den Entwurf: Der teure ViT bleibt bei 20-m-Tokens, günstigere gelernte Queries stellen anschließend ein 10-m-Ausgaberaster her.

Bei p=1p=1 sähe der Encoder viermal so viele Tokens und sechzehnmal so viele Attention-Paare. Der Gesamtaufwand sinkt nicht um 16×, weil lineare Layer und Pooler verbleiben. Der Bericht misst für dieses exakte Fenster 2.378 GMACs für den 10-m-ViT-Pfad und 308 GMACs für den 20-m-ViT mit 10-m-Pooler – Faktor 7,7.5

Der Attention Pooler ist räumlich und kein Mittelwert

Der Pooler beginnt mit einem gelernten Vektor u∈R768u\in\mathbb{R}^{768} und wiederholt ihn QQ-mal. Inhalt allein kann diese identischen Queries nicht unterscheiden. Ihre Identität stammt aus 2D-RoPE-Koordinaten. Für Query-Index kk auf einer Achse, Eingabe-Patchgröße pp, Ausgabe-Patchgröße ss und Ground-Sampling-Distance-Verhältnis gg setzt die Implementierung das Zentrum auf

rk=((k+12)sp−12)g.r_k=\left(\frac{(k+\tfrac12)s}{p}-\frac12\right)g.

Für s=ps=p fallen Query- und Patchzentren zusammen. Für s=1<ps=1<p liegen zusätzliche Queries auf Pixelzentren innerhalb jedes Encoder-Patches. Der Query-Tensor Z0∈RB×Q×768Z_0\in\mathbb{R}^{B\times Q\times768} verwendet die sichtbaren ViT-Tokens X∈RB×N×768X\in\mathbb{R}^{B\times N\times768} als Keys und Values und führt danach Self-Attention im Query-Gitter aus:

Z1=ReadAttn⁡(Z0,X;R2D),L=LN⁡ ⁣(SelfAttn⁡(Z1;R2D)).Z_1=\operatorname{ReadAttn}(Z_0,X;R_{2D}) , \qquad L=\operatorname{LN}\!\left(\operatorname{SelfAttn}(Z_1;R_{2D})\right).

Die Schreibweise unterdrückt Residual- und MLP-Zweige der Blöcke; L∈RB×Q×768L\in\mathbb{R}^{B\times Q\times768} ist das Gitter der Location Tokens. Beim Lesen dienen die letzten sichtbaren ViT-Tokens als Keys und Values. Der Softmax kann deshalb bewölkte optische Beobachtungen anders gewichten als Radar oder einen anderen Monat. Der Self-Attention-Schritt lässt benachbarte Ausgabeorte Kontext austauschen. Das ist gelernte, datenabhängige Aggregation und kein arithmetischer Mittelwert.6

Der Encoder verwendet gemischtes 3D-RoPE, weil seine Tokens Raum- und Zeitkoordinaten besitzen. Das Ortsgitter hat keine Modalitäts- oder Zeitachse; der Pooler verwendet deshalb bewusst nur axiales 2D-RoPE. Eine einzige wiederholte gelernte Query vermeidet außerdem, eine feste Trainingsfenstergröße in den Parametern zu verankern.

Abgekoppelte Matryoshka-Destillation erhält Punkte und Geometrie

Der ausgelieferte Student darf den Teacher absichtlich nicht verändern. Die Implementierung koppelt LL vom Gradienten ab, wendet eine lineare Projektion und danach LayerNorm an:

S=LN⁡(stopgrad⁡(L)W+b),S∈RB×Q×128.S=\operatorname{LN}(\operatorname{stopgrad}(L)W+b), \qquad S\in\mathbb{R}^{B\times Q\times128}.

Zwei Präfixe werden trainiert: S(128)=SS^{(128)}=S und S(64)=S:,:,:64S^{(64)}=S_{:,:,:64}. Jede Breite d∈{128,64}d\in\{128,64\} besitzt eine eigene zweilagige Rückprojektion gd:Rd→R768g_d:\mathbb{R}^{d}\rightarrow\mathbb{R}^{768} mit versteckter Breite 256. Ihr punktweiser Term lautet

Lcos⁡(d)=1BQ∑i(1−cos⁡(gd(Si(d)),Li)).\mathcal L_{\cos}^{(d)} =\frac{1}{BQ}\sum_i\left(1-\cos\left(g_d(S_i^{(d)}),L_i\right)\right).

Punktweise Übereinstimmung erhält nicht ausdrücklich, welche Orte untereinander ähnlich sind. Der Gram-Term legt Batch- und Ortsachsen zusammen, zieht höchstens n=2.048n=2{.}048 Tokens, L2-normalisiert die Zeilen und gleicht die Cosinus-Matrizen von Teacher und Student an:

L^i=Li∥Li∥2,S^i(d)=Si(d)∥Si(d)∥2,LGram(d)=1n2∥S^(d)S^(d)⊤−L^L^⊤∥F2.\widehat L_i=\frac{L_i}{\lVert L_i\rVert_2}, \quad \widehat S_i^{(d)}=\frac{S_i^{(d)}}{\lVert S_i^{(d)}\rVert_2}, \quad \mathcal L_{\mathrm{Gram}}^{(d)} =\frac{1}{n^2}\left\lVert \widehat S^{(d)}\widehat S^{(d)\top}- \widehat L\widehat L^\top \right\rVert_F^2.

Der Code summiert Cosinus- und Gram-Terme für beide Breiten ohne weitere Gewichte. Die Grenze von 2.048 Tokens beschränkt die quadratische Gram-Matrix auf etwa 4,2 Mio. Einträge. Gradienten aktualisieren den Student und seine nur fürs Training verwendeten Rückprojektionen, aber weder ViT noch Pooler. Das Teacher-Training läuft durch maskierte Rekonstruktion und Karten-Supervision im selben Forward-Pass weiter; der Student lernt gegen diesen sich verändernden Teacher, ohne einen zweiten Teacher-Durchlauf.7

Ein subtiler Vertrag ist für die Produktion wichtig: LayerNorm wird auf den vollständigen 128-Vektor angewendet, bevor die ersten 64 Koordinaten abgeschnitten werden. Der 64-Vektor ist als Präfix trainiert, aber nicht separat per LayerNorm oder L2 normalisiert. Verwenden Sie genau das exportierte Präfix; beliebige Breiten oder stilles erneutes Normalisieren liefern kein garantiert gleichwertiges Verhalten für Klassifikatoren.

Signed-Power-int8 ist keine gewöhnliche lineare Quantisierung

Die globalen Embeddings werden als int8 gespeichert; −128-128 ist für Nodata reserviert. Mit Skalierung a=127,5a=127{,}5 und Exponent γ=12\gamma=\tfrac12 lautet die veröffentlichte Transformation

q=clamp⁡[−127,127] ⁣(round⁡(a sgn⁡(x)∣x∣1/2)),x^=sgn⁡(q)∣qa∣2.q=\operatorname{clamp}_{[-127,127]} \!\left(\operatorname{round}\left(a\,\operatorname{sgn}(x)|x|^{1/2}\right)\right), \qquad \hat x=\operatorname{sgn}(q)\left|\frac{q}{a}\right|^2.

Das Quadrieren bei der Dequantisierung legt darstellbare Werte nahe null dichter und nahe Betrag eins gröber. Die erste positive Stufe liegt ungefähr bei (1/127,5)2=6,15×10−5(1/127{,}5)^2=6{,}15\times10^{-5}; nahe eins beträgt der Abstand grob 2/127,5≈0,01572/127{,}5\approx0{,}0157. Das ist hilfreich, wenn viele LayerNorm-Koordinaten klein sind, aber ein modellspezifischer Zahlenvertrag und keine generische int8-Einstellung einer Vektordatenbank.

Ai2 quantisiert ausdrücklich den ausgegebenen LayerNorm-Vektor ohne L2-Normalisierung, weil nachgelagerte Klassifikatoren die Magnitude verwenden. Der Bericht nennt eine mediane Cosinus-Ähnlichkeit von 0,99997 zwischen Float- und dequantisierten Vektoren. Das misst Winkelerhalt, nicht die Gleichheit jedes Klassifikatorausgangs oder Change Scores; validieren Sie die konkrete Downstream-Aufgabe.5

Das Speicherlayout macht das 64-dimensionale Präfix praktisch nutzbar

EbeneFormBetriebliche Wirkung
Zarr-Array[Jahr, Dimension, Northing, Easting] pro UTM-ZoneZeitliche und räumliche Bereichsabfragen
Shard[1, 128, 2048, 2048]Ein Inferenzfenster, ein Objekt, ein Writer
Chunk[1, 64, 256, 256]Kleinste komprimierte Übertragungseinheit
CodecZstandard Level 3Flächenorientierte Kompression

Ein roher int8-Chunk umfasst 64×256×256=4.194.30464\times256\times256=4{.}194{.}304 Byte oder 4 MiB. Der Bericht misst 3,04 MB Übertragung für die ersten 64 Dimensionen und 6,05 MB für alle 128 Dimensionen. Erst das Chunking der Dimensionsachse bei 64 macht das Matryoshka-Training zur I/O-Ersparnis: Eine 64-dimensionale Abfrage lädt einen statt zwei Chunks.

Umgekehrt lädt eine Ein-Pixel-Abfrage weiterhin den enthaltenen komprimierten Chunk, ungefähr 3 MB. Der Store ist deshalb für Flächen und nicht für zufälligen Punktverkehr optimiert. Reine Komponenten-Arithmetik reicht nicht aus; die Chunk-Geometrie bestimmt die übertragenen Bytes. Das vollständige globale Produkt mit 128 Dimensionen umfasst ungefähr 150 TB pro Jahr.5

Searchlight beseitigt Nähte durch einen anderen Ausführungsgraphen

Gewöhnliche Crop-Inferenz gibt Randpixeln weniger und einseitigen Kontext; benachbarte Crops können dadurch sichtbare Grenzen erzeugen. Das veröffentlichte globale Produkt verwendet Searchlight: Eine große räumliche Domain wird mit Neighborhood Attention verarbeitet, sodass jede innere Ausgabe dasselbe zentrierte 16×1616\times16-Fenster sieht. Für PP räumliche Positionen und eine feste Nachbarschaft K=256K=256 wächst der räumliche Score-Term als O(PK)O(PK) statt O(P2)O(P^2).8

Das ist nicht bitidentisch zum Trainingsgraphen. Das Training verwendet Full Attention auf endlichen Fenstern; Searchlight verwendet Neighborhood Attention auf größeren Domains. Ai2 berichtet 60,4 PASTIS-Validierungs-mIoU mit Searchlight gegenüber 59,8 mit Tiled Inference. An den verbleibenden Grenzen der 20,48-km-Fenster fügt die Produktionspipeline einen 48-Pixel-Rand hinzu und verwirft ihn nach der Inferenz. Laut Bericht erhöht das die berechneten Pixel um 9,6 % und verbessert die gemessene Cosinus-Statistik über Grenzen hinweg von 0,960 auf 0,994.5

Diese Werte belegen eine vom Anbieter geprüfte Konfiguration, aber keine universelle Garantie. Eine lokale Bereitstellung mit anderen Crop-Größen, Rändern, Zeitabdeckungen oder verfügbaren Modalitäten benötigt eigene Naht- und Qualitätsprüfungen.

Produktionsgrenzen

  1. Beide Artefakte pinnen. Checkpoint und Code liegen in getrennten Repositories. Halten Sie Hugging-Face-Revision, Source-Commit, Vorverarbeitung, Bandreihenfolge, Patchgröße und Ausgabepräfix fest.
  2. Nicht jede Breite ist Matryoshka. Nur 128 sowie die ersten 64 Koordinaten erhalten in der veröffentlichten Konfiguration eigene Loss-Terme.
  3. Beim Nachbau des globalen Produkts die Magnitude erhalten. Generische L2-Normalisierung verändert die Darstellung für die dokumentierten Linear Probes und den Signed-Power-Quantisierer.
  4. Zeit- und Modalitätsabdeckung angleichen. Das globale Produkt verwendet jährliche Eingaben mit monatlichen, möglichst wolkenarmen Bildern aller drei Satellitenquellen. Ein kürzeres Fenster oder fehlender Landsat-Pfad ist eine andere Eingabeverteilung.
  5. Searchlight als Serving-Variante behandeln. Prüfen Sie Nahtmetriken und Aufgabenqualität; seine lokale Attention-Maske ist nicht dieselbe Operation wie unbeschränkte Full Attention.
  6. Zarr flächenweise lesen. Zufällige Ein-Pixel-Aufrufe verstärken den I/O-Aufwand, da Transfer und Dekompression mindestens einen Chunk betreffen.
  7. Den aktuellen Loader-Pfad prüfen. Im gepinnten Source-Commit führt ModelID nur Modelle bis v1.2; der komfortable Aufruf load_model_from_id kann v1.3 daher nicht auswählen. Der generische lokale Loader kann heruntergeladene config.json und weights.pth aufbauen. Pinnen Sie Hashes und behandeln Sie PyTorch-Pickle-Gewichte als vertrauenswürdige Code-Artefakte.9
  8. Lizenz für die Bereitstellung prüfen. Die OlmoEarth Artifact License schränkt militärische, verteidigungsbezogene und extraktive Anwendungen ein. Das ist ein technischer Warnhinweis und keine Rechtsberatung.5

Der zentrale Beitrag von OlmoEarth v1.3 ist nicht bloß „ein kleineres Embedding“. Die Architektur trennt vier Budgets: Encoder-Auflösung, Ausgabeauflösung, Vektorbreite und Transferbreite. Gelernte Location Queries stellen 10-m-Ausgaben aus einem 20-m-ViT-Gitter her; abgekoppelte relationale Destillation komprimiert 768 Dimensionen in trainierte 128-/64-Repräsentationen; das Zarr-Layout macht das 64-dimensionale Präfix günstiger übertragbar. Searchlight löst anschließend ein Deployment-Artefakt, das der Checkpoint allein nicht beheben kann.

Allgemeine Rechnungen zu Vektorgröße und Quantisierung finden Sie im RAG-Retrieval-Mathematik-Guide. Eine Text-Retrieval-Architektur, bei der unterschiedlich große Query- und Dokument-Encoder denselben Raum nutzen, erklärt der pplx-embed-v2-Guide.

Primärquellen

Footnotes

  1. Ai2, OlmoEarth v1.3 release article, veröffentlicht am 22. Oktober 2026; Modell, globale Embeddings, Explorer und angegebener Produktionsumfang. ↩

  2. Ai2, OlmoEarth-v1_3-Base model card, abgerufen am 23. Oktober 2026; Artefaktgröße, Parametergruppen, Tutorials und Lizenz. ↩

  3. Ai2, released v1.3 configuration at 9e9e918a; exakte Encoder-, Pooler-, Student-, Modalitäts- und Loss-Einstellungen. ↩ ↩2

  4. Ai2, olmoearth_pretrain source at 7353d1b5, geprüft am 23. Oktober 2026. ↩

  5. Team OlmoEarth, OlmoEarth v1.3 technical report, Oktober 2026; Architektur, Losses, Evaluierungen, globale Inferenz, Quantisierung und Speicherlayout. ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  6. Ai2, AttentionPooler implementation; Query-Gitter-Positionen, Cross-Attention, Self-Attention und abgekoppelter Student-Pfad. ↩

  7. Ai2, location-token distillation implementation; präfixspezifische Rückprojektionen, Cosinus-Loss und begrenzter Gram-Loss. ↩

  8. Ai2, Searchlight implementation; Neighborhood-Attention-Inferenzpfad. ↩

  9. Ai2, released model loader; Modellregister und Verhalten des lokalen Loader-Pfads. ↩