妙到毫巅,在阿里云容器服务中体验RAPIDS加速数据科学

  • 时间:
  • 浏览:0
  • 来源:大发5分3D_大发5分3D官方

需用您已创建好容器服务 Kubernetes集群。 您有助选择管版的Kubernetes集群。

愿因需用运行系统组件容器,节点中共要有有一个 多多 Worker节点。

8.输入启动命令中设置的密码,很久 单击Log in。 在本例子中,密码为mypassw0rd

2.2 提取图片内部结构。 对分割得到的有一个 多多 图片数据集执行model.predict()辦法 提取图片内部结构。

本示例从1万张搜索图片中随机选择5张图片并搜索相似图片,最终展示出5行4列图片。

4.查看访问地址,这里是ENDPOINT_ADDRESS和PORTS的组合, 在本示例中它是106.15.173.2:3000。同時 发现该任务在32秒的前一天就有助变成Running情况

其中,knn_cuml.fit()辦法 为创建索引阶段,knn_cuml.kneighbors()为搜索近邻阶段。

您有助执行model.summary()辦法 查看模型的网络内部结构。

准备托管k8s的集群,所谓托管k8s的集群很久 你這個 k8s的管控节点由阿里云承担资源和运维成本,很久 创建了虚拟的Kubelet节点

1.安装arena

图像搜索示例的执行过程分为有一个 多多 步骤:出理 数据集、提取图片内部结构和搜索相似图片。本文示例结果中对比了GPU加速的RAPIDS cuml KNN与CPU实现的scikit-learn KNN的性能。

本文介绍通过Arena+阿里云Serverless Kubernetes快速,简单,低成本的使用RAPIDS加速数据科学。

1.出理 数据集。

1.1 下载和解压数据集。 本文示例中使用了STL-10数据集,该数据集暗暗含 5万张未打标的图片,图片的尺寸均为:96 x 96 x 3, 您有助使用一点数据集,为便于提取图片内部结构,请确保数据集中图片的尺寸相同。

KNN向量检索耗时791 ms。

说明: 推荐使用Chrome浏览器。

3.再提交rapids任务前,没没有人需用做一点准备。准备的目的是加速创建过程和比较复杂访问操作。

1.3. 展示图片。 执行show_image(image)辦法 随机展示一张数据集中的图片。

4.提交rapids的开发环境

而一谈起Nvidia GPU,没没有人首先会想到的很久 深度学习,传统的机器学习和数据分析的辦法 对GPU的利用却很少,实际上Nvidia有有一个 多多 非常优秀的项目RAPIDS,全称Real-time Acceleration Platform for Integrated Data Science,是NVIDIA针对数据科学和机器学习推出的GPU加速库。更多RAPIDS信息请参见官方网站。这是有一个 多多 致力于将GPU加速带给传统算法的项目,很久 提供了与Pandas和scikit-learn一致的用法和体验。实际上RAPIDS有有一个 多多 模块:cuDF共要Pandas,cuML共要scikit-learn,cuGraph则是出理 图数据的。愿因它的兼容性很好,没没有人有助把RAPIDS与深度学习框架结合,用cuDF来利用GPU加速出理 数据,很久 使用TensorFlow和PyTorch的深度学习模型框架出理 任务。

--selector=type=virtual-kubelet表示通过Virtual Node启动Pod

--annotation=k8s.aliyun.com/eci-instance-type=ecs.gn5i-c8g1.2xlarge表示指定使用ECI的实例类型,ecs.gn5i-c8g1.2xlarge代表阿里云P4机型。具体规格有助查看文档

--annotation=k8s.aliyun.com/eci-image-snapshot-id=imc-uf6dxdji7txxxxx指定3.2.3步中的CACHEID

-e=PASSWORD=mypassw0rd很久 通过环境变量PASSWORD设置访问RAPIDS notebook

--gpus=1表示申请的GPU数目

2.提取图片内部结构。 使用开源框架Tensorflow和Keras提取图片内部结构,其中模型为基于ImageNet数据集的ResNet3000(notop)预训练模型。

2.1 设定Tensorflow参数。 Tensorflow默认使用所有GPU显存,没没有人需用留出每项GPU显存供cuML使用。您有助选择有一种辦法 设置GPU显存参数:

KNN向量检索耗时7分34秒。

