为此,我们构建了 OlmoEarth 平台:一套支持地理空间模型从微调与评估迈向大规模推理的基础设施。在此规模下开展推理任务面临一系列独特挑战:需跨多个供应商检索并访问卫星影像,对齐不同投影与分辨率的数据,并实现高效处理;随后须将结果拼接为地理上一致的地图,同时基础设施需能自动应对分布式计算中常见的故障。
That’s why we built the OlmoEarth Platform: infrastructure for taking geospatial models from fine-tuning and evaluation to large-scale inference. Inference at this scale presents its own set of challenges. Satellite imagery must be found and accessed across multiple providers, aligned across projections and resolutions, and processed efficiently. Results then have to be stitched into geographically consistent maps while the infrastructure recovers from the routine failures of distributed computing.
因此,我们构建了 OlmoEarth 平台:一套面向地理空间模型的基础设施,支持从微调与评估到大规模推理的全流程。在此规模下开展推理任务本身即带来一系列独特挑战。卫星影像需跨多个数据提供商进行检索与访问,须在不同投影与分辨率之间完成对齐,并实现高效处理。随后,推理结果需拼接为地理上一致的地图,同时基础设施还需从分布式计算中常见的故障中自动恢复。目前,该平台可在约一天内完成洲际尺度区域的推理任务,处理数十太字节(TB)影像,成本低至每平方公里仅需几分钱。其开发过程直面了一系列工程挑战——这些挑战同样可能出现在其他从事大规模地理空间系统工作的团队面前。本文将逐一梳理这些挑战及我们所采用的解决方案。 仅获取数据本身便可能构成重大挑战。预测任务往往花费更多时间下载与准备影像,而非实际运行模型,因此高效的数据流水线至关重要。此类流水线必须支持高吞吐量输入/输出(I/O),同时提供足够的计算能力以完成影像重投影与重采样。由于数据获取与预处理通常占据推理任务运行时的绝大部分,若将此类工作分配给 GPU,则会使系统中最昂贵的硬件执行本更适合 CPU 的任务。为此,我们将每项任务划分为三个阶段,每个阶段均匹配特定的硬件配置: OlmoEarth 平台将这三个阶段分发至多台机器,同时确保 GPU 始终处于满负荷运行状态。多进程数据加载器持续向各 GPU 提供数据流,而完成的输出则直接流式写入 Blob 存储。 实践中,一个州级区域可能被划分为约一百个分区,而洲际尺度的推理任务则可生成数千个分区。相邻分区存在轻微重叠,我们在最终组装输出时对重叠区域进行协调,从而确保最终栅格图无可见接缝。但扇出(fan-out)并非无限制:增加工作节点数量将触及云服务配额上限,因此并行度作为一项“每任务可调参数”,与其他若干参数一同支持针对单个任务进行灵活调整。输出分辨率在数据量与计算开销之间权衡细节精度;模型尺寸在 GPU 运行时间与预测准确性之间取得平衡;对原始影像进行缓存则以存储空间换取重复覆盖同一区域时的速度提升。最优配置取决于具体任务需求——以及预算约束。 我们尽可能依赖公开的 STAC 目录与开放标准。然而,一次大规模推理任务可能瞬时发起数千次元数据查询——远超外部服务(如欧空局 ESA 或微软行星计算机 Microsoft Planetary Computer 所提供的 STAC API)设计所能支持的并发请求量。每个索引条目均存储场景元数据,并附带指向底层像素所有可用位置的指针。运行时,平台择优选取数据源,并针对云优化格式(如 COG 或 Zarr)执行窗口化读取,仅提取当前分区所需字节,而非整景下载。 使该工作流最为顺畅的数据提供商普遍具备以下三项特征——我们亦将其推荐为地球观测数据发布的最佳实践:当新影像上线时通过队列机制推送通知;将数据存储于主流云平台,且不设定制速率限制或可用性瓶颈;采用支持范围读取(ranged reads)的云优化格式。 在此规模下,故障属常态预期:某提供商响应迟缓或短暂不可用;元数据标示影像存在,但实际缺失必要波段或指定窗口;云层覆盖导致可用观测不足;或某项任务彻底崩溃。平台对此作出响应:任务追踪、自动重试、在存在替代来源时自动降级至备用提供商,以及清晰区分可重试错误与致命错误。另有一独立监控进程负责检测停滞或已终止的执行器(runner),并重启其对应任务。 我们的路线图由合作伙伴指出的能力缺口及最迫切需求所驱动。当前重点推进的方向包括: 这听起来是一种颇具前景的方法,有望让缺乏大型工程团队的组织也能更便捷地应用地理空间人工智能技术。令人鼓舞的是,已有工作聚焦于 wildfire 监测、自然保护与灾害响应等实际环境应用场景,并正迈向更大规模的业务化部署。
That’s why we built the OlmoEarth Platform: infrastructure for taking geospatial models from fine-tuning and evaluation to large-scale inference. Inference at this scale presents its own set of challenges. Satellite imagery must be found and accessed across multiple providers, aligned across projections and resolutions, and processed efficiently. Results then have to be stitched into geographically consistent maps while the infrastructure recovers from the routine failures of distributed computing. Today, the platform can run inference across continent-scale areas in roughly a day, processing dozens of terabytes of imagery at a cost of fractions of a penny per square kilometer. Developing it meant confronting a series of engineering challenges that others working on large-scale geospatial systems are likely to encounter as well. This post walks through those challenges and the solutions we arrived at. Even acquiring the data can be a major challenge. Prediction jobs often spend more time downloading and preparing imagery than running the model itself, making efficient data pipelines critical. Those pipelines must handle high-volume I/O while providing the compute needed to reproject and resample imagery. Because data acquisition and preparation often dominate an inference job’s runtime, assigning that work to GPUs would leave the system’s most expensive hardware doing tasks better suited to CPUs. We therefore divide each job into three stages, each matched to a distinct hardware profile: The OlmoEarth Platform distributes these stages across many machines while keeping GPUs fully utilized. Multiprocess data loaders continuously feed each GPU, while completed outputs stream directly to blob storage. In practice, a state-sized area might become a hundred or so partitions, while a continent-scale run can become thousands. Adjacent partitions overlap slightly, and we reconcile that overlap when the outputs are assembled so no seam appears in the final raster. Fan-out is not unbounded, though. More workers push against cloud quotas, so parallelism is a per-run knob, one of several that we can adjust on individual jobs. Output resolution trades data volume and compute for detail; model size trades GPU time for accuracy; caching raw imagery trades storage for speed across repeated runs over the same area. The right setting depends on the task – and budget – at hand. We rely on public STAC catalogs and open standards wherever possible. But a large inference job can generate thousands of metadata queries at once—far more than external services such as ESA’s or Microsoft Planetary Computer’s STAC APIs are designed to handle concurrently. Each index entry stores scene metadata along with pointers to every location where the underlying pixels are available. At runtime, the platform selects the best source and performs windowed reads against cloud-optimized formats such as COG or Zarr, retrieving only the bytes needed for a given partition rather than downloading entire scenes. The providers that made this workflow easiest shared three characteristics that we would recommend as best practices for publishing Earth observation data: queue-based notifications when new imagery becomes available, storage on major cloud platforms without bespoke rate limits or availability bottlenecks, and cloud-optimized formats that support ranged reads. At this scale, failures are expected: a provider may be slow or briefly unavailable; metadata may indicate that imagery exists even when a required band or window is missing; cloud cover may leave too few usable observations; or a task may crash outright. The platform responds with task tracking, automatic retries, fallback to alternate providers when available, and clear distinctions between retryable and fatal errors. A separate monitoring process detects runners that have stalled or stopped and restarts their tasks. Our roadmap is shaped by the gaps our partners have identified and the capabilities they need most. Among the areas we are working on: This sounds like an interesting approach to making geospatial AI more accessible for organizations that may not have large engineering teams. It’s encouraging to see work focused on practical environmental applications such as wildfire monitoring, conservation, and disaster response at a larger operational scale.