衛星画像から作物や森林の地図を作っているなら、今すぐ読んでほしい。いちばん重い計算は、もう誰かが地球全体で済ませて、無料で置いてある。
Ai2の技術レポートによると、前の世代のOlmoEarth v1.2で大規模な地図を作ると、コストの98%がモデルの推論だった(残りの2%はデータの書き出しと前処理)。その推論を先に地球全体で回し、10m四方ごとに64〜128個の数字(埋め込み)として配っているデータが、今3つある。
- Google DeepMindの AlphaEarth Foundations(64次元)
- ケンブリッジ大学の TESSERA(128次元、最新はv2)
- Ai2の OlmoEarth v1.3(128次元、10月22日公開)
Google DeepMindの発表によると、10m四方のマスは1年で1.4兆を超える。Ai2の埋め込みは全球で1年約150TBあり、計算には約1万4,000 H100時間(H100換算の見積もり)かかった。Ai2がブログで示した学習費(最終の学習で約2,720ドル)をレポートの539 GPU時間で割ると、1時間あたり約5.05ドル。この単価で換算すると、1年分の推論だけで約7万ドル相当になる(筆者試算)。しかもAi2の分は、アカウントもAPIキーもなしで読める。
では、どれを使えばいいのか。3本の論文には、それぞれこう書いてある。
Google DeepMind (2025-07)
The embeddings generated by AlphaEarth Foundations are the only to consistently outperform ...
Cambridge (2026-07)
our 44-million-parameter distilled student outperforms every open and proprietary embedding product we test
Ai2 (2026-10)
OlmoEarth v1.3's 128-dimensional embeddings are best on 10/11 tasks
3本とも、自分が1位だ。
結論から言うと
1. 論文の順位ではなく、自分のラベル数百点で3つを並べて決めること。 3つとも無料で読める。同じ地点の埋め込みを取り出し、同じ分類器にかければ、自分のタスクでの勝者がわかる。
2. 順位を動かしているのは、モデルの優劣より「誰が、どう読み出して測ったか」だ。 同じAlphaEarthが、ケンブリッジの論文が集計したGoogleの15評価では2位、Ai2の11評価では最下位になる。
3. ただし、論文で比べた版がそのまま手に入るとは限らない。 AlphaEarthは2024年分まで、TESSERA v2の全球データは事前リクエスト制だ。勝ったOlmoEarthには、軍事と資源採掘への利用禁止が付く。

