关于人工智能:深析新旧产品突显Express-One-Zone在性能上的优势

45次阅读

共计 10629 个字符,预计需要花费 27 分钟才能阅读完成。

受权申明:本篇文章受权流动官网亚马逊云科技文章转发、改写权,包含不限于在亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官网渠道。

一. 亚马逊云科技 2023 re:Invent 寰球大会

随着数据的快速增长,高效、牢靠的云存储解决方案变得越来越重要。在这个背景下,亚马逊云科技推出的 Amazon S3 Express One Zone 提供了全新的存储体验,它不仅具备了极高的速度,而且具备弱小的安全性,为用户的数据存储和治理带来了革命性的扭转。

各位读者大家好,我是一见已难忘,在本次大会中,亚马逊云科技公布 Amazon S3 Express One Zone- 面向性能要害型应用程序的超高速云对象存储。

亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注 / 珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!

明天在 Amazon S3 Express One Zone 官网看到举荐应用 Amazon S3 Express One Zone 搭配 Amazon SageMaker 模型训练的应用思路,那明天咱们就来深度体验摸索一下基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战—以猫狗辨认模型为例,并且摸索我的项目采纳 Amazon S3 标准版与 Amazon S3 Express One Zone 的差距~

1.1 Amazon S3 Express One Zone- 面向性能要害型应用程序的超高速云对象存储

Amazon S3 Express One Zone 是一款专一于高性能的单可用区存储服务,为常常拜访的数据和对提早敏感的应用程序提供牢靠的毫秒级数据拜访性能。

相较于 S3 Standard,S3 Express One Zone 提供了 10 倍的数据访问速度晋升和 50% 的申请老本升高,同时具备灵便的扩展性,反对解决每分钟数百万个申请的需要。能够抉择将存储与计算资源搁置在同一可用区,以进一步优化性能,升高计算成本,进步工作负载的运行速度。

能够将 S3 Express One Zone 与 Amazon SageMaker 模型训练、Amazon Athena、Amazon EMR 和 Glue Data Catalog 等服务联合应用,从而减速机器学习和剖析工作负载。

Amazon S3 Express One Zone 工作原理图:

Amazon S3 Express One Zone 官网:

高性能存储 – S3 Express One Zone

1.1.1 与传统标准版 Amazon S3 相比

Amazon S3 Express One Zone 与 Amazon S3 相比,特点次要体现在性能和提早方面。S3 Express One Zone 具备继续的极低提早,最多能够达到标准版 S3 的十倍性能,每秒可能解决数十万次申请,并始终保持几毫秒的提早。

它次要面向提早敏感型工作负载,比方金融交易剖析、实时广告举荐、欺诈检测、机器学习训练等场景。对于这些场景常常须要在短时间内发动数百万次的数据拜访,并且提早要求还很高,S3 Express One Zone 能够帮助显著缩短数据密集型应用程序的运行工夫。

另外,S3 Express One Zone 能够解决任何规模的对象,但对于较小的对象来说尤其作用显著。这是因为对于较小的对象,第一个字节的解决工夫与最初一个字节的解决工夫十分靠近。在所有存储系统中,较大的对象须要更长的工夫进行流式解决,因为在传输过程中须要下载更多的数据,并且因而存储提早对对象读取总工夫的影响较小。

与大型对象相比,较小的对象能够从较低的存储提早中取得微小的劣势。因为 S3 Express One Zone 具备继续的极低提早,因而与 Amazon S3 相比,读取小型对象的速度最多能够晋升 10 倍。

1.2 Amazon SageMaker

Amazon SageMaker 是亚马逊云科技提供的一项机器学习(ML)服务。它旨在帮忙开发人员和数据科学家轻松构建、训练和部署机器学习模型。SageMaker 提供了一个端到端的机器学习平台,涵盖了从数据筹备和模型训练到模型部署和推理的整个机器学习工作流程。

Amazon SageMaker 官网:Amazon SageMaker 机器学习_机器学习模型构建训练部署 - 亚马逊云科技云服务

二. 基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战—以猫狗辨认模型为例

2.1 我的项目背景

随着数据规模的迅速增长,图像分类在许多畛域都施展着重要作用。在这个我的项目中,咱们将利用亚马逊云科技的两项要害服务,Amazon S3 Express One Zone 和 Amazon SageMaker,来构建一个猫狗图像分类模型。这个我的项目旨在展现如何利用高性能的云对象存储服务和机器学习平台,疾速而无效地构建和训练一个图像分类模型。

2.2 模型必备

