【笔记ing】AI大模型-02开发环境搭建

按实验需求合理选用实例规格,一般:模型开发阶段:使用最低算力2U8GB CPU。训练或推理阶段:切换至GPU规格,用完及时关闭算力环境,且切回最低算力规格。

每次实验结束手动关闭实例。使用ModelArts公有云资源。

AI允开发平台产品:百度的EasyDL、腾讯云AI开发平台、阿里天池实验室、华为云ModelArts、RunPod。免费云端AI开发平台:Anaconda、Kaggle。

华为云ModelArts人工智能AI开发平台+PyCharm。本地+云端混合开发环境。

PyCharm版本:2023.1

ModelArts实例创建

ModelArts控制台地址:

https://console.huaweicloud.com/modelarts/?region=cn-north-4#/dev-container

创建Notebook实例

名称:Notebook实例命名,自定义,非中文

描述:当前实例添加描述性文本

自动停止:开启、1小时

镜像:公共镜像、pytorch1.8-cuda10.2-cudnn7-ubuntu18.04。Notebook实例需要指定使用的镜像。ModelArts官方提供公共镜像和自定义镜像,可按需选择。自定义镜像是用户自行基于公共镜像之上创建出来的自定义镜像,包含除公共镜像之外的自定安装的依赖项。镜像的选择依据所需开发的模型场景及建模所需的依赖项。

资源类型:公共资源池

类型(计算类型):CPU。机器学习模型:建议CPU计算。深度学习模型:建议GPU计算。

实例规格:2核 8GB

存储配置:云硬盘EVS。默认5GB存储。

SSH远程开发:密钥对、远程访问白名单(填写允许远程接入的公网IP地址,多个IP用逗号分隔,留空则无接入IP限制)

完成配置后点击立即配置,总览所有配置选项,确认无误后点击提交,系统将开始执行Notebook实例创建过程,约2min。创建完毕后,在控制台-开发环境-Notebook界面查看对应所创实例。

存储模式-使用场景-优缺点

EVS-单机使用,面向大文件-单开发环境中使用

PFS-对象存储,面向大文件-小文件频繁读写较弱

SFS-专属资源池中使用,可多个环境使用-生命周期绑定

本地存储-重型训练任务首选-生命周期绑定

EVS存储:

使用场景:适合只在开发环境中探索数据、算法,性能较好。

优点:块存储SSD,可以理解为一个磁盘,整体IO性能比NFS要好,可以动态扩充,最大可以到4096GB。云硬盘EVS作为持久化存储挂载在/home/ma-user/work目录下,该目录下的内容在实例停止后会被保留,存储支持在线按需扩容。

缺点:只能在单个开发环境中使用。

PFS并行文件系统:

使用场景:数据集的存储。将承载数据集的OBS并行文件系统挂载至Notebook中,在训练时直接使用。代码的存储。在Notebook调测完成,可以直接指定对应的对象存储路径作为启动训练的代码路径,方便临时修改。训练观测。可以将训练日志等输出路径进行挂载,在Notebook中实时查看和观测,特别是利用TensorBoard,Notebook功能完成对训练输出的分析。

优点:PFS是一种经过优化的高性能对象存储文件系统,存储成本低,吞吐量达,能够快速处理高性能计算(HPC)工作负载。在需要使用对象存储服务场景下,推荐使用PFS挂载。

缺点:小文件频繁读写相对PFS较弱,对象存储语义,和Posix语义有区别,需要进一步理解。

SFS弹性文件服务器:

使用场景:目前只支持在专属资源池中使用,针对探索、实验等非正式生产场景,建议使用这种。开发环境和训练环境可以同时挂载一块SFS存储,省去了每次训练作业下载数据的要求,一般来说中IO读写模型,超过32卡的大规模训练不适合。

优点:实现为NFS,可以在多个开发环境、开发环境和训练之间共享,如果不需要重型分布式训练作业,特别是启动训练作业时,不需要额外再对数据进行下载,这种存储遍历性可以作为首选。

缺点:存储生命周期和容器生命周期绑定,每次训练都要下载数据。

本地存储:

使用场景:重型训练任务首选。

优点:运行所在虚拟机或者裸金属机器上自带的SSD高性能存储,文件读写的吞吐量大,建议对于重型训练任务先将数据准备到对应目录再启动训练。默认在容器/cache目录下进行挂载,包含500GB的可用空间。

缺点:存储生命周期和容器生命周期绑定,每次训练都要下载数据。

ModelArts实例使用

操作:启动

操作:打开

+:可点击选择新建Notebook文件、终端

文件夹:新建目录

上传:可从本地PC上传指定文件至Notebook实例

文件区:右键选择操作:新建Notebook、新建目录、文件/目录重命名、文件/目录删除。。。

Notebook:新建Notebook文件

Other:Terminal:打开终端,执行命令行操作

ModelArts的Notebook与Jupyter本地环境的Notebook使用方法一致。

创建自定义镜像

