LITHOLENS™ 平台:基于机器学习的自动化岩心录井云架构实践

概述

在采矿业,对钻孔岩心进行精确的地质分析是优化矿山设计和开发的关键。传统方法依赖于地质学家前往偏远现场进行人工检查,不仅耗时费力,还存在主观性强、数据不一致、历史数据利用率低等问题。ALS GeoAnalytics 开发的 LITHOLENS™ 平台,通过整合深度学习和机器视觉技术,自动化了岩心录井过程,显著提升了数据质量与工作效率。

从 SRE 的视角看,此类 AI/ML 平台的成功交付不仅依赖于算法精度,更依赖于其底层基础设施的可靠性、可扩展性与成本效率。LITHOLENS™ 构建于 Amazon EKS 之上的混合架构,为如何设计一个能够弹性伸缩、快速迭代且成本可控的机器学习工作负载,提供了一个优秀的实践案例。该架构展示了如何通过容器化和无服务器技术,在满足高性能计算需求的同时,实现资源的精细化管理和成本的动态优化。

核心概念

1. 岩心录井与地质建模

创建矿体三维地图(地质或资源模型)是矿山开发的基础。该模型驱动后续所有设计决策,需要通过钻探数千个钻孔并检查提取的样本结构来实现。LITHOLENS™ 旨在解决这一过程中的痛点,如现场访问困难、解释主观、历史数据浪费、样本退化、流程不透明以及对稀缺专家的依赖。

2. 机器学习管道

LITHOLENS™ 的核心是一个处理高分辨率岩心图像的 ML 管道,主要模块包括:

  • 颜色提取模块:扫描图像像素,将颜色数据存储至 Amazon S3。
  • 颜色聚类模块:使用 K-Means 或高斯混合模型(GMM)等算法对颜色数据进行聚类,以降低图像复杂度并突出矿物学差异。
  • 百分比报告模块:将图像分割为用户定义的区段(如每20厘米),计算各颜色聚类的占比,从而实现岩性模式的量化空间分析。

3. 深度学习模型

平台部署了专为地质和岩土工程分析定制的深度学习模型:

  • RoQE Net:一个用于提取岩土工程参数的神经网络,在计算岩石质量指标(RQD)和提取α角方面表现出色。
  • VeinNet 和 CobbleNet:用于高精度识别和映射复杂的岩脉、卵石及岩性结构。这些模型在准确性和可扩展性上超越了传统方法。

实践

LITHOLENS™ 构建在 AWS 上,采用了一种结合容器化工作负载与无服务器组件的混合架构,兼顾性能与成本。

解决方案架构

  • 计算与编排:使用 Amazon EKS 来运行计算密集型的机器学习训练与推理任务。利用 GPU 加速的 G6 实例提供算力,并通过作业队列深度实现自动伸缩。
  • 轻量级 API 操作:使用 AWS Lambda 作为 API 后端,处理作业提交、状态查询和结果检索等请求,避免了为偶发性请求维护常开服务器的开销。
  • 数据存储:Amazon S3 用于存储原始图像、中间结果和最终输出数据。Amazon RDS 用于管理结构化的元数据。
  • 统一接口:通过 Amazon API Gateway 提供一个统一的 REST API,用户可借此提交作业、监控进度并获取结果,简化了跨部门、跨数据源的复杂工作流。

架构流程

  1. 请求接入:用户通过 API Gateway 提交作业,负载中包含作业参数和 EKS 配置。
  2. 作业编排:运行在 Lambda 上的 API 后端根据配置预配 EKS 容器。用户数据脚本会引导实例完成所需的设置和执行命令。
  3. 执行与数据流:
    • 从 S3 检索输入数据。
    • 在 EKS Pod(G6 实例)上执行计算。
    • 持续跟踪日志和中间结果。
    • 将结果存储至 S3 或通过专用 API 调用持久化至 RDS。
  4. 资源管理:作业完成后,EKS 容器实例自动关闭,避免空闲资源产生费用。

关键架构决策与优化

  • 面向计算优化的容器镜像:使用包含所有依赖和模型工件的预配置 Amazon Machine Image (AMI),将容器启动时间从数分钟缩短至30秒以内,显著提高了作业吞吐量并减少了计算成本。
  • 零伸缩的 EKS 集群:在没有作业排队时,EKS 集群可以自动缩容至零,确保计算资源仅在活动处理期间被消耗。
  • 职责分离:重型 ML 任务由可伸缩的 EKS 处理,轻量级 API 逻辑由无服务器 Lambda 承载,这种设计完美匹配了地质行业不可预测的工作负载模式。

SRE 要点

与可靠性及可观测性的关联

该架构为 ML 系统的可靠性提供了良好范式:

  • 弹性伸缩:通过 EKS 基于队列深度的自动伸缩和 Lambda 的天然弹性,系统能够应对负载波动,避免因资源不足导致的请求失败,提升了服务的可用性。
  • 资源效率:预配置 AMI 和自动关闭容器实例减少了冷启动时间和资源浪费,直接优化了延迟和成本这两个关键的 SRE 关注点。
  • 可观测性基础:架构中明确提到了“日志和中间结果的持续跟踪”,这为构建全面的可观测性(日志、指标、追踪)奠定了基础,对于监控 ML 管道健康、诊断训练或推理中的异常至关重要。

最佳实践与反模式

  • 最佳实践:
    • 为负载模式设计:识别作业(重计算)和 API(轻交互)的不同特性,为它们选择最合适的计算原语(EKS vs. Lambda)。
    • 投资于启动速度:通过自定义 AMI 等方式优化容器启动时间,是提升批处理系统效率的关键。
    • 无服务器化管理平面:将 API 逻辑移至 Lambda,降低了运维复杂性并实现了按使用付费。
  • 反模式警示:避免为所有工作负载使用单一计算类型(例如,为轻量 API 也部署常开的 EC2 集群),这会导致资源闲置和成本增加。同样,在 ML 训练场景中,应避免动态安装依赖而导致的启动延迟。

相关指标(SLI/SLO/SLA)

对于运行此架构的 SRE 团队,应关注以下指标:

  • SLI (服务水平指标):
    • 作业成功率:提交的 ML 作业中成功完成的比例。
    • 端到端延迟:从作业提交到结果就绪的总时间(分位数,如 P95)。
    • 资源利用率:EKS 集群的 CPU/GPU 平均利用率与闲置率。
    • 基础设施成本:与处理的作业量或数据量相关的单位成本。
  • SLO (服务水平目标):例如,“在 95% 的情况下,标准岩心分析作业应在 1 小时内完成”。
  • Error Budget:基于 SLO,可以量化为满足可靠性目标所允许的故障时间或失败作业数量,并据此在新功能发布速度与系统稳定性之间做出权衡。

LITHOLENS™ 平台的成功证明,通过精心设计的云原生架构,可以将复杂的 ML 应用转化为可靠、高效且成本可控的服务。其核心思想——弹性伸缩、职责分离、按需使用资源——是 SRE 在构建和运维现代 AI 平台时可以广泛借鉴的原则。