云服务器内容精选

  • 设置API分配配额 专享版集群创建成功后,需要设置API分配配额,当分配配额之后,才能创建相应的API,配额设置参考如下步骤。 在DataArts Studio“空间管理”页签中,单击工作空间操作列“编辑”。 图3 编辑空间管理 在“空间信息”中,单击“设置”按钮对已分配配额进行配置。 图4 设置已分配配额 数据服务专享版在每个DataArts Studio实例下具有创建10个专享版API免费试用额度,超出试用配额后会产生数据服务专享版API的费用,所创建的超出试用配额API按每天每个按1元收费。 设置专享版API已分配配额。 图5 设置配额 已分配配额不能小于已使用配额,不能大于总配额-总分配配额+已分配配额。
  • 设置日志转储 完成购买集群后,可以设置日志转储功能。开启后,集群中当前工作空间下API的所有访问日志,会转储到工作空间指定的OBS桶或者LTS日志中。 在集群页面单击集群名称,进入基本信息页签。 图6 基本信息 选择打开日志转储功能,选择转储方式,目前支持OBS和LTS两种方式。 图7 转储方式选择 当选择OBS存储,当前工作空间中API的所有访问日志,会转储到工作空间指定的OBS桶。 当选择LTS存储,在选择转储方式前,需要在LTS服务中提前新建日志组和日志流,如何新建日志组和日志流请参考云日志接入。选择后当前工作空间中API的所有访问日志,会转储到LTS服务新建的日志流中。
  • 网络环境准备 如图1所示,专享版集群创建后,资源位于资源租户区,由ELB统一对集群节点进行负载均衡。 用户可以通过两种途径访问集群: 内网地址:内网地址为用户VPC内的终端节点IP地址。 外网地址(可选):外网地址为绑定在ELB上的EIP地址。EIP仅在创建数据服务集群时,勾选开启公网入口,才会具备。 图1 专享版集群网络架构说明 因此,为了保证创建的专享版集群能够被用户访问,创建中需要注意如下网络配置: VPC 虚拟私有云。专享版实例需要配置虚拟私有云(VPC),在同一VPC中的资源(如ECS),可以使用专享版实例的私有地址调用API。 在购买时专享版实例时,建议配置和您其他关联业务相同VPC,确保网络安全的同时,方便网络配置。 弹性公网IP 专享版实例的API如果要允许外部调用,则需要购买一个弹性公网IP,并在购买时绑定给实例,作为实例的公网入口。 安全组 安全组类似防火墙,控制谁能访问实例的指定端口,以及控制实例的通信数据流向指定的目的地址。安全组入方向规则建议按需开放地址与端口,这样可以最大程度保护实例的网络安全。 专享版实例绑定的安全组有如下要求: 入方向:如果需要从公网调用API,或从其他安全组内资源调用API,则需要为专享版实例绑定的安全组的入方向放开80(HTTP)、443(HTTPS)两个端口。 出方向:如果后端服务部署在公网,或者其他安全组内,则需要为专享版实例绑定的安全组的出方向放开后端服务地址与API调用监听端口。 如果API的前后端服务与专享版实例绑定了相同的安全组、相同的虚拟私有云,则无需专门为专享版实例开放上述端口。 路由配置 在物理机纳管场景下,如果物理机纳管网段与集群网段不一致,需要配置路由。 进入集群“基本信息”页面,单击配置路由项的“新建”按钮,新增物理机的IP地址,如图2所示。 图2 基本信息
  • 操作步骤 购买数据服务专享集群增量包,系统会按照您所选规格自动创建一个数据服务专享集群。 单击已开通实例卡片上的“购买增量包”。 进入购买DataArts Studio增量包页面,参见表1进行配置。 表1 购买数据服务专享版实例参数说明 参数项 说明 增量包类型 选择数据服务专享集群增量包。 计费方式 实例收费方式,当前支持“包年包月”。 工作空间 选择需要使用数据服务专享集群增量包的工作空间。例如需要在DataArts Studio实例的工作空间A中使用数据服务专享版,则此处工作空间应选择为A。集群购买成功后,即可通过在工作空间A查看到创建好的数据服务专享集群。 可用区 第一次购买DataArts Studio实例或批增量包时,可用区无要求。 再次购买DataArts Studio实例或增量包时,是否将资源放在同一可用区内,主要取决于您对容灾能力和网络时延的要求。 如果您的应用需要较高的容灾能力,建议您将资源部署在同一区域的不同可用区内。 如果您的应用要求实例之间的网络延时较低,则建议您将资源创建在同一可用区内。 详情请参见什么是可用区。 集群名称 - 集群描述 可以自定义对当前数据服务专享版集群的描述。 版本 当前数据服务专享版的集群版本。 集群规格 不同实例规格,对API数量的支持能力不同。 公网入口 开启“公网入口”,即允许外部服务通过公网地址,调用专享版实例创建的API。 带宽大小 可配置公网带宽范围。 虚拟私有云 DataArts Studio实例中的数据服务专享版集群所属的VPC、子网、安全组。 在相同VPC、子网、安全组中的云服务资源(如ECS),可以使用数据服务专享版实例的私有地址调用API。建议将专享版集群和您的其他关联业务配置一个相同的VPC、子网、安全组,确保网络安全的同时,方便网络配置。 VPC、子网、安全组的详细操作,请参见《虚拟私有云用户指南》。 说明: 目前专享版集群创建完成后不支持切换VPC、子网、安全组,请谨慎选择。 如果开启公网入口,安全组入方向需要放开80(HTTP)和443(HTTPS)端口的访问权限。 此处支持选择共享VPC子网,即由VPC的所有者将VPC内的子网共享给当前账号,由当前账号在购买数据服务专享版集群时选择共享VPC子网。通过共享VPC子网功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。如何共享VPC子网,请参考《共享VPC》。 子网 安全组 企业项目 DataArts Studio专享版集群关联的企业项目。企业项目管理是一种按企业项目管理云资源的方式,具体请参见企业管理用户指南。 节点数量 - 购买时长 - 单击“立即购买”,确认规格后提交。
  • 上传代码到工作环境 使用root用户以SSH的方式登录DevServer。 将AscendCloud代码包AscendCloud-3rdLLM-xxx-xxx.zip上传到${workdir}目录下并解压缩,如:/home/ma-user/ws目录下,以下都以/home/ma-user/ws为例。 unzip AscendCloud-3rdLLM-xxx-xxx.zip #解压缩,-xxx-xxx表示版本号和时间戳,请根据实际替换。 上传tokenizers文件到工作目录中的/home/ma-user/ws/tokenizers/Llama2-{MODEL_TYPE}目录,如Llama2-70B。 具体步骤如下: 进入到${workdir}目录下,如:/home/ma-user/ws,创建tokenizers文件目录将权重和词表文件放置此处,以Llama2-70B为例。 cd /home/ma-user/ws mkdir -p tokenizers/Llama2-70B
  • 获取模型软件包和权重文件 本方案支持的模型对应的软件和依赖包获取地址如表1所示,模型列表、对应的开源权重获取地址如表2所示。 表1 模型对应的软件包和依赖包获取地址 代码包名称 代码说明 下载地址 AscendCloud-3rdLLM-xxx-xxx.zip 说明: 软件包名称中的xxx表示时间戳。 包含了本教程中使用到的模型训练代码、推理部署代码和推理评测代码。代码包具体说明请参见模型软件包结构说明。 AscendSpeed是用于模型并行计算的框架,其中包含了许多模型的输入处理方法。 获取路径:Support网站。 请联系您所在企业的华为方技术支持下载获取。 表2 支持的模型类型和权重获取地址 序号 支持模型 支持模型参数量 权重文件获取地址 1 llama2 llama2-7b https://huggingface.co/meta-llama/Llama-2-7b-chat-hf 2 llama2-13b https://huggingface.co/meta-llama/Llama-2-13b-chat-hf 3 llama2-70b https://huggingface.co/meta-llama/Llama-2-70b-hf https://huggingface.co/meta-llama/Llama-2-70b-chat-hf (推荐) 4 llama3 llama3-8b https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct 5 llama3-70b https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct 6 Qwen qwen-7b https://huggingface.co/Qwen/Qwen-7B-Chat 7 qwen-14b https://huggingface.co/Qwen/Qwen-14B-Chat 8 qwen-72b https://huggingface.co/Qwen/Qwen-72B-Chat 9 Qwen1.5 qwen1.5-7b https://huggingface.co/Qwen/Qwen1.5-7B-Chat 10 qwen1.5-14b https://huggingface.co/Qwen/Qwen1.5-14B-Chat 11 qwen1.5-32b https://huggingface.co/Qwen/Qwen1.5-32B-Chat 12 qwen1.5-72b https://huggingface.co/Qwen/Qwen1.5-72B-Chat 13 Yi yi-6b https://huggingface.co/01-ai/Yi-6B-Chat 14 yi-34b https://huggingface.co/01-ai/Yi-34B-Chat 15 ChatGLMv3 glm3-6b https://huggingface.co/THUDM/chatglm3-6b 16 Baichuan2 baichuan2-13b https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat
  • 工作目录介绍 工作目录结构会自动生成,无需用户创建。详细的工作目录如下,训练脚本以分类的方式集中在 scripts 文件夹中。 ${workdir}(例如/home/ma-user/ws ) |──llm_train |── AscendSpeed # 代码目录 |──ascendcloud_patch/ # 针对昇腾云平台适配的功能代码包 |──scripts/ # 训练需要的启动脚本 # 数据目录结构 |── processed_for_input |── ${model_name} # 模型名称 |── data # 预处理后数据 |── pretrain # 预训练加载的数据 |── finetune # 微调加载的数据 |──converted_weights # HuggingFace格式转换magatron格式后权重文件 |── saved_dir_for_output # 训练输出保存权重,根据实际训练需求设置 |── ${model_name} # 模型名称 |── logs # 训练过程中日志(loss、吞吐性能) |—— saved_models |── lora # lora微调输出权重 |── sft # 增量训练输出权重 |── pretrain # 预训练输出权重
  • 模型软件包结构说明 AscendCloud-3rdLLM代码包结构介绍如下: |──llm_train # 模型训练代码包 |──AscendSpeed # 基于AscendSpeed的训练代码 |──ascendcloud_patch/ # 针对昇腾云平台适配的功能补丁包 |──scripts/ # 训练需要的启动脚本 |──llama2 # llama2系列模型执行脚本的文件夹 |──llama3 # llama3系列模型执行脚本的文件夹 |──qwen # Qwen系列模型执行脚本的文件夹 |──qwen1.5 # Qwen1.5系列模型执行脚本的文件夹 |── ... |── dev_pipeline.sh # 系列模型共同调用的多功能的脚本 |── install.sh # 环境部署脚本 |──llm_inference # 推理代码包 |──llm_tools # 推理工具
  • 举例 商家收到的调用数据示例如下: 请求示例: POST https://example.isv.com/produceAPI/v2/tenantSync Content-Type: application/json x-sign:11C4CD6279191DE931DEF5C51531DFFA9D37969F4E356B8A3A6D8DE4FB357A48 x-timestamp:1680508066618 x-nonce:50D83FDECAED6CCD8EF597F2A577950527928BA287D04E6036E92B2806FD17DA {"instanceId": "huaiweitest123456","orderId": "CS1906666666ABCDE","tenantId": "68cbc86****************880d92f36422fa0e","tenantCode": "huawei","name": "huaiweitest","domainName": "https://example.tenantaccount.com","flag": 1,"testFlag": 0,"timeStamp": "20220413093539534"} 响应示例: HTTP/1.1 200 OK Content-Type: application/json { " resultCode": "000000", " resultMsg": "Success" }
  • 生成规则 对请求参数排序,根据参数名自然排序,例如,以字母a开头的参数名会排在以b开头的参数后面,如果首字母相同,将会对第二个字母进行排序,以此类推,直到字符串结束 根据规则对规范请求字符串,密钥取x-sign值,规则: canonicalRequest = accessKey + nonce + timestamp + RequestPayload x-sign = HexEncode(HMAC_SHA256(canonicalRequest))
  • 生成规则 对请求参数排序,根据参数名自然排序,例如,以字母a开头的参数名会排在以b开头的参数后面,如果首字母相同,将会对第二个字母进行排序,以此类推,直到字符串结束 获取规范请求字符串,规则: canonicalRequest = accessKey + nonce + timestamp + Lowercase(HexEncode(HMAC_SHA256 (RequestPayload))) 根据规则对规范请求字符串,密钥取signature值,规则: signature = HexEncode(HMAC_SHA256(canonicalRequest))
  • 定义 云商店每次调用商家的接口时会根据一定规则对请求生成x-sign,并且将x-sign通过HEADER PARAMS的方式添加到URL上,商家在接收到请求后需要同样的规则对请求体进行重新计算x-sign,并且与云商店传递的x-sign相比较,完全相同即为校验通过,通过HEADER PARAMS传递的参数有: 参数 取值 描述 x-sign String 加密签名,通过一定的规则对请求进行签名产生的值。 x-timestamp String UNIX 时间戳(单位毫秒),商家需要校验这个时间戳与当前时间相差不超过60s。 x-nonce String 随机字符串,云商店在每次调用时会随机生成,商家可以通过对这个随机数的缓存来防御API重放攻击。
  • 定义 云商店每次调用商家的接口时会根据一定规则对请求生成signature,并且将signature通过URL PARAMS的方式添加到URL上,商家在接收到请求后需要同样的规则对请求体进行重新计算signature,并且与云商店传递的signature相比较,完全相同即为校验通过,通过URL PARAMS传递的参数有: 参数 取值 描述 signature String 加密签名,通过一定的规则对请求进行签名产生的值。 timestamp Long UNIX 时间戳(单位毫秒),商家需要校验这个时间戳与当前时间相差不超过60s。 nonce String 随机字符串,云商店在每次调用时会随机生成,商家可以通过对这个随机数的缓存来防御API重放攻击。
  • 举例 商家收到的调用请求数据示例如下: curl -X POST -H 'Content-Type: application/json' 'https://www.isvwebsite.com/saasproduce?signature=af71c5a7ef45310b8dc05ab15f7da50189ffa81a95cc284379ebaa5eb61155c0×tamp=1716363778801&nonce=RLLUammMSInlrNWb' --data '{"activity":"newInstance","buyerInfo":{"customerId":"688055390f3049f283fe9f1aa90f1858","customerName":"CBC_marketplace_mwx616072_01","userId":"1e86066c22754361933f607df834e4fe","userName":"CBC_marketplace_mwx616072_01","mobilePhone":"18652996659","email":"mapengfei8@huawei.com"},"orderInfo":[{"businessId":"8a2c4e6f-405a-4f8d-8e24-f41090522646","orderId":"CS2210101920BWXLK","trialFlag":"0","orderAmount":12.78,"chargingMode":"PERIOD","periodType":"month","periodNumber":5,"provisionType":1,"productInfo":[{"skuCode":"a63ee5c9-4f86-11ed-9f95-fa163e8cb3b2","productId":"OFFI788963615933718528","linearValue":20}],"createTime":"20221024194509","expireTime":"20221224194509","extendParams":[{"name":"emailDomainName","value":"test.xxxx.com"},{"name":"extendParamName","value":"extendParamValue"}]}],"testFlag":"1"}'
  • 购买体验版 申请体验版名额。 体验版购买入口需进行名额申请并通过后才会显示,请通过提交工单或拨打服务热线(4000-955-988或950808)并提供账号ID及企业联系方式申请。 图2 获取账号ID 进入购买工业数字模型驱动引擎页面。 选择“数据建模引擎”,根据页面提示,填写运行服务名称,并将“节点配置”下的“节点类型”选择为“体验版 数据建模引擎 节点”。 阅读并勾选同意协议。 协议详细内容请参见《工业数字模型驱动引擎(iDME)服务声明》和《iDME数据授权声明》。 单击“立即购买”。