在本地PyCharm IDE中远程连接ModelArts实例搭建本地-云端远程混合开发环境

使用PyCharm ToolKit。

确保创建的Notebook实例以开启SSH远程开发功能。创建时可配,创建后亦可单独配置。

准备密钥对。

必要的勾选全部勾选

密钥对名称自定义

密钥对类型保持默认

KMS加密保持默认

全部配置完毕后点击确定,密钥对即可创建成功,同时会下载至本地目录保存。

SSH远程开发功能配置页面,配置密钥对。

设置远程访问的白名单。白名单是指允许访问当前实例的客户端IP地址。需要设置的是个人本机当前IP地址。ipconfig getifaddr en0

至此,Notebook的SSH远程开发功能配置完成。

PyCharm安装插件。

文件-设置-插件 Settings-Plugins,搜索ModelArts。安装重启应用

工具栏增加ModelArts。

ModelArts-》Edit_Credential 打开配置编辑页面

Region:资源所在区域,默认识别

Project:默认识别

Access Key Id:AK证书密钥

Secret Access Key:SK证书密钥

我的凭证-》访问密钥 -〉创建密钥

插件自动化配置。

PyCharm -》ModelArts-〉Notebook-》Remote Config。。。

KeyPair:选择保存本地的Notebook对应的keypair认证。创建Notebook时创建的密钥对文件.pem文件后缀。

Apply。重启IDE生效。重启后初次更新要点时间。

后续本地远程连接Notebook时,ModelArts-》Notebook-〉your notebook name。

同步上传本地文件至Notebook。Project目录下,右击-》Deployment-〉Upload to 。。。。将本地工程文件上传至指定的Notebook。

后续同步:修改代码后保存ctrl s,即可自动同步。也可Deployment -》update 。。

插件成功登录,SSH远程开发环境成功连接之后,本地PyCharm自动识别出远程环境所具备的解释器。

远程开发模式的使用原理

将本地代码同步到远程环境指定目录下,创建出本地文件与远程文件的映射

在本地完成代码开发,开发完毕将本地代码同步更新至远程环境

在本地代码正常开启运行,运行的其实是远程环境下完成同步的代码,调度的解释器环境也是远程环境下的解释器

程序在远程环境运行,终端输出结果在本地环境展示

RunPodGPU云资源租赁服务

相对优势:计算资源效率较快(高)、网络传输速度快、GPU资源安装部署快。RunPod服务部署国外,网络传输速度快,基本可以达到150MB/s的下载速度。RunPod提供了较丰富的GPU算力资源:RTX4090 显存24GB、A40 显存48GB、A100 显存80GB,可满足不同层面的算力需求

缺点:不支持Pycharm插件,无法支持本地-云端混合开发。较贵,最低的RTX4090显卡的GPU算力资源1小时1美刀。

RunPod无需作为主力使用的AI开发平台,当需要跑些较大的神经网络模型的训练或推理时,ModelArts无法满足,可以考虑将项目迁移到RunPod完成训练或推理。

https://www.runpod.io/console/deploy

————————————

仅用于本人学习

来源:网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python——numpy测试题目

