• [其他] 表示学习的优点
    知识表示学习实现了对实体和关系的分布式表示,它具有以下主要优点: 显著提升计算效率。知识库的三元组表示实际就是基于独热表示的。如前所分析的,在这种表示方式下,需要设计专门的图算法计算实体间的语义和推理关系,计算复杂度高、可扩展性差。而表示学习得到的分布式表示,则能够高效地实现语义相似度计算等操作,显著提升计算效率。 有效缓解数据稀疏。由于表示学习将对象投影到统一的低维空间中,使每个对象均对应一个稠密向量,从而有效缓解数据稀疏问题,这主要在2个方面体现。一方面,每个对象的向量均为稠密有值的,因此可以度量任意对象之间的语义相似程度。而基于独热表示的图算法,由于受到大规模知识图谱稀疏特性的影响,往往无法有效计算很多对象之间的语义相似度。另一方面,将大量对象投影到统一空间的过程,也能够将高频对象的语义信息用于帮助低频对象的语义表示,提高低频对象的语义表示的精确性。 实现异质信息融合。不同来源的异质信息需要融合为整体,才能得到有效应用。例如,人们构造了大量知识库,这些知识库的构建规范和信息来源均有不同,例如著名的世界知识库有DBPedia,YAGO,Freebase等。大量实体和关系在不同知识库中的名称不同。如何实现多知识库的有机融合,对知识库应用具有重要意义。如果基于网络表示,该任务只能通过设计专门图算法来实现,效果较差,效率低下。而通过设计合理的表示学习模型,将不同来源的对象投影到同一个语义空间中,就能够建立统一的表示空间,实现多知识库的信息融合。此外,当我们在信息检索或自然语言处理中应用知识库时,往往需要计算查询词、句子、文档和知识库实体之间的复杂语义关联。由于这些对象的异质性,计算它们的语义关联往往是棘手问题。而表示学习亦能为异质对象提供统一表示空问,轻而易举实现异质对象之间的语义关联计算。
  • [分布式存储] 鲲鹏生态 | 鲲鹏BoostKit分布式存储使能套件精华帖 | 精品内容汇总~持续更新
    鲲鹏BoostKit分布式存储使能套件的移植、部署、调优 端到端使用流程和一站式资源获取最新动态https://www.hikunpeng.com/document/detail/zh/kunpengsdss/wtsnew/index.html特性清单https://www.hikunpeng.com/document/detail/zh/kunpengsdss/function/function.html技术白皮书https://www.hikunpeng.com/document/detail/zh/kunpengsdss/twp/kunpengsdss_19_0001.html基础加速特性数据缩减KAE zlib压缩(指向调优指南)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/dataReduc/kunpengsdss_datareduc_0001.html压缩算法 特性指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/dataReduc/kunpengsdss_datareduc_0002.html数据压紧 特性指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/dataReduc/kunpengsdss_datareduc_0003.htmlCache加速Ceph分布式存储应用IO智能预取 用户指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/cacheAccel/kunpengsdss_cacheaccel_0001.html智能写Cache 特性指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/cacheAccel/kunpengsdss_cacheaccel_0002.htmlBcache 用户指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/cacheAccel/kunpengsdss_cacheaccel_0003.htmlIO加速IO直通工具 用户指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/ioaccel/kunpengsdss_IOaccel_0001.htmlEC Turbo 特性指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/ioaccel/kunpengsdss_IOaccel_0002.html硬件加速KAE MD5摘要算法(指向调优指南)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/basicAccelFeatures/hdwoffload/kunpengsdss_offloading_0001.html应用加速特性全局缓存技术白皮书https://www.hikunpeng.com/document/detail/zh/kunpengsdss/appAccelFeatures/globalCache/kunpengsdss_globalcache_0003.html特性指南(openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/appAccelFeatures/globalCache/kunpengsdss_globalcache_0001.html调优指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/appAccelFeatures/globalCache/kunpengsdss_globalcache_0004.html验收测试指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/appAccelFeatures/globalCache/kunpengsdss_globalcache_0005.html 生态使能CephCeph 14.2.8 移植指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0001.htmlCeph-ansible 部署指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0002.htmlCeph块存储 部署指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0003.htmlCeph对象存储 部署指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0004.htmlCeph文件存储 部署指南(CentOS 7.6&openEuler 20.03)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0005.htmlCeph自动部署指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0006.html使用鲲鹏性能分析工具调优https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0007.htmlCeph块存储 调优指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0008.htmlCeph对象存储 调优指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0009.htmlCeph文件存储 调优指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0010.htmlCeph 扩容指南https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengsdss_ceph_0011.htmlBeeGFSBeeGFS 7.2 部署指南(CentOS 7.6)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/BeeGFS/kunpengsdss_beegfs_0001.htmlFastDFSFastDFS 6.06 部署指南(CentOS 7.6)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/FastDFS/kunpengsdss_fastdfs_0001.htmlMinIOMinIO 2020-12-12T08-39-07Z 部署指南(CentOS 7.6)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/MinIO/kunpengsdss_minio_0001.htmlLustreLustre 2.13.0 部署指南(CentOS 8.0)https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Lustre/kunpengsdss_lustre_0001.html 测试指导Ceph块存储 测试指导https://www.hikunpeng.com/document/detail/zh/kunpengsdss/testGuide/tg/kunpengsdss_tstg_0001.htmlCeph对象存储 测试指导https://www.hikunpeng.com/document/detail/zh/kunpengsdss/testGuide/tg/kunpengsdss_tstg_0002.htmlCeph文件存储 测试指导https://www.hikunpeng.com/document/detail/zh/kunpengsdss/testGuide/tg/kunpengsdss_tstg_0003.html故障案例分布式存储使能套件 故障案例https://www.hikunpeng.com/document/detail/zh/kunpengsdss/trouble/trouble/kunpengsdss_09_0001.html
  • [分布式并行] 【轻松上手MindSpore】系列公开课 第一讲:MindSpore分布式自动并行训练
    视频转载自机器之心公众号https://www.bilibili.com/video/BV1jK4y1b7Ng?from=search&seid=7580972216474281268视频贴
  • [问题求助] 分布式消息服务DMS和分布式消息服务Kafka是什么关系?
    分布式消息服务DMS和分布式消息服务Kafka是什么关系?
  • [介绍/入门] 分布式消息服务DMS和分布式消息服务Kafka是什么关系?
    分布式消息服务DMS和分布式消息服务Kafka是什么关系?
  • [问题求助] 【讨论帖】异地分布式团队的站会,是物理看板好还是电子看板好呢?
    讨论主题之前看到一篇文章:关于物理看板VS电子看板的帖子,分析对比了两者的优劣势。最后作者给出建议:物理看板,比较适用于团队刚刚使用敏捷时。电子看板,比较适用于分散的分布式团队。那么,如果一个刚刚成立的分布式敏捷团队应该选择哪种看板呢?如果只想用一种避免维护上的浪费的话。个人观点个人一直以来都推崇物理看板,对于异式地分布式团队的站会,也是比较倾向于物理看板——盯着人看好过盯着电脑看。大家怎么看呢?
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第133期consul-0.9.2安装配置指南
    1、简介Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等)。使用起来也较 为简单。Consul使用Go语言编写,因此具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合 。官方链接:https://www.consul.io  类别:用于实现分布式系统的服务发现与配置2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包Consul0.9.2https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_arm64.zip3、依赖安装无4、组件安装下载Consul二进制包:wget https://releases.hashicorp.com/consul/0.9.2/consul_0.9.2_linux_arm64.zip使用命令unzip命令解压包,并指定目录到/usr/local/bin: unzip consul_0.9.2_linux_arm64.zip -d /usr/local/bin/配置环境变量,保存后退出。vi /etc/profileexport CONSUL_HOME=/usr/local/bin/consulexport PATH=$PATH:CONSUL_HOMEsource /etc/profile查看是否安装成功:consul --version版本信息如下:5、系统配置   无6、测试 1)启动consul:# -dev表示开发模式运行,另外还有-server表示服务模式运行consul agent -dev 2)查看consul cluster中的每一个consul节点的信息:consul members   7、参考信息    无8、FAQ无
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第089期slider-0.80安装配置指南
    1、简介  Apache Slider目前还是Apache二级孵化项目,作为yarn的动态应用,可将已有分布式服务或者应用直接部署到YANR上,监控应用并按需调整应用资源大小。2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包slider0.80https://archive.apache.org/dist/incubator/slider/0.80.0-incubating/slider-assembly-0.80.0-incubating-all.tar.gz 3、依赖安装环境中必须已经安装好hadoop以及jdk。安装方法可以看相应的安装手册。4、组件安装  下载slider并解压cd /usr/localwget https://archive.apache.org/dist/incubator/slider/0.80.0-incubating/slider-assembly-0.80.0-incubating-all.tar.gztar -zvxf slider-assembly-0.80.0-incubating-all.tar.gz解压后会生成一个slider-0.80.0-incubating文件夹此slider包不需要编译可以直接使用5、系统配置进入到解压目录的conf目录cd /usr/local/slider-0.80.0-incubating/conf我们需要修改两个文件,修改之前我们需要知道两个东西,一个是hadoop的安装路径、jdk的安装路径和自己的hostname。hadoop的安装路径我们可以find / -name hadoop 来确定,搜索结果里面有 /hadoop加版本号/etc/hadoop 这样显示的就是我们要找的路径。 jdk的安装路径及版本我们可以find / -name jdk*来确定 hostname可以通过查看/etc/hosts来确定,如果是分布式环境从机的名字也需要都记住。 确定这两个路径之后我们开始改两个文件,第一个文件slider-env.sh:加入vim slider-env.shexport JAVA_HOME= /opt/app/jdk1.8.0_212export HADOOP_CONF_DIR= /opt/app/hadoop-2.7.7/etc/hadoop 第二个文件slider-client.xml:加入以下内容,2181是slider默认的端口vim slider-client.xml<property>    <name>hadoop.registry.zk.quorum</name>    <value>master:2181</value></property> 假如你的是分布式的环境你需要把所有机器的名字都写上去。可以看下面的例子。 这两个文件配置完成后配置环境变量vim /etc/profileexport SLIDER_HOME=/usr/local/slider-0.80.0-incubatingexport PATH=$PATH:$SLIDER_HOME/binsource /etc/profile这些设置完成后可以slider version来查看是否安装成功看到以下表示安装成功;         6、测试无7、参考信息https://my.oschina.net/yulongblog/blog/7442558、FAQ无
  • KUNPENG平台cassandra4.14移植自动安装脚本
    1 cassandra简介Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。2 环境信息2.1 环境信息类别子项版本获取地址OSCentOS7.5 Aarch64href="https://www.centos.org/download/" https://www.centos.org/download/服务器配置16U16GB40GB软件ant1.0.5http://apache.mirrors.spacedump.net//ant/source/apache-ant-1.10.6-src.tar.gzcommons-net4.0.9http://apache.mirrors.spacedump.net//commons/net/binaries/commons-net-3.6-bin.tar.gzjsch0.1.55 https://kent.dl.sourceforge.net/project/jsch/jsch.jar/0.1.55/jsch-0.1.55.jarxml-commons-resolve1.2http://apache.mirrors.spacedump.net//xerces/xml-commons/binaries/xml-commons-resolver-1.2.tar.gzjakarta-regexp1.5http://archive.apache.org/dist/jakarta/regexp/jakarta-regexp-1.5.tar.gzjakarta-oro2.0.8http://archive.apache.org/dist/jakarta/oro/jakarta-oro-2.0.8.tar.gzcassandra3.11.4https://github.com/apache/cassandra/archive/cassandra-3.11.4.tar.gz3 软件移植3.1 环境准备OS安装类型:CentOS-7.5-aarch64-1804。 注:操作系统安装使用最小简化版安装(如上图),其余步骤安装一般安装操作系统步骤即可。 3.1.1 网络1、 安装cassandra安装需要maven下载依赖,需为服务器开通外网权限。3.1.2 相关软件下载上传2、 上传CentOS 7.5系统ISO镜像文件至服务器3、 添加用户并切换至cassandra用户useradd -d /usr/cassandra -m Cassandrapasswd Cassandrasu cassandra4、 下载并上传2.1环境信息表格中软件栏的所有源码包至服务器任意目录下,如/opt,:3.2 安装cassandra    1、 安装cassandra    上传以下脚本至要安装cassandra的服务器上的任意目录,如/opt。    (cassandra_install.sh)    添加执行权限:    chmod +x /opt/cassandra_install.sh    执行脚本    sh /opt/cassandra_install.sh    2、 提示cassandra install success表示安装成功。3.3 验证执行   1.启动cassandra,登录/cassandra/bin目录下执行./cassandra2.根据不同机型提示单线程最小内存栈大小修改配置文件,如上图本机所需最小328k,修改jvm.options,示例下图修改为329k  3.修改后再次启动cassandra,登录/cassandra/bin目录下执行./cassandra,如下图表示启动成功 4.另开一个窗口连接并测试下数据库  4 参考信息https://www.huaweicloud.com/kunpeng/software.html
  • KUNPENG平台Zookeeper3.1.4移植自动安装脚本
    1 Zookeeper简介Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 2 环境信息2.1 环境信息类别子项版本获取地址OSCentOS7.5 Aarch64href="https://www.centos.org/download/" https://www.centos.org/download/服务器配置16U16GB50GB软件Zookeeper3.4.14 http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz3 软件移植3.1 环境准备OS安装类型:CentOS-7.5-aarch64-1804。 注:操作系统安装使用最小简化版安装(如上图),其余步骤安装一般安装操作系统步骤即可。 3.1.1 相关软件下载上传1、 上传CentOS 7.5系统ISO镜像文件至服务器2、 上传zookeeper-3.4.14.tar.gz源码包至服务器目录下,如/opt下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 3.2 安装Zookeeper      1、 如果当前服务器没有网络,请先配置本地yum源。        a. 上传以下脚本至要安装Zookeeper的服务器上的任意目录,如/opt。        (local_yum_install.sh)        b. 执行如下命令添加执行权限:        chmod +x /opt/local_yum_install.sh        c. 执行如下命令安装配置本地yum源        sh /opt/local_yum_install.sh    2、 本地yum源安装完毕后,因为Zookeeper需要依赖java环境    yum install java-1.8.0-openjdk –y         3、 解压安装包     tar -zxvf zookeeper-3.4.14.tar.gz    cd zookeeper-3.4.14    4、 创建日志存放目录    mkdir dataDir    5、 拷贝样例文件为配置文件,准备修改    cd conf    cp zoo_sample.cfg zoo.cfg    6、 编辑配置文件,自定义日志存放目录,如下图    vim zoo.cfg     7、 启动Zookeeper  3.3 验证执行 
  • [技术干货] 【云图说】第161期 初识华为云TaurusDB,新一代企业级高扩展海量存储分布式数据库
    云数据库TaurusDB介绍页入口:cid:link_0云数据库TaurusDB帮助文档入口:cid:link_1 数据库的大家庭又有了一位重磅级成员——云数据库TaurusDB,它是华为自研的新一代企业级高扩展海量存储分布式数据库,兼容MySQL。既拥有商业数据库的高可用和高性能,又具备开源低成本效益。一起来认识下。       
  • [问题求助] 请问一下这个分布式消息服务的计费规则是什么样的
    请问一下咱们分布式消息服务这个产品是怎么计费的,我看咱们官网帮助文档看没楞是看不明白https://www.huaweicloud.com/pricing.html?tab=detail#/kafka
  • [技术干货] 智慧协同赋能数字化转型: 信核InfoShare助力企业拥抱全新的文件管理方式
    前段时间,国际数据公司IDC发布了《2018年下半年中国企业团队协同软件市场跟踪报告》。报告显示,2018年下半年中国企业团队协同软件市场规模为8026.5万美元,同比增长23.8%。预测到2023年,中国企业团队协同软件市场规模将达到3.88亿美元,未来5年整体市场年复合增长率为23.1%。报告还指出,未来SaaS模式的企业团队协同软件的增速要远远高于传统部署模式,到2023年,SaaS模式的企业团队协同软件市场份额将从2018年的19.8%上升为31.8%。由此可见,企业协同软件市场的前景非常好,市场依旧不饱和,当然,市场竞争也愈加激烈。在这样的市场环境下,各厂商要实现自身的长足发展,必然要做出战略部署或改变,或强化产品、或加强渠道、或生态合作,总之,一定要有自己的核心竞争力。信核虽进入企业协同软件市场较晚,但企业文件共享云产品InfoShare一经发布便接受住了市场考验,它得到了用户的广泛认可,经过近两年的不断孵化升级,InfoShare给客户带来的服务半径越来越长,使用体验也越来越好。我们在增加使用场景的同时,保证产品操作简单,进而产生规模效应,帮助用户提高团队效率,应对数字化浪潮。InfoShare作为一款主打文件管理与协同办公的软件,它通过提供专业化解决方案来寻求差异化发展,进而获得竞争砝码。不同于传统的OA办公以及ERP软件,InfoShare侧重内容管理,进而实现对人的流程管理,而这正是协同的核心。下面,我们一起全面的了解下InfoShare,将它的核心功能点以及4.0版本的新功能一一列举来。01InfoShare主要功能模块文件管理01支持文件按使用场景分类管理(个人文件、部门文件、共享文件),支持对文件进行上传、删除、下载、修改等常用操作,支持文件夹上传以及拖拽上传,支持按关键字模糊搜索。共享管理02▷ 内部共享:支持将文件共享给指定用户,支持按需设置共享权限,共享访问权限细分至 7级,同时可设置拒绝权限,用户访问共享文件严格受到权限控制。▷ 外链共享:支持通过链接的方式共享文件与文件夹给外部用户,可设置密码、权限、到期时间。权限控制03通过 ACL(访问控制列表:允许或拒绝访问) 搭建 InfoShare 整体权限体系,管理员可对不同用户分配不同的使用权限,普通用户可设置文件共享权限。在线预览04支持主流文件格式如:Word、PPT、Excel、TXT、PDF、图片、CAD 等在线预览。消息管理05支持统一推送消息,包括账户变更、文档评论、评论回复、文件共享等,支持对消息进行管理,进行标为已读、删除等操作。用户组管理06用户组用于满足用户临时性的多人文件共享需求,用户可按需设置多个用户组,创建者拥有用户组的完全权限,可在添加、移除用户进用户组,编辑、删除用户组。日志系统07记录平台用户的文件变更操作以及登录 IP 信息,普通用户可查看本人操作日志,超级管理员可查看所有用户日志,可通过多种筛选方式进行日志查找执行日志审计。系统管理08▷ 用户管理:部门管理,注册管理,用户组管理,超级管理员可禁用或激活用户,可分配用户至相应部门,设置用户、部门配额,设置企业组织架构,分配部门负责人等;普通用户可管理用户组,删除,新建用户组。▷ 授权管理:提供试用授权以及永久授权两种模式,支持按用户数授权。▷ 系统设置:开启关闭水印、修改全局配额,分配超级权限。02InfoShare4.0新特性1分布式集群采用分布式集群架构,无论是 InfoShare 服务节点还是 InfoShare 存储节点均支持横向扩展,并且通过内部 LVS 实现实时负载均衡。节点扩展最多可达数十个。2支持多种存储类型存储端支持接入分布式文件系统或对象存储 ,适应多种用户场景。3SaaS 模式支持多租户模式。用户可以采用订阅的方式购买 InfoShare SaaS 服务,按需购买降低用户硬件服务器初始投入,更加灵活方便。4外链共享支持外链共享,可通过链接方式共享文件给外部用户,外链共享可设置访问权限、密码和到期时间。5文件秒传支持文件秒传,当上传的是重复文件时速度将快至秒级。6全局文件去重支持 InfoShare 系统全局文件去重,大幅节省存储空间。7web文件夹下载支持 web 端文件夹下载,文件管理更加便捷。8共享管理开放入口统一管理内部共享与外链共享出去的文件与文件夹。9本地同步本地同步将扩展 Windows 客户端使用范围,可以将任意位置的文件与InfoShare 云端文件进行同步,这样InfoShare 的使用范围即不局限于一个盘,而是能够有效扩展至多个盘,甚至整个 PC 电脑。10文件锁定支持文件独占锁定,当想要对文件进行在线编辑时,可主动锁定文件,此时其他用户将以只读模式打开文件,防止发生内容冲突,数据丢失。11本地预览支持当用户点击打开只有预览权限文件时,在本地打开预览窗口实现文件预览,兼顾了文件安全性与用户体验。12授权升级支持授权为两种使用模式,单租户的线下私有云模式,多租户的 SaaS平台模式。13界面UI改版界面交互与 UI 全新设计,交互逻辑更加简洁,美观度大幅提升。14手机客户端支持安卓、iOS 手机客户端,可便捷在手机上处理文件。虽然《报告》指出未来SaaS模式的企业团队协同软件的增速要远远高于传统部署模式,但传统部署的需求仍旧不可忽视。InfoShare4.0支持多租户模式,能够以SaaS方式对外提供企业云盘服务;也可以采用按需购买服务的方式使用InfoShare云端服务,降低企业初始服务器投入。任何企业要实现数字化转型,都需要把协同和业务的数据进行集成,而这种集成要“以人为中心”,对人、数据、组织赋能。InfoShare便是在满足这一要求的基础上去提供专业的产品和解决方案的。
  • [教程] 零基础分分钟玩转AI
    2019年,热门的人工智能(AI)继续在产业中快速奔跑,越来越多的行业开始搭上智能化升级的大潮。然而,长时间、高成本、高投入、复杂繁琐的AI开发流程,正阻碍着AI产业的规模化发展,许多传统企业不能轻松快速地构建AI能力。喝一杯水要几步? 对于普通人来说,这是一件毫不费脑的事。那么AI开发需要几步呢?对于开发小白和AI专业开发者来说,答案截然不同。1月底,华为云EI(企业智能)一站式AI开发平台ModelArts正式商用上线,不仅让许多AI小白拆除AI开发的门槛,同时也让诸多AI开发者享受到更为高效便捷的开发体验。这一被称为“开发者的福音”的AI平台,究竟是怎样的利器?它又在如何在各个传统行业发挥作用呢?对此,智东西分析了ModelArts加速AI开发的四大亮点,详解ModelArts平台使用步骤,并亲身体验了ModelArts的极简操作流程,过了一把AI开发瘾。一、ModelArts四大亮点,加速AI开发流程简单的说,ModelArts平台就是一个让小白轻松学会训练AI模型、让AI老手节省时间脑力的开发神器,让各行各业关于AI的创意都能快速实现。这里,我们先从四大亮点分析ModelArts如何帮助有经验的开发者加快AI模型开发和部署,然后复原小白轻松上手AI开发的全过程。1、提供开源数据集,部分场景实现数据自动标注对于饱受数据标注困扰的开发者而言,ModelArts是可以简化数据标注流程的优质平台。ModelArts通过对数据进行采样、筛选、预标注,可以将大部分数据进行自动标注和筛选,而人工只需在自动数据标注后做筛选确认,这将极大地降低开发者的工作量。目前,ModelArts机器数据标注已广泛应用于“自动驾驶学习”场景,后续ModelArts还将持续更新,以服务更多新兴业务场景。ModelArts还有一个亮点功能——市场。“市场”是一个共享平台,为开发者提供多种开源数据集和一些预置模型,开发者也可以上传自己的数据集合模型。后续可能还会有交易模式,让一些AI开发者在提供AI模型后,可以实现知识价值变现。2、自动学习+自动训练模型并调参,简化工作量对于算法工程师来说,在训练中会有很多调参,由于不同的调参会影响最后模型的收敛速度及精度,这一部分通常会给算法工程师制造大量的工作量。ModelArts提供自动化调参服务,采用momentum、batch size等动态超参策略,将模型收敛所需 epoch个数降到最低,不仅可以简化算法工程师调参的工作量,还能帮助算法工程师找到尽可能最优的参数,在满足精度的前提下让模型快速收敛。3、大规模分布式训练,加快训练速度ModelArts平台的高效不止体现在简化步骤和数据标注上。它是一个端到端从硬件到软件协同的平台,华为在其中做了很多深层次的优化和高性能调优,包括对分布式调度、网络通信和硬件特性等做整体优化,以提供加速训练的能力。在深度学习模型训练过程中,华为云将分布式加速层抽象出来,自研了一套分布式通用加速框架MoXing,在TensorFlow、MXNet、PyTorch、Keras等框架上实现再优化,使得这些计算引擎分布式性能更高,训练时间更短。开发者可以通过几个接口直接调用MoXing框架,将本地单机的业务变成分布式业务,仅用一串代码就实现单机和分布式部署。开发者无需关心下层分布式相关API,只需聚焦在业务模型中,根据实际需求输入数据、模型和相应优化器。ModelArts在衡量分布式深度学习框架加速性能主要考虑的吞吐量、收敛时间等关键指标上都做了精心处理。通过提供MoXing分布式框架和千级GPU集群规模训练加速,ModelArts可为用户带来极高性能的AI开发体验。4、模型一键式部署,适配到端边云通常情况下,模型部署非常复杂,需要写代码集成到应用系统,维护和更新。ModelArts可以一键将模型部署到云、端、边缘的设备上,根据端边云不同的特点,帮助开发者做模型压缩和模型加速。该平台还支持在线和批量推理,满足多种场景需求。根据开发者制定的策略,ModelArts平台可以自动调整云服务器的计算资源,在业务需求下降时将减少云服务器,高效节省资源和成本;在业务需求增多时增加云服务器,保证业务平稳健康运行。
  • [分享交流] 分布式系统设计新手入门---2,微服务架构中拆分的实践
    引言在这篇文章中将从分析一个开源项目的可分布性入手,介绍如何使用AP&RP技术。这是一个关于分布式系统设计新手入门的系列文章中的第二篇。您可以点击下面链接找到第一篇文章。分布式系统设计新手入门---1,微服务的拆分I.          介绍在新手入门1中我们简要的介绍了AP&RP技术。为了充分展现这个技术带来的惊人效果,我在github.com上随机挑选了一个项目。这个项目是一个电商的开源项目,名称叫shop,作者为Manphil,项目地址为https://github.com/Manphil/shop。这里要向他及其所有开源作者表示感谢。如果没有他们的工作,我将需要耗费更多的时间来编写本章的实例。首先我要对这个项目做一个整体的技术介绍。这是一个使用JAVA语言开发的电商项目。开发环境为开发环境:IDEA、Tomcat8.5。使用的数据库为MySql。分为前端两个部分,前端使用Bootstrap以及JQuery,后端基于SpringMVC、Spring、MyBatis进行开发,使用Maven构建工程。因为我们只是分析服务端系统的可分布性,限于篇幅将略过项目的构建,调试以及前端的部分。虽然这个实例为JAVA语言,但本篇所介绍的技术同样适用于nodejs,C++,C等语言开发的服务端软件系统。II.        整体的产品功能及系统架构Shop并不是一个成熟的开源项目,很多功能处于开发过程中。通过对其分析产生了一些让我也感到惊讶的结论。我会在后面总结这些结论。shop项目主要分为两个大部分,第一部分为系统管理,第二部分为前端调用接口。其全部有11个产品功能组成。如图1所示Shop系统架构也较为简单,分为后端服务和数据库端。后端服务直接通过MyBatis中间件链接数据库。如图2所示在shop中有62个可以被调用的接口链接。也就是说整个系统是由62个任务所组成的。相对于比较成熟的电商项目有着上百个接口来说,shop是比较简单的。III.      分析任务1先假设shop可以通过MySql集群实现AP操作,那么我们只要对软件系统中的任务读写数据的情况进行分类既RP分析,就可以知道项目shop能否进行分布式操作。这里我们挑选shop中比较复杂的两个任务来介绍具体的分析过程。其中之一是/info/list,这个功能负责返回用户的订单信息。他位于shop/controller/front/CustomerController.java文件中。其源代码如下:    @RequestMapping("/info/list")     public String list(HttpServletRequest request,Model orderModel){         HttpSession session=request.getSession();         User user;         user=(User)session.getAttribute("user");           if (user==null)         {             return "redirect:/login";         }           OrderExample orderExample=new OrderExample();        orderExample.or().andUseridEqualTo(user.getUserid());         List<Order> orderList=orderService.selectOrderByExample(orderExample);         orderModel.addAttribute("orderList",orderList);         Order order;         OrderItem orderItem;         List<OrderItem> orderItemList=new ArrayList<>();         Goods goods;         Address address;        for (Integer i=0;i<orderList.size();i++)        {            order=orderList.get(i);            OrderItemExample orderItemExample=new OrderItemExample();            orderItemExample.or().andOrderidEqualTo(order.getOrderid());            orderItemList=orderService.getOrderItemByExample(orderItemExample);            List<Goods> goodsList=new ArrayList<>();            List<Integer> goodsIdList=new ArrayList<>();            for (Integer j=0;j<orderItemList.size();j++)            {                orderItem=orderItemList.get(j);                goodsIdList.add(orderItem.getGoodsid());            }            Good**ample good**ample=new Good**ample();            good**ample.or().andGoodsidIn(goodsIdList);            goodsList=goodsService.selectByExample(good**ample);            order.setGoodsInfo(goodsList);            address=addressService.selectByPrimaryKey(order.getAddressid());            order.setAddress(address);            orderList.set(i,order);        }        orderModel.addAttribute("orderList",orderList);        return "list";     }1, “@RequestMapping("/info/list")”表示uri的链接/info/list将会触发调用函数“public String list(HttpServletRequest request,Model orderModel)”。这个调用并没有传递参数到函数中。它被触发的形式可能为http://localhost/info/list。2, 在“HttpSession session=request.getSession();”中首先读取了session的数据。Session内保存了当前链接关于安全和权限的数据。这段代码是检验只允许已经登陆的用户才能使用这个接口。注意session中的数据作为全局数据也是我们要分析的数据之一。3, 在“List<Order> orderList=orderService.selectOrderByExample(orderExample);”中读取了指定用户的所有订单的数据。其中“orderService.selectOrderByExample”最终被转换为mysql数据库的查询操作。4, 在获取了用户全部订单信息后,通过语句“orderItemList=orderService.getOrderItemByExample(orderItemExample);”查询具体订单中的物品信息。5,在“goodsList=goodsService.selectByExample(good**ample);”中查询物品的商品信息。6, 以及在address=addressService.selectByPrimaryKey(order.getAddressid());查询对应订单的地址信息。以上5个信息分别存储在数据库中的`address`,`indent` ,`orderitem`,`goods`以及全局数据session中。这里是以整个表为读取数据的使用范围。请注意这里的使用数据的范围。以读取用户全部订单为例,其使用数据的范围为整个`indent`表。得到的数据是用户的当前订单。这里以使用数据范围为边界而不是以得到的数据范围为边界。通过以上分析我们得到了“/info/list”的使用数据的范围并记录下来。如图3所示IV.      分析任务2我以“/orderFinish”来分析有写入数据的情况。“/orderFinish”的功能是将购物车的数据提交为订单。其代码如下    @RequestMapping("/orderFinish")     @ResponseBody     public Msg orderFinish(Float oldPrice, Float newPrice, Boolean isPay, Integer addressid,HttpSession session) {         User user = (User) session.getAttribute("user");           //获取订单信息         ShopCartExample shopCartExample = new ShopCartExample();         shopCartExample.or().andUseridEqualTo(user.getUserid());         List<ShopCart> shopCart = shopCartService.selectByExample(shopCartExample);           //删除购物车         for (ShopCart cart : shopCart) {             shopCartService.deleteByKey(new ShopCartKey(cart.getUserid(),cart.getGoodsid()));         }           //把订单信息写入数据库         Order order = new Order(null, user.getUserid(), new Date(), oldPrice, newPrice, isPay, false, false, false, addressid,null,null);         orderService.insertOrder(order);         //**的订单号         Integer orderId = order.getOrderid();           //把订单项写入orderitem表中         for (ShopCart cart : shopCart) {             orderService.insertOrderItem(new OrderItem(null, orderId, cart.getGoodsid(), cart.getGoodsnum()));         }           return Msg.success("购买成功");     }1, 首先“@RequestMapping("/orderFinish")”将uri映射到了orderFinish函数。并传入了5个参数。这5个参数是前端调用uri时同时传入的。2, 在第一句中“User user = (User) session.getAttribute("user");”通过session获得了当前用户信息。3, 在“List<ShopCart> shopCart = shopCartService.selectByExample(shopCartExample);”中获得了数据库内的用户购物车信息。4, 在“shopCartService.deleteByKey(new ShopCartKey(cart.getUserid(),cart.getGoodsid()));”中删除了数据库内的购物车信息。5, 在“orderService.insertOrder(order);”将购物车的数据转为订单并提交到订单数据库。6,在“orderService.insertOrderItem”中将订单中的物品提交到了数据库中的“orderitem”数据表。通过对上述写入和读取数据范围的分析可知。“/orderFinish”读取了`shopcart`表和“session”中的数据。其读取范围为`shopcart`表和全部“session”。写入了`shopcart`,`indent`  ,`orderitem`共3个数据库中的表。其写入数据的边界同样为这3个表的全部。注意这里是**数据而不是更新数据。如果是更新数据,其更新的范围会更小。我们将在后续的章节里进一步讨论其中的细微差别。同样将我们的分析结果记录下来如图4所示V.        工程的可分布性当我们把所有的任务读取和写入的数据都整理好以后放入表格文件(见附件)。我们发现在这个工程中只有少数操作使用数据库字段。大部分数据都是以表为单位使用全部数据字段。在项目中无效的任务为6个。有读取数据的任务为28个。有写入数据的任务有30个。写入数据之间没有原子关系的任务为1个。有原子关系的任务共29个分为8组。除去无效任务剩余的37组任务可以分布到37个服务器容器中。整体工程的可分布性比率即可分布任务组与有效任务之比为69.3%。如图5所示其中任务有原子关系是指读取的数据之间有写入冲突只能放在有原子性的服务器容器内。在30个有写入数据的任务中,有29个任务有原子关系共分为8组。例如“/addCategoryResult”,“/saveCate”,“/deleteCate”都写入表`category`。所以这3个任务具有原子关系,被分为一组。这8组写入任务最多只能放在8个有原子属性的服务器容器内。也就是8个单线程的服务器容器。对于其余的28个只读任务,在前面已经假定我们使用的是分布式数据库集群来模拟AP技术。这种数据库集群可以使用Oracle, HP vertica, SAP HANA或OceanBase,以上是世界知名公司的产品,不需要我来打广告。虽然使用数据库集群模拟的AP操作效率较低,但为了更方便初学者我们使用数据库集群来替代AP操作,以后的章节里我们会学习如何手动进行AP操作。这里先假定数据库集群可以为每个任务提供一个额外的服务器节点用于处理AP操作。那么这个项目在一般情况下最大可以分布到74台服务器集群中。VI.      一般分布式方法让我非常惊讶的事情在于一个电商网站的工程离散性居然如此之高。在没有使用任何其他特殊技术的情况下只是引入了数据库集群。并且没有修改任何代码的情况下就将服务器扩张了74倍。如果按传统的产品功能分割的方法则最多只能分为11个部分。而且要非常耗时耗力的分割软件工程和分割数据库。这里我将这种分布式技术的一般应用称为一般分布式技术。一般分布式技术是在最小改动工程的基础上运用分布式技术进行系统分布式的方法。与此相对而言,AP&RP技术绝不仅仅限于此。在使用一般分布式方法处理后的工程,我们会得到一个关于任务uri影射表的。以此项目为例可以简单的将服务端软件复制37份并放入37个服务器容器内。并使用nginx反向代理将uri影射到不同的服务器容器内。注意这里并不需要你去拆分软件工程。只要让不同的服务器容器处理不同的请求就可以了。例如我们配置其中一个服务器容器192.168.1.1用于处理`category`表的写入请求。前面得知“/addCategoryResult”,“/saveCate”,“/deleteCate”三个任务会写入`category`所以添加配置到nginx如下: location /addCategoryResult {         proxy_pass http:// 192.168.1.1:8080;     } location /saveCate {         proxy_pass http:// 192.168.1.1:8080;     } location /deleteCate {         proxy_pass http:// 192.168.1.1:8080;     } 将反向代理和数据库集群以及37个服务器的复制品放在一起,我们得到被分布式后的shop工程。如图6所示VII.    一些知识点与问题1,  AP&RP技术是否安全可靠?首先AP&RP技术没有修改您的任何业务逻辑。也没有增加任何额外的业务及硬件层级。所以不存在AP&RP技术失效导致系统停用的问题。在一般分布式技术中,从直观角度说由单台服务器扩张到多台服务器后。其中任何服务器的失效都不会导致集群整体业务的停止。所以这种扩展是对集群安全性的提升。现有的分布式方法是否更加安全呢?建议你去读FLP定理的相关论文。分布式系统不会比硬件带来更多的可靠性。这里向为我们提供了更多可靠性而不断努力的硬件工程师致敬。2,  谬误1,在不同功能分类中不存在有原子关系的任务。因为功能分类的划分是主观而随意的。常常会将一些有原子关系的任务划分到不同的功能中。例如示例中活动商品管理中的任务“/update”需要设置“goods(activityId)”与商品管理功能产生了原子关系。将这个任务与其他具有原子关系的任务放在一起,在分割中会更为自然。这里应将“/update”放入到商品管理中,这样做从产品设计的角度就显得有些奇怪。3,  谬误2,按功能分类不出问题但不代表正确。目前绝大多数分布式系统都是按功能进行划分的。然后工程师依据是否出现问题去修正系统。虽然大部分按功能划分的系统都运行良好。但我思考这也仅仅是运行良好而以。因为刚好没有触发RP冲突也就是原子关系的冲突。在一定概率上运行良好就认为这样划分没有问题,这是非常危险和不严谨的态度。4,  过度分层导致心智负担严重。软件功能过多的分层和硬件系统过多的分层对开发人员导致了严重的心智负担。仅仅为了阅读看起来更有层次而产生的分层。将软件真实处理过程与触发点严重分割开来。导致对软件的阅读产生了极大的障碍。例如本示例从触发数据库操作到真实调用数据库之间要跳转3个文件。而且作者额外开发了大量最终没有使用的数据库调用方法。这都导致了开发效率下降和开发成本增加。5,  有弹性的分布式系统。随着软件系统的访问流量的增长,系统拆分的越来越细是必然需求,但随着拆分的越来越细,工程的复杂度也会越来越高。当复杂度超过人脑在有限时间范围内能够理解的程度时,就需要计算机系统有能够按规则自动完成分解系统的能力。显然在处理极度复杂的系统时不能再单纯的依靠人力。因为人力管理本身就是极其不可靠和复杂的。我们需要更有弹性的自动化分布式系统。今后的章节里我们将会讨论更多的技术细节并最终完成一个有弹性的自动化分布式系统。6,  从面向计算到异步网络的延伸。分布式这门学科创建之初主要是为了解决数学计算能否分解的难题。例如能否用分布式的方法逆向hash算法。那时计算机还只是作为计算的工具。而此时计算机系统更像是人类社会中某个工具的延伸。你可以当它是商店,停车场收费器,外卖的呼叫器。人类网络本身就是一个大型的异步系统。当这种异步系统延伸到计算机系统时,计算机系统只是延续了人类这个异步系统的高离散性。这种离散性便是能否进行分布式及其边界划分的基础。我们也会花更多的时间来讨论分布式技术在学术上的意义。VIII.  感谢首先这里我想感谢我的妻子在我进行学术研究的这一年里对我的支持。也要感谢华为云网站和编辑。更要感谢您抽出宝贵时间进行阅读。希望我的文章能够帮助您学习了解分布式技术,并将AP&RP技术应用到您的网站设计中。现在您就可以动起手来看看您网站的可分布性啦?