• [技术干货] 【AI干货合集】从入门、实战到落地,华为云AI技术能力全揭秘
    文章简介开发者如何抓住时代机遇,学好AI?学习人工智能之前,你需要了解这些。想了解人脸识别算法训练,看这篇就够了!初步了解人脸识别技术的发展,通过平台实例的操作,快速训练人脸识别模型。一文读懂文字识别的关键技术和进展华为云OCR融合了多种图像处理技术,具有高精度,鲁棒性和自适应性等特点。三招弱监督方法,从脏数据中得到一个好模型弱监督学习可以从有着大量噪音的互联网图片中训练出一个可用的模型。AI助力,视频分析全面进入智能时代基于人工智能的视频内容分析可以从根本上解决传统内容分析方法性能低下的问题。全面解读文本情感分析,快速识别正负面评价文本情感分析在社交媒体、舆情监测上有广泛应用,比如商品评价正负面的分析。人工客服质检效率低怎么办?华为云带你体验AI智能质检智能质检使用自然语言算法和预定义规则,分析客服与客户对话,提高效率。前沿技术探秘:知识图谱构建流程及方法知识图谱能破解企业智能化知识挖掘和管理难题,实现知识化转型。图神经网络!打开企业盈利的下一个风口图神经网络能做出更精准预测,提供个性化服务,实现精准化营销。画张图,我们就能秒级洞察千亿级复杂关系如果把关系数据模型比做火车的话,那么图数据建模就是高铁。ModelArts3.0 发布,一个让机器狗学会灭火的AI神器训练、标注成本节省90%,一站式AI开发平台ModelArts打通训练数据到模型落地。更懂开发者的视觉AI开发平台,HiLens为设备DIY一双“慧眼”通过端云协同管理和软硬件一体化开发方案降低开发门槛。华为集齐AI龙珠,“召唤神龙”为期不远系统介绍华为在AI芯片、训练集群到训练框架以及云计算等多方面的技术栈。文章简介【ModelArts】深度解读华为云 AI 开发平台 ModelArts 技术架构在竞争激烈的AI框架和平台市场下,技术解读ModelArts如何脱颖而出?【MoXing】华为云深度学习模型API,助你迅速上手AI开发MoXing是华为云深度学习服务提供的网络模型开发API,它让模型的代码编写更加简单。【昇腾AI】华为秀AI硬件实力,发布算力最强AI处理器昇腾910、MindSpore的推出,意味着华为已完成全栈全场景AI解决方案的构建。【昇腾AI】华为发布昇腾AI全栈软件平台,跨越算力应用鸿沟异构计算架构CANN 3.0、全流程开发工具链MindStudio和MindX,覆盖了基础软件到应用使能。【AI芯片】深度解读达芬奇架构:华为AI芯片的“秘密武器”达芬奇架构是华为自研的面向AI计算特征的全新计算架构,具备高算力、高能效、灵活可裁剪特性。【OCR】华为云OCR关键技术、能力分析,让产品落地做到极致硬件的底层优化、自研算子、优化数据模型,华为OCR背后的技术创新。【对话机器人】从架构、API到应用,华为云如何全局践行AI落地?华为云详解如何更好地实现云上强大AI能力的价值落地。【开源框架】MindSpore!这款刚刚开源的深度学习框架我爱了!通过两个实际应用案例介绍开源框架 MindSpore。文章简介【AI助农】华为云ModelArts零代码开发病虫害识别应用使用ModelArts快速开发农作物病虫害识别微信小程序,用人工智能的力量赋能农业。【AI识图】ModelArts自动分组厉害了,一键完成数据标注、过滤将特征相似的图片归为一类,将特征差别大的图片群分离。【AI写作】哎哟不错哦,ModelArts教你写周式情歌通过大量的歌词数据训练模型,实现AI写杰伦风格的歌词。【AI写作】七夕节来啦!AI一键生成情诗,去发给你的女朋友吧!一个自动生成情诗的AI,大家可以在ModelArts尝试复现模型。【AI识人】青春云毕业:如何用AI为毕业生“拍”毕业照?用AI简单而优雅地实现“云毕业照的拍摄”。【AI写作】要是有AI,我要做“李白”——五分钟开发作诗机器人本案例使用CBS为机器人快速配置技能,通过多轮对话实现机器人写诗技能。【AI聊天】听说华为云AI有个聊天官?——浅谈华小唯打造之路从确定人设、找写手到编写语料,一个会聊天的AI是这样被创造出来的。【AI识人】不知道斯嘉丽约翰逊演过哪些电影?知识图谱告诉你训练电影领域的自定义信息抽取模型,构建知识图谱,轻松查询斯嘉丽主演过哪些电影。 【AI聊天】史上最强DIY,手工制作一只会说话的机器狗在语音识别、自然语言处理、语音合成等技术加持下,机器狗实现更丰富的语音功能。【HiLens Studio体验】快速开发一个行人检测与跟踪 Demo凭借HiLens Studio, 任何时间、地点,都可以实现自己的idea。【HiLens Studio体验】如何用HiLens Studio轻松上手口罩检测小工具用HiLens的傻瓜开发工具做一个口罩识别小工具。【昇腾AI】“一分钟”跑通MindSpore的LeNet模型MindSpore的操作实践,献给踩坑的小伙伴。文章简介AI助力“抗疫”,超大规模计算机辅助药物筛选技术解读短时间完成上千万次的模拟计算,让耗时数月的计算机辅助药物筛选在数小时内完成。为机场安上一双“慧眼”,消灭飞机的“黑色十分钟”仅花三天完成AI模型开发,用AI防范跑道侵入事件的发生。一个AI开发平台是如何参与热带雨林保护的?华为要招聘动物语言翻译师,和公益组织一起用AI识别雨林中不和谐的声音。独家解析:为什么中国物流企业的数字化这么难?防暴力分拣、分拣路径优化、OCR单据识别、运输路径优化,AI正在改变物流行业华为云边缘智能技术新突破,多任务学习助力城市楼宇智能升级两个园区每月节省252 MWh的电量,省了36.75%以上的能源。用AI技术推动西安民俗文化,斗鱼超管团队有一套通过图片秒速识别,显示图片背后的那些历史故事。苏州平江河:借助华为AI让治水不再难借助AI,实现7*24小时自动识别抓拍非法撒网抓鱼、漂洗衣物等污损河道行为。文章简介华为专家亲述:如何转型搞 AI?资深行业人士真实经验分享,非AI专业技术人员转型 AI 技术要注意什么?华为云MVP毛昌启:开发者转型记,AI开发平台的“魔力”ModelArts让AI开发不再遥不可及,将普惠AI切实的落到开发者身上。华为云MVP袁覃:ModelArts助力银行客户经理的变形记看银行工作者如何在3天之内训练出泛化能力强的模型。云享专家潘永斌:在人工智能时代追逐的“后浪”ModelArts资深实践者的AI开发之旅。华为云MVP余浩:AI开发,将简单留给开发者,复杂留给华为云在华为云AI全栈全场景AI解决方案的帮助下,余浩带着他的学生做了很多实用的AI产品。华为云云享专家历天一:ModelArts与HiLens端云协同之路从数据标注、调参到模型部署,ModelArts与HiLens让开发者只需专注自己代码的编写。
  • [技术干货] 盘古大模型和工业化的AI开发
    盘古大模型介绍盘古大模型推出来后,在不少地方有看到,今天有空来仔细的看一看。素材来自于《盘古大模型,开启工业化AI》盘古大模型在2021年4月份发布,于10月30号上线。盘古大模型的上线,是需要依托ModelArts平台和AI Gallery。以前存在一种模式,那就是来一个任务,就做一套模型,实际上这是应用开发定制的一种碎片化、手工作坊的方式。毫无疑问,这种模式是有他落后的一面,因为如果模型效果不好,还要定制化的进行调参,这个其实效率就不是很高。大模型要做什么?大模型希望通过积累海量的行业数据,大的参数量、大的输入数据,然后形成预测模型,用来适配更多的下游任务,这样的话在开发的效率上会有提高,精度上也会有一定的提高,并以此来完成从定制化开发到工业化开发的转变。盘古大模型不仅是一个大模型,它包含一系列的模型,目前有CV大模型、科学计算模型等等。它用到了时下比较火的prompt技术,这个技术有什么好处呢?就是针对不同的下游任务,相当于带着不同的promise,大的模型底座是不需要改变的。然后针对不同任务,比如第一个是新闻分类的任务,第二个是情感上的任务,如果以前你就需要完全的伸出两个模型来适配不同的任务,现在就不需要。ModelArts里的算法训练模型部署ModelArts里的算法、训练、模型和部署,这四个到底是什么关系呢?这里讲的很不错,我看完觉得有收获。算法呢,可以定义为首先要有你的代码,然后你在这个方法里定义训练规格。然后训练呢,就是把算法这个资产变成一个行为,一个算法可以起多个不同的训练任务。比如用不同的数据集,就相当于两次实验了。有点像JAVA里的类和实例化的对象,算法就相当于一个蓝图,这个蓝图可以起好多次训练任务,然后每次任务可以放入不同的参数,或者不同的数据集来执行这次训练。训练执行完了之后,就到了模型这一步。在模型这一步,ModelArts规定了一个model文件夹,规定了需要把你的推理脚本、模型文件等以相应的格式到这个文件夹里,然后ModelArts才能正确的读写这个模型。所以呢,你也可以不在ModelArts里写算法和训练,直接拿一个模型过来,但是这个模型一定要符合规范。模型可以从上一步的训练导入,训练之后的输出结果,就可以直接是一个模型。下一步是部署,模型和部署的关系,有点像把一个资产又变成了一种行为,就是一个模型也可以部署好多次。算法、训练、模型和部署,他们四个是分开的。好处是解耦,不好的地方是他们之间的联系基本靠人工,可能很难去管理这种对应关系,比如训练可能需要40分钟,那你这40分钟先干别的,然后40分钟完事之后回来再点击这个模型的导入...针对这个问题这里介绍了引入的workflow,但是呢,我看了下目前的ModelArts,又没有这个workflow了,可能在发展中吧,所以就不多介绍了。Demo演示nlp的大模型还只是针对中文的,演示了生成散文和写小说,就是人工一句话开头然后AI续写。实话实说,这个2个演示给人的感觉是作为一个游戏娱乐一下还可以,没有太多的实用价值。电力线巡检,这个演示我觉得是非常有实用价值的,并且已经得到行业应用的。但是视频中的这个模型资产呢,目前在AI Gallery里面找不到了,于是我用“盘古”做关键字找了一下,可以找到一个模型。来试用一下,订阅,然后在ModelArts里打开,部署为在线服务(使用P4规格),大约10分钟后部署为在线服务成功。
  • [其他] OntoProtein:融入基因本体知识的蛋白质预训练
    论文题目:OntoProtein: Protein Pretraining With Gene Ontology Embedding本文作者:张宁豫(浙江大学)、毕祯(浙江大学)、梁孝转(浙江大学)、程思源(浙江大学)、洪浩森(浙江大学)、邓淑敏(浙江大学)、连佳长(浙江大学)、张强(浙江大学)、陈华钧(浙江大学)发表会议:ICLR 2022论文链接:https://www.zhuanzhi.ai/paper/6e757d23f8b6b16cb91cdcad6f124b3c代码链接:https://github.com/zjunlp/OntoProtein欢迎转载,转载请注明出处一、引言近年来,预训练模型以强大的算法效果,席卷了自然语言处理为代表的各大AI榜单与测试数据集。与自然语言类似,蛋白质的一级结构具有序列特性,这为将语言预训练模型引入蛋白质表示提供了有利条件。然而,蛋白质本质上不同于自然语言文本,其包含了大量预训练目标较难习得的生物学知识。事实上,人类科学家已经积累了海量的关于蛋白质结构功能的生物学知识。那么如何利用这些知识促进蛋白质预训练呢?本文将介绍被ICLR2022录用的新工作:OntoProtein,其提出一种新颖的融入知识图谱的蛋白质预训练方法。 二、蛋白质预训练 蛋白质是控制生物和生命本身的基本大分子,对蛋白质的研究有助于理解人类健康和发展疾病疗法。蛋白质包含一级结构,二级结构和三级结构,其中一级结构与语言具有相似的序列特性。受到自然语言处理预训练模型的启发,诸多蛋白质预训练模型和工具被提出,包括MSA Transformer[1]、ProtTrans[2]、悟道 · 文溯[3]、百度的PaddleHelix等。大规模无监督蛋白质预训练甚至可以从训练语料中习得一定程度的蛋白质结构和功能。然而,蛋白质本质上不同于自然语言文本,其包含了诸多生物学特有的知识,较难直接通过预训练目标习得,且会受到数据分布影响低频长尾的蛋白质表示。为了解决这些问题,我们利用人类科学家积累的关于蛋白质结构功能的海量生物知识,首次提出融合知识图谱的蛋白质预训练方法。下面首先介绍知识图谱构建的方法。三、基因知识图谱我们通过访问公开的基因本体知识图谱“Gene Ontology(简称Go)”,并将其和来自Swiss-Prot数据库的蛋白质序列对齐,来构建用于预训练的知识图谱ProteinKG25,该知识图谱包含4,990,097个三元组, 其中4,879,951个蛋白质-Go的三元组,110,146 个Go-Go三元组,并已全部开放供社区使用。如下图所示,基于“结构决定功能”的思想,如果在蛋白质预训练过程中显式地告诉模型什么样的结构具备什么样的功能,显然能够促进如蛋白质功能预测、蛋白质交互预测等任务的效果。四、融入基因知识图谱的蛋白质预训练:OntoProtein基于构建好的知识图谱,我们设计了一个特殊的蛋白质预训练模型OntoProtein。注意到在预训练输入中包含两种不同的序列:蛋白质序列和描述蛋白质功能、生物过程等的文本描述信息。因此,我们采取两路不同的编码器。对蛋白质序列我们采用已有的蛋白质预训练模型ProtBert进行编码,对文本序列我们采用BERT进行编码。为了更好地进行预训练和融合三元组知识信息,我们采用了两个优化目标。首先是传统的掩码语言模型目标,我们通过随机Mask序列中的一个Token并预测该Token。其次是三元组知识增强目标,我们通过类似知识图谱嵌入学习的方式来植入生物学三元组知识,如下公式所示:注意到这里的事实知识分为两类不同的三元组,分别是Go-Go和蛋白质-Go,因此我们提出一种知识增强的负采样方法,以获得更有代表性的负样本提升预训练效果,采样方式如下 :五、实验分析我们在蛋白质测试基准TAPE,以及蛋白质蛋白质交互、蛋白质功能预测(我们参考CAFA竞赛构建了一个新的蛋白质功能预测数据集)上进行了实验。如下表所示,可以发现融合知识图谱的蛋白质预训练方法在一定程度上取得了较好或可比的性能。特别地,我们的方法没有使用同源序列比对(MSA),因此较难超越基于MSA Transformer的方法。详细的实验结果请参见论文,我们会在近期将预训练模型整理并发布到Huggingface上供社区使用。六、小结与展望当下蓬勃兴起的 AI for Science 正在促使以数据驱动的开普勒范式和以第一性原理驱动的牛顿范式的深度融合。基于“数据与知识双轮驱动”的学术思想,我们在本文中首次提出了融合知识图谱的蛋白质预训练方法OntoProtein,并在多个下游任务中验证了模型的效果。在未来,我们将维护好OntoProtein以供更多学者使用,并计划探索融合同源序列比对的知识图谱增强预训练方法以实现更优性能。[1] MSA Transformer ICML2021 [2] ProtTrans: Towards Cracking the Language of Life’s Code Through Self-Supervised Learning TPAMI2021 [3] Modeling Protein Using Large-scale Pretrain Language Model 2021
  • [技术干货] AI 训练的效率正在超越摩尔定律
    仅仅在几年前,训练一个 AI 模型所需的时间还可能长达数周之久。这也是过去几年间,计算行业间涌现了众多价值数十亿美元的创新初创公司的重要原因所在——这些公司包括了 Cerebras Systems、Graphcore、Habana Labs 和 SambaNova Systems 等等。此外,谷歌、英特尔、英伟达和其他老牌公司也在企业内部投入了规模相当的巨额资金(有时还会发起收购计划)来探索这一领域。最新版本的 MLPerf 训练基准结果表明,这笔钱是物有所值的。MLPerf 母公司 MLCommons 的执行董事 David Kanter 表示,自 MLPerf 基准测试开始上线以来,人工智能训练性能的提升速度“成功地大大超过了摩尔定律”。在早期版本的 MLPerf 基准测试最佳结果与 2021 年 6 月之后的基准测试最佳结果之间,晶体管密度的增长可以解释其中一倍多的差异。但是软件以及处理器和计算机架构的改进则贡献了 6.8-11 倍的成绩增长。在最新的 1.1 版测试中,最佳结果是 6 月份最佳成绩的 2.3 倍。根据英伟达的说法,使用 A100 GPU 的系统的性能相比 18 个月前的系统提高了 5 倍以上,相比三年前 MLPerf 基准测试成绩首次发布时的结果提高了 20 倍。微软首次将其 Azure 云 AI 产品引入了 MLPerf,使用各种资源在所有八个测试网络中取得了极佳的成绩。它们的规模从 2 个 AMD Epyc CPU 和 8 个英伟达 A100 GPU,直到 512 个 CPU 和 2048 个 GPU 不等。规模显然很重要。顶级规格的系统在不到一分钟的时间内就训练完了 AI 模型,而二八组合通常需要 20 分钟或更长时间。“摩尔定律只能做到这么多。软件和其他进步在 AI 训练的进化道路上发挥了重要作用。”——MLCommons英伟达在基准测试中与微软密切合作。并且就像之前的 MLPerf 列表中人们看到的一样,英伟达 GPU 是大多数参赛作品背后的 AI 加速器。包括戴尔、浪潮和 Supermicro 的作品都采用了他们的 GPU。英伟达凭借其 Selene AI 超级计算机无与伦比的规模,在商用系统的所有结果中名列前茅。Selene 由商用的模块化 DGX SuperPod 系统组成。在最大规模的测试中,Selene 使用 1080 个 AMD Epyc CPU 和 4320 个 A100GPU 在不到 16 秒的时间内就训练完了自然语言处理器 BERT,大多数小型系统完成同样的壮举需要花费大约 20 分钟。根据英伟达的说法,使用 A100 GPU 的系统的性能相比 18 个月前的行业水平提高了 5 倍以上,相比三年前首次 MLPerf 基准测试结果发布时提高了 20 倍。该公司表示,这要归功于软件创新和网络的改进成果。(有关更多信息,请参阅英伟达的博客)鉴于英伟达在这些 AI 基准测试中的统治力和成绩表现,新生的竞争对手很自然地会将自身与它进行比较。这就是总部位于英国的 Graphcore 正在做的事情,它指出他们研发的基本计算单元 Pod16(1 个 CPU 和 16 个 IPU 加速器)比英伟达的基本单元 DGX A100(2 个 CPU 和 8 个 GPU)快了近一分钟。Graphcore 推出了更大的系统对于这一版本的 MLPerf,Graphcore 使用其基本单元 Pod64、Pod128 和(你肯定猜得到吧?)Pod256 的组合参加了图像分类和自然语言处理基准测试。Pod256 由 32 个 CPU 和 256 个 IPU 组成,是仅次于英伟达的 Selene 和英特尔的 Habana Gaudi 的第四快系统,以 3:48 完成了 ResNet 图像分类训练。在自然语言处理方面,Pod256 和 Pod128 在榜单上排名第三和第四,再次落后于 Selene,分别以 6:54 和 10:36 结束。(有关更多信息,请参阅 Graphcore 的博客)你可能已经注意到了,基于英伟达的产品(大约 1 比 4)和 Graphcore 的系统(低至 1 比 32)对比,它们的 CPU 与加速器芯片的比率有很大不同。Graphcore 工程师说,这是设计理念使然。IPU 旨在让神经网络减少对 CPU 控制的依赖。你会在 Habana Labs 系统上看到相反的情况,英特尔在 2019 年以大约 20 亿美元的价格收购了它。例如,它在图像分类方面取得了很高的排名,为此英特尔使用 64 个 Xeon CPU 和 128 个 Habana Gaudi 加速器在不到 5 分半的时间内训练完了 ResNet。它还使用 32 个 CPU 和 64 个加速器,用时 11 分 52 秒训练完了 BERT 自然语言神经网络。(更多信息请参阅 Habana 的博客 )谷歌对这批基准分数的贡献有点不一样。谷歌工程师没有使用该公司的 TPU v4 处理器技术搭载在商业或云系统上完成测试,而是提交了两个超大自然语言处理神经网络的结果。该公司使用其公开可用的 TPU v4 云运行了一个版本的 Lingvo,这是一种 NLP,其参数高达 4800 亿,而 BERT 的参数为 1.1 亿。云平台使用 1024 个 AMD Epyc CPU 和 2048 个 TPU,在不到 20 小时的时间内完成了训练任务。使用由 512 个 AMD Rome CPU 和 1024 个 TPU 组成的研究系统,谷歌在 13.5 小时内训练了一个 2000 亿参数版本的 Lingvo。(谷歌报告称,从头到尾完成整个过程需要 55 小时和 44 小时,包括开始训练所需的步骤。)在结构上,Lingvo 与 BERT 非常相似,可以归入该类别,但它也类似于众多计算巨头一直在研究的其他真正巨型的对话 AI,例如 LaMDA 和 GPT-3。谷歌认为,巨大模型训练最终应该成为未来 MLPerf 商业基准测试的一部分。(有关更多信息,请参阅谷歌的博客。)然而,MLCommons 的 Kanter 指出,训练此类系统的费用高到了足以将许多参与者排除在外。
  • [技术干货] AlphaCode到底强在哪儿?清华博士后十分钟视频详细解析
    春节期间,DeepMind 的编程版 AlphaGo——AlphaCode 一度火到刷屏。它可以编写与普通程序员水平相媲美的计算机程序,在 Codeforces 网站的 10 项挑战中总体排名前 54.3%,击败了 46% 的参赛者。这一成绩给程序员群体带来了不小的压力,仿佛纺织工被纺织机淘汰的历史正在重演。那么,AlphaCode 是如何做到如此强大的?在最近的一个 YouTube 视频中,清华大学朱军门下博士后 Tim Pearce 详细解析了 AlphaCode 的系统架构、「解题」原理、训练流程等内容。AlphaCode 到底做了什么?前面提到,DeepMind 的研究者将 AlphaCode 放在 Codeforces 挑战中进行了测试。Codeforces 是一个在线编程的平台,里面有各种各样的编程题目,各种各样的比赛。它类似于国际象棋中使用的 Elo 评级系统,每周分享编程挑战和问题排名。不同于编程人员在打造商业应用程序时可能面临的任务,Codeforces 的挑战更加独立,需要对计算机科学中的算法和理论概念有更广泛的了解,一般是结合逻辑、数学和编码专业知识的非常专业的难题。下图展示了其中一个赛题的例子,包含赛题描述、输入输出示例等内容,挑战者的任务就是根据这些内容写出一段代码,使得其输出符合要求。以下是 AlphaCode 写出的代码:对于 AlphaCode 来说,这还只是中等难度的挑战。在类似的十项挑战中,研究者将赛题输入 AlphaCode。然后,AlphaCode 生成大量可能的答案,并通过运行代码和检查输出来筛选这些答案,就像人类竞争对手一样。AlphaCode 论文的联合负责人 Yujia Li 和 David Choi 表示:「整个过程是自动的,无需人工选择最佳样本。」为什么 AlphaCode 那么厉害?下图是 AlphaCode 的概念图。这是一个精心设计的系统,主要构建块是基于 Transformer 的语言模型。但从本质上来说,没有一个单独的组件是全新的。「考场」上的 AlphaCode我们先来看一下上述系统在测试时是如何工作的。在解决编码问题时,AlphaCode 使用了一个非常具体的协议(protocol),这个协议决定了整个系统的 pipeline。协议规定,他们可以无限制地使用示例测试用例,因为这些是作为问题的一部分给出的。但在提交给隐藏测试用例时,他们将提交版本数限制在了 10 次以内(至多 10 次)。在测试时,AlphaCode 经历了三个阶段。在第一个阶段,他们使用一个大型 Transformer 模型,该模型将问题描述示例测试和一些关于问题的元数据都放在一个字符串中作为输入。然后,他们从这个模型中采样,生成大量的潜在解决方案。所以第一个阶段得到的是 100 万套可能的代码脚本。在第二个阶段,他们用示例测试用例测试了得到的 100 万套代码,其中 99% 的代码都没有通过测试,可以直接排除。这就将可行的代码套数降到了 1000 个左右(具体数量取决于题目的难度)。在第三个阶段,他们使用了第二个 Transformer 模型。该模型将问题描述作为输入,但它并没有试图生成代码来解决问题,而是生成测试用例输入(每个问题对应 50 个输入)。也就是说,他们并没有选择生成输入和输出对,而是生成了一些与问题相关的实际输入。所以模型可能要生成字符串、二进制数或数列(具体生成形式取决于问题类型)。这种做法好在哪儿呢?他们认为,如果两个脚本为所有 50 个测试返回相同的答案,那么它们可能使用的是相同的算法。这就可以避免浪费两次提交机会把这两个脚本都测试一下。所以在第二步得到 1000 套脚本后,他们就根据这 50 个生成的测试输入的输出对脚本进行聚类,然后从每个聚类中选出一个示例脚本,总共选出 10 个。如果这 10 个脚本中有一个通过了所有的隐藏测试,那么他们就成功地解决了这个编程问题,否则就宣告失败。以上就是 AlphaCode 在测试时的工作原理,其中用到了两个 Transformer 模型。那么这两个模型是怎么训练的呢AlphaCode 的训练AlphaCode 的训练分为两个阶段:预训练和微调。这一过程涉及两个数据集:第一个是由各种编程语言组成的公共 GitHub 库,用于预训练,数据量高达 715GB;第二个是从各个编程挑战网站(包括 codeforces)搜集的赛题,用于微调,包括问题描述、测试用例和人类程序员编写的答案。数据集有了,接下来就是训练了。在预训练阶段,他们会抓取 GitHub 上的一些代码,然后随机选择他们所谓的「pivot point」。pivot point 之前的所有东西都将被输入到编码器中,解码器的目标则是重建 pivot point 以下的代码。编码器输出代码的向量表示,后续可用于整个解码过程。解码器以自回归的方式工作。它从预测代码的第一个 token 开始。损失函数就是预测的 softmax 输出和真实 token 之间的交叉熵。然后,第一个真实的 token 成为解码器的输入,第二个 token 随之被预测出来。在解码器被要求预测出一个特殊的代码结束标记前,这种情况会一直重复下去。现在,这些损失通过解码器和编码器反向传播,但对于编码器来说,增加第二个损失是非常重要的。这被称为掩蔽语言建模损失:你将输入到编码器中的一些 token 留空,作为一种辅助任务,编码器会试图预测哪个 token 被掩蔽了。预训练结束之后就到了微调环节。在这个环节,他们将问题描述元数据和示例的输入输入到编码器中,试着用解码器生成人类编写的代码。此时可以看到,这与编码器 - 解码器架构所规定的结构非常自然地吻合在一起。这一阶段的损失与预训练时完全相同。而且,这里也有第二个 Transformer 用来生成测试输入。这也是由相同的 GitHub 预训练任务初始化的,但它被微调以生成测试输入而不是代码。除了上面提到的常规训练步骤和架构,AlphaCode 还从最近的其他论文中借鉴了一些经验。Tim Pearce 指出了其中比较不错的一个:AlphaCode 的元数据调节除了问题描述,研究者还总是将元数据作为 Transformer 的输入,包括编程语言、问题的难度等级、关于问题的一些标签,以及解决方案是否正确等。在训练时,模型显然知道这些字段的值是什么,但在测试时,它们并不知道。非常有趣的是,他们可以在测试时向这些字段中输入不同的东西来影响生成的代码。例如,你可以控制系统将要生成的编程语言,甚至影响它试图生成的解决方案类型,比如是尝试动态编程方法还是进行穷举搜索。他们在测试时发现,当他们对最初的 100 万个代码脚本进行采样时,将很多字段随机化是非常有帮助的。因为,通过增加原始采样池的多样性,正确答案出现的可能性就会增加。以上就是 Tim Pearce 对 AlphaCode 的全部解析。他认为,DeepMind 的团队在这项工作中的确取得了一些进展。但他比较不解的是:为什么他们在这些编程问题中取得的成就远远不及他们在围棋、《星际争霸》等游戏中取得的超越人类的成果?Tim Pearce 初步猜测是因为编程问题比较难,而且数据比较难以获取,因为在游戏中你可以无限制地产生很多模拟数据,但在编程问题上却不能这么做。
  • [技术干货] ICLR 2022|唯快不破!面向极限压缩的全二值化BiBERT
    近年来,预训练语言模型在自然语言处理上表现出色,但其庞大的参数量阻碍了它在真实世界的硬件设备上的部署。近日,机器学习顶会ICLR 2022接收论文结果已经正式公布,至少有9项工作展示了神经网络量化方向的相关进展。本文将介绍首个用于自然语言任务的全二值量化BERT模型——BiBERT,具有高达56.3倍和31.2倍的FLOPs和模型尺寸的节省。这项研究工作由北京航空航天大学刘祥龙教授团队、南洋理工大学和百度公司共同完成。ICLR 2022|唯快不破!面向极限压缩的全二值化BiBERT预训练语言模型在自然语言处理上表现出色,但其庞大的参数量阻碍了它在真实世界的硬件设备上的部署。现有的模型压缩方法包括参数量化、蒸馏、剪枝、参数共享等等。其中,参数量化方法高效地通过将浮点参数转换为定点数表示,使模型变得紧凑。研究者们提出了许多方案例如Q-BERT[1]、Q8BERT[2]、GOBO[3]等,但量化模型仍旧面临严重的表达能力有限和优化困难的问题。幸运的是,知识蒸馏作为一种惯用的辅助优化的手段,令量化模型模仿全精度教师模型的特征表达,从而较好地解决精度损失问题。在本文中,来自北航、NTU、百度的研究人员提出了BiBERT,将权重、激活和嵌入均量化到1比特(而不仅仅是将权重量化到1比特,而激活维持在4比特或更高)。这样能使模型在推理时使用逐位运算操作,大大加快了模型部署到真实硬件时的推理速度。我们研究了BERT模型在二值化过程中的性能损失,作者在信息理论的基础上引入了一个高效的Bi-Attention(二值注意力)机制,解决前向传播中二值化后的注意力机制的信息退化问题;提出方向匹配蒸馏(Direction-Matching Distillation)方法,解决后向传播中蒸馏的优化方向不匹配问题。BiBERT首次证明了BERT模型全二值化的可行性,在GLUE数据集上的准确性极大地超越了现有的BERT模型二值化算法,甚至超过了更高比特表示的模型。在模型计算量和体积上,BiBERT理论上能够带来56.3倍和31.2倍的FLOPs和模型尺寸的减少。方法Bi-Attention:二值化注意力机制我们的研究表明,在BERT模型的注意力机制中,softmax函数得到的归一化注意力权重被视为遵循一个概率分布,而直接对其进行二值化会导致完全的信息丧失,其信息熵退化为0(见图2)。一个缓解这种信息退化的常用措施是,在应用sign函数之前对输入张量的分布进行移位,其中,移位参数也被认为是二值化的阈值,希望能使二值化后的熵达到最大。我们注意到,softmax函数是保序的,这意味着存在一个固定的阈值使二值化表示的信息熵最大化。受到Hard Attention的启发,通过应用bool函数,注意权重中值较低的元素被二值化为0,因此得到的熵值最大的注意权重可以过滤出关键部分的元素。其中,BV是通过sign函数二值化得到的value值,BA是二值化注意力权重,是一个精心设计的Bitwise-Affine矩阵乘法 (BAMM)运算器,由和位移组成,用于对齐训练和推理表征并进行有效的位计算。DMD: 方向匹配蒸馏作者发现,由于注意力权重是两个二值化的激活直接相乘而得。因此,处于决策边缘的值很容易被二值化到相反一侧,从而直接优化注意力权重常常在训练过程中发生优化方向失配问题。(见图3)ICLR 2022|唯快不破!面向极限压缩的全二值化BiBERT因此,作者设计了新的蒸馏方案,即针对上游的Query、Key和Value矩阵,构建相似性矩阵进行对激活的蒸馏:ICLR 2022|唯快不破!面向极限压缩的全二值化BiBERT其中,||·||表示L2正则化。之前的研究工作表明,以这种方式构建的矩阵被认为能够反映网络对于特定模式的语义理解,并无视尺度和数值大小影响,能够更加稳定地表示特征之间的内生相关性,更适合二值和全精度网络之间的知识传递。因此,蒸馏损失可以表示为对隐藏层、预测结果和上述激活相似性矩阵的损失之和实验作者的实验证明了所提出的BiBERT能够出色地解决二值化BERT模型在GLUE基准数据集的部分任务上精度崩溃的问题,使模型能够稳定优化。其中,50%表示要求二值化后有一半的注意力权重为0,且表中无特殊说明均采用12层的BERT模型进行量化。此外,作者测量了在训练过程中的信息熵,作者提出的方法有效地恢复了注意力机制中完全损失的信息熵。同时,作者绘制了训练时的loss下降曲线和准确率,BiBERT相比于基线明显更快收敛、准确性更高。总结作者提出的BiBERT作为第一个BERT模型的全二值化方法,为之后研究BERT二值化建立了理论基础,并分析了其性能下降的原因,针对性地提出了Bi-Attention和DMD方法,有效提高模型的性能表现。BiBERT超过了现有的BERT模型二值化方法,甚至优于采用更多比特的量化方案,理论上BiBERT能够带来56.3倍的FLOPs减少和31.2倍的模型存储节省。希望该的工作能够为未来的研究打下坚实的基础。BiBERT即将基于百度飞桨开源深度学习模型压缩工具PaddleSlim开源,尽情期待。
  • [其他] 机器学习算法建模
    机器学习算法建模数据筛选和处理过程可以说枯燥乏味的,现在可以使用准备的数据来建模。根据taget变量(通常称为Y变量)的数据类型,可以建立一个分类或回归模型。机器学习算法机器学习算法可以大致分为以下三种类型之一:    监督学习:是一种机器学习任务,建立输入X和输出Y变量之间的数学(映射)关系。这样的(X、Y)对构成了用于建立模型的标签数据,以便学习如何从输入中预测输出。    无监督学习:是一种只利用输入X变量的机器学习任务。X变量是未标记的数据,学习算法在建模时使用的是数据的固有结构。    强化学习:是一种决定下一步行动方案的机器学习任务,它通过试错学习(trial and error learning)来实现这一目标,努力使reward回报最大化。参数调优超参数本质上是机器学习算法的参数,直接影响学习过程和预测性能。没有万能的超参数设置,可普遍适用于所有数据集,因此需要超参数优化。    以随机森林为例。在使用randomForest时,通常会对两个常见的超参数进行优化,其中包括mtry和ntree参数。mtry(maxfeatures)代表在每次分裂时作为候选变量随机采样的变量数量,而ntree(nestimators)代表要生长的树的数量。 10年前仍然非常主流的机器学习算法是支持向量机SVM。需要优化的超参数是径向基函数(RBF)内核的C参数和gamma参数。C参数是一个限制过拟合的惩罚项,而gamma参数则控制RBF核的宽度。调优通常是为了得出超参数的较佳值集,很多时候不要去追求找到超参一个最优值,其实调参侠只是调侃调侃,真正需要理解掌握算法原理,找到适合数据和模型的参数就可以啦。特征选择特征选择从字面上看就是从最初的大量特征中选择一个特征子集的过程。除了实现高精度的模型外,机器学习模型构建最重要的一个方面是获得可操作的见解,为了实现这一目标,能够从大量的特征中选择出重要的特征子集非常重要。特征选择的任务本身就可以构成一个全新的研究领域,在这个领域中,大量的努力都是为了设计新颖的算法和方法。从众多可用的特征选择算法中,一些经典的方法是基于模拟退火和遗传算法。除此之外,还有大量基于进化算法(如粒子群优化、蚁群优化等)和随机方法(如蒙特卡洛)的方法。
  • [前沿快讯] 1亿组图文对,填补中文开源多模态数据集空白!还附带基础模型,来自华为诺亚方舟实验室
    华为诺亚方舟实验室开源了第一个亿级中文多模态数据集:悟空。这个新发布的数据集不仅规模大——包含1亿组图文对,而且质量也很高。所有图像都是筛选过的,长宽都在200个像素以上,比例从1/3-3不等。而和图像对应的文本也根据其语言、长度和频率进行了过滤,隐私和敏感词也都考虑在内。例如这一组数据集中的例子,内容还相当新,像进门扫码登记,社区疫苗接种的防疫内容都有。这一波可以说是填上了大规模中文多模态数据集的缺口。悟空数据集自一年前OpenAI的CLIP+Dall·E组合开启新一轮多模态学习浪潮以来,算上后续的ALIGN和FILIP,都在视觉语言预训练(VLP)领域表现优异。世界范围内的成功离不开大规模数据集的支持,但中文开源数据方面,有是有,规模大的不多。有了“悟空”数据集之后,就可以支持更多预训练模型用于下游任务。数据集之外,团队还附赠了一款基本模型,参考了流行的文本图像双编码器架构:其中视觉标记和文本标记作为输入。然后,将两种模式的输入标记连接起来,并用位置嵌入来显示标记位置。有意思的一点是,这里的图像编码器是从英文数据集上训练的,上面预加载并锁定了从外部模型中训练的英文数据集中的权重。但是仍然可以中文文本进行跨模态预训练,在下游任务中也表现得很好。除此之外,华为诺亚还提供了不同下游任务的基准测试。例如零样本图像分类,下图中除了WukongViT-500M,其他的悟空模型变体都是在这个一亿的数据库上训练的:再比如在图像检索文本和文本检索图像这两个任务上,在五个不同的数据集上的测试结果如下:而这也证明了将在英语数据集上预训练的图像编码器应用于中文多模态预训练的良好效果。未来也可能会探索更多的解决方案,利用悟空数据集训练多语言跨模态模型。目前悟空数据集在官网即可下载(链接在文末),赶快用起来吧~数据集地址:https://wukong-dataset.github.io/wukong-dataset/benchmark.html论文地址:https://arxiv.org/abs/2202.06767转自:量子位 | 公众号 QbitAI
  • [公告] 1亿组图文对,填补中文开源多模态数据集空白!还附带基础模型,来自华为诺亚方舟实验室
    华为诺亚方舟实验室开源了第一个亿级中文多模态数据集:悟空。这个新发布的数据集不仅规模大——包含1亿组图文对,而且质量也很高。所有图像都是筛选过的,长宽都在200个像素以上,比例从1/3-3不等。而和图像对应的文本也根据其语言、长度和频率进行了过滤,隐私和敏感词也都考虑在内。例如这一组数据集中的例子,内容还相当新,像进门扫码登记,社区疫苗接种的防疫内容都有。1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室这一波可以说是填上了大规模中文多模态数据集的缺口。悟空数据集自一年前OpenAI的CLIP+Dall·E组合开启新一轮多模态学习浪潮以来,算上后续的ALIGN和FILIP,都在视觉语言预训练(VLP)领域表现优异。世界范围内的成功离不开大规模数据集的支持,但中文开源数据方面,有是有,规模大的不多。1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室有了“悟空”数据集之后,就可以支持更多预训练模型用于下游任务。数据集之外,团队还附赠了一款基本模型,参考了流行的文本图像双编码器架构:1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室其中视觉标记和文本标记作为输入。然后,将两种模式的输入标记连接起来,并用位置嵌入来显示标记位置。有意思的一点是,这里的图像编码器是从英文数据集上训练的,上面预加载并锁定了从外部模型中训练的英文数据集中的权重。但是仍然可以中文文本进行跨模态预训练,在下游任务中也表现得很好。除此之外,华为诺亚还提供了不同下游任务的基准测试。例如零样本图像分类,下图中除了WukongViT-500M,其他的悟空模型变体都是在这个一亿的数据库上训练的:1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室再比如在图像检索文本和文本检索图像这两个任务上,在五个不同的数据集上的测试结果如下:1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室而这也证明了将在英语数据集上预训练的图像编码器应用于中文多模态预训练的良好效果。未来也可能会探索更多的解决方案,利用悟空数据集训练多语言跨模态模型。目前悟空数据集在官网即可下载(链接在文末),赶快用起来吧~
  • [技术干货] 出发,去东南亚市场搞AI
    正在举行的北京冬奥会上,有众多黑科技被搬到台前:AI 裁判、视觉追踪特效、物流机器人、炒菜机器人等等,它们成为了比赛的重要组成部分。随着技术的进步,人工智能正逐渐进入生活的各个方面。在科技圈提起人工智能,人们会更多地把目光瞄准中美,却忽略增长势头最为迅猛的东南亚。这里有超过 6.6 亿的人口,快速增长的经济,以及不断完善的基础设施。随着消费水平的提升和疫情的推动,当地的技术和人才无法跟上迅速增长的业务量,带来了很多新需求。在这个充满机会的市场中,一些 AI 创业公司正在上演着不同的故事。自 2016 年成立以来,总部在新加坡的 ADVANCE.AI 业务遍布东南亚如印尼、菲律宾、马来西亚、南亚如印度、巴基斯坦、以及拉丁美洲的墨西哥和哥伦比亚,非洲的尼日利亚等国家,现在它正在向欧美地区不断扩展。ADVANCE.AI 成功服务了超过 1000 家银行、金融科技、电子商务与共享经济等领域的企业客户。尽管 2020 年以来疫情对全球经济影响严重,该公司的业务却一直保持稳定持续增长,云服务软件产品的 API 调用量增长了一倍多,2021年,产品全年调用量超过 10 亿次,已成为东南亚 AI 圈中一股不可忽视的力量。最近,我们与 ADVANCE.AI 研发部门负责人王芳林博士进行了对话,王博士在人工智能领域有超过 15 年的经验,拥有上海交通大学博士学位,哈尔滨工业大学硕士和学士学位。曾担任 NCS 集团视频分析和机器学习副总监、KAI Square 首席技术官、新加坡国立大学研究员和 Autodesk 研究科学家。出发,去东南亚市场搞AI王芳林博士王芳林于 2018 年加入 ADVANCE.AI,亲身经历了业务快速增长的过程,积累了丰富的 AI 人才团队搭建与技术本地化经验,围绕中国高科技企业出海东南亚市场发展 AI 技术中遇到的常见问题,分享了他的观点。AI 是技术但不是行业从最初服务于中国出海金融科技公司到现在东南亚当地的银行、保险、电商、支付等多领域企业,随着业务的变化,ADVANCE.AI 的产品也经历了从单一功能,到按客户需求定制解决方案,再到解决方案标准化、产品化的过程。作为一家致力于覆盖不同业务场景的人工智能服务商,ADVANCE.AI 清楚地知道 AI 是方式而不是目的。「在研发内部,我们并不过分强调 AI,一直认为 AI 是特定时间点又火起来的一个技术。团队的每一次变化和重组都是基于当时的业务策略来制定的,我们的目的是一直是帮助客户提高效率和提升业务能力」王芳林说道。相比一些大厂面向前沿技术设立的 AI Lab,ADVANCE.AI 的研发部门更加强调解决实际问题的能力,其面临的挑战主要来自于客户需求。「这并不意味着我们不会把技术做得深。相对于学界,工业界的实际问题往往更加复杂多样,需要对各种算法和技巧足够了解,也需要权衡算法和产品设计的边界。」目前 ADVANCE.AI 的主要研究方向包括计算机视觉、反欺诈、信用评分等领域,自主研发的 OCR、活体检测和人脸识别技术在业内保持领先,基于大数据和机器学习的信用评分算法获得了很多东南亚金融机构的青睐。出发,去东南亚市场搞AIADVANCE.AI 提出的个人信息建模方式。当然作为研发部门,这里也有一部分人会专注于长期性算法研究,追踪先进技术并提出创新,希望能对一些核心问题寻找长期的、更为彻底的解决方案。特别是在长期被外界忽视的新加坡等东南亚地区研究 AI 是什么样的体验?首先,这里的人才市场供远小于求,对于公司来说竞争非常激烈。对此,ADVANCE.AI 的策略是强调人才的质量,最大可能保证团队的稳定性,同时利用多国家办公的优势,在新加坡、北京、雅加达同时招人。「创业公司在初期就需要考虑更多国家的目标市场。由于新加坡本土市场规模较小,只有面向多个东南亚国家,甚至走向中国和欧美市场才能保证成长的天花板足够高。」王芳林说道。「而在研究环境上,这里有世界知名的大学生和研究机构,国内外知名公司设立的研发中心,东南亚独角兽公司的总部也大多设立于此,大环境上来讲整体研发水平很高。这里相较国内文化上更追求工作和生活的平衡,同时非常讲究实效。」随着业务量增大,数据和客户服务经验的不断积累,ADVANCE.AI 的技术水平不断提升,形成了数据、技术和产品的闭环。ADVANCE.AI 的计算机视觉类产品,经过了超过 10 个国家和地区市场大量真实数据的积累,现有的预训练模型和迁移学习方法,可以在无需或极少训练数据的情况下获得比竞争对手更高的准确率。产品类型的多样化为领创带来了优势,在用户信用评分类产品中,受益于内部各类型数据的打通,该公司可以实现相比竞争对手更为完整的建模,很大程度上补充了客户数据种类不丰富,及不具备建模能力的问题。从早期的定制化项目,到现在可以实时处理大量调用需求的 SaaS API,ADVANCE.AI 的产品种类从最初的数字身份验证和风控类工具,已经发展出了目前覆盖身份认证、视频认证、信用评分的丰富产品线。这家公司下一步将提出一系列端到端的反欺诈和风控平台类解决方案。如何实现 AI 的本地化软银创始人孙正义有一套著名的「时间机器」理论:互联网美国比日本先进,就先在美国投资,等时机成熟后再带着美国的经验杀回日本,仿佛坐上时间机器,回到了几年前的美国。在充满活力和发展前景的东南亚,人工智能的研究和应用,从中国、美国向印度、印尼等国家推广是否存在「降维打击」的过程?在王芳林看来,短期来看,中国是有明显技术优势的,但问题的核心在于如何真正实现本地化:「任何一家公司都不可能长时间地保有某项技术的优势,大家都有机会,包括本土企业。我们从一开始就不认为自己是一家视觉或者是 AI 公司。工作应该聚焦在做业务上,研发人员要清楚投入会带来多少客户、多少收入。」相较于国内的淘宝、京东等平台和各家银行自带人脸识别的 APP,东南亚地区的 AI 技术落地进展较慢,大数据验证和精准营销方面也同样如此。在国内验证过的机器学习应用在这里具备优势。ADVANCE.AI 提供的技术可以快速整合进原有应用,而且大幅提高用户体验:其算法可以通过刷脸,让用户在一个账户上匹配了一张人脸照片后,就不再需要去填写更多的帐号和密码。出发,去东南亚市场搞AIADVANCE.AI 提供的活体检测算法。从 2019 到 2020 年,东南亚的整个电商零售额增幅达到了 50%,速度远超其他市场。然而想要进入这个市场并不容易。作为发展中国家市场,在印尼等地开展 AI 技术业务会遭遇很多前所未见的挑战。从技术上看,人们使用的手机较为低端,低成像质量和算力难以保证用户体验,同时较差的移动网络会让图像传输延时较长。ADVANCE.AI 必须实行本地化的技术优化:通过压缩模型来降低网络带宽需求,尽量把数据处理的工作放在移动端,并使用小模型;通过质量分析模型提示图像质量问题,并训练算法更好地适应本地数据,解决实际挑战。在信用评分方面,数据科学家面临的主要挑战在于数据不足,银行等传统金融机构所能拿到的交易流水、征信报告等强金融属性的数据比较难以获得,因此积累的借贷、电商、运营商、设备等行为数据显得尤其重要,但这对特征工程的要求很高。ADVANCE.AI 技术人员使用自动时序特征工程以及深度学习算法进行时序特征提取,大大提升了特征挖掘的效果和效率。在东南亚金融信贷领域,客群种类繁多,行为模式差异巨大,金融科技公司无法用一个通用的信用模型解决各不同金融机构的信用评分需求,因此分客群建模是必然的选择。ADVANCE.AI 通过无监督、有监督学习等算法度量客群相似度,使分客群从传统的业务问题变成一个技术问题,最终使客群分得更准确,分客群建模的效果更明显。另一方面,技术的认知和法规也需要适应。「很多时候客户并不理解技术,在一开始,我们需要花费很多时间教育客户。」王芳林说道。第一个重要机会ADVANCE.AI 最大的客户之一是一家全球知名银行。在 2018 年开始启动数字身份验证计划时,这家银行的研发团队对于活体检测、人脸等技术在东南亚能做到怎样程度并没有太多的概念和信心。「这是我们在东南亚的第一个国际大客户,存在四五家竞争对手。刚接触时我们和甲方开过超过 20 次会,不断地和技术、产品团队与高层们打交道。因为我们是一家初创公司,难免受到了很多质疑。比如前两次我发现,他们的负责人一直是很不耐烦的样子。」王芳林介绍道。但好在该银行对于供应商的调研一直在尽职尽责地进行中。在推进的过程中,ADVANCE.AI 不断改进着自身的技术,他们模拟了终端用户的实际体验,完成了手机上的测试版 APP,让负责人直接上手体验,演示新技术的便利性和异常情况的解决方式。ADVANCE.AI 终于获得了进入下一轮验证的机会。「我们的产品比较符合东南亚特色,最终在准确率测试阶段比较容易地击败了所有竞争对手。」但这只是个开始,中标之后还有漫长的技术落地与合规流程,最终一共花费了十几个月的时间。在解决方案正式上线之前,工程上经历了三次内部测试、演示和预上线过程。ADVANCE.AI 的团队还需要帮助银行选型深度学习部署硬件,在基础设施方面提供建议。跨国公司非常强调数据隐私和合规性,注重内部流程和规范,包括采购的流程和合同条款。「客户会要求我们保证在未来几年内声誉不会出问题,一旦违约要做赔偿,」王芳林表示。「我们实现的 AI 模型也不能在不同种族、性别上出现歧视性分析结果。在安全性和可靠性方面,他们会对产品的各个技术环节进行研究,确定用到了哪些技术。」在不断沟通的过程中我们可以发现,这些海外公司能够做到相对客观,而且技术角度上看,新兴市场的竞争没有国内那么相对激烈。这为 AI 创业公司带来了机会。产品是最大的需求在确定了业务前景,选择的方向在未来几年收益的预期之后再扩张团队,或许才是科技公司构建 AI Lab 正确的方式。随着业务不断扩张,ADVANCE.AI 的团队规模从几十人扩张到了如今近 200 人的规模,办公室也从两个国家发展至到五个国家。现在,ADVANCE.AI 的研发团队下设工程、计算机视觉、数据科学,还设有数据标注团队,公司内部还在研发自己的机器学习平台。出发,去东南亚市场搞AI自成立以来,ADVANCE.AI 受到了众多全球顶尖投资机购的青睐,9 月 23 日,领创集团宣布完成了超过 4 亿美元 D 轮融资,由软银愿景基金二期、华平投资领投,北极星资本、元璟资本、高榕资本和新加坡经济发展局投资等跟投。融资完成后,领创集团估值已超过 20 亿美元,成为新加坡最大的独立科技创业公司之一。面向未来,ADVANCE.AI 还是会坚持走自己的路。「我个人比较喜欢 think big,start small,尽量做到脚踏实地。我们需要在商业上快速试错,在技术上快速验证,向笃定确认的方向集中火力。」王芳林说道。
  • [技术干货] 陈丹琦、方飞、顾全全、李博获奖,2022年斯隆研究奖名单出炉
    刚刚,斯隆基金会公布了 2022 年度斯隆研究奖的获奖者。该奖项于 1955 年设立,每年颁发一次,旨在支持和奖励处于职业早期阶段的杰出科学家和学者,今年授予的学科领域包括化学、计算机科学、地球系统科学、经济学、数学、神经科学和物理学。获奖者将获得 75000 美元奖金,可用于支持其两年内的任何研究。其中,计算机科学领域的获奖者共有二十位,包括我们熟悉的普林斯顿大学计算机科学系助理教授陈丹琦、NeurIPS 2018 最佳论文作者之一 David K. Duvenaud、Apache Spark 开发者 Matei Zaharia 等。以下是获奖者的详细资料:Mark Bun,波士顿大学Mark Bun,波士顿大学助理教授,2016 年在哈佛大学取得计算机科学博士学位,师从 Salil Vadhan。他对理论计算机科学有广泛的兴趣,包括数据隐私、计算复杂性、密码学和机器学习基础。个人主页:http://cs-people.bu.edu/mbun/陈丹琦,普林斯顿大学陈丹琦,普林斯顿大学计算机科学系助理教授,曾是 Facebook AI Research(FAIR)的访问科学家,在自然语言处理(NLP)领域取得了一系列的研究成果,还是 RoBERTa 的作者之一。陈丹琦于 2012 年毕业于清华大学姚班,2018 年获得斯坦福大学计算机科学博士学位,师从斯坦福大学语言学和计算机科学教授 Christopher Manning。2019 年,她的博士论文上传仅四天就获得了上千次的阅读量,成为了斯坦福大学近十年来最热门的毕业论文之一。她的导师评价说,「陈丹琦是使用神经网络方法解决自然语言理解问题方面的先驱。她简单、干净、高成功率的模型吸引了众人的目光…… 她的这篇毕业论文主要研究神经网络阅读理解和问答,这些新兴技术正在带来更好的信息访问方式——它可以让计算机系统可以真正回答你的实际问题,而不是简单地返回文档搜索结果。」个人主页:https://www.cs.princeton.edu/~danqic/David K. Duvenaud,多伦多大学David K. Duvenaud 是多伦多大学助理教授、多伦多大学向量学院的创始人之一以及能源预测和贸易公司 Invenia 的联合创始人。他在剑桥大学获得博士学位,后在哈佛大学 Intelligent Probabilistic Systems 实验室完成博后工作。目前,他在多伦多大学教授概率学习和推理、机器学习统计方法、可微分推断和生成模型等课程。2018 年,他担任通讯作者的论文《Neural Ordinary Differential Equations》获得 NeruIPS 2018 最佳论文奖 ,陈天琦是该论文的一作。个人主页:http://www.cs.toronto.edu/~duvenaud/方飞,卡内基梅隆大学方飞,卡内基梅隆大学大学(CMU)计算机学院软件研究所助理教授,2021 年 IJCAI 计算机与思想奖的获得者。在加入 CMU 之前,她是哈佛大学的博士后研究员,2016 年她获得了南加州大学(USC)的博士学位。方飞的研究方向是人工智能和多智能体系统,致力于将机器学习与博弈论相结合。她的研究曾多次获得顶级 AI 会议的奖项,包括 IJCAI-ECAI’18 杰出论文奖、IAAI’16 创新应用奖、IJCAI’15 的 CompSust Track 杰出论文奖。她的论文曾获 IFAAMAS-16 Victor Lesser Distinguished Dissertation 奖的亚军、William F. Ballhaus, Jr. Prize 以及南加州大学计算机科学最佳论文奖。她的研究被成功部署到保护渡轮线路和反偷猎的应用中,为构建更好的社会环境做出了贡献。个人主页:https://feifang.info/Manya Ghobadi,麻省理工学院Manya Ghobadi,麻省理工学院电子工程和计算机科学系计算机科学与人工智能实验室(CSAIL)TIBCO 职业发展助理教授,研究兴趣主要集中在大规模可重构网络、高性能云基础设施、机器学习网络、软硬件协同设计、数据中心网络、网络优化、光纤网络等方向。个人主页:http://people.csail.mit.edu/ghobadi/顾全全,加州大学洛杉矶分校顾全全,加州大学洛杉矶分校计算机科学系助理教授。他于 2014 年获得伊利诺伊大学厄巴纳 - 香槟分校计算机科学博士学位,主要研究方向是统计机器学习,重点是开发和分析机器学习的非凸优化算法,以理解大规模、动态、复杂和异构的数据,为深度学习奠定理论基础。个人主页:http://web.cs.ucla.edu/~qgu/Josiah Hester,美国西北大学Josiah Hester,美国西北大学电气与计算机工程系助理教授,研究兴趣主要集中在:大规模可持续传感(从土壤中为传感器供电,建设可持续的网络基础设施);可穿戴健康设备(智能口罩、可穿戴相机和记录进食的设备)、低 / 无功耗交互系统(一个无电池的 Game Boy)等方面。他设计和部署的微型计算机可以使用几十年,支持可持续性和医疗保健领域的应用。前不久,他设计的可测量心率、呼吸频率的口罩得到了媒体的广泛报道。个人主页:https://josiahhester.com/cv/Phillip Isola,麻省理工学院Phillip Isola,麻省理工学院电子工程与计算机科学系助理教授。他曾是 OpenAI 的访问研究科学家、加州大学伯克利分校电子工程与计算机科学系的博士后学者。Phillip Isola 的研究方向主要包括计算机视觉和机器学习,致力于构建更通用的智能体。个人主页:http://web.mit.edu/phillipi/Alec Jacobson,多伦多大学Alec Jacobson,多伦多大学计算机科学和数学系助理教授、Adobe 研究院高级研究科学家,他在苏黎世联邦理工学院获得计算机科学博士学位,师从 Olga Sorkine-Hornung 教授。他的工作涉及几何处理的各个方面,包括二维 / 三维几何的机器学习、基于物理的模拟、计算制造、几何能量和偏微分方程的数值方法,以及二维和三维的交互设计工具。他领导了广泛使用的几何处理库 libigl 的开发,该库获得了 2015 年的 SGP 软件奖。2020 年,他获得了 ACM SIGGRAPH 重要新研究员奖(Significant New Researcher Award)。个人主页:http://www.cs.toronto.edu/~jacobson/Pravesh K. Kothari,卡内基梅隆大学Pravesh K. Kothari,卡内基梅隆大学计算机科学系助理教授。他的研究旨在设计有效的算法,以支撑理论计算机科学,已为一系列论文中用于学习高维高斯混合的算法提高了效率。个人主页:https://www.cs.cmu.edu/~praveshk/李博,伊利诺伊大学厄巴纳 - 香槟分校李博教授现任职于伊利诺伊大学厄巴纳-香槟分校计算机科学系。她曾荣获许多学术奖项,包括麻省理工学院技术评论 MIT TR-35 、Alfred P. Sloan 斯隆研究奖、NSF CAREER 奖,英特尔新星奖、赛门铁克研究实验室奖学金,并获得来自Amazon、Facebook、谷歌、英特尔和 IBM 等科技公司的学术研究奖。她的论文曾获多个顶级机器学习和安全会议的最佳论文奖;研究成果还被永久收藏于英国科技博物馆。李博的研究侧重于可信赖机器学习、计算机安全、机器学习、隐私和博弈论的理论研究和实践分析。她曾设计多个鲁棒性机器学习算法及和隐私保护数据发布系统。她的工作曾被《自然》、《连线》、《财富》和《纽约时报》等主要媒体报道。个人主页:http://boli.cs.illinois.edu/Pedro Lopes,芝加哥大学Pedro Lopes,芝加哥大学计算机科学系助理教授。Pedro Lopes 的研究旨在设计直接与用户身体集成的交互式设备,包括可穿戴设备等。Pedro Lopes 的研究通过借用用户身体的一部分作为输入 / 输出硬件,从而使设备不仅非常小,而且还实现了一种新颖的交互模型,让设备直接与用户的身体集成。个人主页:http://plopes.org/Nicolas Papernot,多伦多大学Nicolas Papernot,多伦多大学电气与计算机工程系助理教授,博士毕业于宾夕法尼亚州立大学计算机科学与工程专业。他的研究兴趣是安全、隐私和机器学习的交叉领域。Nicolas Papernot 还担任 IEEE 安全与隐私研讨会(S&P)的副主席。个人主页:https://www.papernot.fr/Dorsa Sadigh,斯坦福大学Dorsa Sadigh,斯坦福大学计算机科学系助理教授,博士毕业于加州大学伯克利分校电气工程与计算机科学系。Dorsa Sadigh 的研究兴趣是机器人技术、机器学习和控制理论的交叉领域,致力于为安全、可靠和自适应的人机交互以及多智能体交互开发高效算法。个人主页:https://dorsa.fyi/Shuran Song,哥伦比亚大学Shuran Song,哥伦比亚大学计算机科学系助理教授。她于 2013 年获得香港科技大学计算机科学系学士学位,2018 年获得普林斯顿大学计算机科学系博士学位,研究兴趣在于计算机视觉和机器人技术的交叉领域。Shuran Song 的研究团队曾于 2017 年在亚马逊机器人挑战赛中夺冠。个人主页:https://datascience.columbia.edu/people/shuran-song/Deian Stefan,加州大学圣地亚哥分校Deian Stefan,加州大学圣地亚哥分校计算机科学与工程系助理教授,网络安全初创公司 Intrinsic(被 VMWare 收购)的联合创始人和首席科学家。此前,他在斯坦福大学获得计算机科学博士学位。他主要对横跨安全性、编程语言和系统的研究感兴趣。个人主页:https://cseweb.ucsd.edu/~dstefan/Avishay Tal,加州大学伯克利分校Avishay Tal,加州大学伯克利分校电子工程与计算机科学系助理教授,2015 年在魏茨曼科学研究所获得博士学位。他的研究兴趣主要集中在计算复杂度、布尔函数分析、伪随机、量子计算等方向。个人主页:https://www.avishaytal.org/Yulia Tsvetkov,华盛顿大学Yulia Tsvetkov,华盛顿大学 Paul G. Allen 计算机科学与工程学院助理教授,在 CMU 拿到博士学位。她主要研究自然语言处理,尤其是机器学习和理论或社会语言学交叉的混合解决方案。个人主页:https://homes.cs.washington.edu/~yuliats/Henry Yuen,哥伦比亚大学Henry Yuen,哥伦比亚大学计算机科学助理教授,研究兴趣主要集中在量子计算、复杂性理论、密码学和信息理论之间的相互作用等方面。个人主页:https://www.henryyuen.net/Matei Zaharia,斯坦福大学Matei Zaharia,斯坦福大学计算机科学学院助理教授,数据和人工智能平台初创公司 Databricks 联合创始人兼首席技术专家。他对用于新兴大规模工作负载的计算机系统感兴趣,如机器学习、大数据分析和云计算,因对大型计算机系统的研究而获得加州大学伯克利分校的计算机科学博士学位和 ACM 博士学位论文奖。在读博期间,他启动了一个名为 Apache Spark 的项目,该项目现在已经是分布式数据处理最广泛使用的框架之一。此外,他还参与启动了其他被广泛使用的数据中心软件,如 Apache Mesos、Alluxio 和 Spark Streaming。在斯坦福大学,他参与开发了 DAWNBench,这是一个机器学习性能竞赛,吸引了顶级行业团体参与提交,并影响了行业标准 MLPerf。他和他的团队还在继续开发开源软件,如 Weld、NoScope、FlexFlow 和 ColBERT。个人主页:https://cs.stanford.edu/~matei/
  • [技术干货] AlphaCode到底强在哪儿?清华博士后十分钟视频详细解析
    春节期间,DeepMind 的编程版 AlphaGo——AlphaCode 一度火到刷屏。它可以编写与普通程序员水平相媲美的计算机程序,在 Codeforces 网站的 10 项挑战中总体排名前 54.3%,击败了 46% 的参赛者。这一成绩给程序员群体带来了不小的压力,仿佛纺织工被纺织机淘汰的历史正在重演。那么,AlphaCode 是如何做到如此强大的?在最近的一个 YouTube 视频中,清华大学朱军门下博士后 Tim Pearce 详细解析了 AlphaCode 的系统架构、「解题」原理、训练流程等内容。原视频地址:https://www.youtube.com/watch?v=YjsoN5aJChAAlphaCode 到底做了什么?前面提到,DeepMind 的研究者将 AlphaCode 放在 Codeforces 挑战中进行了测试。Codeforces 是一个在线编程的平台,里面有各种各样的编程题目,各种各样的比赛。它类似于国际象棋中使用的 Elo 评级系统,每周分享编程挑战和问题排名。不同于编程人员在打造商业应用程序时可能面临的任务,Codeforces 的挑战更加独立,需要对计算机科学中的算法和理论概念有更广泛的了解,一般是结合逻辑、数学和编码专业知识的非常专业的难题。下图展示了其中一个赛题的例子,包含赛题描述、输入输出示例等内容,挑战者的任务就是根据这些内容写出一段代码,使得其输出符合要求。对于 AlphaCode 来说,这还只是中等难度的挑战。在类似的十项挑战中,研究者将赛题输入 AlphaCode。然后,AlphaCode 生成大量可能的答案,并通过运行代码和检查输出来筛选这些答案,就像人类竞争对手一样。AlphaCode 论文的联合负责人 Yujia Li 和 David Choi 表示:「整个过程是自动的,无需人工选择最佳样本。」为什么 AlphaCode 那么厉害?下图是 AlphaCode 的概念图。这是一个精心设计的系统,主要构建块是基于 Transformer 的语言模型。但从本质上来说,没有一个单独的组件是全新的。「考场」上的 AlphaCode我们先来看一下上述系统在测试时是如何工作的。在解决编码问题时,AlphaCode 使用了一个非常具体的协议(protocol),这个协议决定了整个系统的 pipeline。协议规定,他们可以无限制地使用示例测试用例,因为这些是作为问题的一部分给出的。但在提交给隐藏测试用例时,他们将提交版本数限制在了 10 次以内(至多 10 次)。在测试时,AlphaCode 经历了三个阶段。在第一个阶段,他们使用一个大型 Transformer 模型,该模型将问题描述示例测试和一些关于问题的元数据都放在一个字符串中作为输入。然后,他们从这个模型中采样,生成大量的潜在解决方案。所以第一个阶段得到的是 100 万套可能的代码脚本。在第二个阶段,他们用示例测试用例测试了得到的 100 万套代码,其中 99% 的代码都没有通过测试,可以直接排除。这就将可行的代码套数降到了 1000 个左右(具体数量取决于题目的难度)。在第三个阶段,他们使用了第二个 Transformer 模型。该模型将问题描述作为输入,但它并没有试图生成代码来解决问题,而是生成测试用例输入(每个问题对应 50 个输入)。也就是说,他们并没有选择生成输入和输出对,而是生成了一些与问题相关的实际输入。所以模型可能要生成字符串、二进制数或数列(具体生成形式取决于问题类型)。这种做法好在哪儿呢?他们认为,如果两个脚本为所有 50 个测试返回相同的答案,那么它们可能使用的是相同的算法。这就可以避免浪费两次提交机会把这两个脚本都测试一下。所以在第二步得到 1000 套脚本后,他们就根据这 50 个生成的测试输入的输出对脚本进行聚类,然后从每个聚类中选出一个示例脚本,总共选出 10 个。如果这 10 个脚本中有一个通过了所有的隐藏测试,那么他们就成功地解决了这个编程问题,否则就宣告失败。以上就是 AlphaCode 在测试时的工作原理,其中用到了两个 Transformer 模型。那么这两个模型是怎么训练的呢AlphaCode 的训练AlphaCode 的训练分为两个阶段:预训练和微调。这一过程涉及两个数据集:第一个是由各种编程语言组成的公共 GitHub 库,用于预训练,数据量高达 715GB;第二个是从各个编程挑战网站(包括 codeforces)搜集的赛题,用于微调,包括问题描述、测试用例和人类程序员编写的答案。数据集有了,接下来就是训练了。在预训练阶段,他们会抓取 GitHub 上的一些代码,然后随机选择他们所谓的「pivot point」。pivot point 之前的所有东西都将被输入到编码器中,解码器的目标则是重建 pivot point 以下的代码。编码器输出代码的向量表示,后续可用于整个解码过程。解码器以自回归的方式工作。它从预测代码的第一个 token 开始。损失函数就是预测的 softmax 输出和真实 token 之间的交叉熵。然后,第一个真实的 token 成为解码器的输入,第二个 token 随之被预测出来。在解码器被要求预测出一个特殊的代码结束标记前,这种情况会一直重复下去。现在,这些损失通过解码器和编码器反向传播,但对于编码器来说,增加第二个损失是非常重要的。这被称为掩蔽语言建模损失:你将输入到编码器中的一些 token 留空,作为一种辅助任务,编码器会试图预测哪个 token 被掩蔽了。预训练结束之后就到了微调环节。在这个环节,他们将问题描述元数据和示例的输入输入到编码器中,试着用解码器生成人类编写的代码。此时可以看到,这与编码器 - 解码器架构所规定的结构非常自然地吻合在一起。这一阶段的损失与预训练时完全相同。而且,这里也有第二个 Transformer 用来生成测试输入。这也是由相同的 GitHub 预训练任务初始化的,但它被微调以生成测试输入而不是代码。除了上面提到的常规训练步骤和架构,AlphaCode 还从最近的其他论文中借鉴了一些经验。Tim Pearce 指出了其中比较不错的一个:AlphaCode 的元数据调节除了问题描述,研究者还总是将元数据作为 Transformer 的输入,包括编程语言、问题的难度等级、关于问题的一些标签,以及解决方案是否正确等。在训练时,模型显然知道这些字段的值是什么,但在测试时,它们并不知道。非常有趣的是,他们可以在测试时向这些字段中输入不同的东西来影响生成的代码。例如,你可以控制系统将要生成的编程语言,甚至影响它试图生成的解决方案类型,比如是尝试动态编程方法还是进行穷举搜索。他们在测试时发现,当他们对最初的 100 万个代码脚本进行采样时,将很多字段随机化是非常有帮助的。因为,通过增加原始采样池的多样性,正确答案出现的可能性就会增加。以上就是 Tim Pearce 对 AlphaCode 的全部解析。他认为,DeepMind 的团队在这项工作中的确取得了一些进展。但他比较不解的是:为什么他们在这些编程问题中取得的成就远远不及他们在围棋、《星际争霸》等游戏中取得的超越人类的成果?Tim Pearce 初步猜测是因为编程问题比较难,而且数据比较难以获取,因为在游戏中你可以无限制地产生很多模拟数据,但在编程问题上却不能这么做。
  • [技术干货] 从1750亿到1.6万亿,人工智能未来:除了大模型,还有什么?[转载]
    原文链接:https://blog.csdn.net/csdnnews/article/details/122957639作者 | 杨海钦出品 | CSDN(ID:CSDNnews)自1956年的达特茅斯会议开启“人工智能元年”,该领域经过了两起两落。到2006年前后,虽然Hinton等人已发表论文证明,通过增加神经网络的层数,可以学到更好的数据表征,并进一步提升模型的性能,但是大家认为这还是新瓶换旧酒,还在迟疑中。直到深度学习概念的推广,在语言识别等领域获得成功。特别是2012年AlexNet在ImageNet的比赛中取得重大突破,性能提升10多个百分点。深度神经网络的实际效果进一步得到肯定,并掀起了人工智能的第三波热潮。CV“四小龙”亦在此时间段前后成立,开启感知智能的创业浪潮。ResNet和AlphaGo等成果的推出,进一步完善神经网络的训练并拓展了其应用范围,从而将这波浪潮推到新高度。2018年秋季谷歌推出BERT,横扫了11项自然语言处理(NLP)任务,随后OpenAI亦相继推出GPT-2、GPT-3,让大家看到认知智能落地的潜在性。时光如梭,2021年悄然过去。蓦然回首,2021年的AI大事件有哪些呢?新的一年,AI又将呈现怎样的发展趋势?我们将按下述几个主题展开:大模型不断推出,提高行业准入壁垒;构建基石模型, 拓展应用边界;考虑公平和伦理,保证落地的安全和责任。大模型不断推出,提高行业准入壁垒从业界的角度看,2021年的一个关键词是“大模型”。如图1所示,当GPT-3的模型规模达到1750亿参数后,国外大厂又提出了各样的模型,进一步提高了模型的大小。具有代表性的成果有:Switch Transformer:谷歌于2021 年1月11日提出,声称参数量从GPT-3的1750亿提高到1.6万亿。Switch Transformer基于稀疏激活的专家模型(Mixture of Experts), 论文中提到在计算资源相同的情况下,训练速度可以达到 T5 (Text-To-Text Transfer Transformer)模型的4-7倍[1]。MT-NLG:2021 年年底,英伟达与微软联合发布了MT-NLG (Megatron-Turing Natural Language Generation),该模型含参数5300亿个,宣称是目前最大的且最强的语言生成预训练模型[2]。图1. NLP预训练模型参数随着时间发展的趋势(图片源自[2])国内在今年亦推出了万亿级的预训练模型和开源计划。例如:悟道 2.0:2021 年6月,北京智源研究院发布悟道 2.0,参数规模达到1.75万亿,是GPT-3的10倍,超过了谷歌Switch Transformer的1.6万亿参数记录[3]。“封神榜”大模型:2021 年 11 月,在深圳IDEA大会上,粤港澳大湾区数字经济研究院(简称“IDEA”)理事长沈向洋正式宣布,开启“封神榜”大模型开源计划,涵盖五个系列的亿级自然语言预训练大模型,其中包括了最大的开源中文BERT大模型“二郎神”系列[3]。目前,预训练大模型已成为各家打造人工智能基础设施的利器,从而提高行业的准入壁垒。实现大模型,需要超大规模的算力和海量的数据。这对普通公司或者一般实验室会造成一定的困难。然而就技术而言,目前的大模型离我们期望的通用人工智能还有很大的差距。如何让电脑有更多的创意,知识不断地积累,还需要进行大量的技术探索和创新。在落地的时候还需要更多地跟场景结合,甚至需要场景创新,才能更好地服务相关行业。构建基石模型,拓展应用边界大模型的不断推出,基本上基于深度神经网络和自学习的方式进行,各个模型趋于“同质化”(Homogenization)。因此,斯坦福大学的Percy Liang于2021年3月份召集了100多位研究学者,发起了基石模型(Foundation Models)的讨论,并于8月发表了一篇200多页的关于基石模型的综述报告[5]。图2 基石模型经文本、图像、语音等多模态数据训练,微调后服务下游应用(图片源自[5])该报告定义了基石模型,试图囊括目前大模型的能力、应用、相关技术和社会影响。主要从语言、视觉、机器人、推理、交互、理解等讨论基石模型的能力,在应用方面主要探讨医疗、法律和教育这三个对社会很重要的学科。与此同时,在构建基石模型方面,亦出现了几个有影响力的工作,拓展了应用的边界。例如:Copilot:6月,微软收购的GitHub联合OpenAI推出首个AI代码生成器[6]。该工具基于GPT-3,即Transformer的架构,通过训练从GitHub上爬取数十亿行开源代码和相关英文注释,实现代码的自动生成,试图进一步辅助程序员的代码开发。FLAVA: 到年底, Facebook (现称Meta)亦基于Transformer[8]推出FLAVA (A Foundational Language And Vision Alignment Model),试图用一个统一的模型适用于自然语言处理、计算机视觉、多模态的不同任务,论文显示在此三种领域共计35个任务,都有着出色的表现[8]。该模型利用Vision Transformer (ViT) [9]的方式对图像进行编码,BERT[10]的方式对文本进行编码,并设计相应的多模态编码方式和相应的损失函数,对模型进行训练,并获得很好的性能。在学术界,对比学习、多模态多任务联合学习,已经广泛使用于基石模型的训练中。但是模型的解释性和拓展性还有很多的探索空间。考虑公平和伦理,保证落地的安全和责任尽管目前AI技术在刷脸支付、自动驾驶、智能语音、智能安防等应用的商业化探索和落地,已开始改变我们的生活模式,并带来巨大的便利,AI技术仍要面对更多、更复杂的场景。2021 年是AI技术迫切需要落地的一年。在落地的过程中,我们经常需要面对如下问题:落地场景是否有好的数据?AI技术如何更好地降本增效、规模化和商业化?如何保证AI技术者掌握相关业务知识,并理解业务需求?而从AI技术层面看,AI落地的三要素是: 算力、算法和数据。这就涉及到公平性和伦理的问题。特别是,最近几年数据的隐私安全、AI算法的责任,都成为社会的关注热点。在今年我国亦出台相关法律从不同层面保障用户的隐私和利益,包括数据层面:6月《数据安全法》通过,11月《个人信息保护法》开始生效,包括2016年通过的《网络安全法》从不同的角度规范数据的使用和保护用户个人信息。算法层面:1月颁布了《互联网信息服务算法推荐管理规定》和9月亦印发《关于加强信息服务算法综合治理的指导意见》的通知,进一步加强了互联网信息服务算法安全治理。伦理规范:6月28日世卫组织亦发布“卫生领域人工智能的伦理和治理”的报告,提出人工智能为所有国家的公众利益服务的六项原则。9月25日,我国亦发布《新一代人工智能伦理规范》,为从事人工智能相关活动的自然人、法人和其他相关机构等提供伦理指引。11月25日联合国教科文组织亦举行新闻发布会,介绍该组织正式通过的首份人工智能伦理问题全球性协议。AI技术在落地的过程,要兼具安全和确定相关的责任方,同时还要顾及公平和伦理。随着众多新的法案的出台,后续的落地会受到更多的监管和共同治理,走向“科技向善、AI向善”的道路。小结与展望目前人工智能技术距离理想的通用人工智能的路还很长,2021年有更多的大厂试图构建相应的基石模型,并把AI技术拓展到更大的应用范围。在技术层面,还需要大量的探索,例如,是否有更好的架构替代基于深度神经网络的架构?是否有更快的方式提升计算性能?大模型如何在实际场景很好地落地?相关的技术,如Neurosymbolic AI、量子计算都很值得研究。在应用层面,AI跟科学发现、AI制药、AI跟大数据应用结合等等,都有很多的机会。如何将算法与场景结合、技术与产业融合,是未来实现AI落地应用必须思考的问题。国内已有一些机构或团队正在探索研产结合的可能路径,例如IDEA的CTO Labs合作计划,聚集科研人才和产业科技团队,共同挖掘产业痛点,更有效推进核心技术研发和落地。最近亦与数说故事合作,在数说的产品中提供关键技术模块。参考文献:[1] William Fedus, Barret Zoph, Noam Shazeer: Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity. CoRR abs/2101.03961 (2021).[2] Paresh Kharya and Ali Alvi. Using DeepSpeed and Megatron to Train Megatron-Turing NLG 530B, the World’s Largest and Most Powerful Generative Language Model.[3] 全球最大智能模型“悟道2.0”重磅发布. https://hub.baai.ac.cn/view/8375.[4] 2021 IDEA大会重磅宣布,“封神榜”大模型开源计划开启——“封神榜”大模型系列宣告开源,有多“神”?https://idea.edu.cn/news/20211124222723.html.[5] Rishi Bommasani, Drew A. Hudson, Ehsan Adeli, et al.: On the Opportunities and Risks of Foundation Models. CoRR abs/2108.07258 (2021).[6] Gershgorn, Dave. GitHub and OpenAI launch a new AI tool that generates its own code. The Verge. 29 June 2021 [6 July 2021].[7] Amanpreet Singh, Ronghang Hu, Vedanuj Goswami, Guillaume Couairon, Wojciech Galuba, Marcus Rohrbach, Douwe Kiela: FLAVA: A Foundational Language And Vision Alignment Model. CoRR abs/2112.04482 (2021).[8] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021.[9] IDEA合作企业数说故事产品上新 携手推动商业应用智能化.https://zhuanlan.zhihu.com/p/458813386. 2022-01-18.
  • [问题求助] 【ModelArts】【训练作业】报错[detect]ascend-check error
    【功能模块】【ModelArts】【训练作业】报错[detect]ascend-check error【操作步骤&问题现象】基于ModelArts和本地WSL2-GPU复现lenet5模型训练丨【华为云AI贺新年】-云社区-华为云 (huaweicloud.com)按照上面博客创建OBS,创建训练作业然后开始训练,一直失败,显示如下截图的报错信息在代码中已设置context.set_context(mode=context.GRAPH_MODE, device_target='Ascend') # Ascend, CPU, GPU创建训练作业时选择了ascend,不知道哪里错了。【截图信息】[2022-02-12T16:30:57+08:00][ModelArts Service Log][task]Detect Npu[2022-02-12T16:30:57+08:00][ModelArts Service Log][ERROR][detect] ascend-check error, exiting...[2022-02-12T16:30:57+08:00][ModelArts Service Log][ERROR][detect] code: 31, message: ---------【日志信息】(可选,上传日志内容或者附件)[2022-02-12T16:30:50+08:00][ModelArts Service Log][init] toolkit_obs_upload_job_pid = 55 [2022-02-12T16:30:50+08:00][ModelArts Service Log][init] toolkit_obs_upload_pid = 56 [2022-02-12T16:30:50+08:00][ModelArts Service Log][init] running at 2022-02-12-16:30:50 [2022-02-12T16:30:50+08:00][ModelArts Service Log][init] ip of the pod: 172.16.0.156 [2022-02-12T16:30:51+08:00][ModelArts Service Log][task]Detect item: disk-size shm [2022-02-12T16:30:51+08:00][ModelArts Service Log][INFO][detect] code: 0, message: ok, item: disk-size shm [2022-02-12T16:30:51+08:00][ModelArts Service Log][task]Detect item: dns [2022-02-12T16:30:51+08:00][ModelArts Service Log][INFO][detect] code: 0, message: ok, item: dns [2022-02-12T16:30:51+08:00][ModelArts Service Log][task]Detect item: disk-size root [2022-02-12T16:30:51+08:00][ModelArts Service Log][INFO][detect] code: 0, message: ok, item: disk-size root [2022-02-12T16:30:51+08:00][ModelArts Service Log][task]Detect item: disk-size cache [2022-02-12T16:30:51+08:00][ModelArts Service Log][INFO][detect] code: 0, message: ok, item: disk-size cache [2022-02-12T16:30:51+08:00][ModelArts Service Log][init] autosearch_path is empty, skip the autosearch download [2022-02-12T16:30:51+08:00][ModelArts Service Log][init] start to download the code [2022-02-12T16:30:51+08:00][ModelArts Service Log][init] code_url: s3://lenet555/lenet5/ [2022-02-12T16:30:51+08:00][ModelArts Service Log][init] modelarts_downloader_job_pid = 258 [ModelArts Service Log]2022-02-12 16:30:52,346 - modelarts-downloader.py[line:264] - INFO: Main: modelarts-downloader starting with Namespace(dst='./', recursive=True, skip_creating_dir=False, src='s3://lenet555/lenet5/', trace=False, type='common', verbose=False) [ModelArts Service Log]2022-02-12 16:30:52,493 - consumer.py[line:107] - INFO: MoXing Local Track Mode. [2022-02-12T16:30:53+08:00][ModelArts Service Log][init] code is now in /home/ma-user/modelarts/user-job-dir [ModelArts Service Log][init]engine type is: ascend-powered-engine [ModelArts Service Log][init]python version: 3 [2022-02-12T16:30:53+08:00][ModelArts Service Log][init] inputs_handler_job_pid = 346 [ModelArts Service Log][INFO][2022/02/12 16:30:53]: caching the content of [data_url] inputs [ModelArts Service Log]2022-02-12 16:30:54,001 - modelarts-downloader.py[line:264] - INFO: Main: modelarts-downloader starting with Namespace(dst='./', recursive=True, skip_creating_dir=True, src='s3://lenet555/lenet5/lenet5/MNIST/', trace=False, type='common', verbose=False) [ModelArts Service Log]2022-02-12 16:30:54,080 - consumer.py[line:107] - INFO: MoXing Local Track Mode. [ModelArts Service Log][INFO][2022/02/12 16:30:54]: cache the content of [data_url] inputs successfully [ModelArts Service Log][INFO][2022/02/12 16:30:54]: it can be accessed at local dir [/home/ma-user/modelarts/inputs/data_url_0] [ModelArts Service Log][INFO][2022/02/12 16:30:55,167]: mkdir for local output dir [ModelArts Service Log][INFO][2022/02/12 16:30:55,167]: output-handler finalized [2022-02-12T16:30:55+08:00][ModelArts Service Log][init] exiting at 2022-02-12-16:30:55 [2022-02-12T16:30:55+08:00][ModelArts Service Log][init] upload_metrics_pid = 569 [2022-02-12T16:30:55+08:00][ModelArts Service Log][init] stop toolkit_obs_upload_pid = 56 by signal SIGTERM [2022-02-12T16:30:55+08:00][ModelArts Service Log][sidecar] toolkit_obs_upload 56 ret_code is 0 [2022-02-12T16:30:55+08:00][ModelArts Service Log][init] exit with 0 [2022-02-12T16:30:57+08:00][ModelArts Service Log][task]Detect Npu [2022-02-12T16:30:57+08:00][ModelArts Service Log][ERROR][detect] ascend-check error, exiting... [2022-02-12T16:30:57+08:00][ModelArts Service Log][ERROR][detect] code: 31, message: ---------driver_health_state: 0, device_health_state: 1, net_health_state: 0 --------, item: ascend-check [2022-02-12T16:30:57+08:00][ModelArts Service Log]exit with 31 [2022-02-12T16:30:58+08:00][ModelArts Service Log][sidecar] running at 2022-02-12-16:30:58 [2022-02-12T16:30:58+08:00][ModelArts Service Log][sidecar] toolkit_obs_upload_by_channels_job_pid = 38 [2022-02-12T16:30:58+08:00][ModelArts Service Log][sidecar] toolkit_obs_upload_by_channels_pid = 39 [2022-02-12T16:30:58+08:00][ModelArts Service Log][sidecar] waiting for training complete [2022-02-12T16:30:58+08:00][ModelArts Service Log][sidecar] training is completed [2022-02-12T16:30:58+08:00][ModelArts Service Log][sidecar] stop toolkit_obs_upload_by_channels_pid = 39 by signal SIGTERM time="2022-02-12T16:30:58+08:00" level=info msg="local dir = /home/ma-user/modelarts/outputs/train_url_0/" file="upload.go:191" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=train_url time="2022-02-12T16:30:58+08:00" level=info msg="obs dir = s3://lenet555/lenet5/lenet5/output/" file="upload.go:194" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=train_url time="2022-02-12T16:30:58+08:00" level=info msg="start the periodic upload task, upload Period = 30 seconds " file="upload.go:204" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=train_url time="2022-02-12T16:30:58+08:00" level=info msg="the periodic upload task exiting..." file="upload.go:214" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=train_url time="2022-02-12T16:30:58+08:00" level=info msg="local dir = /home/ma-user/modelarts/log/" file="upload.go:191" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=srt_log_collection time="2022-02-12T16:30:58+08:00" level=info msg="obs dir = s3://modelarts-training-log-cn-north-4/2c83617e-3ed7-4e8d-82a0-d6fd4b044eef/worker-0" file="upload.go:194" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=srt_log_collection time="2022-02-12T16:30:58+08:00" level=info msg="enable append upload mode" file="upload.go:197" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=srt_log_collection time="2022-02-12T16:30:58+08:00" level=info msg="start the periodic upload task, upload Period = 5 seconds " file="upload.go:204" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=srt_log_collection time="2022-02-12T16:30:58+08:00" level=info msg="the periodic upload task exiting..." file="upload.go:214" Command=obs/upload_by_channels Component=ma-training-toolkit Platform=ModelArts-Service Task=srt_log_collection
  • [其他] YoloX部署、优化、训练相关
    YOLOX的Anchor Free(Anchor Based针对数据集聚类分析得到Anchor Box的方式,怕对泛化会有影响,尤其前期缺乏现场数据时)以及更有效的Label Assignment(SimOTA),使我下决心将目前所用的FCOS+ATSS模型换成YOLOX模型。这次改动将YOLOX添加到了Yolov5上,在Yolov5的框架下,训练150个epoch的yolox-s模型的mAP也达到了39.7(且未使用mixup数据增强和random resize)。一、实验环境:实验机器:1台PC:CPU: AMD Ryzen 7 1700X Eight-Core Processor, 内存: 32G, 显卡: 2张GeForce GTX 1080 Ti 11G1台PC:CPU: AMD Ryzen 5 2600 Six-Core Processor, 内存: 32G, 显卡: 2张GeForce GTX 1080 Ti 11G目标部署硬件:A311D开发板(带8位整型5TOPS算力的NPU)软件版本:Python版本为3.7.7,Pytorch版本为1.7.1,Cuda版本为10.1官方YoloX版本:https://github.com/Megvii-BaseDetection/YOLOX.gitCommits:29df1fb9bc456fcd5c35653312d7c22c9f66b9f8 (Aug 2, 2021)官方Yolov5版本:- https://github.com/ultralytics/yolov5.gitCommits: f409d8e54f9391ce21436d33334beff3a2fd4042 (Aug 4, 2021)二、选择适合NPU的架构试验:1、速度实验:注:a、模型在NPU上的速度实验,并不需要把模型完整地训练一遍,那样太耗时,只需要将模型导出(初始化后导出或者少量图片train一个epoch),再量化转换为NPU的模型即可。b、另一方面,NPU对有些层不支持、层与层之间的搭配、或层的实现完整性差异(参见:【原创】A311D模型转换问题),会导致模型转换成NPU模型时失败,这样花大力气训练出来模型用不上,白白浪费时间,尤其对于小公司,训练机器资源有限,训练一个模型一两天时间就过去了,因为模型转换失败或者模型性能不达标,又要重来一遍,会推迟项目进度。c、对于面向产品快速部署落地而言,在开始训练模型之前,需要先确保模型能成功转换成目标硬件上,以及能在目标硬件上达到所需的性能要求。1)、YOLOX_S模型在NPU上640x640分辨率下纯推理速度(不包括前处理和后处理)每帧需要62.3ms;2)、原来部署在NPU上的FCOS ATSS模型在同等分辨率下NPU纯推理速度每帧只需要45.58ms;我们的FCOS对解耦头做过简化设计,但为了融合多数据集以及自有数据集训练(如,coco,wider face等),进行多种不同任务检测(如,人体检测,人脸检测等),采用更多的解耦头分支来规避数据集之间相互缺少的类别标签问题。最终更换成YOLOX_S模型,也是需要实现同时检测多个任务的功能,如果原始的YOLOX_S模型在NPU上就比FCOS在速度上差这么多,较难应用;3)、将YOLOX_S模型的SiLU激活函数替换成ReLU激活函数在同等分辨率下NPU纯推理速度每帧只需要42.61ms;我们所用的NPU可以将Conv+ReLU融合成一个层(注意多看NPU手册,了解哪些层的组合以及什么样的层的参数配置对性能优化更友好),而SiLU激活函数是不会做融合的,这意味着更多的运算量以及内存访问(在32位DDR4甚至DDR3的内存的NPU开发板上,内存访问对性能的影响是不容忽视的),因此,只是更换了一下激活函数推理速度便提升为原来的1.46倍了;我很想知道SiLU比ReLU到底能提升多少的AP值(但没找到,唯一能找到的是对ImageNet数据集的分类模型来说的),如果AP提升不多,1.46倍的性能差别,觉得不值,从其他地方补回来可能更划算;4)、将YOLOX_S模型的SiLU激活函数替换成LeakyReLU激活函数在同等分辨率下NPU纯推理速度每帧需要54.36ms;Conv+LeakyReLU不会融合成一个层,LeakyReLU也多一点运算,性能相比ReLU也慢不少;5)、YOLOX_S模型使用ReLU+SiLU激活函数,即大部分使用ReLU激活函数小部分使用SiLU激活函数(所有stride为2的Conv、SPP、所有C3中的最后一个Conv都使用SiLU)在同等分辨率下NPU纯推理速度每帧需要44.22ms;SiLU激活函数可以增加非线性,ReLU激活函数的非线性感觉还是比较有限:转发自https://www.yuque.com/yerunyuan/ar9831/tsm0id#Kfi4w 
总条数:5192 到第
上滑加载中