题目: 生成一个2行3列随机整数二维数组a使用Numpy方法对(1)中数组a进行整体求积使用Numpy方法对(1)中数组a进行求每列最大值索引定义一个NumPy一维数组 b,元素为 1 到 10 的整数获取(4&#x…

系分论文《论面向服务开发方法在设备租赁行业的应用》

系统分析师论文系列 【摘要】 2022年5月,我司承接某工程机械租赁企业"智能租赁运营管理平台"建设项目,我作为系统分析师主导系统架构设计。该项目需整合8大类2000余台设备资产,覆盖全国15个区域运营中心与300家代理商,实…

Unity UI中的Pixels Per Unit

Pixels Per Unit在图片导入到Unity的时候,将图片格式设置为Sprite的情况下会出现,其意思是精灵中的多少像素对应世界中的一个单位,默认是100 1. 对于在世界坐标中 在世界坐标中,一般对于Sprite的应用是Sprite Renderer组件 使…

Boost Graph Library (BGL) 介绍与使用示例

Boost Graph Library (BGL) 介绍与使用示例 Boost Graph Library (BGL) 是 Boost 库中用于图论计算的模块,提供了处理图数据结构的通用接口和多种图算法实现。 BGL 主要特性 提供多种图表示方式:邻接表、邻接矩阵等包含常用图算法:DFS、BF…

opencv(C++)操作图像像素

文章目录 添加噪点的案例图像像素值1、访问图像属性2、像素访问方法 at灰度图像彩色图像 3、OpenCV 的向量类型4、 图像传递方式 The cv::Mat_ 类1、作用及优点2、使用 cv::Mat_ 简化像素访问 用指针扫描图像背景算法案例原理1. 图像数据存储的基本结构2、行填充(Pa…

Python实现贪吃蛇一

贪吃蛇是一款经典的小游戏,最近尝试用Python实现它。先做一个基础版本实现以下目标: 1、做一个按钮,控制游戏开始 2、按Q键退出游戏 3、右上角显示一个记分牌 4、随机生成一个食物,蛇吃到食物后长度加一,得10分 5、蛇碰…

《AI大模型应知应会100篇》第13篇:大模型评测标准:如何判断一个模型的优劣

第13篇:大模型评测标准:如何判断一个模型的优劣 摘要 近年来,大语言模型(LLMs)在自然语言处理、代码生成、多模态任务等领域取得了显著进展。然而,随着模型数量和规模的增长,如何科学评估这些模…

工会考试重点内容有哪些:核心考点与备考指南

工会考试重点内容总结:核心考点与备考指南 工会考试主要考察考生对工会法律法规、职能职责、实务操作等内容的掌握程度,适用于企事业单位工会干部、社会化工会工作者等岗位的选拔。本文梳理工会考试的核心考点,帮助考生高效备考。 一、工会…

Verilog学习-1.模块的结构

module aoi(a,b,c,d,f);/*模块名为aoi,端口列表a、b、c、d、f*/ input a,b,c,d;/*模块的输入端口为a,b,c,d*/ output f;;/*模块的输出端口为f*/ wire a,b,c,d,f;/*定义信号的数据类型*/ assign f~((a&b)|(~(c&d)));/*逻辑功能描述*/ endmoduleveirlog hdl 程…

MySQL数据库备份与恢复详解

在数据库管理中,数据的备份与恢复是至关重要的一环。对于MySQL数据库,定期备份不仅能防止数据丢失,还能在发生故障时快速恢复数据库。本文将详细介绍MySQL数据库的备份与恢复方法,覆盖所有常用备份和恢复方式,帮助大家…

FFMPEG和opencv的编译

首先 sudo apt-get update -qq && sudo apt-get -y install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-de…

华为机试—最大最小路

题目 对于给定的无向无根树&#xff0c;第 i 个节点上有一个权值 wi​ 。我们定义一条简单路径是好的&#xff0c;当且仅当&#xff1a;路径上的点的点权最小值小于等于 a &#xff0c;路径上的点的点权最大值大于等于 b 。 保证给定的 a<b&#xff0c;你需要计算有多少条简…

spring cloud微服务开发中声明式服务调用详解及主流框架/解决方案对比

声明式服务调用详解 1. 核心概念 定义&#xff1a;通过配置或注解声明服务调用逻辑&#xff0c;而非手动编写客户端代码&#xff0c;提升开发效率与可维护性。核心特性&#xff1a; 解耦&#xff1a;调用逻辑与业务代码分离内置容错&#xff1a;熔断、超时、重试等动态发现&am…

基于springboot+vue的秦皇岛旅游景点管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 用户登录 旅游路…

【数据结构】之二叉树

二叉树是我们在数据结构中学到的第一个非线性结构&#xff0c;是后续学习更为复杂的树、图结构的基础。本文整理了二叉树的概念定义、基本操作、遍历算法、伪代码与代码实现以及实例说明&#xff0c;方便大家随时查找对应。 一、定义与基本术语 二叉树是一种树形结构&#xf…

Honeyview:快速浏览各类图像

Honeyview是一款免费、轻量级图片查看工具‌&#xff0c;专为快速浏览各类图像设计&#xff0c;支持Windows系统‌。其核心优势在于‌极速加载‌与‌广泛格式兼容性‌&#xff0c;可替代系统自带的图片查看工具&#xff0c;尤其适合需要处理专业图像&#xff08;如PSD、RAW&…

Streamlit性能优化:缓存与状态管理实战

目录 &#x1f4cc; 核心特性 &#x1f4cc; 运行原理 &#xff08;1&#xff09;全脚本执行 &#xff08;2&#xff09;差异更新 &#x1f4cc; 缓存机制 ❓为什么使用缓存&#xff1f; 使用st.cache_data的优化方案 缓存适用场景 使用st.session_state的优化方案 &…

十七、TCP编程

TCP 编程是网络通信的核心&#xff0c;其 API 围绕面向连接的特性设计&#xff0c;涵盖服务端和客户端的交互流程。以下是基于 ​C 语言的 TCP 编程核心 API 及使用流程的详细解析&#xff1a; 核心 API 概览 ​函数​角色​描述socket()通用创建套接字&#xff0c;指定协议族…

将外网下载的 Docker 镜像拷贝到内网运行

将外网下载的 Docker 镜像拷贝到内网运行&#xff0c;可以通过以下步骤实现&#xff1a; 一、在有外网访问权限的机器上操作 下载镜像 使用docker pull命令下载所需的镜像。例如&#xff0c;如果你需要下载一个名为nginx的镜像&#xff0c;可以运行以下命令&#xff1a;docke…

《深入理解生命周期与作用域:以C语言为例》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、生命周期&#xff1a;变量的存在时间&#xff08;一&#xff09;生命周期的定义&#xff08;二&#xff09;C语言中的生命周期类型&#xff08;三&#…