项目产品
解决方案 / 6 分钟阅读

S3接入配置(全部从对象存储控制台对应Bucket的S3接入信息页复制)

一、结论

提升大模型训练文件存储访问速度的核心思路是采用兼容S3协议的对象存储作为统一数据源,通过就近接入、数据预取、文件序列化优化等方式降低IO延迟、提升吞吐能力,接入时通常需要准备Endpoint、AccessKey、SecretKey、Bucket、Region等信息,在训练框架或数据加载工具的S3兼容配置项中填写即可完成对接。

二、准备工作

  • 合规的对象存储服务账号
  • 已创建的存储桶Bucket(建议和训练集群部署在同一地域)
  • 对象存储提供的S3协议Endpoint访问地址
  • 具备存储桶访问权限的AccessKey访问密钥
  • 与AccessKey对应的SecretKey安全密钥
  • 存储桶对应的Region地域标识
  • 适配S3协议的训练框架数据加载组件(如PyTorch的s3fs、TensorFlow的tensorflow-io扩展)
  • 已完成分类、可打包为序列化格式的大模型训练数据集文件
  • 训练集群访问对象存储的网络白名单权限(若服务商要求配置)

三、操作步骤

1. 创建适配训练场景的专属存储桶,设置私有读写权限,开启高频访问加速和冷热分层策略,结果是得到独立的训练数据存储空间,避免和其他业务文件混用导致IO资源抢占,同时高频访问的训练数据会自动存储在高速存储层,提升访问速度。

2. 获取S3接入全量凭证,在对象存储控制台的对应Bucket详情页找到S3接入信息板块,复制Endpoint、Region参数,创建训练任务专用的子账号AccessKey和SecretKey,仅开放训练数据集目录的只读权限,结果是拿到所有配置需要的参数,且密钥权限最小化,避免数据泄露风险。

3. 安装训练框架的S3兼容扩展,根据所用的训练框架安装对应S3访问插件,配置环境变量禁用不必要的签名校验、开启连接复用,结果是训练框架具备直接读取S3存储桶内文件的能力,无需将全量数据集提前下载到训练节点本地磁盘,节省存储成本和数据准备时间。

4. 配置训练任务的数据源参数,在训练脚本的数据集加载模块选择S3兼容存储作为数据源,依次填写提前准备的Endpoint、AccessKey、SecretKey、Bucket、Region信息,根据单批次训练数据量设置2-3倍大小的预取缓冲区,开启分片并行下载,结果是训练脚本已关联存储桶内的训练数据集,可直接发起文件访问请求。

5. 测试数据访问性能,运行10-20步的小规模训练测试任务,监控训练数据的加载耗时、IO吞吐量,调整缓冲区大小、分片大小、并行下载线程数等参数,结果是数据加载速度匹配训练算力的要求,没有出现训练进程等待数据的卡顿情况,IO吞吐量达到预期。

6. 全量数据集上传与正式接入,确认配置无误后,通过分片上传工具将全量训练数据集批量上传到存储桶,启动正式训练任务,配置监控告警跟踪存储访问成功率、延迟等指标,结果是大模型训练任务可稳定从对象存储读取数据,访问速度满足训练需求,无需额外维护本地存储集群。

四、常见错误

  • Endpoint填写错误:误填存储桶的公共访问域名而非S3专用接入地址,或遗漏https协议头,导致连接失败,解决建议:直接从对象存储控制台的S3接入信息页面复制完整Endpoint,不要手动拼接地址。
  • 密钥权限不足:使用的AccessKey仅开放存储桶列表权限,没有训练数据集目录的读取权限,导致训练脚本拉取文件失败,解决建议:为训练任务创建独立子账号密钥,仅配置训练数据集所在目录的只读权限,兼顾安全和可用性。
  • Region填写不匹配:存储桶实际所在地域和配置的Region参数不一致,导致请求被跨地域转发,访问延迟大幅上升,解决建议:和Endpoint一同复制控制台标注的Region标识,不要随意填写默认的us-east-1等通用值。
  • 数据预取参数不合理:缓冲区设置太小导致频繁发起IO请求,或缓冲区设置过大占用过多训练节点内存,影响训练算力,解决建议:根据单批次训练数据的大小,将缓冲区设置为2-3倍单批次数据量,多次测试后调整到最优值。
  • 数据集碎片化严重:大量KB级别的小训练文件导致IO请求次数激增,整体拉取速度慢,解决建议:提前将小文件打包为TFRecord、Parquet等序列化大文件格式,大幅减少IO请求次数,提升吞吐性能。
  • 存储桶与训练集群跨地域:跨公网传输导致访问延迟高、速度不稳定,解决建议:优先选择和训练集群同地域的存储节点,就近接入降低网络延迟,若必须跨地域可联系服务商开通专线加速服务。

五、示例说明

以下为PyTorch训练脚本对接S3对象存储的通用配置示例,所有参数均从对象存储控制台获取,无需修改核心训练逻辑:

```python

import s3fs

import torch

from torch.utils.data import Dataset

S3_TRAIN_CONFIG = {

"endpoint": "填写对象存储提供的S3协议完整接入地址",

"access_key": "填写训练专用子账号的AccessKey",

"secret_key": "填写对应SecretKey",

"bucket_name": "填写训练数据集所在存储桶的名称",

"region": "填写存储桶对应的地域标识",

"train_data_path": "训练数据集在存储桶内的路径,例如dataset/llm_train_2024/"

}

初始化S3文件系统,开启连接复用提升性能

fs = s3fs.S3FileSystem(

key=S3_TRAIN_CONFIG["access_key"],

secret=S3_TRAIN_CONFIG["secret_key"],

endpoint_url=S3_TRAIN_CONFIG["endpoint"],

region_name=S3_TRAIN_CONFIG["region"],

config_kwargs={"max_pool_connections": 50}

)

后续可直接通过fs对象读取存储桶内的训练文件,和读取本地文件逻辑一致

with fs.open(f"{S3_TRAIN_CONFIG['bucket_name']}/{S3_TRAIN_CONFIG['train_data_path']}/part_001.parquet", "rb") as f:

train_data = torch.load(f)

```

