Data Lake
探索数据湖如何成为 AI 和 ML 的基石。学习利用原始数据训练 Ultralytics YOLO26 并简化计算机视觉工作流程。
数据湖是一个集中式存储库,它能以原生格式保存海量的原始数据,直到需要时再使用。与那些在存入前要求数据结构化的传统存储系统不同,数据湖接受“原样”数据,包括结构化数据(行和列)、半结构化数据(CSV、日志、XML、JSON)、非结构化数据(电子邮件、文档、PDF)以及二进制数据(图像、音频、视频)。这种架构灵活性使数据湖成为现代 Big Data 战略的基石,特别是对于那些利用 Artificial Intelligence (AI) 和 Machine Learning (ML) 的组织而言。通过将数据获取与数据使用解耦,组织能够以相对较低的成本存储海量信息池,并在日后确定具体的分析需求。
Link to this section数据湖在 AI 和机器学习中的作用#
在 AI 开发的背景下,数据湖的主要价值在于其支持 Deep Learning (DL) 工作流的能力。先进的神经网络需要多样且庞大的 training data 才能获得高精度。数据湖充当了一个暂存区,在处理之前,原始资产——例如用于 Computer Vision (CV) 的数百万张高分辨率图像或用于 Speech Recognition 的数千小时音频——都存储在这里。
数据科学家在数据湖中使用“读时模式(schema-on-read)”方法。这意味着只有在读取数据进行处理时才会应用结构,而不是在写入存储时。这带来了巨大的灵活性;同一个原始数据集可以通过多种方式进行处理,以用于不同的 predictive modeling 任务,而无需更改原始源。此外,强大的数据湖通常与 cloud computing 服务集成,如 Amazon S3 或 Azure Blob Storage,从而能够支持训练像 YOLO26 这样重型模型所需的扩展性并行处理。
Link to this section数据湖 vs. 数据仓库#
虽然经常被混淆,但数据湖与数据仓库是不同的。 data warehouse 将数据存储在结构化表格中,并针对快速 SQL 查询和商业智能报告进行了优化。它使用“写时模式(schema-on-write)”,意味着数据必须在进入系统之前通过 ETL (Extract, Transform, Load) 流程进行清洗和转换。
相反,数据湖针对存储容量和多样性进行了优化。它支持 unsupervised learning 和探索性分析,其中的目标可能尚未确定。例如,数据仓库可以告诉你上个月销售了多少产品,而数据湖则保留了原始的 customer sentiment 日志和图像数据,帮助 AI 模型理解其销售的原因。
Link to this section实际应用#
数据湖在推动自动化边界的各个行业中发挥着重要作用:
- 自动驾驶汽车: 开发自动驾驶技术需要处理拍字节(petabytes)级的传感器数据。 Autonomous vehicles 会生成持续的 LiDAR 点云、雷达信号和高清视频流。数据湖存储这些原始遥测数据,使工程师能够重现现实场景,从而训练 Object Detection 模型,以识别不同天气条件下的行人和障碍物。
- 医疗诊断: 在现代 medical image analysis 中,医院将患者病史、基因组数据和成像文件(MRI、CT 扫描)整合到一个安全的数据湖中。研究人员随后可以访问这些去标识化的非结构化数据,用于训练 tumor detection 或疾病预测模型,通常会利用 segmentation 技术来提取医学影像中的感兴趣区域。
Link to this section结合 Ultralytics 使用数据湖#
在使用 Ultralytics Platform 时,用户通常会从组织的数据湖中提取原始数据子集,以创建用于训练的标注数据集。一旦检索并标注了原始图像,它们就可以用于训练先进的模型。
以下示例展示了开发者如何加载本地数据集(模拟从数据湖中获取)来训练 YOLO26 模型以执行检测任务。
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model using a dataset configuration file
# In a production pipeline, this data might be streamed or downloaded
# from a cloud-based data lake prior to this step.
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)
# Run inference on a new image to verify performance
predictions = model("https://ultralytics.com/images/bus.jpg")





