华为云用户手册

  • 全球SIM联接 可实现设备在全球范围,通过定量流量、空中写卡和远程设备发放技术,实现就近华为公有云站点可靠接入,并享受当地资费套餐,详情请参考全球SIM联接。 功能 简介 连接服务管理 记录连接服务和其关联的设备信息,并支持对服务进行机卡关联、服务导出、服务订购/退订、停用/启用、网络切换等操作。 订购管理 提供连接服务的购买和订单的查询功能。 空中写卡 SIM卡功能和数据全部由软件实现,可以远程将SIM卡功能和数据写入设备。
  • 设备接入 物联网平台 支持终端设备直接接入,也可以通过工业网关或者家庭网关接入;支持多网络接入、多协议接入、系列化Agent接入,解决设备接入复杂多样化和碎片化难题;提供基础的设备管理功能,实现设备的快速接入。 功能 简介 多网络接入 支持有线和无线的接入方式,如固定宽带、2G/3G/4G/5G、NB-IoT、Z-Wave、ZigBee、eLTE等。详细请参见设备集成引导。 多协议接入 支持设备通过LWM2M、CoAP、MQTT(S)、LoRa、Modbus等协议接入。详细请参见设备集成引导。 系列化Agent接入 支持Agent Lite和Agent Tiny,覆盖的语言包括C、Java、Android。Agent与海思、高通主流芯片、模组预集成,缩短TTM。详细请参见设备集成引导。 设备双向通信 物联网平台提供设备数据采集功能,例如设备业务数据、设备告警,同时支持应用对设备数据的订阅。详细请参见订阅推送。 支持通过应用服务器或控制台以下发命令的方式,将命令下发到设备,达到平台对设备远程控制的效果。详细请参见命令下发。 应用对接 物联网平台开放了海量的API接口和SDK,帮助开发者快速孵化行业应用。详细查看应用对接指引。 设备影子 设备影子是一个JSON文档,用于存储设备的状态、设备最近一次上报的设备属性、应用服务器期望下发的配置。每个设备有且只有一个设备影子,设备可以获取和设置设备影子以此来同步状态,这个同步可以是影子同步给设备,也可以是设备同步给影子。详细请参见设备影子。 数据转发规则 数据转发规则是规则引擎的一种,用于将物联网平台接收的设备数据,转发到华为公有云的其它服务进行数据分析、存储等。详细请参见规则引擎。 设备实时状态监控 物联网平台实时监控设备的状态,包括在线、离线、未激活,实时获取状态变更通知。详细请参见设备监控。 审计日志 控制台对所有物联网平台的使用人员的操作日志、安全日志(登录、登出、密码修改等)进行记录,便于 日志分析 和故障定位。详细请参见设备监控。
  • 数组及可变长数组数据类型 如果该烟感设备需要支持描述信息上报功能,描述信息描述信息支持数组和可变长度数组两种类型,则按照以下步骤创建消息。 产品模型定义 在烟感产品的开发空间完成产品模型定义。 图40 模型定义-smokedetector携带other_info 编解码插件开发 在烟感产品的开发空间,选择“插件开发”,单击“图形化开发”。 单击“新增消息”,新增消息“other_info”,上报数组类型的描述信息。配置此步骤的主要目的是,将设备上传的数组二进制码流消息解码成JSON格式,以便物联网平台理解。配置示例如下: 消息名:other_info 消息类型:数据上报 添加响应字段:是。添加响应字段后,物联网平台在收到设备上报的数据后,会下发用户设置的响应数据到设备。 响应数据:AAAA0000(默认) 图41 插件开发-新增消息other_info 单击“添加字段”,添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x2用于标识上报描述信息(数组类型)的消息。messageId、数据类型、长度、默认值、偏移值的说明可参考1。 图42 插件开发-添加字段messageId(0x2) 添加other_info字段,“数据类型”选择“array”,表示数组类型的描述信息。在本场景中,“长度”配置为5个字节。字段名、默认值、偏移值的说明可参考2。 图43 插件开发-添加字段other_info为array 单击“新增消息”,新增“other_info2”消息,上报可变长度数组类型的描述信息。配置此步骤的主要目的是,将设备上传的可变长度数组二进制码流消息解码成JSON格式,以便物联网平台理解。配置示例如下: 消息名:other_info2 消息类型:数据上报 添加响应字段:是。添加响应字段后,物联网平台在收到设备上报的数据后,会下发用户设置的响应数据到设备。 响应数据:AAAA0000(默认) 图44 插件开发-新增消息other_info2 单击“添加字段”,添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x3用于标识上报描述信息(可变长度数组类型)的消息。messageId、数据类型、长度、默认值、偏移值的说明可参考1。 图45 插件开发-添加字段messageId(0x3) 添加length字段,表示数组长度。“数据类型”根据可变长度数组的长度进行配置,长度在255以内,配置为“int8u”。长度、默认值、偏移值的说明可参考2。 图46 插件开发-添加字段length 添加other_info字段,数据类型选择“variant”,表示可变长度数组类型的描述信息。“长度关联字段”选择“length”,表示当前可变长数组的长度由上报的length的值决定。“掩码”默认为“0xff”,用来计算该数组实际生效的长度,例如:“长度关联字段”length的值为5,其对应的二进制为:00000101,此时若掩码为0xff,对应的二进制为:11111111,那么两者进行“与“运算之后的结果为00000101,即十进制的5,那么该数组实际生效的长度为5。如上报数据为03051234567890,表示当前上报的数据对应的是messageId为03的的message,可变长数组长度为5,可变长参数other_info对应的码流为1234567890。 图47 插件开发-添加字段other_info为variant 拖动右侧“设备模型”区域的属性字段,与数据上报消息的相应字段建立映射关系。 图48 插件开发-数据上报字段映射关系other_info为varint 单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。 图49 插件开发-部署插件 调测编解码插件 在烟感产品的开发空间,选择“在线调试”,并单击“新增测试设备”。 用户可根据自己的业务场景,选择使用真实设备或者虚拟设备进行调测。具体调测步骤请参考在线调试。本文以虚拟设备为例,调测编解码插件。 在弹出的“新增测试设备”窗口,选择“虚拟设备”,单击“确定”,创建一个虚拟设备。虚拟设备名称包含 “DeviceSimulator”字样,每款产品下只能创建一个虚拟设备。 图50 在线调试-创建虚拟设备 单击“调试”,进入调试界面。 图51 在线调试-进入调试 使用设备模拟器上报数组类型的描述信息。 十六进制码流示例:0211223344。02表示messageId,此消息上报数组类型的描述信息;11223344表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息不足5个字节,编解码插件无法解析。 图52 在线调试-模拟数据上报other_info数组1 十六进制码流示例:021122334455。02表示messageId,此消息上报数组类型的描述信息;1122334455表示描述信息,长度为5个字节。 在“应用模拟器”区域查看数据上报的结果:{serviceId: smokedetector, data: {"other_info":"ESIzRFU="}}。描述信息长度为5个字节,编解码插件解析成功。 图53 在线调试-模拟数据上报other_info数组2 十六进制码流示例:02112233445566。02表示messageId,此消息上报数组类型的描述信息;112233445566表示描述信息,长度为6个字节。 在“应用模拟器”区域查看数据上报的结果:{serviceId: smokedetector, data: {"other_info":"ESIzRFU="}}。描述信息长度超过5个字节,编解码插件截取前5个字节进行解析。 图54 在线调试-模拟数据上报other_info数组3 使用设备模拟器上报可变长度数组类型的描述信息。 十六进制码流示例:030101。03表示messageId,此消息上报可变长度数组类型的描述信息;01表示描述信息长度(1个字节),长度为1个字节;01表示描述信息,长度为1个字节。 在“应用模拟器”区域查看数据上报的结果:{serviceId: smokedetector, data: {"other_info":"AQ=="}}。AQ==是01经过base64编码后的值。 图55 在线调试-模拟数据上报other_info可变长数组1 十六进制码流示例:03020102。03表示messageId,此消息上报可变长度数组类型的描述信息;02表示描述信息长度(2个字节),长度为1个字节;0102表示描述信息,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{serviceId: smokedetector, data: {"other_info":"AQI="}}。AQI=是01经过base64编码后的值。 图56 在线调试-模拟数据上报other_info可变长数组2 十六进制码流示例:03030102。03表示messageId,此消息上报可变长度数组类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;0102表示描述信息,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息长度不足3个字节,编解码插件解析失败。 图57 在线调试-模拟数据上报other_info可变长数组3 十六进制码流示例:0303010203。03表示messageId,此消息上报可变长度数组类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;010203表示描述信息,长度为3个字节。 在“应用模拟器”区域查看数据上报的结果:{serviceId: smokedetector, data: {"other_info":"AQID"}}。AQID是010203经过base64编码后的值。 图58 在线调试-模拟数据上报other_info可变长数组4 十六进制码流示例:030301020304。03表示messageId,此消息上报可变长度数组类型的描述信息;03表示描述信息长度(3个字节),长度为1个字节;01020304表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AQID}。描述信息长度超过3个字节,编解码插件截取前3个字节进行解析,AQID是010203经过base64编码后的值。 图59 在线调试-模拟数据上报other_info可变长数组5 base64编码方式说明 base64编码方式会把3个8位字节(3*8=24)转化为4个6位字节(4*6=24),并在每个6位字节前补两个0,构成4个8位字节的形式。如果要进行编码的码流不足3个字节,则在码流后用0填充,使用0填充的字节经编码输出的字符为“=”。 base64可以将16进制码流当做字符或者数值进行编码,两种方式获得的编码结果不同。以16进制码流01为例进行说明: 把01当作字符,不足3个字符,补1个0,得到010。通过查询ASCII码表,将字符转换为8位二进制数,即:0转换为00110000、1转换为00110001,因此010可以转换为001100000011000100110000(3*8=24)。再转换为4个6位字节:001100、000011、000100、110000,并在每个6位字节前补两个0,得到:00001100、00000011、00000100、00110000。这4个8位字节对应的10进制数分别为12、3、4、48,通过查询base64编码表,获得M(12)、D(3)、E(4),由于3个字符中,最后一个字符通过补0获得,因此第4个8位字节使用“=”表示。最终,把01当做字符,通过base64编码得到MDE=。 把01当作数值(即1),不足3个字符,补两个0,得到100。将数值转换为8位2进制数,即:0转换为00000000、1转换为00000001,因此100可以转换为000000010000000000000000(3*8=24)。在转换为4个6位字节:000000、010000、000000、000000,并在每个6位字节前补两个0,得到:00000000、00010000、00000000、00000000。这4个8位字节对应的10进制数分别为:0、16、0、0,通过查询base64编码表,获得A(0)、Q(16),由于3个数值中,最后两个数值通过补0获得,因此第3、4个8位字节使用“=”表示。最终,把01当作数值,通过base64编码得到AQ==。 总结 当数据类型为数组或可变长度数组时,插件是按照base64进行编解码的:上报数据时,将16进制码流进行base64编码,比如:01编码为“AQ==”;命令下发时,将字符进行base64解码,比如:“AQ==”解码为01。 当某字段的数据类型为可变长度数组时,该字段需要关联长度字段,长度字段的数据类型必须为int。 针对可变长度数组,命令下发和数据上报的编解码插件开发方式相同。 图形化开发的编解码插件使用base64进行编码时,是将16进制码流当做数值进行编码。
  • 字符串及可变长字符串的编解码插件 如果该烟感设备需要支持描述信息上报功能,描述信息支持字符串和可变长度字符串两种类型,则按照以下步骤创建消息。 产品模型定义 重新创建一个烟感产品,并在烟感产品的开发空间完成产品模型定义。 图20 模型定义-smokedetector携带other_info 编解码插件开发 在烟感产品的开发空间,选择“插件开发”,单击“图形化开发”。 单击“新增消息”,新增消息“other_info”,上报字符串类型的描述信息。配置此步骤的主要目的是,将设备上传的字符串二进制码流消息解码成JSON格式,以便物联网平台理解。配置示例如下: 消息名:other_info 消息类型:数据上报 添加响应字段:是。添加响应字段后,物联网平台在收到设备上报的数据后,会下发用户设置的响应数据到设备。 响应数据:AAAA0000(默认) 图21 插件开发-新增消息other_info 单击“添加字段”,添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x2用于标识上报描述信息(字符串类型)的消息。messageId、数据类型、长度、默认值、偏移值的说明可参考1。 图22 插件开发-添加字段messageId(0x2) 添加other_info字段,表示字符串类型的描述信息。在本场景中,字符串类型的字段数据类型选择“string”,“长度”配置 6个字节。字段名、默认值、偏移值的说明可参考2。 图23 插件开发-添加字段other_info 单击“新增消息”,新增“other_info2”消息名,配置数据上报消息,上报可变长度字符串类型的描述信息。配置此步骤的主要目的是,将设备上传的可变长度字符串二进制码流消息解码成JSON格式,以便物联网平台理解。配置示例如下: 消息名:other_info2 消息类型:数据上报 添加响应字段:是。添加响应字段后,物联网平台在收到设备上报的数据后,会下发用户设置的响应数据到设备。 响应数据:AAAA0000(默认) 图24 插件开发-新增消息other_info2 添加messageId字段,表示消息种类。在本场景中,0x0用于标识上报火灾等级和温度的消息,0x1用于标识只上报温度的消息,0x3用于标识上报描述信息(可变长度字符串类型)的消息。messageId、数据类型、长度、默认值、偏移值的说明可参考1。 图25 插件开发-添加字段messageId(0x3) 添加length字段,表示可变字符串长度。“数据类型”根据可变长度字符串的长度进行配置,此场景可变字符串长度在255以内,配置为“int8u”。长度、默认值、偏移值的说明可参考2。 图26 插件开发-添加字段length 添加other_info字段,数据类型选择“varstring”,表示可变长度字符串类型的描述信息。“长度关联字段”选择“length”,表示当前可变长字符串的长度由上报的length的值决定。“掩码”默认为“0xff”,用来计算该字段实际生效的长度,例如:“长度关联字段”length的值为5,其对应的二进制为:00000101,此时若掩码为0xff,对应的二进制为:11111111,那么两者进行“与“运算之后的结果为00000101,即十进制的5,那么该字段实际生效的长度为5个字节。如上报数据为03051234567890,表示当前上报的数据对应的是messageId为03的的message,可变长字符串长度为5个字节,可变长参数other_info对应的码流为1234567890。 图27 插件开发-添加字段other_info为varstring 拖动右侧“设备模型”区域的属性字段,与数据上报消息的相应字段建立映射关系。 图28 插件开发-数据上报字段映射关系 单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。 图29 插件开发-部署插件 调测编解码插件 在烟感产品的开发空间,选择“在线调试”,并单击“新增测试设备”。 用户可根据自己的业务场景,选择使用真实设备或者虚拟设备进行调测。具体调测步骤请参考在线调试。本文以虚拟设备为例,调测编解码插件。 在弹出的“新增测试设备”窗口,选择“虚拟设备”,单击“确定”,创建一个虚拟设备。虚拟设备名称包含 “DeviceSimulator”字样,每款产品下只能创建一个虚拟设备。 图30 在线调试-创建虚拟设备 单击“调试”,进入调试界面。 图31 在线调试-进入调试 使用设备模拟器上报字符串类型的描述信息。 十六进制码流示例:0231。02表示messageId,此消息上报字符串类型的描述信息;31表示描述信息,长度为1个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息不足6个字节,编解码插件无法解析。 图32 在线调试-模拟数据上报other_info长度不足 十六进制码流示例:02313233343536。02表示messageId,此消息上报字符串类型的描述信息;313233343536表示描述信息,长度为6个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=123456}。描述信息长度为6个字节,编解码插件解析成功。 图33 在线调试-模拟数据上报other_info长度合适 十六进制码流示例:023132333435363738。02表示messageId,此消息上报字符串类型的描述信息;3132333435363738表示描述信息,长度为8个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=123456}。描述信息长度超过6个字节,编解码插件截取前6个字节进行解析。 图34 在线调试-模拟数据上报other_info长度过长 十六进制码流示例:02013132333435。02表示messageId,此消息上报字符串类型的描述信息;013132333435表示描述信息,长度为6个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=\u000112345}。01在ASCII码表里表示“标题开始”,无法用具体字符表示,因此编解码插件解析为\u0001。 图35 在线调试-模拟数据上报other_info ASCII码 使用设备模拟器上报可变长度字符串类型的描述信息。 十六进制码流示例:030141。03表示messageId,此消息上报可变长度字符串类型的描述信息;01表示描述信息长度;41表示描述信息,长度为1个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=A}。41是A的十六进制ASCII码。 图36 在线调试-模拟数据上报other_info可变长字符串1 十六进制码流示例:03024142。03表示messageId,此消息上报可变长度字符串类型的描述信息;02表示描述信息的长度;4142表示描述信息,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=AB}。4142是AB的十六进制ASCII码。 图37 在线调试-模拟数据上报other_info可变长字符串2 十六进制码流示例:030341424344。03表示messageId,此消息上报可变长度字符串类型的描述信息;03表示描述信息长度;41424344表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=ABC}。描述信息长度超过3个字节,编解码插件截取前3个字节进行解析,414243是ABC的十六进制ASCII码。 图38 在线调试-模拟数据上报other_info可变长字符串3 十六进制码流示例:0304414243。03表示messageId,此消息上报可变长度字符串类型的描述信息;04表示字符串长度;414243表示描述信息,长度为4个字节。 在“应用模拟器”区域查看数据上报的结果:{other_info=null}。描述信息长度不足4个字节,编解码插件解析失败。 图39 在线调试-模拟数据上报other_info可变长字符串4 总结 当数据类型为字符串或可变长度字符串时,插件是按照ASCII码进行编解码的:上报数据时,将16进制码流解码为对应字符串,比如:21解析为“!”、31解析为“1”、41解析为“A”;下发命令时,将字符串编码对应的16进制码流,比如:“!”编码为21,“1”编码为31,“A”编码为41。 当某字段的数据类型为可变长度字符串时,该字段需要关联长度字段,长度字段的数据类型必须为int。 针对可变长度字符串,命令下发和数据上报的编解码插件开发方式相同。 图形化开发的编解码插件使用ASCII码16进制的标准表对字符串和可变长度字符串进行编解码。解码时(数据上报),如果解析结果无法使用具体字符表示,如:标题开始、正文开始、正文结束等,则使用\u+2字节码流值表示(例如:01解析为\u0001,02解析为\u0002);如果解析结果可以使用具体字符表示,则使用具体字符。
  • 数据上报和命令下发 场景说明 有一款烟感设备,具有如下特征: 具有烟雾报警功能(火灾等级)和温度上报功能。 支持远程控制命令,可远程打开报警功能。比如火灾现场温度,远程打开烟雾报警,提醒住户疏散。 支持上报命令执行结果。 产品模型定义 在烟感产品的开发空间,完成产品模型定义。 level:火灾级别,用于表示火灾的严重程度。 temperature:温度,用于表示火灾现场温度。 SET_ALARM:打开或关闭告警命令,value=0表示关闭,value=1表示打开。 图1 模型定义-smokedetector 编解码插件开发 在烟感产品的开发空间,选择“插件开发”,单击“图形化开发”。 单击“新增消息”,新增“smokerinfo”消息。配置此步骤的主要目的是,将设备上传的二进制码流消息解码成JSON格式,以便物联网平台理解。配置示例如下: 消息名:smokerinfo 消息类型:数据上报。 添加响应字段:是。添加响应字段后,物联网平台在收到设备上报的数据后,会下发用户设置的响应数据到设备。 响应数据:AAAA0000(默认) 图2 插件开发-新增消息smokerinfo 单击“添加字段”,勾选“标记为地址域”,添加messageId字段,表示消息类型。在本场景中,上报火灾等级和温度的消息类型是0x0。设备上报消息时,每条消息首个字段就是messageId。如设备上报消息为0001013A,第一个字段00就是表示此条消息是上报火灾级别和温度的消息。后续字段01和013A分别代表火灾级别和温度。如果只有一条数据上报消息和一条命令下发消息,可以不添加messageId字段。 “数据类型”根据数据上报消息种类的数量进行配置。messageId字段默认的数据类型为int8u。 “偏移值”是根据字段位置和字段的字节数的配置自动填充的。messageId为此消息的第一个字段,起始位置为0,字节长度为1,终点位置为1。所以偏移值为0-1。 “长度”是根据“数据类型”的配置自动填充的。 “默认值”可以修改,但必须为十六进制格式,且设备数据上报消息的对应字段必须和此处的默认值保持一致。 图3 插件开发-添加字段messageId 添加level字段,表示火灾级别。 “字段名”只能输入包含字母、数字、_和$,且不能以数字开头的字符。 “数据类型”根据设备上报数据的实际情况进行配置,需要和产品模型相应字段的定义相匹配。产品模型中定义的火灾级别level属性的数据类型为int,最大值为9。所以选择的数据类型为int8u。 “偏移值”是根据字段位置和字段的字节数的配置自动填充的。“level”字段的起始位置就是前一字段的终点,前一字段“messageId”的终点位置为1,所以“level”字段的起始位置为1。“level”字段长度为1个字节,终点为2。所以“偏移值”为1-2。 “长度”根据“数据类型”的配置自动填充。 “默认值”不填。此处火灾级别level不固定,无默认值。 图4 插件开发-添加字段level 添加temperature字段,表示温度。 “数据类型”,在产品模型中,temperature属性的“数据类型”为int,最大值1000,因此在插件中定义temperature字段的“数据类型”为“int16u”,以满足temperature属性的取值范围。 “偏移值”是根据与首字段的间隔的字符数自动配置的。“temperature”字段的起始位置就是前一字段的终点,前一字段“level”的终点位置为2,所以“temperature”字段的起始位置为2。“temperature”字段长度为2个字节,终点为4。所以“偏移值”为2-4。 “长度”根据数据类型的配置自动填充。 “默认值”不填,此处温度temperature的值不固定,无默认值。 图5 插件开发-添加字段temperature 单击“新增消息”,新增“SET_ALARM”消息,设置火灾告警的温度阈值。例如超过60摄氏度,设备上报告警。配置此步骤的主要目的是,将平台下发的JSON格式命令消息编码成二进制数据,以便烟感设备理解。配置示例如下: 消息名:SET_ALARM 消息类型:命令下发 添加响应字段:是。添加响应字段后,设备在接收命令后,可以上报命令执行结果。您可以根据自己的需求,选择是否添加响应字段。 图6 插件开发-新增消息SET_ALARM 单击“添加字段”,添加messageId字段,表示消息类型。例如,设置火灾告警阈值的消息类型为0x3。messageId、数据类型、长度、默认值、偏移值的说明可参考1。 图7 插件开发-添加命令字段messageId(0x3) 添加mid字段。这里的mid字段是由平台生成和下发的,用于将下发的命令和命令下发响应消息关联。mid字段的数据类型默认为int16u。长度、默认值、偏移值的说明可参考2。 图8 插件开发-添加命令字段mid 添加value字段,表示下发命令的参数值。例如,下发火灾告警的温度阈值。数据类型、长度、默认值、偏移值的说明可以参考2。 图9 插件开发-添加命令字段value 单击“添加响应字段”,添加“messageId”字段,表示消息类型。命令下发响应消息为上行消息,需要通过messageId和数据上报消息进行区分。上报火灾告警温度阈值的消息类型为0x4。messageId、数据类型、长度、默认值、偏移值的说明可参考1。 图10 插件开发-添加响应字段messageId(0x4) 添加mid字段。这里的mid字段需要跟平台下发的命令里的mid字段保持一致,用于将下发的命令和命令执行结果进行关联。mid字段的数据类型默认为int16u。长度、默认值、偏移值的说明可参考2。 图11 插件开发-添加响应字段mid 添加errcode字段,用于表示命令执行状态:00表示成功,01表示失败,如果未携带该字段,则默认命令执行成功。errcode字段的数据类型默认为int8u。长度、默认值、偏移值的说明可参考2。 图12 插件开发-添加响应字段errcode 添加result字段,用于表示命令执行结果。例如,设备向平台返回当前的告警阈值。 图13 插件开发-添加响应字段result 拖动右侧“设备模型”区域的属性字段和命令字段,数据上报消息和命令下发消息的相应字段建立映射关系。 图14 插件开发-在线开发插件smokerdetector 单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。 图15 插件开发-部署插件 调测编解码插件 在烟感产品的开发空间,选择“在线调试”,并单击“新增测试设备”。 用户可根据自己的业务场景,选择使用真实设备或者虚拟设备进行调测。具体调测步骤请参考在线调试。本文以虚拟设备为例,调测编解码插件。 在弹出的“新增测试设备”窗口,选择“虚拟设备”,单击“确定”,创建一个虚拟设备。虚拟设备名称包含 “DeviceSimulator”字样,每款产品下只能创建一个虚拟设备。 图16 在线调试-创建虚拟设备 单击“调试”,进入调试界面。 图17 在线调试-进入调试 使用设备模拟器进行数据上报。十六进制码流示例:0008016B。00为地址域messageId,08表示火灾级别level,长度为1个字节;016B表示温度,长度为2个字节。 在“应用模拟器”区域查看数据上报的结果:{level=8, temperature=363}。8为十六进制数08转换为十进制的数值;363为十六进制数016B转换为十进制的数值。 在设备模拟器区域看到平台下发的响应数据AAAA0000。 图18 在线调试-模拟数据上报smokerdetector 使用应用模拟器进行命令下发,输入value值为1,可看到应用模拟下发命令{ "serviceId": "Smokeinfo", "method": "SET_ALARM", "paras": "{\"value\":1}" }。 在“设备模拟器”区域查看命令接收的结果:03000101。03为地址域messageId,0001为mid字段,01为十进制数1转换为十六进制的数值。 图19 在线调试-模拟命令下发smokerdetector 使用CoAP的虚拟设备在线调试时,若下发命令后设备模拟器未接收到对应的命令,可以先上报一次属性后,再下发。 总结 如果插件需要对命令执行结果进行解析,则必须在命令和命令响应中定义mid字段。 命令下发的mid是2个字节,对于每个设备来说,mid从1递增到65535,对应码流为0001到FFFF。 设备执行完命令,命令执行结果上报中的mid要与收到命令中的mid保持一致,这样平台才能刷新对应命令的状态。
  • 使用虚拟设备调测产品 当设备侧开发和应用侧开发均未完成时,开发者可以创建虚拟设备,使用应用模拟器和设备模拟器对产品模型、插件等进行调测。模拟设备调测界面分为四个部分 1. 左侧应用模拟器展示区域:呈现应用服务器接收到的属性数据和下发的命令。 2. 左侧设备模拟器展示区域:呈现设备上报的属性和接收到的命令。 3. 右侧应用模拟器和设备模拟器区域:模拟应用下发命令或设备上报属性。 4. 下方消息跟踪区域:呈现设备接入,属性上报和命令下发时,平台的处理日志,帮助开发者进行问题的定界和定位。 图1 在线调试-虚拟设备结构 在产品开发空间,选择“在线调测”,并单击“新增测试设备”。 在弹出的“新增测试设备”窗口,选择“虚拟设备”,单击“确定”,创建一个虚拟设备。虚拟设备名称包含 “DeviceSimulator”字样,每款产品下只能创建一个虚拟设备。 在设备列表中,选择新创建的虚拟设备, 图2 在线调试-创建虚拟设备 单击右侧的“调试”,进入调试界面。 图3 在线调试-进入调试 在“设备模拟器”区域,输入十六进制码流或者JSON数据(以十六进制码流为例),单击“发送”,在“应用模拟器”区域查看数据上报的结果,在“消息跟踪”区域查看物联网平台处理日志。 图4 在线调试-模拟数据上报smokeInfo 在“应用模拟器”区域进行命令下发,在“设备模拟器”区域查看接收到的命令(以十六进制码流为例),在“消息跟踪”区域查看物联网平台处理日志。 图5 在线调试-命令下发介绍
  • 使用真实设备调测产品 当设备侧开发已经完成,但应用侧开发还未完成时,您可以创建真实设备,使用应用模拟器对设备、产品模型、插件等进行调测。真实设备调测界面结构为三个部分: 左侧应用模拟器展示区域:呈现应用服务器接收到的属性数据和下发的命令。 右侧应用模拟器区域:模拟应用下发命令。 下方消息跟踪区域:呈现设备接入,属性上报和命令下发时,平台的处理日志,帮助开发者进行问题的定界和定位。 图6 在线调试-真实设备结构 在烟感产品的开发空间,选择“在线调试”,并单击“新增测试设备”。 在弹出的“新增测试设备”窗口,选择“真实设备”,输入测试设备的参数,单击“确定”。 图7 在线调试-新增测试设备 注:如果使用DTLS传输层安全协议接入时,请妥善保存密钥。 新添加的设备处于未激活状态,此时不能进行在线调试,可参考连接鉴权,待设备接入平台后,进行调试。 单击“调试”,进入调试界面。 图8 在线调试-进入调试 模拟远程下发控制命令场景,在应用模拟器中,选择服务:StreetLight,命令:SWITCH_LIGHT,命令取值为:ON,单击“发送”,我们可以看到路灯被点亮。
  • 创建产品 产品是设备的合集,您可以将相同能力或特征的设备归属在同一个产品下。 登录管理控制台,单击左侧导航栏“产品”,单击页面左侧的“创建产品”。 根据页面提示填写参数,然后单击“立即创建”。 图5 创建产品-MQTT 表1 创建产品基本信息 基本信息 所属资源空间 平台自动将新创建的产品归属在默认资源空间下。如需归属在其他资源空间下,下拉选择所属的资源空间。如无对应的资源空间,请先创建资源空间。 产品名称 自定义,如StudentCard。支持字母、数字、下划线(_)、连字符(-)的字符组合。 协议类型 选择MQTT。 数据格式 选择JSON。 设备类型选择 选择自定义类型。 设备类型 根据实际填写,例如StudentCard。
  • 开发产品模型 在产品详情“基本信息”页面,单击“自定义模型”,配置产品的服务。 图6 自定义模型-MQTT 新增服务类型“Location”。 在“新增服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确定”。 图7 添加服务-Location “服务ID”:Location “服务类型”:建议和服务ID保持一致 “服务描述”:设备上报的位置数据 在“Location”的下拉菜单下单击“添加属性”,填写相关信息后,单击“确定”。 图8 新增属性-longitude 图9 新增属性-latitude 单击添加命令,输入命令名称“FREQUENCY_LOCATION_SET”。 图10 新增命令-FREQUENCY_LOCATION_SET 在“新增命令”页面,单击“新增输入参数”,填写相关信息后,单击“确定”。 图11 新增命令参数-period
  • 获取网桥接入信息 代码调试时,需要获取对应的网桥接入信息,并配置到对应的环境变量中。网桥接入信息,环境变量配置参考: 图1 环境变量配置参考 NET_BRIDGE_ID与NET_BRIDGE_SECRET在标准版和企业版支持在界面配置和获取,获取方式如下: 进入泛协议接入页面:登录管理控制台,单击左侧导航栏“IoTDA实例”,选择对应实例,点击右侧“详情”进入实例,选择“泛协议接入”页签后,单击“新增网关”。 图2 泛协议-新增云网关(非托管) 输入网关名,单击“确定”,会弹出网桥创建成功界面,单击“保存并关闭”,获得NET_BRIDGE_SECRET值。 图3 泛协议-创建网桥成功 在界面中可以获取到NET_BRIDGE_ID。 图4 泛协议-获取网桥ID
  • 准备工作 本章节的边缘部署操作以largemodel集群为例,示例集群信息如下表。 表2 示例集群信息 集群名 节点类型 节点名 规格 备注 largemodel controller ecs-edge-XXXX 鲲鹏通用计算型|8vCPUs|29GiB|rc3.2xlarge.4镜像 EulerOS 2.9 64bit with ARM for Tenant 20230728 base 2.9.15 公网IP:100.85.220.207 root密码:/ CPU架构:aarch64(登录设备,执行arch命令查看) worker bms-panguXXXX CPU:Kunpeng 内存:24*64GB DDR4 RAM (GB) 本地磁盘:3*7.68TB NVMe SSD 扩展配置:2*100GE+8*200GE 类型:physical.kat2e.48xlarge.8.313t.ei.pod101 euler2.10_arm_sdi3_1980b_hc_sdi5_b080_20230831v2 公网IP:100.85.216.151 root密码:/ CPU架构:aarch64(登录设备,执行arch命令查看) 依赖包下载。 docker下载:https://download.docker.com/linux/static/stable 选择对应cpu架构下载,docker版本选在19.0.3+。 K3S下载:https://github.com/k3s-io/k3s/releases/tag/v1.21.12%2Bk3s1 按照对应cpu架构下载二进制文件以及air-gap镜像。 npu驱动和固件安装。 执行命令npu-smi info查看驱动是否已安装。如果有回显npu卡信息,说明驱动已安装。 详情请参见昇腾官方文档。 hccn too网卡配置。 执行如下命令,查看是否有回显网卡信息。如果有,则说明网卡已经配置,否则继续操作下面步骤。 cat /etc/hccn.conf 执行如下命令,查看npu卡数。 npu-smi info 执行如下命令(地址自行配置): hccn_tool -i 0 -ip -s address 192.168.0.230 netmask 255.255.255.0 hccn_tool -i 1 -ip -s address 192.168.0.231 netmask 255.255.255.0 hccn_tool -i 2 -ip -s address 192.168.0.232 netmask 255.255.255.0 hccn_tool -i 3 -ip -s address 192.168.0.233 netmask 255.255.255.0 hccn_tool -i 4 -ip -s address 192.168.0.234 netmask 255.255.255.0 hccn_tool -i 5 -ip -s address 192.168.0.235 netmask 255.255.255.0 hccn_tool -i 6 -ip -s address 192.168.0.236 netmask 255.255.255.0 hccn_tool -i 7 -ip -s address 192.168.0.237 netmask 255.255.255.0 执行命令cat /etc/hccn.conf,确保有如下回显网卡信息,则配置完成。 配置NFS网盘服务。 大模型采用镜像+模型分开的方式部署时,需要有一个节点来提供nfs网盘服务,创建部署时通过nfs挂载的方式访问模型。
  • 知识库介绍 平台提供了知识库功能来管理和存储数据,支持为应用提供自定义数据,并与之进行互动。 知识库支持导入以下格式的本地文档: 文本文档数据。支持上传常见文本格式,包括:txt、doc、docx、pdf、ppt、pptx格式。 表格数据。支持上传常见的表格文件格式,便于管理和分析结构化数据,包括:xlsx、xls、csv格式。 无论是文本文档、演示文稿,还是电子表格文件,用户都可以轻松地将数据导入知识库,无需额外的转换或格式处理。 父主题: 创建与管理知识库
  • 创建插件 创建插件的步骤如下: 登录ModelArts Studio大模型开发平台,在“我的空间”模块,单击进入所需空间。 在左侧导航栏中选择“Agent开发”,跳转至Agent开发平台。 单击左侧导航栏“工作台”,在“插件”页签,单击右上角“创建插件”。 在“创建插件”页面,填写插件名称与插件描述,单击图片可上传插件图标,单击“下一步”。 在“配置信息”页面,参照表1完成信息配置。 表1 插件信息配置说明 参数名称 参数说明 插件URL 插件服务的请求URL地址。 URL协议只支持HTTP和HTTPS。 系统会校验URL地址是否为标准的URL格式。 URL对应的IP默认不应为内网,否则会导致注册失败。仅在非商用环境部署时,才允许支持内网URL,且需要通过相关的服务的启动配置项关闭内网屏蔽。 请求方法 插件服务的请求方式,POST或GET。 权限校验 选择调用API时是否需要通过鉴权才可以调用。 无需鉴权:API可以公开访问,不需要任何形式的身份验证或授权。 用户级鉴权:需要用户提供身份验证信息来访问API。 需填写密钥位置,即密钥是从Header中读取还是Query中读取。并设置密钥鉴权参数名、密钥来源参数名,以确保系统能够正确地提取和使用鉴权信息。 API Key:在调用API时提供一个唯一的API Key进行鉴权。 需填写密钥位置,即密钥是从Header中读取还是Query中读取。并设置API Key的密钥鉴权参数名和密钥值。 请求头 填写API的请求头信息,例如: Key:Content-Type Value:application/json 图1 API请求信息配置示例 自定义插件使用HTTP服务,或不增加鉴权方式可能存在安全风险。 单击“下一步”,在“参数信息”页面,参照表2完成参数配置。 表2 插件参数配置说明 参数类型 参数名称 参数说明 请求参数 参数封装 开启后,会将请求参数封装为一个列表(数组)结构,可适配入参为数组格式的插件接口。 示例:原参数列表:{"a":"string", "b":1},开启封装后的参数列表:[{"a":"string", "b":1}] 参数名称 参数的名称,参数名称会作为大模型解析参数含义的依据。 中文名称 该参数的中文名称。 参数类型 该参数值的数据类型,String、Integer、Number等多种类型支持选择。 位置 当前参数在请求信息中的位置,可选Body、Headers或Query。 默认值 参数的默认值。 描述 参数的描述,尽可能准确的描述参数的含义和要求,可提升Agent提取参数的准确率。 参数校验 可设置当前参数的校验规则。 必填 指定该参数是否为必填项。 响应参数 参数封装 开启后,会将请求参数封装为一个列表(数组)结构,可适配入参为数组格式的插件接口。 示例:原参数列表:{"a":"string", "b":1},开启封装后的参数列表:[{"a":"string", "b":1}] 参数名称 响应参数的名称,参数名称会作为大模型解析大模型输出结果的依据。 参数描述 响应参数的名称,参数描述会作为大模型解析大模型输出结果的依据。 参数类型 该参数值的数据类型,String、Integer、Number等多种类型支持选择。 是否提取 开启后则该参数必须提取到,关闭则该参数允许为空或者使用默认值。 图2 填写API请求、响应参数 父主题: 创建与管理插件
  • 插件介绍 在Agent开发平台中,插件是大模型能力的重要扩展。通过模块化方式,插件能够为大模型提供更多专业技能和复杂任务处理能力,使其在多样化的实际场景中更加高效地满足用户需求。 通过插件接入,用户可以为应用赋予大模型本身不具备的能力。插件提供丰富的外部服务接口,当任务执行时,模型会根据提示词感知适用的插件,并自动调用它们,从外部服务中获取结果并返回。这样的设计使得Agent能够智能处理复杂任务,甚至跨领域解决问题,实现对复杂问题的自动化处理。 Agent开发平台支持两种类型的插件: 预置插件:平台为开发者和用户提供了预置插件,直接可用,无需额外开发。例如,平台提供的“Python解释器插件”能够根据用户输入的问题自动生成Python代码,并执行该代码获取结果。此插件为Agent提供了强大的计算、数据处理和分析功能,用户只需将其添加到应用中,即可扩展功能。 自定义插件:为了满足更个性化的需求,平台允许开发者创建自定义插件,支持将API通过配置方式快速创建为插件,并供Agent调用。这样,开发者可以根据特定需求为应用增加专属功能。 父主题: 创建与管理插件
  • 应用介绍 在Agent开发平台上,用户可以构建两种类型的应用: 知识型Agent:以大模型为任务执行核心,适用于文本生成和文本检索任务,如搜索问答助手、代码生成助手等。用户通过配置Prompt、知识库等信息,使得大模型能够自主规划和调用工具。 优点:零代码开发,对话过程智能化。 缺点:大模型在面对复杂的、长链条的流程时可能会受到输入长度限制,难以有效处理较为复杂的工作流。 流程型Agent:以工作流为任务执行核心,用户可以通过在画布上“拖拽”节点来搭建任务流程。支持编排的节点类型包括:大模型节点、知识检索节点、意图识别节点、插件节点、判断节点、代码节点、消息节点、提问器节点。 优点:高度可扩展,支持低代码开发。 缺点:对话交互的智能度较低,复杂场景下流程分支较多,维护难度较大。 父主题: 编排与调用应用
  • NLP大模型评测指标说明 NLP大模型支持自动评测与人工评测,各指标说明如表1、表2、表3。 表1 NLP大模型自动评测指标说明-不使用评测模板 评测指标(自动评测-不使用评测模板) 指标说明 F1_SCORE 精准率和召回率的调和平均数,数值越高,表明模型性能越好。 BLEU-1 模型生成句子与实际句子在单字层面的匹配度,数值越高,表明模型性能越好。 BLEU-2 模型生成句子与实际句子在词组层面的匹配度,数值越高,表明模型性能越好。 BLEU-4 模型生成结果和实际句子的加权平均精确率,数值越高,表明模型性能越好。 ROUGE-1 模型生成句子与实际句子在单个词的相似度,数值越高,表明模型性能越好。 ROUGE-2 模型生成句子与实际句子在两个词的相似度,数值越高,表明模型性能越好。 ROUGE-L 模型生成句子与实际句子在最长公共子序列的相似度,数值越高,表明模型性能越好。 PRECISION 问答匹配的精确度,模型生成句子与实际句子相比的精确程度,数值越高,表明模型性能越好。 表2 NLP大模型自动评测指标说明-使用评测模板 评测指标(自动评测-使用评测模板) 指标说明 评测得分 每个数据集上的得分为模型在当前数据集上的通过率;评测能力项中若有多个数据集则按照数据量的大小计算通过率的加权平均数。 综合能力 综合能力是计算所有数据集通过率的加权平均数。 表3 NLP大模型人工评测指标说明 评测指标(人工评测) 指标说明 准确性 模型生成答案正确且无事实性错误。 average 模型生成句子与实际句子基于评估指标得到的评分后,统计平均得分。 goodcase 模型生成句子与实际句子基于评估指标得到的评分后,统计得分为5分的占比。 badcase 模型生成句子与实际句子基于评估指标得到的评分后,统计得分1分以下的占比。 用户自定义的指标 由用户定义的指标,如有用性、逻辑性、安全性等。
  • 工作流常见错误码与解决方案 工作流常见报错及解决方案请详见表1。 表1 工作流节点常见报错与解决方案 模块名称 错误码 错误描述 解决方案 开始节点 101501 开始节点全局配置未传入值。 开始节点错误,请联系客服解决。 结束节点 101531 结束节点初始化失败。 检查结束节点配置,可能为校验报错。 101532 结束节点模板拼接失败。 先检查模板占位符与输入是否匹配,请联系客服解决。 101533 结束节点流式处理失败。 请联系客服解决。 大模型节点 101561 大模型节点初始化失败。 检查大模型节点配置,可能为校验报错。 代码节点 101591 代码组件初始化失败。 检查代码节点配置,可能为校验报错。 101592 代码节点安全沙箱请求失败。 请联系客服解决。 101593 代码节点安全沙箱执行失败。 检查代码的语法是否有误,检查是否用到了未引用的变量。 101594 代码组件安全沙箱其他报错。 请联系客服解决。 101595 代码节点执行失败未知错误。 请联系客服解决。 消息节点 101651 消息组件初始化失败。 检查消息节点配置,可能为校验报错。 101652 消息节点缺少模板信息。 配置消息节点的提示词模板。 101653 消息节点模板拼接错误。 先检查模板占位符与输入是否匹配,若仍无法解决,请联系客服解决。 101654 消息组件执行失败。 请联系客服解决。 101655 消息组件异步执行失败。 请联系客服解决。 意图识别节点 101098 意图识别prompt模板请求失败。 检查模板占位符与输入是否匹配。 101097 意图识别调用大模型的prompt不符合模型输入的规范。 检查输入的prompt格式,消息的角色和内容。 101096 意图识别调用大模型失败。 检查消息的格式,内容以及大模型服务是否正常。 101095 意图识别用户query输入/引用解析失败。 检查用户query格式和内容。 101094 意图识别prompt模板构建失败。 检查内置模板以及输入的system prompt格式与内容。 提问器节点 101043 当单个提问器内的对话轮数超过预设轮数上限时触发该错误码,对话状态回到开始节点状态。 可通过调大对话轮数上限解决。 101047 初始化深度定制前后处理模块失败时触发该错误码。 可检查护栏配置是否符合要求。 101048 执行深度定制用户回复改写(前处理)失败时触发该错误码。 可检查前处理护栏代码。 101049 执行深度定制大模型生成的参数取值改写(后处理)失败时触发该错误码。 可检查后处理护栏代码。 101050 执行默认护栏(时间参数解析)失败时触发该错误码。 可检查支持处理的时间类型是否超出支持范围。 102053 提示词模板有误时触发该错误码。 检查提示词模板是否格式有误。 103004 大模型推理失败时触发该错误码。 请检查模型服务是否可以正常运行。 插件节点 101741 插件组件初始化失败。 检查插件组件配置,可能为校验报错。 101742 工作流插件节点参数类型转换时出错。 根据error message确定具体转换出错的参数名称,并确认类型是否正确。 101743 工作流插件节点的input在插件定义中不存在。 检查插件定义和对应的组件定义是否匹配。 101744 插件定义了response,但实际插件执行结果与定义不一致。 检查插件response定义和实际插件执行结果是否匹配。 101745 工作流插件节点执行出错。 插件执行出错,可以根据具体的error message信息定位。如果message无有效信息,说明该错误属于未捕获到的异常。 105001 插件执行时发生了无法捕获的异常。 检查插件本身是否可用。 105004 插件定义时check param error。 根据对应error message信息确定具体出错的参数定义。 105005 插件定义不合法。 插件定义时的数据不合法,例如字段定义超出最长长度,具体根据error message判断。 105008 插件内部错误。 请联系客服解决。 105010 插件运行时鉴权出错。 可根据error message信息确定具体出错的鉴权问题,并检查鉴权信息的传递和插件鉴权定义是否正确。 105011 插件运行返回的响应代码非200。 可根据报信息查看实际的http返回码。 105012 插件request请求超时。 插件请求超时,检查插件服务。 105013 插件返回结果过大。 当前支持10M大小的返回,超过此大小会报错。 105014 插件request proxy error。 请检查插件服务是否有问题导致无法连接。 认证鉴权 110000 认证失败。 查看认证配置。 110001 用户信息获取失败。 查看用户信息是否正确配置。 工作流 112501 工作流认证失败。 查看认证配置。 112502 缺少必要参数。 从打印日志可以看出当前缺失何种参数。 112503 工作流连接数据库失败。 请联系客服解决。 112504 缺少必要权限。 查看当前用户权限。 112513 工作流流程中存在死循环。 检查工作流画布。 112514 工作流被引用,无法删除。 查看知识型应用中是否引用了该工作流。 112600 workflow ir转化失败 需要查看工作流配置是否正确。 112941 获取workflow对话历史失败 请联系客服解决。
  • 使用“能力调测”调用科学计算大模型 能力调测功能支持用户调用预置或训练后的科学计算大模型。使用该功能前,请完成模型的部署操作,步骤详见创建科学计算大模型部署任务。 使用“能力调测”调用科学计算大模型可实现包括全球中期天气要素预测、全球中期降水预测、全球海洋要素、区域海洋要素、全球海洋生态、全球海浪高度场景的预测能力。具体步骤如下: 登录ModelArts Studio大模型开发平台,在“我的空间”模块,单击进入所需空间。 在左侧导航栏中选择“能力调测”,单击“科学计算”页签。 根据不同场景完成页面参数配置。 天气/降水预测场景的参数配置,请参考表1。 表1 科学计算大模型能力调测参数说明(天气/降水预测) 参数 说明 场景 支持选择全球中期天气要素预测、全球中期降水预测。 全球中期天气要素预测:通过该模型可以对未来一段时间的天气进行预测。 全球中期降水预测:通过该模型可以对未来一段时间的降水情况进行预测。 模型服务 支持选择用于启动推理作业的模型。 中期天气要素模型包括1h分辨率、3h分辨率、6h分辨率、24小时分辨率模型,即以起报时刻开始,分别可以逐1h、3h、6h、24h往后进行天气要素的预测。 中期天气要素模型包括6h分辨率模型,即以起报时刻开始,可以逐6h往后进行降水情况的预测。 结果存储路径 用于存放模型推理结果的OBS路径。 输入数据 支持选择用于存放作为初始场数据的文件路径。 预报天数 支持选择以起报时间点为开始,对天气要素或降水进行预报的天数,范围为1~14天。 起报时间 支持选择多个起报时间作为推理作业的开始时间,每个起报时间需为输入数据中存在的时间点。 表面变量 支持选择推理结果输出的表面变量,包括10m u风、10m v风、2米温度、海平面气压,没有选择的变量推理结果将不输出。 高空变量 设置高空变量参数,包括:4个表面层特征(10m u风、10m v风、2米温度、海平面气压),13高空层次(1000、925、850、700、600、500、400、300、250、200、150、100、50hPa)的5个高空层特征(重力位势、u风、v风、比湿、温度),分辨率为25km*25km的网格数据。 集合预报 用于选择是否开启集合预报。 在气象预报中,集合预报是指对初始场加入一定程序的扰动,使其生成一组由不同初始场预报的天气预报结果,从而提供对未来天气状态的概率信息。这种方法可以更好地表达预报的不确定性,从而提高预报的准确性和可靠性。 集合成员数 用于选择生成预报的不同初始场的数量,取值为2~10。 扰动类型 用于选择生成集合预报初始场的扰动类型,包括perlin加噪和CNOP加噪两种方式。 Peilin噪音通过对输入数据(比如空间坐标)进行随机扰动,让模拟出的天气接近真实世界中的变化。 CNOP噪音通过在初始场中引入特定的扰动来研究天气系统的可预报性,会对扰动本身做一定的评判,能够挑选出预报结果与真实情况偏差最大的一类初始扰动。这些扰动不仅可以用来识别最可能导致特定天气或气候事件的初始条件,还可以用来评估预报结果的不确定性。 初始扰动数量 用于选择集合预报的CNOP初始扰动数量。 在CNOP的加噪方式中,会先对初始场进行一定数量的加噪得到一组加噪后的初始场,然后从这组初始场中选择能量变化最大的初始场作为集合预报的初始场,启动推理作业。 ensemble_noise_perlin_scale 用于选择集合预报的Perlin加噪强度。 ensemble_noise_perlin_x 用于选择集合预报的Perlin加噪x经度方向的尺度。 ensemble_noise_perlin_octave 用于选择集合预报的Perlin加噪octave。Perlin噪音的octave指的是噪音的频率,在生成Perlin噪音时,可以将多个不同频率的噪音叠加在一起,以增加噪音的复杂度和细节。每个频率的噪音称为一个octave,而叠加的octave数越多,噪音的复杂度也就越高。 ensemble_noise_perlin_y 用于选择集合预报的Perlin加噪y纬度方向的尺度。 输出设置 用于选择是否输出图片结果。 天气/降水预测场景的参数配置示例如下: 图1 调测科学计算大模型示例1(天气/降水预测) 图2 调测科学计算大模型示例2(天气/降水预测) 海洋类预测场景的参数配置,请参考表2。 表2 科学计算大模型能力调测参数说明(海洋类预测) 参数 说明 场景 支持选择全球海洋要素、区域海洋要素、全球海洋生态、全球海浪高度。 全球海洋要素:实现预测全球范围内海面高度, 温度、盐度、海流速度纬向分量和海流速度经向分量变量。 区域海洋要素:实现预测特定区域范围内海面高度, 温度、盐度、海流速度纬向分量和海流速度经向分量变量。 全球海洋生态:实现预测全球范围内的叶绿素浓度、硅藻浓度等8种生态变量。 全球海浪高度:实现预测有效波高的变量。 模型服务 支持选择用于启动推理作业的模型。 结果存储路径 用于存放模型推理结果的OBS路径。 输入数据 支持选择用于存放作为初始场数据的文件路径。 预报天数 支持选择以起报时间点为开始,对海洋模型预测参数进行预报的天数,范围为1~14天。 起报时间 支持选择多个起报时间作为推理作业的开始时间,每个起报时间需为输入数据中存在的时间点。 海表变量 用于描述海洋表面及其生态系统状态的具体指标,尤其是在海洋模型中用于模拟海洋生态和物理过程的输入变量。包括海平面气压、海表高度、总叶绿素浓度、叶绿素浓度、硅藻浓度、颗石藻浓度、蓝藻浓度、铁浓度、硝酸盐浓度、混合层深度、海表高度、有效波高等指标。不同模型的指标以页面展示为准。 深海变量 用于描述海洋深层的物理和化学特性,这些参数在海洋模型中用于模拟海洋内部的动态和状态。包括海温、海盐、海流径向速率、海流纬向速率等。 输出设置 用于选择是否输出图片结果。 海洋类预测场景的参数配置示例如下: 图3 调测科学计算大模型示例(海洋类预测) 父主题: 调用科学计算大模型
  • 科学计算大模型训练常见报错与解决方案 科学计算大模型训练常见报错及解决方案请详见表1。 表1 科学计算大模型训练常见报错与解决方案 常见报错 问题现象 原因分析 解决方案 创建训练任务时,数据集列表为空 创建训练任务时,数据集选择框中显示为空,无可用的训练数据集。 数据集未发布。 请提前创建与大模型对应的训练数据集,并完成数据集发布操作。 训练日志提示“root: XXX valid number is 0”报错 日志提示“root: XXX valid number is 0”,表示训练集/验证集的有效样本量为0,例如: INFO: root: Train valid number is 0. 该日志表示数据集中的有效样本量为0,可能有如下原因: 数据未标注。 标注的数据不符合规格。 请检查数据是否已标注或标注是否符合算法要求。 父主题: 训练科学计算大模型
  • 获取训练日志 单击训练任务名称,可以在“日志”页面查看训练过程中产生的日志。对于训练异常或失败的任务也可以通过训练日志定位训练失败的原因。典型训练报错和解决方案请参见科学计算大模型训练常见报错与解决方案。 训练日志可以按照不同的节点(训练阶段)进行筛选查看。分布式训练时,任务被分配到多个工作节点上进行并行处理,每个工作节点负责处理一部分数据或执行特定的计算任务。日志也可以按照不同的工作节点(如worker-0表示第一个工作节点)进行筛选查看。 图2 获取训练日志
  • 查看模型训练状态 在模型训练列表中查看训练任务的状态,各状态说明详见表1。 表1 训练状态说明 训练状态 训练状态含义 初始化 模型训练任务正在进行初始化配置,准备开始训练。 排队中 模型训练任务正在排队,请稍等。 运行中 模型正在训练中,训练过程尚未结束。 停止中 模型训练正在停止中。 已停止 模型训练已被用户手动停止。 失败 模型训练过程中出现错误,需查看日志定位训练失败原因。 已完成 模型训练已完成。
  • 查看训练指标 对于已完成训练,训练状态是“训练完成”状态的任务,单击任务名称,可在“训练结果”页面查看训练指标,不同模型的训练指标介绍请参见表2。 图1 查看训练指标 表2 训练指标说明 模型 训练指标 指标说明 科学计算大模型 Loss 训练损失值是一种衡量模型预测结果和真实结果之间的差距的指标,通常情况下越小越好。这里代表高空Loss(深海Loss)和表面Loss(海表Loss)的综合Loss。 一般来说,一个正常的Loss曲线应该是单调递减的,即随着训练的进行,Loss值不断减小,直到收敛到一个较小的值。 高空Loss(深海Loss) 高空Loss(深海Loss)是衡量模型在高空层次变量或在深海变量预测结果与真实结果之间差距的指标。该值越小,表示模型在高空(深海)变量的预测精度越高。 表面Loss(海表Loss) 表面Loss(海表Loss)是衡量模型在表面层次变量或在海表变量预测结果与真实结果之间差距的指标。该值越小,表示模型在表面(海表)变量的预测精度越高。 RMS E 均方根误差,衡量预测值与真实值之间差距的指标。它是所有单个观测的平方误差的平均值的平方根。该值越小,代表模型性能越好。 MAE 平均绝对误差,衡量预测值与真实值之间差距的指标。它是所有单个观测的绝对误差的平均值。该值越小,代表模型性能越好。 ACC ACC(异常相关系数,距平相关系数,Anomaly Correlation Coefficient)是一个重要的统计指标,用于衡量预报系统的质量。它通过计算预报值与观测值之间的相关性来评估预报的准确性。ACC的计算涉及到预报值、观测值和气候平均值的差异,其值范围从-1到+1,值越接近+1表示预报与观测的一致性越好,值为0表示没有相关性,而负值则表示反向相关。 RQE 衡量预测值与真实值之间差距的指标。它是所有单个观测的相对误差的平方和。该值越小,代表模型性能越好。
  • 科学计算大模型训练类型选择建议 目前,全球中期天气要素模型提供训练功能和推理功能,降水模型仅提供推理功能。 全球中期天气要素预测模型的训练类型选择建议: 全球中期天气要素预测模型的训练支持预训练、微调两种操作,如果直接使用平台预置的中期天气要素预测模型不满足您的使用要求时,可以进行预训练或微调。预训练、微调操作的适用场景如下: 预训练:训练用于添加新的高空层次、高空变量或表面变量。如果您需要在现有模型中引入新要素,需要使用训练(重新训练模型)。在重训配置参数时,您可以选择新要素进行训练。请注意,所选的数据集必须包含您想要添加的新要素。此外,您还可以通过训练更改所有的模型参数,以优化模型性能。 微调:微调是将新数据应用于已有模型的过程。它适用于不改变模型结构参数和引入新要素的情况。如果您有新的观测数据,可以使用微调来更新模型的权重,以适应新数据。 中期海洋智能预测模型的训练类型选择建议: 中期海洋智能预测模型的训练支持预训练、微调两种操作,如果直接使用平台预置的区域中期海洋智能预测模型不满足您的使用要求时,可以进行预训练或微调。预训练、微调操作的适用场景如下: 预训练:可以在重新指定深海变量、海表变量、以及深海层深、时间分辨率、水平分辨率以及区域范围,适用于想自定义自己的区域模型的场景,需预先准备好区域高精度数据。 微调:在已有模型的基础上添加新数据,它适用于不改变模型结构参数和引入新要素的情况,添加最新数据的场景。
  • 科学计算大模型训练流程介绍 科学计算大模型的训练主要分为两个阶段:预训练与微调。 预训练阶段:预训练是模型学习基础知识的过程,基于大规模通用数据集进行。例如,在区域海洋要素预测中,可以重新定义深海变量、海表变量,调整深度层、时间分辨率、水平分辨率以及区域范围,以适配自定义区域的模型场景。此阶段需预先准备区域的高精度数据。 微调阶段:在预训练模型的基础上,微调利用特定领域的数据进一步优化模型,使其更好地满足实际任务需求。例如,区域海洋要素预测的微调是在已有模型上添加最新数据,不改变模型结构参数或引入新要素,以适应数据更新需求。 在实际流程中,通过设定训练指标对模型进行监控,以确保效果符合预期。在微调后,评估用户模型,并进行最终优化,确认其满足业务需求后,进行部署和调用,以便实际应用。
  • 科学计算大模型选择建议 科学计算大模型支持训练的模型类型有:全球中期天气要素模型、降水模型、区域中期海洋智能预测模型。 全球中期天气要素预测模型、降水模型选择建议: 科学计算大模型的全球中期天气要素预测模型、降水模型,可以对未来一段时间的天气和降水进行预测,具备以下优势: 高时间精度:全球中期天气要素预测模型可以预测未来1、3、6、24小时的天气情况,降水模型可预测未来6小时的降水情况。高时间精度对于农业、交通、能源等领域的决策和规划非常重要。 全球覆盖:全球中期天气要素预测模型和降水模型能够在全球范围内进行预测,不仅仅局限于某个地区。它的分辨率相当于赤道附近每个点约25公里*25公里的空间。 数据驱动:全球中期天气要素预测模型和降水模型使用历史天气数据来训练模型,从而提高预测的准确性。这意味着它可以直接利用过去的观测数据,而不仅仅依赖于数值模型。 全球中期天气要素预测模型、降水模型信息见表1。 表1 全球中期天气要素预测模型、降水模型信息表 模型 预报层次 预报高空变量 预报表面变量 降水 时间分辨率 水平分辨率 区域范围 全球中期天气要素预测模型 13层(1000hpa, 925hpa, 850hpa, 700hpa, 600hpa, 500hpa, 400hpa, 300hpa, 250hpa, 200hpa, 150hpa, 100hpa, 50hpa) T:温度 Q:比湿 Z:重力位势 U:U风 V:V风 MLSP:海平面气压 U10:10米U风,经度方向 V10:10米V风,纬度方向 T2M:2米温度 - 1、3、6、24小时 0.25°*0.25° 全球 降水基模型 13层(1000hpa, 925hpa, 850hpa, 700hpa, 600hpa, 500hpa, 400hpa, 300hpa, 250hpa, 200hpa, 150hpa, 100hpa, 50hpa) T:温度 Q:比湿 Z:重力位势 U:U风 V:V风 MLSP:海平面气压 U10:10米U风,经度方向 V10:10米V风,纬度方向 T2M:2米温度 PRECIP6:过去6h累计降水 PRECIP24:过去24h累计降水 1、3、6、24小时 0.25°*0.25° 全球 支持训练的模型清单见表2,您可根据具体使用场景选择合适的模型。例如天气基础要素预测,需要时间分辨率为1小时的场景下,您可以选择Pangu-AI4S-Weather_1h-3.0.0模型。 表2 中期天气要素预测模型、降水模型的类型 模型名称 说明 Pangu-AI4S-Weather_Precip-20241030 2024年10月发布的版本,用于降水预测,支持1个实例部署推理。 Pangu-AI4S-Weather-Precip_6h-3.0.0 2024年12月发布的版本,相较于10月发布的版本模型运行速度有提升,用于降水预测,支持1个实例部署推理。 Pangu-AI4S-Weather-Precip_6h-3.1.0 2025年1月发布的版本,用于降水预测,支持1个实例部署推理。 Pangu-AI4S-Weather_1h-20241030 2024年10月发布的版本,用于天气基础要素预测,时间分辨率为1小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_1h-3.0.0 2024年12月发布的版本,相较于10月发布的版本模型运行速度有提升,用于天气基础要素预测,时间分辨率为1小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_1h-3.1.0 2025年1月发布的版本,用于天气基础要素预测,时间分辨率为1小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_3h-20241030 2024年10月发布的版本,用于天气基础要素预测,时间分辨率为3小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_3h-3.0.0 2024年12月发布的版本,相较于10月发布的版本模型运行速度有提升,用于天气基础要素预测,时间分辨率为3小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_3h-3.1.0 2025年1月发布的版本,用于天气基础要素预测,时间分辨率为3小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_6h-20241030 2024年10月发布的版本,用于天气基础要素预测,时间分辨率为6小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_6h-3.0.0 2024年12月发布的版本,用于天气基础要素预测,时间分辨率为6小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_6h-3.1.0 2025年1月发布的版本,用于天气基础要素预测,时间分辨率为6小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_6h-3.1.1 2025年1月发布的版本,用于天气基础要素预测,时间分辨率为6小时,相较于3.1.0版本预报准确度更高,1个实例部署。 Pangu-AI4S-Weather_24h-20241030 2024年10月发布的版本,用于天气基础要素预测,时间分辨率为24小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_24h-3.0.0 2024年12月发布的版本,相较于10月发布的版本运行速度有提升,用于天气基础要素预测,时间分辨率为24小时,1个训练单元起训及1个实例部署。 Pangu-AI4S-Weather_24h-3.1.0 2025年1月发布的版本,用于天气基础要素预测,时间分辨率为24小时,1个训练单元起训及1个实例部署。 中期海洋智能预测模型选择建议: 科学计算大模型的中期海洋智能预测模型,可以对未来一段时间海洋要素进行预测。可为海上防灾减灾,指导合理开发和保护渔业等方面有着重要作用。中期海洋智能预报主要分全球海洋要素模型、区域海洋要素模型、全球海洋生态模型、全球海浪模型,信息见表3。 表3 中期海洋智能预测模型信息 模型 深海层深 预报深海变量 预报海表变量 时间分辨率 水平分辨率 区域范围 全球海洋要素模型 0m, 6m, 10m, 20m, 30m, 50m, 70m, 100m, 125m, 150m, 200m, 250m, 300m, 400m, 500m T:海温(℃) S:海盐(PSU) U:海流经向速率 (ms-1) V:海流纬向速率 (ms-1) SSH:海表高度(m) 24h 0.25°*0.25° 在60°S至65°N,180°W至180°E覆盖全球海洋主要海域(以下简称“全球海域”) 区域海洋要素模型 0m, 6m, 10m, 20m, 30m, 50m, 70m, 100m, 125m, 150m, 200m, 250m, 300m, 400m, 500m T:海温(℃) S:海盐(PSU) U:海流经向速率 (ms-1) V:海流纬向速率 (ms-1) SSH:海表高度(m) 24h 1/12° 特定区域 全球海洋生态模型 0m / Tca:总叶绿素浓度 (mg/m3) Chl:叶绿素浓度 (mg/m3) Dia :硅藻浓度 (mg/m3) Coc:颗石藻浓度 (mg/m3) Cya:蓝澡浓度 (mg/m3) Irn:铁浓度 (nano mole/L) Nit:硝酸盐浓度 (micro mole/L) MLD:混合层深度 (m) 24h 1° 在60°S至65°N,180°W至180°E覆盖全球海洋主要海域(以下简称“全球海域”) 全球海浪模型 0m / SWH有效波高 (m) 24h 0.5° 在60°S至65°N,180°W至180°E覆盖全球海洋主要海域(以下简称“全球海域”) 支持训练的模型清单见表4,您可根据具体使用场景选择合适的模型。例如区域海洋基础要素预测场景下,您可以选择Pangu-AI4S-Ocean_Regional_24h-20241030模型。 表4 区域中期海洋智能预测模型的类型 模型名称 说明 Pangu-AI4S-Ocean_24h-20241130 2024年11月发布的版本,用于海洋基础要素预测,可支持1个实例部署推理。 Pangu-AI4S-Ocean_24h-3.1.0 2025年1月发布的版本,用于海洋基础要素预测,可支持1个实例部署推理。 Pangu-AI4S-Ocean_Regional_24h-20241130 2024年11月发布的版本,用于区域海洋基础要素预测,1个训练单元起训及1个实例部署。 Pangu-AI4S-Ocean-Regional_24h-3.1.0 2025年1月发布的版本,用于区域海洋基础要素预测,1个训练单元起训及1个实例部署。 Pangu-AI4S-Ocean_Ecology_24h-20241130 2024年11月发布的版本,用于海洋生态要素预测,可支持1个实例部署推理。 Pangu-AI4S-Ocean-Ecology_24h-3.1.0 2025年1月发布的版本,用于海洋生态要素预测,可支持1个实例部署推理。 Pangu-AI4S-Ocean_Swell_24h-20241130 2024年11月发布的版本,用于海浪预测,可支持1个实例部署推理。 Pangu-AI4S-Ocean-Swell_24h-3.1.0 2025年1月发布的版本,用于海浪预测,可支持1个实例部署推理。
  • 构建科学计算大模型数据集流程 在ModelArts Studio大模型开发平台中,使用数据工程创建盘古科学计算大模型数据集流程见表2。 表2 盘古科学计算大模型数据集构建流程 流程 子流程 说明 操作指导 导入数据至盘古平台 创建导入任务 将存储在OBS服务中的数据导入至平台统一管理,用于后续加工或发布操作。 导入数据至盘古平台 加工气象类数据集 加工气象类数据集 通过专用的加工算子对数据进行预处理,确保数据符合模型训练的标准和业务需求。不同类型的数据集使用专门设计的算子,例如去除噪声、冗余信息等,提升数据质量。 加工气象类数据集 发布气象类数据集 发布气象类数据集 数据发布是将单个数据集发布为特定格式的“发布数据集”,用于后续模型训练等操作。 发布气象类数据集
  • 统计NLP大模型调用信息 针对调用的大模型,平台提供了统一的管理功能。 登录ModelArts Studio大模型开发平台,在“我的空间”模块,单击进入所需空间。 单击左侧导航栏“调用统计”,选择“NLP”页签。 选择当前调用的NLP大模型,可以按照不同时间跨度查看当前模型的调用总数、调用失败的次数、调用的总Tokens数、以及输入输出的Tokens数等基本信息。 此外,该功能还提供了可视化界面,可额外查看响应时长以及安全护栏拦截次数。 父主题: 调用NLP大模型
  • 使用“能力调测”调用NLP大模型 能力调测功能支持用户调用预置或训练后的NLP大模型。使用该功能前,请完成模型的部署操作,步骤详见创建NLP大模型部署任务。 使用“能力调测”调用NLP大模型可实现文本对话能力,即在输入框中输入问题,模型将基于问题输出相应的回答,具体步骤如下: 登录ModelArts Studio大模型开发平台,在“我的空间”模块,单击进入所需空间。 在左侧导航栏中选择“能力调测”,单击“文本对话”页签。 选择需要调用的服务。可从“预置服务”或“我的服务”中选择。 填写系统人设。如“你是一个AI助手”,若不填写,将使用系统默认人设。 在页面右侧配置参数,具体参数说明见表1。 表1 NLP大模型能力调测参数说明 参数 说明 搜索增强 搜索增强通过结合大语言模型与传统搜索引擎技术,提升了搜索结果的相关性、准确性和智能化。 例如,当用户提出复杂查询时,传统搜索引擎可能仅返回一系列相关链接,而大模型则能够理解问题的上下文,结合多个搜索结果生成简洁的答案,或提供更详细的解释,从而进一步改善用户的搜索体验。 温度 用于控制生成文本的多样性和创造力。调高温度会使得模型的输出更多样性和创新性。 默认值:0 核采样 控制生成文本多样性和质量。调高核采样可以使输出结果更加多样化。 默认值:1.0 最大口令限制 用于控制聊天回复的长度和质量。 默认值:2048 话题重复度控制 用于控制生成文本中的重复程度。调高参数模型会更频繁地切换话题,从而避免生成重复内容。 默认值:0 词汇重复度控制 用于调整模型对频繁出现的词汇的处理方式。调高参数会使模型减少相同词汇的重复使用,促使模型使用更多样化的词汇进行表达。 默认值:0 历史对话保留轮数 选择“文本对话”功能时具备此参数。表示系统能够记忆的历史对话数。 默认值:10 如图1,输入对话,单击“生成”,模型将输出相应的回答。 图1 调测NLP大模型 父主题: 调用NLP大模型
  • NLP大模型训练常见报错与解决方案 NLP大模型训练常见报错及解决方案请详见表1。 表1 NLP大模型训练常见报错与解决方案 常见报错 问题现象 原因分析 解决方案 创建训练任务时,数据集列表为空。 创建训练任务时,数据集选择框中显示为空,无可用的训练数据集。 数据集未发布。 请提前创建与大模型对应的训练数据集,并完成数据集发布操作。 训练日志提示“root: XXX valid number is 0” 日志提示“root: XXX valid number is 0”,表示训练集/验证集的有效样本量为0,例如: INFO: root: Train valid number is 0. 该日志表示数据集中的有效样本量为0,可能有如下原因: 数据未标注。 标注的数据不符合规格。 请检查数据是否已标注或标注是否符合算法要求。 训练日志提示“ValueError: label_map not match” 训练日志中提示“ValueError: label_map not match”,并打印出标签数据,例如: ValueError: label_map not match. {1:'apple', 2:'orange', 3:'banana', 4:'pear'} & {1:'apple', 2:'orange', 3:'banana'} 训练集中的标签个数与验证集中的个数不一致,导致该错误发生。 例如,训练集中的标签共有4个,验证集中的标签只有3个。 请保持数据中训练集和验证集的标签数量一致。 父主题: 训练NLP大模型
  • 查看训练指标 对于训练状态为“已完成”的任务,单击任务名称,可在“训练结果”页面查看训练指标,模型的训练指标介绍请参见表2。 图1 查看训练指标 表2 训练指标说明 模型 训练指标 指标说明 NLP大模型 训练损失值 训练损失值是一种衡量模型预测结果和真实结果之间的差距的指标,通常情况下越小越好。 一般来说,一个正常的Loss曲线应该是单调递减的,即随着训练的进行,Loss值不断减小,直到收敛到一个较小的值。 验证损失值 模型在验证集上的损失值。值越小,意味着模型对验证集数据的泛化能力越好。
共100000条