开始我的项目时请筹备:

  1. 筹备亚马逊云科技账号,开明本文所需性能权限。
  2. 超大数据集(蕴含训练集 25000 张,测试集图片 12500 张)。
  3. 本文所需的模型代码、依赖环境等。

2.3 Amazon S3 Express One Zone 创立和配置

亚马逊云科技推出的 Amazon S3 Express One Zone 提供了前所未有的存储体验,它凭借极高的速度、弱小的安全性、高可用性和可扩展性,为用户的数据存储和治理带来了变革,它的创立和配置也算相当的方便快捷,如果有应用 Amazon S3 标准版的教训简直不会遇到什么艰难。

在进行 Amazon S3 Express One Zone 的创立和配置之前,须要先登录亚马逊云科技的账号,到控制台搜寻 S3,点击进入。如下图:

1. 创立一个存储桶。如下图:

阐明:应用 S3,无需领取最低费用。只需为应用的内容付费。

2. 填写须要的配置信息,如下图,须要留神的是要抉择左边的目录存储桶,这个就是咱们须要的 Amazon S3 Express One Zone。

我的存储桶名称叫:dog-and-cat。加上后缀全称为:dog-and-cat–use1-az4–x-s3。

举荐用于低提早利用场景。这些存储桶仅应用 S3 Express One Zone 存储类,可在单个可用区内更快地解决数据。

3. 创立实现会有以下提醒,咱们还能够在 Amazon S3 的存储桶中点击目录存储桶,即可看到咱们刚刚创立的。

4. 配置存储桶策略

如果在后续的操作中遇到权限等问题,我这里也是亲自操作给到了解决方案:

在“存储桶策略”局部,能够增加一个新的策略或编辑现有策略。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::your-bucket-name/*"
    }
  ]
}

your-bucket-name 替换为存储桶名称。

或者应用亚马逊云科技 CLI 设置存储桶策略:

amazon s3api put-bucket-policy –bucket your-bucket-name –policy ‘{“Version”:”2012-10-17″,”Statement”:[{“Effect”:”Allow”,”Principal”:””,”Action”:”s3:GetObject”,”Resource”:”arn:aws:s3:::your-bucket-name/”}]}’

本节心得:

Amazon S3 Express One Zone 的创立和配置相当便捷,特地是对于那些曾经有 Amazon S3 标准版教训的用户。文档提供了一个具体而清晰的步骤指南,使用户可能疾速而顺利地创立和配置 Amazon S3 Express One Zone 存储桶。

这种平滑的过渡使用户可能更轻松地迁徙到更高性能的存储解决方案。

2.4 Amazon S3 Express One Zone 存储模型数据

实现下面配置之后,咱们就能够存储咱们本次训练模型的数据了。上传的形式也有很多种,咱们能够上传压缩包,也能够间接上传文件夹,也能够应用亚马逊云科技的一些依据上传等等。

如下图是我上传的一批图片数据集,本批上传 2205 张。本我的项目残缺超大数据集(蕴含训练集 25000 张,测试集图片 12500 张)

目录构造如下:

本节心得:

  1. 亚马逊云科技有多种上传数据的形式,包含上传压缩包、间接上传文件夹、亚马逊云科技的上传工具包以及利用提供的其余的第三方工具等等,非常便捷。
  2. 存储在 Amazon S3 Express One Zone 中的数据集的组织形式。这对于用户在后续操作中可能更容易地定位和治理他们的数据集是很有帮忙的。

2.5 Amazon SageMaker 部署创立

Amazon SageMaker 创立模型的创立也是非常的方便快捷。

1. 咱们首先到控制台搜寻 Amazon SageMaker 点击进入,创立笔记本实例:

2. 我的实例名称叫 dog-and-cat,与我的主题贴合。须要留神的一点就是在角色那块,须要设置咱们的特定存储桶“dog-and-cat–use1-az4–x-s3”。创立实例后(期待 5-10min 左右)就能够点击关上 Jupyter 了。

3. 在 Jupyter 中点击咱们的 conda_python3 创立一个文件就能够开始写咱们的模型代码了。

心得总结:

  1. Amazon SageMaker 的创立模型过程开始于控制台,通过搜寻和点击的形式即可轻松进入。这种直观的导航使得用户可能疾速找到并启动他们所需的操作,进步了整个应用体验。
  2. 笔记本实例创立实现,期待 5 -10 分钟后就能够点击关上 Jupyter 了。这个步骤的迅速实现使用户可能尽快进入模型代码的编写阶段,进步了整体工作效率。
  3. 文在 Jupyter 中能够通过点击 conda_python3 创立文件开始编写模型代码。这种集成的环境简化了模型开发的流程,用户无需额定配置环境,间接在相熟的 Jupyter 界面中进行代码编写。

2.6 图像分类代码撰写训练模型部署

1. 咱们的图像分类代码撰写部署环节就更多的考验咱们人工智能畛域的相干技术。首先咱们须要检查一下 jupyter 里有没有缺什么模块包,咱们提前对其进行一个装置。

pip install tensorflow

2. 设置指标存储桶:本模型训练会频繁的读取 Amazon S3 Express One Zone 里的数据,咱们须要先设定 S3 存储桶。

import sagemaker
sess = sagemaker.Session()
bucket = "dog-and-cat--use1-az4--x-s3"
sess = sagemaker.Session(default_bucket = bucket)
# 打印默认的 S3 存储桶名称
print(f"Default S3 bucket: {bucket}")

3. 要从 Amazon S3 存储桶中读取文件,能够应用 boto3 库,这是 SDK for Python。

import boto3
from botocore.exceptions import NoCredentialsError
# 替换为你的亚马逊云科技拜访密钥 ID 和机密拜访密钥
aws_access_key_id = 'your_access_key_id'
aws_secret_access_key = 'your_secret_access_key'
bucket_name = 'dog-and-cat--use1-az4--x-s3'
file_key = data/training's3 = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
try:
    s3.download_file(bucket_name, file_key, 'local_file.jpg')
    print(f'Successfully downloaded file from S3 to local_file.jpg')
except NoCredentialsError:
    print('Credentials not available')
    

4. 训练模型代码较长,这里说一下外围代码块:

将本地文件(在这里特指训练集数据和日志文件)上传到 Amazon S3 存储桶中,以便在云环境中进行存储和后续解决。

# 创立 S3 客户端
s3 = boto3.client('s3', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
 
def upload_to_s3(local_path, bucket, s3_path):
    for root, dirs, files in os.walk(local_path):
        for file in files:
            local_file_path = os.path.join(root, file)
            s3_file_path = os.path.join(s3_path, local_file_path[len(local_path):])
            try:
                # 上传文件到 S3
                s3.upload_file(local_file_path, bucket, s3_file_path)
                print(f'Successfully uploaded {local_file_path} to {s3_file_path}')
            except NoCredentialsError:
                print('Credentials not available')
 
# 上传训练集数据到 S3
upload_to_s3(train_dir, bucket_name, 'data/train/')
 
# 上传日志到 S3
upload_to_s3(logs_train_dir, bucket_name, 'log/')

5. 如果想要达到最好的成果 MAX_STEP = 2000 应该为 20000,然而因为训练工夫太长起因,当初设置为 2000。

在经验的一段时间后的训练模型后果:

本节心得:

  1. 通过 SageMaker Session 对象和 Boto3 库,设置了用于存储训练数据和模型的 S3 存储桶。这是在云环境中进行训练所必须的步骤。
  2. 为了在云环境中进行训练,须要将本地文件上传至 S3 存储桶。通过自定义的 upload_to_s3 函数实现了这一步骤,波及训练集数据和日志文件的上传。

2.7 图像分类代码撰写测试模型部署

测试模型和上文的训练模型都应用 S3 Express One Zone 里的图像数据,测试集图片 12500 张。连贯 S3 Express One Zone 和存取的代码雷同,这里列举局部外围代码以及模型测试后果。

test_img = input_data.get_files(test_dir)[0]   # 获取测试集的图片门路列表
    image_array = get_one_image(test_img)          # 从测试集中随机选取一张图片
    # 将这个图设置为默认图,会话设置成默认对话,这样在 with 语句里面也能应用这个会话执行。with tf.Graph().as_default():   
        BATCH_SIZE = 1               # 这里咱们要输出的是一张图 (预测这张随机图)
        N_CLASSES = 2                # 还是二分类 (猫或狗)
 
        image = tf.cast(image_array, tf.float32)                    # 将列表转换成 tf 可能辨认的格局
        image = tf.image.per_image_standardization(image)           # 图片标准化解决
        image = tf.reshape(image, [1, 208, 208, 3])                 # 扭转图片的形态
        logit = model.cnn_inference(image, BATCH_SIZE, N_CLASSES)   # 失去神经网络输入层的预测后果
        logit = tf.nn.softmax(logit)                                # 进行归一化解决(使得预测概率之和为 1)x = tf.placeholder(tf.float32, shape=[208, 208, 3])         # x 变量用于占位,输出的数据要满足这里定的 shape
 
        # 批改成本人训练好的模型门路
        logs_train_dir = 'log/'
 
        saver = tf.train.Saver()
 
        with tf.Session() as sess:
            print("从指定门路中加载模型...")
            ckpt = tf.train.get_checkpoint_state(logs_train_dir)   # 读取门路下的 checkpoint
            # 载入模型,不须要提供模型的名字,会通过 checkpoint 文件定位到最新保留的模型
            if ckpt and ckpt.model_checkpoint_path:                # checkpoint 存在且其寄存的变量不为空
                global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]   # 通过切割获取 ckpt 变量中的步长
                saver.restore(sess, ckpt.model_checkpoint_path)    # 以后会话中,复原该门路下模型的所有参数(即调用训练好的模型)print('模型加载胜利, 训练的步数为:%s' % global_step)
            else:
                print('模型加载失败,checkpoint 文件没找到!')
 
            # 通过 saver.restore() 复原了训练模型的参数(即:神经网络中的权重值),这样 logit 能力失去想要的预测后果
            # 执行 sess.run() 能力运行,并返回后果数据
            prediction = sess.run(logit, feed_dict={x: image_array})   # 输出随机抽取的那张图片数据,失去预测值
            max_index = np.argmax(prediction)                          # 获取输入后果中最大概率的索引 (下标)
            if max_index == 0:
                pre = prediction[:, 0][0] * 100
                print('图片是猫的概率为:{:.2f}%'.format(pre))       # 下标为 0,则为猫,并打印是猫的概率
            else:
                pre = prediction[:, 1][0] * 100
                print('图片是狗的概率为:{:.2f}%'.format(pre))       # 下标为 1,则为狗,并打印是狗的概率
 
    plt.imshow(image_array)                                        # 承受图片并解决
    plt.show()                                                     # 显示图片 

训练后果:

这是在训练为步数的状况下的测试后果,根本满足了咱们的模型要求,当然模型也有很大的改良空间。

本节心得:

应用了 S3 Express One Zone 中的图像数据进行模型测试,测试集蕴含 12500 张图片。与训练模型阶段类似,通过 Boto3 库连贯 S3 Express One Zone 并获取测试集的图片门路列表。

2.8 采纳标准版 S3 和 S3 Express One Zone 别离测试比照试验

为了 S3 Express One Zone 比照传统的 S3 标准版的性能晋升差距,我特意应用了 3 个亚马逊账号来别离跑模型,测算他的训练工夫差距,操作过程如上文。

以下是我用 3 个账号跑了 2 天多的工夫记录(因两头账号权限起因有的操作耽搁了些工夫,可能有一些工夫记录误差,但仍然有参考意义)Amazon S3 标准版和 Amazon S3 Express One Zone 为本次试验的惟一变量,其余的环境和代码均雷同。

将数据进行可视化,咱们能够直观的看到采纳 S3 Express One Zone 的训练工夫要低于标准版 S3 的训练工夫。

数据分析:

训练工夫缩小百分比 =[(采纳 S3 训练工夫−采纳 Amazon S3 Express One Zone 训练工夫) / 采纳 S3 训练工夫 ]×100

  • 对于 2000 张训练集,训练工夫缩小了约 11.8%。
  • 对于 5000 张训练集,训练工夫缩小了约 20.8%。
  • 对于 10000 张训练集,训练工夫缩小了约 4.5%。
  • 对于 20000 张训练集,训练工夫缩小了约 11.2%。

能够看到除 10000 张降落幅度较小,其余均在 10~20 左右,10000 张能够受到了其余因素烦扰,但在宏观能够看到采纳 Amazon S3 Express One Zone 训练工夫降落是显著的。

我在查阅了一些材料后,对这个后果有了肯定的了解。照成这个后果的起因有下(肯定水平上也受其余的影响,但整体来看还是能够体现出 Amazon S3 Express One Zone 的特点)。

  1. Amazon S3 Express One Zone 提供了极低的提早和比 S3 Standard 存储类低 50% 的申请老本,这意味着 Spot 和按需计算资源能够更高效地应用,并且能够更早敞开。
  2. 因为其提早极低,因而对于须要快速访问和解决大量数据的大语言模型和其余根底模型训练任务来说,S3 Express One Zone 能够提供极佳的性能。
  3. 因为 S3 Express One Zone 的低提早和高性能个性,这能够使得训练过程更加疾速和高效。
  4. 官网是应用 Amazon Trainium2 进行根底模型的训练,该芯片专为分布式训练而设计,能够将训练工夫缩短高达 40%。(我这里尽管不是 Amazon Trainium2 进行根底模型的训练,然而仍然缩短了 10~20 左右)。

三. 总结与心得

3.1 心得 - 测评有感

这次深刻的体验摸索了一下发布会说的新性能,的确很惊艳,不愧为老牌 IT 科技公司,公布的产品都是有反动性质的,给我带来了不少的震撼,通过本次的模型试验我总结了上面几个长处,这几个最让我震撼!

  1. Amazon S3 Express One Zone 专一于高性能的单可用区存储服务,提供了极高的速度和低提早。这种性能的晋升对于须要快速访问和解决大量数据的应用程序来说十分重要。
  2. 与传统的 S3 Standard 存储类相比,S3 Express One Zone 不仅提供了性能劣势,还升高了申请老本。这意味着用户能够在不就义性能的状况下,更经济高效地治理他们的数据,亚马逊这次真的是做了一款好产品!
  3. Amazon S3 Express One Zone 其便捷性和用户敌对的操作。这种灵活性使得用户可能疾速、顺利地创立和配置存储桶,平滑过渡到更高性能的存储解决方案,这对咱们用户来说十分敌对,有相干教训的敌人是能够间接上手的!
  4. 我通过图像分类我的项目的实战,胜利想大家展现了 Amazon S3 Express One Zone 在机器学习畛域的利用。这种理论利用案例使得产品更具说服力,可能直观地展现其在解决理论问题时的优越性能。看我下面的试验过程就晓得了,我把 Amazon S3 作为试验惟一变量之后,得出应用 Amazon S3 Express One Zone 广泛能够升高 10%~20% 的训练工夫,尽管用没有应用 Amazon Trainium2 进行根底模型的训练,达到官网升高 40%,然而我试验数据也体现了新产品性能的晋升不是一点半点的!
  5. 我通过与标准版 S3 的性能比照试验,具体记录了不同训练集大小下的训练工夫,并验证了采纳 S3 Express One Zone 训练工夫的明显降低。这样的试验证实了产品在理论应用中的优越性能。

能够看第 2.8 节 采纳标准版 S3 和 S3 Express One Zone 别离测试比照试验过程,残缺的阐述证实了这一事实观点,本次 S3 Express One Zone 给我带来了极大的震撼!

3.2 总结

到最初的总结阶段了,本文采纳了 Amazon S3 Express One Zone 官网看到举荐应用 Amazon S3 Express One Zone 搭配 Amazon SageMaker 模型训练的测评思路,用基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战—以猫狗辨认模型为例,并且摸索我的项目采纳 Amazon S3 标准版与 Amazon S3 Express One Zone 的差距。残缺的形容了具体的应用过程,最初也将 S3 作为试验变量对官网给出的一系列长处进行了核实验证,从我的试验角度来看,本次亚马逊云科技公布的新产品:Amazon S3 Express One Zone。是相当震撼的,是一个反动的、翻新的、里程碑的产品,上面我总结了一下本文的内容,感激大家浏览学习!

  • 亚马逊云科技推出的翻新产品 Amazon S3 Express One Zone。该产品专一于高性能的单可用区存储服务,以提供极高的速度和低提早,实用于对数据拜访性能要求高的应用程序。相较于传统的 S3 Standard 存储类,S3 Express One Zone 提供了显著的性能晋升和申请老本升高。通过在图中展现工作原理,文中具体介绍了其劣势和实用场景。
  • 在通过基于 Amazon S3 Express One Zone 和 Amazon SageMaker 的图像分类实战案例,用 3 个账号别离测试 Amazon S3 标准版和 Amazon S3 Express One Zone 性能晋升后果能够看出,Amazon S3 Express One Zone 比照 AmazonS3 标准版性能和提早方面晋升很大。
  • 联合 Amazon S3 Express One Zone 和 Amazon SageMaker 进行模型训练。以猫狗辨认模型为例,具体介绍了我的项目的背景、所需资料、Amazon S3 Express One Zone 的创立和配置、模型数据的存储以及 SageMaker 的创立和配置等步骤。整个过程中,突出了 Amazon S3 Express One Zone 的便捷性和高性能。
  • 应用 SageMaker 进行模型的创立、训练和部署。通过清晰的步骤和代码演示,展现了如何在 SageMaker 中进行模型的各个阶段,包含数据的上传、模型的训练和测试。整个过程中,SageMaker 提供了便捷的平台,简化了机器学习工作流程。

Amazon S3 Express One Zone 在性能和提早方面的劣势为用户提供了更高效的云存储解决方案。

通过理论我的项目的教训,我胜利实现了该产品在图像分类畛域的利用,并通过比照试验验证了其性能劣势。随着技术的一直倒退,这样的翻新产品将为用户在大数据处理、机器学习等畛域带来更好的体验,咱们一起期待亚马逊云科技的下一次新产品问世!

文章起源:https://dev.amazoncloud.cn/column/article/65896f6a79476548e3e…

正文完
 0