1.2. 读取图片。 从数据集解压出的数据为二进制格式,执行read_all_images(path_to_data)辦法 加载数据并转换为NHWC(batch, height, width, channels)格式,以便用Tensorflow提取图片内部结构。

本文示例提供了download_and_extract(data_dir)辦法 供您下载和解压STL-10数据集。RAPIDS镜像中愿因将数据集下载到./data目录,您有助执行download_and_extract()辦法 直接解压数据集。

1.4. 分割数据集。 按照9:1的比例把数据集分为两每项,分别用于创建图片索引库和搜索图片。

3.2.1.GPU的容器镜像通常很大,以本实验要使用的rapids容器镜像为例,它的容量为14.7GB.通常启动时间会在10分钟左右。而通过镜像缓存的能力有助将你這個 从无到有的过程缩短到20s左右。

5.再次查看集群的GPU使用情况,发现愿因有有一个 多多 GPU资源被占用了

3.2.3.提交后稍等片刻。查看ImageCache情况,其中CACHID有助做上方提交任务时指定的snapshot-id

说明: 单击一次执行有一个 多多 cell,请单击至示例执行现在现在开始,删剪说明请参见示例执行过程。

2.2 下载ResNet3000(notop)预训练模型。 连接公网下载模型(大小约91M),目前该模型愿因被保存到/root/.keras/models/目录。

3.2 使用scikit-learn KNN搜索相似图片。 通过n_neighbors=3设置K值为3,通过n_jobs=-1设置使用所有CPU进行近邻搜索。

算法、数据和算力称为人工智能的三大每项,愿因没有 算力的支撑,人工智能难以落地。而Nvidia GPU的强劲算力是AI模型训练加速的首选,很久 它的价格也我我着实不菲。怎样才能有助简单,有效同時 低成本的使用Nvidia GPU的算力,使用阿里云容器服务+ECI+Arena的方案是有一个 多多 有助参考的选项。

3.3 对比cuml KNN和scikit-learn KNN的搜索结果。 对比有一种辦法 的KNN向量检索速率单位,使用GPU加速的cuml KNN耗时791 ms,使用CPU的scikit-learn KNN耗时7min 34s。前者为后者的近3000倍。

说明: ecs.gn5i-c8g1.2xlarge的配置为8 vCPU。

第一列为搜索图片,第二列至第四列为图片索引库中的相似图片,且相似性依次递减。每张相似图片的标题为计算的距离,数值越大相似性越低。

3.2.2.而在serverless kubernetes中,你只需用创建有一个 多多 ImageCache CRD,就有助直接使用镜像缓存的能力。

在本文中,没没有人将介绍怎样才能利用TensorFlow和Rapids实现在阿里云容器服务上以图搜图的功能;同時 通过ECI实现GPU资源的使用即申请,秒级的GPU资源准备速率单位,完成即释放,用户不必提前准备GPU实例;而站在使用者的深度,他并不需用和Kubernetes的基础设施打交道,通过arena的命令行,就有助实现暗含 GPU的RAPIDS环境的构建和运行,很久 完成对GPU基础设施的管理。

辦法 1:辦法 运行需求进行显存分配。

7.根据步骤4中的访问地址和端口,打开本地浏览器。输入http://{ENDPOINT ADDRESS}:{ENDPOINT PORT},在本例子中是http://105.13.58.3:3000

6.愿因想查询是哪个Pod占用了你這個 GPU, 有助在原有命令中加有一个 多多 -d就有助看到具体的Pod名称。

2.先运行一下arena命令查看集群的GPU资源, 有助看到在该用户集群下,有有一个 多多 真实节点并没有 暗含 GPU资源,同時 位于了有一个 多多 虚拟节点,该节点并不真实位于,不必付费,同時 它提供了无限的GPU资源有助扩展。

1.进入示例所在目录cuml。

2.双击cuml_knn.ipynb文件。

3.单击

3.1.设置访问辦法 。将访问辦法 设置为LoadBalancer(该辦法 很久 为了示例简单,并不推荐您在生产环境开放外网ip方访问)

辦法 2:设定有助使用的GPU显存比例。本示例中使用辦法 2,很久 GPU显存比例默认设置为0.3,即Tensorflow有助使用整块GPU显存的300%,您有助辦法 应用场景修改比例。

具体操作有助参考文档

3.2.加速启动速率单位

验证有一种辦法 的输出结果是是否是相同,输出结果为有一个 多多 数组: