-
这周我们简单介绍一个高效分子优化的方法。该工作由UIUC的Jimeng Sun组合MIT的Connor Coley组合作完成,对应的文章题目是Differentiable Scaffolding Tree for Molecule Optimization[1],被2022年ICLR接受,主要的代码和数据发布在https://github.com/futianfan/DST。思路:基于梯度的分子优化分子的可微分骨架树类梯度上升的优化算法优化效果测试由可微性得到的可解释性思路:基于梯度的分子优化在药物发现中,分子优化,即找到具有理想性质的分子结构,是核心的一步。由于化学结构的复杂性,传统上我们只能依赖于一些启发式的组合优化算法,如遗传算法、树搜索等。最近深度学习的发展确实提供了一些新的思路,但目前大部分依赖图生成算法的分子优化都是通过图神经网络(graph neural network, GNN)来显式地生成一个分子,然后优化目标函数,通过反向传播梯度来更新GNN参数,使得网络生成具有优化性质的分子。例如在增强学习(reinforcement learning, RL)中目标函数是根据反馈(reward)定义的;在深度生成模型(deep generative model, DGM)中基于和目标分子的广义距离定义。但这些算法普遍优化能力不够强,尤其没有考虑oracle的成本,许多算法需要调用数十万甚至百万次oracle才能得到较好的结果,而这在实际分子设计过程中显然是不现实的。我们知道,数值优化的核心就是在一个点估计其指向极值点的方向,而这一方向一般可以通过梯度估计。那我们是否可以估计一个分子的性质相对于结构的梯度,通过这个梯度估计方向进而优化一个分子?在Alan Aspuru-Guzik组的Deep Molecular Dreaming[2]一文中作者利用分子的字符串(SELFIES)表示实现了这一点:将分子看做每个位置字符的分布概率,通过一个一维卷积神经网络(convolutional neural network, CNN)学习其性质,得到可微的性质预测器,进而估计分子的梯度,但是效果并不好。而在本文中,作者通过提出分子的可微分骨架树(Differentiable Scaffolding Tree, DST)这一概念,使得分子直接在结构层面上可微,进而构建了一个高效的优化算法。与其他生成模型不同,作者先预训练(pre-train)了一个以骨架树(ST)为输入的GNN来预测性质(标量)。然后在优化过程中固定GNN参数,每步迭代里首先构造分子相应的DST,通过前向传播用GNN来预测性质,然后优化目标性质并通过反向传播梯度来更新DST里的参数,进而优化分子结构。分子的可微分骨架树首先我们明确本文关注从头分子优化(de novo molecule optimization),即以一个优化算法在一个隐式定义的小分子空间上找到性质较好的分子。而分子性质由一个Oracle给出,即给定一个分子,输出相对应的性质,可以看作一个黑盒函数(black box function of molecules),例如衡量一个分子的类药性的QED。为了使分子在图结构层面上可微,首先需要扩展分子图的概念。另外为了避免生成环的中间步骤可能带来的不必要的麻烦,作者选择在优化过程中用骨架树(scaffolding tree, ST)来表示分子,其节点定义为一个基本单位(substructure),包含了常见的原子和单环(详见原文附录Figure 5)。我们可以用节点的类别矩阵(node indicator matrix)和节点之间的链接矩阵(adjacency matrix)表示一个骨架树。其中类别矩阵每一行是一个one-hot向量,代表了该节点是哪一个基本单位,而链接矩阵中的每一个元素都是binary的数字,指示每一对节点之间是否连接。构造可微分骨架树(DST)的核心是将节点的类别和连接看做可学习的0到1的概率分布,而非0或1的binary code。其中为了实现连接可微性的自洽,作者提出了与连接等价的权重向量(node weight vector),通过一个节点的权重表示其存在与否,并通过权重构造连接矩阵,将连接与否的问题变成了该节点是否存在的问题:从骨架树得到可微分骨架树的方法如下所示:首先将分子结构抽象为骨架树, 然后将骨架树中每个结点连接上一个拓展节点(expansion node)。每一个叶结点和拓展结点的权重和类别是可学习的(learnable)。其中节点类别是一个softmax的输出,保证和为1。结点权重是一个sigmoid的输出,保证在0-1之间。类梯度上升的优化算法为了进行优化,作者首先预先训练(pre-train)了一个GNN来做性质预测,其输入是一个分子的可微分骨架树,输出是目标的性质(标量),即。为了平衡不同权重节点的贡献,作者在GNN中使用了加权平均的read-out方法:其中代表第回迭代之后的节点特征(node embedding)的第行,代表第个节点的权重,代表全连接网络。整个算法是一个迭代式优化。在单步迭代中,给定输入分子的DST,得到了可微的性质预测替代后,可以通过任意梯度优化算法(文中使用了Adam)解来得到优化后的DST。在得到优化后的DST后,根据其优化后的权重和类别,作者设计了如下三种在对应骨架树上的操作:(1)删除(SHRINK)叶结点权重小时,意味着该节点对性质提升没有帮助,或者说该节点的存在对性质提升有负面影响,所以在对应骨架树上删除该节点。(2)拓展(EXPAND)拓展节点权重大时,意味着该节点的存在对性质提升帮助是正向的,所以在对应骨架树上加上一个新的结点。该节点的类别也从对应softmax输出值中选择。(3)替换(REPLACE)若一个节点权重改变不大,但类别改变较大时,不删除也不拓展,但是在优化后的分布中重新采样一个substructure(softmax输出中值比较大的)。根据更新后的DST采样其中一个操作,得到对应的骨架树作为下一轮迭代的输入,如此我们迭代地优化分子。在每一轮迭代内DST的维数是固定的,由输入分子决定,因此一轮迭代只能得到和原分子相差最多一个节点的分子。但在多轮迭代优化过程中,每一轮的输入都是上一轮的输出,因此相应的DST维度也会变化,使得生成分子的大小只受限于优化迭代次数。在得到优化后的骨架树后,作者枚举对应的所有可能的分子图,用oracle测量每一个分子。为了有更好的优化效果,并兼具输出分子的多样性,作者每次优化时同时优化多条轨迹,并在其中使用determinantal point process(DPP)来选择保留的分子。即在每一部枚举出对应的多个可能的分子图之后,不是单纯根据性质好坏,而额外考虑了相似性矩阵的行列式,即选择最大化下式的一批分子:其中是subset 这批分子的性质分数的对角矩阵,而则是这批分子的相似性矩阵。可以注意到单纯依据的行列式挑选就是greedy的top-k选择。而相似矩阵的行列式的最大化则鼓励subset内的diversity的增加(可以考虑一个的例子,对角线为1,非对角为彼此之间的相似度)。如此我们便得到了一个完整的优化算法。优化效果测试作者首先衡量主要的优化效果,包含了单目标优化和多目标优化(同时优化多个性质)。为了能够有比较全面的对比,所有算法选择了分数最高的100个分子衡量其:新颖性(Nov):生成分子不在训练集(如果有)中的比例;多样性(Div):生成分子的多样性,衡量对化学空间的探索能力;目标性质的平均优化结果(APS);Oracle调用的次数(#oracle):我们关注有限的oracle调用的情况下的表现,因为oracle调用的数量是衡量一个算法效率的重要指标;由于DST和一些其他算法的一部分oracle调用可以离线完成(比如利用已有的标注数据),另一部分必须线上完成,所以#oracle是A+B的形式,A为线下调用,B为线上调用。从实验结果上看,直接运用了梯度信息的DST优化效率最高,说明了由DST估计的梯度的可靠性。深度生成模型(LigGPT)由于其本身并不是一个迭代优化算法,表现并不好。增强学习方法(GCPN/MolDQN)虽然在无限oracle调用的情况下能够得到一些较好的结果,但是不出所料在限制oracle调用的情况下表现相对不好。而以传统的组合优化方法为基础的算法(如GA+D,MARS)表现相对还是更好。为了更系统地比较算法效率,作者测试了算法的oracle efficiency,即不同方法在不同oracle调用次数下的优化性能。结果如下:Oracle efficiency测试结果。其中DST-rand为DST的ablation study,即同样设定下每步随机选择骨架树上的操作。横轴为oracle调用数量,纵轴为top-100个分子的平均性质(越高越好)。DST在三个任务上都取得了最好的效果,其他结论也和第一个实验类似。由可微性得到的可解释性作者另外展示了由DST带来的分子性质的可解释性。通过观察当前DST对各个结点权重和梯度,我们可以看到不同的结点对性质提升的影响,进而分析不同基团、亚结构对性质的影响。分子可解释性实例。
-
现在,面部识别已成为生活中的一部分。因此,在介绍主题之前我们先看看实时面部识别示例。我们在手机、平板电脑等设备中使用人脸信息进行解锁的时候,这时就要求获取我们的实时面部图像,并将其储存在数据库中以进一步表明我们的身份。 通过对输入图像进行迭代和预测可以完成这个过程。同样,实时人脸识别可与OpenCV框架python的实现配合使用。再将它们组合在一个组合级别中,以实现用于实时目的的模型。 人脸识别 “面部识别”名称本身就是一个非常全面的定义,面部识别是通过数字媒体作为输入来识别或检测人脸的技术执行过程。人脸识别的准确性可以提供高质量的输出,而不是忽略影响其的问题因素。在这里,要确保运行我们的模型,必须确保在本地系统中安装了库。pip install face_recognition如果在 face_recognition库的安装过程中遇到一些问题或错误,可以点击以下链接:https://www.youtube.com/watch?v=xaDJ5xnc8dc人脸识别本身无法提供清晰的输出,因此出现了OpenCV实现的概念。OpenCV OpenCV是python中一个著名的库,用于实时应用程序。OpenCV在计算机世界中就像树的根一样非常重要。face_recognition中的OpenCV对我们训练为输入的面部图像进行聚类和特征提取。它以图像中的地标为目标,以迭代方式在计算机视觉的深度学习方法中训练它们。在本地系统中安装OpenCVpip install opencv-python使用深度学习算法,OpenCV检测可作为聚类,相似性检测和图像分类的表示。为什么我们使用OpenCV作为实时Face_Recognition中的关键工具? 人类可以轻松检测到面部,但是我们如何训练机器识别面部?OpenCV在这里填补了人与计算机之间的空白,并充当了计算机的愿景。以一个实时的例子为例,当一个人遇到新朋友时,他会记住这些人的脸,以备将来识别。一个人的大脑反复训练后端的人脸。因此,当他看到那个人的脸时,他说:“嗨,约翰!你好吗?”。对面部的识别和可以为计算机提供与人类相同的思维方式。OpenCV是计算机视觉中的重要工具。如果我们使用OpenCV,则遵循以下步骤:• 通过输入提取数据。• 识别图像中的面部。• 提取独特的特征,以建立预测思想。• 该特定人的性格特征,如鼻子,嘴巴,耳朵,眼睛和面部主要特征。• 实时人脸识别中人脸的比较。• 识别出的人脸的最终输出。使用OpenCV python的Face_Recognition: 代码下载:https://github.com/eazyciphers/deep-machine-learning-tutors/tree/master/Real-Time Face RecognitionGitHub导入所有软件包:import face_recognitionimport cv2import numpy as np加载并训练图像:# Load a sample picture and learn how to recognize it. Jithendra_image = face_recognition.load_image_file("jithendra.jpg") Jithendra_face_encoding = face_recognition.face_encodings(Jithendra_image)[0] # Load a sample picture and learn how to recognize it. Modi_image = face_recognition.load_image_file("Modi.jpg") Modi_face_encoding = face_recognition.face_encodings(Modi_image)[0]人脸编码:# Create arrays of known face encodings and their names known_face_encodings = [ Jithendra_face_encoding, Modi_face_encoding, ] known_face_names = [ "Jithendra", "Modi" ]主要方法:当实时人脸识别为true时,它将检测到人脸并按照代码中的以下步骤操作:• 抓取实时视频中的一帧。• 将图像从BGR颜色(OpenCV使用的颜色)转换为RGB颜色(face_recognition使用的颜色)• 在实时视频的帧中找到所有面部和面部编码。• 循环浏览此视频帧中的每个面孔,并检查该面孔是否与现有面孔匹配。• 如果一个人脸无法识别现有人脸,则将输出视为未知或未知。• 识别后,否则在识别出的脸部周围画一个方框。• 用其名称标记识别的面部。• 识别后显示结果图像。退出:# Hit 'q' on the keyboard to quit! if cv2.waitKey(1) & 0xFF == ord('q'): break释放摄像头的手柄:# Release handle to the webcam video_capture.release() cv2.destroyAllWindows()输入和输出 在训练过程中提供给模型的样本输入…。输入用于训练代码的样本图像样本输入图像进行训练输出
-
近日,国际数据公司IDC发布 《IDC中国2021H1人工智能公有云服务市场研究报告》 华为云一站式AI开发平台 ModelArts 位居中国机器学习公有云服务市场份额第一 连续三次登上该市场榜首位置 报告指出,在中国机器学习公有云服务市场中,华为云受到政企客户的青睐,在AI云服务市场的竞争优势逐渐凸显。华为云一站式AI开发平台ModelArts可以提供数据处理、算法开发、模型训练、模型管理、模型部署等AI模型开发全流程技术能力;率先支持MLOps;持续构建大模型训练优化能力。同时积极打造开放的AI生态,接入生态开发工具,通过华为云AI Gallery联接AI市场的供、需、学三方,助力解决AI落地时所面临的“AI算力稀缺、AI人才短缺、AI开发难、AI行业应用难”两难两缺难题,推动AI走进千行百业的核心生产系统。面向AI开发者,持续提供硬核黑科技服务 ModelArts人工智能集群服务支持大规模分布式训练。为帮助开发者及企业客户解决训练大模型时面临的技术、成本、资源等挑战,华为云一站式AI开发平台ModelArts提供人工智能集群服务,全场景深度优化,支持大规模分布式训练。从端到端全流程角度看,相比线下开发大模型,基于ModelArts的开发效率可提升4倍以上,并且可以解决超大模型训练的资源可获得性问题。云原生模型开发工具链,助力AI开发效率提升。华为云一站式AI开发平台ModelArts支持将云上资源与开发工具链相结合。面向AI初学者,线上CodeLab支持秒级接入资源,可按需切换;面向深度开发者,支持云上远程开发与自定义开发环境。借助云原生的资源调度,开发者可进一步构筑基于ModelArts云原生的算法开发范式和能力。面向AI生态,搭建“知识”+“实训”的AI开发社区 基于一站式AI开发平台ModelArts,华为云构建了开发者生态社区AI Gallery,这是一个AI资产共享的社交平台,也是“知识”+“实训”的AI开发社区。 AI Gallery汇聚了算法、模型、数据集、工作流等10余种、50000余个AI资产,保障AI开发、应用生态链上的各个参与方都能高效地实现各自的商业价值,降低各行各业开发者在人工智能领域的学习门槛,加速AI的应用实践。面向AI行业落地,全面支持全流程MLOps开发 华为云一站式AI开发平台ModelArts全面支持MLOps,改变了原有分段开发AI模型的流程, 实现全流程自动化的协同迭代开发模式。ModelArts也成为国内首个支持MLOps的AI开发平台。 基于MLOps的理念,华为云一站式AI开发平台ModelArts的Workflow工具提供运行记录、监控、持续运行等功能。通过Workflow工具,实现AI开发、运行及运行后监测的全生命周期管理,加快AI开发到落地的迭代速度,以及效果体验的持续优化。同时,开发者可通过AI Gallery实现Workflow快速构建与能力分享。华为云一站式AI开发平台ModelArts帮助企业实现了AI应用全生命周期管理,大幅提升AI开发效率,加速了AI在千行百业的落地。制造领域,华为云和博世华域基于ModelArts Workflow开发出了刀具状态智能识别Usecase。通过刀具声音识别算法,在保证良品率的情况下,刀具使用效率提升5%以上。基于MLOps理念打造的刀具声音识别Usecase,能够轻松地针对不同刀具甚至其他生产工具进行方案扩展,将声音检测算法应用在更广泛的制造行业状态维护场景;药物研发领域,依托华为云一站式AI开发平台ModelArts与华为云一站式医疗研发平台EIHealth,中国科学院上海药物研究所联合华为云训练了华为云盘古药物分子大模型,赋能全流程的AI药物设计,大幅提升新药研发效率;交通运输领域,深圳机场基于华为云机场智能体快速构建60+调度规则,实现机位分配自动化、智能化,让机场靠桥率提升5%,每年帮助260万旅客免乘摆渡车。转自华为云公众号
-
文章简介开发者如何抓住时代机遇,学好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》盘古大模型在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: 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 模型所需的时间还可能长达数周之久。这也是过去几年间,计算行业间涌现了众多价值数十亿美元的创新初创公司的重要原因所在——这些公司包括了 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 指出,训练此类系统的费用高到了足以将许多参与者排除在外。
-
春节期间,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接收论文结果已经正式公布,至少有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亿组图文对,而且质量也很高。所有图像都是筛选过的,长宽都在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
hellohelloya
发表于2022-02-17 17:19:32
2022-02-17 17:19:32
最后回复
hellohelloya
2022-02-17 17:19:32
1083 0 -
华为诺亚方舟实验室开源了第一个亿级中文多模态数据集:悟空。这个新发布的数据集不仅规模大——包含1亿组图文对,而且质量也很高。所有图像都是筛选过的,长宽都在200个像素以上,比例从1/3-3不等。而和图像对应的文本也根据其语言、长度和频率进行了过滤,隐私和敏感词也都考虑在内。例如这一组数据集中的例子,内容还相当新,像进门扫码登记,社区疫苗接种的防疫内容都有。1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室这一波可以说是填上了大规模中文多模态数据集的缺口。悟空数据集自一年前OpenAI的CLIP+Dall·E组合开启新一轮多模态学习浪潮以来,算上后续的ALIGN和FILIP,都在视觉语言预训练(VLP)领域表现优异。世界范围内的成功离不开大规模数据集的支持,但中文开源数据方面,有是有,规模大的不多。1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室有了“悟空”数据集之后,就可以支持更多预训练模型用于下游任务。数据集之外,团队还附赠了一款基本模型,参考了流行的文本图像双编码器架构:1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室其中视觉标记和文本标记作为输入。然后,将两种模式的输入标记连接起来,并用位置嵌入来显示标记位置。有意思的一点是,这里的图像编码器是从英文数据集上训练的,上面预加载并锁定了从外部模型中训练的英文数据集中的权重。但是仍然可以中文文本进行跨模态预训练,在下游任务中也表现得很好。除此之外,华为诺亚还提供了不同下游任务的基准测试。例如零样本图像分类,下图中除了WukongViT-500M,其他的悟空模型变体都是在这个一亿的数据库上训练的:1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室再比如在图像检索文本和文本检索图像这两个任务上,在五个不同的数据集上的测试结果如下:1亿组图文对,填补中文开源多模态数据集空白|华为诺亚方舟实验室而这也证明了将在英语数据集上预训练的图像编码器应用于中文多模态预训练的良好效果。未来也可能会探索更多的解决方案,利用悟空数据集训练多语言跨模态模型。目前悟空数据集在官网即可下载(链接在文末),赶快用起来吧~
-
正在举行的北京冬奥会上,有众多黑科技被搬到台前: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 年度斯隆研究奖的获奖者。该奖项于 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/
-
春节期间,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 初步猜测是因为编程问题比较难,而且数据比较难以获取,因为在游戏中你可以无限制地产生很多模拟数据,但在编程问题上却不能这么做。
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签