NASA 与 IBM 开源月球基础模型,连数据集一起给了

·阅读约11分钟·Evergreen Tools Team

几十年来,传感器和探测器一直在观测月球,累积出以 PB 计的数据。但要研究月表,科学家要么手工翻阅地图与影像,要么使用低分辨率、针对单一任务的机器学习模型——计算量大,而且未必达到研究所需的科学精度。2026 年 9 月 10 日,IBM 与 NASA 宣布开源发布 NASA-IBM 月球基础模型,官方称这是最早公开可用的、专门面向月球科学探索的基础模型之一,现在即可获取。它建立在一份由 IBM 与 NASA 研究人员整理的大规模月球观测数据集之上。

一、这次发布了什么

先看结果。官方公告给出的核心数字是:在识别月球表面关键地理特征——包括潜在冰沉积、陨石坑与火山构造——方面,该模型比广泛使用的方法最高提升 23%。更值得注意的是它同时发布了数据集:IBM 与 NASA 的科学家构建了同类中首个开源月球数据集,这是一个统一、面向机器学习的数据集,汇集了来自四次任务的九台仪器的 30 多个空间对齐图层,包括数万张影像与地图,涵盖 NASA 月球勘测轨道飞行器(LRO)与 GRAIL 任务的数据,并纳入了日本宇宙航空研究开发机构 SELENE/Kaguya 的补充月球数据。

# The model and dataset are open on Hugging Face, so the fastest way to
# understand what it can do is to load it and look.

from transformers import AutoModel, AutoImageProcessor
from huggingface_hub import hf_hub_download

REPO = "nasa-ibm-ai4science/NASA-IBM-Lunar-Foundation-Model"

processor = AutoImageProcessor.from_pretrained(REPO)
model = AutoModel.from_pretrained(REPO)
model.eval()

# The technical report ships with the model, which is the right place to
# read before you trust any headline number.
report = hf_hub_download(REPO, "NI_LFM_Technical_Report.pdf")
print("technical report:", report)
科学数据可视化

模型把几十年的多仪器观测数据统一进一个框架

二、数据集才是最被低估的部分

数据集的构建本身就是这次发布里最被低估的部分。官方明确指出,尽管月球数据极其丰富,但此前并不存在一个公开可用、统一的数据集,能把多模态、多分辨率的数据整合进现代机器学习可用的统一框架。这意味着在此之前,每个研究团队都要先花大量精力做数据工程,才能开始做科学。现在这部分被标准化了:30 多个空间对齐图层、九台仪器、四次任务,多模态与多分辨率。示例 4 展示了这件事的价值——空间对齐是所有多分辨率融合的前提,当图层已经对齐,你就可以直接把不同分辨率的特征拼接起来,而不是先处理坐标系与重采样。

# Running the model on a lunar tile. The architecture is multimodal and
# multi-resolution on purpose: a crater needs metre-scale detail, while
# volcanic patches are best seen at context scale around 100 metres.

import torch
from PIL import Image

def embed(tile: Image.Image, resolution: str = "context"):
    inputs = processor(images=tile, return_tensors="pt")
    with torch.no_grad():
        out = model(**inputs)
    # Keep the feature map, not just the pooled vector: downstream tasks
    # are segmentation-style, not classification-style.
    return out.last_hidden_state

metro_tile = Image.open("lro_nac_sample.tif")
context_tile = Image.open("lro_wac_sample.tif")

f_metro = embed(metro_tile, resolution="metre")
f_context = embed(context_tile, resolution="context")

# Fuse the two views instead of picking one. That fusion is where the
# reported gains over single-resolution baselines come from.
fused = torch.cat([f_metro.mean(dim=1), f_context.mean(dim=1)], dim=-1)

三、应用之一:月球冰潜势,误差最多降低 22%

三块应用各有具体数字。第一是潜在月球冰沉积:永久阴影区是月球上最难观测的环境之一,但那里可能存在地表下的月球冰,而月球冰意味着水与氧,是未来月球基地乃至火星任务燃料的关键资源。模型结合多模态与多分辨率观测预测冰可能存在的位置,NASA-IBM 的技术论文显示,在识别高潜势月球冰区域时,模型的误差(RMSE)相比 SwinV2-B(ImageNet)模型最多降低 22%。示例 5 就是这个评估方式,用 RMSE 对照论文使用的基线,而不是换一个评估划分来制造「提升」。

# Fine-tuning on your own labels. The paper notes the model reaches
# comparable crater accuracy while being more efficient and cheaper to
# fine-tune than task-specific baselines, so start small.

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./lunar-ft",
    per_device_train_batch_size=4,
    learning_rate=1e-5,
    num_train_epochs=8,
    eval_strategy="steps",
    eval_steps=200,
    save_steps=400,
    # Half the training data was enough for the context-scale crater task,
    # so resist the instinct to throw everything at it.
    max_steps=2000,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=my_lunar_tiles,
    eval_dataset=my_holdout_tiles,
)
trainer.train()
模型评估结果

在识别月球冰潜势区域时误差最多降低 22%

四、应用之二与之三:火山特征与陨石坑检测

