
MLOpsLLMOps人工智能【免费下载链接】clearmlClearML - Auto-Magical CI/CD to streamline your AI workload. Experiment Management, Data Management, Pipeline, Orchestration, Scheduling Serving in one MLOps/LLMOps solution项目地址https://gitcode.com/gh_mirrors/cl/clearml点击查看免费下载摘要ClearML 提供了一整套数据集管理与版本化解决方案其中clearml-data命令行工具让数据科学家和工程师能够通过简单的命令完成数据集创建、文件添加、上传与版本化。本文基于 examples/datasets/README.md 的官方 CLI 示例深入剖析从单个文件、文件夹到多父版本合并的完整工作流并结合仓库源码解释底层实现机制帮助你快速掌握 ClearML 数据集管理的实战技巧。适用前提本文所有命令均基于 ClearML SDK/CLI 的clearml-data子命令。使用前需确保已安装clearml并配置好 ClearML Server可通过clearml-init完成凭据配置。目录安装与环境准备1. 从单个文件创建数据集2. 从文件夹创建数据集3. 一步完成创建与同步sync 模式4. 创建带父版本的数据集Child Dataset5. 数据集管理核心生命周期6. 结合 Python SDK 的进阶用法7. 版本化与依赖机制的原理8. 数据消费与检索安装与环境准备在开始使用clearml-data前确保在你的环境中安装 ClearML$ pip3 install clearml安装完成后需要配置 ClearML Server 连接凭据。如果尚未配置运行clearml-init并按照提示填写你的 API 凭据API Server、Web Server、File Server 地址及 API Key。这些凭据将被保存到本地的clearml.conf配置文件中供所有后续命令使用。1. 从单个文件创建数据集最简单的数据集创建方式是从一个文件开始。以 CSV 文件为例创建数据集clearml-data create --project Datasets_Examples_CLI --name Simple_CSV_dataset_CLI--project数据集所属项目名用于在 ClearML 中归类组织。--name数据集名称必填。执行后CLI 会在服务器上注册一个新的数据集任务Task并在控制台输出该数据集的 ID形如New dataset created idxxxx。添加文件clearml-data add --files YOUR_CSV_DATASET.csvadd子命令支持以下参数详见 clearml/cli/data/main.py参数说明--id指定数据集 ID。默认使用上一次创建/访问的数据集状态缓存于~/.clearml_data.json--files要添加的文件或文件夹列表--wildcard仅添加匹配该通配符的文件支持多个通配符--links添加外部链接支持s3://、gs://、azure://等--dataset-folder数据集内的目标目录默认数据集根目录--non-recursive禁用递归扫描--max-workers添加文件的线程数默认为逻辑核心数--verbose详细输出add_files会计算每个文件的哈希并与父版本比较标记需要上传的文件参见 clearml/datasets/dataset.py。未指定--id时命令会通过 restore_state 自动从本地状态文件恢复上一次使用的数据集 ID实现连续操作。上传并定稿关闭clearml-data close --verboseclose是“定稿finalize 上传”的联合操作如果存在待上传的本地文件会自动调用Dataset.upload()上传上传完成后调用Dataset.finalize()关闭数据集之后不可再修改--verbose输出详细的处理过程。注意只有close或finalize后的数据集才被视为**完成completed**版本可以被其他数据集继承或下载使用。2. 从文件夹创建数据集当数据由整个文件夹组成时流程与单个文件类似clearml-data create --project Datasets_Examples_CLI --name Datset_From_Folder_CLI clearml-data add --files ./YOUR_DATASET_FOLDER clearml-data close --verboseadd --files指定文件夹路径时默认递归扫描其下所有文件并加入数据集。可以通过--non-recursive关闭递归或通过--wildcard *.jpg之类的通配符只添加特定类型的文件。3. 一步完成创建与同步sync 模式如果目录结构已经组织好可以直接使用sync子命令一条命令完成创建、添加、上传、定稿clearml-data sync --folder ./DATA/MNIST/TRAIN --project Datasets_Examples_CLI --name MNIST_training_dataset_CLIsync会将本地文件夹与数据集双向同步计算本地文件夹与数据集已有文件之间的差异新增文件 → 添加删除的文件 → 移除内容变化的文件 → 标记为修改同步完成后自动上传并定稿数据集。从源码看ds_sync在检测到--project和--name时先创建数据集然后调用 sync_folder它先移除数据集中已不存在于本地文件夹的文件再以递归方式添加本地文件最后自动upload()与finalize()参见 clearml/cli/data/main.py。sync的其他常用参数参数说明--folder本地文件夹路径必填支持通配符如~/data/*.jpg--parents继承指定父数据集 ID合并父版本--dataset-folder数据集内的目标目录--skip-close同步后不自动关闭数据集可继续修改--chunk-size上传分块大小MB默认 512传-1表示整个数据集作为一个分块--storage远程存储位置默认 files_server可指定s3://bucket/data、gs://bucket/data、azure://bucket/data、本地共享目录4. 创建带父版本的数据集Child DatasetClearML 数据集支持版本化继承新数据集可以指定一个或多个父数据集继承其全部文件并在此基础上增量修改。这非常适合“训练集 测试集 → 完整数据集”的场景。步骤 1分别创建训练集与测试集clearml-data sync --folder ./YOUR_DATASET/TRAIN --project Datasets_Examples_CLI --name MNIST_training_dataset_CLI_2 clearml-data sync --folder ./YOUR_DATASET/TEST --project Datasets_Examples_CLI --name MNIST_testing_dataset_CLI_2两条命令分别创建两个已完成finalized的数据集版本执行时注意记录输出的数据集 ID。步骤 2创建子数据集合并父版本clearml-data create --project Datasets_Examples_CLI --name MNIST_complete_dataset_CLI_2 --parents ID_OF_TRAIN_DATASET ID_OF_TEST_DATASET clearml-data close --verbose--parents支持多个数据集 ID含义是“合并所有父版本”。合并规则见 Dataset.create 源码父数据集按传入顺序合并后一个父版本中的同名文件会覆盖前一个数据集继承父版本全部文件无需重新上传只上传新增/修改的部分要求父数据集必须已处于 finalized/closed 状态源码中显式校验is_final()否则抛出ValueError。之后执行clearml-data close --verbose将合并结果定稿完成子数据集的发布。5. 数据集管理核心生命周期一个数据集从创建到可被消费经历以下状态流转create创建/草稿 ↓ add / sync添加文件处于 dirty 状态 upload上传到存储 ↓ close / finalize定稿状态变为 completed ↓ publish可选公开发布 ↓ get消费下载本地副本对应的clearml-data子命令还包括子命令用途list列出数据集内容支持--filter按目录/通配符过滤--modified仅显示本版本的变更文件get获取本地副本--copy获取可写副本--link创建软链接Windows 不支持remove移除数据集中的文件/目录search按项目、名称模糊匹配、标签搜索数据集compare对比两个数据集的差异目标 vs 源基线publish发布数据集要求先定稿delete删除数据集--force强制删除被依赖的版本rename/move重命名 / 移动数据集到其他项目squash将多个数据集合并压扁为一个新版本verify校验本地数据集内容与服务器记录是否一致大部分命令都支持--id指定数据集 ID不指定时默认使用上一次创建/访问的数据集状态保存在~/.clearml_data.json。6. 结合 Python SDK 的进阶用法CLI 命令在底层都映射到clearml.datasets.Dataset类的 Python API入口见 clearml/datasets/init.py。你可以在脚本中直接使用同样的能力实现数据集的程序化创建与管理。创建 CSV 数据集对应示例 csv_dataset_creation.pyfrom clearml import StorageManager, Dataset manager StorageManager() # 下载远程 CSV 文件到本地 csv_file_path manager.get_local_copy( remote_urlhttps://allegro-datasets.s3.amazonaws.com/datasets/Iris_Species.csv ) # 创建数据集默认上传到 ClearML fileserver simple_dataset Dataset.create(dataset_projectdataset_examples, dataset_nameCSV_Dataset) # 添加文件 simple_dataset.add_files(pathcsv_file_path) # 上传并定稿 simple_dataset.upload() simple_dataset.finalize()Dataset.create()支持output_uri参数指定自定义存储如s3://bucket/data、gs://bucket/data、azure://bucket/data、本地共享目录默认使用 ClearML 自带的文件服务器files_server。创建带单父版本的数据集对应示例 single_parent_child_dataset.pyfrom pathlib2 import Path from clearml import Dataset, StorageManager manager StorageManager() mnist_dataset Path( manager.get_local_copy(remote_urlhttps://allegro-datasets.s3.amazonaws.com/datasets/MNIST.zip, nameMNIST) ) # 训练数据集 train_dataset Dataset.create(dataset_projectdataset_examples, dataset_nameMNIST Training Dataset) train_dataset.add_files(pathmnist_dataset / TRAIN, dataset_pathTRAIN) train_dataset.upload() train_dataset.finalize() # 子数据集继承 train_dataset并追加 TEST 数据 child_dataset Dataset.create( dataset_projectdataset_examples, dataset_nameMNIST Complete Dataset, parent_datasets[train_dataset.id] ) child_dataset.add_files(pathmnist_dataset / TEST, dataset_pathTEST) child_dataset.upload() child_dataset.finalize()创建多父版本数据集对应示例 multi_parent_child_dataset.pytrain_dataset Dataset.create(dataset_projectdataset_examples/MNIST, dataset_nameMNIST Training Dataset) train_dataset.add_files(pathmnist_dataset_train, dataset_pathTRAIN) train_dataset.upload(); train_dataset.finalize() test_dataset Dataset.create(dataset_projectdataset_examples/MNIST, dataset_nameMNIST Testing Dataset) test_dataset.add_files(pathmnist_dataset_test, dataset_pathTEST) test_dataset.upload(); test_dataset.finalize() # 合并两个父版本train 在前test 在后 child_dataset Dataset.create( dataset_projectdataset_examples/MNIST, dataset_nameMNIST Complete Dataset, parent_datasets[train_dataset.id, test_dataset.id], ) child_dataset.upload(); child_dataset.finalize()文件夹同步对应示例 dataset_folder_syncing.pymnist_dataset Dataset.create( dataset_projectdataset_examples, dataset_nameMNIST Complete Dataset (Syncing Example) ) # 将 TRAIN 数据拷入本地目录并同步 shutil.copytree(mnist_dataset_train, mnist_train_path) mnist_dataset.sync_folder(mnist_path) mnist_dataset.upload() # 将 TEST 数据拷入本地目录并再次同步 shutil.copytree(mnist_dataset_train, mnist_test_path) mnist_dataset.sync_folder(mnist_path) mnist_dataset.upload() mnist_dataset.finalize()sync_folder是增量同步的利器它对比本地文件夹与数据集内容自动移除已删除的文件、添加新文件、标记内容变化的文件返回removed, added, modified三个计数非常适合持续更新的数据管线。7. 版本化与依赖机制的原理从源码层面看clearml/datasets/dataset.pyClearML 数据集本质上是带系统标签的Task任务每个数据集版本对应服务器上的一个任务记录文件条目FileEntry记录每个文件的相对路径、SHA-256 哈希、大小以及其来源父数据集 ID见 FileEntry 定义。通过哈希比较实现“未修改文件无需重复上传”的去重逻辑依赖图dependency_graph记录当前版本与父版本的继承关系Dataset.create(parent_datasets...)时构建支持多层级的版本链增量存储子版本只上传自身新增/修改的文件分块chunk旧文件直接从父版本继承引用从而极大节省存储与带宽。因此当你执行clearml-data get下载某个子数据集时SDK 会依据依赖图递归合并所有父版本的文件得到完整的数据副本默认使用软链接指向缓存目录节省磁盘空间。8. 数据消费与检索在训练脚本中消费数据集数据集定稿后即可在任意脚本中拉取使用参考 data_ingestion.pyfrom clearml import Dataset # 按名称/项目获取数据集需已定稿/关闭 dataset_path Dataset.get( dataset_namecifar_dataset, dataset_projectdataset_examples, only_completedFalse ).get_local_copy() # dataset_path 即为数据在本地的根目录可直接用于 DataLoader 等Dataset.get()支持按 ID、按名称项目、按名称/项目版本号定位get_local_copy()返回只读缓存副本默认软链接get_mutable_local_copy(target_folder)则返回可写的独立副本。检索与对比# 按项目/名称搜索数据集 clearml-data search --project Datasets_Examples_CLI # 列出某数据集内容 clearml-data list --id dataset_id # 对比两个版本差异target vs source 基线 clearml-data compare --source source_id --target target_idcompare会输出 新增/修改/删除 三类文件的统计与明细--verbose查看全部变更列表便于在数据版本升级后评估影响面。通过本文的 4 个 CLI 场景单文件、文件夹、一键 sync、多父合并以及对应的 Python SDK 等价实现你可以完整掌握 ClearML 数据集创建、版本继承、增量上传与消费的全链路。更完整的可运行示例含 CIFAR 数据集创建、音频预处理等请参考仓库 examples/datasets 目录例如 dataset_creation.py 与 urbansounds_dataset_preprocessing.py。赞分享MLOpsLLMOps人工智能【免费下载链接】clearmlClearML - Auto-Magical CI/CD to streamline your AI workload. Experiment Management, Data Management, Pipeline, Orchestration, Scheduling Serving in one MLOps/LLMOps solution项目地址https://gitcode.com/gh_mirrors/cl/clearml点击查看免费下载相关推荐yolov8-face 实战基于 ClearML 的实验追踪、数据集版本管理与远程训练全指南yolov8 face 实战基于 ClearML 的实验追踪、数据集版本管理与远程训练全指南 导读 本文以 ClearML开源 ML 实验管理平台为主线人工智能计算机视觉深度学习ClearML Python SDK 2.1.3 实战指南基于 Task 与 Dataset 的实验跟踪与数据版本管理ClearML Python SDK 2.1.3 实战指南基于 Task 与 Dataset 的实验跟踪与数据版本管理 导读 本文以 Context HubGHelper 快速上手把华硕笔记本的性能、风扇和续航一次管好GHelper 快速上手把华硕笔记本的性能、风扇和续航一次管好 GHelper 是一款免费开源的华硕笔记本控制工具用来替代官方自带的 Armoury Cra桌面应用系统编程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考