図: 3製品が各組織の論文で何位だったか(3本の論文から筆者作成)。対角線の★が、評価した組織自身の製品
資料確認日は2026年10月24日。数値と引用は、Google DeepMindのAlphaEarth Foundations論文(arXiv:2507.22291 v2)、ケンブリッジ大学のTESSERA v2論文(arXiv:2607.03949 v2)、Ai2のOlmoEarth v1.3技術レポートとブログ(10月22日)による。どの比較も各組織が自分で実行したもので、第三者が3製品を同じ条件で比べた結果は見つからなかった。GitHubのスター数は筆者がGitHub APIで取得した。ドル換算と日本全土の容量は筆者の試算。掲載コードはすべて未実行で、筆者は埋め込みを実際にダウンロードしていない。
数字で見る3つの地球埋め込み
| 項目 | AlphaEarth Foundations | TESSERA v2 | OlmoEarth v1.3 |
|---|---|---|---|
| 開発 | Google DeepMind | ケンブリッジ大学 | Ai2 |
| 論文の公開 | 2025年7月29日 | 2026年7月4日 | 2026年10月22日 |
| 方式 | 時空間を動画のように読むSTP | 1画素ずつの時系列Transformer | ViT+Attention Pooler |
| エンコーダの規模 | 約4.8億パラメータ | 4,400万(20億の教師から蒸留) | ViT-Base 1.28億+1,430万 |
| 次元 | 64 | 128(先頭16/32/64も可) | 128(先頭64も可) |
| 1画素あたり | 64バイト | 132バイト | 128バイト(先頭64なら64) |
| 全球で読める年 | 2017〜2024年 | v1.1は2017〜2025年、v2は事前リクエスト | 2023〜2025年 |
| 重み | 非公開 | 公開 | 公開 |
| ライセンス | CC-BY 4.0 | CC0とCC-BY-SAで表記が割れる | 軍事・採掘を禁止 |
| 自分の論文での順位 | 1位 | 1位 | 1位 |
TESSERA v2の132バイトはAi2のレポートの記載で、128個のint8に、大きさを表すfloatが1個付く。OlmoEarthの2017〜2022年は一部の国だけだ。
ここまでは「無料の地球データが3つある」という話。面白いのはその先だ。
1位が入れ替わる仕組み
3つは「1本のベクトルに何を詰めるか」が違う
同じ「10m四方ごとに1本のベクトル」でも、作り方はまるで違う。
TESSERA v2は、隣の画素を見ない。 ケンブリッジの論文によると、入力は「その10m画素で1年間に観測されたSentinel-1とSentinel-2のすべて」だ。雲の多い場所なら数回、晴れた場所なら100回前後になる。2つの衛星を別々のTransformerに通し(日付は年内の日を正弦波で符号化)、長さのばらばらな列をattention poolingで1つにまとめ、融合用のTransformerで128次元にする。学習はBarlow Twinsで、20億パラメータの教師を4,400万(L)〜約100万(N)の生徒に蒸留した。
AlphaEarthは、時空間を動画として読む。 Google DeepMindの論文によると、エンコーダSTPは3種類の演算を繰り返す。1辺Lの入力に対して、Spaceは1/16の解像度でViT風の空間注意、Timeは1/8で時間軸の注意、Precisionは1/2で3×3の畳み込みだ。観測時刻はミリ秒単位のタイムスタンプを正弦波のタイムコードにして渡すので、観測がない時期も補間して「この1年」を要約できる。出力は64次元の単位球面上の点になる。学習の目標には、GEDIのLiDAR、GRACEの重力、ERA5-Landの気象、WikipediaとGBIF(生物の観察記録)のテキストまで入っている(推論では使わない)。規模は約4.8億パラメータで、重みは公開されていない。
OlmoEarth v1.3は、20mで考えて10mで答える。 Ai2のレポートによると、16×16画素の窓を、30日ごとに合成した12枚×3センサー(Sentinel-1、Sentinel-2、Landsat)で読む。ViT-Baseは2×2画素(20m)を1トークンにするので、10mのまま読むより計算が7.7倍軽い(窓あたり308対2,378 GMACs)。そこへ学習済みの問い合わせを10mの画素ごとに複製して注意をかけ(Attention Pooler)、768次元を線形層で128次元に落とす。先頭64次元だけでも使えるように学習してある。
# OlmoEarth v1.3の推論の流れ(擬似コード・未実行。トークン数はレポートの設定から筆者計算)
tokens = vit(window_16x16) # 12か月 × 3センサー × 8×8パッチ = 2,304トークン(各768次元、20m)
queries = location_query.repeat(16 * 16) # 同じ問い合わせを、10mの256画素ぶん複製
loc = pooler(queries, kv=tokens, rope=pixel_xy) # 全トークンへのクロス注意のあと、問い合わせ同士で自己注意
emb = layernorm(linear_768_to_128(loc)) # 先頭64次元でも使えるように蒸留(Matryoshka)
並べると、違いがはっきりする。
| TESSERA v2 | AlphaEarth | OlmoEarth v1.3 | |
|---|---|---|---|
| 1回に読む範囲 | 1画素×1年 | 画像の範囲×期間 | 16×16画素×12か月 |
| 空間の文脈 | 持たない(後段のヘッド任せ) | 持つ | 持つ |
| 時間の持ち方 | 有効な観測を全部 | 連続した時刻 | 30日ごとの合成12枚 |
| Landsat | 足すと全構成で精度が下がった | 入力に使う | 入力に使う |
| 16×16画素ぶんの計算量 | 700〜1,200 GMACs(Ai2の見積もり) | 非公開 | 308 GMACs |
Landsatの欄は、ケンブリッジの論文の付録にこうある。
Adding Landsat as a third optical source lowered downstream accuracy in every configuration we tried
同じ衛星を、片方は捨て、片方は使っている。
一方、観測を間引かずに全部読むTESSERA v2は、エチオピアの作物分類だけはAi2の評価でもOlmoEarth v1.3に一貫して勝つ。理由はどちらの論文にも書かれていないが、作物の生育の時間変化を細かく持っていることが効いている可能性はある(筆者の推測)。
同じAlphaEarthが、2位にも最下位にもなる
3本の論文から、AlphaEarthの位置だけを抜き出した。
| 評価した組織 | 評価セット | 1位 | AlphaEarthの位置 |
|---|---|---|---|
| Google DeepMind | 自分で集めた15評価(11データセット) | AlphaEarth(次点より誤差を平均約23.9%削減) | 1位 |
| ケンブリッジ大学 | Googleと同じ15評価 | TESSERA v2(0.593) | 2位(0.560) |
| ケンブリッジ大学 | 自分で選んだ保留の14課題 | TESSERA v2(0.647) | 主要4製品で最下位(0.590) |
| Ai2 | Googleの評価から8データセット+PASTIS+PLANTEURの2設定(11評価) | OlmoEarth v1.3(11評価中10で最高) | 4製品の平均順位で最下位 |
ケンブリッジの数値は合成スコアで、Googleの15評価でのAlphaEarthの0.560は、Googleが公表した値をケンブリッジが採用したもの。Googleの23.9%は、ラベルを最大まで使う設定での値だ。Ai2の4製品は、OlmoEarthの128次元版と64次元版を別に数える。
評価を回した組織の製品が、毎回1位になっている。
ケンブリッジの表には、もう1つ面白い数字がある。Googleの15評価でAlphaEarthが取った0.560は、TESSERA v2でいちばん小さい生徒N(約100万パラメータ)と同じ値だ。4.8億パラメータの非公開モデルと、100万パラメータの生徒が同点。本当にそうか? 少なくとも、ケンブリッジの集計ではそうなっている。
結局、どれが一番強いと思う? あなたの予想もコメントで教えてほしい。
順位を動かす3つのつまみ
つまみ1:読み出し方(ヘッド)
埋め込みは、そのままでは地図にならない。kNNや線形分類器、小さなCNNを上に載せて、初めて答えが出る。どのヘッドを載せるかで、勝つアーキテクチャが変わる。
Ai2のレポートには、こうある。
AEF does not benefit from regularization but does benefit from more complex classifiers like the MLP and random forest
OlmoEarthとTESSERAは逆で、正則化した線形モデル(リッジ回帰やロジスティック回帰)で最もよくなる。ケンブリッジの論文も、自分の方式についてこう書く。
pixel-wise representations like TESSERA v2 are best read with a head that can use their spatial neighbourhood
隣の画素を見ないTESSERAは、近所を見られるCNNのヘッドを載せると伸びる。実際、ケンブリッジの保留課題のうち都市の8課題(CityRep)を線形プローブにそろえると、OlmoEarth-Lのほうがわずかに上になる(平均順位1.50対1.75)。それでも14課題の全体ではTESSERA v2が0.597対0.573で逃げ切る、というのがケンブリッジの主張だ。
つまみ2:誰が作った課題か
PLANTEURは、Ai2が今回あわせて作った作物の区画ベンチだ。フランスの海外領土(マルティニーク、レユニオン、仏領ギアナ、グアドループ、マヨット)のラベルを使い、島を1つ抜いて学習させ、見たことのない島で測る設定(LOIO)がある。
| 製品 | 次元 | PASTIS | PLANTEUR(ランダム分割) | PLANTEUR(島を抜く) |
|---|---|---|---|---|
| AlphaEarth | 64 | 39.1 | 27.7 | 15.8 |
| TESSERA v2 | 128 | 58.3 | 34.2 | 19.1 |
| OlmoEarth v1.3 | 128 | 58.6 | 36.7 | 24.9 |
| OlmoEarth v1.3 | 64 | 53.4 | 35.2 | 21.5 |
値はmIoUで、Ai2のレポートの表2による。島を抜く設定では、OlmoEarthはTESSERA v2より約30%、AlphaEarthより約58%高い(筆者計算)。ただ、これはAi2が作った課題を、Ai2が測った結果だ。
ケンブリッジ側の保留課題も、14課題のうち8つが都市のデータセットCityRepから来ている。そしてケンブリッジは、Googleの評価セットそのものを疑っている。
AlphaEarth does not disclose its training corpus, so its AlphaEarth suite labels may have been seen during its own training.
学習データが非公開なので、評価用のラベルを学習中に見ている可能性を否定できない。だからケンブリッジは、自分で選んだ保留課題を主な比較にした。
つまみ3:比べた相手の版とバイト数
ケンブリッジが比べたのは、OlmoEarth v1世代の大型モデル OlmoEarth-L(3億800万パラメータ)で、v1.3ではない。逆にAi2が比べたのは、ケンブリッジが7月に出したTESSERA v2のLだ。どちらも、相手の少し前の版と戦っている。
バイト数もそろっていない。1画素あたりAlphaEarthは64バイト、OlmoEarthは128バイト、TESSERA v2は132バイトだ。Ai2はこの差を意識して、自分の先頭64次元(64バイト)だけで比べた数字も出している。11評価中7つで、AlphaEarthとTESSERA v2の両方を上回った。ケンブリッジも、TESSERA v2の先頭16次元だけで、128次元の性能の92%が残ると書く。
Ai2自身も、ブログでは「27評価中20」、レポートでは「kNN-20で11評価中10」と、分母の違う2つの数字を出している。ブログは27の内訳を書いていない。
さらにケンブリッジは、395回の学習で、事前学習の損失と下流の性能がほぼ無関係だった(Pearsonの相関は-0.18)と報告している。学習の損失が下がっても、自分のタスクで勝つとは限らない。
ここに並べた数字はすべて各組織の自己申告で、第三者が3製品を同じ条件で比べた結果はまだ見当たらない。
自分のデータで決める4つの試し方
1. まずブラウザで眺める(アカウント不要)
Ai2のEmbeddings Explorerは、ログインなしで開ける。レポートによると、クリックした地点に似た場所を探したり、描いた範囲をクラスタリングしたりでき、結果は同じ処理をデータセットに対して再現するPythonスクリプトとして書き出せる。
https://olmoearth.allenai.org/embeddings
よく知っている畑や森を1点クリックし、出てきた「似た場所」が本当に同じ作物や林相かを確かめてみてほしい。ただし、画面の色はPCAの3成分で、レポートによると局所的な分散の5分の1〜5分の2しか表していない。色の見た目で優劣を判断しないこと。
2. OlmoEarth v1.3を匿名で読む
Source CooperativeのREADMEに、1点を読むコードが載っている。座標を北海道の十勝に変え、文字列の引用符を単引用符にそろえた。
# Source CooperativeのREADMEのコードを、座標だけ十勝に変えたもの(未実行)
# pip install 'zarr>=3' obstore pyproj numpy
import numpy as np
import zarr
from obstore.store import S3Store
from pyproj import Transformer
zarr.config.set({'array.sharding_coalesce_max_gap_bytes': 0})
STORE_URL = 's3://olmoearth/olmoearth-v1-3-embeddings/embeddings.zarr'
s3 = S3Store.from_url(STORE_URL, endpoint='https://data.source.coop', skip_signature=True)
store = zarr.storage.ObjectStore(s3, read_only=True)
root = zarr.open_group(store, mode='r')
lon, lat, year = 143.2, 42.9, 2025
zone = root[f'utm{int((lon + 180) // 6) + 1:02d}']
transformer = Transformer.from_crs('EPSG:4326', zone.attrs['proj:code'], always_xy=True)
x, y = transformer.transform(lon, lat)
a, _, c, _, e, f = zone.attrs['spatial:transform']
col = int((x - c) / a)
row = int((y - f) / e)
t = int(np.where(zone['time'][:] == year)[0][0])
q = zone['embeddings'][t, :, row, col]
def dequantize(q):
q = np.asarray(q)
v = np.where(q == -128, np.nan, q).astype('float32')
return (np.abs(v) / 127.5) ** 2.0 * np.sign(v)
v = dequantize(q)
print(v.shape, np.linalg.norm(v)) # 128次元。ノルムは1ではない(罠1を参照)
先頭64次元だけ読めば、転送量はほぼ半分になる。
3. AlphaEarthをEarth Engineで読む
AlphaEarthの年次埋め込みは、Earth Engineのデータカタログに GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL として載っている。Pythonから使うには、公式手順のとおりGoogle Cloudのプロジェクトが要る。
# Earth EngineのPython API(未実行)。'my-project' は自分のプロジェクトIDに置き換える
# pip install earthengine-api
import ee
ee.Authenticate()
ee.Initialize(project='my-project')
pt = ee.Geometry.Point(143.2, 42.9) # 十勝(経度, 緯度)
img = (ee.ImageCollection('GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL')
.filterDate('2024-01-01', '2025-01-01') # カタログ上は2024年分が最新
.filterBounds(pt)
.first())
vec = img.sample(pt, scale=10).first().toDictionary().getInfo()
print(len(vec)) # A00〜A63の64バンド。単位長なので正規化は不要
カタログによると、同じデータはGoogle Cloud Storageの gs://alphaearth_foundations にもあり、2026年7月から「provider pays」(転送の費用を提供側が持つ設定)になっている。
4. TESSERAをGeoTesseraで読む
ケンブリッジのGeoTesseraは、Python 3.12以上で動く。READMEのコマンドはこうだ。
# GeoTesseraのREADMEより(未実行)。既定はv1.1の埋め込み
pip install geotessera
geotessera download --bbox '-3.0,53.4,-2.9,53.5' --year 2024 --output region/
# READMEの例は probe(0.12, 52.20, ...) のケンブリッジ。経度・緯度の順で十勝に変えた(未実行)
from geotessera import GeoTesseraZarr
gt = GeoTesseraZarr()
vec, status = gt.probe(143.2, 42.9, year=2024) # status: 'valid', 'water', 'nodata', 'outside'
ここで手に入るのはv1.1で、Ai2が比べたv2ではない。 v2の重み(N、S、M、Lの4生徒と20億パラメータの教師)は、Hugging Faceのgeotesseraで公開済みだ。v2の埋め込みが今すぐ必要なら、自分で推論するか、TESSERAのREADMEにある事前リクエストに申し込むことになる。READMEが推奨する生徒はMだ。
知らないと損する5つの罠
罠1:OlmoEarthのベクトルは長さ1ではない
Earth Engineのカタログは、AlphaEarthについてこう書く。
The embeddings are unit-length, meaning they have a magnitude of 1 and do not require any additional normalization.
ところがOlmoEarthのREADMEによると、こちらはL2正規化されていない。128次元でのノルムは3.0〜3.8(中央値3.4)で、しかも値はint8に符号付きの平方根で量子化されている(-128は欠損)。量子化が非線形なので、逆量子化の前に足し算や平均をすると値がゆがむ。TESSERAのNPYタイルも、int8と別ファイルのfloat32スケールの組だ。
内積をそのままコサイン類似度として使うと、OlmoEarthだけベクトルの長さが効いてしまう。
対策:3製品とも、逆量子化してからL2正規化する前処理にそろえること。64次元と128次元を1つの解析に混ぜないこと。
罠2:1点だけ読んでも約3MB動く
OlmoEarthのレポートには、こうある。
a single-pixel query still moves the whole chunk containing it, roughly 3MB
Zarrのチャンクは256×256画素×64次元で、128次元を全部読むと1タイル6.05MB、先頭64次元だけなら3.04MBになる。ばらばらの1万地点を1点ずつ読むと、先頭64次元だけでも最悪で約30GB、128次元なら約60GBを転送する計算だ(筆者試算)。
対策:地点を256×256画素のチャンク単位でまとめて読み、足りるなら先頭64次元だけ読むこと。
罠3:2025年版には20.48kmごとの継ぎ目が残る
OlmoEarthは2048×2048画素(20.48km)の窓ごとに推論する。窓の端の画素は片側の文脈しか見えないので、20.48kmごとにうっすら継ぎ目ができる。Ai2は窓の周囲に48画素の余白を付けて推論する方式に変え、窓の境目をはさむ画素どうしの類似度(窓の内側の隣どうしとの比)を0.960から0.994に上げた。ところがレポートには、こうある。
2025, most of 2024 and a small part of 2019 and 2023 were built before the change
2025年分は、余白なしで作られた。 余白ありで作られた年と比べて変化を検出すると、継ぎ目を変化と取り違えるおそれがある。
対策:provenanceに記録された余白(margin)を確認し、20.48kmの格子線の上に出る変化は疑ってかかること。
罠4:ライセンスが3者3様
| 製品 | ライセンス | 注意点 |
|---|---|---|
| AlphaEarth | CC-BY 4.0 | 指定の帰属表示が必須 |
| TESSERA | GitHubのREADMEはCC0、AWSのレジストリはCC-BY-SA | 同じ埋め込みで表記が食い違う |
| OlmoEarth | OlmoEarth Artifact License | 軍事・防衛と資源採掘の用途を禁止 |
AlphaEarthの帰属表示は、カタログ上「The AlphaEarth Foundations Satellite Embedding dataset is produced by Google and Google DeepMind.」と指定されている。TESSERAは、READMEが埋め込みと重みをCC0とする一方、AWSのレジストリはCC-BY-SAと表示する。
OlmoEarthのライセンスの第2条は、次の2つを禁じる。
Any military and defense-related applications and use cases
Any extractive activities, operations and use cases involving the removal of raw materials from the earth
掘削や鉱山開発、森林伐採による石油・ガス・鉱物の採取を計画・支援する用途も含まれ、この制限は派生物(Derivatives)にもかかる。Ai2は鉱山の拡大を追う事例を見せているが、採掘する側が使うのは禁止という作りだ。
対策:使う前に、自分の用途をライセンス原文と照合すること。TESSERAを商用で使うなら、表記の食い違いを開発元に確認すること。
罠5:年がそろっていない
10月24日時点で、全球で読める年はこうなっている。
AlphaEarth : 2017〜2024年(Earth Engineのカタログ)
TESSERA v1.1 : 2017〜2025年(GeoTesseraのREADME)
TESSERA v2 : 事前リクエスト制(READMEは v2 coverage is still rolling out)
OlmoEarth : 2023〜2025年(2017〜2022年は一部の国。全球の追加は in the coming weeks)
2017〜2025年の9年分を全球でそろえて今すぐ読めるのは、TESSERA v1.1だけだ。 2025年の全球データがないのは、AlphaEarthだけになる。
対策:必要な年と地域を先に決めること。OlmoEarthは assets/coverage.tif、TESSERAは geotessera coverage --country 'United Kingdom' --year 2024(READMEの例。国名を変えて使う)で、有無を確かめてから設計すること。
3製品の比較:今すぐ使うならどれか
2026年10月24日に、各製品の公式ページとGitHub APIから集めた。
| AlphaEarth(Google) | TESSERA(ケンブリッジ) | OlmoEarth v1.3(Ai2) | |
|---|---|---|---|
| 今すぐ全球で読める年 | 2017〜2024年 | v1.1で2017〜2025年 | 2023〜2025年 |
| 入手先 | Earth Engine、GCS | GeoTessera、AWS | Source Cooperative |
| 使い始めに必要なもの | Earth EngineならGoogle Cloudのプロジェクト | GeoTessera(Python 3.12以上) | Zarrクライアントだけ(匿名で読める) |
| 自前の推論 | できない(重み非公開) | できる(v2の重みを公開) | できる(重みを公開) |
| 期間を変えて作る | できない(暦年の配布のみ) | できる | できる(OlmoEarth Studio) |
| GitHubのスター | 公式のモデルリポジトリは見当たらない | tessera 767、geotessera 361 | olmoearth_pretrain 344 |
| 最後のpush | 該当なし | 8月17日、10月4日 | 10月24日 |
| 1画素 | 64バイト | 132バイト(v2) | 128バイト(先頭64なら64) |
表から読み取れること:
- 2025年の地球を全球で今すぐ読めるのは、TESSERA v1.1とOlmoEarth v1.3だけ。 AlphaEarthは2024年分までだ。
- 期間を変えて埋め込みを作り直せるのは、重みが公開されたTESSERAとOlmoEarthだけ。 ケンブリッジの論文では、蒸発散(OpenET)の課題でTESSERA v2を年単位から月単位に変えると、0.51が0.69に上がり、AlphaEarth(年単位)の0.58を逆転した。
- Ai2が比べたTESSERA v2と、今すぐダウンロードできるTESSERA v1.1は別物。 v1.1はAi2の比較に入っていない。ケンブリッジの保留課題では、旧版のv1が0.614で、OlmoEarth-Lと同点だった。
容量と計算量で並べると、こうなる。
| 1画素 | 日本全土1年分(非圧縮・筆者試算) | 地球1年分を自前で計算すると | |
|---|---|---|---|
| AlphaEarth | 64バイト | 約242GB | 非公開 |
| OlmoEarth(先頭64次元) | 64バイト | 約242GB | 128次元と同じ |
| OlmoEarth(128次元) | 128バイト | 約484GB | 約1万4,000 H100時間(約7万ドル相当、筆者試算) |
| TESSERA v2 | 132バイト | 約499GB | 生徒で0.04〜2 H100年、20億の教師で約100 H100年 |
日本の国土は国土地理院の面積調で約37.8万km²、1km²を1万画素として計算した。実際の保存はzstdで圧縮され、OlmoEarthの窓は周りの海も含むので、ダウンロード量はこの値と一致しない。
コピペで使える比較スクリプト
3製品の埋め込みを同じ地点で取り出したら、同じ分割と複数のヘッドで比べる。ヘッドを1つに決め打ちしないのがポイントだ。
# 3製品を同じ条件で比べる(未実行)。scikit-learnが必要
import numpy as np
from sklearn.model_selection import StratifiedKFold
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import balanced_accuracy_score
HEADS = {
'kNN-20': lambda: KNeighborsClassifier(n_neighbors=20),
'LogReg': lambda: LogisticRegression(max_iter=2000),
'RF': lambda: RandomForestClassifier(n_estimators=300, random_state=0),
}
def unit(X):
X = np.asarray(X, dtype='float32')
return X / np.linalg.norm(X, axis=1, keepdims=True)
def compare(products, y, seed=0):
# products の例: {'AEF': (n, 64), 'TESSERA': (n, 128), 'OlmoEarth': (n, 128), 'OlmoEarth[:64]': (n, 64)}
# どの製品でも欠損(NaN)がない地点だけを、同じ順番で渡すこと
y = np.asarray(y)
folds = list(StratifiedKFold(5, shuffle=True, random_state=seed).split(np.zeros(len(y)), y))
for name, X in products.items():
X = unit(X)
for head, make in HEADS.items():
scores = [balanced_accuracy_score(y[te], make().fit(X[tr], y[tr]).predict(X[te]))
for tr, te in folds]
print(f'{name:15s} {head:7s} {np.mean(scores):.3f} ± {np.std(scores):.3f}')
線形とkNNだけで決めるとAlphaEarthの伸びしろを見落とし、点だけを見るヘッドで決めるとTESSERAの伸びしろを見落とす。TESSERAに合うCNNのヘッドを試すなら、点ではなく周りのパッチごと取り出すこと。
教訓:地球の埋め込みは「誰が測ったか」まで読む
✗ 「論文で1位なら最強」 → 3本の論文は、3本とも自分の製品が1位
✗ 「次元が多いほど強い」 → OlmoEarthの先頭64次元が、11評価中7つで両者を上回る
✗ 「kNNでそろえれば公平」 → AEFはMLPやRFで伸び、TESSERAは近所を見るヘッドで伸びる
✗ 「論文で比べた版をすぐ使える」 → TESSERA v2の全球データは事前リクエスト制
✗ 「無料なら何に使ってもいい」 → OlmoEarthは軍事と採掘を禁止。TESSERAは表記が割れている
地球の埋め込みは、衛星画像の前処理と推論という一番重い仕事を肩代わりしてくれる。3製品とも、少ないラベルで地図を作れることを売りにしていて、その入口は無料で開いている。
ただし、どれが一番かを決めるのは論文ではなく、あなたのラベルだ。手元の正解ラベル100点からでいい。今日、3つを同じ分類器にかけてみてほしい。
参考リンク
AlphaEarth Foundations: An embedding field model for accurate and efficient global mapping from sparse label data - arXiv
AlphaEarth Foundations helps map our planet in unprecedented detail - Google DeepMind
Satellite Embedding V1 - Earth Engine Data Catalog
Python Installation - Google Earth Engine
TESSERA v2: Scaling Pixel-wise Earth Foundation Models - arXiv
ucam-eo/tessera - GitHub
ucam-eo/geotessera - GitHub
TESSERA - Registry of Open Data on AWS
geotessera - Hugging Face
OlmoEarth v1.3 Embeddings(技術レポート) - Ai2
OlmoEarth v1.3: State-of-the-art embeddings for the whole planet - Ai2
OlmoEarth v1.3 Embeddings - Source Cooperative
OlmoEarth-v1_3-Base - Hugging Face
OlmoEarth Artifact License - GitHub
OlmoEarth Embeddings Explorer - Ai2
令和7年7月1日時点の全国都道府県市区町村別面積を公表 - 国土地理院
この記事が役に立ったら、いいねと保存を! 衛星データで地図を作っている周りのエンジニアや研究者にも、論文の「1位」を信じる前にシェアしてあげてほしい。
コメントで教えてほしい。
- あなたのタスクで勝つのはどれだと思う? AlphaEarth、TESSERA、OlmoEarth?
- 使うなら64次元で足りる? それとも128次元まで取る?
- 軍事・採掘禁止のライセンス、あなたの仕事に引っかかる?