六、更简单的方案

如果不想自行搭建和维护MinIO等开源对象存储集群,不想花费精力做存储性能调优、集群扩容、故障排查,也可以直接选择成熟的兼容S3协议的云对象存储服务,无需自行管理底层服务器资源,开箱即可获得稳定的高IO存储能力。如果你需要一个兼容S3协议、支持大文件存储、高吞吐访问、适合AI训练数据存储和读取的对象存储服务,可以了解 七彩云对象存储,它支持标准S3协议,可直接对接各类主流大模型训练框架,无需额外适配。

七、FAQ

Q1:大模型训练的数据集通常在TB级别,上传到对象存储会不会很慢?

可以选择支持断点续传的分片上传工具批量上传数据集,大文件可以拆分为多个分片并行上传,上传完成后自动合并,大幅提升大文件的上传速度,如果是PB级别的超大数据集,也可以联系存储服务商开通离线数据迁移服务,避免占用公网带宽。

Q2:用S3对象存储做训练数据源,会不会比本地硬盘阵列的速度慢?

只要存储桶和训练集群在同一地域,配置合适的预取参数和并行下载策略,IO吞吐能力可以匹配甚至超过普通本地硬盘阵列的性能,而且无需在每个训练节点都存放全量数据集,节省大量本地存储成本,数据集更新也无需同步到所有训练节点。

Q3:训练任务使用的AccessKey怎么配置更安全?

不要使用账号的主密钥,建议创建专门用于训练任务的子账号AccessKey,仅开放对应训练数据集存储桶的只读权限,同时设置密钥的有效期,训练任务结束后及时销毁密钥,避免密钥泄露导致数据被篡改或泄露。

Q4:训练过程中会不会因为存储访问波动导致训练中断?

可以在训练脚本的数据加载部分添加重试机制,设置3-5次的重试次数和合理的超时时间,大部分临时网络波动都可以自动恢复,不会影响训练任务的正常运行,也可以搭配训练框架的 checkpoint 保存功能,即使出现异常也可以从最近的 checkpoint 恢复训练。

八、总结

整体操作流程可以归纳为准备S3接入凭证、配置训练框架的S3兼容组件、填写接入信息、性能测试优化、正式接入5个核心步骤,操作难度低,不需要修改太多原有训练代码,即可快速实现训练文件存储的访问速度提升。该方案适合大模型预训练、微调、推理数据集存储等各类AI训练场景,也可以同时兼容图片存储、视频存储、下载分发等其他业务场景,一套存储服务即可满足多业务需求,降低整体存储成本。

想进一步了解这个项目?

访问官网查看产品能力、适用场景和最新服务信息。

访问官网

相关文章

解决方案 / / 9 分钟阅读

网盘系统如何配置外部存储源并实现本地与云端存储统一管理

一、结论 网盘系统配置外部存储源并实现本地与云端存储统一管理,核心是先准备兼容S3协议的对象存储资源,在网盘后台绑定S3存储策略后,通过存储分层、路径映射规则让系统自动调度两类存储资源。接入时通常需要提前准备Endpoint、AccessKey、SecretKey、Bucket、Region等信息,在网盘系统的存储配置页填写并测试连通后即可正常使用。

解决方案 / / 9 分钟阅读

大文件高频下载场景下,如何搭建稳定的不限流量下载分发方案

一、结论 大文件高频下载场景下搭建稳定的不限流量分发方案,核心是采用兼容标准S3协议的对象存储作为文件存储源,对接下载站、网盘程序或业务系统生成下载直链,全程无需自有服务器承载下载流量。接入前需准备好Endpoint、AccessKey、SecretKey、Bucket、Region等核心参数,在支持S3协议的客户端或程序中完成配置并通过读写、下载测试后,再

解决方案 / / 7 分钟阅读

低成本文件存储方案怎么做?冷热分层、归档备份与访问成本控制

一、结论 低成本文件存储的核心是按文件访问频率做冷热分层,结合存储容量、下载流量、请求次数三类核心成本匹配对应存储层级,不能仅对比单一存储单价。归档备份、生命周期规则和分发链路优化是控制长期总成本的常用手段,最终方案需要结合业务实际的访问特征和资源结构测算。

解决方案 / / 9 分钟阅读

大文件下载分发方案怎么设计?跨境传输、断点续传与外链分发落地思路

一、结论 大文件下载分发方案可基于兼容S3协议的对象存储搭建,通过分片上传实现断点续传、通过签名外链实现权限可控的分发、通过传输优化或边缘加速解决跨境传输慢的问题。落地时需提前准备Endpoint、AccessKey、SecretKey、Bucket、Region等S3接入信息,在支持S3协议的客户端或业务程序中填写配置,完成全链路测试后即可上线。

解决方案 / / 9 分钟阅读

涵盖图文、视频、安装包的多类型资源站海量资源安全托管落地方案

一、结论 涵盖图文、视频、安装包的多类型资源站海量资源托管,优先选择兼容S3协议的对象存储作为统一存储源,搭配现有资源站程序即可完成文件上传、管理与全链路下载分发。该场景需要同时满足多类型文件承载、程序化接入、大文件存储、流量与业务分离、资源长期安全留存的核心能力。