第二是火山历史。科学家研究被称为 Irregular Mare Patches 的月球火山特征,以理解月球的火山历史与热演化,而识别这些变化区域对未来地表作业也具有战略意义。官方说明:在使用不完美标签的情况下,模型对火山特征范围的捕捉比 SwinV2-B(ImageNet)模型好 3%,在精度相当的同时效率更高、微调成本更低。第三是陨石坑检测:陨石坑是月球最重要也最具辨识度的特征之一,能揭示地形年龄、地质结构与早期月球内部的化学组成,同时帮助 NASA 选择安全着陆点、避开陡坡与巨石。官方给出的结果是,在米级分辨率下精度与 SwinV2-B 等最先进模型相当,但效率更高、微调成本更低;在约 100 米的情景尺度下,用一半的训练数据就比 SwinV2-B 高出近 19%。

# Multi-resolution fusion in practice: aggregate over several spatial
# layers rather than trusting one zoom level. The dataset already aligns
# the layers, which is the hard part you no longer have to do yourself.

def multi_resolution_features(tile_stack):
    """tile_stack: dict of resolution -> tensor, spatially aligned."""
    features = []
    for resolution in ("1m", "10m", "100m", "1km"):
        tensor = tile_stack.get(resolution)
        if tensor is None:
            continue
        features.append(model.encode(tensor))
    return torch.cat(features, dim=-1)

# Aligned multi-modal input is what lets the model connect an ice signature
# in one instrument with terrain in another. Feeding it a single blurred
# image throws that away.
tile_stack = load_aligned("crater_region_044")
features = multi_resolution_features(tile_stack)

五、为什么科学场景适合基础模型

为什么科学场景适合基础模型?NASA 首席科学数据官 Kevin Murphy 的说法点中了要害:NASA 花了几十年建立非凡的月球科学记录,但收集数据只是工作的一部分,还要让数据更容易被科学家探索和使用。IBM Research 欧洲、英国与爱尔兰主管 Juan Bernabe-Moreno 则强调,这个模型给科学家一个能规模化探索月球的基础,把跨仪器的观测连接起来,揭示孤立看待时难以察觉的模式,并提供一个全球研究社区可以继续构建的开放平台。这句话背后的范式转变很清晰:不再为每个科学问题从零搭建一套算法,而是从一个共享模型出发,把它适配到新任务上。

# Evaluate honestly. The headline comparisons use RMSE for ice potential
# and accuracy or IoU for craters and volcanic patches. Reproduce the
# metric on your own holdout before you report a number.

import numpy as np

def rmse(pred, truth):
    return float(np.sqrt(np.mean((np.asarray(pred) - np.asarray(truth)) ** 2)))

def iou(pred_mask, truth_mask):
    pred_mask = pred_mask.astype(bool)
    truth_mask = truth_mask.astype(bool)
    inter = (pred_mask & truth_mask).sum()
    union = (pred_mask | truth_mask).sum()
    return float(inter / union) if union else 0.0

# Compare against the baseline the paper used, SwinV2-B trained on ImageNet,
# otherwise your "improvement" may just be a different evaluation split.
print("rmse:", rmse(pred_ice, truth_ice))
print("iou :", iou(pred_crater, truth_crater))
科研计算环境

模型与数据集均在 Hugging Face 上开放

六、上手指南与值得注意的一点

要上手的话,建议按这个顺序。第一,从 Hugging Face 加载模型与技术报告,先读报告再看任何标题数字,示例 1 就是这个起点。第二,先跑通推理,理解它是分割式的特征图而不是分类向量,示例 2 展示了多分辨率特征的融合方式。第三,在自己的标签上微调,示例 3 给出了训练循环与关键建议——论文显示情景尺度的陨石坑任务用一半训练数据就够了,不要本能地把所有数据都倒进去。第四,用论文使用的基线做对照,示例 5 提供了 RMSE 与 IoU 的实现,换评估划分制造出来的提升没有意义。第五,注意这个模型属于 Prithvi 系列,该系列覆盖地理空间、气象、太阳物理,如今延伸到月球——如果你的问题跨越多个地球科学领域,值得顺着这条线看看。

📌 常见问题 FAQ

NASA-IBM 月球基础模型是什么时候发布的?

2026 年 9 月 10 日,IBM 与 NASA 宣布开源发布该模型,官方称它是最早公开可用、专门面向月球科学探索的基础模型之一。

它在关键地表特征识别上提升多少?

官方公告称,在识别潜在冰沉积、陨石坑与火山构造等关键地理特征方面,模型比广泛使用的方法最高提升 23%。

配套数据集包含什么?

这是首个开源月球数据集,包含 30 多个空间对齐图层,来自四次任务的九台仪器,整合了 NASA 的 LRO 与 GRAIL 数据以及 JAXA 的 SELENE/Kaguya 补充数据。

在月球冰识别上具体表现如何?

NASA-IBM 技术论文显示,模型在识别高潜势月球冰区域时,误差(RMSE)相比 SwinV2-B(ImageNet)模型最多降低 22%。

模型和数据集在哪里可以获取?

模型与配套技术报告发布在 Hugging Face 上的 nasa-ibm-ai4science/NASA-IBM-Lunar-Foundation-Model 仓库中,属于 Prithvi 系列开放基础模型。